<?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>84406</bug_id>
          
          <creation_ts>2012-04-19 16:58:19 -0700</creation_ts>
          <short_desc>[DRT] LTC:: counterValueForElementById() could be moved to Internals</short_desc>
          <delta_ts>2012-06-12 03:58:51 -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>Tools / Tests</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>87284</blocked>
    
    <blocked>88851</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>kaustubh.ra</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>tkent</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>vivekgalatage</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>606198</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-04-19 16:58:19 -0700</bug_when>
    <thetext>This one looks a test specific API and can be moved to Internals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608014</commentid>
    <comment_count>1</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-04-23 14:18:52 -0700</bug_when>
    <thetext>Hi Morrita, I was working on this for sometime. Can I upload the patch for same?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608125</commentid>
    <comment_count>2</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-04-23 15:49:37 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Hi Morrita, I was working on this for sometime. Can I upload the patch for same?
Sure!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608187</commentid>
    <comment_count>3</comment_count>
      <attachid>138458</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-04-23 16:49:26 -0700</bug_when>
    <thetext>Created attachment 138458
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608194</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-23 16:53:58 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608204</commentid>
    <comment_count>5</comment_count>
      <attachid>138458</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-23 17:01:11 -0700</bug_when>
    <thetext>Comment on attachment 138458
Patch

Attachment 138458 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12526077</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608216</commentid>
    <comment_count>6</comment_count>
      <attachid>138458</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-23 17:13:43 -0700</bug_when>
    <thetext>Comment on attachment 138458
Patch

Attachment 138458 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12528078</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608239</commentid>
    <comment_count>7</comment_count>
      <attachid>138458</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-23 17:40:29 -0700</bug_when>
    <thetext>Comment on attachment 138458
Patch

Chromium WebKit API change looks ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608281</commentid>
    <comment_count>8</comment_count>
      <attachid>138458</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-23 18:30:39 -0700</bug_when>
    <thetext>Comment on attachment 138458
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=138458&amp;action=review

&gt; Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp:-88
&gt; -String DumpRenderTreeSupportEfl::counterValueByElementId(const Evas_Object* ewkFrame, const char* elementId)

Please remove the method declaration from the header as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608595</commentid>
    <comment_count>9</comment_count>
      <attachid>138458</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-24 06:19:03 -0700</bug_when>
    <thetext>Comment on attachment 138458
Patch

Attachment 138458 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12530221</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617566</commentid>
    <comment_count>10</comment_count>
      <attachid>140520</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-05-07 06:34:05 -0700</bug_when>
    <thetext>Created attachment 140520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617574</commentid>
    <comment_count>11</comment_count>
      <attachid>140520</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-07 07:07:13 -0700</bug_when>
    <thetext>Comment on attachment 140520
Patch

Attachment 140520 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12648035</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617575</commentid>
    <comment_count>12</comment_count>
      <attachid>140520</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-07 07:07:47 -0700</bug_when>
    <thetext>Comment on attachment 140520
Patch

Attachment 140520 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12634990</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617579</commentid>
    <comment_count>13</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-05-07 07:14:42 -0700</bug_when>
    <thetext>Does anyone know where i need to add symbols for win &amp; cr-linux port? I did added in symbols.filter for gtk port and it fixed the gtk build break issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617702</commentid>
    <comment_count>14</comment_count>
      <attachid>140520</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-07 10:33:36 -0700</bug_when>
    <thetext>Comment on attachment 140520
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=140520&amp;action=review

Thanks for taking this on!

&gt; Source/WebCore/testing/Internals.cpp:1011
&gt; +String Internals::counterValueForElementById(String elementId)

This is not what we should do. Instead we should make an internals function named counterValue that takes an element.

The only reason the old version worked with an ID was that it was easier to do it that in DumpRenderTree at the time it was done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618432</commentid>
    <comment_count>15</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-05-08 02:16:53 -0700</bug_when>
    <thetext>Thanks Darin for the review. So, as per your suggestion, we should be using API counterValueForElement in the layout test cases as well? correct me if wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618740</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-08 13:14:07 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Thanks Darin for the review. So, as per your suggestion, we should be using API counterValueForElement in the layout test cases as well? correct me if wrong.

Here’s how I suggest it work in JavaScript:

    var counterValue = internals.counterValue(element);

No need for “ForElement” in the function name, nor to involve IDs at all. For existing tests where it’s done by ID we can clean up the test or just do a mechanical change like this:

    var counterValue = internals.counterValue(document.getElementById(elementId));

Does that make sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644610</commentid>
    <comment_count>17</comment_count>
      <attachid>146548</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-06-08 06:11:27 -0700</bug_when>
    <thetext>Created attachment 146548
Updated patch

After long time finally corrected the patch as per review comments. Uploading for review. Darin, can you review? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644626</commentid>
    <comment_count>18</comment_count>
      <attachid>146548</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-08 06:33:46 -0700</bug_when>
    <thetext>Comment on attachment 146548
Updated patch

Attachment 146548 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12919502</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644660</commentid>
    <comment_count>19</comment_count>
      <attachid>146548</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-08 07:43:57 -0700</bug_when>
    <thetext>Comment on attachment 146548
Updated patch

Attachment 146548 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12910644</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645286</commentid>
    <comment_count>20</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-06-09 04:04:19 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 146548 [details])
&gt; Attachment 146548 [details] did not pass win-ews (win):
&gt; Output: http://queues.webkit.org/results/12910644

To avoid build break on win port, you have to add a symbol to Source/WebKit2/win/WebKit2.def.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645810</commentid>
    <comment_count>21</comment_count>
      <attachid>146804</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-06-11 01:00:02 -0700</bug_when>
    <thetext>Created attachment 146804
Updated patch

Fixed build break for chromium &amp; win</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645832</commentid>
    <comment_count>22</comment_count>
      <attachid>146804</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-11 01:30:28 -0700</bug_when>
    <thetext>Comment on attachment 146804
Updated patch

Attachment 146804 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12944166</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645854</commentid>
    <comment_count>23</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-11 02:17:33 -0700</bug_when>
    <thetext>The code itself looks good.
I&apos;d r+ once bots become green and if you cannot catch Darin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645880</commentid>
    <comment_count>24</comment_count>
      <attachid>146804</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-11 03:29:14 -0700</bug_when>
    <thetext>Comment on attachment 146804
Updated patch

Attachment 146804 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12944190</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645899</commentid>
    <comment_count>25</comment_count>
      <attachid>146828</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-06-11 04:21:36 -0700</bug_when>
    <thetext>Created attachment 146828
Updated patch

Fixed build break for win</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645906</commentid>
    <comment_count>26</comment_count>
      <attachid>146831</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-06-11 04:30:52 -0700</bug_when>
    <thetext>Created attachment 146831
cr_linux_build_brk patch

Chromium - Webkit glue patch for cr-linux build break</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645912</commentid>
    <comment_count>27</comment_count>
      <attachid>146828</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-11 05:20:48 -0700</bug_when>
    <thetext>Comment on attachment 146828
Updated patch

Attachment 146828 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12940306</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646584</commentid>
    <comment_count>28</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-06-11 20:27:30 -0700</bug_when>
    <thetext>Corresponding chromium issue - 
https://chromiumcodereview.appspot.com/10546100/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646605</commentid>
    <comment_count>29</comment_count>
      <attachid>147005</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-06-11 21:09:50 -0700</bug_when>
    <thetext>Created attachment 147005
Updated patch

Removed Chromium API for now. Will be removed once cr patch is checked in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646624</commentid>
    <comment_count>30</comment_count>
      <attachid>147005</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-11 22:31:06 -0700</bug_when>
    <thetext>Comment on attachment 147005
Updated patch

r=me. Please wait until all bots become green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646782</commentid>
    <comment_count>31</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-06-12 03:53:45 -0700</bug_when>
    <thetext>Committed r120054: &lt;http://trac.webkit.org/changeset/120054&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138458</attachid>
            <date>2012-04-23 16:49:26 -0700</date>
            <delta_ts>2012-05-07 06:33:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84406-20120423164924.patch</filename>
            <type>text/plain</type>
            <size>83309</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDk1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA0LTIzICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFtEUlRdIExU
Qzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkgY291bGQgYmUgbW92ZWQgdG8gSW50ZXJu
YWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0
MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3Zl
IHRoZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCBmcm9tIExheW91dFRlc3RDb3Ryb2xsZXIg
dG8gSW50ZXJuYWxzIGFuZAorICAgICAgICByZW1vdmUgdGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZp
YyBpbXBsZW1lbnRhdGlvbnMgYXMgaXQgZXhjbHVzaXZlbHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlv
bmFsaXR5LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wNC0yMyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjEwOTk4MS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9u
IDExNDk0NykKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtOTgxLDYgKzk4MSwxOSBAQCB1bnNpZ25lZCBJbnRlcm5hbHM6Om51bWJlck9m
U2Nyb2xsYWJsZUFyCiAgICAgcmV0dXJuIGNvdW50OwogfQogCitTdHJpbmcgSW50ZXJuYWxzOjpj
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChTdHJpbmcgZWxlbWVudElkKQoreworICAgIEZyYW1l
KiBjb3JlRnJhbWUgPSBmcmFtZSgpLT5wYWdlKCktPm1haW5GcmFtZSgpOworICAgIGlmICghY29y
ZUZyYW1lKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBFbGVtZW50KiBjb3JlRWxl
bWVudCA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoQXRvbWljU3RyaW5n
KGVsZW1lbnRJZCkpOworICAgIGlmICghY29yZUVsZW1lbnQpCisgICAgICAgIHJldHVybiBTdHJp
bmcoKTsKKworICAgIHJldHVybiBjb3VudGVyVmFsdWVGb3JFbGVtZW50KGNvcmVFbGVtZW50KTsK
K30KKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIHZvaWQgSW50ZXJuYWxzOjp3ZWJraXRX
aWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEVsZW1lbnQq
IGVsZW1lbnQpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlzaW9u
IDExNDk0NykKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE2Niw2ICsxNjYsOCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZM
aXZlRG9jdW1lbnRzKCkgY29uc3Q7CiAjZW5kaWYKIAorICAgIFN0cmluZyBjb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZChTdHJpbmcgZWxlbWVudElkKTsKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKICAgICB2b2lkIHdlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KERvY3Vt
ZW50KiwgRWxlbWVudCopOwogICAgIHZvaWQgd2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxl
bWVudChEb2N1bWVudCosIEVsZW1lbnQqKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwJKHJldmlzaW9uIDExNDk0NykKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTQxLDYgKzE0MSw4IEBAIG1vZHVsZSB3aW5k
b3cgewogICAgICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25nIG51bWJl
ck9mTGl2ZU5vZGVzKCk7CiAgICAgICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIHVuc2lnbmVk
IGxvbmcgbnVtYmVyT2ZMaXZlRG9jdW1lbnRzKCk7CiAKKyAgICAgICAgRE9NU3RyaW5nIGNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGluIERPTVN0cmluZyBlbGVtZW50SWQpOworCiAjaWYgZGVm
aW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICYmIEVOQUJMRV9GVUxMU0NSRUVOX0FQSQogICAg
ICAgICB2b2lkIHdlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGluIERvY3VtZW50
IGRvY3VtZW50LCBpbiBFbGVtZW50IGVsZW1lbnQpOwogICAgICAgICB2b2lkIHdlYmtpdERpZEVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIEVsZW1lbnQg
ZWxlbWVudCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTE0OTUz
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwyMCBAQAorMjAxMi0wNC0yMyAgS2F1c3R1YmggQXRyYXdhbGthciAgPGthdXN0dWJo
QG1vdG9yb2xhLmNvbT4KKworICAgICAgICBbRFJUXSBMVEM6OiBjb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgpIGNvdWxkIGJlIG1vdmVkIHRvIEludGVybmFscy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NDA2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQgZnJvbSBMYXlvdXRUZXN0Q290cm9sbGVyIHRvIEludGVybmFscyBhbmQKKyAgICAg
ICAgcmVtb3ZlIHRoZSBvbGQgcGxhdGZvcm0gc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIGFzIGl0
IGV4Y2x1c2l2ZWx5IHRlc3RzIFdlYkNvcmUgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHB1
YmxpYy9XZWJGcmFtZS5oOgorICAgICAgICAoV2ViRnJhbWUpOgorICAgICAgICAqIHNyYy9XZWJG
cmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJ
bXBsLmg6CisgICAgICAgIChXZWJGcmFtZUltcGwpOgorCiAyMDEyLTA0LTIzICBEbWl0cnkgVGl0
b3YgIDxkaW1pY2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENocm9taXVtIHJvbGwgMTMzNDIy
OjEzMzUwNi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAko
cmV2aXNpb24gMTE0OTQ3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJh
bWUuaAkod29ya2luZyBjb3B5KQpAQCAtNjA3LDEwICs2MDcsNiBAQCBwdWJsaWM6CiAgICAgLy8g
dG8gc3VwcG9ydCBsYXlvdXQgdGVzdHMuCiAgICAgdmlydHVhbCBXZWJTdHJpbmcgcmVuZGVyVHJl
ZUFzVGV4dChSZW5kZXJBc1RleHRDb250cm9scyB0b1Nob3cgPSBSZW5kZXJBc1RleHROb3JtYWwp
IGNvbnN0ID0gMDsKIAotICAgIC8vIFJldHVybnMgdGhlIGNvdW50ZXIgdmFsdWUgZm9yIHRoZSBz
cGVjaWZpZWQgZWxlbWVudC4gIFRoaXMgbWV0aG9kIGlzCi0gICAgLy8gdXNlZCB0byBzdXBwb3J0
IGxheW91dCB0ZXN0cy4KLSAgICB2aXJ0dWFsIFdlYlN0cmluZyBjb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZChjb25zdCBXZWJTdHJpbmcmIGlkKSBjb25zdCA9IDA7Ci0KICAgICAvLyBDYWxscyBt
YXJrZXJUZXh0Rm9yTGlzdEl0ZW0oKSBkZWZpbmVkIGluIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRyZWVBc1RleHQuaC4KICAgICB2aXJ0dWFsIFdlYlN0cmluZyBtYXJrZXJUZXh0Rm9yTGlzdEl0
ZW0oY29uc3QgV2ViRWxlbWVudCYpIGNvbnN0ID0gMDsKIApJbmRleDogU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCShyZXZpc2lvbiAxMTQ5NDcpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xODk0LDE4ICsxODk0LDYgQEAgV2ViU3RyaW5nIFdlYkZyYW1lSW1wbDo6cmVuZGVyVHJlZUFz
VGV4dAogICAgIHJldHVybiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKG1fZnJhbWUsIGJlaGF2aW9y
KTsKIH0KIAotV2ViU3RyaW5nIFdlYkZyYW1lSW1wbDo6Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoY29uc3QgV2ViU3RyaW5nJiBpZCkgY29uc3QKLXsKLSAgICBpZiAoIW1fZnJhbWUpCi0gICAg
ICAgIHJldHVybiBXZWJTdHJpbmcoKTsKLQotICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBtX2ZyYW1l
LT5kb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJZChpZCk7Ci0gICAgaWYgKCFlbGVtZW50KQotICAg
ICAgICByZXR1cm4gV2ViU3RyaW5nKCk7Ci0KLSAgICByZXR1cm4gY291bnRlclZhbHVlRm9yRWxl
bWVudChlbGVtZW50KTsKLX0KLQogV2ViU3RyaW5nIFdlYkZyYW1lSW1wbDo6bWFya2VyVGV4dEZv
ckxpc3RJdGVtKGNvbnN0IFdlYkVsZW1lbnQmIHdlYkVsZW1lbnQpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIFdlYkNvcmU6Om1hcmtlclRleHRGb3JMaXN0SXRlbShjb25zdF9jYXN0PEVsZW1lbnQqPih3
ZWJFbGVtZW50LmNvbnN0VW53cmFwPEVsZW1lbnQ+KCkpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCShyZXZpc2lvbiAxMTQ5NDcpCisrKyBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMjEx
LDcgKzIxMSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBjb250ZW50QXNUZXh0
KHNpemVfdCBtYXhDaGFycykgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgY29udGVudEFz
TWFya3VwKCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgcmVuZGVyVHJlZUFzVGV4dChS
ZW5kZXJBc1RleHRDb250cm9scyB0b1Nob3cgPSBSZW5kZXJBc1RleHROb3JtYWwpIGNvbnN0Owot
ICAgIHZpcnR1YWwgV2ViU3RyaW5nIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGNvbnN0IFdl
YlN0cmluZyYgaWQpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIG1hcmtlclRleHRGb3JM
aXN0SXRlbShjb25zdCBXZWJFbGVtZW50JikgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgcGFnZU51
bWJlckZvckVsZW1lbnRCeUlkKGNvbnN0IFdlYlN0cmluZyYgaWQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHBhZ2VXaWR0aEluUGl4ZWxzLApJbmRleDog
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwkocmV2aXNpb24gMTE0OTUzKQorKysgU291cmNlL1dlYktpdC9lZmwvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDQtMjMgIEthdXN0
dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgW0RSVF0g
TFRDOjogY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoKSBjb3VsZCBiZSBtb3ZlZCB0byBJbnRl
cm5hbHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NDQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1v
dmUgdGhlIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIGZyb20gTGF5b3V0VGVzdENvdHJvbGxl
ciB0byBJbnRlcm5hbHMgYW5kCisgICAgICAgIHJlbW92ZSB0aGUgb2xkIHBsYXRmb3JtIHNwZWNp
ZmljIGltcGxlbWVudGF0aW9ucyBhcyBpdCBleGNsdXNpdmVseSB0ZXN0cyBXZWJDb3JlIGZ1bmN0
aW9uYWxpdHkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmwuY3BwOgorCiAyMDEyLTA0LTIzICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5k
dW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gRUZMJ3MgTGF5b3V0VGVzdENvbnRyb2xs
ZXIgZG9lcyBub3QgaW1wbGVtZW50IGVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdp
dGhJZApJbmRleDogU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCShyZXZpc2lvbiAxMTQ5NDcpCisr
KyBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRF
ZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NSwyMSArODUsNiBAQCB2b2lkIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6Y2xlYXJPcGVuCiAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+c2V0T3Bl
bmVyKDApOwogfQogCi1TdHJpbmcgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpjb3VudGVyVmFs
dWVCeUVsZW1lbnRJZChjb25zdCBFdmFzX09iamVjdCogZXdrRnJhbWUsIGNvbnN0IGNoYXIqIGVs
ZW1lbnRJZCkKLXsKLSAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUgPSBFV0tQcml2YXRlOjpjb3Jl
RnJhbWUoZXdrRnJhbWUpOwotCi0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOwotCi0gICAgV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCA9IGZyYW1lLT5kb2N1bWVudCgp
LT5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwotCi0gICAgaWYgKCFlbGVtZW50KQotICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7Ci0KLSAgICByZXR1cm4gV2ViQ29yZTo6Y291bnRlclZhbHVlRm9y
RWxlbWVudChlbGVtZW50KTsKLX0KLQogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmVs
ZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZChjb25zdCBFdmFzX09iamVjdCog
ZXdrRnJhbWUsIGNvbnN0IFN0cmluZyYgZWxlbWVudElkKQogewogICAgIFdlYkNvcmU6OkZyYW1l
KiBmcmFtZSA9IEVXS1ByaXZhdGU6OmNvcmVGcmFtZShld2tGcmFtZSk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMTQ5NTMpCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNC0yMyAgS2F1c3R1YmggQXRy
YXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBbRFJUXSBMVEM6OiBj
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgpIGNvdWxkIGJlIG1vdmVkIHRvIEludGVybmFscy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NDA2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUg
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQgZnJvbSBMYXlvdXRUZXN0Q290cm9sbGVyIHRvIElu
dGVybmFscyBhbmQKKyAgICAgICAgcmVtb3ZlIHRoZSBvbGQgcGxhdGZvcm0gc3BlY2lmaWMgaW1w
bGVtZW50YXRpb25zIGFzIGl0IGV4Y2x1c2l2ZWx5IHRlc3RzIFdlYkNvcmUgZnVuY3Rpb25hbGl0
eS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5j
cHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6
CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGspOgorCiAyMDEyLTA0LTIyICBBZHJp
YW4gQnVuayAgPGJ1bmtAc3R1c3RhLmRlPgogCiAgICAgICAgIFtHVEtdIFJlbW92ZSB0aGUgb2Jz
b2xldGUgSGlsZG9uIFVJIGV4dGVuc2lvbnMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNw
cAkocmV2aXNpb24gMTE0OTQ3KQorKysgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg3LDI4ICsx
ODcsNiBAQCBDU3RyaW5nIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZHVtcFJlCiB9CiAKIC8q
KgotICogY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQ6Ci0gKiBAZnJhbWU6IGEgI1dlYktpdFdl
YkZyYW1lCi0gKiBAaWQ6IGFuIGVsZW1lbnQgSUQgc3RyaW5nCi0gKgotICogUmV0dXJuIHZhbHVl
OiBUaGUgY291bnRlciB2YWx1ZSBvZiBlbGVtZW50IEBpZCBpbiBAZnJhbWUKLSAqLwotQ1N0cmlu
ZyBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKFdl
YktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgY2hhciogaWQpCi17Ci0gICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIENTdHJpbmcoKSk7Ci0KLSAgICBG
cmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAg
ICAgIHJldHVybiBDU3RyaW5nKCk7Ci0KLSAgICBFbGVtZW50KiBjb3JlRWxlbWVudCA9IGNvcmVG
cmFtZS0+ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoQXRvbWljU3RyaW5nKGlkKSk7Ci0gICAg
aWYgKCFjb3JlRWxlbWVudCkKLSAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKLQotICAgIHJldHVy
biBjb3VudGVyVmFsdWVGb3JFbGVtZW50KGNvcmVFbGVtZW50KS51dGY4KCk7Ci19Ci0KLS8qKgog
ICogbnVtYmVyRm9yRWxlbWVudEJ5SWQKICAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKICAq
IEBpZDogYW4gZWxlbWVudCBJRCBzdHJpbmcKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCShy
ZXZpc2lvbiAxMTQ5NDcpCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNiBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIEdTTGlzdCogZ2V0RnJhbWVDaGlsZHJlbihXZWJLaXRXZWJGcmFt
ZSopOwogICAgIHN0YXRpYyBXVEY6OkNTdHJpbmcgZ2V0SW5uZXJUZXh0KFdlYktpdFdlYkZyYW1l
Kik7CiAgICAgc3RhdGljIFdURjo6Q1N0cmluZyBkdW1wUmVuZGVyVHJlZShXZWJLaXRXZWJGcmFt
ZSopOwotICAgIHN0YXRpYyBXVEY6OkNTdHJpbmcgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
V2ViS2l0V2ViRnJhbWUqLCBjb25zdCBjaGFyKiBpZCk7CiAgICAgc3RhdGljIGludCBwYWdlTnVt
YmVyRm9yRWxlbWVudEJ5SWQoV2ViS2l0V2ViRnJhbWUqLCBjb25zdCBjaGFyKiBpZCwgZmxvYXQg
cGFnZVdpZHRoLCBmbG9hdCBwYWdlSGVpZ2h0KTsKICAgICBzdGF0aWMgaW50IG51bWJlck9mUGFn
ZXNGb3JGcmFtZShXZWJLaXRXZWJGcmFtZSosIGZsb2F0IHBhZ2VXaWR0aCwgZmxvYXQgcGFnZUhl
aWdodCk7CiAgICAgc3RhdGljIFdURjo6Q1N0cmluZyBwYWdlUHJvcGVydHkoV2ViS2l0V2ViRnJh
bWUqLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIGludCBwYWdlTnVtYmVyKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDk1MykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA0LTIzICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFtEUlRdIExU
Qzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkgY291bGQgYmUgbW92ZWQgdG8gSW50ZXJu
YWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0
MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3Zl
IHRoZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCBmcm9tIExheW91dFRlc3RDb3Ryb2xsZXIg
dG8gSW50ZXJuYWxzIGFuZAorICAgICAgICByZW1vdmUgdGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZp
YyBpbXBsZW1lbnRhdGlvbnMgYXMgaXQgZXhjbHVzaXZlbHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlv
bmFsaXR5LgorCisgICAgICAgICogTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5oOgorICAgICAgICAq
IE1pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW06CisgICAgICAgICogV2ViS2l0Lm9yZGVyOgorCiAy
MDEyLTA0LTIyICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUg
bm90aWZpY2F0aW9ucyBzdXBwb3J0IG9uIE1hYyBMaW9uLgpJbmRleDogU291cmNlL1dlYktpdC9t
YWMvV2ViS2l0Lm9yZGVyCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5v
cmRlcgkocmV2aXNpb24gMTE0OTQ3KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViS2l0Lm9yZGVy
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzUzLDcgKzE3NTMsNiBAQCBfX1pOSzIwV2ViRnJhbWVMb2Fk
ZXJDbGllbnQyMXNob3VsZEdvVG9ICiAtW1dlYkRlZmF1bHRQb2xpY3lEZWxlZ2F0ZSB3ZWJWaWV3
OnNob3VsZEdvVG9IaXN0b3J5SXRlbTpdCiAtW1dlYlZpZXcoV2ViUGVuZGluZ1B1YmxpYykgem9v
bVBhZ2VPdXQ6XQogLVtXZWJWaWV3IF96b29tT3V0OmlzVGV4dE9ubHk6XQotLVtXZWJGcmFtZShX
ZWJLaXREZWJ1ZykgY291bnRlclZhbHVlRm9yRWxlbWVudDpdCiBfX1pOMTVXZWJDaHJvbWVDbGll
bnQxMHdpbmRvd1JlY3RFdgogX19aTjE1V2ViQ2hyb21lQ2xpZW50MTFjYW5SdW5Nb2RhbEV2CiBf
X1pOMjBXZWJGcmFtZUxvYWRlckNsaWVudDI3ZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50RVBO
N1dlYkNvcmUxNUhUTUxGb3JtRWxlbWVudEUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL01pc2Mv
V2ViQ29yZVN0YXRpc3RpY3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9NaXNj
L1dlYkNvcmVTdGF0aXN0aWNzLmgJKHJldmlzaW9uIDExNDk0NykKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MuaAkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQs
NiBAQCBAaW50ZXJmYWNlIFdlYkNvcmVTdGF0aXN0aWNzIDogTlNPYmplY3QKIAogQGludGVyZmFj
ZSBXZWJGcmFtZSAoV2ViS2l0RGVidWcpCiAtIChOU1N0cmluZyAqKXJlbmRlclRyZWVBc0V4dGVy
bmFsUmVwcmVzZW50YXRpb25Gb3JQcmludGluZzooQk9PTClmb3JQcmludGluZzsKLS0gKE5TU3Ry
aW5nICopY291bnRlclZhbHVlRm9yRWxlbWVudDooRE9NRWxlbWVudCopZWxlbWVudDsKIC0gKGlu
dClwYWdlTnVtYmVyRm9yRWxlbWVudDooRE9NRWxlbWVudCopZWxlbWVudDooZmxvYXQpcGFnZVdp
ZHRoSW5QaXhlbHM6KGZsb2F0KXBhZ2VIZWlnaHRJblBpeGVsczsKIC0gKGludCludW1iZXJPZlBh
Z2VzOihmbG9hdClwYWdlV2lkdGhJblBpeGVsczooZmxvYXQpcGFnZUhlaWdodEluUGl4ZWxzOwog
LSAoTlNTdHJpbmcgKilwYWdlUHJvcGVydHk6KGNvbnN0IGNoYXIqKXByb3BlcnR5TmFtZTooaW50
KXBhZ2VOdW1iZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0
aWNzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRp
c3RpY3MubW0JKHJldmlzaW9uIDExNDk0NykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2Vi
Q29yZVN0YXRpc3RpY3MubW0JKHdvcmtpbmcgY29weSkKQEAgLTI2OCwxMSArMjY4LDYgQEAgLSAo
TlNTdHJpbmcgKilyZW5kZXJUcmVlQXNFeHRlcm5hbFJlcHJlcwogICAgIHJldHVybiBleHRlcm5h
bFJlcHJlc2VudGF0aW9uKF9wcml2YXRlLT5jb3JlRnJhbWUsIGZvclByaW50aW5nID8gUmVuZGVy
QXNUZXh0UHJpbnRpbmdNb2RlIDogUmVuZGVyQXNUZXh0QmVoYXZpb3JOb3JtYWwpOwogfQogCi0t
IChOU1N0cmluZyAqKWNvdW50ZXJWYWx1ZUZvckVsZW1lbnQ6KERPTUVsZW1lbnQqKWVsZW1lbnQK
LXsKLSAgICByZXR1cm4gY291bnRlclZhbHVlRm9yRWxlbWVudChjb3JlKGVsZW1lbnQpKTsKLX0K
LQogLSAoaW50KXBhZ2VOdW1iZXJGb3JFbGVtZW50OihET01FbGVtZW50KillbGVtZW50OihmbG9h
dClwYWdlV2lkdGhJblBpeGVsczooZmxvYXQpcGFnZUhlaWdodEluUGl4ZWxzCiB7CiAgICAgcmV0
dXJuIFByaW50Q29udGV4dDo6cGFnZU51bWJlckZvckVsZW1lbnQoY29yZShlbGVtZW50KSwgRmxv
YXRTaXplKHBhZ2VXaWR0aEluUGl4ZWxzLCBwYWdlSGVpZ2h0SW5QaXhlbHMpKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCShyZXZpc2lvbiAxMTQ5NTMpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA0LTIzICBLYXVzdHViaCBB
dHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFtEUlRdIExUQzo6
IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkgY291bGQgYmUgbW92ZWQgdG8gSW50ZXJuYWxz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0MDYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRo
ZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCBmcm9tIExheW91dFRlc3RDb3Ryb2xsZXIgdG8g
SW50ZXJuYWxzIGFuZAorICAgICAgICByZW1vdmUgdGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZpYyBp
bXBsZW1lbnRhdGlvbnMgYXMgaXQgZXhjbHVzaXZlbHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlvbmFs
aXR5LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
Y3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Lmg6
CisKIDIwMTItMDQtMTggIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBub2tp
YS5jb20+CiAKICAgICAgICAgQ2xlYW4tdXAgV2hlZWxFdmVudCBDb252ZXJzaW9uLgpJbmRleDog
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5jcHAJKHJldmlzaW9uIDExNDk0NykKKysrIFNvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00NDQsMTcgKzQ0NCw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6Omdh
cmJhZ2VDb2wKICNlbmRpZgogfQogCi0vLyBSZXR1cm5zIHRoZSB2YWx1ZSBvZiBjb3VudGVyIGlu
IHRoZSBlbGVtZW50IHNwZWNpZmllZCBieSBcYSBpZC4KLVFTdHJpbmcgRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQ6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKFFXZWJGcmFtZSogZnJhbWUsIGNv
bnN0IFFTdHJpbmcmIGlkKQotewotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBRV2ViRnJhbWVQcml2
YXRlOjpjb3JlKGZyYW1lKTsKLSAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gY29yZUZyYW1l
LT5kb2N1bWVudCgpKSB7Ci0gICAgICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gZG9jdW1lbnQt
PmdldEVsZW1lbnRCeUlkKGlkKSkKLSAgICAgICAgICAgIHJldHVybiBXZWJDb3JlOjpjb3VudGVy
VmFsdWVGb3JFbGVtZW50KGVsZW1lbnQpOwotICAgIH0KLSAgICByZXR1cm4gUVN0cmluZygpOwot
fQotCiBpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJ
ZChRV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBRU3RyaW5nJiBpZCwgZmxvYXQgd2lkdGgsIGZsb2F0
IGhlaWdodCkKIHsKICAgICBGcmFtZSogY29yZUZyYW1lID0gUVdlYkZyYW1lUHJpdmF0ZTo6Y29y
ZShmcmFtZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCShyZXZpc2lvbiAxMTQ5NDcpCisrKyBT
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEzNiw3ICsxMzYsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZv
aWQgd2ViSW5zcGVjdG9yQ2xvc2UoUVdlYlBhZ2UqIHBhZ2UpOwogCiAgICAgc3RhdGljIFFTdHJp
bmcgd2ViUGFnZUdyb3VwTmFtZShRV2ViUGFnZSAqcGFnZSk7Ci0gICAgc3RhdGljIFFTdHJpbmcg
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoUVdlYkZyYW1lKiBmcmFtZSwgY29uc3QgUVN0cmlu
ZyYgaWQpOwogICAgIHN0YXRpYyB2b2lkIHdlYlBhZ2VTZXRHcm91cE5hbWUoUVdlYlBhZ2UqIHBh
Z2UsIGNvbnN0IFFTdHJpbmcmIGdyb3VwTmFtZSk7CiAgICAgc3RhdGljIHZvaWQgY2xlYXJGcmFt
ZU5hbWUoUVdlYkZyYW1lKiBmcmFtZSk7CiAgICAgc3RhdGljIHZvaWQgb3ZlcndyaXRlUGx1Z2lu
RGlyZWN0b3JpZXMoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDk1MykKKysr
IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3
IEBACisyMDEyLTA0LTIzICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEu
Y29tPgorCisgICAgICAgIFtEUlRdIExUQzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkg
Y291bGQgYmUgbW92ZWQgdG8gSW50ZXJuYWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRoZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCBm
cm9tIExheW91dFRlc3RDb3Ryb2xsZXIgdG8gSW50ZXJuYWxzIGFuZAorICAgICAgICByZW1vdmUg
dGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgYXMgaXQgZXhjbHVzaXZl
bHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogSW50ZXJmYWNlcy9J
V2ViRnJhbWVQcml2YXRlLmlkbDoKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgICog
V2ViRnJhbWUuaDoKKwogMjAxMi0wNC0yMCAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW3dpbl0gVXBkYXRlIHdpbmRvd3MgcGxhdGZvcm0gY29kZSB0byB1c2Ug
cGl4ZWwgc25hcHBlZCB2YWx1ZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAJKHJldmlzaW9u
IDExNDk0NykKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODg4LDI1ICs4ODgsNiBAQCBIUkVTVUxUIFdlYkZyYW1lOjpyZW5kZXJUcmVlQXNFeHRl
cm5hbFJlCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
V2ViRnJhbWU6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKAotICAgIC8qIFtpbl0gKi8gQlNU
UiBpZCwgLyogW3JldHZhbF1bb3V0XSAqLyBCU1RSICpyZXN1bHQpCi17Ci0gICAgaWYgKCFyZXN1
bHQpCi0gICAgICAgIHJldHVybiBFX1BPSU5URVI7Ci0KLSAgICBGcmFtZSogY29yZUZyYW1lID0g
Y29yZSh0aGlzKTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuIEVfRkFJTDsK
LQotICAgIFN0cmluZyBjb3JlSWQgPSBTdHJpbmcoaWQsIFN5c1N0cmluZ0xlbihpZCkpOwotCi0g
ICAgRWxlbWVudCogZWxlbWVudCA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5
SWQoY29yZUlkKTsKLSAgICBpZiAoIWVsZW1lbnQpCi0gICAgICAgIHJldHVybiBFX0ZBSUw7Ci0g
ICAgKnJlc3VsdCA9IEJTdHJpbmcoY291bnRlclZhbHVlRm9yRWxlbWVudChlbGVtZW50KSkucmVs
ZWFzZSgpOwotICAgIHJldHVybiBTX09LOwotfQotCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IFdlYkZyYW1lOjpwYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoCiAgICAgLyogW2luXSAqLyBCU1RS
IGlkLAogICAgIC8qIFtpbl0gKi8gZmxvYXQgcGFnZVdpZHRoSW5QaXhlbHMsCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2lu
L1dlYkZyYW1lLmgJKHJldmlzaW9uIDExNDk0NykKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkZy
YW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2MywxMCArMTYzLDYgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB1bnVzZWQxKEJTVFIqKSB7IHJldHVybiBF
X05PVElNUEw7IH0KICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVuZGVy
VHJlZUFzRXh0ZXJuYWxSZXByZXNlbnRhdGlvbihCT09MIGZvclByaW50aW5nLCBCU1RSICpyZXN1
bHQpOwogCi0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKAotICAgICAgICAvKiBbaW5dICovIEJTVFIgaWQsCi0gICAgICAgIC8q
IFtyZXR2YWxdW291dF0gKi8gQlNUUiAqcmVzdWx0KTsKLQogICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBwYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoCiAgICAgICAgIC8qIFtp
bl0gKi8gQlNUUiBpZCwKICAgICAgICAgLyogW2luXSAqLyBmbG9hdCBwYWdlV2lkdGhJblBpeGVs
cywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYkZyYW1lUHJpdmF0ZS5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViRnJhbWVQ
cml2YXRlLmlkbAkocmV2aXNpb24gMTE0OTQ3KQorKysgU291cmNlL1dlYktpdC93aW4vSW50ZXJm
YWNlcy9JV2ViRnJhbWVQcml2YXRlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtOTYsOCArOTYsNiBA
QCBpbnRlcmZhY2UgSVdlYkZyYW1lUHJpdmF0ZSA6IElVbmtub3duCiAKICAgICBbbG9jYWxdIEpT
R2xvYmFsQ29udGV4dFJlZiBnbG9iYWxDb250ZXh0Rm9yU2NyaXB0V29ybGQoW2luXSBJV2ViU2Ny
aXB0V29ybGQqKTsKIAotICAgIEhSRVNVTFQgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoW2lu
XSBCU1RSIGlkLCBbb3V0LCByZXR2YWxdIEJTVFIqIHJlc3VsdCk7Ci0KICAgICBIUkVTVUxUIHZp
c2libGVDb250ZW50UmVjdChbb3V0LCByZXR2YWxdIFJFQ1QqKTsKIAogICAgIEhSRVNVTFQgcGFn
ZU51bWJlckZvckVsZW1lbnRCeUlkKFtpbl0gQlNUUiBpZCwgW2luXSBmbG9hdCBwYWdlV2lkdGhJ
blBpeGVscywgW2luXSBmbG9hdCBwYWdlSGVpZ2h0SW5QaXhlbHMsIFtvdXQsIHJldHZhbF0gaW50
KiBwYWdlTnVtYmVyKTsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDk1MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA0LTIzICBLYXVzdHViaCBBdHJhd2Fsa2Fy
ICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFtEUlRdIExUQzo6IGNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCkgY291bGQgYmUgbW92ZWQgdG8gSW50ZXJuYWxzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0MDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRoZSBjb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCBmcm9tIExheW91dFRlc3RDb3Ryb2xsZXIgdG8gSW50ZXJuYWxz
IGFuZAorICAgICAgICByZW1vdmUgdGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRh
dGlvbnMgYXMgaXQgZXhjbHVzaXZlbHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlvbmFsaXR5LgorCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RD
b250cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRl
c3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxl
ckVmbC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9s
bGVyR3RrLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRy
b2xsZXJNYWMubW06CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHA6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJv
bGxlci5pZGw6CisKIDIwMTItMDQtMjMgIEhhbyBaaGVuZyAgPHpoZW5naGFvQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBbY2hyb21pdW0tYW5kcm9pZF0gR2V0IHJpZCBvZiB0aGUgdHJpY2sgdGhh
dCByZXBsYWNlcyBzeXN0ZW0gZmFsbGJhY2sgZm9udCB3aXRoIERlamFWdVNhbnMuCkluZGV4OiBU
b29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lv
biAxMTQ5NDcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY2MSwyMiArNjYxLDYgQEAgc3RhdGljIEpTVmFsdWVSZWYg
ZmluZFN0cmluZ0NhbGxiYWNrKEpTQwogICAgIHJldHVybiBKU1ZhbHVlTWFrZUJvb2xlYW4oY29u
dGV4dCwgY29udHJvbGxlci0+ZmluZFN0cmluZyhjb250ZXh0LCB0YXJnZXQuZ2V0KCksIG9wdGlv
bnMpKTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWRD
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2Jq
ZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgaWYgKGFyZ3VtZW50
Q291bnQgPCAxKQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
Ci0KLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gZWxlbWVudElkKEFkb3B0LCBKU1ZhbHVl
VG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7Ci0gICAgaWYg
KCpleGNlcHRpb24pCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KTsKLQotICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8
TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwot
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWUoY29udHJvbGxlci0+Y291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoZWxlbWVudElkLmdldCgpKSk7Ci0gICAgaWYgKCFjb3Vu
dGVyVmFsdWUuZ2V0KCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250
ZXh0KTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgY291bnRlclZhbHVl
LmdldCgpKTsKLX0KLQogc3RhdGljIEpTVmFsdWVSZWYgZ29CYWNrQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0
LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9s
bGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZh
dGUodGhpc09iamVjdCkpOwpAQCAtMjM1NCw3ICsyMzM4LDYgQEAgSlNTdGF0aWNGdW5jdGlvbiog
TGF5b3V0VGVzdENvbnRyb2xsZXI6OgogICAgICAgICB7ICJldmFsdWF0ZVNjcmlwdEluSXNvbGF0
ZWRXb3JsZCIsIGV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAiZXhlY0NvbW1hbmQiLCBleGVjQ29tbWFuZENhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgImZpbmRTdHJpbmciLCBmaW5kU3RyaW5nQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAg
ICAgeyAiY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQiLCBjb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgIm9yaWdpbnNXaXRoQXBwbGljYXRpb25D
YWNoZSIsIG9yaWdpbnNXaXRoQXBwbGljYXRpb25DYWNoZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
ICAgIHsgImdvQmFjayIsIGdvQmFja0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sIAogICAgICAgICB7ICJncmFu
dERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uIiwgZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9u
UGVybWlzc2lvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sIApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCShyZXZpc2lvbiAxMTQ5NDcpCisrKyBUb29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3
ICs1Niw2IEBAIHB1YmxpYzoKICAgICBib29sIGNhbGxTaG91bGRDbG9zZU9uV2ViVmlldygpOwog
ICAgIEpTU3RyaW5nUmVmIGNvcHlEZWNvZGVkSG9zdE5hbWUoSlNTdHJpbmdSZWYgbmFtZSk7CiAg
ICAgSlNTdHJpbmdSZWYgY29weUVuY29kZWRIb3N0TmFtZShKU1N0cmluZ1JlZiBuYW1lKTsKLSAg
ICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoSlNT
dHJpbmdSZWYgaWQpOwogICAgIHZvaWQgZGlzYWJsZUltYWdlTG9hZGluZygpOwogICAgIHZvaWQg
ZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcXVlc3RzKCk7CiAgICAgdm9pZCBkaXNwbGF5KCk7CkluZGV4
OiBUb29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxh
Y2tCZXJyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJy
eS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnkuY3BwCShyZXZpc2lvbiAxMTQ5NDcpCisr
KyBUb29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxh
Y2tCZXJyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzNSwyMSArNDM1LDYgQEAgdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6ZGlzYWJsZUltYWdlTAogICAgIEJsYWNrQmVycnk6OldlYktpdDo6
RHVtcFJlbmRlclRyZWU6OmN1cnJlbnRJbnN0YW5jZSgpLT5wYWdlKCktPnNldHRpbmdzKCktPnNl
dExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShmYWxzZSk7CiB9CiAKLUpTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
SlNTdHJpbmdSZWYgaWQpCi17Ci0gICAgU3RyaW5nIGlkU3RyID0ganNTdHJpbmdSZWZUb1dlYkNv
cmVTdHJpbmcoaWQpOwotICAgIFdlYkNvcmU6OkVsZW1lbnQqIGNvcmVFbGVtZW50ID0gbWFpbkZy
YW1lLT5kb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJZChBdG9taWNTdHJpbmcoaWRTdHIpKTsKLSAg
ICBpZiAoIWNvcmVFbGVtZW50KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIENTdHJpbmcgY291
bnRlclZhbHVlU3RyID0gY291bnRlclZhbHVlRm9yRWxlbWVudChjb3JlRWxlbWVudCkudXRmOCgp
OwotICAgIGlmIChjb3VudGVyVmFsdWVTdHIuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiAwOwot
Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNvdW50ZXJWYWx1ZShBZG9wdCwgSlNTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoY291bnRlclZhbHVlU3RyLmRhdGEoKSkpOwotICAgIHJl
dHVybiBjb3VudGVyVmFsdWU7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om92ZXJy
aWRlUHJlZmVyZW5jZShKU1N0cmluZ1JlZiBrZXksIEpTU3RyaW5nUmVmIHZhbHVlKQogewogICAg
IGlmICghbWFpbkZyYW1lKQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMTE0OTQ3KQorKysg
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDAsNyArMTAwLDYgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6Okxh
eW91dFRlc3RDb250cm9sbAogICAgIGJpbmRNZXRob2QoImFkZFVzZXJTdHlsZVNoZWV0IiwgJkxh
eW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldCk7CiAgICAgYmluZE1ldGhvZCgi
Y2xlYXJBbGxEYXRhYmFzZXMiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNsZWFyQWxsRGF0YWJh
c2VzKTsKICAgICBiaW5kTWV0aG9kKCJjbG9zZVdlYkluc3BlY3RvciIsICZMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6Y2xvc2VXZWJJbnNwZWN0b3IpOwotICAgIGJpbmRNZXRob2QoImNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpjb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCk7CiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICBiaW5kTWV0aG9kKCJk
aWRMb3NlUG9pbnRlckxvY2siLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRpZExvc2VQb2ludGVy
TG9jayk7CiAjZW5kaWYKQEAgLTE2MzIsMjAgKzE2MzEsNiBAQCB2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpzZXRQT1NJWExvY2FsCiAgICAgICAgIHNldGxvY2FsZShMQ19BTEwsIGFyZ3VtZW50
c1swXS50b1N0cmluZygpLmNfc3RyKCkpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVy
Ojpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotICAg
IGlmIChhcmd1bWVudHMuc2l6ZSgpIDwgMSB8fCAhYXJndW1lbnRzWzBdLmlzU3RyaW5nKCkpCi0g
ICAgICAgIHJldHVybjsKLSAgICBXZWJGcmFtZSogZnJhbWUgPSBtX3NoZWxsLT53ZWJWaWV3KCkt
Pm1haW5GcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybjsKLSAgICBXZWJT
dHJpbmcgY291bnRlclZhbHVlID0gZnJhbWUtPmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGNw
cFZhcmlhbnRUb1dlYlN0cmluZyhhcmd1bWVudHNbMF0pKTsKLSAgICBpZiAoY291bnRlclZhbHVl
LmlzTnVsbCgpKQotICAgICAgICByZXR1cm47Ci0gICAgcmVzdWx0LT5zZXQoY291bnRlclZhbHVl
LnV0ZjgoKSk7Ci19Ci0KIC8vIFBhcnNlIGEgc2luZ2xlIGFyZ3VtZW50LiBUaGUgbWV0aG9kIHJl
dHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBhbiBhcmd1bWVudCB0aGF0CiAvLyBpcyBhIG51bWJlciBv
ciBpZiB0aGVyZSBpcyBubyBhcmd1bWVudCBhdCBhbGwuIEl0IHJldHVybnMgZmFsc2Ugb25seSBp
ZiB0aGVyZQogLy8gaXMgc29tZSBhcmd1bWVudCB0aGF0IGlzIG5vdCBhIG51bWJlci4gVGhlIHZh
bHVlIHBhcmFtZXRlciBpcyBmaWxsZWQgd2l0aCB0aGUKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkocmV2aXNpb24g
MTE0OTQ3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzIzLDkgKzMyMyw2IEBAIHB1YmxpYzoKICAgICAv
LyBSZXNldHMgYmV0d2VlbiB0ZXN0cy4KICAgICB2b2lkIHNldFBPU0lYTG9jYWxlKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAotICAgIC8vIEdldHMgdGhlIHZhbHVlIG9m
IHRoZSBjb3VudGVyIGluIHRoZSBlbGVtZW50IHNwZWNpZmllZCBieSBpdHMgSUQuCi0gICAgdm9p
ZCBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50Kik7Ci0KICAgICAvLyBDYXVzZXMgbGF5b3V0IHRvIGhhcHBlbiBhcyBpZiB0YXJnZXR0
ZWQgdG8gcHJpbnRlZCBwYWdlcy4KICAgICB2b2lkIHNldFByaW50aW5nKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCShyZXZpc2lvbiAxMTQ5NDcp
CisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05OSwxMyArOTksNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpkaXNwbGF5KCkKICAgICBkaXNwbGF5V2ViVmlldygpOwogfQogCi1KU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKEpTU3RyaW5nUmVmIGlkKQotewotICAgIGNvbnN0IEV2YXNfT2JqZWN0KiBtYWluRnJhbWUg
PSBicm93c2VyLT5tYWluRnJhbWUoKTsKLSAgICBjb25zdCBTdHJpbmcgY291bnRlclZhbHVlKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Y291bnRlclZhbHVlQnlFbGVtZW50SWQobWFpbkZyYW1l
LCBpZC0+dXN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKLSAgICByZXR1cm4gSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+KEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhjb3VudGVy
VmFsdWUudXRmOCgpLmRhdGEoKSkpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpr
ZWVwV2ViSGlzdG9yeSgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKSW5kZXg6IFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAko
cmV2aXNpb24gMTE0OTQ3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RD
b250cm9sbGVyR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDE3ICsxMDIsNiBAQCB2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpkaXNwbGF5KCkKICAgICBkaXNwbGF5V2ViVmlldygpOwog
fQogCi1KU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkKQotewotICAgIGdjaGFyKiBpZEdD
aGFyID0gSlNTdHJpbmdDb3B5VVRGOENTdHJpbmcoaWQpOwotICAgIENTdHJpbmcgY291bnRlclZh
bHVlR0NoYXIgPSBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKG1haW5GcmFtZSwgaWRHQ2hhcik7Ci0gICAgZ19mcmVlKGlkR0NoYXIpOwotICAgIGlm
IChjb3VudGVyVmFsdWVHQ2hhci5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNvdW50ZXJWYWx1ZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoY291bnRlclZhbHVlR0NoYXIuZGF0YSgpKSk7Ci0gICAgcmV0dXJuIGNv
dW50ZXJWYWx1ZTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6a2VlcFdlYkhpc3Rv
cnkoKQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0JKHJldmlzaW9uIDEx
NDk0NykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1h
Yy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQ5LDE5ICsyNDksNiBAQCB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpkaXNwbGF5KCkKICAgICBkaXNwbGF5V2ViVmlldygpOwogfQogCi1KU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkKQotewotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4g
aWRDRihBZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBp
ZCkpOwotICAgIE5TU3RyaW5nICppZE5TID0gKE5TU3RyaW5nICopaWRDRi5nZXQoKTsKLQotICAg
IERPTUVsZW1lbnQgKmVsZW1lbnQgPSBbW21haW5GcmFtZSBET01Eb2N1bWVudF0gZ2V0RWxlbWVu
dEJ5SWQ6aWROU107Ci0gICAgaWYgKCFlbGVtZW50KQotICAgICAgICByZXR1cm4gMDsKLQotICAg
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWUoQWRvcHQsIEpTU3RyaW5nQ3Jl
YXRlV2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZilbbWFpbkZyYW1lIGNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnQ6ZWxlbWVudF0pKTsKLSAgICByZXR1cm4gY291bnRlclZhbHVlOwotfQotCiB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjprZWVwV2ViSGlzdG9yeSgpCiB7CiAgICAgaWYgKCFbV2ViSGlz
dG9yeSBvcHRpb25hbFNoYXJlZEhpc3RvcnldKSB7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAkocmV2aXNpb24gMTE0OTQ3
KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE1NSwxMSArMTU1LDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6d2FpdFVudGlsRG9uZQogICAgIG1fdGltZW91dFRpbWVyLnN0YXJ0KG1fdGltZW91dCwg
dGhpcyk7CiB9CiAKLVFTdHJpbmcgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKGNvbnN0IFFTdHJpbmcmIGlkKQotewotICAgIHJldHVybiBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdDo6Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQobV9kcnQtPndlYlBhZ2Uo
KS0+bWFpbkZyYW1lKCksIGlkKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
Vmlld01vZGVNZWRpYUZlYXR1cmUoY29uc3QgUVN0cmluZyYgbW9kZSkKIHsKICAgICBtX2RydC0+
d2ViUGFnZSgpLT5zZXRQcm9wZXJ0eSgiX3Ffdmlld01vZGUiLCBtb2RlKTsKSW5kZXg6IFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgJKHJldmlz
aW9uIDExNDk0NykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9s
bGVyUXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDcgKzEwNSw2IEBAIHB1YmxpYyBzbG90czoK
ICAgICB2b2lkIHNldENhbk9wZW5XaW5kb3dzKCkgeyBtX2Nhbk9wZW5XaW5kb3dzID0gdHJ1ZTsg
fQogICAgIHZvaWQgc2V0UHJpbnRpbmcoKSB7IG1faXNQcmludGluZyA9IHRydWU7IH0KICAgICB2
b2lkIHdhaXRVbnRpbERvbmUoKTsKLSAgICBRU3RyaW5nIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKGNvbnN0IFFTdHJpbmcmIGlkKTsKICAgICBpbnQgd2ViSGlzdG9yeUl0ZW1Db3VudCgpOwog
ICAgIHZvaWQga2VlcFdlYkhpc3RvcnkoKTsKICAgICB2b2lkIG5vdGlmeURvbmUoKTsKSW5kZXg6
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVy
V2luLmNwcAkocmV2aXNpb24gMTE0OTQ3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xh
eW91dFRlc3RDb250cm9sbGVyV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMzMSwyNSArMTMz
MSw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZUFsbFZpc2kKICAgICBzaGFy
ZWRIaXN0b3J5UHJpdmF0ZS0+cmVtb3ZlQWxsVmlzaXRlZExpbmtzKCk7CiB9CiAKLUpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoSlNTdHJpbmdSZWYgaWQpCi17Ci0gICAgQ09NUHRyPElXZWJGcmFtZVByaXZhdGU+
IGZyYW1lUHJpdmF0ZShRdWVyeSwgZnJhbWUpOwotICAgIGlmICghZnJhbWVQcml2YXRlKQotICAg
ICAgICByZXR1cm4gMDsKLQotICAgIHdzdHJpbmcgaWRXc3RyaW5nID0ganNTdHJpbmdSZWZUb1dT
dHJpbmcoaWQpOwotICAgIEJTVFIgaWRCU1RSID0gU3lzQWxsb2NTdHJpbmdMZW4oKE9MRUNIQVIq
KWlkV3N0cmluZy5jX3N0cigpLCBpZFdzdHJpbmcubGVuZ3RoKCkpOwotICAgIEJTVFIgY291bnRl
clZhbHVlQlNUUjsKLSAgICBpZiAoRkFJTEVEKGZyYW1lUHJpdmF0ZS0+Y291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoaWRCU1RSLCAmY291bnRlclZhbHVlQlNUUikpKQotICAgICAgICByZXR1cm4g
MDsKLQotICAgIHdzdHJpbmcgY291bnRlclZhbHVlKGNvdW50ZXJWYWx1ZUJTVFIsIFN5c1N0cmlu
Z0xlbihjb3VudGVyVmFsdWVCU1RSKSk7Ci0gICAgU3lzRnJlZVN0cmluZyhpZEJTVFIpOwotICAg
IFN5c0ZyZWVTdHJpbmcoY291bnRlclZhbHVlQlNUUik7Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IGNvdW50ZXJWYWx1ZUpTKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJz
KGNvdW50ZXJWYWx1ZS5kYXRhKCksIGNvdW50ZXJWYWx1ZS5sZW5ndGgoKSkpOwotICAgIHJldHVy
biBjb3VudGVyVmFsdWVKUzsKLX0KLQogaW50IExheW91dFRlc3RDb250cm9sbGVyOjpwYWdlTnVt
YmVyRm9yRWxlbWVudEJ5SWQoSlNTdHJpbmdSZWYgaWQsIGZsb2F0IHBhZ2VXaWR0aEluUGl4ZWxz
LCBmbG9hdCBwYWdlSGVpZ2h0SW5QaXhlbHMpCiB7CiAgICAgQ09NUHRyPElXZWJGcmFtZVByaXZh
dGU+IGZyYW1lUHJpdmF0ZShRdWVyeSwgZnJhbWUpOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVt
cFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAJKHJldmlzaW9uIDExNDk0
NykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00ODEsMTEgKzQ4MSw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldFNjcm9sbGJhclAKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKLUpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoSlNTdHJpbmdSZWYgaWQpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIGludCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6cGFnZU51bWJlckZvckVsZW1lbnRCeUlkKEpTU3RyaW5nUmVm
LCBmbG9hdCwgZmxvYXQpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudApJbmRleDogVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJv
bGxlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwJKHJldmlzaW9uIDExNDk0NykK
KysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0
VGVzdENvbnRyb2xsZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Myw3ICs2Myw2IEBAIG1vZHVs
ZSBXVFIgewogICAgICAgICAvLyBTcGVjaWFsIERPTSBmdW5jdGlvbnMuCiAgICAgICAgIHZvaWQg
Y2xlYXJCYWNrRm9yd2FyZExpc3QoKTsKICAgICAgICAgb2JqZWN0IGNvbXB1dGVkU3R5bGVJbmNs
dWRpbmdWaXNpdGVkSW5mbyhpbiBvYmplY3QgZWxlbWVudCk7Ci0gICAgICAgIERPTVN0cmluZyBj
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChpbiBET01TdHJpbmcgZWxlbWVudElkKTsKICAgICAg
ICAgdm9pZCBleGVjQ29tbWFuZChpbiBET01TdHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5nIGFyZ3Vt
ZW50KTsKICAgICAgICAgYm9vbGVhbiBpc0NvbW1hbmRFbmFibGVkKGluIERPTVN0cmluZyBuYW1l
KTsKICAgICAgICAgRE9NU3RyaW5nIG1hcmtlclRleHRGb3JMaXN0SXRlbShpbiBvYmplY3QgZWxl
bWVudCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTQ5NTMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MSBAQAorMjAxMi0wNC0yMyAgS2F1c3R1Ymgg
QXRyYXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBbRFJUXSBMVEM6
OiBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgpIGNvdWxkIGJlIG1vdmVkIHRvIEludGVybmFs
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NDA2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0
aGUgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQgZnJvbSBMYXlvdXRUZXN0Q290cm9sbGVyIHRv
IEludGVybmFscyBhbmQKKyAgICAgICAgcmVtb3ZlIHRoZSBvbGQgcGxhdGZvcm0gc3BlY2lmaWMg
aW1wbGVtZW50YXRpb25zIGFzIGl0IGV4Y2x1c2l2ZWx5IHRlc3RzIFdlYkNvcmUgZnVuY3Rpb25h
bGl0eS4KKworICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzLzJkaXNwbGF5cy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvMmRpc3BsYXlzLmh0bWw6CisgICAgICAg
ICogZmFzdC9jc3MvY291bnRlcnMvYWRkaW5nLW5vZGVzLmh0bWw6CisgICAgICAgICogZmFzdC9j
c3MvY291bnRlcnMvYWZ0ZXItY29udGludWF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2Nzcy9jb3VudGVycy9hZnRlci1jb250aW51YXRpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0
L2Nzcy9jb3VudGVycy9jb250ZW50LTAyMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9j
c3MvY291bnRlcnMvY29udGVudC0wMjEuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVy
cy9jb3VudGVyLWJlZm9yZS1jb250ZW50LW5vdC1pbmNyZW1lbnRlZC5odG1sOgorICAgICAgICAq
IGZhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAwLmh0bWw6Cisg
ICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAxLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDEu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDIu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC1pbmhl
cml0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWlu
Y3JlbWVudC1pbmhlcml0Lmh0bToKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVy
LWluY3JlbWVudC1vdmVyZmxvdy5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL2Nv
dW50ZXItaW5jcmVtZW50LXRlc3RzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9j
b3VudGVycy9jb3VudGVyLWluY3JlbWVudC10ZXN0cy5odG06CisgICAgICAgICogZmFzdC9jc3Mv
Y291bnRlcnMvY291bnRlci1yZXNldC0wMDAuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3Vu
dGVycy9jb3VudGVyLXJlc2V0LTAwMS5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJz
L2NvdW50ZXItcmVzZXQtMDAyLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3Nz
L2NvdW50ZXJzL2NvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkLmh0bWw6CisgICAgICAgICogZmFz
dC9jc3MvY291bnRlcnMvZGVlcC1iZWZvcmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
Y3NzL2NvdW50ZXJzL2RlZXAtYmVmb3JlLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291bnRl
cnMvaW52YWxpZGF0ZS1jYWNoZWQtY291bnRlci1ub2RlLmh0bWw6CisgICAgICAgICogZmFzdC9j
c3MvY291bnRlcnMvbmVzdGluZy5odG1sOgorCiAyMDEyLTA0LTIzICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTA5OTgxLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvMmRpc3Bs
YXlzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3Vu
dGVycy8yZGlzcGxheXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTQ5NDcpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jb3VudGVycy8yZGlzcGxheXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC02LDUgKzYsNSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKLVBB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3RW
aWV3JykgaXMgJzEwMDAgMTAwMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndGVzdFZpZXcnKSBpcyAnMTAwMCAxMDAwJwogCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jb3VudGVycy8yZGlzcGxheXMuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy8yZGlzcGxheXMuaHRtbAkocmV2aXNpb24gMTE0OTQ3
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvMmRpc3BsYXlzLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgZnVuY3Rpb24gcnVuKCkKICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGVzdFZpZXciKS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgImNvdW50ZXIx
MDAwIik7CiAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIHJl
dHVybjsKLSAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3Rlc3RWaWV3JykiLCAiJzEwMDAgMTAwMCciKTsKKyAgICBzaG91bGRCZSgi
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdFZpZXcnKSIs
ICInMTAwMCAxMDAwJyIpOwogCiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvYWRkaW5nLW5vZGVzLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvYWRkaW5nLW5vZGVzLmh0bWwJKHJldmlzaW9u
IDExNDk0NykKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2FkZGluZy1ub2Rlcy5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAgICAgICAgICAgICAgICAgICAg
IG5ld1NwYW5FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgICAg
ICAgICAgICAgICAgICBpZCA9IHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJpZCIpOwog
ICAgICAgICAgICAgICAgICAgICBpZiAoaWQgIT0gbnVsbCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCA9IGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Nw
YW5FbGVtZW50LmlubmVyVGV4dCA9IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoaWQpOwogICAgICAgICAgICAgICAgICAgICBpZiAobmV3U3BhbkVsZW1lbnQuaW5u
ZXJUZXh0Lmxlbmd0aCkKICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50Lmlu
bmVyVGV4dCA9IG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCArICItIjsKICAgICAgICAgICAgICAg
ICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChuZXdTcGFuRWxlbWVudCk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZnRlci1jb250aW51YXRpb24tZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2FmdGVyLWNvbnRpbnVh
dGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExNDk0NykKKysrIExheW91dFRlc3RzL2Zhc3Qv
Y3NzL2NvdW50ZXJzL2FmdGVyLWNvbnRpbnVhdGlvbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNiArMSw2IEBACiBUaGlzIHRlc3QgcGFzc2VzIGlmIHRoZSBudW1iZXJzIGRpc3Bs
YXllZCBiZWxvdyBhcmUgMSBhbmQgMiBpbiB0aGlzIG9yZGVyLgogCi1QQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdjMicpIGlzICcyJworUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdjMicpIGlzICcyJwog
CiBURVNUIENPTVBMRVRFCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2Fm
dGVyLWNvbnRpbnVhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL2FmdGVyLWNvbnRpbnVhdGlvbi5odG1sCShyZXZpc2lvbiAxMTQ5NDcpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZnRlci1jb250aW51YXRpb24uaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQAogICAgICAgICB9CiAgICAgICAgIGZ1bmN0aW9u
IHJ1bigpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYzInKSIsICInMiciKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCdjMicpIiwgIicyJyIpOwogCiAgICAgICAgICAgICBkZWJ1ZygnJyk7CiAgICAgICAgICAgICBk
ZWJ1ZygnVEVTVCBDT01QTEVURScpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRl
cnMvY29udGVudC0wMjEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvY3NzL2NvdW50ZXJzL2NvbnRlbnQtMDIxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE0OTQ3
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY29udGVudC0wMjEtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogVGhpcyBpcyB0aGUgV2ViS2l0IHZl
cnNpb24gb2YgQ1NTIFRlc3Q6IENvbnRlbnQgdXNpbmcgYSAnY291bnRlcnMoKScgZnVuY3Rpb24g
d2l0aCBhIHN0cmluZyB2YWx1ZS4KIAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgnZGl2MScpIGlzICcwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZGl2MicpIGlzICcwLjAnCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2RpdjEnKSBpcyAnMCcK
K1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZGl2Micp
IGlzICcwLjAnCiAKIFRFU1QgQ09NUExFVEUKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y291bnRlcnMvY29udGVudC0wMjEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb3VudGVycy9jb250ZW50LTAyMS5odG1sCShyZXZpc2lvbiAxMTQ5NDcpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb250ZW50LTAyMS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw4ICsyOCw4IEBACiAgIHsKICAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQogICAgICAgICAgIHJldHVybjsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZGl2MScpIiwgIicwJyIpOwotICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCdkaXYyJykiLCAiJzAuMCciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdkaXYxJykiLCAiJzAnIik7CisgICAgICBzaG91
bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZGl2Micp
IiwgIicwLjAnIik7CiAKICAgICAgIGRlYnVnKCcnKTsKICAgICAgIGRlYnVnKCdURVNUIENPTVBM
RVRFJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWJlZm9y
ZS1jb250ZW50LW5vdC1pbmNyZW1lbnRlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItYmVmb3JlLWNvbnRlbnQtbm90LWluY3JlbWVudGVk
Lmh0bWwJKHJldmlzaW9uIDExNDk0NykKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJz
L2NvdW50ZXItYmVmb3JlLWNvbnRlbnQtbm90LWluY3JlbWVudGVkLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTQzLDcgKzQzLDcgQEAKICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3Bh
bkxpc3QubGVuZ3RoOyArK2kgKSB7CiAgICAgICAgICAgICAgICAgdmFyIGRpdkl0ZW0gPSBzcGFu
TGlzdC5pdGVtKGkpOwogICAgICAgICAgICAgICAgIGNvdW50ZXJzICs9ICctJzsKLSAgICAgICAg
ICAgICAgICBjb3VudGVycyArPSBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZChkaXZJdGVtLmdldEF0dHJpYnV0ZSgiaWQiKSk7CisgICAgICAgICAgICAgICAg
Y291bnRlcnMgKz0gd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChk
aXZJdGVtLmdldEF0dHJpYnV0ZSgiaWQiKSk7CiAgICAgICAgICAgICAgICAgY291bnRlcnMgKz0g
ZGl2SXRlbS50ZXh0Q29udGVudDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKS5pbm5lckhUTUwgPSBjb3VudGVyczsKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291
bnRlci1pbmNyZW1lbnQtMDAwLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE0OTQ3KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAwLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNCArMSwxNCBAQAogVGhpcyBpcyB0aGUgV2ViS2l0
IHZlcnNpb24gb2YgQ1NTIDIuMSBUZXN0IFN1aXRlOiBkeW5hbWljIGNoYW5nZXMgdG8gJ2NvdW50
ZXItaW5jcmVtZW50Jy4KIAogQmVmb3JlIHRoZSBkeW5hbWljIGNoYW5nZToKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIGlzICcxJwot
UEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhy
ZWUnKSBpcyAnMicKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ2ZvdXInKSBpcyAnMycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgnb25lJykgaXMgJzEnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVlJykgaXMgJzInCitQQVNTIHdpbmRvdy5pbnRl
cm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2ZvdXInKSBpcyAnMycKIEFmdGVyIHRo
ZSBkeW5hbWljIGNoYW5nZToKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ29uZScpIGlzICcxJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdvJykgaXMgJzInCi1QQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJlZScpIGlzICczJwotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZm91cicp
IGlzICc0JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCdvbmUnKSBpcyAnMScKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndHdvJykgaXMgJzInCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3RocmVlJykgaXMgJzMnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2ZvdXInKSBpcyAnNCcKIAogVEVTVCBDT01QTEVURQog
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0w
MDAuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3Vu
dGVyLWluY3JlbWVudC0wMDAuaHRtbAkocmV2aXNpb24gMTE0OTQ3KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAwLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTE4LDE4ICsxOCwxOCBAQAogICBmdW5jdGlvbiBjaGVja0NvdW50ZXJWYWx1ZXNCZWZv
cmVDaGFuZ2UoKQogICB7CiAgICAgICBkZWJ1ZygnQmVmb3JlIHRoZSBkeW5hbWljIGNoYW5nZTon
KTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgnb25lJykiLCAiJzEnIik7Ci0gICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVlJykiLCAiJzInIik7Ci0g
ICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ2ZvdXInKSIsICInMyciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSIsICInMSciKTsKKyAgICAgIHNob3Vs
ZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJlZScp
IiwgIicyJyIpOworICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ2ZvdXInKSIsICInMyciKTsKICAgfQogCiAgIGZ1bmN0aW9uIGNoZWNr
Q291bnRlclZhbHVlc0FmdGVyQ2hhbmdlKCkKICAgewogICAgICAgZGVidWcoJ0FmdGVyIHRoZSBk
eW5hbWljIGNoYW5nZTonKTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnb25lJykiLCAiJzEnIik7Ci0gICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3bycp
IiwgIicyJyIpOwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJlZScpIiwgIiczJyIpOwotICAgICAgc2hvdWxkQmUoImxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdmb3VyJykiLCAi
JzQnIik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgnb25lJykiLCAiJzEnIik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVy
bmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdvJykiLCAiJzInIik7CisgICAgICBz
aG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhy
ZWUnKSIsICInMyciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCdmb3VyJykiLCAiJzQnIik7CiAKICAgICAgIGRlYnVnKCcnKTsK
ICAgICAgIGRlYnVnKCdURVNUIENPTVBMRVRFJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDExNDk0NykKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
dW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsMTMgKzEsMTMgQEAKIFRoaXMgaXMgdGhlIFdlYktpdCB2ZXJzaW9uIG9mIENTUyAyLjEg
VGVzdCBTdWl0ZTogZHluYW1pYyBjaGFuZ2VzIHRvICdjb3VudGVyLWluY3JlbWVudCcuCiAKIEJl
Zm9yZSB0aGUgZHluYW1pYyBjaGFuZ2U6Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSBpcyAnMScKLVBBU1MgbGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3bycpIGlzICczJwotUEFTUyBsYXlv
dXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSBpcyAn
NCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnb25l
JykgaXMgJzEnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3R3bycpIGlzICczJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCd0aHJlZScpIGlzICc0JwogQWZ0ZXIgdGhlIGR5bmFtaWMgY2hhbmdlOgotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnb25lJykg
aXMgJzEnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0d28nKSBpcyAnMicKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3RocmVlJykgaXMgJzMnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIGlzICcxJworUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d28nKSBpcyAnMicKK1BBU1Mgd2luZG93
LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSBpcyAnMycKIAog
VEVTVCBDT01QTEVURQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3Vu
dGVyLWluY3JlbWVudC0wMDEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDEuaHRtbAkocmV2aXNpb24gMTE0OTQ3KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAxLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDE3ICsxOCwxNyBAQAogICBmdW5jdGlvbiBjaGVja0Nv
dW50ZXJWYWx1ZXNCZWZvcmVDaGFuZ2UoKQogICB7CiAgICAgICBkZWJ1ZygnQmVmb3JlIHRoZSBk
eW5hbWljIGNoYW5nZTonKTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnb25lJykiLCAiJzEnIik7Ci0gICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3bycp
IiwgIiczJyIpOwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJlZScpIiwgIic0JyIpOworICAgICAgc2hvdWxkQmUoIndp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIiwgIicxJyIp
OworICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3R3bycpIiwgIiczJyIpOworICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVlJykiLCAiJzQnIik7CiAgIH0KIAogICBm
dW5jdGlvbiBjaGVja0NvdW50ZXJWYWx1ZXNBZnRlckNoYW5nZSgpCiAgIHsKICAgICAgIGRlYnVn
KCdBZnRlciB0aGUgZHluYW1pYyBjaGFuZ2U6Jyk7Ci0gICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIiwgIicxJyIpOwot
ICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0d28nKSIsICInMiciKTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSIsICInMyciKTsKKyAgICAg
IHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdv
bmUnKSIsICInMSciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0d28nKSIsICInMiciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5k
b3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJlZScpIiwgIiczJyIp
OwogCiAgICAgICBkZWJ1ZygnJyk7CiAgICAgICBkZWJ1ZygnVEVTVCBDT01QTEVURScpOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAyLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1p
bmNyZW1lbnQtMDAyLmh0bWwJKHJldmlzaW9uIDExNDk0NykKKysrIExheW91dFRlc3RzL2Zhc3Qv
Y3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMi5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw3ICszMiw3IEBACiAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNwYW5MaXN0
Lmxlbmd0aDsgKytpICkgewogICAgICAgICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgICAgICAgICAgICAgbmV3U3Bh
bkVsZW1lbnQuaW5uZXJUZXh0ID0KLSAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRy
aWJ1dGUoImlkIikpOworICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJpZCIp
KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dC5sZW5n
dGgpCiAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSBu
ZXdTcGFuRWxlbWVudC5pbm5lclRleHQgKyAiLSI7CiAgICAgICAgICAgICAgICAgICAgIGNvbnNv
bGUuYXBwZW5kQ2hpbGQobmV3U3BhbkVsZW1lbnQpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtaW5oZXJpdC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQt
aW5oZXJpdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExNDk0NykKKysrIExheW91dFRlc3RzL2Zh
c3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LWluaGVyaXQtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnd3JhcHBlcjkwJykgaXMgJzUnCi1QQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OTAnKSBpcyAn
MTAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0OTBhJykgaXMgJzE1JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgnd3JhcHBlcjkxJykgaXMgJzEwJwotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDkxJykgaXMgJzIwJwotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDkx
YScpIGlzICczMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgnd3JhcHBlcjkwJykgaXMgJzUnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5MCcpIGlzICcxMCcKK1BBU1Mgd2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDkwYScpIGlzICcxNScKK1BBU1Mgd2lu
ZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnd3JhcHBlcjkxJykgaXMg
JzEwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0OTEnKSBpcyAnMjAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3Rlc3Q5MWEnKSBpcyAnMzAnCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LWluaGVyaXQuaHRtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LWluaGVyaXQuaHRt
CShyZXZpc2lvbiAxMTQ5NDcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3Vu
dGVyLWluY3JlbWVudC1pbmhlcml0Lmh0bQkod29ya2luZyBjb3B5KQpAQCAtMTMsMTIgKzEzLDEy
IEBACiAgICAgICAgICAgICBmdW5jdGlvbiBydW4oKQogICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgIC8vIFNvbWUgZXh0cmEgV2ViS2l0IHRlc3RpbmcgZm9yIGNvdW50ZXItaW5jcmVtZW50
IGluaGVyaXQKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3dyYXBwZXI5MCcpIiwgIic1JyIpOwotICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgndGVzdDkwJykiLCAiJzEwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDkw
YScpIiwgIicxNSciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3dyYXBwZXI5MScpIiwgIicxMCciKTsK
LSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5MScpIiwgIicyMCciKTsKLSAgICAgICAgICAgICAgICBz
aG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3Rlc3Q5MWEnKSIsICInMzAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3dyYXBwZXI5MCcpIiwgIic1JyIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OTAnKSIsICInMTAnIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5
MGEnKSIsICInMTUnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3dyYXBwZXI5MScpIiwgIicxMCciKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgndGVzdDkxJykiLCAiJzIwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OTFhJyki
LCAiJzMwJyIpOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCiAgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKICAgICAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2Nv
dW50ZXItaW5jcmVtZW50LW92ZXJmbG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtb3ZlcmZsb3cuaHRtbAkocmV2aXNp
b24gMTE0OTQ3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNy
ZW1lbnQtb3ZlcmZsb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTgsNyArMTgsNyBAQAogICAg
ICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb3VudGVkJykuaW5uZXJUZXh0ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ2NvdW50ZWQnKTsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY291bnRlZCcpLmlubmVyVGV4dCA9IHdpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2NvdW50ZWQnKTsKICAgICAgICAgfQogCiAgICAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC10ZXN0cy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMv
Y291bnRlci1pbmNyZW1lbnQtdGVzdHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTQ5NDcpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC10ZXN0cy1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNTggKzEsNTggQEAKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzJykgaXMgJy0y
MTQ3NDgzNjQ4JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDQnKSBpcyAnLTIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NScpIGlzICcwJwotUEFTUyBsYXlv
dXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDYnKSBpcyAn
MCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3Rlc3Q3JykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCd0ZXN0OCcpIGlzICcxMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5JykgaXMgJzEwJwotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDEwJykgaXMgJzIx
NDc0ODM2NDYnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0ZXN0MTEnKSBpcyAnMjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxMicpIGlzICcyMTQ3NDgzNjQ3Jwot
UEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDEzJykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTQnKSBpcyAnMicKLVBBU1MgbGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxNScpIGlzICctMjE0NzQ4MzY0
OCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3Rlc3QxNicpIGlzICctMjE0NzQ4MzY0OCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxNycpIGlzICctMjE0NzQ4MzY0OCcKLVBBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxOCcp
IGlzICcwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgndGVzdDE5JykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjAnKSBpcyAnMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyMScpIGlzICcyMCcKLVBBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyMicp
IGlzICcyMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3Rlc3QyMycpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI0JykgaXMgJzIxNDc0ODM2NDcnCi1Q
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0
MjUnKSBpcyAnMjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyNicpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI3JykgaXMgJzMn
Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0MjgnKSBpcyAnLTIxNDc0ODM2NDgnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjknKSBpcyAnLTIxNDc0ODM2NDgnCi1QQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzAnKSBp
cyAnLTIxNDc0ODM2NDgnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCd0ZXN0MzEnKSBpcyAnMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzMicpIGlzICcwJwotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDMzJykgaXMgJzAn
Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0MzQnKSBpcyAnMzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCd0ZXN0MzUnKSBpcyAnMzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzYnKSBpcyAnMjE0NzQ4MzY0NycKLVBB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Qz
NycpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDM4JykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzknKSBpcyAnMjE0
NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3Rlc3Q0MCcpIGlzICczMicKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MScpIGlzICctMjE0NzQ4MzY0OCcKLVBBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MicpIGlz
ICctMjE0NzQ4MzY0OCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3Rlc3Q0MycpIGlzICctMjE0NzQ4MzY0OCcKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0NCcpIGlzICcwJwotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ1
JykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0ZXN0NDYnKSBpcyAnMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0NycpIGlzICczMjAnCi1QQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDgnKSBpcyAnMzIwJwot
UEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDQ5JykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTAnKSBpcyAnMjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1MScpIGlzICcy
MTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDUyJykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTMnKSBpcyAnNScKLVBBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ25vbmU1MycpIGlz
ICc1JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndGVzdDUzYScpIGlzICcxMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3dyYXBwZXI1NCcpIGlzICc1JwotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDU0JykgaXMgJzEwJwotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDU1
JykgaXMgJzEnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0ZXN0NTYnKSBpcyAnLTIxNDc0ODM2NDgnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzJykgaXMgJy0yMTQ3NDgzNjQ4JworUEFT
UyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NCcpIGlz
ICctMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDUnKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDYnKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDcnKSBpcyAnMCcKK1BBU1Mgd2luZG93Lmlu
dGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDgnKSBpcyAnMTAnCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5JykgaXMg
JzEwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0MTAnKSBpcyAnMjE0NzQ4MzY0NicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDExJykgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxMicpIGlzICcyMTQ3NDgz
NjQ3JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0MTMnKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDE0JykgaXMgJzInCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxNScpIGlzICctMjE0NzQ4MzY0OCcKK1BB
U1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDE2Jykg
aXMgJy0yMTQ3NDgzNjQ4JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCd0ZXN0MTcnKSBpcyAnLTIxNDc0ODM2NDgnCitQQVNTIHdpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxOCcpIGlzICcwJworUEFTUyB3aW5k
b3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTknKSBpcyAnMCcK
K1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDIw
JykgaXMgJzAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3Rlc3QyMScpIGlzICcyMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndGVzdDIyJykgaXMgJzIwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjMnKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mg
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI0JykgaXMg
JzIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3Rlc3QyNScpIGlzICcyMTQ3NDgzNjQ3JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjYnKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mg
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI3JykgaXMg
JzMnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rl
c3QyOCcpIGlzICctMjE0NzQ4MzY0OCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDI5JykgaXMgJy0yMTQ3NDgzNjQ4JworUEFTUyB3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzAnKSBpcyAnLTIxNDc0
ODM2NDgnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3Rlc3QzMScpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCd0ZXN0MzInKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDMzJykgaXMgJzAnCitQQVNTIHdpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzNCcpIGlzICczMCcKK1BBU1Mgd2lu
ZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM1JykgaXMgJzMw
JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0
MzYnKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndGVzdDM3JykgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5pbnRl
cm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzOCcpIGlzICcyMTQ3NDgzNjQ3
JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0
MzknKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndGVzdDQwJykgaXMgJzMyJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDEnKSBpcyAnLTIxNDc0ODM2NDgnCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MicpIGlz
ICctMjE0NzQ4MzY0OCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDQzJykgaXMgJy0yMTQ3NDgzNjQ4JworUEFTUyB3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDQnKSBpcyAnMCcKK1BBU1Mgd2luZG93
LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ1JykgaXMgJzAnCitQ
QVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0Nicp
IGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0NDcnKSBpcyAnMzIwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCd0ZXN0NDgnKSBpcyAnMzIwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDknKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mg
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDUwJykgaXMg
JzIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3Rlc3Q1MScpIGlzICcyMTQ3NDgzNjQ3JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTInKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mg
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDUzJykgaXMg
JzUnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ25v
bmU1MycpIGlzICc1JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0ZXN0NTNhJykgaXMgJzEwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd3cmFwcGVyNTQnKSBpcyAnNScKK1BBU1Mgd2luZG93LmludGVy
bmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDU0JykgaXMgJzEwJworUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTUnKSBpcyAn
MScKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDU2JykgaXMgJy0yMTQ3NDgzNjQ4JwogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3Vu
dGVycy9jb3VudGVyLWluY3JlbWVudC10ZXN0cy5odG0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtdGVzdHMuaHRtCShyZXZpc2lv
biAxMTQ5NDcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3Jl
bWVudC10ZXN0cy5odG0JKHdvcmtpbmcgY29weSkKQEAgLTE1LDYzICsxNSw2MyBAQAogICAgICAg
ICAgICAgICAgIC8qIFRoZXNlIGFyZSB0ZXh0IHZlcnNpb25zIG9mIHRoZSBjb3VudGVyLWluY3Jl
bWVudC0qIHRlc3RzIGluIHRoZSBDU1MgMi4xIHRlc3Qgc3VpdGUuCiAgICAgICAgICAgICAgICAg
ICAgU28gJ3Rlc3QzJyBoZXJlIGlzIGVxdWl2YWxlbnQgdG8gY291bnRlci1pbmNyZW1lbnQtMDAz
Lmh0bSwgYW5kIHNvIG9uLiAKICAgICAgICAgICAgICAgICAgICBXZWJLaXQgZHVtcEFzVGV4dCB2
ZXJzaW9ucyBvZiBjb3VudGVyLWluY3JlbWVudC0wMDEgYW5kIDAwMiBhbHJlYWR5IGV4aXN0IGlu
IGZhc3QvY3NzL2NvdW50ZXJzICovCi0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MycpIiwgIictMjE0
NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0JykiLCAiJy0yMTQ3NDgzNjQ3JyIp
OwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDUnKSIsICInMCciKTsKLSAgICAgICAgICAgICAgICBz
aG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3Rlc3Q2JykiLCAiJzAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NycpIiwgIicwJyIpOwot
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDgnKSIsICInMTAnIik7Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0OScpIiwgIicxMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxMCcpIiwgIicyMTQ3NDgz
NjQ2JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDExJykiLCAiJzIxNDc0ODM2NDcnIik7Ci0g
ICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTInKSIsICInMjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAg
ICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3Rlc3QxMycpIiwgIicyMTQ3NDgzNjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDE0JykiLCAiJzInIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTUnKSIsICInLTIxNDc0ODM2
NDgnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTYnKSIsICInLTIxNDc0ODM2NDgnIik7Ci0g
ICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTcnKSIsICInLTIxNDc0ODM2NDgnIik7Ci0gICAgICAgICAg
ICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0ZXN0MTgnKSIsICInMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxOScpIiwg
IicwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDIwJykiLCAiJzAnIik7Ci0gICAgICAgICAg
ICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0ZXN0MjEnKSIsICInMjAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjInKSIs
ICInMjAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjMnKSIsICInMjE0NzQ4MzY0NyciKTsK
LSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyNCcpIiwgIicyMTQ3NDgzNjQ3JyIpOwotICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDI1JykiLCAiJzIxNDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0MjYnKSIsICInMjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyNycpIiwg
IiczJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI4JykiLCAiJy0yMTQ3NDgzNjQ4JyIpOwot
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDI5JykiLCAiJy0yMTQ3NDgzNjQ4JyIpOwotICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDMwJykiLCAiJy0yMTQ3NDgzNjQ4JyIpOwotICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dGVzdDMxJykiLCAiJzAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzInKSIsICInMCciKTsK
LSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzMycpIiwgIicwJyIpOwotICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dGVzdDM0JykiLCAiJzMwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM1JykiLCAiJzMwJyIp
OwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM2JykiLCAiJzIxNDc0ODM2NDcnIik7Ci0gICAgICAg
ICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCd0ZXN0MzcnKSIsICInMjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAgICAgICBz
aG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3Rlc3QzOCcpIiwgIicyMTQ3NDgzNjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM5Jyki
LCAiJzIxNDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDAnKSIsICInMzInIik7
Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDEnKSIsICInLTIxNDc0ODM2NDgnIik7Ci0gICAgICAg
ICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCd0ZXN0NDInKSIsICInLTIxNDc0ODM2NDgnIik7Ci0gICAgICAgICAgICAgICAg
c2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0NDMnKSIsICInLTIxNDc0ODM2NDgnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDQn
KSIsICInMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0NScpIiwgIicwJyIpOwotICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgndGVzdDQ2JykiLCAiJzAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDcn
KSIsICInMzIwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ4JykiLCAiJzMyMCciKTsKLSAg
ICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0OScpIiwgIicyMTQ3NDgzNjQ3JyIpOwotICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgndGVzdDUwJykiLCAiJzIxNDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxk
QmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0
NTEnKSIsICInMjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1MicpIiwgIicy
MTQ3NDgzNjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDUzJykiLCAiJzUnIik7Ci0gICAg
ICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCdub25lNTMnKSIsICInNSciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1
M2EnKSIsICInMTAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd3cmFwcGVyNTQnKSIsICInNSciKTsK
LSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1NCcpIiwgIicxMCciKTsKLSAgICAgICAgICAgICAgICBz
aG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3Rlc3Q1NScpIiwgIicxJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDU2JykiLCAiJy0yMTQ3
NDgzNjQ4JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MycpIiwgIictMjE0NzQ4MzY0OCciKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgndGVzdDQnKSIsICInLTIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rl
c3Q1JykiLCAiJzAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q2JykiLCAiJzAnIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3Rlc3Q3JykiLCAiJzAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q4JykiLCAiJzEwJyIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OScpIiwgIicxMCciKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDEw
JykiLCAiJzIxNDc0ODM2NDYnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxMScpIiwgIicyMTQ3NDgz
NjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTInKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDEzJykiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Qx
NCcpIiwgIicyJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTUnKSIsICInLTIxNDc0ODM2NDgnIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3QxNicpIiwgIictMjE0NzQ4MzY0OCciKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndGVzdDE3JykiLCAiJy0yMTQ3NDgzNjQ4JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTgnKSIs
ICInMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDE5JykiLCAiJzAnIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3Rlc3QyMCcpIiwgIicwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjEnKSIsICInMjAnIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3Rlc3QyMicpIiwgIicyMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDIzJyki
LCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRl
cm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyNCcpIiwgIicyMTQ3NDgzNjQ3
JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjUnKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgndGVzdDI2JykiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyNycp
IiwgIiczJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjgnKSIsICInLTIxNDc0ODM2NDgnIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3Rlc3QyOScpIiwgIictMjE0NzQ4MzY0OCciKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dGVzdDMwJykiLCAiJy0yMTQ3NDgzNjQ4JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzEnKSIsICIn
MCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDMyJykiLCAiJzAnIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rl
c3QzMycpIiwgIicwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzQnKSIsICInMzAnIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3Rlc3QzNScpIiwgIiczMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM2JykiLCAi
JzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzNycpIiwgIicyMTQ3NDgzNjQ3JyIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzgnKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndGVzdDM5JykiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
IndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MCcpIiwg
IiczMiciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQxJykiLCAiJy0yMTQ3NDgzNjQ4JyIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCd0ZXN0NDInKSIsICInLTIxNDc0ODM2NDgnIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rl
c3Q0MycpIiwgIictMjE0NzQ4MzY0OCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2lu
ZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ0JykiLCAiJzAn
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0NScpIiwgIicwJyIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0
NDYnKSIsICInMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ3JykiLCAiJzMyMCciKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDQ4JykiLCAiJzMyMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ5JykiLCAi
JzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1MCcpIiwgIicyMTQ3NDgzNjQ3JyIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTEnKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndGVzdDUyJykiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
IndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1MycpIiwg
Iic1JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdub25lNTMnKSIsICInNSciKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dGVzdDUzYScpIiwgIicxMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93Lmlu
dGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnd3JhcHBlcjU0JykiLCAiJzUnIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1NCcpIiwgIicxMCciKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDU1
JykiLCAiJzEnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1NicpIiwgIictMjE0NzQ4MzY0OCciKTsK
ICAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAg
ICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiAgICAgICAg
ICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLXJlc2V0
LTAwMC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2Nv
dW50ZXItcmVzZXQtMDAwLmh0bWwJKHJldmlzaW9uIDExNDk0NykKKysrIExheW91dFRlc3RzL2Zh
c3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAwLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDcgKzMzLDcgQEAKICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc3Bhbkxpc3Qu
bGVuZ3RoOyArK2kgKSB7CiAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgICAgICAgICAgICAgICAgICBuZXdTcGFu
RWxlbWVudC5pbm5lclRleHQgPQotICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChzcGFuTGlzdC5pdGVtKGkpLmdldEF0dHJp
YnV0ZSgiaWQiKSk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRyaWJ1dGUoImlkIikp
OwogICAgICAgICAgICAgICAgICAgICBpZiAobmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0Lmxlbmd0
aCkKICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCA9IG5l
d1NwYW5FbGVtZW50LmlubmVyVGV4dCArICItIgogICAgICAgICAgICAgICAgICAgICBjb25zb2xl
LmFwcGVuZENoaWxkKG5ld1NwYW5FbGVtZW50KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAxLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1yZXNldC0wMDEuaHRtbAkocmV2aXNpb24gMTE0
OTQ3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1yZXNldC0wMDEu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKICAgICAgICAgICAvLyBUaGlzIGNhbGwgZW5zdXJlcyB0aGUgbGF5b3V0IGhh
cHBlbmVkIGJlZm9yZSB3ZSBtb2RpZnkgdGhlIERPTSB0cmVlLgotICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCJzcGFuMSIpOworICAgICAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoInNwYW4xIik7
CiAgICAgICB9CiAKICAgICAgIHZhciB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3Qi
KTsKQEAgLTM0LDcgKzM0LDcgQEAKICAgICAgICAgICBzcGFuTGlzdCA9IHRlc3RFbGVtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJzcGFuIik7CiAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNw
YW5MaXN0Lmxlbmd0aDsgKytpICkgewogICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgICAgICAgbmV3U3BhbkVsZW1l
bnQuaW5uZXJUZXh0ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRyaWJ1dGUoImlkIikpOworICAgICAgICAgICAg
ICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJpZCIpKTsKICAg
ICAgICAgICAgICAgaWYgKG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dC5sZW5ndGgpCiAgICAgICAg
ICAgICAgICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSBuZXdTcGFuRWxlbWVudC5pbm5l
clRleHQgKyAiLSI7CiAgICAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobmV3U3BhbkVs
ZW1lbnQpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1yZXNl
dC0wMDIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9j
b3VudGVyLXJlc2V0LTAwMi5odG1sCShyZXZpc2lvbiAxMTQ5NDcpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLXJlc2V0LTAwMi5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw3ICszMCw3IEBACiAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNwYW5MaXN0
Lmxlbmd0aDsgKytpICkgewogICAgICAgICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgICAgICAgICAgICAgbmV3U3Bh
bkVsZW1lbnQuaW5uZXJUZXh0ID0KLSAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRy
aWJ1dGUoImlkIikpOworICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJpZCIp
KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dC5sZW5n
dGgpCiAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSBu
ZXdTcGFuRWxlbWVudC5pbm5lclRleHQgKyAiLSI7CiAgICAgICAgICAgICAgICAgICAgIGNvbnNv
bGUuYXBwZW5kQ2hpbGQobmV3U3BhbkVsZW1lbnQpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY291bnRlcnMvY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE0OTQ3KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvY291bnRlcnMvY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDExICsxLDExIEBACi1UaGlzIGlzIHRoZSB0ZXN0IGZvciBs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZAorVGhpcyBpcyB0
aGUgdGVzdCBmb3Igd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZAog
ICAgCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCdiZWZvcmUnKSBpcyAnMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ2FmdGVyJykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdiZWZvcmVfYWZ0ZXInKSBpcyAnMCAwJwotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdpY2Un
KSBpcyAnMCAwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgncG9pbnQnKSBpcyAnMC4xJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdvLXBvaW50cycpIGlzICcwLjEuMicKLVBBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2dyZWVrJykgaXMg
JzAuzrEuzrInCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0aHJlZS1ncmVla3MnKSBpcyAnMC7OsS7OsiAwLs6xLs6yIDAuzrEuzrInCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2JlZm9yZScpIGlz
ICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdh
ZnRlcicpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCdiZWZvcmVfYWZ0ZXInKSBpcyAnMCAwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d2ljZScpIGlzICcwIDAnCitQQVNTIHdpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3BvaW50JykgaXMgJzAuMScKK1BB
U1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdvLXBvaW50
cycpIGlzICcwLjEuMicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgnZ3JlZWsnKSBpcyAnMC7OsS7OsicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUtZ3JlZWtzJykgaXMgJzAuzrEuzrIgMC7OsS7O
siAwLs6xLs6yJwogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y3NzL2NvdW50ZXJzL2NvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkLmh0bWwJKHJldmlzaW9uIDEx
NDk0NykKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE0LDcgKzE0LDcgQEAKICAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwv
aGVhZD4KIDxib2R5PgotICAgIDxkaXY+VGhpcyBpcyB0aGUgdGVzdCBmb3IgbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQ8L2Rpdj4KKyAgICA8ZGl2PlRoaXMg
aXMgdGhlIHRlc3QgZm9yIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQ8L2Rpdj4KIAogICAgIDxkaXYgY2xhc3M9InJlc2V0Ij48c3BhbiBpZD0iYmVmb3JlIiBjbGFz
cz0ic2hvdy1iZWZvcmUiPjwvc3Bhbj48L2Rpdj4KICAgICA8ZGl2IGNsYXNzPSJyZXNldCI+PHNw
YW4gaWQ9ImFmdGVyIiBjbGFzcz0ic2hvdy1hZnRlciI+PC9zcGFuPjwvZGl2PgpAQCAtMzUsMTQg
KzM1LDE0IEBACiAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAotICAgICAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCdiZWZvcmUnKSIsICInMCciKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYWZ0ZXInKSIsICInMCciKTsK
LSAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgnYmVmb3JlX2FmdGVyJykiLCAiJzAgMCciKTsKLSAgICAgICAgICAgIHNo
b3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dHdpY2UnKSIsICInMCAwJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdwb2ludCcpIiwgIicwLjEnIik7Ci0g
ICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3R3by1wb2ludHMnKSIsICInMC4xLjInIik7Ci0gICAgICAgICAgICBzaG91
bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2dy
ZWVrJykiLCAiJzAuXHUwM2IxLlx1MDNiMiciKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJsYXlv
dXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUtZ3JlZWtz
JykiLCAiJzAuXHUwM2IxLlx1MDNiMiAwLlx1MDNiMS5cdTAzYjIgMC5cdTAzYjEuXHUwM2IyJyIp
OworICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ2JlZm9yZScpIiwgIicwJyIpOworICAgICAgICAgICAgc2hvdWxkQmUoIndp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2FmdGVyJykiLCAiJzAn
Iik7CisgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgnYmVmb3JlX2FmdGVyJykiLCAiJzAgMCciKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d2lj
ZScpIiwgIicwIDAnIik7CisgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgncG9pbnQnKSIsICInMC4xJyIpOworICAgICAgICAg
ICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3R3by1wb2ludHMnKSIsICInMC4xLjInIik7CisgICAgICAgICAgICBzaG91bGRCZSgid2luZG93
LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZ3JlZWsnKSIsICInMC5cdTAz
YjEuXHUwM2IyJyIpOworICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVlLWdyZWVrcycpIiwgIicwLlx1MDNiMS5cdTAz
YjIgMC5cdTAzYjEuXHUwM2IyIDAuXHUwM2IxLlx1MDNiMiciKTsKICAgICAgICAgfQogICAgIDwv
c2NyaXB0PgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvZGVl
cC1iZWZvcmUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL2RlZXAtYmVmb3JlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE0OTQ3KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvZGVlcC1iZWZvcmUtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZGl2MScpIGlzICcwJworUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdkaXYxJykgaXMgJzAnCiAKIFRFU1Qg
Q09NUExFVEUKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvZGVlcC1iZWZv
cmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9kZWVw
LWJlZm9yZS5odG1sCShyZXZpc2lvbiAxMTQ5NDcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
b3VudGVycy9kZWVwLWJlZm9yZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBA
CiAgIHsKICAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgICAg
IHJldHVybjsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgnZGl2MScpIiwgIicwJyIpOworICAgICAgc2hvdWxkQmUoIndpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2RpdjEnKSIsICInMCciKTsK
IAogICAgICAgZGVidWcoJycpOwogICAgICAgZGVidWcoJ1RFU1QgQ09NUExFVEUnKTsKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2ludmFsaWRhdGUtY2FjaGVkLWNvdW50ZXIt
bm9kZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2lu
dmFsaWRhdGUtY2FjaGVkLWNvdW50ZXItbm9kZS5odG1sCShyZXZpc2lvbiAxMTQ5NDcpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9pbnZhbGlkYXRlLWNhY2hlZC1jb3VudGVyLW5v
ZGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICB2YXIgdGVzdFJlc3VsdDsKLSAgICAgICAg
ICAgIHZhciBjb3VudGVyVmFsdWUgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgia2VlcC1tZSIpOworICAgICAgICAgICAgdmFyIGNvdW50ZXJWYWx1ZSA9
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoImtlZXAtbWUiKTsK
ICAgICAgICAgICAgIGlmIChjb3VudGVyVmFsdWUgPT0gIjEiKQogICAgICAgICAgICAgICAgIHRl
c3RSZXN1bHQgPSAiUEFTUyI7CiAgICAgICAgICAgICBlbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jb3VudGVycy9uZXN0aW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvY291bnRlcnMvbmVzdGluZy5odG1sCShyZXZpc2lvbiAxMTQ5NDcpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9uZXN0aW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDcgKzI5LDcgQEAKICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc3Bhbkxpc3Qu
bGVuZ3RoOyArK2kgKSB7CiAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgICAgICAgICAgICAgICAgICBuZXdTcGFu
RWxlbWVudC5pbm5lclRleHQgPQotICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChzcGFuTGlzdC5pdGVtKGkpLmdldEF0dHJp
YnV0ZSgiaWQiKSk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRyaWJ1dGUoImlkIikp
OwogICAgICAgICAgICAgICAgICAgICBpZiAobmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0Lmxlbmd0
aCkKICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCA9IG5l
d1NwYW5FbGVtZW50LmlubmVyVGV4dCArICItICI7CiAgICAgICAgICAgICAgICAgICAgIGNvbnNv
bGUuYXBwZW5kQ2hpbGQobmV3U3BhbkVsZW1lbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140520</attachid>
            <date>2012-05-07 06:34:05 -0700</date>
            <delta_ts>2012-06-08 06:11:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84406-20120507063358.patch</filename>
            <type>text/plain</type>
            <size>84819</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDExNjMw
NCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA1
LTA3ICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAg
ICAgIFtEUlRdIExUQzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkgY291bGQgYmUgbW92
ZWQgdG8gSW50ZXJuYWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODQ0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBFeHBvcnRpbmcgSW50ZXJuYWxzOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50IHN5bWJv
bHMgZm9yIHRoZSBHdGsgYnVpbGQuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJv
bHMuZmlsdGVyOgorCiAyMDEyLTA1LTA3ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5u
QG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgdHJpdmlhbCBidWlsZCBmaXg6
IERvbid0IGluY2x1ZGUgYnl0ZWFycmF5dGVzdGRhdGEuaCBpbiB0aGUgUXRXZWJLaXQKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDExNjMwNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA1LTA3ICBLYXVzdHViaCBBdHJh
d2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFtEUlRdIExUQzo6IGNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkgY291bGQgYmUgbW92ZWQgdG8gSW50ZXJuYWxzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0MDYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRoZSBj
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCBmcm9tIExheW91dFRlc3RDb3Ryb2xsZXIgdG8gSW50
ZXJuYWxzIGFuZAorICAgICAgICByZW1vdmUgdGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBs
ZW1lbnRhdGlvbnMgYXMgaXQgZXhjbHVzaXZlbHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlvbmFsaXR5
LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdCBjYXNlcy4KKworICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6Y291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEyLTA1LTA3ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxv
c3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgQnVpbGRmaXggZm9yIGJ1Z2d5IEdDQwpJbmRleDog
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkocmV2aXNpb24gMTE2MzA0KQorKysgU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDA4
LDYgKzEwMDgsMTkgQEAgYm9vbCBJbnRlcm5hbHM6OmlzUGFnZUJveFZpc2libGUoRG9jdW1lbgog
ICAgIHJldHVybiBkb2N1bWVudC0+aXNQYWdlQm94VmlzaWJsZShwYWdlTnVtYmVyKTsKIH0KIAor
U3RyaW5nIEludGVybmFsczo6Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoU3RyaW5nIGVsZW1l
bnRJZCkKK3sKKyAgICBGcmFtZSogY29yZUZyYW1lID0gZnJhbWUoKS0+cGFnZSgpLT5tYWluRnJh
bWUoKTsKKyAgICBpZiAoIWNvcmVGcmFtZSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisg
ICAgRWxlbWVudCogY29yZUVsZW1lbnQgPSBjb3JlRnJhbWUtPmRvY3VtZW50KCktPmdldEVsZW1l
bnRCeUlkKEF0b21pY1N0cmluZyhlbGVtZW50SWQpKTsKKyAgICBpZiAoIWNvcmVFbGVtZW50KQor
ICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICByZXR1cm4gY291bnRlclZhbHVlRm9yRWxl
bWVudChjb3JlRWxlbWVudCk7Cit9CisKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiB2b2lk
IEludGVybmFsczo6d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1lbnQq
IGRvY3VtZW50LCBFbGVtZW50KiBlbGVtZW50KQogewpJbmRleDogU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCShyZXZpc2lvbiAxMTYzMDQpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjksNiArMTY5LDggQEAgcHVibGljOgogICAg
IFZlY3RvcjxTdHJpbmc+IGNvbnNvbGVNZXNzYWdlQXJndW1lbnRDb3VudHMoRG9jdW1lbnQqKSBj
b25zdDsKICNlbmRpZgogCisgICAgU3RyaW5nIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKFN0
cmluZyBlbGVtZW50SWQpOworCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIHZvaWQg
d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1lbnQqLCBFbGVtZW50Kik7
CiAgICAgdm9pZCB3ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KERvY3VtZW50Kiwg
RWxlbWVudCopOwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAkocmV2aXNp
b24gMTE2MzA0KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDQsNiArMTQ0LDggQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIFtD
b25kaXRpb25hbD1JTlNQRUNUT1JdIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZMaXZlRG9jdW1lbnRz
KCk7CiAgICAgICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIHNlcXVlbmNlPFN0cmluZz4gY29u
c29sZU1lc3NhZ2VBcmd1bWVudENvdW50cyhpbiBEb2N1bWVudCBkb2N1bWVudCk7CiAKKyAgICAg
ICAgRE9NU3RyaW5nIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGluIERPTVN0cmluZyBlbGVt
ZW50SWQpOworCiAjaWYgZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICYmIEVOQUJMRV9G
VUxMU0NSRUVOX0FQSQogICAgICAgICB2b2lkIHdlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JF
bGVtZW50KGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBFbGVtZW50IGVsZW1lbnQpOwogICAgICAg
ICB2b2lkIHdlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoaW4gRG9jdW1lbnQgZG9j
dW1lbnQsIGluIEVsZW1lbnQgZWxlbWVudCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTE2MzA0KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wNS0wNyAgS2F1c3R1YmggQXRy
YXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBbRFJUXSBMVEM6OiBj
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgpIGNvdWxkIGJlIG1vdmVkIHRvIEludGVybmFscy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NDA2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUg
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQgZnJvbSBMYXlvdXRUZXN0Q290cm9sbGVyIHRvIElu
dGVybmFscyBhbmQKKyAgICAgICAgcmVtb3ZlIHRoZSBvbGQgcGxhdGZvcm0gc3BlY2lmaWMgaW1w
bGVtZW50YXRpb25zIGFzIGl0IGV4Y2x1c2l2ZWx5IHRlc3RzIFdlYkNvcmUgZnVuY3Rpb25hbGl0
eS4KKworICAgICAgICAqIHB1YmxpYy9XZWJGcmFtZS5oOgorICAgICAgICAoV2ViRnJhbWUpOgor
ICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKiBzcmMvV2ViRnJhbWVJbXBsLmg6CisgICAgICAgIChXZWJGcmFtZUltcGwpOgorCiAyMDEy
LTA1LTA3ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkOiB0aGUgc2FtZSBmaXggaW4gYW5vdGhlciBmaWxlIGZvciBjaHJvbWl1bSB3aW4g
YnVpbGQuICBBZGRpbmcgV2ViQ29yZSBuYW1lc3BhY2UgdG8gRmlsZVN5c3RlbVR5cGVzLgpJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCShyZXZpc2lvbiAxMTYz
MDQpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC02MTMsMTAgKzYxMyw2IEBAIHB1YmxpYzoKICAgICAvLyB0byBzdXBwb3J0IGxh
eW91dCB0ZXN0cy4KICAgICB2aXJ0dWFsIFdlYlN0cmluZyByZW5kZXJUcmVlQXNUZXh0KFJlbmRl
ckFzVGV4dENvbnRyb2xzIHRvU2hvdyA9IFJlbmRlckFzVGV4dE5vcm1hbCkgY29uc3QgPSAwOwog
Ci0gICAgLy8gUmV0dXJucyB0aGUgY291bnRlciB2YWx1ZSBmb3IgdGhlIHNwZWNpZmllZCBlbGVt
ZW50LiAgVGhpcyBtZXRob2QgaXMKLSAgICAvLyB1c2VkIHRvIHN1cHBvcnQgbGF5b3V0IHRlc3Rz
LgotICAgIHZpcnR1YWwgV2ViU3RyaW5nIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGNvbnN0
IFdlYlN0cmluZyYgaWQpIGNvbnN0ID0gMDsKLQogICAgIC8vIENhbGxzIG1hcmtlclRleHRGb3JM
aXN0SXRlbSgpIGRlZmluZWQgaW4gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5o
LgogICAgIHZpcnR1YWwgV2ViU3RyaW5nIG1hcmtlclRleHRGb3JMaXN0SXRlbShjb25zdCBXZWJF
bGVtZW50JikgY29uc3QgPSAwOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJGcmFtZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkZyYW1lSW1wbC5jcHAJKHJldmlzaW9uIDExNjMwNCkKKysrIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5MjIsMTggKzE5
MjIsNiBAQCBXZWJTdHJpbmcgV2ViRnJhbWVJbXBsOjpyZW5kZXJUcmVlQXNUZXh0CiAgICAgcmV0
dXJuIGV4dGVybmFsUmVwcmVzZW50YXRpb24obV9mcmFtZSwgYmVoYXZpb3IpOwogfQogCi1XZWJT
dHJpbmcgV2ViRnJhbWVJbXBsOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChjb25zdCBXZWJT
dHJpbmcmIGlkKSBjb25zdAotewotICAgIGlmICghbV9mcmFtZSkKLSAgICAgICAgcmV0dXJuIFdl
YlN0cmluZygpOwotCi0gICAgRWxlbWVudCogZWxlbWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCkt
PmdldEVsZW1lbnRCeUlkKGlkKTsKLSAgICBpZiAoIWVsZW1lbnQpCi0gICAgICAgIHJldHVybiBX
ZWJTdHJpbmcoKTsKLQotICAgIHJldHVybiBjb3VudGVyVmFsdWVGb3JFbGVtZW50KGVsZW1lbnQp
OwotfQotCiBXZWJTdHJpbmcgV2ViRnJhbWVJbXBsOjptYXJrZXJUZXh0Rm9yTGlzdEl0ZW0oY29u
c3QgV2ViRWxlbWVudCYgd2ViRWxlbWVudCkgY29uc3QKIHsKICAgICByZXR1cm4gV2ViQ29yZTo6
bWFya2VyVGV4dEZvckxpc3RJdGVtKGNvbnN0X2Nhc3Q8RWxlbWVudCo+KHdlYkVsZW1lbnQuY29u
c3RVbndyYXA8RWxlbWVudD4oKSkpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRnJhbWVJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRnJhbWVJbXBsLmgJKHJldmlzaW9uIDExNjMwNCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkZyYW1lSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTcsNyArMjE3LDYgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGNvbnRlbnRBc1RleHQoc2l6ZV90IG1heENo
YXJzKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBjb250ZW50QXNNYXJrdXAoKSBjb25z
dDsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyByZW5kZXJUcmVlQXNUZXh0KFJlbmRlckFzVGV4dENv
bnRyb2xzIHRvU2hvdyA9IFJlbmRlckFzVGV4dE5vcm1hbCkgY29uc3Q7Ci0gICAgdmlydHVhbCBX
ZWJTdHJpbmcgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoY29uc3QgV2ViU3RyaW5nJiBpZCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgbWFya2VyVGV4dEZvckxpc3RJdGVtKGNvbnN0
IFdlYkVsZW1lbnQmKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBwYWdlTnVtYmVyRm9yRWxlbWVu
dEJ5SWQoY29uc3QgV2ViU3RyaW5nJiBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmxvYXQgcGFnZVdpZHRoSW5QaXhlbHMsCkluZGV4OiBTb3VyY2UvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxMTYzMDQpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNS0wNyAgS2F1c3R1YmggQXRyYXdhbGth
ciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBbRFJUXSBMVEM6OiBjb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgpIGNvdWxkIGJlIG1vdmVkIHRvIEludGVybmFscy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NDA2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQgZnJvbSBMYXlvdXRUZXN0Q290cm9sbGVyIHRvIEludGVybmFs
cyBhbmQKKyAgICAgICAgcmVtb3ZlIHRoZSBvbGQgcGxhdGZvcm0gc3BlY2lmaWMgaW1wbGVtZW50
YXRpb25zIGFzIGl0IGV4Y2x1c2l2ZWx5IHRlc3RzIFdlYkNvcmUgZnVuY3Rpb25hbGl0eS4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHA6CisK
IDIwMTItMDUtMDcgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5j
b20+CiAKICAgICAgICAgW0VGTF0gSWNvbiBkYXRhYmFzZSBwYXRoIG1heSBiZSBOVUxMIHdoZW4g
YSBuZXcgcGF0aCB3YXMgc2V0LgpJbmRleDogU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCShyZXZp
c2lvbiAxMTYzMDQpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NywyMSArODcsNiBAQCB2
b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Y2xlYXJPcGVuCiAgICAgICAgIGZyYW1lLT5s
b2FkZXIoKS0+c2V0T3BlbmVyKDApOwogfQogCi1TdHJpbmcgRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpjb3VudGVyVmFsdWVCeUVsZW1lbnRJZChjb25zdCBFdmFzX09iamVjdCogZXdrRnJhbWUs
IGNvbnN0IGNoYXIqIGVsZW1lbnRJZCkKLXsKLSAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUgPSBF
V0tQcml2YXRlOjpjb3JlRnJhbWUoZXdrRnJhbWUpOwotCi0gICAgaWYgKCFmcmFtZSkKLSAgICAg
ICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCA9IGZy
YW1lLT5kb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwotCi0gICAgaWYgKCFl
bGVtZW50KQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0KLSAgICByZXR1cm4gV2ViQ29yZTo6
Y291bnRlclZhbHVlRm9yRWxlbWVudChlbGVtZW50KTsKLX0KLQogYm9vbCBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6OmVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZChjb25z
dCBFdmFzX09iamVjdCogZXdrRnJhbWUsIGNvbnN0IFN0cmluZyYgZWxlbWVudElkKQogewogICAg
IFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IEVXS1ByaXZhdGU6OmNvcmVGcmFtZShld2tGcmFtZSk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTYzMDQpCisrKyBTb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNS0w
NyAgS2F1c3R1YmggQXRyYXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KKworICAgICAg
ICBbRFJUXSBMVEM6OiBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgpIGNvdWxkIGJlIG1vdmVk
IHRvIEludGVybmFscy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg0NDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSB0aGUgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQgZnJvbSBMYXlvdXRUZXN0
Q290cm9sbGVyIHRvIEludGVybmFscyBhbmQKKyAgICAgICAgcmVtb3ZlIHRoZSBvbGQgcGxhdGZv
cm0gc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIGFzIGl0IGV4Y2x1c2l2ZWx5IHRlc3RzIFdlYkNv
cmUgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrLmg6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGspOgorCiAy
MDEyLTA1LTA2ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgQ29udmVydCBpc1BhZ2VCb3hWaXNpYmxlIHRvIHVzZSBJbnRlcm5hbHMgaW50ZXJmYWNl
LgpJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCShyZXZpc2lvbiAxMTYzMDQpCisrKyBT
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODgsMjggKzE4OCw2IEBAIENTdHJpbmcgRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrOjpkdW1wUmUKIH0KIAogLyoqCi0gKiBjb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZDoKLSAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKLSAqIEBpZDogYW4gZWxlbWVu
dCBJRCBzdHJpbmcKLSAqCi0gKiBSZXR1cm4gdmFsdWU6IFRoZSBjb3VudGVyIHZhbHVlIG9mIGVs
ZW1lbnQgQGlkIGluIEBmcmFtZQotICovCi1DU3RyaW5nIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25z
dCBjaGFyKiBpZCkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZS
QU1FKGZyYW1lKSwgQ1N0cmluZygpKTsKLQotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZy
YW1lKTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKLQot
ICAgIEVsZW1lbnQqIGNvcmVFbGVtZW50ID0gY29yZUZyYW1lLT5kb2N1bWVudCgpLT5nZXRFbGVt
ZW50QnlJZChBdG9taWNTdHJpbmcoaWQpKTsKLSAgICBpZiAoIWNvcmVFbGVtZW50KQotICAgICAg
ICByZXR1cm4gQ1N0cmluZygpOwotCi0gICAgcmV0dXJuIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnQo
Y29yZUVsZW1lbnQpLnV0ZjgoKTsKLX0KLQotLyoqCiAgKiBudW1iZXJGb3JFbGVtZW50QnlJZAog
ICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQogICogQGlkOiBhbiBlbGVtZW50IElEIHN0cmlu
ZwpJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgJKHJldmlzaW9uIDExNjMwNCkKKysrIFNvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCSh3
b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgR1NMaXN0
KiBnZXRGcmFtZUNoaWxkcmVuKFdlYktpdFdlYkZyYW1lKik7CiAgICAgc3RhdGljIFdURjo6Q1N0
cmluZyBnZXRJbm5lclRleHQoV2ViS2l0V2ViRnJhbWUqKTsKICAgICBzdGF0aWMgV1RGOjpDU3Ry
aW5nIGR1bXBSZW5kZXJUcmVlKFdlYktpdFdlYkZyYW1lKik7Ci0gICAgc3RhdGljIFdURjo6Q1N0
cmluZyBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChXZWJLaXRXZWJGcmFtZSosIGNvbnN0IGNo
YXIqIGlkKTsKICAgICBzdGF0aWMgaW50IHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChXZWJLaXRX
ZWJGcmFtZSosIGNvbnN0IGNoYXIqIGlkLCBmbG9hdCBwYWdlV2lkdGgsIGZsb2F0IHBhZ2VIZWln
aHQpOwogICAgIHN0YXRpYyBpbnQgbnVtYmVyT2ZQYWdlc0ZvckZyYW1lKFdlYktpdFdlYkZyYW1l
KiwgZmxvYXQgcGFnZVdpZHRoLCBmbG9hdCBwYWdlSGVpZ2h0KTsKICAgICBzdGF0aWMgV1RGOjpD
U3RyaW5nIHBhZ2VQcm9wZXJ0eShXZWJLaXRXZWJGcmFtZSosIGNvbnN0IGNoYXIqIHByb3BlcnR5
TmFtZSwgaW50IHBhZ2VOdW1iZXIpOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMTE2
MzA0KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTItMDUtMDcgIEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBt
b3Rvcm9sYS5jb20+CisKKyAgICAgICAgW0RSVF0gTFRDOjogY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoKSBjb3VsZCBiZSBtb3ZlZCB0byBJbnRlcm5hbHMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDQwNgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkIGZyb20gTGF5b3V0VGVzdENvdHJvbGxlciB0byBJbnRlcm5hbHMgYW5kCisgICAgICAg
IHJlbW92ZSB0aGUgb2xkIHBsYXRmb3JtIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBhcyBpdCBl
eGNsdXNpdmVseSB0ZXN0cyBXZWJDb3JlIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBNaXNj
L1dlYkNvcmVTdGF0aXN0aWNzLmg6CisgICAgICAgICogTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5t
bToKKyAgICAgICAgKiBXZWJLaXQub3JkZXI6CisKIDIwMTItMDUtMDUgIERlYW4gSmFja3NvbiAg
PGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBuZXcgU2V0dGluZy9QcmVmZXJlbmNlIHRv
IGRpc2FibGUgcmVxdWVzdEFuaW1hdGlvbkZyYW1lCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJLaXQub3JkZXIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViS2l0Lm9yZGVy
CShyZXZpc2lvbiAxMTYzMDQpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQub3JkZXIJKHdv
cmtpbmcgY29weSkKQEAgLTE3NTMsNyArMTc1Myw2IEBAIF9fWk5LMjBXZWJGcmFtZUxvYWRlckNs
aWVudDIxc2hvdWxkR29Ub0gKIC1bV2ViRGVmYXVsdFBvbGljeURlbGVnYXRlIHdlYlZpZXc6c2hv
dWxkR29Ub0hpc3RvcnlJdGVtOl0KIC1bV2ViVmlldyhXZWJQZW5kaW5nUHVibGljKSB6b29tUGFn
ZU91dDpdCiAtW1dlYlZpZXcgX3pvb21PdXQ6aXNUZXh0T25seTpdCi0tW1dlYkZyYW1lKFdlYktp
dERlYnVnKSBjb3VudGVyVmFsdWVGb3JFbGVtZW50Ol0KIF9fWk4xNVdlYkNocm9tZUNsaWVudDEw
d2luZG93UmVjdEV2CiBfX1pOMTVXZWJDaHJvbWVDbGllbnQxMWNhblJ1bk1vZGFsRXYKIF9fWk4y
MFdlYkZyYW1lTG9hZGVyQ2xpZW50MjdkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnRFUE43V2Vi
Q29yZTE1SFRNTEZvcm1FbGVtZW50RQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJD
b3JlU3RhdGlzdGljcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2Vi
Q29yZVN0YXRpc3RpY3MuaAkocmV2aXNpb24gMTE2MzA0KQorKysgU291cmNlL1dlYktpdC9tYWMv
TWlzYy9XZWJDb3JlU3RhdGlzdGljcy5oCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw2IEBA
IEBpbnRlcmZhY2UgV2ViQ29yZVN0YXRpc3RpY3MgOiBOU09iamVjdAogCiBAaW50ZXJmYWNlIFdl
YkZyYW1lIChXZWJLaXREZWJ1ZykKIC0gKE5TU3RyaW5nICopcmVuZGVyVHJlZUFzRXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbkZvclByaW50aW5nOihCT09MKWZvclByaW50aW5nOwotLSAoTlNTdHJpbmcg
Kiljb3VudGVyVmFsdWVGb3JFbGVtZW50OihET01FbGVtZW50KillbGVtZW50OwogLSAoaW50KXBh
Z2VOdW1iZXJGb3JFbGVtZW50OihET01FbGVtZW50KillbGVtZW50OihmbG9hdClwYWdlV2lkdGhJ
blBpeGVsczooZmxvYXQpcGFnZUhlaWdodEluUGl4ZWxzOwogLSAoaW50KW51bWJlck9mUGFnZXM6
KGZsb2F0KXBhZ2VXaWR0aEluUGl4ZWxzOihmbG9hdClwYWdlSGVpZ2h0SW5QaXhlbHM7CiAtIChO
U1N0cmluZyAqKXBhZ2VQcm9wZXJ0eTooY29uc3QgY2hhciopcHJvcGVydHlOYW1lOihpbnQpcGFn
ZU51bWJlcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3Mu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGlj
cy5tbQkocmV2aXNpb24gMTE2MzA0KQorKysgU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDb3Jl
U3RhdGlzdGljcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjY4LDExICsyNjgsNiBAQCAtIChOU1N0
cmluZyAqKXJlbmRlclRyZWVBc0V4dGVybmFsUmVwcmVzCiAgICAgcmV0dXJuIGV4dGVybmFsUmVw
cmVzZW50YXRpb24oX3ByaXZhdGUtPmNvcmVGcmFtZSwgZm9yUHJpbnRpbmcgPyBSZW5kZXJBc1Rl
eHRQcmludGluZ01vZGUgOiBSZW5kZXJBc1RleHRCZWhhdmlvck5vcm1hbCk7CiB9CiAKLS0gKE5T
U3RyaW5nICopY291bnRlclZhbHVlRm9yRWxlbWVudDooRE9NRWxlbWVudCopZWxlbWVudAotewot
ICAgIHJldHVybiBjb3VudGVyVmFsdWVGb3JFbGVtZW50KGNvcmUoZWxlbWVudCkpOwotfQotCiAt
IChpbnQpcGFnZU51bWJlckZvckVsZW1lbnQ6KERPTUVsZW1lbnQqKWVsZW1lbnQ6KGZsb2F0KXBh
Z2VXaWR0aEluUGl4ZWxzOihmbG9hdClwYWdlSGVpZ2h0SW5QaXhlbHMKIHsKICAgICByZXR1cm4g
UHJpbnRDb250ZXh0OjpwYWdlTnVtYmVyRm9yRWxlbWVudChjb3JlKGVsZW1lbnQpLCBGbG9hdFNp
emUocGFnZVdpZHRoSW5QaXhlbHMsIHBhZ2VIZWlnaHRJblBpeGVscykpOwpJbmRleDogU291cmNl
L1dlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cJKHJldmlzaW9uIDExNjMwNCkKKysrIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMDcgIEthdXN0dWJoIEF0cmF3
YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgW0RSVF0gTFRDOjogY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoKSBjb3VsZCBiZSBtb3ZlZCB0byBJbnRlcm5hbHMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDQwNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIGZyb20gTGF5b3V0VGVzdENvdHJvbGxlciB0byBJbnRl
cm5hbHMgYW5kCisgICAgICAgIHJlbW92ZSB0aGUgb2xkIHBsYXRmb3JtIHNwZWNpZmljIGltcGxl
bWVudGF0aW9ucyBhcyBpdCBleGNsdXNpdmVseSB0ZXN0cyBXZWJDb3JlIGZ1bmN0aW9uYWxpdHku
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaDoKKwog
MjAxMi0wNS0wNiAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAg
ICAgICAgIENvbnZlcnQgaXNQYWdlQm94VmlzaWJsZSB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFj
ZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCShyZXZpc2lvbiAxMTYzMDQpCisrKyBTb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDQ1LDE3ICs0NDUsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0OjpnYXJiYWdlQ29sCiAjZW5kaWYKIH0KIAotLy8gUmV0dXJucyB0aGUgdmFsdWUgb2Yg
Y291bnRlciBpbiB0aGUgZWxlbWVudCBzcGVjaWZpZWQgYnkgXGEgaWQuCi1RU3RyaW5nIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0Ojpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChRV2ViRnJhbWUq
IGZyYW1lLCBjb25zdCBRU3RyaW5nJiBpZCkKLXsKLSAgICBGcmFtZSogY29yZUZyYW1lID0gUVdl
YkZyYW1lUHJpdmF0ZTo6Y29yZShmcmFtZSk7Ci0gICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9
IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9
IGRvY3VtZW50LT5nZXRFbGVtZW50QnlJZChpZCkpCi0gICAgICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6Y291bnRlclZhbHVlRm9yRWxlbWVudChlbGVtZW50KTsKLSAgICB9Ci0gICAgcmV0dXJuIFFT
dHJpbmcoKTsKLX0KLQogaW50IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpwYWdlTnVtYmVyRm9y
RWxlbWVudEJ5SWQoUVdlYkZyYW1lKiBmcmFtZSwgY29uc3QgUVN0cmluZyYgaWQsIGZsb2F0IHdp
ZHRoLCBmbG9hdCBoZWlnaHQpCiB7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IFFXZWJGcmFtZVBy
aXZhdGU6OmNvcmUoZnJhbWUpOwpJbmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAkocmV2aXNpb24gMTE2
MzA0KQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNyArMTM2LDYgQEAgcHVibGljOgogICAg
IHN0YXRpYyB2b2lkIHdlYkluc3BlY3RvckNsb3NlKFFXZWJQYWdlKiBwYWdlKTsKIAogICAgIHN0
YXRpYyBRU3RyaW5nIHdlYlBhZ2VHcm91cE5hbWUoUVdlYlBhZ2UgKnBhZ2UpOwotICAgIHN0YXRp
YyBRU3RyaW5nIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKFFXZWJGcmFtZSogZnJhbWUsIGNv
bnN0IFFTdHJpbmcmIGlkKTsKICAgICBzdGF0aWMgdm9pZCB3ZWJQYWdlU2V0R3JvdXBOYW1lKFFX
ZWJQYWdlKiBwYWdlLCBjb25zdCBRU3RyaW5nJiBncm91cE5hbWUpOwogICAgIHN0YXRpYyB2b2lk
IGNsZWFyRnJhbWVOYW1lKFFXZWJGcmFtZSogZnJhbWUpOwogICAgIHN0YXRpYyB2b2lkIG92ZXJ3
cml0ZVBsdWdpbkRpcmVjdG9yaWVzKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiAx
MTYzMDQpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNyBAQAorMjAxMi0wNS0wNyAgS2F1c3R1YmggQXRyYXdhbGthciAgPGthdXN0dWJo
QG1vdG9yb2xhLmNvbT4KKworICAgICAgICBbRFJUXSBMVEM6OiBjb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgpIGNvdWxkIGJlIG1vdmVkIHRvIEludGVybmFscy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NDA2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQgZnJvbSBMYXlvdXRUZXN0Q290cm9sbGVyIHRvIEludGVybmFscyBhbmQKKyAgICAg
ICAgcmVtb3ZlIHRoZSBvbGQgcGxhdGZvcm0gc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIGFzIGl0
IGV4Y2x1c2l2ZWx5IHRlc3RzIFdlYkNvcmUgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIElu
dGVyZmFjZXMvSVdlYkZyYW1lUHJpdmF0ZS5pZGw6CisgICAgICAgICogV2ViRnJhbWUuY3BwOgor
ICAgICAgICAqIFdlYkZyYW1lLmg6CisKIDIwMTItMDUtMDUgIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBuZXcgU2V0dGluZy9QcmVmZXJlbmNlIHRvIGRpc2Fi
bGUgcmVxdWVzdEFuaW1hdGlvbkZyYW1lCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFt
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCShyZXZp
c2lvbiAxMTYzMDQpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTg4OCwyNSArODg4LDYgQEAgSFJFU1VMVCBXZWJGcmFtZTo6cmVuZGVyVHJlZUFz
RXh0ZXJuYWxSZQogICAgIHJldHVybiBTX09LOwogfQogCi1IUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIFdlYkZyYW1lOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgKLSAgICAvKiBbaW5dICov
IEJTVFIgaWQsIC8qIFtyZXR2YWxdW291dF0gKi8gQlNUUiAqcmVzdWx0KQotewotICAgIGlmICgh
cmVzdWx0KQotICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwotCi0gICAgRnJhbWUqIGNvcmVGcmFt
ZSA9IGNvcmUodGhpcyk7Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAgICAgIHJldHVybiBFX0ZB
SUw7Ci0KLSAgICBTdHJpbmcgY29yZUlkID0gU3RyaW5nKGlkLCBTeXNTdHJpbmdMZW4oaWQpKTsK
LQotICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBjb3JlRnJhbWUtPmRvY3VtZW50KCktPmdldEVsZW1l
bnRCeUlkKGNvcmVJZCk7Ci0gICAgaWYgKCFlbGVtZW50KQotICAgICAgICByZXR1cm4gRV9GQUlM
OwotICAgICpyZXN1bHQgPSBCU3RyaW5nKGNvdW50ZXJWYWx1ZUZvckVsZW1lbnQoZWxlbWVudCkp
LnJlbGVhc2UoKTsKLSAgICByZXR1cm4gU19PSzsKLX0KLQogSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBXZWJGcmFtZTo6cGFnZU51bWJlckZvckVsZW1lbnRCeUlkKAogICAgIC8qIFtpbl0gKi8g
QlNUUiBpZCwKICAgICAvKiBbaW5dICovIGZsb2F0IHBhZ2VXaWR0aEluUGl4ZWxzLApJbmRleDog
U291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L3dpbi9XZWJGcmFtZS5oCShyZXZpc2lvbiAxMTYzMDQpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9X
ZWJGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsMTAgKzE2Myw2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgdW51c2VkMShCU1RSKikgeyByZXR1
cm4gRV9OT1RJTVBMOyB9CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJl
bmRlclRyZWVBc0V4dGVybmFsUmVwcmVzZW50YXRpb24oQk9PTCBmb3JQcmludGluZywgQlNUUiAq
cmVzdWx0KTsKIAotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBjb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgKLSAgICAgICAgLyogW2luXSAqLyBCU1RSIGlkLAotICAgICAg
ICAvKiBbcmV0dmFsXVtvdXRdICovIEJTVFIgKnJlc3VsdCk7Ci0KICAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgcGFnZU51bWJlckZvckVsZW1lbnRCeUlkKAogICAgICAgICAv
KiBbaW5dICovIEJTVFIgaWQsCiAgICAgICAgIC8qIFtpbl0gKi8gZmxvYXQgcGFnZVdpZHRoSW5Q
aXhlbHMsCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJGcmFtZVByaXZh
dGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYkZy
YW1lUHJpdmF0ZS5pZGwJKHJldmlzaW9uIDExNjMwNCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL0lu
dGVyZmFjZXMvSVdlYkZyYW1lUHJpdmF0ZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTk2LDggKzk2
LDYgQEAgaW50ZXJmYWNlIElXZWJGcmFtZVByaXZhdGUgOiBJVW5rbm93bgogCiAgICAgW2xvY2Fs
XSBKU0dsb2JhbENvbnRleHRSZWYgZ2xvYmFsQ29udGV4dEZvclNjcmlwdFdvcmxkKFtpbl0gSVdl
YlNjcmlwdFdvcmxkKik7CiAKLSAgICBIUkVTVUxUIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KFtpbl0gQlNUUiBpZCwgW291dCwgcmV0dmFsXSBCU1RSKiByZXN1bHQpOwotCiAgICAgSFJFU1VM
VCB2aXNpYmxlQ29udGVudFJlY3QoW291dCwgcmV0dmFsXSBSRUNUKik7CiAKICAgICBIUkVTVUxU
IHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChbaW5dIEJTVFIgaWQsIFtpbl0gZmxvYXQgcGFnZVdp
ZHRoSW5QaXhlbHMsIFtpbl0gZmxvYXQgcGFnZUhlaWdodEluUGl4ZWxzLCBbb3V0LCByZXR2YWxd
IGludCogcGFnZU51bWJlcik7CkluZGV4OiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIJKHJldmlzaW9u
IDExNjMwNCkKKysrIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIJKHdvcmtpbmcgY29w
eSkKQEAgLTEwNSw2ICsxMDUsOCBAQCBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ4c2V0dGluZ3NFdjsK
IF9aTks3V2ViQ29yZThEb2N1bWVudDR2aWV3RXY7CiBfWk5LN1dlYkNvcmU1UmFuZ2U0dGV4dEV2
OwogX1pOSzdXZWJDb3JlOVRyZWVTY29wZTE0Z2V0RWxlbWVudEJ5SWRFUktOM1dURjEyQXRvbWlj
U3RyaW5nRTsKK19aTks3V2ViQ29yZThEb2N1bWVudDE0Z2V0RWxlbWVudEJ5SWRFUktOM1dURjEy
QXRvbWljU3RyaW5nRTsKK19aTjdXZWJDb3JlMjJjb3VudGVyVmFsdWVGb3JFbGVtZW50RVBOU183
RWxlbWVudEU7CiBfWk5LN1dlYkNvcmUxNERvY3VtZW50TWFya2VyMTFkZXNjcmlwdGlvbkV2Owog
X1pON1dlYkNvcmU4RG9jdW1lbnQxNmlzUGFnZUJveFZpc2libGVFaTsKIF9aTks3V2ViQ29yZTE5
SW5zcGVjdG9yQ29udHJvbGxlcjEyZ2V0SGlnaGxpZ2h0RVBOU185SGlnaGxpZ2h0RTsKSW5kZXg6
IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDExNjMwNCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMy
IEBACisyMDEyLTA1LTA3ICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEu
Y29tPgorCisgICAgICAgIFtEUlRdIExUQzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkg
Y291bGQgYmUgbW92ZWQgdG8gSW50ZXJuYWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRoZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCBm
cm9tIExheW91dFRlc3RDb3Ryb2xsZXIgdG8gSW50ZXJuYWxzIGFuZAorICAgICAgICByZW1vdmUg
dGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgYXMgaXQgZXhjbHVzaXZl
bHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJy
eS5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250
cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHA6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW06CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHA6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oOgorICAgICAgICAo
TGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9MYXlv
dXRUZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd3gvTGF5
b3V0VGVzdENvbnRyb2xsZXJXeC5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGw6CisKIDIwMTItMDUt
MDcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTYyOTksIHIxMTYzMDEsIGFuZCByMTE2MzAzLgpJ
bmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAko
cmV2aXNpb24gMTE2MzA0KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NjEsMjIgKzY2MSw2IEBAIHN0YXRpYyBKU1Zh
bHVlUmVmIGZpbmRTdHJpbmdDYWxsYmFjayhKU0MKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VCb29s
ZWFuKGNvbnRleHQsIGNvbnRyb2xsZXItPmZpbmRTdHJpbmcoY29udGV4dCwgdGFyZ2V0LmdldCgp
LCBvcHRpb25zKSk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIGNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9u
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGlmIChh
cmd1bWVudENvdW50IDwgMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOwotCi0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGVsZW1lbnRJZChBZG9wdCwg
SlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOwot
ICAgIGlmICgqZXhjZXB0aW9uKQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQo
Y29udGV4dCk7Ci0KLSAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRp
Y19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmpl
Y3QpKTsKLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY291bnRlclZhbHVlKGNvbnRyb2xs
ZXItPmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGVsZW1lbnRJZC5nZXQoKSkpOwotICAgIGlm
ICghY291bnRlclZhbHVlLmdldCgpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoY29udGV4dCk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGNvdW50
ZXJWYWx1ZS5nZXQoKSk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIGdvQmFja0NhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhp
c09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRz
W10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBMYXlvdXRUZXN0Q29udHJvbGxlciog
Y29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RH
ZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKQEAgLTIzNDEsNyArMjMyNSw2IEBAIEpTU3RhdGljRnVu
Y3Rpb24qIExheW91dFRlc3RDb250cm9sbGVyOjoKICAgICAgICAgeyAiZXZhbHVhdGVTY3JpcHRJ
bklzb2xhdGVkV29ybGQiLCBldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZENhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCiAgICAgICAgIHsgImV4ZWNDb21tYW5kIiwgZXhlY0NvbW1hbmRDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAogICAgICAgICB7ICJmaW5kU3RyaW5nIiwgZmluZFN0cmluZ0NhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
Ci0gICAgICAgIHsgImNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIiwgY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJvcmlnaW5zV2l0aEFwcGxp
Y2F0aW9uQ2FjaGUiLCBvcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGVDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgICAgICB7ICJnb0JhY2siLCBnb0JhY2tDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LCAKICAgICAgICAg
eyAiZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbiIsIGdyYW50RGVza3RvcE5vdGlm
aWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LCAKSW5kZXg6IFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkocmV2aXNpb24gMTE2MzA0KQorKysgVG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtNTYsNyArNTYsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYWxsU2hvdWxkQ2xvc2VPbldlYlZp
ZXcoKTsKICAgICBKU1N0cmluZ1JlZiBjb3B5RGVjb2RlZEhvc3ROYW1lKEpTU3RyaW5nUmVmIG5h
bWUpOwogICAgIEpTU3RyaW5nUmVmIGNvcHlFbmNvZGVkSG9zdE5hbWUoSlNTdHJpbmdSZWYgbmFt
ZSk7Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKEpTU3RyaW5nUmVmIGlkKTsKICAgICB2b2lkIGRpc2FibGVJbWFnZUxvYWRpbmcoKTsKICAg
ICB2b2lkIGRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0cygpOwogICAgIHZvaWQgZGlzcGxheSgp
OwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJv
bGxlckJsYWNrQmVycnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Js
YWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcAkocmV2aXNpb24gMTE2
MzA0KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJv
bGxlckJsYWNrQmVycnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzUsMjEgKzQzNSw2IEBAIHZv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRpc2FibGVJbWFnZUwKICAgICBCbGFja0JlcnJ5OjpX
ZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpjdXJyZW50SW5zdGFuY2UoKS0+cGFnZSgpLT5zZXR0aW5n
cygpLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoZmFsc2UpOwogfQogCi1KU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKEpTU3RyaW5nUmVmIGlkKQotewotICAgIFN0cmluZyBpZFN0ciA9IGpzU3RyaW5nUmVm
VG9XZWJDb3JlU3RyaW5nKGlkKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBjb3JlRWxlbWVudCA9
IG1haW5GcmFtZS0+ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoQXRvbWljU3RyaW5nKGlkU3Ry
KSk7Ci0gICAgaWYgKCFjb3JlRWxlbWVudCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBDU3Ry
aW5nIGNvdW50ZXJWYWx1ZVN0ciA9IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnQoY29yZUVsZW1lbnQp
LnV0ZjgoKTsKLSAgICBpZiAoY291bnRlclZhbHVlU3RyLmlzTnVsbCgpKQotICAgICAgICByZXR1
cm4gMDsKLQotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWUoQWRvcHQs
IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGNvdW50ZXJWYWx1ZVN0ci5kYXRhKCkpKTsK
LSAgICByZXR1cm4gY291bnRlclZhbHVlOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpvdmVycmlkZVByZWZlcmVuY2UoSlNTdHJpbmdSZWYga2V5LCBKU1N0cmluZ1JlZiB2YWx1ZSkK
IHsKICAgICBpZiAoIW1haW5GcmFtZSkKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDExNjMw
NCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDcgKzEwMCw2IEBAIExheW91dFRlc3RDb250cm9s
bGVyOjpMYXlvdXRUZXN0Q29udHJvbGwKICAgICBiaW5kTWV0aG9kKCJhZGRVc2VyU3R5bGVTaGVl
dCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclN0eWxlU2hlZXQpOwogICAgIGJpbmRN
ZXRob2QoImNsZWFyQWxsRGF0YWJhc2VzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpjbGVhckFs
bERhdGFiYXNlcyk7CiAgICAgYmluZE1ldGhvZCgiY2xvc2VXZWJJbnNwZWN0b3IiLCAmTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmNsb3NlV2ViSW5zcGVjdG9yKTsKLSAgICBiaW5kTWV0aG9kKCJjb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQpOwogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgYmluZE1l
dGhvZCgiZGlkTG9zZVBvaW50ZXJMb2NrIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkaWRMb3Nl
UG9pbnRlckxvY2spOwogI2VuZGlmCkBAIC0xNjYyLDIwICsxNjYxLDYgQEAgdm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0UE9TSVhMb2NhbAogICAgICAgICBzZXRsb2NhbGUoTENfQUxMLCBh
cmd1bWVudHNbMF0udG9TdHJpbmcoKS5jX3N0cigpKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICByZXN1bHQtPnNldE51bGwo
KTsKLSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDEgfHwgIWFyZ3VtZW50c1swXS5pc1N0cmlu
ZygpKQotICAgICAgICByZXR1cm47Ci0gICAgV2ViRnJhbWUqIGZyYW1lID0gbV9zaGVsbC0+d2Vi
VmlldygpLT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm47Ci0g
ICAgV2ViU3RyaW5nIGNvdW50ZXJWYWx1ZSA9IGZyYW1lLT5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZChjcHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzBdKSk7Ci0gICAgaWYgKGNvdW50
ZXJWYWx1ZS5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHJlc3VsdC0+c2V0KGNvdW50
ZXJWYWx1ZS51dGY4KCkpOwotfQotCiAvLyBQYXJzZSBhIHNpbmdsZSBhcmd1bWVudC4gVGhlIG1l
dGhvZCByZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMgYW4gYXJndW1lbnQgdGhhdAogLy8gaXMgYSBu
dW1iZXIgb3IgaWYgdGhlcmUgaXMgbm8gYXJndW1lbnQgYXQgYWxsLiBJdCByZXR1cm5zIGZhbHNl
IG9ubHkgaWYgdGhlcmUKIC8vIGlzIHNvbWUgYXJndW1lbnQgdGhhdCBpcyBub3QgYSBudW1iZXIu
IFRoZSB2YWx1ZSBwYXJhbWV0ZXIgaXMgZmlsbGVkIHdpdGggdGhlCkluZGV4OiBUb29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHJl
dmlzaW9uIDExNjMwNCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyNCw5ICszMjQsNiBAQCBwdWJsaWM6
CiAgICAgLy8gUmVzZXRzIGJldHdlZW4gdGVzdHMuCiAgICAgdm9pZCBzZXRQT1NJWExvY2FsZShj
b25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKLSAgICAvLyBHZXRzIHRoZSB2
YWx1ZSBvZiB0aGUgY291bnRlciBpbiB0aGUgZWxlbWVudCBzcGVjaWZpZWQgYnkgaXRzIElELgot
ICAgIHZvaWQgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwotCiAgICAgLy8gQ2F1c2VzIGxheW91dCB0byBoYXBwZW4gYXMgaWYg
dGFyZ2V0dGVkIHRvIHByaW50ZWQgcGFnZXMuCiAgICAgdm9pZCBzZXRQcmludGluZyhjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
RHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcAkocmV2aXNpb24g
MTE2MzA0KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVy
RWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTksMTMgKzk5LDYgQEAgdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6ZGlzcGxheSgpCiAgICAgZGlzcGxheVdlYlZpZXcoKTsKIH0KIAotSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpjb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKLXsKLSAgICBjb25zdCBFdmFzX09iamVjdCogbWFp
bkZyYW1lID0gYnJvd3Nlci0+bWFpbkZyYW1lKCk7Ci0gICAgY29uc3QgU3RyaW5nIGNvdW50ZXJW
YWx1ZShEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmNvdW50ZXJWYWx1ZUJ5RWxlbWVudElkKG1h
aW5GcmFtZSwgaWQtPnVzdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7Ci0gICAgcmV0dXJuIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPihBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
Y291bnRlclZhbHVlLnV0ZjgoKS5kYXRhKCkpKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6a2VlcFdlYkhpc3RvcnkoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBU
b29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0
ay5jcHAJKHJldmlzaW9uIDExNjMwNCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlv
dXRUZXN0Q29udHJvbGxlckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMiwxNyArMTAyLDYg
QEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzcGxheSgpCiAgICAgZGlzcGxheVdlYlZp
ZXcoKTsKIH0KIAotSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVy
Ojpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKLXsKLSAgICBnY2hh
ciogaWRHQ2hhciA9IEpTU3RyaW5nQ29weVVURjhDU3RyaW5nKGlkKTsKLSAgICBDU3RyaW5nIGNv
dW50ZXJWYWx1ZUdDaGFyID0gRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpjb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZChtYWluRnJhbWUsIGlkR0NoYXIpOwotICAgIGdfZnJlZShpZEdDaGFyKTsK
LSAgICBpZiAoY291bnRlclZhbHVlR0NoYXIuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiAwOwot
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWUoQWRvcHQsIEpTU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKGNvdW50ZXJWYWx1ZUdDaGFyLmRhdGEoKSkpOwotICAgIHJl
dHVybiBjb3VudGVyVmFsdWU7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmtlZXBX
ZWJIaXN0b3J5KCkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CkluZGV4OiBUb29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCShyZXZp
c2lvbiAxMTYzMDQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRy
b2xsZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI0OSwxOSArMjQ5LDYgQEAgdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6ZGlzcGxheSgpCiAgICAgZGlzcGxheVdlYlZpZXcoKTsKIH0KIAot
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpjb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKLXsKLSAgICBSZXRhaW5QdHI8Q0ZTdHJp
bmdSZWY+IGlkQ0YoQWRvcHRDRiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgaWQpKTsKLSAgICBOU1N0cmluZyAqaWROUyA9IChOU1N0cmluZyAqKWlkQ0YuZ2V0KCk7
Ci0KLSAgICBET01FbGVtZW50ICplbGVtZW50ID0gW1ttYWluRnJhbWUgRE9NRG9jdW1lbnRdIGdl
dEVsZW1lbnRCeUlkOmlkTlNdOwotICAgIGlmICghZWxlbWVudCkKLSAgICAgICAgcmV0dXJuIDA7
Ci0KLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY291bnRlclZhbHVlKEFkb3B0LCBKU1N0
cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygoQ0ZTdHJpbmdSZWYpW21haW5GcmFtZSBjb3VudGVyVmFs
dWVGb3JFbGVtZW50OmVsZW1lbnRdKSk7Ci0gICAgcmV0dXJuIGNvdW50ZXJWYWx1ZTsKLX0KLQog
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6a2VlcFdlYkhpc3RvcnkoKQogewogICAgIGlmICgh
W1dlYkhpc3Rvcnkgb3B0aW9uYWxTaGFyZWRIaXN0b3J5XSkgewpJbmRleDogVG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAJKHJldmlzaW9u
IDExNjMwNCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsMTEgKzE1NSw2IEBAIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OndhaXRVbnRpbERvbmUKICAgICBtX3RpbWVvdXRUaW1lci5zdGFydChtX3Rp
bWVvdXQsIHRoaXMpOwogfQogCi1RU3RyaW5nIExheW91dFRlc3RDb250cm9sbGVyOjpjb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZChjb25zdCBRU3RyaW5nJiBpZCkKLXsKLSAgICByZXR1cm4gRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQ6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKG1fZHJ0LT53
ZWJQYWdlKCktPm1haW5GcmFtZSgpLCBpZCk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKGNvbnN0IFFTdHJpbmcmIG1vZGUpCiB7CiAgICAg
bV9kcnQtPndlYlBhZ2UoKS0+c2V0UHJvcGVydHkoIl9xX3ZpZXdNb2RlIiwgbW9kZSk7CkluZGV4
OiBUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5o
CShyZXZpc2lvbiAxMTYzMDQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0
Q29udHJvbGxlclF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw3ICsxMDUsNiBAQCBwdWJsaWMg
c2xvdHM6CiAgICAgdm9pZCBzZXRDYW5PcGVuV2luZG93cygpIHsgbV9jYW5PcGVuV2luZG93cyA9
IHRydWU7IH0KICAgICB2b2lkIHNldFByaW50aW5nKCkgeyBtX2lzUHJpbnRpbmcgPSB0cnVlOyB9
CiAgICAgdm9pZCB3YWl0VW50aWxEb25lKCk7Ci0gICAgUVN0cmluZyBjb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZChjb25zdCBRU3RyaW5nJiBpZCk7CiAgICAgaW50IHdlYkhpc3RvcnlJdGVtQ291
bnQoKTsKICAgICB2b2lkIGtlZXBXZWJIaXN0b3J5KCk7CiAgICAgdm9pZCBub3RpZnlEb25lKCk7
CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29u
dHJvbGxlcldpbi5jcHAJKHJldmlzaW9uIDExNjMwNCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMzYs
MjUgKzEzMzYsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVBbGxWaXNpCiAg
ICAgc2hhcmVkSGlzdG9yeVByaXZhdGUtPnJlbW92ZUFsbFZpc2l0ZWRMaW5rcygpOwogfQogCi1K
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkKQotewotICAgIENPTVB0cjxJV2ViRnJhbWVQ
cml2YXRlPiBmcmFtZVByaXZhdGUoUXVlcnksIGZyYW1lKTsKLSAgICBpZiAoIWZyYW1lUHJpdmF0
ZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICB3c3RyaW5nIGlkV3N0cmluZyA9IGpzU3RyaW5n
UmVmVG9XU3RyaW5nKGlkKTsKLSAgICBCU1RSIGlkQlNUUiA9IFN5c0FsbG9jU3RyaW5nTGVuKChP
TEVDSEFSKilpZFdzdHJpbmcuY19zdHIoKSwgaWRXc3RyaW5nLmxlbmd0aCgpKTsKLSAgICBCU1RS
IGNvdW50ZXJWYWx1ZUJTVFI7Ci0gICAgaWYgKEZBSUxFRChmcmFtZVByaXZhdGUtPmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKGlkQlNUUiwgJmNvdW50ZXJWYWx1ZUJTVFIpKSkKLSAgICAgICAg
cmV0dXJuIDA7Ci0KLSAgICB3c3RyaW5nIGNvdW50ZXJWYWx1ZShjb3VudGVyVmFsdWVCU1RSLCBT
eXNTdHJpbmdMZW4oY291bnRlclZhbHVlQlNUUikpOwotICAgIFN5c0ZyZWVTdHJpbmcoaWRCU1RS
KTsKLSAgICBTeXNGcmVlU3RyaW5nKGNvdW50ZXJWYWx1ZUJTVFIpOwotICAgIEpTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWVKUyhBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoQ2hh
cmFjdGVycyhjb3VudGVyVmFsdWUuZGF0YSgpLCBjb3VudGVyVmFsdWUubGVuZ3RoKCkpKTsKLSAg
ICByZXR1cm4gY291bnRlclZhbHVlSlM7Ci19Ci0KIGludCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
cGFnZU51bWJlckZvckVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkLCBmbG9hdCBwYWdlV2lkdGhJ
blBpeGVscywgZmxvYXQgcGFnZUhlaWdodEluUGl4ZWxzKQogewogICAgIENPTVB0cjxJV2ViRnJh
bWVQcml2YXRlPiBmcmFtZVByaXZhdGUoUXVlcnksIGZyYW1lKTsKSW5kZXg6IFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCShyZXZpc2lv
biAxMTYzMDQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxl
cld4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDg2LDExICs0ODYsNiBAQCB2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRTY3JvbGxiYXJQCiAgICAgLy8gRklYTUU6IGltcGxlbWVudAogfQog
Ci1KU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkKQotewotICAgIHJldHVybiAwOwotfQot
CiBpbnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChKU1N0
cmluZ1JlZiwgZmxvYXQsIGZsb2F0KQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKSW5kZXg6
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCShyZXZpc2lvbiAx
MTYzMDQpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L0xheW91dFRlc3RDb250cm9sbGVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNiBA
QCBtb2R1bGUgV1RSIHsKICAgICAgICAgLy8gU3BlY2lhbCBET00gZnVuY3Rpb25zLgogICAgICAg
ICB2b2lkIGNsZWFyQmFja0ZvcndhcmRMaXN0KCk7CiAgICAgICAgIG9iamVjdCBjb21wdXRlZFN0
eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oaW4gb2JqZWN0IGVsZW1lbnQpOwotICAgICAgICBET01T
dHJpbmcgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoaW4gRE9NU3RyaW5nIGVsZW1lbnRJZCk7
CiAgICAgICAgIHZvaWQgZXhlY0NvbW1hbmQoaW4gRE9NU3RyaW5nIG5hbWUsIGluIERPTVN0cmlu
ZyBhcmd1bWVudCk7CiAgICAgICAgIGJvb2xlYW4gaXNDb21tYW5kRW5hYmxlZChpbiBET01TdHJp
bmcgbmFtZSk7CiAgICAgICAgIERPTVN0cmluZyBtYXJrZXJUZXh0Rm9yTGlzdEl0ZW0oaW4gb2Jq
ZWN0IGVsZW1lbnQpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTE2MzA0KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTItMDUtMDcgIEth
dXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgW0RS
VF0gTFRDOjogY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoKSBjb3VsZCBiZSBtb3ZlZCB0byBJ
bnRlcm5hbHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NDQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1vdmUgdGhlIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIGZyb20gTGF5b3V0VGVzdENvdHJv
bGxlciB0byBJbnRlcm5hbHMgYW5kCisgICAgICAgIHJlbW92ZSB0aGUgb2xkIHBsYXRmb3JtIHNw
ZWNpZmljIGltcGxlbWVudGF0aW9ucyBhcyBpdCBleGNsdXNpdmVseSB0ZXN0cyBXZWJDb3JlIGZ1
bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy8yZGlzcGxheXMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzLzJkaXNwbGF5cy5odG1sOgor
ICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL2FkZGluZy1ub2Rlcy5odG1sOgorICAgICAgICAq
IGZhc3QvY3NzL2NvdW50ZXJzL2FmdGVyLWNvbnRpbnVhdGlvbi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9jc3MvY291bnRlcnMvYWZ0ZXItY29udGludWF0aW9uLmh0bWw6CisgICAgICAg
ICogZmFzdC9jc3MvY291bnRlcnMvY29udGVudC0wMjEtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvY3NzL2NvdW50ZXJzL2NvbnRlbnQtMDIxLmh0bWw6CisgICAgICAgICogZmFzdC9jc3Mv
Y291bnRlcnMvY291bnRlci1iZWZvcmUtY29udGVudC1ub3QtaW5jcmVtZW50ZWQuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDAtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMC5o
dG1sOgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1l
bnQtMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1l
bnQtMDAyLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1l
bnQtaW5oZXJpdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvY291
bnRlci1pbmNyZW1lbnQtaW5oZXJpdC5odG06CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMv
Y291bnRlci1pbmNyZW1lbnQtb3ZlcmZsb3cuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3Vu
dGVycy9jb3VudGVyLWluY3JlbWVudC10ZXN0cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtdGVzdHMuaHRtOgorICAgICAgICAqIGZh
c3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAwLmh0bWw6CisgICAgICAgICogZmFzdC9j
c3MvY291bnRlcnMvY291bnRlci1yZXNldC0wMDEuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9j
b3VudGVycy9jb3VudGVyLXJlc2V0LTAwMi5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50
ZXJzL2NvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2Nzcy9jb3VudGVycy9jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZC5odG1sOgorICAgICAg
ICAqIGZhc3QvY3NzL2NvdW50ZXJzL2RlZXAtYmVmb3JlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L2Nzcy9jb3VudGVycy9kZWVwLWJlZm9yZS5odG1sOgorICAgICAgICAqIGZhc3QvY3Nz
L2NvdW50ZXJzL2ludmFsaWRhdGUtY2FjaGVkLWNvdW50ZXItbm9kZS5odG1sOgorICAgICAgICAq
IGZhc3QvY3NzL2NvdW50ZXJzL25lc3RpbmcuaHRtbDoKKwogMjAxMi0wNS0wNyAgQWxleGlzIE1l
bmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbUXRdIEVuYWJs
ZSBmdWxsc2NyZWVuIGFwaSBsYXlvdXQgdGVzdHMgb24gV2ViS2l0Mi4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY3NzL2NvdW50ZXJzLzJkaXNwbGF5cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvMmRpc3BsYXlzLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMTE2MzA0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvMmRpc3Bs
YXlzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNiw1ICs2LDUgQEAgT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0VmlldycpIGlzICcxMDAwIDEwMDAnCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3RWaWV3JykgaXMg
JzEwMDAgMTAwMCcKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvMmRpc3Bs
YXlzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvMmRp
c3BsYXlzLmh0bWwJKHJldmlzaW9uIDExNjMwNCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
dW50ZXJzLzJkaXNwbGF5cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIGZ1
bmN0aW9uIHJ1bigpCiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RWaWV3Iikuc2V0
QXR0cmlidXRlKCJjbGFzcyIsICJjb3VudGVyMTAwMCIpOwogICAgIGlmICghd2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQogICAgICAgICByZXR1cm47Ci0gICAgc2hvdWxkQmUoImxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0VmlldycpIiwgIicx
MDAwIDEwMDAnIik7CisgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3RWaWV3JykiLCAiJzEwMDAgMTAwMCciKTsKIAogICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2FkZGlu
Zy1ub2Rlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJz
L2FkZGluZy1ub2Rlcy5odG1sCShyZXZpc2lvbiAxMTYzMDQpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb3VudGVycy9hZGRpbmctbm9kZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyAr
MzQsNyBAQAogICAgICAgICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgICAgICAgICAgICAgaWQgPSBzcGFuTGlzdC5p
dGVtKGkpLmdldEF0dHJpYnV0ZSgiaWQiKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGlkICE9
IG51bGwpCi0gICAgICAgICAgICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQg
PSBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChpZCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSB3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGlkKTsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dC5sZW5ndGgpCiAgICAgICAgICAgICAg
ICAgICAgICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSBuZXdTcGFuRWxlbWVudC5pbm5l
clRleHQgKyAiLSI7CiAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobmV3
U3BhbkVsZW1lbnQpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvYWZ0ZXIt
Y29udGludWF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb3VudGVycy9hZnRlci1jb250aW51YXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
MTYzMDQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZnRlci1jb250aW51YXRp
b24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogVGhpcyB0ZXN0
IHBhc3NlcyBpZiB0aGUgbnVtYmVycyBkaXNwbGF5ZWQgYmVsb3cgYXJlIDEgYW5kIDIgaW4gdGhp
cyBvcmRlci4KIAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgnYzInKSBpcyAnMicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgnYzInKSBpcyAnMicKIAogVEVTVCBDT01QTEVURQogCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZnRlci1jb250aW51YXRpb24uaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZnRlci1jb250aW51YXRpb24u
aHRtbAkocmV2aXNpb24gMTE2MzA0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMv
YWZ0ZXItY29udGludWF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAK
ICAgICAgICAgfQogICAgICAgICBmdW5jdGlvbiBydW4oKQogICAgICAgICB7Ci0gICAgICAgICAg
ICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ2MyJykiLCAiJzInIik7CisgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYzInKSIsICInMiciKTsKIAogICAgICAgICAg
ICAgZGVidWcoJycpOwogICAgICAgICAgICAgZGVidWcoJ1RFU1QgQ09NUExFVEUnKTsKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvbnRlbnQtMDIxLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb250ZW50LTAyMS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDExNjMwNCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
dW50ZXJzL2NvbnRlbnQtMDIxLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsx
LDcgQEAKIFRoaXMgaXMgdGhlIFdlYktpdCB2ZXJzaW9uIG9mIENTUyBUZXN0OiBDb250ZW50IHVz
aW5nIGEgJ2NvdW50ZXJzKCknIGZ1bmN0aW9uIHdpdGggYSBzdHJpbmcgdmFsdWUuCiAKLVBBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2RpdjEnKSBp
cyAnMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ2RpdjInKSBpcyAnMC4wJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCdkaXYxJykgaXMgJzAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ2RpdjInKSBpcyAnMC4wJwogCiBURVNUIENPTVBMRVRFCiAK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvbnRlbnQtMDIxLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY29udGVudC0wMjEuaHRt
bAkocmV2aXNpb24gMTE2MzA0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY29u
dGVudC0wMjEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgsOCBAQAogICB7CiAgICAg
ICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgICByZXR1cm47Ci0g
ICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ2RpdjEnKSIsICInMCciKTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZGl2MicpIiwgIicwLjAnIik7CisgICAg
ICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
ZGl2MScpIiwgIicwJyIpOworICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ2RpdjInKSIsICInMC4wJyIpOwogCiAgICAgICBkZWJ1Zygn
Jyk7CiAgICAgICBkZWJ1ZygnVEVTVCBDT01QTEVURScpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY291bnRlcnMvY291bnRlci1iZWZvcmUtY29udGVudC1ub3QtaW5jcmVtZW50ZWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWJl
Zm9yZS1jb250ZW50LW5vdC1pbmNyZW1lbnRlZC5odG1sCShyZXZpc2lvbiAxMTYzMDQpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWJlZm9yZS1jb250ZW50LW5vdC1p
bmNyZW1lbnRlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBACiAgICAgICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNwYW5MaXN0Lmxlbmd0aDsgKytpICkgewogICAgICAg
ICAgICAgICAgIHZhciBkaXZJdGVtID0gc3Bhbkxpc3QuaXRlbShpKTsKICAgICAgICAgICAgICAg
ICBjb3VudGVycyArPSAnLSc7Ci0gICAgICAgICAgICAgICAgY291bnRlcnMgKz0gbGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoZGl2SXRlbS5nZXRBdHRyaWJ1
dGUoImlkIikpOworICAgICAgICAgICAgICAgIGNvdW50ZXJzICs9IHdpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoZGl2SXRlbS5nZXRBdHRyaWJ1dGUoImlkIikpOwog
ICAgICAgICAgICAgICAgIGNvdW50ZXJzICs9IGRpdkl0ZW0udGV4dENvbnRlbnQ7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIiku
aW5uZXJIVE1MID0gY291bnRlcnM7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVy
cy9jb3VudGVyLWluY3JlbWVudC0wMDAtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDExNjMwNCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2Nv
dW50ZXItaW5jcmVtZW50LTAwMC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTQg
KzEsMTQgQEAKIFRoaXMgaXMgdGhlIFdlYktpdCB2ZXJzaW9uIG9mIENTUyAyLjEgVGVzdCBTdWl0
ZTogZHluYW1pYyBjaGFuZ2VzIHRvICdjb3VudGVyLWluY3JlbWVudCcuCiAKIEJlZm9yZSB0aGUg
ZHluYW1pYyBjaGFuZ2U6Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCdvbmUnKSBpcyAnMScKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVlJykgaXMgJzInCi1QQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdmb3VyJykgaXMgJzMnCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIGlzICcx
JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJl
ZScpIGlzICcyJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCdmb3VyJykgaXMgJzMnCiBBZnRlciB0aGUgZHluYW1pYyBjaGFuZ2U6Ci1QQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSBpcyAnMScK
LVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3
bycpIGlzICcyJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGhyZWUnKSBpcyAnMycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ2ZvdXInKSBpcyAnNCcKK1BBU1Mgd2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnb25lJykgaXMgJzEnCitQQVNTIHdpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3bycpIGlzICcyJworUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJlZScpIGlzICcz
JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdmb3Vy
JykgaXMgJzQnCiAKIFRFU1QgQ09NUExFVEUKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAwLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAwLmh0bWwJKHJldmlz
aW9uIDExNjMwNCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5j
cmVtZW50LTAwMC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOCwxOCArMTgsMTggQEAKICAgZnVu
Y3Rpb24gY2hlY2tDb3VudGVyVmFsdWVzQmVmb3JlQ2hhbmdlKCkKICAgewogICAgICAgZGVidWco
J0JlZm9yZSB0aGUgZHluYW1pYyBjaGFuZ2U6Jyk7Ci0gICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIiwgIicxJyIpOwot
ICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0aHJlZScpIiwgIicyJyIpOwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdmb3VyJykiLCAiJzMnIik7CisgICAg
ICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
b25lJykiLCAiJzEnIik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSIsICInMiciKTsKKyAgICAgIHNob3VsZEJlKCJ3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdmb3VyJykiLCAiJzMn
Iik7CiAgIH0KIAogICBmdW5jdGlvbiBjaGVja0NvdW50ZXJWYWx1ZXNBZnRlckNoYW5nZSgpCiAg
IHsKICAgICAgIGRlYnVnKCdBZnRlciB0aGUgZHluYW1pYyBjaGFuZ2U6Jyk7Ci0gICAgICBzaG91
bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29u
ZScpIiwgIicxJyIpOwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d28nKSIsICInMiciKTsKLSAgICAgIHNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSIs
ICInMyciKTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgnZm91cicpIiwgIic0JyIpOworICAgICAgc2hvdWxkQmUoIndpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIiwgIicxJyIpOwor
ICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3R3bycpIiwgIicyJyIpOworICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVlJykiLCAiJzMnIik7CisgICAgICBzaG91bGRC
ZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZm91cicpIiwg
Iic0JyIpOwogCiAgICAgICBkZWJ1ZygnJyk7CiAgICAgICBkZWJ1ZygnVEVTVCBDT01QTEVURScp
OwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQt
MDAxLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3Vu
dGVycy9jb3VudGVyLWluY3JlbWVudC0wMDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTYzMDQp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDEt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICsxLDEzIEBACiBUaGlzIGlzIHRo
ZSBXZWJLaXQgdmVyc2lvbiBvZiBDU1MgMi4xIFRlc3QgU3VpdGU6IGR5bmFtaWMgY2hhbmdlcyB0
byAnY291bnRlci1pbmNyZW1lbnQnLgogCiBCZWZvcmUgdGhlIGR5bmFtaWMgY2hhbmdlOgotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnb25lJykg
aXMgJzEnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0d28nKSBpcyAnMycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3RocmVlJykgaXMgJzQnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIGlzICcxJworUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d28nKSBpcyAnMycKK1BBU1Mgd2luZG93
LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSBpcyAnNCcKIEFm
dGVyIHRoZSBkeW5hbWljIGNoYW5nZToKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIGlzICcxJwotUEFTUyBsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdvJykgaXMgJzInCi1QQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJlZScpIGlzICcz
JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUn
KSBpcyAnMScKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndHdvJykgaXMgJzInCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3RocmVlJykgaXMgJzMnCiAKIFRFU1QgQ09NUExFVEUKIApJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAxLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQt
MDAxLmh0bWwJKHJldmlzaW9uIDExNjMwNCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50
ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOCwxNyAr
MTgsMTcgQEAKICAgZnVuY3Rpb24gY2hlY2tDb3VudGVyVmFsdWVzQmVmb3JlQ2hhbmdlKCkKICAg
ewogICAgICAgZGVidWcoJ0JlZm9yZSB0aGUgZHluYW1pYyBjaGFuZ2U6Jyk7Ci0gICAgICBzaG91
bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29u
ZScpIiwgIicxJyIpOwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d28nKSIsICInMyciKTsKLSAgICAgIHNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSIs
ICInNCciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCdvbmUnKSIsICInMSciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d28nKSIsICInMyciKTsKKyAgICAg
IHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
aHJlZScpIiwgIic0JyIpOwogICB9CiAKICAgZnVuY3Rpb24gY2hlY2tDb3VudGVyVmFsdWVzQWZ0
ZXJDaGFuZ2UoKQogICB7CiAgICAgICBkZWJ1ZygnQWZ0ZXIgdGhlIGR5bmFtaWMgY2hhbmdlOicp
OwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCdvbmUnKSIsICInMSciKTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdvJykiLCAiJzInIik7Ci0gICAg
ICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3RocmVlJykiLCAiJzMnIik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnb25lJykiLCAiJzEnIik7CisgICAgICBzaG91bGRC
ZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdvJykiLCAi
JzInIik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgndGhyZWUnKSIsICInMyciKTsKIAogICAgICAgZGVidWcoJycpOwogICAgICAg
ZGVidWcoJ1RFU1QgQ09NUExFVEUnKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50
ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMi5odG1sCShyZXZpc2lvbiAx
MTYzMDQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVu
dC0wMDIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogICAgICAgICAgICAg
ICAgIGZvciAoaSA9IDA7IGkgPCBzcGFuTGlzdC5sZW5ndGg7ICsraSApIHsKICAgICAgICAgICAg
ICAgICAgICAgbmV3U3BhbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7
CiAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCA9Ci0gICAgICAg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJpZCIpKTsKKyAgICAgICAgICAgICAg
ICAgICAgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChzcGFuTGlz
dC5pdGVtKGkpLmdldEF0dHJpYnV0ZSgiaWQiKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChu
ZXdTcGFuRWxlbWVudC5pbm5lclRleHQubGVuZ3RoKQogICAgICAgICAgICAgICAgICAgICAgICAg
bmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ID0gbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ICsgIi0i
OwogICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKG5ld1NwYW5FbGVtZW50
KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50
LWluaGVyaXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LWluaGVyaXQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxMTYzMDQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3Jl
bWVudC1pbmhlcml0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAK
LVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3dy
YXBwZXI5MCcpIGlzICc1JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndGVzdDkwJykgaXMgJzEwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDkwYScpIGlzICcxNScKLVBBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3dyYXBwZXI5MScp
IGlzICcxMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3Rlc3Q5MScpIGlzICcyMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5MWEnKSBpcyAnMzAnCitQQVNTIHdpbmRvdy5pbnRl
cm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3dyYXBwZXI5MCcpIGlzICc1JworUEFT
UyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OTAnKSBp
cyAnMTAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3Rlc3Q5MGEnKSBpcyAnMTUnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3dyYXBwZXI5MScpIGlzICcxMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDkxJykgaXMgJzIwJworUEFTUyB3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OTFhJykgaXMgJzMwJwog
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC1p
bmhlcml0Lmh0bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9j
b3VudGVyLWluY3JlbWVudC1pbmhlcml0Lmh0bQkocmV2aXNpb24gMTE2MzA0KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtaW5oZXJpdC5odG0JKHdv
cmtpbmcgY29weSkKQEAgLTEzLDEyICsxMywxMiBAQAogICAgICAgICAgICAgZnVuY3Rpb24gcnVu
KCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAvLyBTb21lIGV4dHJhIFdlYktpdCB0
ZXN0aW5nIGZvciBjb3VudGVyLWluY3JlbWVudCBpbmhlcml0Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd3
cmFwcGVyOTAnKSIsICInNSciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5MCcpIiwgIicxMCci
KTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5MGEnKSIsICInMTUnIik7Ci0gICAgICAgICAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd3cmFwcGVyOTEnKSIsICInMTAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OTEnKSIs
ICInMjAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OTFhJykiLCAiJzMwJyIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd3cmFwcGVyOTAnKSIsICInNSciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDkwJykiLCAi
JzEwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OTBhJykiLCAiJzE1JyIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd3cmFwcGVyOTEnKSIsICInMTAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5MScpIiwgIicyMCci
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDkxYScpIiwgIiczMCciKTsKICAgICAgICAgICAgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgICAgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC1vdmVyZmxvdy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5j
cmVtZW50LW92ZXJmbG93Lmh0bWwJKHJldmlzaW9uIDExNjMwNCkKKysrIExheW91dFRlc3RzL2Zh
c3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LW92ZXJmbG93Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTE4LDcgKzE4LDcgQEAKICAgICAgICAgZnVuY3Rpb24gZG9UZXN0KCkKICAgICAg
ICAgewogICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY291bnRlZCcpLmlubmVyVGV4dCA9
IGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdjb3VudGVk
Jyk7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvdW50ZWQnKS5p
bm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdj
b3VudGVkJyk7CiAgICAgICAgIH0KIAogICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bG9hZCcsIGRvVGVzdCwgZmFsc2UpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRl
cnMvY291bnRlci1pbmNyZW1lbnQtdGVzdHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LXRlc3RzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTE2MzA0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRl
cnMvY291bnRlci1pbmNyZW1lbnQtdGVzdHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDU4ICsxLDU4IEBACi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCd0ZXN0MycpIGlzICctMjE0NzQ4MzY0OCcKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0JykgaXMgJy0yMTQ3NDgz
NjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndGVzdDUnKSBpcyAnMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3Q2JykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NycpIGlzICcwJwotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDgnKSBpcyAnMTAn
Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0OScpIGlzICcxMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3Rlc3QxMCcpIGlzICcyMTQ3NDgzNjQ2JwotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDExJykgaXMgJzIxNDc0ODM2
NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0MTInKSBpcyAnMjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxMycpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDE0Jykg
aXMgJzInCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0ZXN0MTUnKSBpcyAnLTIxNDc0ODM2NDgnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTYnKSBpcyAnLTIxNDc0ODM2NDgnCi1Q
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0
MTcnKSBpcyAnLTIxNDc0ODM2NDgnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTgnKSBpcyAnMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxOScpIGlzICcwJwotUEFTUyBs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDIwJykg
aXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0ZXN0MjEnKSBpcyAnMjAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjInKSBpcyAnMjAnCi1QQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjMnKSBpcyAnMjE0NzQ4MzY0
NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3Rlc3QyNCcpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI1JykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjYnKSBp
cyAnMjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3Rlc3QyNycpIGlzICczJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI4JykgaXMgJy0yMTQ3NDgzNjQ4JwotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI5
JykgaXMgJy0yMTQ3NDgzNjQ4JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDMwJykgaXMgJy0yMTQ3NDgzNjQ4JwotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDMxJykgaXMgJzAn
Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0MzInKSBpcyAnMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3Rlc3QzMycpIGlzICcwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM0JykgaXMgJzMwJwotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM1JykgaXMgJzMw
JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dGVzdDM2JykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzcnKSBpcyAnMjE0NzQ4MzY0NycKLVBBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzOCcpIGlz
ICcyMTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgndGVzdDM5JykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDAnKSBpcyAnMzInCi1QQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDEn
KSBpcyAnLTIxNDc0ODM2NDgnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDInKSBpcyAnLTIxNDc0ODM2NDgnCi1QQVNTIGxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDMnKSBpcyAnLTIx
NDc0ODM2NDgnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0ZXN0NDQnKSBpcyAnMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0NScpIGlzICcwJwotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ2JykgaXMgJzAnCi1QQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDcn
KSBpcyAnMzIwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDQ4JykgaXMgJzMyMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0OScpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDUwJykg
aXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCd0ZXN0NTEnKSBpcyAnMjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1MicpIGlzICcyMTQ3NDgz
NjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndGVzdDUzJykgaXMgJzUnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCdub25lNTMnKSBpcyAnNScKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1M2EnKSBpcyAnMTAnCi1QQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd3cmFwcGVyNTQn
KSBpcyAnNScKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3Rlc3Q1NCcpIGlzICcxMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1NScpIGlzICcxJwotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDU2JykgaXMgJy0yMTQ3NDgz
NjQ4JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0MycpIGlzICctMjE0NzQ4MzY0OCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDQnKSBpcyAnLTIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1JykgaXMgJzAnCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q2JykgaXMg
JzAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rl
c3Q3JykgaXMgJzAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3Rlc3Q4JykgaXMgJzEwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OScpIGlzICcxMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDEwJykgaXMgJzIxNDc0ODM2NDYnCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxMScpIGlz
ICcyMTQ3NDgzNjQ3JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0ZXN0MTInKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDEzJykgaXMgJzIxNDc0ODM2NDcnCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxNCcpIGlz
ICcyJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0MTUnKSBpcyAnLTIxNDc0ODM2NDgnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxNicpIGlzICctMjE0NzQ4MzY0OCcKK1BBU1Mgd2luZG93
LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDE3JykgaXMgJy0yMTQ3
NDgzNjQ4JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0MTgnKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgndGVzdDE5JykgaXMgJzAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyMCcpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjEnKSBpcyAnMjAnCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyMicpIGlzICcy
MCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDIzJykgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3QyNCcpIGlzICcyMTQ3NDgzNjQ3JworUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjUnKSBpcyAnMjE0NzQ4MzY0
NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDI2JykgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3QyNycpIGlzICczJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjgnKSBpcyAnLTIxNDc0ODM2NDgnCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyOScpIGlz
ICctMjE0NzQ4MzY0OCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDMwJykgaXMgJy0yMTQ3NDgzNjQ4JworUEFTUyB3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzEnKSBpcyAnMCcKK1BBU1Mgd2luZG93
LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDMyJykgaXMgJzAnCitQ
QVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzMycp
IGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0MzQnKSBpcyAnMzAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3Rlc3QzNScpIGlzICczMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM2JykgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzNycpIGlzICcy
MTQ3NDgzNjQ3JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0ZXN0MzgnKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM5JykgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MCcpIGlzICcz
MicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDQxJykgaXMgJy0yMTQ3NDgzNjQ4JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDInKSBpcyAnLTIxNDc0ODM2NDgnCitQQVNTIHdpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MycpIGlzICctMjE0NzQ4
MzY0OCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dGVzdDQ0JykgaXMgJzAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3Rlc3Q0NScpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDYnKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ3JykgaXMgJzMyMCcKK1BBU1Mgd2lu
ZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ4JykgaXMgJzMy
MCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDQ5JykgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1MCcpIGlzICcyMTQ3NDgzNjQ3JworUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTEnKSBpcyAnMjE0NzQ4MzY0
NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDUyJykgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1MycpIGlzICc1JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdub25lNTMnKSBpcyAnNScKK1BBU1Mgd2luZG93Lmlu
dGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDUzYScpIGlzICcxMCcKK1BB
U1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnd3JhcHBlcjU0
JykgaXMgJzUnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3Rlc3Q1NCcpIGlzICcxMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndGVzdDU1JykgaXMgJzEnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1NicpIGlzICctMjE0NzQ4MzY0OCcKIApJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtdGVzdHMu
aHRtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXIt
aW5jcmVtZW50LXRlc3RzLmh0bQkocmV2aXNpb24gMTE2MzA0KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtdGVzdHMuaHRtCSh3b3JraW5nIGNvcHkp
CkBAIC0xNSw2MyArMTUsNjMgQEAKICAgICAgICAgICAgICAgICAvKiBUaGVzZSBhcmUgdGV4dCB2
ZXJzaW9ucyBvZiB0aGUgY291bnRlci1pbmNyZW1lbnQtKiB0ZXN0cyBpbiB0aGUgQ1NTIDIuMSB0
ZXN0IHN1aXRlLgogICAgICAgICAgICAgICAgICAgIFNvICd0ZXN0MycgaGVyZSBpcyBlcXVpdmFs
ZW50IHRvIGNvdW50ZXItaW5jcmVtZW50LTAwMy5odG0sIGFuZCBzbyBvbi4gCiAgICAgICAgICAg
ICAgICAgICAgV2ViS2l0IGR1bXBBc1RleHQgdmVyc2lvbnMgb2YgY291bnRlci1pbmNyZW1lbnQt
MDAxIGFuZCAwMDIgYWxyZWFkeSBleGlzdCBpbiBmYXN0L2Nzcy9jb3VudGVycyAqLwotICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgndGVzdDMnKSIsICInLTIxNDc0ODM2NDgnIik7Ci0gICAgICAgICAgICAgICAg
c2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0NCcpIiwgIictMjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgi
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1Jyki
LCAiJzAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NicpIiwgIicwJyIpOwotICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDcnKSIsICInMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q4JykiLCAi
JzEwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDknKSIsICInMTAnIik7Ci0gICAgICAgICAg
ICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0ZXN0MTAnKSIsICInMjE0NzQ4MzY0NiciKTsKLSAgICAgICAgICAgICAgICBzaG91
bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rl
c3QxMScpIiwgIicyMTQ3NDgzNjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlv
dXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDEyJykiLCAi
JzIxNDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTMnKSIsICInMjE0NzQ4MzY0
NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxNCcpIiwgIicyJyIpOwotICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgndGVzdDE1JykiLCAiJy0yMTQ3NDgzNjQ4JyIpOwotICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDE2JykiLCAiJy0yMTQ3NDgzNjQ4JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlv
dXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDE3JykiLCAi
Jy0yMTQ3NDgzNjQ4JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDE4JykiLCAiJzAnIik7Ci0g
ICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTknKSIsICInMCciKTsKLSAgICAgICAgICAgICAgICBzaG91
bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rl
c3QyMCcpIiwgIicwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDIxJykiLCAiJzIwJyIpOwot
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDIyJykiLCAiJzIwJyIpOwotICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dGVzdDIzJykiLCAiJzIxNDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjQnKSIs
ICInMjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyNScpIiwgIicyMTQ3NDgz
NjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI2JykiLCAiJzIxNDc0ODM2NDcnIik7Ci0g
ICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjcnKSIsICInMyciKTsKLSAgICAgICAgICAgICAgICBzaG91
bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rl
c3QyOCcpIiwgIictMjE0NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyOScpIiwg
IictMjE0NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzMCcpIiwgIictMjE0NzQ4
MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzMScpIiwgIicwJyIpOwotICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDMyJykiLCAiJzAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzMnKSIs
ICInMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzNCcpIiwgIiczMCciKTsKLSAgICAgICAg
ICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3Rlc3QzNScpIiwgIiczMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgi
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzNicp
IiwgIicyMTQ3NDgzNjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM3JykiLCAiJzIxNDc0
ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzgnKSIsICInMjE0NzQ4MzY0NyciKTsK
LSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzOScpIiwgIicyMTQ3NDgzNjQ3JyIpOwotICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDQwJykiLCAiJzMyJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQxJyki
LCAiJy0yMTQ3NDgzNjQ4JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQyJykiLCAiJy0yMTQ3
NDgzNjQ4JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQzJykiLCAiJy0yMTQ3NDgzNjQ4JyIp
OwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ0JykiLCAiJzAnIik7Ci0gICAgICAgICAgICAgICAg
c2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0NDUnKSIsICInMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0NicpIiwgIicwJyIp
OwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ3JykiLCAiJzMyMCciKTsKLSAgICAgICAgICAgICAg
ICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3Rlc3Q0OCcpIiwgIiczMjAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDknKSIsICIn
MjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1MCcpIiwgIicyMTQ3NDgzNjQ3
JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDUxJykiLCAiJzIxNDc0ODM2NDcnIik7Ci0gICAg
ICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCd0ZXN0NTInKSIsICInMjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAgICAg
ICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3Rlc3Q1MycpIiwgIic1JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnbm9uZTUzJykiLCAiJzUn
Iik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTNhJykiLCAiJzEwJyIpOwotICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgnd3JhcHBlcjU0JykiLCAiJzUnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTQnKSIs
ICInMTAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTUnKSIsICInMSciKTsKLSAgICAgICAg
ICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3Rlc3Q1NicpIiwgIictMjE0NzQ4MzY0OCciKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDMnKSIsICInLTIxNDc0ODM2NDgnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0JykiLCAiJy0yMTQ3
NDgzNjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NScpIiwgIicwJyIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0NicpIiwgIicwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NycpIiwgIicwJyIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCd0ZXN0OCcpIiwgIicxMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDknKSIsICIn
MTAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxMCcpIiwgIicyMTQ3NDgzNjQ2JyIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0ZXN0MTEnKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDEy
JykiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxMycpIiwgIicyMTQ3NDgz
NjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTQnKSIsICInMiciKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dGVzdDE1JykiLCAiJy0yMTQ3NDgzNjQ4JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTYnKSIsICIn
LTIxNDc0ODM2NDgnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxNycpIiwgIictMjE0NzQ4MzY0OCci
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDE4JykiLCAiJzAnIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Qx
OScpIiwgIicwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjAnKSIsICInMCciKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgndGVzdDIxJykiLCAiJzIwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5k
b3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjInKSIsICInMjAn
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyMycpIiwgIicyMTQ3NDgzNjQ3JyIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0ZXN0MjQnKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI1Jyki
LCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRl
cm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyNicpIiwgIicyMTQ3NDgzNjQ3
JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjcnKSIsICInMyciKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDI4JykiLCAiJy0yMTQ3NDgzNjQ4JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5k
b3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjknKSIsICInLTIx
NDc0ODM2NDgnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzMCcpIiwgIictMjE0NzQ4MzY0OCciKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndGVzdDMxJykiLCAiJzAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzMicp
IiwgIicwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzMnKSIsICInMCciKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndGVzdDM0JykiLCAiJzMwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzUnKSIsICInMzAnIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3QzNicpIiwgIicyMTQ3NDgzNjQ3JyIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0MzcnKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM4JykiLCAi
JzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzOScpIiwgIicyMTQ3NDgzNjQ3JyIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDAnKSIsICInMzInIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0
MScpIiwgIictMjE0NzQ4MzY0OCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93
LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQyJykiLCAiJy0yMTQ3
NDgzNjQ4JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDMnKSIsICInLTIxNDc0ODM2NDgnIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3Rlc3Q0NCcpIiwgIicwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDUnKSIs
ICInMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ2JykiLCAiJzAnIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3Rlc3Q0NycpIiwgIiczMjAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0OCcpIiwgIiczMjAnIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0OScpIiwgIicyMTQ3NDgzNjQ3JyIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0NTAnKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDUxJykiLCAi
JzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1MicpIiwgIicyMTQ3NDgzNjQ3JyIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTMnKSIsICInNSciKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnbm9uZTUz
JykiLCAiJzUnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1M2EnKSIsICInMTAnIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3dyYXBwZXI1NCcpIiwgIic1JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTQnKSIsICIn
MTAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1NScpIiwgIicxJyIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0NTYnKSIsICInLTIxNDc0ODM2NDgnIik7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOwogICAgICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY291bnRlcnMvY291bnRlci1yZXNldC0wMDAuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLXJlc2V0LTAwMC5odG1sCShyZXZpc2lv
biAxMTYzMDQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLXJlc2V0
LTAwMC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAgICAgICAgICAgICAg
ICAgZm9yIChpID0gMDsgaSA8IHNwYW5MaXN0Lmxlbmd0aDsgKytpICkgewogICAgICAgICAgICAg
ICAgICAgICBuZXdTcGFuRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsK
ICAgICAgICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ID0KLSAgICAgICAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRyaWJ1dGUoImlkIikpOworICAgICAgICAgICAgICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKHNwYW5MaXN0
Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJpZCIpKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKG5l
d1NwYW5FbGVtZW50LmlubmVyVGV4dC5sZW5ndGgpCiAgICAgICAgICAgICAgICAgICAgICAgICBu
ZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgKyAiLSIK
ICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChuZXdTcGFuRWxlbWVudCk7
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLXJlc2V0LTAwMS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXIt
cmVzZXQtMDAxLmh0bWwJKHJldmlzaW9uIDExNjMwNCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAxLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcg
KzIyLDcgQEAKICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgLy8gVGhp
cyBjYWxsIGVuc3VyZXMgdGhlIGxheW91dCBoYXBwZW5lZCBiZWZvcmUgd2UgbW9kaWZ5IHRoZSBE
T00gdHJlZS4KLSAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgic3BhbjEiKTsKKyAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCJzcGFuMSIpOwogICAgICAgfQogCiAgICAgICB2YXIgdCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CkBAIC0zNCw3ICszNCw3IEBACiAgICAgICAg
ICAgc3Bhbkxpc3QgPSB0ZXN0RWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3BhbiIpOwog
ICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzcGFuTGlzdC5sZW5ndGg7ICsraSApIHsKICAgICAg
ICAgICAgICAgbmV3U3BhbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7
Ci0gICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCA9IGxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0
cmlidXRlKCJpZCIpKTsKKyAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ID0g
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChzcGFuTGlzdC5pdGVt
KGkpLmdldEF0dHJpYnV0ZSgiaWQiKSk7CiAgICAgICAgICAgICAgIGlmIChuZXdTcGFuRWxlbWVu
dC5pbm5lclRleHQubGVuZ3RoKQogICAgICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQuaW5u
ZXJUZXh0ID0gbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ICsgIi0iOwogICAgICAgICAgICAgICBj
b25zb2xlLmFwcGVuZENoaWxkKG5ld1NwYW5FbGVtZW50KTsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAyLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1yZXNldC0wMDIuaHRtbAkocmV2aXNp
b24gMTE2MzA0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1yZXNl
dC0wMDIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogICAgICAgICAgICAg
ICAgIGZvciAoaSA9IDA7IGkgPCBzcGFuTGlzdC5sZW5ndGg7ICsraSApIHsKICAgICAgICAgICAg
ICAgICAgICAgbmV3U3BhbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7
CiAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCA9Ci0gICAgICAg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJpZCIpKTsKKyAgICAgICAgICAgICAg
ICAgICAgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChzcGFuTGlz
dC5pdGVtKGkpLmdldEF0dHJpYnV0ZSgiaWQiKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChu
ZXdTcGFuRWxlbWVudC5pbm5lclRleHQubGVuZ3RoKQogICAgICAgICAgICAgICAgICAgICAgICAg
bmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ID0gbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ICsgIi0i
OwogICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKG5ld1NwYW5FbGVtZW50
KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jb3VudGVycy9jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDExNjMwNCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMSArMSwx
MSBAQAotVGhpcyBpcyB0aGUgdGVzdCBmb3IgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQKK1RoaXMgaXMgdGhlIHRlc3QgZm9yIHdpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQKICAgIAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYmVmb3JlJykgaXMgJzAnCi1QQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhZnRlcicpIGlzICcw
JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
YmVmb3JlX2FmdGVyJykgaXMgJzAgMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3aWNlJykgaXMgJzAgMCcKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3BvaW50JykgaXMgJzAuMScKLVBB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3by1w
b2ludHMnKSBpcyAnMC4xLjInCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCdncmVlaycpIGlzICcwLs6xLs6yJwotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUtZ3JlZWtzJykgaXMgJzAu
zrEuzrIgMC7OsS7OsiAwLs6xLs6yJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCdiZWZvcmUnKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYWZ0ZXInKSBpcyAnMCcKK1BBU1Mgd2luZG93Lmlu
dGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYmVmb3JlX2FmdGVyJykgaXMgJzAg
MCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdp
Y2UnKSBpcyAnMCAwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCdwb2ludCcpIGlzICcwLjEnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3R3by1wb2ludHMnKSBpcyAnMC4xLjInCitQQVNTIHdpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2dyZWVrJykgaXMgJzAuzrEuzrIn
CitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVl
LWdyZWVrcycpIGlzICcwLs6xLs6yIDAuzrEuzrIgMC7OsS7OsicKIApJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZC5odG1sCShyZXZpc2lvbiAxMTYzMDQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jb3VudGVycy9jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xNCw3ICsxNCw3IEBACiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLSAgICA8ZGl2PlRoaXMg
aXMgdGhlIHRlc3QgZm9yIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkPC9kaXY+CisgICAgPGRpdj5UaGlzIGlzIHRoZSB0ZXN0IGZvciB3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkPC9kaXY+CiAKICAgICA8ZGl2IGNsYXNzPSJy
ZXNldCI+PHNwYW4gaWQ9ImJlZm9yZSIgY2xhc3M9InNob3ctYmVmb3JlIj48L3NwYW4+PC9kaXY+
CiAgICAgPGRpdiBjbGFzcz0icmVzZXQiPjxzcGFuIGlkPSJhZnRlciIgY2xhc3M9InNob3ctYWZ0
ZXIiPjwvc3Bhbj48L2Rpdj4KQEAgLTM1LDE0ICszNSwxNCBAQAogICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CiAKLSAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYmVmb3JlJykiLCAiJzAnIik7Ci0gICAg
ICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ2FmdGVyJykiLCAiJzAnIik7Ci0gICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2JlZm9yZV9hZnRlcicp
IiwgIicwIDAnIik7Ci0gICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3aWNlJykiLCAiJzAgMCciKTsKLSAgICAgICAg
ICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgncG9pbnQnKSIsICInMC4xJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d28tcG9pbnRzJykiLCAi
JzAuMS4yJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdncmVlaycpIiwgIicwLlx1MDNiMS5cdTAzYjInIik7
Ci0gICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3RocmVlLWdyZWVrcycpIiwgIicwLlx1MDNiMS5cdTAzYjIgMC5cdTAz
YjEuXHUwM2IyIDAuXHUwM2IxLlx1MDNiMiciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5k
b3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdiZWZvcmUnKSIsICInMCci
KTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCdhZnRlcicpIiwgIicwJyIpOworICAgICAgICAgICAgc2hvdWxkQmUoIndp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2JlZm9yZV9hZnRlcicp
IiwgIicwIDAnIik7CisgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdpY2UnKSIsICInMCAwJyIpOworICAgICAgICAgICAg
c2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Bv
aW50JykiLCAiJzAuMSciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d28tcG9pbnRzJykiLCAiJzAuMS4yJyIpOwor
ICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ2dyZWVrJykiLCAiJzAuXHUwM2IxLlx1MDNiMiciKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJl
ZS1ncmVla3MnKSIsICInMC5cdTAzYjEuXHUwM2IyIDAuXHUwM2IxLlx1MDNiMiAwLlx1MDNiMS5c
dTAzYjInIik7CiAgICAgICAgIH0KICAgICA8L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2RlZXAtYmVmb3JlLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9kZWVwLWJlZm9yZS1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDExNjMwNCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJz
L2RlZXAtYmVmb3JlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAK
LVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2Rp
djEnKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgnZGl2MScpIGlzICcwJwogCiBURVNUIENPTVBMRVRFCiAKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY3NzL2NvdW50ZXJzL2RlZXAtYmVmb3JlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvZGVlcC1iZWZvcmUuaHRtbAkocmV2aXNpb24gMTE2MzA0
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvZGVlcC1iZWZvcmUuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogICB7CiAgICAgICBpZiAoIXdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgICByZXR1cm47Ci0gICAgICBzaG91bGRCZSgibGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2RpdjEnKSIsICIn
MCciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCdkaXYxJykiLCAiJzAnIik7CiAKICAgICAgIGRlYnVnKCcnKTsKICAgICAgIGRl
YnVnKCdURVNUIENPTVBMRVRFJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVy
cy9pbnZhbGlkYXRlLWNhY2hlZC1jb3VudGVyLW5vZGUuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9pbnZhbGlkYXRlLWNhY2hlZC1jb3VudGVyLW5vZGUu
aHRtbAkocmV2aXNpb24gMTE2MzA0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMv
aW52YWxpZGF0ZS1jYWNoZWQtY291bnRlci1ub2RlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIy
LDcgKzIyLDcgQEAKICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewog
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAg
ICAgdmFyIHRlc3RSZXN1bHQ7Ci0gICAgICAgICAgICB2YXIgY291bnRlclZhbHVlID0gbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoImtlZXAtbWUiKTsKKyAg
ICAgICAgICAgIHZhciBjb3VudGVyVmFsdWUgPSB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCJrZWVwLW1lIik7CiAgICAgICAgICAgICBpZiAoY291bnRlclZhbHVl
ID09ICIxIikKICAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gIlBBU1MiOwogICAgICAgICAg
ICAgZWxzZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvbmVzdGluZy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL25lc3RpbmcuaHRt
bAkocmV2aXNpb24gMTE2MzA0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvbmVz
dGluZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAgICAgICAgICAgICAg
ICAgZm9yIChpID0gMDsgaSA8IHNwYW5MaXN0Lmxlbmd0aDsgKytpICkgewogICAgICAgICAgICAg
ICAgICAgICBuZXdTcGFuRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsK
ICAgICAgICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ID0KLSAgICAgICAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRyaWJ1dGUoImlkIikpOworICAgICAgICAgICAgICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKHNwYW5MaXN0
Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJpZCIpKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKG5l
d1NwYW5FbGVtZW50LmlubmVyVGV4dC5sZW5ndGgpCiAgICAgICAgICAgICAgICAgICAgICAgICBu
ZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgKyAiLSAi
OwogICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKG5ld1NwYW5FbGVtZW50
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146548</attachid>
            <date>2012-06-08 06:11:27 -0700</date>
            <delta_ts>2012-06-11 00:59:34 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-84406-20120608184052.patch</filename>
            <type>text/plain</type>
            <size>83665</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDExOTgy
MykKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA2
LTA4ICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAg
ICAgIFtEUlRdIExUQzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkgY291bGQgYmUgbW92
ZWQgdG8gSW50ZXJuYWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODQ0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBFeHBvcnRpbmcgSW50ZXJuYWxzOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50IHN5bWJv
bHMgZm9yIHRoZSBHdGsgYnVpbGQuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJv
bHMuZmlsdGVyOgorCiAyMDEyLTA2LTA3ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZWR1Y2UgTm9kZSBvYmplY3Qgc2l6ZSBmcm9tIDcyIGJ5dGUgdG8g
NjQgYnl0ZQpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE5ODIzKQorKysgU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDYtMDgg
IEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAg
W0RSVF0gTFRDOjogY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoKSBjb3VsZCBiZSBtb3ZlZCB0
byBJbnRlcm5hbHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NDQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1vdmUgdGhlIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIGZyb20gTGF5b3V0VGVzdENv
dHJvbGxlciB0byBJbnRlcm5hbHMgYW5kCisgICAgICAgIHJlbW92ZSB0aGUgb2xkIHBsYXRmb3Jt
IHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBhcyBpdCBleGNsdXNpdmVseSB0ZXN0cyBXZWJDb3Jl
IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0IGNhc2Vz
LgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjpjb3VudGVyVmFsdWUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEyLTA2LTA4ICBLaW51a28gWWFzdWRhICA8a2ludWtv
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZW1vdmluZyBkdXBsaWNhdGVk
IGVudHJpZXMgaW4gZ3lwLgpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAko
cmV2aXNpb24gMTE5ODEyKQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDYzLDYgKzEwNjMsMTQgQEAgdm9pZCBJbnRlcm5hbHM6OmFs
bG93Um91bmRpbmdIYWNrcygpIGNvbgogICAgIFRleHRSdW46OnNldEFsbG93c1JvdW5kaW5nSGFj
a3ModHJ1ZSk7CiB9CiAKK1N0cmluZyBJbnRlcm5hbHM6OmNvdW50ZXJWYWx1ZShFbGVtZW50KiBl
bGVtZW50KQoreworICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwor
CisgICAgcmV0dXJuIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCiB2b2lkIEludGVybmFsczo6d2Via2l0V2lsbEVudGVyRnVs
bFNjcmVlbkZvckVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBFbGVtZW50KiBlbGVtZW50KQog
ewpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCShyZXZpc2lvbiAxMTk4MTIpCisr
KyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
NzYsNiArMTc2LDggQEAgcHVibGljOgogICAgIFZlY3RvcjxTdHJpbmc+IGNvbnNvbGVNZXNzYWdl
QXJndW1lbnRDb3VudHMoRG9jdW1lbnQqKSBjb25zdDsKICNlbmRpZgogCisgICAgU3RyaW5nIGNv
dW50ZXJWYWx1ZShFbGVtZW50Kik7CisKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAg
dm9pZCB3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChEb2N1bWVudCosIEVsZW1l
bnQqKTsKICAgICB2b2lkIHdlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1l
bnQqLCBFbGVtZW50Kik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShy
ZXZpc2lvbiAxMTk4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTE1MSw2ICsxNTEsOCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl0gdW5zaWduZWQgbG9uZyBudW1iZXJPZkxpdmVEb2N1
bWVudHMoKTsKICAgICAgICAgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl0gc2VxdWVuY2U8U3RyaW5n
PiBjb25zb2xlTWVzc2FnZUFyZ3VtZW50Q291bnRzKGluIERvY3VtZW50IGRvY3VtZW50KTsKIAor
ICAgICAgICBET01TdHJpbmcgY291bnRlclZhbHVlKGluIEVsZW1lbnQgZWxlbWVudCk7CisKICNp
ZiBkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJiYgRU5BQkxFX0ZVTExTQ1JFRU5fQVBJ
CiAgICAgICAgIHZvaWQgd2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoaW4gRG9j
dW1lbnQgZG9jdW1lbnQsIGluIEVsZW1lbnQgZWxlbWVudCk7CiAgICAgICAgIHZvaWQgd2Via2l0
RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gRWxl
bWVudCBlbGVtZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAx
MTk4MjMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA2LTA4ICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1
c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFtEUlRdIExUQzo6IGNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCkgY291bGQgYmUgbW92ZWQgdG8gSW50ZXJuYWxzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0MDYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRoZSBjb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCBmcm9tIExheW91dFRlc3RDb3Ryb2xsZXIgdG8gSW50ZXJuYWxzIGFuZAor
ICAgICAgICByZW1vdmUgdGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMg
YXMgaXQgZXhjbHVzaXZlbHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlvbmFsaXR5LgorCisgICAgICAg
ICogcHVibGljL1dlYkZyYW1lLmg6CisgICAgICAgIChXZWJGcmFtZSk6CisgICAgICAgICogc3Jj
L1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJG
cmFtZUltcGwuaDoKKyAgICAgICAgKFdlYkZyYW1lSW1wbCk6CisKIDIwMTItMDYtMDggIFRhaWp1
IFRzdWlraSAgPHR6aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBGaWxlU3lzdGVtIGl0
ZW0gdG8gc3RvcmFnZSB0cmVlLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJGcmFtZS5oCShyZXZpc2lvbiAxMTk4MTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MTcsMTAgKzYxNyw2IEBAIHB1Ymxp
YzoKICAgICAvLyB0byBzdXBwb3J0IGxheW91dCB0ZXN0cy4KICAgICB2aXJ0dWFsIFdlYlN0cmlu
ZyByZW5kZXJUcmVlQXNUZXh0KFJlbmRlckFzVGV4dENvbnRyb2xzIHRvU2hvdyA9IFJlbmRlckFz
VGV4dE5vcm1hbCkgY29uc3QgPSAwOwogCi0gICAgLy8gUmV0dXJucyB0aGUgY291bnRlciB2YWx1
ZSBmb3IgdGhlIHNwZWNpZmllZCBlbGVtZW50LiAgVGhpcyBtZXRob2QgaXMKLSAgICAvLyB1c2Vk
IHRvIHN1cHBvcnQgbGF5b3V0IHRlc3RzLgotICAgIHZpcnR1YWwgV2ViU3RyaW5nIGNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKGNvbnN0IFdlYlN0cmluZyYgaWQpIGNvbnN0ID0gMDsKLQogICAg
IC8vIENhbGxzIG1hcmtlclRleHRGb3JMaXN0SXRlbSgpIGRlZmluZWQgaW4gV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5oLgogICAgIHZpcnR1YWwgV2ViU3RyaW5nIG1hcmtlclRl
eHRGb3JMaXN0SXRlbShjb25zdCBXZWJFbGVtZW50JikgY29uc3QgPSAwOwogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHJldmlzaW9uIDExOTgx
MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE5NjEsMTggKzE5NjEsNiBAQCBXZWJTdHJpbmcgV2ViRnJhbWVJbXBsOjpy
ZW5kZXJUcmVlQXNUZXh0CiAgICAgcmV0dXJuIGV4dGVybmFsUmVwcmVzZW50YXRpb24obV9mcmFt
ZSwgYmVoYXZpb3IpOwogfQogCi1XZWJTdHJpbmcgV2ViRnJhbWVJbXBsOjpjb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZChjb25zdCBXZWJTdHJpbmcmIGlkKSBjb25zdAotewotICAgIGlmICghbV9m
cmFtZSkKLSAgICAgICAgcmV0dXJuIFdlYlN0cmluZygpOwotCi0gICAgRWxlbWVudCogZWxlbWVu
dCA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKGlkKTsKLSAgICBpZiAoIWVs
ZW1lbnQpCi0gICAgICAgIHJldHVybiBXZWJTdHJpbmcoKTsKLQotICAgIHJldHVybiBjb3VudGVy
VmFsdWVGb3JFbGVtZW50KGVsZW1lbnQpOwotfQotCiBXZWJTdHJpbmcgV2ViRnJhbWVJbXBsOjpt
YXJrZXJUZXh0Rm9yTGlzdEl0ZW0oY29uc3QgV2ViRWxlbWVudCYgd2ViRWxlbWVudCkgY29uc3QK
IHsKICAgICByZXR1cm4gV2ViQ29yZTo6bWFya2VyVGV4dEZvckxpc3RJdGVtKGNvbnN0X2Nhc3Q8
RWxlbWVudCo+KHdlYkVsZW1lbnQuY29uc3RVbndyYXA8RWxlbWVudD4oKSkpOwpJbmRleDogU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgJKHJldmlzaW9uIDExOTgxMikK
KysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMjIsNyArMjIyLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGNv
bnRlbnRBc1RleHQoc2l6ZV90IG1heENoYXJzKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYlN0cmlu
ZyBjb250ZW50QXNNYXJrdXAoKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyByZW5kZXJU
cmVlQXNUZXh0KFJlbmRlckFzVGV4dENvbnRyb2xzIHRvU2hvdyA9IFJlbmRlckFzVGV4dE5vcm1h
bCkgY29uc3Q7Ci0gICAgdmlydHVhbCBXZWJTdHJpbmcgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoY29uc3QgV2ViU3RyaW5nJiBpZCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgbWFy
a2VyVGV4dEZvckxpc3RJdGVtKGNvbnN0IFdlYkVsZW1lbnQmKSBjb25zdDsKICAgICB2aXJ0dWFs
IGludCBwYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoY29uc3QgV2ViU3RyaW5nJiBpZCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgcGFnZVdpZHRoSW5QaXhl
bHMsCkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTk4MjMpCisrKyBTb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0w
Ni0wOCAgS2F1c3R1YmggQXRyYXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KKworICAg
ICAgICBbRFJUXSBMVEM6OiBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgpIGNvdWxkIGJlIG1v
dmVkIHRvIEludGVybmFscy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg0NDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTW92ZSB0aGUgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQgZnJvbSBMYXlvdXRU
ZXN0Q290cm9sbGVyIHRvIEludGVybmFscyBhbmQKKyAgICAgICAgcmVtb3ZlIHRoZSBvbGQgcGxh
dGZvcm0gc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIGFzIGl0IGV4Y2x1c2l2ZWx5IHRlc3RzIFdl
YkNvcmUgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbC5jcHA6CisKIDIwMTItMDYtMDUgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgdGFyZ2V0LWRlbnNpdHlk
cGkgaW4gdGhlIHZpZXdwb3J0IG1ldGEgdGFnCkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5j
cHAJKHJldmlzaW9uIDExOTgxMikKKysrIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk3LDIxICs5
Nyw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpjbGVhck9wZW4KICAgICAgICAg
ZnJhbWUtPmxvYWRlcigpLT5zZXRPcGVuZXIoMCk7CiB9CiAKLVN0cmluZyBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6OmNvdW50ZXJWYWx1ZUJ5RWxlbWVudElkKGNvbnN0IEV2YXNfT2JqZWN0KiBl
d2tGcmFtZSwgY29uc3QgY2hhciogZWxlbWVudElkKQotewotICAgIFdlYkNvcmU6OkZyYW1lKiBm
cmFtZSA9IEVXS1ByaXZhdGU6OmNvcmVGcmFtZShld2tGcmFtZSk7Ci0KLSAgICBpZiAoIWZyYW1l
KQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0KLSAgICBXZWJDb3JlOjpFbGVtZW50KiBlbGVt
ZW50ID0gZnJhbWUtPmRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7Ci0KLSAg
ICBpZiAoIWVsZW1lbnQpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIHJldHVybiBX
ZWJDb3JlOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50KGVsZW1lbnQpOwotfQotCiBib29sIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6ZWxlbWVudERvZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50V2l0
aElkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgU3RyaW5nJiBlbGVtZW50SWQp
CiB7CiAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKGV3
a0ZyYW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHJldmlzaW9uIDExOTgyMykKKysrIFNvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisy
MDEyLTA2LTA4ICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgor
CisgICAgICAgIFtEUlRdIExUQzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkgY291bGQg
YmUgbW92ZWQgdG8gSW50ZXJuYWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODQ0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNb3ZlIHRoZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCBmcm9tIExh
eW91dFRlc3RDb3Ryb2xsZXIgdG8gSW50ZXJuYWxzIGFuZAorICAgICAgICByZW1vdmUgdGhlIG9s
ZCBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgYXMgaXQgZXhjbHVzaXZlbHkgdGVz
dHMgV2ViQ29yZSBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ayk6CisKIDIwMTItMDYtMDcgIFNpbW9uIFBlbmEgIDxzcGVuYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHVEtdIGRldmljZVNjYWxlRmFjdG9yIHNldHRpbmcgaXMgbm90IGhvbm9yZWQKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAkocmV2aXNpb24gMTE5ODEyKQorKysgU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTg5LDI4ICsxODksNiBAQCBDU3RyaW5nIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0azo6ZHVtcFJlCiB9CiAKIC8qKgotICogY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQ6
Ci0gKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCi0gKiBAaWQ6IGFuIGVsZW1lbnQgSUQgc3Ry
aW5nCi0gKgotICogUmV0dXJuIHZhbHVlOiBUaGUgY291bnRlciB2YWx1ZSBvZiBlbGVtZW50IEBp
ZCBpbiBAZnJhbWUKLSAqLwotQ1N0cmluZyBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgY2hhciog
aWQpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFt
ZSksIENTdHJpbmcoKSk7Ci0KLSAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7Ci0g
ICAgaWYgKCFjb3JlRnJhbWUpCi0gICAgICAgIHJldHVybiBDU3RyaW5nKCk7Ci0KLSAgICBFbGVt
ZW50KiBjb3JlRWxlbWVudCA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQo
QXRvbWljU3RyaW5nKGlkKSk7Ci0gICAgaWYgKCFjb3JlRWxlbWVudCkKLSAgICAgICAgcmV0dXJu
IENTdHJpbmcoKTsKLQotICAgIHJldHVybiBjb3VudGVyVmFsdWVGb3JFbGVtZW50KGNvcmVFbGVt
ZW50KS51dGY4KCk7Ci19Ci0KLS8qKgogICogbnVtYmVyRm9yRWxlbWVudEJ5SWQKICAqIEBmcmFt
ZTogYSAjV2ViS2l0V2ViRnJhbWUKICAqIEBpZDogYW4gZWxlbWVudCBJRCBzdHJpbmcKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oCShyZXZpc2lvbiAxMTk4MTIpCisrKyBTb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAkod29ya2luZyBj
b3B5KQpAQCAtNjEsNyArNjEsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEdTTGlzdCogZ2V0RnJh
bWVDaGlsZHJlbihXZWJLaXRXZWJGcmFtZSopOwogICAgIHN0YXRpYyBXVEY6OkNTdHJpbmcgZ2V0
SW5uZXJUZXh0KFdlYktpdFdlYkZyYW1lKik7CiAgICAgc3RhdGljIFdURjo6Q1N0cmluZyBkdW1w
UmVuZGVyVHJlZShXZWJLaXRXZWJGcmFtZSopOwotICAgIHN0YXRpYyBXVEY6OkNTdHJpbmcgY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoV2ViS2l0V2ViRnJhbWUqLCBjb25zdCBjaGFyKiBpZCk7
CiAgICAgc3RhdGljIGludCBwYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoV2ViS2l0V2ViRnJhbWUq
LCBjb25zdCBjaGFyKiBpZCwgZmxvYXQgcGFnZVdpZHRoLCBmbG9hdCBwYWdlSGVpZ2h0KTsKICAg
ICBzdGF0aWMgaW50IG51bWJlck9mUGFnZXNGb3JGcmFtZShXZWJLaXRXZWJGcmFtZSosIGZsb2F0
IHBhZ2VXaWR0aCwgZmxvYXQgcGFnZUhlaWdodCk7CiAgICAgc3RhdGljIFdURjo6Q1N0cmluZyBw
YWdlUHJvcGVydHkoV2ViS2l0V2ViRnJhbWUqLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIGlu
dCBwYWdlTnVtYmVyKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTk4MjMpCisrKyBT
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDEyLTA2LTA4ICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29t
PgorCisgICAgICAgIFtEUlRdIExUQzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkgY291
bGQgYmUgbW92ZWQgdG8gSW50ZXJuYWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNb3ZlIHRoZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCBmcm9t
IExheW91dFRlc3RDb3Ryb2xsZXIgdG8gSW50ZXJuYWxzIGFuZAorICAgICAgICByZW1vdmUgdGhl
IG9sZCBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgYXMgaXQgZXhjbHVzaXZlbHkg
dGVzdHMgV2ViQ29yZSBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0Lmg6CisKIDIwMTItMDYtMDcgIFpvbHRhbiBIb3J2YXRoICA8
em9sdGFuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBRdCBEUlQgc2hvdWxkIGxvYWQgZXh0
ZXJuYWwgcmVzb3VyY2VzIC0gY2xlYW51cApJbmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAJKHJl
dmlzaW9uIDExOTgxMikKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDUsMTcgKzQwNSw2IEBA
IHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmdhcmJhZ2VDb2wKICNlbmRpZgogfQogCi0v
LyBSZXR1cm5zIHRoZSB2YWx1ZSBvZiBjb3VudGVyIGluIHRoZSBlbGVtZW50IHNwZWNpZmllZCBi
eSBcYSBpZC4KLVFTdHJpbmcgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKFFXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFFTdHJpbmcmIGlkKQotewotICAg
IEZyYW1lKiBjb3JlRnJhbWUgPSBRV2ViRnJhbWVQcml2YXRlOjpjb3JlKGZyYW1lKTsKLSAgICBp
ZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gY29yZUZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAgICAg
IGlmIChFbGVtZW50KiBlbGVtZW50ID0gZG9jdW1lbnQtPmdldEVsZW1lbnRCeUlkKGlkKSkKLSAg
ICAgICAgICAgIHJldHVybiBXZWJDb3JlOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50KGVsZW1lbnQp
OwotICAgIH0KLSAgICByZXR1cm4gUVN0cmluZygpOwotfQotCiBpbnQgRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQ6OnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChRV2ViRnJhbWUqIGZyYW1lLCBjb25z
dCBRU3RyaW5nJiBpZCwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkKIHsKICAgICBGcmFtZSog
Y29yZUZyYW1lID0gUVdlYkZyYW1lUHJpdmF0ZTo6Y29yZShmcmFtZSk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdC5oCShyZXZpc2lvbiAxMTk4MTIpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNSw3
ICsxMzUsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgd2ViSW5zcGVjdG9yQ2xvc2UoUVdl
YlBhZ2UqIHBhZ2UpOwogCiAgICAgc3RhdGljIFFTdHJpbmcgd2ViUGFnZUdyb3VwTmFtZShRV2Vi
UGFnZSAqcGFnZSk7Ci0gICAgc3RhdGljIFFTdHJpbmcgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoUVdlYkZyYW1lKiBmcmFtZSwgY29uc3QgUVN0cmluZyYgaWQpOwogICAgIHN0YXRpYyB2b2lk
IHdlYlBhZ2VTZXRHcm91cE5hbWUoUVdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFFTdHJpbmcmIGdyb3Vw
TmFtZSk7CiAgICAgc3RhdGljIHZvaWQgY2xlYXJGcmFtZU5hbWUoUVdlYkZyYW1lKiBmcmFtZSk7
CiAgICAgc3RhdGljIHZvaWQgb3ZlcndyaXRlUGx1Z2luRGlyZWN0b3JpZXMoKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cJKHJldmlzaW9uIDExOTgyMykKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA2LTA4ICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFtEUlRdIExU
Qzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkgY291bGQgYmUgbW92ZWQgdG8gSW50ZXJu
YWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0
MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3Zl
IHRoZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCBmcm9tIExheW91dFRlc3RDb3Ryb2xsZXIg
dG8gSW50ZXJuYWxzIGFuZAorICAgICAgICByZW1vdmUgdGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZp
YyBpbXBsZW1lbnRhdGlvbnMgYXMgaXQgZXhjbHVzaXZlbHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlv
bmFsaXR5LgorCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViRnJhbWVQcml2YXRlLmlkbDoKKyAg
ICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgICogV2ViRnJhbWUuaDoKKwogMjAxMi0wNS0z
MSAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSRUdS
RVNTSU9OKHIxMTc1NzIpOiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMtcmVtb3Zl
LWZyYW1lLmh0bWwgY3Jhc2hlcyBvbiBNYWMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkZy
YW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAJKHJl
dmlzaW9uIDExOTgxMikKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODg4LDI1ICs4ODgsNiBAQCBIUkVTVUxUIFdlYkZyYW1lOjpyZW5kZXJUcmVl
QXNFeHRlcm5hbFJlCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgV2ViRnJhbWU6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKAotICAgIC8qIFtpbl0g
Ki8gQlNUUiBpZCwgLyogW3JldHZhbF1bb3V0XSAqLyBCU1RSICpyZXN1bHQpCi17Ci0gICAgaWYg
KCFyZXN1bHQpCi0gICAgICAgIHJldHVybiBFX1BPSU5URVI7Ci0KLSAgICBGcmFtZSogY29yZUZy
YW1lID0gY29yZSh0aGlzKTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuIEVf
RkFJTDsKLQotICAgIFN0cmluZyBjb3JlSWQgPSBTdHJpbmcoaWQsIFN5c1N0cmluZ0xlbihpZCkp
OwotCi0gICAgRWxlbWVudCogZWxlbWVudCA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+Z2V0RWxl
bWVudEJ5SWQoY29yZUlkKTsKLSAgICBpZiAoIWVsZW1lbnQpCi0gICAgICAgIHJldHVybiBFX0ZB
SUw7Ci0gICAgKnJlc3VsdCA9IEJTdHJpbmcoY291bnRlclZhbHVlRm9yRWxlbWVudChlbGVtZW50
KSkucmVsZWFzZSgpOwotICAgIHJldHVybiBTX09LOwotfQotCiBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIFdlYkZyYW1lOjpwYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoCiAgICAgLyogW2luXSAq
LyBCU1RSIGlkLAogICAgIC8qIFtpbl0gKi8gZmxvYXQgcGFnZVdpZHRoSW5QaXhlbHMsCkluZGV4
OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvd2luL1dlYkZyYW1lLmgJKHJldmlzaW9uIDExOTgxMikKKysrIFNvdXJjZS9XZWJLaXQvd2lu
L1dlYkZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2MywxMCArMTYzLDYgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB1bnVzZWQxKEJTVFIqKSB7IHJl
dHVybiBFX05PVElNUEw7IH0KICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
cmVuZGVyVHJlZUFzRXh0ZXJuYWxSZXByZXNlbnRhdGlvbihCT09MIGZvclByaW50aW5nLCBCU1RS
ICpyZXN1bHQpOwogCi0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKAotICAgICAgICAvKiBbaW5dICovIEJTVFIgaWQsCi0gICAg
ICAgIC8qIFtyZXR2YWxdW291dF0gKi8gQlNUUiAqcmVzdWx0KTsKLQogICAgIHZpcnR1YWwgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBwYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoCiAgICAgICAg
IC8qIFtpbl0gKi8gQlNUUiBpZCwKICAgICAgICAgLyogW2luXSAqLyBmbG9hdCBwYWdlV2lkdGhJ
blBpeGVscywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYkZyYW1lUHJp
dmF0ZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2Vi
RnJhbWVQcml2YXRlLmlkbAkocmV2aXNpb24gMTE5ODEyKQorKysgU291cmNlL1dlYktpdC93aW4v
SW50ZXJmYWNlcy9JV2ViRnJhbWVQcml2YXRlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtOTYsOCAr
OTYsNiBAQCBpbnRlcmZhY2UgSVdlYkZyYW1lUHJpdmF0ZSA6IElVbmtub3duCiAKICAgICBbbG9j
YWxdIEpTR2xvYmFsQ29udGV4dFJlZiBnbG9iYWxDb250ZXh0Rm9yU2NyaXB0V29ybGQoW2luXSBJ
V2ViU2NyaXB0V29ybGQqKTsKIAotICAgIEhSRVNVTFQgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoW2luXSBCU1RSIGlkLCBbb3V0LCByZXR2YWxdIEJTVFIqIHJlc3VsdCk7Ci0KICAgICBIUkVT
VUxUIHZpc2libGVDb250ZW50UmVjdChbb3V0LCByZXR2YWxdIFJFQ1QqKTsKIAogICAgIEhSRVNV
TFQgcGFnZU51bWJlckZvckVsZW1lbnRCeUlkKFtpbl0gQlNUUiBpZCwgW2luXSBmbG9hdCBwYWdl
V2lkdGhJblBpeGVscywgW2luXSBmbG9hdCBwYWdlSGVpZ2h0SW5QaXhlbHMsIFtvdXQsIHJldHZh
bF0gaW50KiBwYWdlTnVtYmVyKTsKSW5kZXg6IFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0
ZXIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgkocmV2aXNp
b24gMTE5ODEyKQorKysgU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgkod29ya2luZyBj
b3B5KQpAQCAtMTA3LDYgKzEwNyw3IEBAIF9aTks3V2ViQ29yZThEb2N1bWVudDhzZXR0aW5nc0V2
OwogX1pOSzdXZWJDb3JlOERvY3VtZW50NHZpZXdFdjsKIF9aTks3V2ViQ29yZTVSYW5nZTR0ZXh0
RXY7CiBfWk5LN1dlYkNvcmU5VHJlZVNjb3BlMTRnZXRFbGVtZW50QnlJZEVSS04zV1RGMTJBdG9t
aWNTdHJpbmdFOworX1pON1dlYkNvcmUyMmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRFUE5TXzdFbGVt
ZW50RTsKIF9aTks3V2ViQ29yZTE0RG9jdW1lbnRNYXJrZXIxMWRlc2NyaXB0aW9uRXY7CiBfWk43
V2ViQ29yZThEb2N1bWVudDE2aXNQYWdlQm94VmlzaWJsZUVpOwogX1pON1dlYkNvcmUxOUFuaW1h
dGlvbkNvbnRyb2xsZXIxN3N1c3BlbmRBbmltYXRpb25zRXY7CkluZGV4OiBUb29scy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTk4MjMpCisrKyBU
b29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMyBAQAorMjAxMi0wNi0w
OCAgS2F1c3R1YmggQXRyYXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KKworICAgICAg
ICBbRFJUXSBMVEM6OiBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgpIGNvdWxkIGJlIG1vdmVk
IHRvIEludGVybmFscy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg0NDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSB0aGUgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQgZnJvbSBMYXlvdXRUZXN0
Q290cm9sbGVyIHRvIEludGVybmFscyBhbmQKKyAgICAgICAgcmVtb3ZlIHRoZSBvbGQgcGxhdGZv
cm0gc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIGFzIGl0IGV4Y2x1c2l2ZWx5IHRlc3RzIFdlYkNv
cmUgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5j
dGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6
CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnkuY3BwOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAg
ICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UE9TSVhMb2NhbGUpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0xheW91
dFRlc3RDb250cm9sbGVyRWZsLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5
b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9M
YXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcik6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNw
cDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNw
cDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xh
eW91dFRlc3RDb250cm9sbGVyLmlkbDoKKwogMjAxMi0wNi0wOCAgSGFucyBXZW5uYm9yZyAgPGhh
bnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNwZWVjaCBKYXZhU2NyaXB0IEFQSTogbW9jayBX
ZWJTcGVlY2hSZWNvZ25pemVyIGZvciBEdW1wUmVuZGVyVHJlZQpJbmRleDogVG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMTE5ODEyKQor
KysgVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02NjIsMjIgKzY2Miw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGZpbmRTdHJpbmdD
YWxsYmFjayhKU0MKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIGNvbnRy
b2xsZXItPmZpbmRTdHJpbmcoY29udGV4dCwgdGFyZ2V0LmdldCgpLCBvcHRpb25zKSk7CiB9CiAK
LXN0YXRpYyBKU1ZhbHVlUmVmIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkQ2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlz
T2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNb
XSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkK
LSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGVsZW1lbnRJZChBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29w
eShjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOwotICAgIGlmICgqZXhjZXB0aW9u
KQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBM
YXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RD
b250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gY291bnRlclZhbHVlKGNvbnRyb2xsZXItPmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKGVsZW1lbnRJZC5nZXQoKSkpOwotICAgIGlmICghY291bnRlclZhbHVlLmdl
dCgpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0gICAg
cmV0dXJuIEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGNvdW50ZXJWYWx1ZS5nZXQoKSk7Ci19
Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIGdvQmFja0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFy
Z3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKIHsKICAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRp
Y19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmpl
Y3QpKTsKQEAgLTIzMzIsNyArMjMxNiw2IEBAIEpTU3RhdGljRnVuY3Rpb24qIExheW91dFRlc3RD
b250cm9sbGVyOjoKICAgICAgICAgeyAiZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQiLCBl
dmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
ImV4ZWNDb21tYW5kIiwgZXhlY0NvbW1hbmRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJm
aW5kU3RyaW5nIiwgZmluZFN0cmluZ0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgImNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIiwgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWRDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJvcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUiLCBvcmln
aW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJnb0Jh
Y2siLCBnb0JhY2tDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LCAKICAgICAgICAgeyAiZ3JhbnREZXNrdG9wTm90
aWZpY2F0aW9uUGVybWlzc2lvbiIsIGdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb25D
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LCAKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaAkocmV2aXNpb24gMTE5ODEyKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNiBAQCBw
dWJsaWM6CiAgICAgYm9vbCBjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKTsKICAgICBKU1N0cmlu
Z1JlZiBjb3B5RGVjb2RlZEhvc3ROYW1lKEpTU3RyaW5nUmVmIG5hbWUpOwogICAgIEpTU3RyaW5n
UmVmIGNvcHlFbmNvZGVkSG9zdE5hbWUoSlNTdHJpbmdSZWYgbmFtZSk7Ci0gICAgSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlk
KTsKICAgICB2b2lkIGRlbGl2ZXJXZWJJbnRlbnQoSlNTdHJpbmdSZWYgYWN0aW9uLCBKU1N0cmlu
Z1JlZiB0eXBlLCBKU1N0cmluZ1JlZiBkYXRhKTsKICAgICB2b2lkIGRpc2FibGVJbWFnZUxvYWRp
bmcoKTsKICAgICB2b2lkIGRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0cygpOwpJbmRleDogVG9v
bHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVy
cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5
b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcAkocmV2aXNpb24gMTE5ODEyKQorKysgVG9v
bHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVy
cnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjksMjEgKzQyOSw2IEBAIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OmRpc2FibGVJbWFnZUwKICAgICBCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBS
ZW5kZXJUcmVlOjpjdXJyZW50SW5zdGFuY2UoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5zZXRMb2Fk
c0ltYWdlc0F1dG9tYXRpY2FsbHkoZmFsc2UpOwogfQogCi1KU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKEpTU3Ry
aW5nUmVmIGlkKQotewotICAgIFN0cmluZyBpZFN0ciA9IGpzU3RyaW5nUmVmVG9XZWJDb3JlU3Ry
aW5nKGlkKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBjb3JlRWxlbWVudCA9IG1haW5GcmFtZS0+
ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoQXRvbWljU3RyaW5nKGlkU3RyKSk7Ci0gICAgaWYg
KCFjb3JlRWxlbWVudCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBDU3RyaW5nIGNvdW50ZXJW
YWx1ZVN0ciA9IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnQoY29yZUVsZW1lbnQpLnV0ZjgoKTsKLSAg
ICBpZiAoY291bnRlclZhbHVlU3RyLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAg
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWUoQWRvcHQsIEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKGNvdW50ZXJWYWx1ZVN0ci5kYXRhKCkpKTsKLSAgICByZXR1cm4g
Y291bnRlclZhbHVlOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpvdmVycmlkZVBy
ZWZlcmVuY2UoSlNTdHJpbmdSZWYga2V5LCBKU1N0cmluZ1JlZiB2YWx1ZSkKIHsKICAgICBpZiAo
IW1haW5GcmFtZSkKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDExOTgxMikKKysrIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTIwLDcgKzEyMCw2IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRU
ZXN0Q29udHJvbGwKICAgICBiaW5kTWV0aG9kKCJhZGRVc2VyU3R5bGVTaGVldCIsICZMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6YWRkVXNlclN0eWxlU2hlZXQpOwogICAgIGJpbmRNZXRob2QoImNsZWFy
QWxsRGF0YWJhc2VzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpjbGVhckFsbERhdGFiYXNlcyk7
CiAgICAgYmluZE1ldGhvZCgiY2xvc2VXZWJJbnNwZWN0b3IiLCAmTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmNsb3NlV2ViSW5zcGVjdG9yKTsKLSAgICBiaW5kTWV0aG9kKCJjb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQpOwogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgYmluZE1ldGhvZCgiZGlkTG9z
ZVBvaW50ZXJMb2NrIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkaWRMb3NlUG9pbnRlckxvY2sp
OwogI2VuZGlmCkBAIC0xNjU0LDIwICsxNjUzLDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0UE9TSVhMb2NhbAogICAgICAgICBzZXRsb2NhbGUoTENfQUxMLCBhcmd1bWVudHNbMF0u
dG9TdHJpbmcoKS5jX3N0cigpKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMs
IENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICByZXN1bHQtPnNldE51bGwoKTsKLSAgICBpZiAo
YXJndW1lbnRzLnNpemUoKSA8IDEgfHwgIWFyZ3VtZW50c1swXS5pc1N0cmluZygpKQotICAgICAg
ICByZXR1cm47Ci0gICAgV2ViRnJhbWUqIGZyYW1lID0gbV9zaGVsbC0+d2ViVmlldygpLT5tYWlu
RnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm47Ci0gICAgV2ViU3RyaW5n
IGNvdW50ZXJWYWx1ZSA9IGZyYW1lLT5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChjcHBWYXJp
YW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzBdKSk7Ci0gICAgaWYgKGNvdW50ZXJWYWx1ZS5pc051
bGwoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHJlc3VsdC0+c2V0KGNvdW50ZXJWYWx1ZS51dGY4
KCkpOwotfQotCiAvLyBQYXJzZSBhIHNpbmdsZSBhcmd1bWVudC4gVGhlIG1ldGhvZCByZXR1cm5z
IHRydWUgaWYgdGhlcmUgaXMgYW4gYXJndW1lbnQgdGhhdAogLy8gaXMgYSBudW1iZXIgb3IgaWYg
dGhlcmUgaXMgbm8gYXJndW1lbnQgYXQgYWxsLiBJdCByZXR1cm5zIGZhbHNlIG9ubHkgaWYgdGhl
cmUKIC8vIGlzIHNvbWUgYXJndW1lbnQgdGhhdCBpcyBub3QgYSBudW1iZXIuIFRoZSB2YWx1ZSBw
YXJhbWV0ZXIgaXMgZmlsbGVkIHdpdGggdGhlCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDExOTgx
MikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyNCw5ICszMjQsNiBAQCBwdWJsaWM6CiAgICAgLy8gUmVz
ZXRzIGJldHdlZW4gdGVzdHMuCiAgICAgdm9pZCBzZXRQT1NJWExvY2FsZShjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKLSAgICAvLyBHZXRzIHRoZSB2YWx1ZSBvZiB0aGUg
Y291bnRlciBpbiB0aGUgZWxlbWVudCBzcGVjaWZpZWQgYnkgaXRzIElELgotICAgIHZvaWQgY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOwotCiAgICAgLy8gQ2F1c2VzIGxheW91dCB0byBoYXBwZW4gYXMgaWYgdGFyZ2V0dGVkIHRv
IHByaW50ZWQgcGFnZXMuCiAgICAgdm9pZCBzZXRQcmludGluZyhjb25zdCBDcHBBcmd1bWVudExp
c3QmLCBDcHBWYXJpYW50Kik7CiAKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlv
dXRUZXN0Q29udHJvbGxlckVmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcAkocmV2aXNpb24gMTE5ODEyKQorKysg
VG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTAwLDEzICsxMDAsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpkaXNwbGF5KCkKICAgICBkaXNwbGF5V2ViVmlldygpOwogfQogCi1KU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KEpTU3RyaW5nUmVmIGlkKQotewotICAgIGNvbnN0IEV2YXNfT2JqZWN0KiBtYWluRnJhbWUgPSBi
cm93c2VyLT5tYWluRnJhbWUoKTsKLSAgICBjb25zdCBTdHJpbmcgY291bnRlclZhbHVlKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6Y291bnRlclZhbHVlQnlFbGVtZW50SWQobWFpbkZyYW1lLCBp
ZC0+dXN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKLSAgICByZXR1cm4gSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+KEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhjb3VudGVyVmFs
dWUudXRmOCgpLmRhdGEoKSkpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjprZWVw
V2ViSGlzdG9yeSgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKSW5kZXg6IFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAkocmV2
aXNpb24gMTE5ODEyKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250
cm9sbGVyR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDE3ICsxMDIsNiBAQCB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpkaXNwbGF5KCkKICAgICBkaXNwbGF5V2ViVmlldygpOwogfQog
Ci1KU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkKQotewotICAgIGdjaGFyKiBpZEdDaGFy
ID0gSlNTdHJpbmdDb3B5VVRGOENTdHJpbmcoaWQpOwotICAgIENTdHJpbmcgY291bnRlclZhbHVl
R0NoYXIgPSBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKG1haW5GcmFtZSwgaWRHQ2hhcik7Ci0gICAgZ19mcmVlKGlkR0NoYXIpOwotICAgIGlmIChj
b3VudGVyVmFsdWVHQ2hhci5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IGNvdW50ZXJWYWx1ZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoY291bnRlclZhbHVlR0NoYXIuZGF0YSgpKSk7Ci0gICAgcmV0dXJuIGNvdW50
ZXJWYWx1ZTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6a2VlcFdlYkhpc3Rvcnko
KQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0JKHJldmlzaW9uIDExOTgx
MikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjQ5LDE5ICsyNDksNiBAQCB2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpkaXNwbGF5KCkKICAgICBkaXNwbGF5V2ViVmlldygpOwogfQogCi1KU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKEpTU3RyaW5nUmVmIGlkKQotewotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaWRD
RihBZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBpZCkp
OwotICAgIE5TU3RyaW5nICppZE5TID0gKE5TU3RyaW5nICopaWRDRi5nZXQoKTsKLQotICAgIERP
TUVsZW1lbnQgKmVsZW1lbnQgPSBbW21haW5GcmFtZSBET01Eb2N1bWVudF0gZ2V0RWxlbWVudEJ5
SWQ6aWROU107Ci0gICAgaWYgKCFlbGVtZW50KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEpT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRl
V2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZilbbWFpbkZyYW1lIGNvdW50ZXJWYWx1ZUZvckVsZW1l
bnQ6ZWxlbWVudF0pKTsKLSAgICByZXR1cm4gY291bnRlclZhbHVlOwotfQotCiB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjprZWVwV2ViSGlzdG9yeSgpCiB7CiAgICAgaWYgKCFbV2ViSGlzdG9y
eSBvcHRpb25hbFNoYXJlZEhpc3RvcnldKSB7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9x
dC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAkocmV2aXNpb24gMTE5ODEyKQor
KysgVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE1NSwxMSArMTU1LDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6d2FpdFVudGlsRG9uZQogICAgIG1fdGltZW91dFRpbWVyLnN0YXJ0KG1fdGltZW91dCwgdGhp
cyk7CiB9CiAKLVFTdHJpbmcgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKGNvbnN0IFFTdHJpbmcmIGlkKQotewotICAgIHJldHVybiBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdDo6Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQobV9kcnQtPndlYlBhZ2UoKS0+
bWFpbkZyYW1lKCksIGlkKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0Vmll
d01vZGVNZWRpYUZlYXR1cmUoY29uc3QgUVN0cmluZyYgbW9kZSkKIHsKICAgICBtX2RydC0+d2Vi
UGFnZSgpLT5zZXRQcm9wZXJ0eSgiX3Ffdmlld01vZGUiLCBtb2RlKTsKSW5kZXg6IFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgJKHJldmlzaW9u
IDExOTgxMikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDcgKzEwNSw2IEBAIHB1YmxpYyBzbG90czoKICAg
ICB2b2lkIHNldENhbk9wZW5XaW5kb3dzKCkgeyBtX2Nhbk9wZW5XaW5kb3dzID0gdHJ1ZTsgfQog
ICAgIHZvaWQgc2V0UHJpbnRpbmcoKSB7IG1faXNQcmludGluZyA9IHRydWU7IH0KICAgICB2b2lk
IHdhaXRVbnRpbERvbmUoKTsKLSAgICBRU3RyaW5nIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KGNvbnN0IFFTdHJpbmcmIGlkKTsKICAgICBpbnQgd2ViSGlzdG9yeUl0ZW1Db3VudCgpOwogICAg
IHZvaWQga2VlcFdlYkhpc3RvcnkoKTsKICAgICB2b2lkIG5vdGlmeURvbmUoKTsKSW5kZXg6IFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2lu
LmNwcAkocmV2aXNpb24gMTE5ODEyKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91
dFRlc3RDb250cm9sbGVyV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMwMCwyNSArMTMwMCw2
IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZUFsbFZpc2kKICAgICBzaGFyZWRI
aXN0b3J5UHJpdmF0ZS0+cmVtb3ZlQWxsVmlzaXRlZExpbmtzKCk7CiB9CiAKLUpTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoSlNTdHJpbmdSZWYgaWQpCi17Ci0gICAgQ09NUHRyPElXZWJGcmFtZVByaXZhdGU+IGZy
YW1lUHJpdmF0ZShRdWVyeSwgZnJhbWUpOwotICAgIGlmICghZnJhbWVQcml2YXRlKQotICAgICAg
ICByZXR1cm4gMDsKLQotICAgIHdzdHJpbmcgaWRXc3RyaW5nID0ganNTdHJpbmdSZWZUb1dTdHJp
bmcoaWQpOwotICAgIEJTVFIgaWRCU1RSID0gU3lzQWxsb2NTdHJpbmdMZW4oKE9MRUNIQVIqKWlk
V3N0cmluZy5jX3N0cigpLCBpZFdzdHJpbmcubGVuZ3RoKCkpOwotICAgIEJTVFIgY291bnRlclZh
bHVlQlNUUjsKLSAgICBpZiAoRkFJTEVEKGZyYW1lUHJpdmF0ZS0+Y291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoaWRCU1RSLCAmY291bnRlclZhbHVlQlNUUikpKQotICAgICAgICByZXR1cm4gMDsK
LQotICAgIHdzdHJpbmcgY291bnRlclZhbHVlKGNvdW50ZXJWYWx1ZUJTVFIsIFN5c1N0cmluZ0xl
bihjb3VudGVyVmFsdWVCU1RSKSk7Ci0gICAgU3lzRnJlZVN0cmluZyhpZEJTVFIpOwotICAgIFN5
c0ZyZWVTdHJpbmcoY291bnRlclZhbHVlQlNUUik7Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IGNvdW50ZXJWYWx1ZUpTKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKGNv
dW50ZXJWYWx1ZS5kYXRhKCksIGNvdW50ZXJWYWx1ZS5sZW5ndGgoKSkpOwotICAgIHJldHVybiBj
b3VudGVyVmFsdWVKUzsKLX0KLQogaW50IExheW91dFRlc3RDb250cm9sbGVyOjpwYWdlTnVtYmVy
Rm9yRWxlbWVudEJ5SWQoSlNTdHJpbmdSZWYgaWQsIGZsb2F0IHBhZ2VXaWR0aEluUGl4ZWxzLCBm
bG9hdCBwYWdlSGVpZ2h0SW5QaXhlbHMpCiB7CiAgICAgQ09NUHRyPElXZWJGcmFtZVByaXZhdGU+
IGZyYW1lUHJpdmF0ZShRdWVyeSwgZnJhbWUpOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUv
d3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJl
bmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAJKHJldmlzaW9uIDExOTgxMikK
KysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NzIsMTEgKzQ3Miw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldFNjcm9sbGJhclAKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKLUpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoSlNTdHJpbmdSZWYgaWQpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIGludCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6cGFnZU51bWJlckZvckVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmLCBm
bG9hdCwgZmxvYXQpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudApJbmRleDogVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxl
ci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwJKHJldmlzaW9uIDExOTgxMikKKysr
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw2IEBAIG1vZHVsZSBX
VFIgewogICAgICAgICAvLyBTcGVjaWFsIERPTSBmdW5jdGlvbnMuCiAgICAgICAgIHZvaWQgY2xl
YXJCYWNrRm9yd2FyZExpc3QoKTsKICAgICAgICAgb2JqZWN0IGNvbXB1dGVkU3R5bGVJbmNsdWRp
bmdWaXNpdGVkSW5mbyhpbiBvYmplY3QgZWxlbWVudCk7Ci0gICAgICAgIERPTVN0cmluZyBjb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZChpbiBET01TdHJpbmcgZWxlbWVudElkKTsKICAgICAgICAg
dm9pZCBleGVjQ29tbWFuZChpbiBET01TdHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5nIGFyZ3VtZW50
KTsKICAgICAgICAgYm9vbGVhbiBpc0NvbW1hbmRFbmFibGVkKGluIERPTVN0cmluZyBuYW1lKTsK
ICAgICAgICAgRE9NU3RyaW5nIG1hcmtlclRleHRGb3JMaXN0SXRlbShpbiBvYmplY3QgZWxlbWVu
dCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTk4MjMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MiBAQAorMjAxMi0wNi0wOCAgS2F1c3R1YmggQXRy
YXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBbRFJUXSBMVEM6OiBj
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgpIGNvdWxkIGJlIG1vdmVkIHRvIEludGVybmFscy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NDA2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUg
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQgZnJvbSBMYXlvdXRUZXN0Q290cm9sbGVyIHRvIElu
dGVybmFscyBhbmQKKyAgICAgICAgcmVtb3ZlIHRoZSBvbGQgcGxhdGZvcm0gc3BlY2lmaWMgaW1w
bGVtZW50YXRpb25zIGFzIGl0IGV4Y2x1c2l2ZWx5IHRlc3RzIFdlYkNvcmUgZnVuY3Rpb25hbGl0
eS4KKworICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzLzJkaXNwbGF5cy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvMmRpc3BsYXlzLmh0bWw6CisgICAgICAgICog
ZmFzdC9jc3MvY291bnRlcnMvYWRkaW5nLW5vZGVzLmh0bWw6CisgICAgICAgICogZmFzdC9jc3Mv
Y291bnRlcnMvYWZ0ZXItY29udGludWF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2Nzcy9jb3VudGVycy9hZnRlci1jb250aW51YXRpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nz
cy9jb3VudGVycy9jb250ZW50LTAyMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3Mv
Y291bnRlcnMvY29udGVudC0wMjEuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9j
b3VudGVyLWJlZm9yZS1jb250ZW50LW5vdC1pbmNyZW1lbnRlZC5odG1sOgorICAgICAgICAqIGZh
c3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAwLmh0bWw6CisgICAg
ICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAxLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDEuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDIuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC1pbmhlcml0
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3Jl
bWVudC1pbmhlcml0Lmh0bToKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWlu
Y3JlbWVudC1vdmVyZmxvdy5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL2NvdW50
ZXItaW5jcmVtZW50LXRlc3RzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3Vu
dGVycy9jb3VudGVyLWluY3JlbWVudC10ZXN0cy5odG06CisgICAgICAgICogZmFzdC9jc3MvY291
bnRlcnMvY291bnRlci1yZXNldC0wMDAuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVy
cy9jb3VudGVyLXJlc2V0LTAwMS5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL2Nv
dW50ZXItcmVzZXQtMDAyLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3NzL2Nv
dW50ZXJzL2NvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkLmh0bWw6CisgICAgICAgICogZmFzdC9j
c3MvY291bnRlcnMvZGVlcC1iZWZvcmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3Nz
L2NvdW50ZXJzL2RlZXAtYmVmb3JlLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMv
ZWxlbWVudC1yZW1vdmFsLWNyYXNoLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9j
b3VudGVycy9pbnZhbGlkYXRlLWNhY2hlZC1jb3VudGVyLW5vZGUuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2Nzcy9jb3VudGVycy9uZXN0aW5nLmh0bWw6CisKIDIwMTItMDYtMDggIEFya28gU2FoYSAg
PGFya29AbW90b3JvbGEuY29tPgogCiAgICAgICAgIE1pY3JvZGF0YTogQW4gZWxlbWVudCB3aXRo
IGFuIGVtcHR5IGl0ZW1wcm9wPScnIHNob3VsZCBub3QgZ2V0IGxpc3RlZCBpbiB0aGUgLnByb3Bl
cnRpZXMgbGlzdC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzLzJkaXNwbGF5
cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRl
cnMvMmRpc3BsYXlzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE5ODEyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY291bnRlcnMvMmRpc3BsYXlzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtNiw1ICs2LDUgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi1QQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0Vmll
dycpIGlzICcxMDAwIDEwMDAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0VmlldycpKSBpcyAnMTAwMCAxMDAwJwogCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy8yZGlzcGxheXMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy8yZGlzcGxheXMuaHRtbAkocmV2aXNp
b24gMTE5ODEyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvMmRpc3BsYXlzLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgZnVuY3Rpb24gcnVuKCkKICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdFZpZXciKS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwg
ImNvdW50ZXIxMDAwIik7CiAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAg
ICAgICAgIHJldHVybjsKLSAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3RWaWV3JykiLCAiJzEwMDAgMTAwMCciKTsKKyAgICBz
aG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3RWaWV3JykpIiwgIicxMDAwIDEwMDAnIik7CiAKICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZGRpbmctbm9kZXMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZGRpbmct
bm9kZXMuaHRtbAkocmV2aXNpb24gMTE5ODEyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291
bnRlcnMvYWRkaW5nLW5vZGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAK
ICAgICAgICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzcGFuIik7CiAgICAgICAgICAgICAgICAgICAgIGlkID0gc3Bhbkxpc3QuaXRlbShpKS5n
ZXRBdHRyaWJ1dGUoImlkIik7CiAgICAgICAgICAgICAgICAgICAgIGlmIChpZCAhPSBudWxsKQot
ICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ID0gbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoaWQpOworICAgICAgICAg
ICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ID0gd2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpKTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dC5sZW5ndGgpCiAgICAgICAgICAg
ICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSBuZXdTcGFuRWxlbWVudC5p
bm5lclRleHQgKyAiLSI7CiAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQo
bmV3U3BhbkVsZW1lbnQpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvYWZ0
ZXItY29udGludWF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jb3VudGVycy9hZnRlci1jb250aW51YXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxMTk4MTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZnRlci1jb250aW51
YXRpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogVGhpcyB0
ZXN0IHBhc3NlcyBpZiB0aGUgbnVtYmVycyBkaXNwbGF5ZWQgYmVsb3cgYXJlIDEgYW5kIDIgaW4g
dGhpcyBvcmRlci4KIAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgnYzInKSBpcyAnMicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MyJykpIGlzICcyJwogCiBURVNUIENPTVBMRVRF
CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2FmdGVyLWNvbnRpbnVhdGlv
bi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2FmdGVy
LWNvbnRpbnVhdGlvbi5odG1sCShyZXZpc2lvbiAxMTk4MTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb3VudGVycy9hZnRlci1jb250aW51YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTAsNyArMTAsNyBAQAogICAgICAgICB9CiAgICAgICAgIGZ1bmN0aW9uIHJ1bigpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgnYzInKSIsICInMiciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYzIn
KSkiLCAiJzInIik7CiAKICAgICAgICAgICAgIGRlYnVnKCcnKTsKICAgICAgICAgICAgIGRlYnVn
KCdURVNUIENPTVBMRVRFJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9j
b250ZW50LTAyMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY291bnRlcnMvY29udGVudC0wMjEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTk4MTIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb250ZW50LTAyMS1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiBUaGlzIGlzIHRoZSBXZWJLaXQgdmVyc2lv
biBvZiBDU1MgVGVzdDogQ29udGVudCB1c2luZyBhICdjb3VudGVycygpJyBmdW5jdGlvbiB3aXRo
IGEgc3RyaW5nIHZhbHVlLgogCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCdkaXYxJykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdkaXYyJykgaXMgJzAuMCcKK1BBU1Mgd2luZG93
LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdjEnKSkg
aXMgJzAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdkaXYyJykpIGlzICcwLjAnCiAKIFRFU1QgQ09NUExFVEUKIApJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY29udGVudC0wMjEuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb250ZW50LTAyMS5odG1sCShyZXZpc2lv
biAxMTk4MTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb250ZW50LTAyMS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw4IEBACiAgIHsKICAgICAgIGlmICghd2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgICAgIHJldHVybjsKLSAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZGl2
MScpIiwgIicwJyIpOwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdkaXYyJykiLCAiJzAuMCciKTsKKyAgICAgIHNob3VsZEJl
KCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
ZGl2MScpKSIsICInMCciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGl2MicpKSIsICInMC4wJyIpOwogCiAg
ICAgICBkZWJ1ZygnJyk7CiAgICAgICBkZWJ1ZygnVEVTVCBDT01QTEVURScpOwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1iZWZvcmUtY29udGVudC1ub3QtaW5j
cmVtZW50ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVy
cy9jb3VudGVyLWJlZm9yZS1jb250ZW50LW5vdC1pbmNyZW1lbnRlZC5odG1sCShyZXZpc2lvbiAx
MTk4MTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWJlZm9yZS1j
b250ZW50LW5vdC1pbmNyZW1lbnRlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3
IEBACiAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNwYW5MaXN0Lmxlbmd0aDsgKytp
ICkgewogICAgICAgICAgICAgICAgIHZhciBkaXZJdGVtID0gc3Bhbkxpc3QuaXRlbShpKTsKICAg
ICAgICAgICAgICAgICBjb3VudGVycyArPSAnLSc7Ci0gICAgICAgICAgICAgICAgY291bnRlcnMg
Kz0gbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoZGl2SXRl
bS5nZXRBdHRyaWJ1dGUoImlkIikpOworICAgICAgICAgICAgICAgIGNvdW50ZXJzICs9IHdpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdkl0ZW0u
Z2V0QXR0cmlidXRlKCJpZCIpKSk7CiAgICAgICAgICAgICAgICAgY291bnRlcnMgKz0gZGl2SXRl
bS50ZXh0Q29udGVudDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb250YWluZXIiKS5pbm5lckhUTUwgPSBjb3VudGVyczsKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1p
bmNyZW1lbnQtMDAwLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE5ODEyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAwLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMSwxNCArMSwxNCBAQAogVGhpcyBpcyB0aGUgV2ViS2l0IHZlcnNp
b24gb2YgQ1NTIDIuMSBUZXN0IFN1aXRlOiBkeW5hbWljIGNoYW5nZXMgdG8gJ2NvdW50ZXItaW5j
cmVtZW50Jy4KIAogQmVmb3JlIHRoZSBkeW5hbWljIGNoYW5nZToKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIGlzICcxJwotUEFTUyBs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSBp
cyAnMicKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ2ZvdXInKSBpcyAnMycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29uZScpKSBpcyAnMScKK1BBU1Mgd2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RocmVlJykpIGlzICcyJwor
UEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZm91cicpKSBpcyAnMycKIEFmdGVyIHRoZSBkeW5hbWljIGNoYW5nZToKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIGlzICcxJwot
UEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdv
JykgaXMgJzInCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0aHJlZScpIGlzICczJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgnZm91cicpIGlzICc0JworUEFTUyB3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJykpIGlzICcxJworUEFT
UyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dHdvJykpIGlzICcyJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGhyZWUnKSkgaXMgJzMnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3VyJykpIGlzICc0JwogCiBU
RVNUIENPTVBMRVRFCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50
ZXItaW5jcmVtZW50LTAwMC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMC5odG1sCShyZXZpc2lvbiAxMTk4MTIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDAuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTgsMTggKzE4LDE4IEBACiAgIGZ1bmN0aW9uIGNoZWNrQ291
bnRlclZhbHVlc0JlZm9yZUNoYW5nZSgpCiAgIHsKICAgICAgIGRlYnVnKCdCZWZvcmUgdGhlIGR5
bmFtaWMgY2hhbmdlOicpOwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSIsICInMSciKTsKLSAgICAgIHNob3VsZEJl
KCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUn
KSIsICInMiciKTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgnZm91cicpIiwgIiczJyIpOworICAgICAgc2hvdWxkQmUoIndp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvbmUn
KSkiLCAiJzEnIik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RocmVlJykpIiwgIicyJyIpOworICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdmb3VyJykpIiwgIiczJyIpOwogICB9CiAKICAgZnVuY3Rpb24gY2hlY2tDb3VudGVyVmFs
dWVzQWZ0ZXJDaGFuZ2UoKQogICB7CiAgICAgICBkZWJ1ZygnQWZ0ZXIgdGhlIGR5bmFtaWMgY2hh
bmdlOicpOwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSIsICInMSciKTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdvJykiLCAiJzInIik7
Ci0gICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3RocmVlJykiLCAiJzMnIik7Ci0gICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2ZvdXInKSIsICInNCciKTsKKyAg
ICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnb25lJykpIiwgIicxJyIpOworICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRl
cm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0d28nKSkiLCAiJzIn
Iik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RocmVlJykpIiwgIiczJyIpOworICAgICAgc2hvdWxkQmUoIndp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3Vy
JykpIiwgIic0JyIpOwogCiAgICAgICBkZWJ1ZygnJyk7CiAgICAgICBkZWJ1ZygnVEVTVCBDT01Q
TEVURScpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNy
ZW1lbnQtMDAxLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
MTk4MTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVu
dC0wMDEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICsxLDEzIEBACiBUaGlz
IGlzIHRoZSBXZWJLaXQgdmVyc2lvbiBvZiBDU1MgMi4xIFRlc3QgU3VpdGU6IGR5bmFtaWMgY2hh
bmdlcyB0byAnY291bnRlci1pbmNyZW1lbnQnLgogCiBCZWZvcmUgdGhlIGR5bmFtaWMgY2hhbmdl
OgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
b25lJykgaXMgJzEnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCd0d28nKSBpcyAnMycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVlJykgaXMgJzQnCitQQVNTIHdpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvbmUnKSkgaXMgJzEnCitQ
QVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0d28nKSkgaXMgJzMnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0aHJlZScpKSBpcyAnNCcKIEFmdGVyIHRoZSBkeW5hbWljIGNo
YW5nZToKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ29uZScpIGlzICcxJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndHdvJykgaXMgJzInCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJlZScpIGlzICczJworUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJykpIGlzICcx
JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndHdvJykpIGlzICcyJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhyZWUnKSkgaXMgJzMnCiAKIFRFU1QgQ09NUExFVEUK
IApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQt
MDAxLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291
bnRlci1pbmNyZW1lbnQtMDAxLmh0bWwJKHJldmlzaW9uIDExOTgxMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xOCwxNyArMTgsMTcgQEAKICAgZnVuY3Rpb24gY2hlY2tDb3VudGVyVmFsdWVzQmVm
b3JlQ2hhbmdlKCkKICAgewogICAgICAgZGVidWcoJ0JlZm9yZSB0aGUgZHluYW1pYyBjaGFuZ2U6
Jyk7Ci0gICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ29uZScpIiwgIicxJyIpOwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d28nKSIsICInMyciKTsKLSAg
ICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgndGhyZWUnKSIsICInNCciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJykpIiwgIicxJyIpOwor
ICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0d28nKSkiLCAiJzMnIik7CisgICAgICBzaG91bGRCZSgid2luZG93Lmlu
dGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RocmVlJykpIiwg
Iic0JyIpOwogICB9CiAKICAgZnVuY3Rpb24gY2hlY2tDb3VudGVyVmFsdWVzQWZ0ZXJDaGFuZ2Uo
KQogICB7CiAgICAgICBkZWJ1ZygnQWZ0ZXIgdGhlIGR5bmFtaWMgY2hhbmdlOicpOwotICAgICAg
c2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCdvbmUnKSIsICInMSciKTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdvJykiLCAiJzInIik7Ci0gICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVl
JykiLCAiJzMnIik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29uZScpKSIsICInMSciKTsKKyAgICAgIHNob3Vs
ZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndHdvJykpIiwgIicyJyIpOworICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aHJlZScpKSIsICInMyciKTsKIAog
ICAgICAgZGVidWcoJycpOwogICAgICAgZGVidWcoJ1RFU1QgQ09NUExFVEUnKTsKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVt
ZW50LTAwMi5odG1sCShyZXZpc2lvbiAxMTk4MTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
b3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NyArMzIsNyBAQAogICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzcGFuTGlzdC5sZW5n
dGg7ICsraSApIHsKICAgICAgICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVt
ZW50LmlubmVyVGV4dCA9Ci0gICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0cmlidXRl
KCJpZCIpKTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRyaWJ1dGUo
ImlkIikpKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1NwYW5FbGVtZW50LmlubmVyVGV4
dC5sZW5ndGgpCiAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRl
eHQgPSBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgKyAiLSI7CiAgICAgICAgICAgICAgICAgICAg
IGNvbnNvbGUuYXBwZW5kQ2hpbGQobmV3U3BhbkVsZW1lbnQpOwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtaW5oZXJpdC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNy
ZW1lbnQtaW5oZXJpdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExOTgxMikKKysrIExheW91dFRl
c3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LWluaGVyaXQtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAotUEFTUyBsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnd3JhcHBlcjkwJykgaXMgJzUnCi1QQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OTAn
KSBpcyAnMTAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0ZXN0OTBhJykgaXMgJzE1JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnd3JhcHBlcjkxJykgaXMgJzEwJwotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDkxJykgaXMgJzIw
JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dGVzdDkxYScpIGlzICczMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dyYXBwZXI5MCcpKSBpcyAnNScKK1BBU1Mgd2luZG93Lmlu
dGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q5MCcpKSBp
cyAnMTAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0OTBhJykpIGlzICcxNScKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dyYXBwZXI5MScpKSBpcyAnMTAnCitQ
QVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0OTEnKSkgaXMgJzIwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDkxYScpKSBpcyAnMzAnCiAKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LWluaGVyaXQuaHRtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVt
ZW50LWluaGVyaXQuaHRtCShyZXZpc2lvbiAxMTk4MTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC1pbmhlcml0Lmh0bQkod29ya2luZyBjb3B5KQpA
QCAtMTMsMTIgKzEzLDEyIEBACiAgICAgICAgICAgICBmdW5jdGlvbiBydW4oKQogICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgIC8vIFNvbWUgZXh0cmEgV2ViS2l0IHRlc3RpbmcgZm9yIGNv
dW50ZXItaW5jcmVtZW50IGluaGVyaXQKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3dyYXBwZXI5MCcpIiwg
Iic1JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDkwJykiLCAiJzEwJyIpOwotICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDkwYScpIiwgIicxNSciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgi
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3dyYXBwZXI5
MScpIiwgIicxMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5MScpIiwgIicyMCciKTsKLSAg
ICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5MWEnKSIsICInMzAnIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd3cmFwcGVyOTAnKSkiLCAiJzUnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
OTAnKSkiLCAiJzEwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDkwYScpKSIsICIn
MTUnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cmFwcGVyOTEnKSkiLCAiJzEwJyIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDkxJykpIiwgIicyMCciKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3Q5MWEnKSkiLCAiJzMwJyIpOwogICAgICAgICAgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICAgIH0KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LW92ZXJmbG93Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1l
bnQtb3ZlcmZsb3cuaHRtbAkocmV2aXNpb24gMTE5ODEyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtb3ZlcmZsb3cuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTgsNyArMTgsNyBAQAogICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgICAgICB7
CiAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb3VudGVkJykuaW5uZXJUZXh0ID0gbGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2NvdW50ZWQnKTsK
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY291bnRlZCcpLmlubmVy
VGV4dCA9IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb3VudGVkJykpOwogICAgICAgICB9CiAKICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ2xvYWQnLCBkb1Rlc3QsIGZhbHNlKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LXRlc3RzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC10ZXN0
cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExOTgxMikKKysrIExheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LXRlc3RzLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSw1OCArMSw1OCBAQAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDMnKSBpcyAnLTIxNDc0ODM2NDgnCi1QQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NCcpIGlzICct
MjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3Rlc3Q1JykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NicpIGlzICcwJwotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDcnKSBpcyAnMCcKLVBBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q4Jykg
aXMgJzEwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgndGVzdDknKSBpcyAnMTAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTAnKSBpcyAnMjE0NzQ4MzY0NicKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxMScpIGlzICcy
MTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDEyJykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTMnKSBpcyAnMjE0NzQ4MzY0NycK
LVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rl
c3QxNCcpIGlzICcyJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgndGVzdDE1JykgaXMgJy0yMTQ3NDgzNjQ4JwotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDE2JykgaXMgJy0yMTQ3NDgz
NjQ4JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndGVzdDE3JykgaXMgJy0yMTQ3NDgzNjQ4JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDE4JykgaXMgJzAnCi1QQVNTIGxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTknKSBpcyAnMCcK
LVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rl
c3QyMCcpIGlzICcwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgndGVzdDIxJykgaXMgJzIwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDIyJykgaXMgJzIwJwotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDIzJykgaXMgJzIx
NDc0ODM2NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0ZXN0MjQnKSBpcyAnMjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyNScpIGlzICcyMTQ3NDgzNjQ3Jwot
UEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDI2JykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjcnKSBpcyAnMycKLVBBU1MgbGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyOCcpIGlzICctMjE0NzQ4MzY0
OCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3Rlc3QyOScpIGlzICctMjE0NzQ4MzY0OCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzMCcpIGlzICctMjE0NzQ4MzY0OCcKLVBBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzMScp
IGlzICcwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgndGVzdDMyJykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzMnKSBpcyAnMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzNCcpIGlzICczMCcKLVBBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzNScp
IGlzICczMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3Rlc3QzNicpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM3JykgaXMgJzIxNDc0ODM2NDcnCi1Q
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0
MzgnKSBpcyAnMjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzOScpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQwJykgaXMgJzMy
JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dGVzdDQxJykgaXMgJy0yMTQ3NDgzNjQ4JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQyJykgaXMgJy0yMTQ3NDgzNjQ4JwotUEFTUyBs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQzJykg
aXMgJy0yMTQ3NDgzNjQ4JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndGVzdDQ0JykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDUnKSBpcyAnMCcKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0NicpIGlzICcw
JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dGVzdDQ3JykgaXMgJzMyMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0OCcpIGlzICczMjAnCi1QQVNTIGxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDknKSBpcyAnMjE0NzQ4MzY0NycK
LVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rl
c3Q1MCcpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDUxJykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTInKSBpcyAn
MjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3Rlc3Q1MycpIGlzICc1JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnbm9uZTUzJykgaXMgJzUnCi1QQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTNhJykgaXMgJzEwJwot
UEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnd3Jh
cHBlcjU0JykgaXMgJzUnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCd0ZXN0NTQnKSBpcyAnMTAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTUnKSBpcyAnMScKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1NicpIGlzICct
MjE0NzQ4MzY0OCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Rlc3QzJykpIGlzICctMjE0NzQ4MzY0OCcKK1BBU1Mgd2luZG93Lmlu
dGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0JykpIGlz
ICctMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1JykpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDYnKSkgaXMgJzAnCitQ
QVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0NycpKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q4JykpIGlzICcxMCcKK1BBU1Mgd2luZG93LmludGVy
bmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q5JykpIGlzICcx
MCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3QxMCcpKSBpcyAnMjE0NzQ4MzY0NicKK1BBU1Mgd2luZG93LmludGVybmFscy5j
b3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxMScpKSBpcyAnMjE0NzQ4
MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Rlc3QxMicpKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxMycpKSBpcyAnMjE0
NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3QxNCcpKSBpcyAnMicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxNScpKSBpcyAnLTIxNDc0ODM2
NDgnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0MTYnKSkgaXMgJy0yMTQ3NDgzNjQ4JworUEFTUyB3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDE3JykpIGlzICctMjE0
NzQ4MzY0OCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3QxOCcpKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxOScpKSBpcyAnMCcKK1BBU1Mg
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3QyMCcpKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyMScpKSBpcyAnMjAnCitQQVNTIHdpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MjInKSkgaXMgJzIw
JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdDIzJykpIGlzICcyMTQ3NDgzNjQ3JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDI0JykpIGlzICcyMTQ3NDgz
NjQ3JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdDI1JykpIGlzICcyMTQ3NDgzNjQ3JworUEFTUyB3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDI2JykpIGlzICcyMTQ3
NDgzNjQ3JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdDI3JykpIGlzICczJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDI4JykpIGlzICctMjE0NzQ4MzY0
OCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3QyOScpKSBpcyAnLTIxNDc0ODM2NDgnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MzAnKSkgaXMgJy0yMTQ3
NDgzNjQ4JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdDMxJykpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDMyJykpIGlzICcwJworUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDMzJykpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGVzdDM0JykpIGlzICczMCcKK1BBU1Mgd2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzNScpKSBpcyAnMzAn
CitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0MzYnKSkgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MzcnKSkgaXMgJzIxNDc0ODM2
NDcnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0MzgnKSkgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MzknKSkgaXMgJzIxNDc0
ODM2NDcnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0NDAnKSkgaXMgJzMyJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQxJykpIGlzICctMjE0NzQ4MzY0
OCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3Q0MicpKSBpcyAnLTIxNDc0ODM2NDgnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NDMnKSkgaXMgJy0yMTQ3
NDgzNjQ4JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdDQ0JykpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQ1JykpIGlzICcwJworUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDQ2JykpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGVzdDQ3JykpIGlzICczMjAnCitQQVNTIHdpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NDgnKSkgaXMgJzMy
MCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3Q0OScpKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5j
b3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1MCcpKSBpcyAnMjE0NzQ4
MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Rlc3Q1MScpKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1MicpKSBpcyAnMjE0
NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3Q1MycpKSBpcyAnNScKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vbmU1MycpKSBpcyAnNScKK1BBU1Mg
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3Q1M2EnKSkgaXMgJzEwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnd3JhcHBlcjU0JykpIGlzICc1JworUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDU0JykpIGlz
ICcxMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Rlc3Q1NScpKSBpcyAnMScKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVy
VmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1NicpKSBpcyAnLTIxNDc0ODM2NDgn
CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50
LXRlc3RzLmh0bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9j
b3VudGVyLWluY3JlbWVudC10ZXN0cy5odG0JKHJldmlzaW9uIDExOTgxMikKKysrIExheW91dFRl
c3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LXRlc3RzLmh0bQkod29ya2lu
ZyBjb3B5KQpAQCAtMTUsNjMgKzE1LDYzIEBACiAgICAgICAgICAgICAgICAgLyogVGhlc2UgYXJl
IHRleHQgdmVyc2lvbnMgb2YgdGhlIGNvdW50ZXItaW5jcmVtZW50LSogdGVzdHMgaW4gdGhlIENT
UyAyLjEgdGVzdCBzdWl0ZS4KICAgICAgICAgICAgICAgICAgICBTbyAndGVzdDMnIGhlcmUgaXMg
ZXF1aXZhbGVudCB0byBjb3VudGVyLWluY3JlbWVudC0wMDMuaHRtLCBhbmQgc28gb24uIAogICAg
ICAgICAgICAgICAgICAgIFdlYktpdCBkdW1wQXNUZXh0IHZlcnNpb25zIG9mIGNvdW50ZXItaW5j
cmVtZW50LTAwMSBhbmQgMDAyIGFscmVhZHkgZXhpc3QgaW4gZmFzdC9jc3MvY291bnRlcnMgKi8K
LSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzJykiLCAiJy0yMTQ3NDgzNjQ4JyIpOwotICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDQnKSIsICInLTIxNDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0NScpIiwgIicwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDYnKSIsICInMCciKTsKLSAg
ICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3Q3JykiLCAiJzAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxk
QmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0
OCcpIiwgIicxMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5JykiLCAiJzEwJyIpOwotICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndGVzdDEwJykiLCAiJzIxNDc0ODM2NDYnIik7Ci0gICAgICAgICAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0ZXN0MTEnKSIsICInMjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Qx
MicpIiwgIicyMTQ3NDgzNjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDEzJykiLCAiJzIx
NDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTQnKSIsICInMiciKTsKLSAgICAg
ICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3Rlc3QxNScpIiwgIictMjE0NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAg
ICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3Rlc3QxNicpIiwgIictMjE0NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Qx
NycpIiwgIictMjE0NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxOCcpIiwgIicw
JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDE5JykiLCAiJzAnIik7Ci0gICAgICAgICAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0ZXN0MjAnKSIsICInMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyMScpIiwgIicy
MCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyMicpIiwgIicyMCciKTsKLSAgICAgICAgICAg
ICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3Rlc3QyMycpIiwgIicyMTQ3NDgzNjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDI0JykiLCAiJzIxNDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjUnKSIsICIn
MjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyNicpIiwgIicyMTQ3NDgzNjQ3
JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI3JykiLCAiJzMnIik7Ci0gICAgICAgICAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0ZXN0MjgnKSIsICInLTIxNDc0ODM2NDgnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxk
QmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0
MjknKSIsICInLTIxNDc0ODM2NDgnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzAnKSIsICIn
LTIxNDc0ODM2NDgnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzEnKSIsICInMCciKTsKLSAg
ICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3QzMicpIiwgIicwJyIpOwotICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDMzJykiLCAiJzAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzQnKSIsICInMzAnIik7Ci0g
ICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzUnKSIsICInMzAnIik7Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0MzYnKSIsICInMjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzNycpIiwg
IicyMTQ3NDgzNjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM4JykiLCAiJzIxNDc0ODM2
NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzknKSIsICInMjE0NzQ4MzY0NyciKTsKLSAg
ICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MCcpIiwgIiczMiciKTsKLSAgICAgICAgICAgICAgICBzaG91
bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rl
c3Q0MScpIiwgIictMjE0NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MicpIiwg
IictMjE0NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MycpIiwgIictMjE0NzQ4
MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0NCcpIiwgIicwJyIpOwotICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDQ1JykiLCAiJzAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDYnKSIs
ICInMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0NycpIiwgIiczMjAnIik7Ci0gICAgICAg
ICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCd0ZXN0NDgnKSIsICInMzIwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ5
JykiLCAiJzIxNDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTAnKSIsICInMjE0
NzQ4MzY0NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1MScpIiwgIicyMTQ3NDgzNjQ3JyIp
OwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDUyJykiLCAiJzIxNDc0ODM2NDcnIik7Ci0gICAgICAg
ICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCd0ZXN0NTMnKSIsICInNSciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgi
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ25vbmU1Mycp
IiwgIic1JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDUzYScpIiwgIicxMCciKTsKLSAgICAg
ICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3dyYXBwZXI1NCcpIiwgIic1JyIpOwotICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDU0JykiLCAiJzEwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDU1JykiLCAiJzEnIik7Ci0g
ICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTYnKSIsICInLTIxNDc0ODM2NDgnIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZXN0MycpKSIsICInLTIxNDc0ODM2NDgnIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0NCcpKSIsICInLTIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0NScpKSIsICInMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2lu
ZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q2
JykpIiwgIicwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDcnKSkiLCAiJzAnIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0OCcpKSIsICInMTAnIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZXN0OScpKSIsICInMTAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0MTAnKSkiLCAiJzIxNDc0ODM2NDYnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
IndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0MTEnKSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
MTInKSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTMn
KSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTQnKSki
LCAiJzInIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTUnKSkiLCAiJy0yMTQ3NDgz
NjQ4JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDE2JykpIiwgIictMjE0NzQ4MzY0
OCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVy
VmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxNycpKSIsICInLTIxNDc0ODM2NDgn
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTgnKSkiLCAiJzAnIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTknKSkiLCAiJzAnIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0MjAnKSkiLCAiJzAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MjEn
KSkiLCAiJzIwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDIyJykpIiwgIicyMCci
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyMycpKSIsICInMjE0NzQ4MzY0NyciKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyNCcpKSIsICInMjE0NzQ4MzY0NyciKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyNScpKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyNicpKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Rlc3QyNycpKSIsICInMyciKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3QyOCcpKSIsICInLTIxNDc0ODM2NDgnIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0MjknKSkiLCAiJy0yMTQ3NDgzNjQ4JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDMwJykpIiwgIictMjE0NzQ4MzY0OCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3QzMScpKSIsICInMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVy
bmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzMicpKSIsICIn
MCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVy
VmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzMycpKSIsICInMCciKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzNCcpKSIsICInMzAnIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0MzUnKSkiLCAiJzMwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDM2JykpIiwgIicyMTQ3NDgzNjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5k
b3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDM3
JykpIiwgIicyMTQ3NDgzNjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDM4Jykp
IiwgIicyMTQ3NDgzNjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDM5JykpIiwg
IicyMTQ3NDgzNjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQwJykpIiwgIicz
MiciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVy
VmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0MScpKSIsICInLTIxNDc0ODM2NDgn
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NDInKSkiLCAiJy0yMTQ3NDgzNjQ4JyIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQzJykpIiwgIictMjE0NzQ4MzY0OCciKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0NCcpKSIsICInMCciKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3Q0NScpKSIsICInMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3Q0NicpKSIsICInMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93Lmlu
dGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0NycpKSIs
ICInMzIwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQ4JykpIiwgIiczMjAnIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NDknKSkiLCAiJzIxNDc0ODM2NDcnIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NTAnKSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NTEnKSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0NTInKSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZXN0NTMnKSkiLCAiJzUnIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdub25lNTMnKSkiLCAiJzUnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NTNhJykp
IiwgIicxMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5j
b3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dyYXBwZXI1NCcpKSIsICInNSci
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1NCcpKSIsICInMTAnIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0NTUnKSkiLCAiJzEnIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0NTYnKSkiLCAiJy0yMTQ3NDgzNjQ4JyIpOwogICAgICAgICAgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICAgIH0KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAwLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1yZXNldC0wMDAuaHRtbAko
cmV2aXNpb24gMTE5ODEyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRl
ci1yZXNldC0wMDAuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICAgICAg
ICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzcGFuTGlzdC5sZW5ndGg7ICsraSApIHsKICAgICAg
ICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz
cGFuIik7CiAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCA9Ci0g
ICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJpZCIpKTsKKyAgICAgICAg
ICAgICAgICAgICAgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRyaWJ1dGUoImlkIikpKTsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dC5sZW5ndGgpCiAgICAgICAg
ICAgICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSBuZXdTcGFuRWxlbWVu
dC5pbm5lclRleHQgKyAiLSIKICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5hcHBlbmRDaGls
ZChuZXdTcGFuRWxlbWVudCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9j
b3VudGVyLXJlc2V0LTAwMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAxLmh0bWwJKHJldmlzaW9uIDExOTgxMikKKysrIExh
eW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAxLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAKICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CiAgICAgICAgICAgLy8gVGhpcyBjYWxsIGVuc3VyZXMgdGhlIGxheW91dCBoYXBwZW5lZCBiZWZv
cmUgd2UgbW9kaWZ5IHRoZSBET00gdHJlZS4KLSAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgic3BhbjEiKTsKKyAgICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3BhbjEiKSk7
CiAgICAgICB9CiAKICAgICAgIHZhciB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3Qi
KTsKQEAgLTM0LDcgKzM0LDcgQEAKICAgICAgICAgICBzcGFuTGlzdCA9IHRlc3RFbGVtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJzcGFuIik7CiAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNw
YW5MaXN0Lmxlbmd0aDsgKytpICkgewogICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgICAgICAgbmV3U3BhbkVsZW1l
bnQuaW5uZXJUZXh0ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRyaWJ1dGUoImlkIikpOworICAgICAgICAgICAg
ICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzcGFuTGlzdC5pdGVtKGkpLmdldEF0dHJpYnV0ZSgi
aWQiKSkpOwogICAgICAgICAgICAgICBpZiAobmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0Lmxlbmd0
aCkKICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCA9IG5ld1NwYW5F
bGVtZW50LmlubmVyVGV4dCArICItIjsKICAgICAgICAgICAgICAgY29uc29sZS5hcHBlbmRDaGls
ZChuZXdTcGFuRWxlbWVudCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9j
b3VudGVyLXJlc2V0LTAwMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAyLmh0bWwJKHJldmlzaW9uIDExOTgxMikKKysrIExh
eW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAyLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBp
IDwgc3Bhbkxpc3QubGVuZ3RoOyArK2kgKSB7CiAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5F
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgICAgICAgICAgICAg
ICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPQotICAgICAgICAgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChzcGFuTGlzdC5pdGVt
KGkpLmdldEF0dHJpYnV0ZSgiaWQiKSk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNwYW5MaXN0Lml0ZW0o
aSkuZ2V0QXR0cmlidXRlKCJpZCIpKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdTcGFu
RWxlbWVudC5pbm5lclRleHQubGVuZ3RoKQogICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3Bh
bkVsZW1lbnQuaW5uZXJUZXh0ID0gbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ICsgIi0iOwogICAg
ICAgICAgICAgICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKG5ld1NwYW5FbGVtZW50KTsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3Vu
dGVycy9jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEx
OTgxMikKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMSArMSwxMSBAQAot
VGhpcyBpcyB0aGUgdGVzdCBmb3IgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQKK1RoaXMgaXMgdGhlIHRlc3QgZm9yIHdpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQKICAgIAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYmVmb3JlJykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhZnRlcicpIGlzICcwJwotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYmVmb3Jl
X2FmdGVyJykgaXMgJzAgMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3R3aWNlJykgaXMgJzAgMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3BvaW50JykgaXMgJzAuMScKLVBBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3by1wb2ludHMn
KSBpcyAnMC4xLjInCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCdncmVlaycpIGlzICcwLs6xLs6yJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUtZ3JlZWtzJykgaXMgJzAuzrEuzrIg
MC7OsS7OsiAwLs6xLs6yJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYmVmb3JlJykpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWZ0ZXInKSkgaXMgJzAn
CitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdiZWZvcmVfYWZ0ZXInKSkgaXMgJzAgMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R3aWNlJykpIGlzICcwIDAnCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdw
b2ludCcpKSBpcyAnMC4xJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndHdvLXBvaW50cycpKSBpcyAnMC4xLjInCitQQVNTIHdpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdncmVlaycp
KSBpcyAnMC7OsS7OsicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RocmVlLWdyZWVrcycpKSBpcyAnMC7OsS7OsiAwLs6xLs6yIDAu
zrEuzrInCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y291bnRlcnMvY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQuaHRtbAkocmV2aXNpb24gMTE5ODEy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQsNyArMTQsNyBAQAogICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFk
PgogPGJvZHk+Ci0gICAgPGRpdj5UaGlzIGlzIHRoZSB0ZXN0IGZvciBsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZDwvZGl2PgorICAgIDxkaXY+VGhpcyBpcyB0
aGUgdGVzdCBmb3Igd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZDwv
ZGl2PgogCiAgICAgPGRpdiBjbGFzcz0icmVzZXQiPjxzcGFuIGlkPSJiZWZvcmUiIGNsYXNzPSJz
aG93LWJlZm9yZSI+PC9zcGFuPjwvZGl2PgogICAgIDxkaXYgY2xhc3M9InJlc2V0Ij48c3BhbiBp
ZD0iYWZ0ZXIiIGNsYXNzPSJzaG93LWFmdGVyIj48L3NwYW4+PC9kaXY+CkBAIC0zNSwxNCArMzUs
MTQgQEAKICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogCi0gICAgICAgICAgICBz
aG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J2JlZm9yZScpIiwgIicwJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhZnRlcicpIiwgIicwJyIpOwotICAg
ICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCdiZWZvcmVfYWZ0ZXInKSIsICInMCAwJyIpOwotICAgICAgICAgICAgc2hvdWxk
QmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d2lj
ZScpIiwgIicwIDAnIik7Ci0gICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3BvaW50JykiLCAiJzAuMSciKTsKLSAgICAg
ICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndHdvLXBvaW50cycpIiwgIicwLjEuMiciKTsKLSAgICAgICAgICAgIHNob3VsZEJl
KCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZ3JlZWsn
KSIsICInMC5cdTAzYjEuXHUwM2IyJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJlZS1ncmVla3MnKSIs
ICInMC5cdTAzYjEuXHUwM2IyIDAuXHUwM2IxLlx1MDNiMiAwLlx1MDNiMS5cdTAzYjInIik7Cisg
ICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2JlZm9yZScpKSIsICInMCciKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYWZ0ZXInKSkiLCAiJzAnIik7CisgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVy
bmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JlZm9yZV9hZnRlcicp
KSIsICInMCAwJyIpOworICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0d2ljZScpKSIsICInMCAwJyIpOwor
ICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdwb2ludCcpKSIsICInMC4xJyIpOworICAgICAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0d28tcG9pbnRzJykpIiwgIicwLjEuMiciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3Jl
ZWsnKSkiLCAiJzAuXHUwM2IxLlx1MDNiMiciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5k
b3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhyZWUt
Z3JlZWtzJykpIiwgIicwLlx1MDNiMS5cdTAzYjIgMC5cdTAzYjEuXHUwM2IyIDAuXHUwM2IxLlx1
MDNiMiciKTsKICAgICAgICAgfQogICAgIDwvc2NyaXB0PgogPC9ib2R5PgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvZGVlcC1iZWZvcmUtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2RlZXAtYmVmb3JlLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTE5ODEyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMv
ZGVlcC1iZWZvcmUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAot
UEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZGl2
MScpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZGl2MScpKSBpcyAnMCcKIAogVEVTVCBDT01QTEVURQogCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9kZWVwLWJlZm9yZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2RlZXAtYmVmb3JlLmh0bWwJKHJldmlz
aW9uIDExOTgxMikKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2RlZXAtYmVmb3Jl
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICAgewogICAgICAgaWYgKCF3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgcmV0dXJuOwotICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdk
aXYxJykiLCAiJzAnIik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVy
VmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdjEnKSkiLCAiJzAnIik7CiAKICAgICAg
IGRlYnVnKCcnKTsKICAgICAgIGRlYnVnKCdURVNUIENPTVBMRVRFJyk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9pbnZhbGlkYXRlLWNhY2hlZC1jb3VudGVyLW5vZGUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9pbnZhbGlkYXRl
LWNhY2hlZC1jb3VudGVyLW5vZGUuaHRtbAkocmV2aXNpb24gMTE5ODEyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY291bnRlcnMvaW52YWxpZGF0ZS1jYWNoZWQtY291bnRlci1ub2RlLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAKICAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwogICAgICAgICAgICAgdmFyIHRlc3RSZXN1bHQ7Ci0gICAgICAgICAgICB2YXIg
Y291bnRlclZhbHVlID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoImtlZXAtbWUiKTsKKyAgICAgICAgICAgIHZhciBjb3VudGVyVmFsdWUgPSB3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgia2VlcC1tZSIp
KTsKICAgICAgICAgICAgIGlmIChjb3VudGVyVmFsdWUgPT0gIjEiKQogICAgICAgICAgICAgICAg
IHRlc3RSZXN1bHQgPSAiUEFTUyI7CiAgICAgICAgICAgICBlbHNlCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2Nzcy9jb3VudGVycy9uZXN0aW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY291bnRlcnMvbmVzdGluZy5odG1sCShyZXZpc2lvbiAxMTk4MTIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9uZXN0aW5nLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDcgQEAKICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc3Bhbkxp
c3QubGVuZ3RoOyArK2kgKSB7CiAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgICAgICAgICAgICAgICAgICBuZXdT
cGFuRWxlbWVudC5pbm5lclRleHQgPQotICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChzcGFuTGlzdC5pdGVtKGkpLmdldEF0
dHJpYnV0ZSgiaWQiKSk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0
cmlidXRlKCJpZCIpKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdTcGFuRWxlbWVudC5p
bm5lclRleHQubGVuZ3RoKQogICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQu
aW5uZXJUZXh0ID0gbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ICsgIi0gIjsKICAgICAgICAgICAg
ICAgICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChuZXdTcGFuRWxlbWVudCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146804</attachid>
            <date>2012-06-11 01:00:02 -0700</date>
            <delta_ts>2012-06-11 04:21:08 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-84406-20120611132917.patch</filename>
            <type>text/plain</type>
            <size>86786</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDExOTk1
OCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA2
LTExICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAg
ICAgIFtEUlRdIExUQzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkgY291bGQgYmUgbW92
ZWQgdG8gSW50ZXJuYWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODQ0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBFeHBvcnRpbmcgSW50ZXJuYWxzOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50IHN5bWJv
bHMgZm9yIHRoZSBHdGsgYnVpbGQuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJv
bHMuZmlsdGVyOgorCiAyMDEyLTA2LTEwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW1vdmUgdW5uZWVkZWQgY2FsbFJlbW92ZWRMYXN0UmVmIGZ1bmN0aW9uIGZy
b20gVHJlZVNoYXJlZCByZWZhY3RvcmluZwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE5OTU4
KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MjIgQEAKKzIwMTItMDYtMTEgIEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9s
YS5jb20+CisKKyAgICAgICAgW0RSVF0gTFRDOjogY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
KSBjb3VsZCBiZSBtb3ZlZCB0byBJbnRlcm5hbHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
IGZyb20gTGF5b3V0VGVzdENvdHJvbGxlciB0byBJbnRlcm5hbHMgYW5kCisgICAgICAgIHJlbW92
ZSB0aGUgb2xkIHBsYXRmb3JtIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBhcyBpdCBleGNsdXNp
dmVseSB0ZXN0cyBXZWJDb3JlIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgQ292ZXJlZCBieSBl
eGlzdGluZyB0ZXN0IGNhc2VzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpjb3VudGVyVmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKEludGVybmFs
cyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEyLTA2LTExICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBFeHRyYWN0
IEN1cnNvck1hcCBmcm9tIFdpZGdldEVmbC5jcHAuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCShyZXZpc2lvbiAxMTk5NTcpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNTgsNiArMTA1OCwxNCBAQCB2b2lk
IEludGVybmFsczo6YWxsb3dSb3VuZGluZ0hhY2tzKCkgY29uCiAgICAgVGV4dFJ1bjo6c2V0QWxs
b3dzUm91bmRpbmdIYWNrcyh0cnVlKTsKIH0KIAorU3RyaW5nIEludGVybmFsczo6Y291bnRlclZh
bHVlKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFlbGVtZW50KQorICAgICAgICByZXR1
cm4gU3RyaW5nKCk7CisKKyAgICByZXR1cm4gY291bnRlclZhbHVlRm9yRWxlbWVudChlbGVtZW50
KTsKK30KKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIHZvaWQgSW50ZXJuYWxzOjp3ZWJr
aXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEVsZW1l
bnQqIGVsZW1lbnQpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlz
aW9uIDExOTk1NykKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTE3Niw2ICsxNzYsOCBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPFN0cmluZz4g
Y29uc29sZU1lc3NhZ2VBcmd1bWVudENvdW50cyhEb2N1bWVudCopIGNvbnN0OwogI2VuZGlmCiAK
KyAgICBTdHJpbmcgY291bnRlclZhbHVlKEVsZW1lbnQqKTsKKwogI2lmIEVOQUJMRShGVUxMU0NS
RUVOX0FQSSkKICAgICB2b2lkIHdlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KERv
Y3VtZW50KiwgRWxlbWVudCopOwogICAgIHZvaWQgd2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9y
RWxlbWVudChEb2N1bWVudCosIEVsZW1lbnQqKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwJKHJldmlzaW9uIDExOTk1NykKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTUxLDYgKzE1MSw4IEBAIG1vZHVsZSB3
aW5kb3cgewogICAgICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25nIG51
bWJlck9mTGl2ZURvY3VtZW50cygpOwogICAgICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSBz
ZXF1ZW5jZTxTdHJpbmc+IGNvbnNvbGVNZXNzYWdlQXJndW1lbnRDb3VudHMoaW4gRG9jdW1lbnQg
ZG9jdW1lbnQpOwogCisgICAgICAgIERPTVN0cmluZyBjb3VudGVyVmFsdWUoaW4gRWxlbWVudCBl
bGVtZW50KTsKKwogI2lmIGRlZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAmJiBFTkFCTEVf
RlVMTFNDUkVFTl9BUEkKICAgICAgICAgdm9pZCB3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9y
RWxlbWVudChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gRWxlbWVudCBlbGVtZW50KTsKICAgICAg
ICAgdm9pZCB3ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGluIERvY3VtZW50IGRv
Y3VtZW50LCBpbiBFbGVtZW50IGVsZW1lbnQpOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTE5
OTU4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTItMDYtMTEgIEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rv
cm9sYS5jb20+CisKKyAgICAgICAgW0RSVF0gTFRDOjogY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoKSBjb3VsZCBiZSBtb3ZlZCB0byBJbnRlcm5hbHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9ydGluZyBJbnRlcm5hbHM6OmNvdW50ZXJWYWx1
ZSBzeW1ib2xzIGZvciB0aGUgd2luIGJ1aWxkLgorCisgICAgICAgICogd2luL1dlYktpdDIuZGVm
OgorCiAyMDEyLTA2LTEwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgdW5uZWVkZWQgY2FsbFJlbW92ZWRMYXN0UmVmIGZ1bmN0aW9uIGZyb20gVHJlZVNo
YXJlZCByZWZhY3RvcmluZwpJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgkocmV2aXNpb24gMTE5
OTU3KQorKysgU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTcsNiArMTE3LDcgQEAgRVhQT1JUUwogICAgICAgICA/Y2FsbE9uTWFpblRocmVhZEBXVEZA
QFlBWFA2QVhQQVhAWjBAWgogICAgICAgICA/Y29uc29sZU1lc3NhZ2VBcmd1bWVudENvdW50c0BJ
bnNwZWN0b3JDb25zb2xlQWdlbnRAV2ViQ29yZUBAUUFFP0FWPyRWZWN0b3JASSQwQUBAV1RGQEBY
WgogICAgICAgICA/Y291bnRlclZhbHVlQEluc3BlY3RvckNvdW50ZXJzQFdlYkNvcmVAQFNBSFc0
Q291bnRlclR5cGVAMTJAQFoKKyAgICAgICAgP2NvdW50ZXJWYWx1ZUBJbnRlcm5hbHNAV2ViQ29y
ZUBAUUFFP0FWU3RyaW5nQFdURkBlQFBBVkVsZW1lbnRAMkBAWgogICAgICAgICA/Y3JlYXRlVGhy
ZWFkQFdURkBAWUFJUDZBUEFYUEFYQFowUEJEQFoKICAgICAgICAgP2NyZWF0ZVRocmVhZEBXVEZA
QFlBSVA2QVhQQVhAWjBQQkRAWgogICAgICAgICA/Y3VycmVudFRocmVhZEBXVEZAQFlBSVhaCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTE5OTU4KQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBA
QAorMjAxMi0wNi0xMSAgS2F1c3R1YmggQXRyYXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNv
bT4KKworICAgICAgICBbRFJUXSBMVEM6OiBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgpIGNv
dWxkIGJlIG1vdmVkIHRvIEludGVybmFscy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg0NDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQgZnJv
bSBMYXlvdXRUZXN0Q290cm9sbGVyIHRvIEludGVybmFscyBhbmQKKyAgICAgICAgcmVtb3ZlIHRo
ZSBvbGQgcGxhdGZvcm0gc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIGFzIGl0IGV4Y2x1c2l2ZWx5
IHRlc3RzIFdlYkNvcmUgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHB1YmxpYy9XZWJGcmFt
ZS5oOgorICAgICAgICAoV2ViRnJhbWUpOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmg6CisgICAg
ICAgIChXZWJGcmFtZUltcGwpOgorCiAyMDEyLTA2LTA5ICBFdWdlbmUgS2x5dWNobmlrb3YgIDxl
dXN0YXMuYnVnQGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgbWVzc2Fn
ZSBsb29wIGluc3RydW1lbnRhdGlvbiB0byBwdWJsaWMgQVBJIGFuZCB0aW1lbGluZSBhZ2VudApJ
bmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCShyZXZpc2lvbiAx
MTk5NTcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MTcsMTAgKzYxNyw2IEBAIHB1YmxpYzoKICAgICAvLyB0byBzdXBwb3J0
IGxheW91dCB0ZXN0cy4KICAgICB2aXJ0dWFsIFdlYlN0cmluZyByZW5kZXJUcmVlQXNUZXh0KFJl
bmRlckFzVGV4dENvbnRyb2xzIHRvU2hvdyA9IFJlbmRlckFzVGV4dE5vcm1hbCkgY29uc3QgPSAw
OwogCi0gICAgLy8gUmV0dXJucyB0aGUgY291bnRlciB2YWx1ZSBmb3IgdGhlIHNwZWNpZmllZCBl
bGVtZW50LiAgVGhpcyBtZXRob2QgaXMKLSAgICAvLyB1c2VkIHRvIHN1cHBvcnQgbGF5b3V0IHRl
c3RzLgotICAgIHZpcnR1YWwgV2ViU3RyaW5nIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGNv
bnN0IFdlYlN0cmluZyYgaWQpIGNvbnN0ID0gMDsKLQogICAgIC8vIENhbGxzIG1hcmtlclRleHRG
b3JMaXN0SXRlbSgpIGRlZmluZWQgaW4gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4
dC5oLgogICAgIHZpcnR1YWwgV2ViU3RyaW5nIG1hcmtlclRleHRGb3JMaXN0SXRlbShjb25zdCBX
ZWJFbGVtZW50JikgY29uc3QgPSAwOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkZyYW1lSW1wbC5jcHAJKHJldmlzaW9uIDExOTk1NykKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5NjEsMTgg
KzE5NjEsNiBAQCBXZWJTdHJpbmcgV2ViRnJhbWVJbXBsOjpyZW5kZXJUcmVlQXNUZXh0CiAgICAg
cmV0dXJuIGV4dGVybmFsUmVwcmVzZW50YXRpb24obV9mcmFtZSwgYmVoYXZpb3IpOwogfQogCi1X
ZWJTdHJpbmcgV2ViRnJhbWVJbXBsOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChjb25zdCBX
ZWJTdHJpbmcmIGlkKSBjb25zdAotewotICAgIGlmICghbV9mcmFtZSkKLSAgICAgICAgcmV0dXJu
IFdlYlN0cmluZygpOwotCi0gICAgRWxlbWVudCogZWxlbWVudCA9IG1fZnJhbWUtPmRvY3VtZW50
KCktPmdldEVsZW1lbnRCeUlkKGlkKTsKLSAgICBpZiAoIWVsZW1lbnQpCi0gICAgICAgIHJldHVy
biBXZWJTdHJpbmcoKTsKLQotICAgIHJldHVybiBjb3VudGVyVmFsdWVGb3JFbGVtZW50KGVsZW1l
bnQpOwotfQotCiBXZWJTdHJpbmcgV2ViRnJhbWVJbXBsOjptYXJrZXJUZXh0Rm9yTGlzdEl0ZW0o
Y29uc3QgV2ViRWxlbWVudCYgd2ViRWxlbWVudCkgY29uc3QKIHsKICAgICByZXR1cm4gV2ViQ29y
ZTo6bWFya2VyVGV4dEZvckxpc3RJdGVtKGNvbnN0X2Nhc3Q8RWxlbWVudCo+KHdlYkVsZW1lbnQu
Y29uc3RVbndyYXA8RWxlbWVudD4oKSkpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmgJKHJldmlzaW9uIDExOTk1NykKKysrIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjIsNyArMjIyLDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGNvbnRlbnRBc1RleHQoc2l6ZV90IG1h
eENoYXJzKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBjb250ZW50QXNNYXJrdXAoKSBj
b25zdDsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyByZW5kZXJUcmVlQXNUZXh0KFJlbmRlckFzVGV4
dENvbnRyb2xzIHRvU2hvdyA9IFJlbmRlckFzVGV4dE5vcm1hbCkgY29uc3Q7Ci0gICAgdmlydHVh
bCBXZWJTdHJpbmcgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoY29uc3QgV2ViU3RyaW5nJiBp
ZCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgbWFya2VyVGV4dEZvckxpc3RJdGVtKGNv
bnN0IFdlYkVsZW1lbnQmKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBwYWdlTnVtYmVyRm9yRWxl
bWVudEJ5SWQoY29uc3QgV2ViU3RyaW5nJiBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmxvYXQgcGFnZVdpZHRoSW5QaXhlbHMsCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxMTk5NTgpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNi0xMSAgS2F1c3R1YmggQXRyYXdh
bGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBbRFJUXSBMVEM6OiBjb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgpIGNvdWxkIGJlIG1vdmVkIHRvIEludGVybmFscy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NDA2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQgZnJvbSBMYXlvdXRUZXN0Q290cm9sbGVyIHRvIEludGVy
bmFscyBhbmQKKyAgICAgICAgcmVtb3ZlIHRoZSBvbGQgcGxhdGZvcm0gc3BlY2lmaWMgaW1wbGVt
ZW50YXRpb25zIGFzIGl0IGV4Y2x1c2l2ZWx5IHRlc3RzIFdlYkNvcmUgZnVuY3Rpb25hbGl0eS4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHA6
CisKIDIwMTItMDYtMDUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZW1vdmUgc3VwcG9ydCBmb3IgdGFyZ2V0LWRlbnNpdHlkcGkgaW4gdGhlIHZpZXdwb3J0IG1l
dGEgdGFnCkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAJKHJldmlzaW9uIDExOTk1NykK
KysrIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk3LDIxICs5Nyw2IEBAIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpjbGVhck9wZW4KICAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5zZXRP
cGVuZXIoMCk7CiB9CiAKLVN0cmluZyBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmNvdW50ZXJW
YWx1ZUJ5RWxlbWVudElkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgY2hhciog
ZWxlbWVudElkKQotewotICAgIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IEVXS1ByaXZhdGU6OmNv
cmVGcmFtZShld2tGcmFtZSk7Ci0KLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7Ci0KLSAgICBXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50ID0gZnJhbWUtPmRvY3VtZW50
KCktPmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7Ci0KLSAgICBpZiAoIWVsZW1lbnQpCi0gICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIHJldHVybiBXZWJDb3JlOjpjb3VudGVyVmFsdWVG
b3JFbGVtZW50KGVsZW1lbnQpOwotfQotCiBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6
ZWxlbWVudERvZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50V2l0aElkKGNvbnN0IEV2YXNfT2JqZWN0
KiBld2tGcmFtZSwgY29uc3QgU3RyaW5nJiBlbGVtZW50SWQpCiB7CiAgICAgV2ViQ29yZTo6RnJh
bWUqIGZyYW1lID0gRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKGV3a0ZyYW1lKTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cJKHJldmlzaW9uIDExOTk1OCkKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA2LTExICBLYXVzdHViaCBB
dHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFtEUlRdIExUQzo6
IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkgY291bGQgYmUgbW92ZWQgdG8gSW50ZXJuYWxz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0MDYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRo
ZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCBmcm9tIExheW91dFRlc3RDb3Ryb2xsZXIgdG8g
SW50ZXJuYWxzIGFuZAorICAgICAgICByZW1vdmUgdGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZpYyBp
bXBsZW1lbnRhdGlvbnMgYXMgaXQgZXhjbHVzaXZlbHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlvbmFs
aXR5LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
aDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6CisKIDIwMTItMDYtMDcgIFNp
bW9uIFBlbmEgIDxzcGVuYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIGRldmljZVNjYWxl
RmFjdG9yIHNldHRpbmcgaXMgbm90IGhvbm9yZWQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmNwcAkocmV2aXNpb24gMTE5OTU3KQorKysgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg5LDI4
ICsxODksNiBAQCBDU3RyaW5nIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZHVtcFJlCiB9CiAK
IC8qKgotICogY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQ6Ci0gKiBAZnJhbWU6IGEgI1dlYktp
dFdlYkZyYW1lCi0gKiBAaWQ6IGFuIGVsZW1lbnQgSUQgc3RyaW5nCi0gKgotICogUmV0dXJuIHZh
bHVlOiBUaGUgY291bnRlciB2YWx1ZSBvZiBlbGVtZW50IEBpZCBpbiBAZnJhbWUKLSAqLwotQ1N0
cmluZyBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgY2hhciogaWQpCi17Ci0gICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIENTdHJpbmcoKSk7Ci0KLSAg
ICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0g
ICAgICAgIHJldHVybiBDU3RyaW5nKCk7Ci0KLSAgICBFbGVtZW50KiBjb3JlRWxlbWVudCA9IGNv
cmVGcmFtZS0+ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoQXRvbWljU3RyaW5nKGlkKSk7Ci0g
ICAgaWYgKCFjb3JlRWxlbWVudCkKLSAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKLQotICAgIHJl
dHVybiBjb3VudGVyVmFsdWVGb3JFbGVtZW50KGNvcmVFbGVtZW50KS51dGY4KCk7Ci19Ci0KLS8q
KgogICogbnVtYmVyRm9yRWxlbWVudEJ5SWQKICAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUK
ICAqIEBpZDogYW4gZWxlbWVudCBJRCBzdHJpbmcKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5o
CShyZXZpc2lvbiAxMTk5NTcpCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNiBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIEdTTGlzdCogZ2V0RnJhbWVDaGlsZHJlbihXZWJLaXRXZWJG
cmFtZSopOwogICAgIHN0YXRpYyBXVEY6OkNTdHJpbmcgZ2V0SW5uZXJUZXh0KFdlYktpdFdlYkZy
YW1lKik7CiAgICAgc3RhdGljIFdURjo6Q1N0cmluZyBkdW1wUmVuZGVyVHJlZShXZWJLaXRXZWJG
cmFtZSopOwotICAgIHN0YXRpYyBXVEY6OkNTdHJpbmcgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoV2ViS2l0V2ViRnJhbWUqLCBjb25zdCBjaGFyKiBpZCk7CiAgICAgc3RhdGljIGludCBwYWdl
TnVtYmVyRm9yRWxlbWVudEJ5SWQoV2ViS2l0V2ViRnJhbWUqLCBjb25zdCBjaGFyKiBpZCwgZmxv
YXQgcGFnZVdpZHRoLCBmbG9hdCBwYWdlSGVpZ2h0KTsKICAgICBzdGF0aWMgaW50IG51bWJlck9m
UGFnZXNGb3JGcmFtZShXZWJLaXRXZWJGcmFtZSosIGZsb2F0IHBhZ2VXaWR0aCwgZmxvYXQgcGFn
ZUhlaWdodCk7CiAgICAgc3RhdGljIFdURjo6Q1N0cmluZyBwYWdlUHJvcGVydHkoV2ViS2l0V2Vi
RnJhbWUqLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIGludCBwYWdlTnVtYmVyKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTk5NTgpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA2LTExICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFtEUlRdIExU
Qzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkgY291bGQgYmUgbW92ZWQgdG8gSW50ZXJu
YWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0
MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3Zl
IHRoZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCBmcm9tIExheW91dFRlc3RDb3Ryb2xsZXIg
dG8gSW50ZXJuYWxzIGFuZAorICAgICAgICByZW1vdmUgdGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZp
YyBpbXBsZW1lbnRhdGlvbnMgYXMgaXQgZXhjbHVzaXZlbHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlv
bmFsaXR5LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
Lmg6CisKIDIwMTItMDYtMDggIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCBmaWxlIHBlcm1pc3Npb25zLgpJbmRleDog
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5jcHAJKHJldmlzaW9uIDExOTk1NykKKysrIFNvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MDUsMTcgKzQwNSw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6Omdh
cmJhZ2VDb2wKICNlbmRpZgogfQogCi0vLyBSZXR1cm5zIHRoZSB2YWx1ZSBvZiBjb3VudGVyIGlu
IHRoZSBlbGVtZW50IHNwZWNpZmllZCBieSBcYSBpZC4KLVFTdHJpbmcgRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQ6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKFFXZWJGcmFtZSogZnJhbWUsIGNv
bnN0IFFTdHJpbmcmIGlkKQotewotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBRV2ViRnJhbWVQcml2
YXRlOjpjb3JlKGZyYW1lKTsKLSAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gY29yZUZyYW1l
LT5kb2N1bWVudCgpKSB7Ci0gICAgICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gZG9jdW1lbnQt
PmdldEVsZW1lbnRCeUlkKGlkKSkKLSAgICAgICAgICAgIHJldHVybiBXZWJDb3JlOjpjb3VudGVy
VmFsdWVGb3JFbGVtZW50KGVsZW1lbnQpOwotICAgIH0KLSAgICByZXR1cm4gUVN0cmluZygpOwot
fQotCiBpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJ
ZChRV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBRU3RyaW5nJiBpZCwgZmxvYXQgd2lkdGgsIGZsb2F0
IGhlaWdodCkKIHsKICAgICBGcmFtZSogY29yZUZyYW1lID0gUVdlYkZyYW1lUHJpdmF0ZTo6Y29y
ZShmcmFtZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCShyZXZpc2lvbiAxMTk5NTcpCisrKyBT
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEzNSw3ICsxMzUsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZv
aWQgd2ViSW5zcGVjdG9yQ2xvc2UoUVdlYlBhZ2UqIHBhZ2UpOwogCiAgICAgc3RhdGljIFFTdHJp
bmcgd2ViUGFnZUdyb3VwTmFtZShRV2ViUGFnZSAqcGFnZSk7Ci0gICAgc3RhdGljIFFTdHJpbmcg
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoUVdlYkZyYW1lKiBmcmFtZSwgY29uc3QgUVN0cmlu
ZyYgaWQpOwogICAgIHN0YXRpYyB2b2lkIHdlYlBhZ2VTZXRHcm91cE5hbWUoUVdlYlBhZ2UqIHBh
Z2UsIGNvbnN0IFFTdHJpbmcmIGdyb3VwTmFtZSk7CiAgICAgc3RhdGljIHZvaWQgY2xlYXJGcmFt
ZU5hbWUoUVdlYkZyYW1lKiBmcmFtZSk7CiAgICAgc3RhdGljIHZvaWQgb3ZlcndyaXRlUGx1Z2lu
RGlyZWN0b3JpZXMoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDExOTk1OCkKKysr
IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3
IEBACisyMDEyLTA2LTExICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEu
Y29tPgorCisgICAgICAgIFtEUlRdIExUQzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkg
Y291bGQgYmUgbW92ZWQgdG8gSW50ZXJuYWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRoZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCBm
cm9tIExheW91dFRlc3RDb3Ryb2xsZXIgdG8gSW50ZXJuYWxzIGFuZAorICAgICAgICByZW1vdmUg
dGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgYXMgaXQgZXhjbHVzaXZl
bHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogSW50ZXJmYWNlcy9J
V2ViRnJhbWVQcml2YXRlLmlkbDoKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgICog
V2ViRnJhbWUuaDoKKwogMjAxMi0wNi0xMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJv
dEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjExOTk1NS4K
SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAJKHJldmlzaW9uIDExOTk1NykKKysrIFNvdXJjZS9X
ZWJLaXQvd2luL1dlYkZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODg4LDI1ICs4ODgsNiBA
QCBIUkVTVUxUIFdlYkZyYW1lOjpyZW5kZXJUcmVlQXNFeHRlcm5hbFJlCiAgICAgcmV0dXJuIFNf
T0s7CiB9CiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRnJhbWU6OmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKAotICAgIC8qIFtpbl0gKi8gQlNUUiBpZCwgLyogW3JldHZhbF1bb3V0
XSAqLyBCU1RSICpyZXN1bHQpCi17Ci0gICAgaWYgKCFyZXN1bHQpCi0gICAgICAgIHJldHVybiBF
X1BPSU5URVI7Ci0KLSAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZSh0aGlzKTsKLSAgICBpZiAo
IWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuIEVfRkFJTDsKLQotICAgIFN0cmluZyBjb3JlSWQg
PSBTdHJpbmcoaWQsIFN5c1N0cmluZ0xlbihpZCkpOwotCi0gICAgRWxlbWVudCogZWxlbWVudCA9
IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoY29yZUlkKTsKLSAgICBpZiAo
IWVsZW1lbnQpCi0gICAgICAgIHJldHVybiBFX0ZBSUw7Ci0gICAgKnJlc3VsdCA9IEJTdHJpbmco
Y291bnRlclZhbHVlRm9yRWxlbWVudChlbGVtZW50KSkucmVsZWFzZSgpOwotICAgIHJldHVybiBT
X09LOwotfQotCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkZyYW1lOjpwYWdlTnVtYmVy
Rm9yRWxlbWVudEJ5SWQoCiAgICAgLyogW2luXSAqLyBCU1RSIGlkLAogICAgIC8qIFtpbl0gKi8g
ZmxvYXQgcGFnZVdpZHRoSW5QaXhlbHMsCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFt
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmgJKHJldmlzaW9u
IDExOTk1NykKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmgJKHdvcmtpbmcgY29weSkK
QEAgLTE2MywxMCArMTYzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSB1bnVzZWQxKEJTVFIqKSB7IHJldHVybiBFX05PVElNUEw7IH0KICAgICB2aXJ0
dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVuZGVyVHJlZUFzRXh0ZXJuYWxSZXByZXNl
bnRhdGlvbihCT09MIGZvclByaW50aW5nLCBCU1RSICpyZXN1bHQpOwogCi0gICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKAotICAg
ICAgICAvKiBbaW5dICovIEJTVFIgaWQsCi0gICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gQlNU
UiAqcmVzdWx0KTsKLQogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBwYWdl
TnVtYmVyRm9yRWxlbWVudEJ5SWQoCiAgICAgICAgIC8qIFtpbl0gKi8gQlNUUiBpZCwKICAgICAg
ICAgLyogW2luXSAqLyBmbG9hdCBwYWdlV2lkdGhJblBpeGVscywKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvd2luL0ludGVyZmFjZXMvSVdlYkZyYW1lUHJpdmF0ZS5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViRnJhbWVQcml2YXRlLmlkbAkocmV2aXNpb24g
MTE5OTU3KQorKysgU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViRnJhbWVQcml2YXRl
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtOTYsOCArOTYsNiBAQCBpbnRlcmZhY2UgSVdlYkZyYW1l
UHJpdmF0ZSA6IElVbmtub3duCiAKICAgICBbbG9jYWxdIEpTR2xvYmFsQ29udGV4dFJlZiBnbG9i
YWxDb250ZXh0Rm9yU2NyaXB0V29ybGQoW2luXSBJV2ViU2NyaXB0V29ybGQqKTsKIAotICAgIEhS
RVNVTFQgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoW2luXSBCU1RSIGlkLCBbb3V0LCByZXR2
YWxdIEJTVFIqIHJlc3VsdCk7Ci0KICAgICBIUkVTVUxUIHZpc2libGVDb250ZW50UmVjdChbb3V0
LCByZXR2YWxdIFJFQ1QqKTsKIAogICAgIEhSRVNVTFQgcGFnZU51bWJlckZvckVsZW1lbnRCeUlk
KFtpbl0gQlNUUiBpZCwgW2luXSBmbG9hdCBwYWdlV2lkdGhJblBpeGVscywgW2luXSBmbG9hdCBw
YWdlSGVpZ2h0SW5QaXhlbHMsIFtvdXQsIHJldHZhbF0gaW50KiBwYWdlTnVtYmVyKTsKSW5kZXg6
IFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2F1
dG90b29scy9zeW1ib2xzLmZpbHRlcgkocmV2aXNpb24gMTE5OTU3KQorKysgU291cmNlL2F1dG90
b29scy9zeW1ib2xzLmZpbHRlcgkod29ya2luZyBjb3B5KQpAQCAtMTA2LDYgKzEwNiw3IEBAIF9a
Tks3V2ViQ29yZThEb2N1bWVudDhzZXR0aW5nc0V2OwogX1pOSzdXZWJDb3JlOERvY3VtZW50NHZp
ZXdFdjsKIF9aTks3V2ViQ29yZTVSYW5nZTR0ZXh0RXY7CiBfWk5LN1dlYkNvcmU5VHJlZVNjb3Bl
MTRnZXRFbGVtZW50QnlJZEVSS04zV1RGMTJBdG9taWNTdHJpbmdFOworX1pON1dlYkNvcmUyMmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRFUE5TXzdFbGVtZW50RTsKIF9aTks3V2ViQ29yZTE0RG9jdW1l
bnRNYXJrZXIxMWRlc2NyaXB0aW9uRXY7CiBfWk43V2ViQ29yZThEb2N1bWVudDE2aXNQYWdlQm94
VmlzaWJsZUVpOwogX1pON1dlYkNvcmUxOUFuaW1hdGlvbkNvbnRyb2xsZXIxN3N1c3BlbmRBbmlt
YXRpb25zRXY7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMTk5NTgpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwzNyBAQAorMjAxMi0wNi0xMSAgS2F1c3R1YmggQXRyYXdhbGthciAgPGth
dXN0dWJoQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBbRFJUXSBMVEM6OiBjb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgpIGNvdWxkIGJlIG1vdmVkIHRvIEludGVybmFscy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NDA2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQgZnJvbSBMYXlvdXRUZXN0Q290cm9sbGVyIHRvIEludGVybmFscyBhbmQK
KyAgICAgICAgcmVtb3ZlIHRoZSBvbGQgcGxhdGZvcm0gc3BlY2lmaWMgaW1wbGVtZW50YXRpb25z
IGFzIGl0IGV4Y2x1c2l2ZWx5IHRlc3RzIFdlYkNvcmUgZnVuY3Rpb25hbGl0eS4KKworICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExh
eW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29u
dHJvbGxlckJsYWNrQmVycnkuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVy
OjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0UE9TSVhMb2NhbGUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91
dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcDoKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6Cisg
ICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
d2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RDb250cm9sbGVyLmlkbDoKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdUUik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENv
bnRyb2xsZXIpOgorCiAyMDEyLTA2LTEwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIEV4cG9zZSBsYXlvdXRUZXN0Q29udHJvbGxlciBhcyB0ZXN0UnVubmVyCklu
ZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCShy
ZXZpc2lvbiAxMTk5NTcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2MiwyMiArNjYyLDYgQEAgc3RhdGljIEpTVmFs
dWVSZWYgZmluZFN0cmluZ0NhbGxiYWNrKEpTQwogICAgIHJldHVybiBKU1ZhbHVlTWFrZUJvb2xl
YW4oY29udGV4dCwgY29udHJvbGxlci0+ZmluZFN0cmluZyhjb250ZXh0LCB0YXJnZXQuZ2V0KCks
IG9wdGlvbnMpKTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYgY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgaWYgKGFy
Z3VtZW50Q291bnQgPCAxKQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7Ci0KLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gZWxlbWVudElkKEFkb3B0LCBK
U1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7Ci0g
ICAgaWYgKCpleGNlcHRpb24pCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KTsKLQotICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGlj
X2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVj
dCkpOwotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWUoY29udHJvbGxl
ci0+Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoZWxlbWVudElkLmdldCgpKSk7Ci0gICAgaWYg
KCFjb3VudGVyVmFsdWUuZ2V0KCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgY291bnRl
clZhbHVlLmdldCgpKTsKLX0KLQogc3RhdGljIEpTVmFsdWVSZWYgZ29CYWNrQ2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlz
T2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNb
XSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIExheW91dFRlc3RDb250cm9sbGVyKiBj
b250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdl
dFByaXZhdGUodGhpc09iamVjdCkpOwpAQCAtMjMzNSw3ICsyMzE5LDYgQEAgSlNTdGF0aWNGdW5j
dGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OgogICAgICAgICB7ICJldmFsdWF0ZVNjcmlwdElu
SXNvbGF0ZWRXb3JsZCIsIGV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAiZXhlY0NvbW1hbmQiLCBleGVjQ29tbWFuZENhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAgICAgICAgIHsgImZpbmRTdHJpbmciLCBmaW5kU3RyaW5nQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
LSAgICAgICAgeyAiY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQiLCBjb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgIm9yaWdpbnNXaXRoQXBwbGlj
YXRpb25DYWNoZSIsIG9yaWdpbnNXaXRoQXBwbGljYXRpb25DYWNoZUNhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CiAgICAgICAgIHsgImdvQmFjayIsIGdvQmFja0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sIAogICAgICAgICB7
ICJncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uIiwgZ3JhbnREZXNrdG9wTm90aWZp
Y2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sIApJbmRleDogVG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCShyZXZpc2lvbiAxMTk5NTcpCisrKyBUb29s
cy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC01Niw3ICs1Niw2IEBAIHB1YmxpYzoKICAgICBib29sIGNhbGxTaG91bGRDbG9zZU9uV2ViVmll
dygpOwogICAgIEpTU3RyaW5nUmVmIGNvcHlEZWNvZGVkSG9zdE5hbWUoSlNTdHJpbmdSZWYgbmFt
ZSk7CiAgICAgSlNTdHJpbmdSZWYgY29weUVuY29kZWRIb3N0TmFtZShKU1N0cmluZ1JlZiBuYW1l
KTsKLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoSlNTdHJpbmdSZWYgaWQpOwogICAgIHZvaWQgZGVsaXZlcldlYkludGVudChKU1N0cmluZ1Jl
ZiBhY3Rpb24sIEpTU3RyaW5nUmVmIHR5cGUsIEpTU3RyaW5nUmVmIGRhdGEpOwogICAgIHZvaWQg
ZGlzYWJsZUltYWdlTG9hZGluZygpOwogICAgIHZvaWQgZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcXVl
c3RzKCk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RD
b250cm9sbGVyQmxhY2tCZXJyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRy
ZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnkuY3BwCShyZXZpc2lv
biAxMTk5NTcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RD
b250cm9sbGVyQmxhY2tCZXJyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyOSwyMSArNDI5LDYg
QEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzYWJsZUltYWdlTAogICAgIEJsYWNrQmVy
cnk6OldlYktpdDo6RHVtcFJlbmRlclRyZWU6OmN1cnJlbnRJbnN0YW5jZSgpLT5wYWdlKCktPnNl
dHRpbmdzKCktPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShmYWxzZSk7CiB9CiAKLUpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoSlNTdHJpbmdSZWYgaWQpCi17Ci0gICAgU3RyaW5nIGlkU3RyID0ganNTdHJp
bmdSZWZUb1dlYkNvcmVTdHJpbmcoaWQpOwotICAgIFdlYkNvcmU6OkVsZW1lbnQqIGNvcmVFbGVt
ZW50ID0gbWFpbkZyYW1lLT5kb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJZChBdG9taWNTdHJpbmco
aWRTdHIpKTsKLSAgICBpZiAoIWNvcmVFbGVtZW50KQotICAgICAgICByZXR1cm4gMDsKLQotICAg
IENTdHJpbmcgY291bnRlclZhbHVlU3RyID0gY291bnRlclZhbHVlRm9yRWxlbWVudChjb3JlRWxl
bWVudCkudXRmOCgpOwotICAgIGlmIChjb3VudGVyVmFsdWVTdHIuaXNOdWxsKCkpCi0gICAgICAg
IHJldHVybiAwOwotCi0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNvdW50ZXJWYWx1ZShB
ZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoY291bnRlclZhbHVlU3RyLmRhdGEo
KSkpOwotICAgIHJldHVybiBjb3VudGVyVmFsdWU7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6Om92ZXJyaWRlUHJlZmVyZW5jZShKU1N0cmluZ1JlZiBrZXksIEpTU3RyaW5nUmVmIHZh
bHVlKQogewogICAgIGlmICghbWFpbkZyYW1lKQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAkocmV2aXNpb24g
MTE5OTU3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsNyArMTI0LDYgQEAgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbAogICAgIGJpbmRNZXRob2QoImFkZFVzZXJTdHls
ZVNoZWV0IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldCk7CiAgICAg
YmluZE1ldGhvZCgiY2xlYXJBbGxEYXRhYmFzZXMiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNs
ZWFyQWxsRGF0YWJhc2VzKTsKICAgICBiaW5kTWV0aG9kKCJjbG9zZVdlYkluc3BlY3RvciIsICZM
YXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xvc2VXZWJJbnNwZWN0b3IpOwotICAgIGJpbmRNZXRob2Qo
ImNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpjb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCk7CiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICBi
aW5kTWV0aG9kKCJkaWRMb3NlUG9pbnRlckxvY2siLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRp
ZExvc2VQb2ludGVyTG9jayk7CiAjZW5kaWYKQEAgLTE2NTgsMjAgKzE2NTcsNiBAQCB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRQT1NJWExvY2FsCiAgICAgICAgIHNldGxvY2FsZShMQ19B
TEwsIGFyZ3VtZW50c1swXS50b1N0cmluZygpLmNfc3RyKCkpOwogfQogCi12b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChjb25zdCBDcHBBcmd1bWVu
dExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIHJlc3VsdC0+c2V0
TnVsbCgpOwotICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpIDwgMSB8fCAhYXJndW1lbnRzWzBdLmlz
U3RyaW5nKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBXZWJGcmFtZSogZnJhbWUgPSBtX3NoZWxs
LT53ZWJWaWV3KCktPm1haW5GcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVy
bjsKLSAgICBXZWJTdHJpbmcgY291bnRlclZhbHVlID0gZnJhbWUtPmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKGNwcFZhcmlhbnRUb1dlYlN0cmluZyhhcmd1bWVudHNbMF0pKTsKLSAgICBpZiAo
Y291bnRlclZhbHVlLmlzTnVsbCgpKQotICAgICAgICByZXR1cm47Ci0gICAgcmVzdWx0LT5zZXQo
Y291bnRlclZhbHVlLnV0ZjgoKSk7Ci19Ci0KIC8vIFBhcnNlIGEgc2luZ2xlIGFyZ3VtZW50LiBU
aGUgbWV0aG9kIHJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBhbiBhcmd1bWVudCB0aGF0CiAvLyBp
cyBhIG51bWJlciBvciBpZiB0aGVyZSBpcyBubyBhcmd1bWVudCBhdCBhbGwuIEl0IHJldHVybnMg
ZmFsc2Ugb25seSBpZiB0aGVyZQogLy8gaXMgc29tZSBhcmd1bWVudCB0aGF0IGlzIG5vdCBhIG51
bWJlci4gVGhlIHZhbHVlIHBhcmFtZXRlciBpcyBmaWxsZWQgd2l0aCB0aGUKSW5kZXg6IFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
aAkocmV2aXNpb24gMTE5OTU3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzI0LDkgKzMyNCw2IEBAIHB1
YmxpYzoKICAgICAvLyBSZXNldHMgYmV0d2VlbiB0ZXN0cy4KICAgICB2b2lkIHNldFBPU0lYTG9j
YWxlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAotICAgIC8vIEdldHMg
dGhlIHZhbHVlIG9mIHRoZSBjb3VudGVyIGluIHRoZSBlbGVtZW50IHNwZWNpZmllZCBieSBpdHMg
SUQuCi0gICAgdm9pZCBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7Ci0KICAgICAvLyBDYXVzZXMgbGF5b3V0IHRvIGhhcHBlbiBh
cyBpZiB0YXJnZXR0ZWQgdG8gcHJpbnRlZCBwYWdlcy4KICAgICB2b2lkIHNldFByaW50aW5nKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIApJbmRleDogVG9vbHMvRHVtcFJl
bmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCShyZXZp
c2lvbiAxMTk5NTcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRy
b2xsZXJFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsMTMgKzEwMCw2IEBAIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OmRpc3BsYXkoKQogICAgIGRpc3BsYXlXZWJWaWV3KCk7CiB9CiAK
LUpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoSlNTdHJpbmdSZWYgaWQpCi17Ci0gICAgY29uc3QgRXZhc19PYmpl
Y3QqIG1haW5GcmFtZSA9IGJyb3dzZXItPm1haW5GcmFtZSgpOwotICAgIGNvbnN0IFN0cmluZyBj
b3VudGVyVmFsdWUoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpjb3VudGVyVmFsdWVCeUVsZW1l
bnRJZChtYWluRnJhbWUsIGlkLT51c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwotICAgIHJldHVy
biBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4oQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKGNvdW50ZXJWYWx1ZS51dGY4KCkuZGF0YSgpKSk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OmtlZXBXZWJIaXN0b3J5KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpJ
bmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRy
b2xsZXJHdGsuY3BwCShyZXZpc2lvbiAxMTk5NTcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9n
dGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsMTcg
KzEwMiw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRpc3BsYXkoKQogICAgIGRpc3Bs
YXlXZWJWaWV3KCk7CiB9CiAKLUpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoSlNTdHJpbmdSZWYgaWQpCi17Ci0g
ICAgZ2NoYXIqIGlkR0NoYXIgPSBKU1N0cmluZ0NvcHlVVEY4Q1N0cmluZyhpZCk7Ci0gICAgQ1N0
cmluZyBjb3VudGVyVmFsdWVHQ2hhciA9IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Y291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQobWFpbkZyYW1lLCBpZEdDaGFyKTsKLSAgICBnX2ZyZWUoaWRH
Q2hhcik7Ci0gICAgaWYgKGNvdW50ZXJWYWx1ZUdDaGFyLmlzTnVsbCgpKQotICAgICAgICByZXR1
cm4gMDsKLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY291bnRlclZhbHVlKEFkb3B0LCBK
U1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhjb3VudGVyVmFsdWVHQ2hhci5kYXRhKCkpKTsK
LSAgICByZXR1cm4gY291bnRlclZhbHVlOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjprZWVwV2ViSGlzdG9yeSgpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudApJbmRleDogVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5t
bQkocmV2aXNpb24gMTE5OTU3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRl
c3RDb250cm9sbGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNDksMTkgKzI0OSw2IEBAIHZv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRpc3BsYXkoKQogICAgIGRpc3BsYXlXZWJWaWV3KCk7
CiB9CiAKLUpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoSlNTdHJpbmdSZWYgaWQpCi17Ci0gICAgUmV0YWluUHRy
PENGU3RyaW5nUmVmPiBpZENGKEFkb3B0Q0YsIEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGlkKSk7Ci0gICAgTlNTdHJpbmcgKmlkTlMgPSAoTlNTdHJpbmcgKilpZENG
LmdldCgpOwotCi0gICAgRE9NRWxlbWVudCAqZWxlbWVudCA9IFtbbWFpbkZyYW1lIERPTURvY3Vt
ZW50XSBnZXRFbGVtZW50QnlJZDppZE5TXTsKLSAgICBpZiAoIWVsZW1lbnQpCi0gICAgICAgIHJl
dHVybiAwOwotCi0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNvdW50ZXJWYWx1ZShBZG9w
dCwgSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoKENGU3RyaW5nUmVmKVttYWluRnJhbWUgY291
bnRlclZhbHVlRm9yRWxlbWVudDplbGVtZW50XSkpOwotICAgIHJldHVybiBjb3VudGVyVmFsdWU7
Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmtlZXBXZWJIaXN0b3J5KCkKIHsKICAg
ICBpZiAoIVtXZWJIaXN0b3J5IG9wdGlvbmFsU2hhcmVkSGlzdG9yeV0pIHsKSW5kZXg6IFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCShy
ZXZpc2lvbiAxMTk5NTcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29u
dHJvbGxlclF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDExICsxNTUsNiBAQCB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjp3YWl0VW50aWxEb25lCiAgICAgbV90aW1lb3V0VGltZXIuc3Rh
cnQobV90aW1lb3V0LCB0aGlzKTsKIH0KIAotUVN0cmluZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoY29uc3QgUVN0cmluZyYgaWQpCi17Ci0gICAgcmV0
dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCht
X2RydC0+d2ViUGFnZSgpLT5tYWluRnJhbWUoKSwgaWQpOwotfQotCiB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpzZXRWaWV3TW9kZU1lZGlhRmVhdHVyZShjb25zdCBRU3RyaW5nJiBtb2RlKQog
ewogICAgIG1fZHJ0LT53ZWJQYWdlKCktPnNldFByb3BlcnR5KCJfcV92aWV3TW9kZSIsIG1vZGUp
OwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9s
bGVyUXQuaAkocmV2aXNpb24gMTE5OTU3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNyArMTA1LDYgQEAg
cHVibGljIHNsb3RzOgogICAgIHZvaWQgc2V0Q2FuT3BlbldpbmRvd3MoKSB7IG1fY2FuT3Blbldp
bmRvd3MgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRQcmludGluZygpIHsgbV9pc1ByaW50aW5nID0g
dHJ1ZTsgfQogICAgIHZvaWQgd2FpdFVudGlsRG9uZSgpOwotICAgIFFTdHJpbmcgY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoY29uc3QgUVN0cmluZyYgaWQpOwogICAgIGludCB3ZWJIaXN0b3J5
SXRlbUNvdW50KCk7CiAgICAgdm9pZCBrZWVwV2ViSGlzdG9yeSgpOwogICAgIHZvaWQgbm90aWZ5
RG9uZSgpOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9s
bGVyV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0
VGVzdENvbnRyb2xsZXJXaW4uY3BwCShyZXZpc2lvbiAxMTk5NTcpCisrKyBUb29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzAwLDI1ICsxMzAwLDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlQWxs
VmlzaQogICAgIHNoYXJlZEhpc3RvcnlQcml2YXRlLT5yZW1vdmVBbGxWaXNpdGVkTGlua3MoKTsK
IH0KIAotSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpjb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKLXsKLSAgICBDT01QdHI8SVdl
YkZyYW1lUHJpdmF0ZT4gZnJhbWVQcml2YXRlKFF1ZXJ5LCBmcmFtZSk7Ci0gICAgaWYgKCFmcmFt
ZVByaXZhdGUpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgd3N0cmluZyBpZFdzdHJpbmcgPSBq
c1N0cmluZ1JlZlRvV1N0cmluZyhpZCk7Ci0gICAgQlNUUiBpZEJTVFIgPSBTeXNBbGxvY1N0cmlu
Z0xlbigoT0xFQ0hBUiopaWRXc3RyaW5nLmNfc3RyKCksIGlkV3N0cmluZy5sZW5ndGgoKSk7Ci0g
ICAgQlNUUiBjb3VudGVyVmFsdWVCU1RSOwotICAgIGlmIChGQUlMRUQoZnJhbWVQcml2YXRlLT5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChpZEJTVFIsICZjb3VudGVyVmFsdWVCU1RSKSkpCi0g
ICAgICAgIHJldHVybiAwOwotCi0gICAgd3N0cmluZyBjb3VudGVyVmFsdWUoY291bnRlclZhbHVl
QlNUUiwgU3lzU3RyaW5nTGVuKGNvdW50ZXJWYWx1ZUJTVFIpKTsKLSAgICBTeXNGcmVlU3RyaW5n
KGlkQlNUUik7Ci0gICAgU3lzRnJlZVN0cmluZyhjb3VudGVyVmFsdWVCU1RSKTsKLSAgICBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gY291bnRlclZhbHVlSlMoQWRvcHQsIEpTU3RyaW5nQ3JlYXRl
V2l0aENoYXJhY3RlcnMoY291bnRlclZhbHVlLmRhdGEoKSwgY291bnRlclZhbHVlLmxlbmd0aCgp
KSk7Ci0gICAgcmV0dXJuIGNvdW50ZXJWYWx1ZUpTOwotfQotCiBpbnQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCwgZmxvYXQgcGFn
ZVdpZHRoSW5QaXhlbHMsIGZsb2F0IHBhZ2VIZWlnaHRJblBpeGVscykKIHsKICAgICBDT01QdHI8
SVdlYkZyYW1lUHJpdmF0ZT4gZnJhbWVQcml2YXRlKFF1ZXJ5LCBmcmFtZSk7CkluZGV4OiBUb29s
cy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAko
cmV2aXNpb24gMTE5OTU3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENv
bnRyb2xsZXJXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3MiwxMSArNDcyLDYgQEAgdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U2Nyb2xsYmFyUAogICAgIC8vIEZJWE1FOiBpbXBsZW1l
bnQKIH0KIAotSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpj
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKLXsKLSAgICByZXR1cm4g
MDsKLX0KLQogaW50IExheW91dFRlc3RDb250cm9sbGVyOjpwYWdlTnVtYmVyRm9yRWxlbWVudEJ5
SWQoSlNTdHJpbmdSZWYsIGZsb2F0LCBmbG9hdCkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50
CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMTE5OTU3KQorKysg
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1NCwxNiArMjU0LDYgQEAgSlNWYWx1ZVJlZiBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6Y29tcHV0ZQogICAgIHJldHVybiB2YWx1ZTsKIH0KIAotSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpjb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZChKU1N0cmluZ1JlZiBlbGVtZW50SWQpCi17Ci0gICAgV0tCdW5kbGVGcmFtZVJl
ZiBtYWluRnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUoSW5qZWN0ZWRCdW5kbGU6OnNo
YXJlZCgpLnBhZ2UoKS0+cGFnZSgpKTsKLSAgICBKU09iamVjdFJlZiBlbGVtZW50ID0gZ2V0RWxl
bWVudEJ5SWQobWFpbkZyYW1lLCBlbGVtZW50SWQpOwotICAgIGlmICghZWxlbWVudCkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHZhbHVlKEFkb3B0V0ss
IFdLQnVuZGxlRnJhbWVDb3B5Q291bnRlclZhbHVlKG1haW5GcmFtZSwgY29uc3RfY2FzdDxKU09i
amVjdFJlZj4oZWxlbWVudCkpKTsKLSAgICByZXR1cm4gdG9KUyh2YWx1ZSk7Ci19Ci0KIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bWFya2VyVGV4dEZvckxp
c3RJdGVtKEpTVmFsdWVSZWYgZWxlbWVudCkKIHsKICAgICBXS0J1bmRsZUZyYW1lUmVmIG1haW5G
cmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCku
cGFnZSgpLT5wYWdlKCkpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkocmV2aXNpb24g
MTE5OTU3KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNyArMTAwLDYgQEAgcHVibGlj
OgogCiAgICAgLy8gU3BlY2lhbCBET00gZnVuY3Rpb25zLgogICAgIEpTVmFsdWVSZWYgY29tcHV0
ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEpTVmFsdWVSZWYgZWxlbWVudCk7Ci0gICAgSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKEpTU3RyaW5n
UmVmIGVsZW1lbnRJZCk7CiAgICAgdm9pZCBjbGVhckJhY2tGb3J3YXJkTGlzdCgpOwogICAgIHZv
aWQgZXhlY0NvbW1hbmQoSlNTdHJpbmdSZWYgbmFtZSwgSlNTdHJpbmdSZWYgYXJndW1lbnQpOwog
ICAgIGJvb2wgaXNDb21tYW5kRW5hYmxlZChKU1N0cmluZ1JlZiBuYW1lKTsKSW5kZXg6IFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRy
b2xsZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCShyZXZpc2lvbiAxMTk5NTcp
CisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91
dFRlc3RDb250cm9sbGVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsNiBAQCBtb2R1
bGUgV1RSIHsKICAgICAgICAgLy8gU3BlY2lhbCBET00gZnVuY3Rpb25zLgogICAgICAgICB2b2lk
IGNsZWFyQmFja0ZvcndhcmRMaXN0KCk7CiAgICAgICAgIG9iamVjdCBjb21wdXRlZFN0eWxlSW5j
bHVkaW5nVmlzaXRlZEluZm8oaW4gb2JqZWN0IGVsZW1lbnQpOwotICAgICAgICBET01TdHJpbmcg
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoaW4gRE9NU3RyaW5nIGVsZW1lbnRJZCk7CiAgICAg
ICAgIHZvaWQgZXhlY0NvbW1hbmQoaW4gRE9NU3RyaW5nIG5hbWUsIGluIERPTVN0cmluZyBhcmd1
bWVudCk7CiAgICAgICAgIGJvb2xlYW4gaXNDb21tYW5kRW5hYmxlZChpbiBET01TdHJpbmcgbmFt
ZSk7CiAgICAgICAgIERPTVN0cmluZyBtYXJrZXJUZXh0Rm9yTGlzdEl0ZW0oaW4gb2JqZWN0IGVs
ZW1lbnQpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTE5OTU4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTItMDYtMTEgIEthdXN0dWJo
IEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgW0RSVF0gTFRD
OjogY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoKSBjb3VsZCBiZSBtb3ZlZCB0byBJbnRlcm5h
bHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDQw
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUg
dGhlIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIGZyb20gTGF5b3V0VGVzdENvdHJvbGxlciB0
byBJbnRlcm5hbHMgYW5kCisgICAgICAgIHJlbW92ZSB0aGUgb2xkIHBsYXRmb3JtIHNwZWNpZmlj
IGltcGxlbWVudGF0aW9ucyBhcyBpdCBleGNsdXNpdmVseSB0ZXN0cyBXZWJDb3JlIGZ1bmN0aW9u
YWxpdHkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy8yZGlzcGxheXMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzLzJkaXNwbGF5cy5odG1sOgorICAgICAg
ICAqIGZhc3QvY3NzL2NvdW50ZXJzL2FkZGluZy1ub2Rlcy5odG1sOgorICAgICAgICAqIGZhc3Qv
Y3NzL2NvdW50ZXJzL2FmdGVyLWNvbnRpbnVhdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9jc3MvY291bnRlcnMvYWZ0ZXItY29udGludWF0aW9uLmh0bWw6CisgICAgICAgICogZmFz
dC9jc3MvY291bnRlcnMvY29udGVudC0wMjEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
Y3NzL2NvdW50ZXJzL2NvbnRlbnQtMDIxLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291bnRl
cnMvY291bnRlci1iZWZvcmUtY29udGVudC1ub3QtaW5jcmVtZW50ZWQuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDAtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMC5odG1sOgor
ICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAx
Lmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAy
Lmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtaW5o
ZXJpdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1p
bmNyZW1lbnQtaW5oZXJpdC5odG06CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRl
ci1pbmNyZW1lbnQtb3ZlcmZsb3cuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9j
b3VudGVyLWluY3JlbWVudC10ZXN0cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3Mv
Y291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtdGVzdHMuaHRtOgorICAgICAgICAqIGZhc3QvY3Nz
L2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAwLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291
bnRlcnMvY291bnRlci1yZXNldC0wMDEuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVy
cy9jb3VudGVyLXJlc2V0LTAwMi5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL2Nv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nz
cy9jb3VudGVycy9jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZC5odG1sOgorICAgICAgICAqIGZh
c3QvY3NzL2NvdW50ZXJzL2RlZXAtYmVmb3JlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2Nzcy9jb3VudGVycy9kZWVwLWJlZm9yZS5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50
ZXJzL2ludmFsaWRhdGUtY2FjaGVkLWNvdW50ZXItbm9kZS5odG1sOgorICAgICAgICAqIGZhc3Qv
Y3NzL2NvdW50ZXJzL25lc3RpbmcuaHRtbDoKKwogMjAxMi0wNi0wOCAgS2ludWtvIFlhc3VkYSAg
PGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXNpbmcgQmxvYkJ1aWxkZXIgc2hvdWxk
IHNob3cgYSBkZXByZWNhdGlvbiB3YXJuaW5nIG1lc3NhZ2UgKGlmIGl0IGlzIGVuYWJsZWQpCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy8yZGlzcGxheXMtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzLzJkaXNwbGF5cy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDExOTk1NykKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
dW50ZXJzLzJkaXNwbGF5cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsNSArNiw1
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEEKIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdFZpZXcnKSBpcyAnMTAwMCAx
MDAwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdFZpZXcnKSkgaXMgJzEwMDAgMTAwMCcKIApJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvY291bnRlcnMvMmRpc3BsYXlzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY291bnRlcnMvMmRpc3BsYXlzLmh0bWwJKHJldmlzaW9uIDExOTk1NykKKysr
IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzLzJkaXNwbGF5cy5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSw3ICszMSw3IEBAIGZ1bmN0aW9uIHJ1bigpCiAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRlc3RWaWV3Iikuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJjb3VudGVyMTAwMCIp
OwogICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgICByZXR1cm47
Ci0gICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0ZXN0VmlldycpIiwgIicxMDAwIDEwMDAnIik7CisgICAgc2hvdWxkQmUoIndpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Vmll
dycpKSIsICInMTAwMCAxMDAwJyIpOwogCiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvYWRkaW5nLW5vZGVzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvYWRkaW5nLW5vZGVzLmh0bWwJKHJl
dmlzaW9uIDExOTk1NykKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2FkZGluZy1u
b2Rlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAgICAgICAgICAgICAg
ICAgICAgIG5ld1NwYW5FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwog
ICAgICAgICAgICAgICAgICAgICBpZCA9IHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJp
ZCIpOwogICAgICAgICAgICAgICAgICAgICBpZiAoaWQgIT0gbnVsbCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCA9IGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCA9IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChu
ZXdTcGFuRWxlbWVudC5pbm5lclRleHQubGVuZ3RoKQogICAgICAgICAgICAgICAgICAgICAgICAg
bmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ID0gbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ICsgIi0i
OwogICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKG5ld1NwYW5FbGVtZW50
KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2FmdGVyLWNvbnRpbnVhdGlv
bi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRl
cnMvYWZ0ZXItY29udGludWF0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE5OTU3KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvYWZ0ZXItY29udGludWF0aW9uLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIFRoaXMgdGVzdCBwYXNzZXMgaWYg
dGhlIG51bWJlcnMgZGlzcGxheWVkIGJlbG93IGFyZSAxIGFuZCAyIGluIHRoaXMgb3JkZXIuCiAK
LVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2My
JykgaXMgJzInCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdjMicpKSBpcyAnMicKIAogVEVTVCBDT01QTEVURQogCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZnRlci1jb250aW51YXRpb24uaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZnRlci1jb250aW51YXRpb24u
aHRtbAkocmV2aXNpb24gMTE5OTU3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMv
YWZ0ZXItY29udGludWF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAK
ICAgICAgICAgfQogICAgICAgICBmdW5jdGlvbiBydW4oKQogICAgICAgICB7Ci0gICAgICAgICAg
ICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ2MyJykiLCAiJzInIik7CisgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MyJykpIiwgIicyJyIpOwog
CiAgICAgICAgICAgICBkZWJ1ZygnJyk7CiAgICAgICAgICAgICBkZWJ1ZygnVEVTVCBDT01QTEVU
RScpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY29udGVudC0wMjEtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2Nv
bnRlbnQtMDIxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE5OTU3KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvY291bnRlcnMvY29udGVudC0wMjEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDcgKzEsNyBAQAogVGhpcyBpcyB0aGUgV2ViS2l0IHZlcnNpb24gb2YgQ1NTIFRlc3Q6
IENvbnRlbnQgdXNpbmcgYSAnY291bnRlcnMoKScgZnVuY3Rpb24gd2l0aCBhIHN0cmluZyB2YWx1
ZS4KIAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgnZGl2MScpIGlzICcwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgnZGl2MicpIGlzICcwLjAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXYxJykpIGlzICcwJworUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGl2
MicpKSBpcyAnMC4wJwogCiBURVNUIENPTVBMRVRFCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
Y3NzL2NvdW50ZXJzL2NvbnRlbnQtMDIxLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvY291bnRlcnMvY29udGVudC0wMjEuaHRtbAkocmV2aXNpb24gMTE5OTU3KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY29udGVudC0wMjEuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMjgsOCArMjgsOCBAQAogICB7CiAgICAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKICAgICAgICAgICByZXR1cm47Ci0gICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2RpdjEnKSIsICInMCciKTsK
LSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgnZGl2MicpIiwgIicwLjAnIik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVy
bmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdjEnKSkiLCAiJzAn
Iik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdjInKSkiLCAiJzAuMCciKTsKIAogICAgICAgZGVidWcoJycp
OwogICAgICAgZGVidWcoJ1RFU1QgQ09NUExFVEUnKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
Y3NzL2NvdW50ZXJzL2NvdW50ZXItYmVmb3JlLWNvbnRlbnQtbm90LWluY3JlbWVudGVkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1iZWZv
cmUtY29udGVudC1ub3QtaW5jcmVtZW50ZWQuaHRtbAkocmV2aXNpb24gMTE5OTU3KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1iZWZvcmUtY29udGVudC1ub3QtaW5j
cmVtZW50ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQAogICAgICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzcGFuTGlzdC5sZW5ndGg7ICsraSApIHsKICAgICAgICAg
ICAgICAgICB2YXIgZGl2SXRlbSA9IHNwYW5MaXN0Lml0ZW0oaSk7CiAgICAgICAgICAgICAgICAg
Y291bnRlcnMgKz0gJy0nOwotICAgICAgICAgICAgICAgIGNvdW50ZXJzICs9IGxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGRpdkl0ZW0uZ2V0QXR0cmlidXRl
KCJpZCIpKTsKKyAgICAgICAgICAgICAgICBjb3VudGVycyArPSB3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZJdGVtLmdldEF0dHJpYnV0ZSgi
aWQiKSkpOwogICAgICAgICAgICAgICAgIGNvdW50ZXJzICs9IGRpdkl0ZW0udGV4dENvbnRlbnQ7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
dGFpbmVyIikuaW5uZXJIVE1MID0gY291bnRlcnM7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDAtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDExOTk1NykKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
dW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsMTQgKzEsMTQgQEAKIFRoaXMgaXMgdGhlIFdlYktpdCB2ZXJzaW9uIG9mIENTUyAyLjEg
VGVzdCBTdWl0ZTogZHluYW1pYyBjaGFuZ2VzIHRvICdjb3VudGVyLWluY3JlbWVudCcuCiAKIEJl
Zm9yZSB0aGUgZHluYW1pYyBjaGFuZ2U6Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSBpcyAnMScKLVBBU1MgbGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVlJykgaXMgJzInCi1QQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdmb3VyJykgaXMg
JzMnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdvbmUnKSkgaXMgJzEnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aHJlZScpKSBpcyAnMicKK1BBU1Mgd2luZG93Lmlu
dGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvdXInKSkgaXMg
JzMnCiBBZnRlciB0aGUgZHluYW1pYyBjaGFuZ2U6Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSBpcyAnMScKLVBBU1MgbGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3bycpIGlzICcyJwotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUn
KSBpcyAnMycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ2ZvdXInKSBpcyAnNCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29uZScpKSBpcyAnMScKK1BBU1Mgd2luZG93LmludGVy
bmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R3bycpKSBpcyAnMicK
K1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3RocmVlJykpIGlzICczJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm91cicpKSBpcyAnNCcKIAogVEVTVCBDT01QTEVURQog
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0w
MDAuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3Vu
dGVyLWluY3JlbWVudC0wMDAuaHRtbAkocmV2aXNpb24gMTE5OTU3KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAwLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTE4LDE4ICsxOCwxOCBAQAogICBmdW5jdGlvbiBjaGVja0NvdW50ZXJWYWx1ZXNCZWZv
cmVDaGFuZ2UoKQogICB7CiAgICAgICBkZWJ1ZygnQmVmb3JlIHRoZSBkeW5hbWljIGNoYW5nZTon
KTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgnb25lJykiLCAiJzEnIik7Ci0gICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVlJykiLCAiJzInIik7Ci0g
ICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ2ZvdXInKSIsICInMyciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJykpIiwgIicxJyIpOwor
ICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0aHJlZScpKSIsICInMiciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm91cicpKSIs
ICInMyciKTsKICAgfQogCiAgIGZ1bmN0aW9uIGNoZWNrQ291bnRlclZhbHVlc0FmdGVyQ2hhbmdl
KCkKICAgewogICAgICAgZGVidWcoJ0FmdGVyIHRoZSBkeW5hbWljIGNoYW5nZTonKTsKLSAgICAg
IHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgnb25lJykiLCAiJzEnIik7Ci0gICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3bycpIiwgIicyJyIpOwotICAgICAgc2hvdWxk
QmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJl
ZScpIiwgIiczJyIpOwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdmb3VyJykiLCAiJzQnIik7CisgICAgICBzaG91bGRCZSgi
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29u
ZScpKSIsICInMSciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJW
YWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHdvJykpIiwgIicyJyIpOworICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0aHJlZScpKSIsICInMyciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm91cicpKSIsICInNCciKTsK
IAogICAgICAgZGVidWcoJycpOwogICAgICAgZGVidWcoJ1RFU1QgQ09NUExFVEUnKTsKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291
bnRlci1pbmNyZW1lbnQtMDAxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE5OTU3KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAxLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMyArMSwxMyBAQAogVGhpcyBpcyB0aGUgV2ViS2l0
IHZlcnNpb24gb2YgQ1NTIDIuMSBUZXN0IFN1aXRlOiBkeW5hbWljIGNoYW5nZXMgdG8gJ2NvdW50
ZXItaW5jcmVtZW50Jy4KIAogQmVmb3JlIHRoZSBkeW5hbWljIGNoYW5nZToKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIGlzICcxJwot
UEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdv
JykgaXMgJzMnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0aHJlZScpIGlzICc0JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJykpIGlzICcxJworUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHdvJykpIGlzICcz
JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGhyZWUnKSkgaXMgJzQnCiBBZnRlciB0aGUgZHluYW1pYyBjaGFuZ2U6Ci1QQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSBpcyAn
MScKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3R3bycpIGlzICcyJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgndGhyZWUnKSBpcyAnMycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVy
VmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29uZScpKSBpcyAnMScKK1BBU1Mgd2luZG93
LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R3bycpKSBp
cyAnMicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3RocmVlJykpIGlzICczJwogCiBURVNUIENPTVBMRVRFCiAKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50
LTAwMS5odG1sCShyZXZpc2lvbiAxMTk5NTcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3Vu
dGVycy9jb3VudGVyLWluY3JlbWVudC0wMDEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTgsMTcg
KzE4LDE3IEBACiAgIGZ1bmN0aW9uIGNoZWNrQ291bnRlclZhbHVlc0JlZm9yZUNoYW5nZSgpCiAg
IHsKICAgICAgIGRlYnVnKCdCZWZvcmUgdGhlIGR5bmFtaWMgY2hhbmdlOicpOwotICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdv
bmUnKSIsICInMSciKTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdvJykiLCAiJzMnIik7Ci0gICAgICBzaG91bGRCZSgi
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVlJyki
LCAiJzQnIik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29uZScpKSIsICInMSciKTsKKyAgICAgIHNob3VsZEJl
KCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dHdvJykpIiwgIiczJyIpOworICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aHJlZScpKSIsICInNCciKTsKICAgfQog
CiAgIGZ1bmN0aW9uIGNoZWNrQ291bnRlclZhbHVlc0FmdGVyQ2hhbmdlKCkKICAgewogICAgICAg
ZGVidWcoJ0FmdGVyIHRoZSBkeW5hbWljIGNoYW5nZTonKTsKLSAgICAgIHNob3VsZEJlKCJsYXlv
dXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnb25lJykiLCAiJzEn
Iik7Ci0gICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3R3bycpIiwgIicyJyIpOwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJlZScpIiwgIiczJyIpOwor
ICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdvbmUnKSkiLCAiJzEnIik7CisgICAgICBzaG91bGRCZSgid2luZG93Lmlu
dGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R3bycpKSIsICIn
MiciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGhyZWUnKSkiLCAiJzMnIik7CiAKICAgICAgIGRlYnVnKCcn
KTsKICAgICAgIGRlYnVnKCdURVNUIENPTVBMRVRFJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDIuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDIuaHRtbAko
cmV2aXNpb24gMTE5OTU3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRl
ci1pbmNyZW1lbnQtMDAyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKICAg
ICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc3Bhbkxpc3QubGVuZ3RoOyArK2kgKSB7CiAg
ICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic3BhbiIpOwogICAgICAgICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQg
PQotICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZChzcGFuTGlzdC5pdGVtKGkpLmdldEF0dHJpYnV0ZSgiaWQiKSk7CisgICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJpZCIpKSk7CiAgICAg
ICAgICAgICAgICAgICAgIGlmIChuZXdTcGFuRWxlbWVudC5pbm5lclRleHQubGVuZ3RoKQogICAg
ICAgICAgICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ID0gbmV3U3BhbkVs
ZW1lbnQuaW5uZXJUZXh0ICsgIi0iOwogICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmFwcGVu
ZENoaWxkKG5ld1NwYW5FbGVtZW50KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50
ZXJzL2NvdW50ZXItaW5jcmVtZW50LWluaGVyaXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LWluaGVyaXQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTk5NTcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
b3VudGVycy9jb3VudGVyLWluY3JlbWVudC1pbmhlcml0LWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSw3ICsxLDcgQEAKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3dyYXBwZXI5MCcpIGlzICc1JwotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDkwJykgaXMgJzEwJwotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDkw
YScpIGlzICcxNScKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3dyYXBwZXI5MScpIGlzICcxMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5MScpIGlzICcyMCcKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5MWEnKSBpcyAn
MzAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd3cmFwcGVyOTAnKSkgaXMgJzUnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0OTAnKSkgaXMgJzEwJworUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDkwYScpKSBpcyAnMTUnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd3cmFwcGVyOTEnKSkgaXMgJzEwJworUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDkxJykpIGlz
ICcyMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Rlc3Q5MWEnKSkgaXMgJzMwJwogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC1pbmhlcml0Lmh0bQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC1pbmhlcml0Lmh0
bQkocmV2aXNpb24gMTE5OTU3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291
bnRlci1pbmNyZW1lbnQtaW5oZXJpdC5odG0JKHdvcmtpbmcgY29weSkKQEAgLTEzLDEyICsxMywx
MiBAQAogICAgICAgICAgICAgZnVuY3Rpb24gcnVuKCkKICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAvLyBTb21lIGV4dHJhIFdlYktpdCB0ZXN0aW5nIGZvciBjb3VudGVyLWluY3JlbWVu
dCBpbmhlcml0Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd3cmFwcGVyOTAnKSIsICInNSciKTsKLSAgICAg
ICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3Rlc3Q5MCcpIiwgIicxMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5
MGEnKSIsICInMTUnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd3cmFwcGVyOTEnKSIsICInMTAnIik7
Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OTEnKSIsICInMjAnIik7Ci0gICAgICAgICAgICAgICAg
c2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0OTFhJykiLCAiJzMwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd3JhcHBlcjkw
JykpIiwgIic1JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDkwJykpIiwgIicxMCci
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q5MGEnKSkiLCAiJzE1JyIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnd3JhcHBlcjkxJykpIiwgIicxMCciKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Rlc3Q5MScpKSIsICInMjAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
IndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0OTFhJykpIiwgIiczMCciKTsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQogICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
b3VudGVycy9jb3VudGVyLWluY3JlbWVudC1vdmVyZmxvdy5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LW92ZXJmbG93Lmh0
bWwJKHJldmlzaW9uIDExOTk1NykKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2Nv
dW50ZXItaW5jcmVtZW50LW92ZXJmbG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDcgKzE4
LDcgQEAKICAgICAgICAgZnVuY3Rpb24gZG9UZXN0KCkKICAgICAgICAgewogICAgICAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY291bnRlZCcpLmlubmVyVGV4dCA9IGxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdjb3VudGVkJyk7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvdW50ZWQnKS5pbm5lclRleHQgPSB3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY291bnRlZCcp
KTsKICAgICAgICAgfQogCiAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywg
ZG9UZXN0LCBmYWxzZSk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3Vu
dGVyLWluY3JlbWVudC10ZXN0cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtdGVzdHMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxMTk5NTcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3Vu
dGVyLWluY3JlbWVudC10ZXN0cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNTgg
KzEsNTggQEAKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3Rlc3QzJykgaXMgJy0yMTQ3NDgzNjQ4JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQnKSBpcyAnLTIxNDc0ODM2NDcnCi1Q
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0
NScpIGlzICcwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDYnKSBpcyAnMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q3JykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OCcpIGlzICcxMCcKLVBBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5Jykg
aXMgJzEwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgndGVzdDEwJykgaXMgJzIxNDc0ODM2NDYnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTEnKSBpcyAnMjE0NzQ4MzY0NycKLVBB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Qx
MicpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDEzJykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTQnKSBpcyAnMicK
LVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rl
c3QxNScpIGlzICctMjE0NzQ4MzY0OCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxNicpIGlzICctMjE0NzQ4MzY0OCcKLVBBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxNycpIGlz
ICctMjE0NzQ4MzY0OCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3Rlc3QxOCcpIGlzICcwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDE5JykgaXMgJzAnCi1QQVNTIGxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjAnKSBpcyAnMCcK
LVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rl
c3QyMScpIGlzICcyMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3Rlc3QyMicpIGlzICcyMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyMycpIGlzICcyMTQ3NDgzNjQ3JwotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI0
JykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjUnKSBpcyAnMjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyNicpIGlzICcyMTQ3
NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgndGVzdDI3JykgaXMgJzMnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjgnKSBpcyAnLTIxNDc0ODM2NDgnCi1QQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjknKSBpcyAn
LTIxNDc0ODM2NDgnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCd0ZXN0MzAnKSBpcyAnLTIxNDc0ODM2NDgnCi1QQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzEnKSBpcyAnMCcKLVBBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzMicp
IGlzICcwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgndGVzdDMzJykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzQnKSBpcyAnMzAnCi1QQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzUnKSBpcyAnMzAnCi1QQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzYn
KSBpcyAnMjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3QzNycpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM4JykgaXMgJzIxNDc0
ODM2NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0ZXN0MzknKSBpcyAnMjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MCcpIGlzICczMicKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MScpIGlzICct
MjE0NzQ4MzY0OCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3Rlc3Q0MicpIGlzICctMjE0NzQ4MzY0OCcKLVBBU1MgbGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MycpIGlzICctMjE0NzQ4MzY0
OCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3Rlc3Q0NCcpIGlzICcwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndGVzdDQ1JykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDYnKSBpcyAnMCcKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0NycpIGlzICcz
MjAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0NDgnKSBpcyAnMzIwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDQ5JykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTAnKSBpcyAnMjE0
NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3Rlc3Q1MScpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDUyJykgaXMgJzIxNDc0ODM2NDcnCi1Q
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0
NTMnKSBpcyAnNScKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ25vbmU1MycpIGlzICc1JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDUzYScpIGlzICcxMCcKLVBBU1MgbGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3dyYXBwZXI1NCcpIGlzICc1
JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dGVzdDU0JykgaXMgJzEwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndGVzdDU1JykgaXMgJzEnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTYnKSBpcyAnLTIxNDc0ODM2NDgnCitQ
QVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0MycpKSBpcyAnLTIxNDc0ODM2NDgnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NCcpKSBpcyAnLTIxNDc0ODM2NDcn
CitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0NScpKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q2JykpIGlzICcwJworUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDcnKSkgaXMg
JzAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0OCcpKSBpcyAnMTAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0OScpKSBpcyAnMTAnCitQQVNTIHdpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTAn
KSkgaXMgJzIxNDc0ODM2NDYnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTEnKSkgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
MTInKSkgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTMnKSkgaXMgJzIxNDc0ODM2NDcnCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0MTQnKSkgaXMgJzInCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTUnKSkgaXMgJy0yMTQ3NDgzNjQ4JworUEFTUyB3aW5k
b3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDE2
JykpIGlzICctMjE0NzQ4MzY0OCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxNycpKSBpcyAnLTIxNDc0ODM2NDgnCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0MTgnKSkgaXMgJzAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTknKSkgaXMgJzAnCitQQVNTIHdpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MjAnKSkgaXMgJzAn
CitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0MjEnKSkgaXMgJzIwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDIyJykpIGlzICcyMCcKK1BBU1Mgd2luZG93
LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyMycp
KSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyNCcpKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mgd2lu
ZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qy
NScpKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyNicpKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mg
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3QyNycpKSBpcyAnMycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyOCcpKSBpcyAnLTIxNDc0ODM2NDgnCitQQVNTIHdpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Mjkn
KSkgaXMgJy0yMTQ3NDgzNjQ4JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDMwJykpIGlzICctMjE0NzQ4MzY0OCcKK1BBU1Mg
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3QzMScpKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzMicpKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzMycpKSBpcyAnMCcK
K1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3QzNCcpKSBpcyAnMzAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MzUnKSkgaXMgJzMwJworUEFTUyB3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDM2Jykp
IGlzICcyMTQ3NDgzNjQ3JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDM3JykpIGlzICcyMTQ3NDgzNjQ3JworUEFTUyB3aW5k
b3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDM4
JykpIGlzICcyMTQ3NDgzNjQ3JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDM5JykpIGlzICcyMTQ3NDgzNjQ3JworUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDQwJykpIGlzICczMicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0MScpKSBpcyAnLTIxNDc0ODM2NDgnCitQQVNTIHdpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NDIn
KSkgaXMgJy0yMTQ3NDgzNjQ4JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQzJykpIGlzICctMjE0NzQ4MzY0OCcKK1BBU1Mg
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3Q0NCcpKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0NScpKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0NicpKSBpcyAnMCcK
K1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3Q0NycpKSBpcyAnMzIwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQ4JykpIGlzICczMjAnCitQQVNTIHdpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NDkn
KSkgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NTAnKSkgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
NTEnKSkgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NTInKSkgaXMgJzIxNDc0ODM2NDcnCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0NTMnKSkgaXMgJzUnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdub25lNTMnKSkgaXMgJzUnCitQQVNTIHdpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NTNhJykpIGlzICcx
MCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3dyYXBwZXI1NCcpKSBpcyAnNScKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVy
VmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1NCcpKSBpcyAnMTAnCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
NTUnKSkgaXMgJzEnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0NTYnKSkgaXMgJy0yMTQ3NDgzNjQ4JwogCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC10ZXN0cy5odG0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1l
bnQtdGVzdHMuaHRtCShyZXZpc2lvbiAxMTk5NTcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
b3VudGVycy9jb3VudGVyLWluY3JlbWVudC10ZXN0cy5odG0JKHdvcmtpbmcgY29weSkKQEAgLTE1
LDYzICsxNSw2MyBAQAogICAgICAgICAgICAgICAgIC8qIFRoZXNlIGFyZSB0ZXh0IHZlcnNpb25z
IG9mIHRoZSBjb3VudGVyLWluY3JlbWVudC0qIHRlc3RzIGluIHRoZSBDU1MgMi4xIHRlc3Qgc3Vp
dGUuCiAgICAgICAgICAgICAgICAgICAgU28gJ3Rlc3QzJyBoZXJlIGlzIGVxdWl2YWxlbnQgdG8g
Y291bnRlci1pbmNyZW1lbnQtMDAzLmh0bSwgYW5kIHNvIG9uLiAKICAgICAgICAgICAgICAgICAg
ICBXZWJLaXQgZHVtcEFzVGV4dCB2ZXJzaW9ucyBvZiBjb3VudGVyLWluY3JlbWVudC0wMDEgYW5k
IDAwMiBhbHJlYWR5IGV4aXN0IGluIGZhc3QvY3NzL2NvdW50ZXJzICovCi0gICAgICAgICAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0ZXN0MycpIiwgIictMjE0NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0
JykiLCAiJy0yMTQ3NDgzNjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDUnKSIsICInMCci
KTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q2JykiLCAiJzAnIik7Ci0gICAgICAgICAgICAgICAg
c2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0NycpIiwgIicwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDgnKSIsICInMTAnIik7
Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OScpIiwgIicxMCciKTsKLSAgICAgICAgICAgICAgICBz
aG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3Rlc3QxMCcpIiwgIicyMTQ3NDgzNjQ2JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDExJyki
LCAiJzIxNDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTInKSIsICInMjE0NzQ4
MzY0NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxMycpIiwgIicyMTQ3NDgzNjQ3JyIpOwot
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDE0JykiLCAiJzInIik7Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0MTUnKSIsICInLTIxNDc0ODM2NDgnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTYnKSIs
ICInLTIxNDc0ODM2NDgnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTcnKSIsICInLTIxNDc0
ODM2NDgnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTgnKSIsICInMCciKTsKLSAgICAgICAg
ICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3Rlc3QxOScpIiwgIicwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDIwJyki
LCAiJzAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjEnKSIsICInMjAnIik7Ci0gICAgICAg
ICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCd0ZXN0MjInKSIsICInMjAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjMn
KSIsICInMjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyNCcpIiwgIicyMTQ3
NDgzNjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI1JykiLCAiJzIxNDc0ODM2NDcnIik7
Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjYnKSIsICInMjE0NzQ4MzY0NyciKTsKLSAgICAgICAg
ICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3Rlc3QyNycpIiwgIiczJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI4Jyki
LCAiJy0yMTQ3NDgzNjQ4JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI5JykiLCAiJy0yMTQ3
NDgzNjQ4JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDMwJykiLCAiJy0yMTQ3NDgzNjQ4JyIp
OwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDMxJykiLCAiJzAnIik7Ci0gICAgICAgICAgICAgICAg
c2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0MzInKSIsICInMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzMycpIiwgIicwJyIp
OwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM0JykiLCAiJzMwJyIpOwotICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndGVzdDM1JykiLCAiJzMwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM2JykiLCAiJzIx
NDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzcnKSIsICInMjE0NzQ4MzY0Nyci
KTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzOCcpIiwgIicyMTQ3NDgzNjQ3JyIpOwotICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgndGVzdDM5JykiLCAiJzIxNDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAg
c2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0NDAnKSIsICInMzInIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDEnKSIsICInLTIx
NDc0ODM2NDgnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDInKSIsICInLTIxNDc0ODM2NDgn
Iik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDMnKSIsICInLTIxNDc0ODM2NDgnIik7Ci0gICAg
ICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCd0ZXN0NDQnKSIsICInMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0
NScpIiwgIicwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ2JykiLCAiJzAnIik7Ci0gICAg
ICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCd0ZXN0NDcnKSIsICInMzIwJyIpOwotICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDQ4JykiLCAiJzMyMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0OScpIiwgIicyMTQ3NDgz
NjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDUwJykiLCAiJzIxNDc0ODM2NDcnIik7Ci0g
ICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTEnKSIsICInMjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAg
ICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3Rlc3Q1MicpIiwgIicyMTQ3NDgzNjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDUzJykiLCAiJzUnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdub25lNTMnKSIsICInNSciKTsKLSAg
ICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1M2EnKSIsICInMTAnIik7Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd3
cmFwcGVyNTQnKSIsICInNSciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1NCcpIiwgIicxMCci
KTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1NScpIiwgIicxJyIpOwotICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndGVzdDU2JykiLCAiJy0yMTQ3NDgzNjQ4JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDMnKSkiLCAiJy0yMTQ3NDgzNjQ4JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDQnKSkiLCAiJy0yMTQ3NDgzNjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5k
b3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDUn
KSkiLCAiJzAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NicpKSIsICInMCciKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q3JykpIiwgIicwJyIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdDgnKSkiLCAiJzEwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDknKSkiLCAiJzEwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDEwJykpIiwg
IicyMTQ3NDgzNjQ2JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDExJykpIiwgIicy
MTQ3NDgzNjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDEyJykpIiwgIicyMTQ3
NDgzNjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDEzJykpIiwgIicyMTQ3NDgz
NjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDE0JykpIiwgIicyJyIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDE1JykpIiwgIictMjE0NzQ4MzY0OCciKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxNicpKSIsICInLTIxNDc0ODM2NDgnIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTcnKSkiLCAiJy0yMTQ3NDgzNjQ4JyIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGVzdDE4JykpIiwgIicwJyIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdDE5JykpIiwgIicwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDIwJykp
IiwgIicwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDIxJykpIiwgIicyMCciKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyMicpKSIsICInMjAnIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZXN0MjMnKSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0MjQnKSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0MjUnKSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0MjYnKSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0MjcnKSkiLCAiJzMnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MjgnKSki
LCAiJy0yMTQ3NDgzNjQ4JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDI5JykpIiwg
IictMjE0NzQ4MzY0OCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVy
bmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzMCcpKSIsICIn
LTIxNDc0ODM2NDgnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MzEnKSkiLCAiJzAn
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MzInKSkiLCAiJzAnIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0MzMnKSkiLCAiJzAnIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0MzQnKSkiLCAiJzMwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5k
b3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDM1
JykpIiwgIiczMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzNicpKSIsICInMjE0
NzQ4MzY0NyciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5j
b3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzNycpKSIsICInMjE0NzQ4
MzY0NyciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzOCcpKSIsICInMjE0NzQ4MzY0
NyciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVy
VmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzOScpKSIsICInMjE0NzQ4MzY0Nyci
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0MCcpKSIsICInMzInIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0NDEnKSkiLCAiJy0yMTQ3NDgzNjQ4JyIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGVzdDQyJykpIiwgIictMjE0NzQ4MzY0OCciKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3Q0MycpKSIsICInLTIxNDc0ODM2NDgnIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0NDQnKSkiLCAiJzAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
IndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0NDUnKSkiLCAiJzAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRl
cm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NDYnKSkiLCAi
JzAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NDcnKSkiLCAiJzMyMCciKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0OCcpKSIsICInMzIwJyIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdDQ5JykpIiwgIicyMTQ3NDgzNjQ3JyIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdDUwJykpIiwgIicyMTQ3NDgzNjQ3JyIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdDUxJykpIiwgIicyMTQ3NDgzNjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdDUyJykpIiwgIicyMTQ3NDgzNjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDUzJykpIiwgIic1JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm9uZTUzJykpIiwg
Iic1JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDUzYScpKSIsICInMTAnIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cmFwcGVyNTQnKSkiLCAiJzUnIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZXN0NTQnKSkiLCAiJzEwJyIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdDU1JykpIiwgIicxJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDU2Jykp
IiwgIictMjE0NzQ4MzY0OCciKTsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQogICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
b3VudGVycy9jb3VudGVyLXJlc2V0LTAwMC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAwLmh0bWwJKHJldmlzaW9uIDExOTk1
NykKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAwLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKICAgICAgICAgICAgICAgICBmb3Ig
KGkgPSAwOyBpIDwgc3Bhbkxpc3QubGVuZ3RoOyArK2kgKSB7CiAgICAgICAgICAgICAgICAgICAg
IG5ld1NwYW5FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgICAg
ICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPQotICAgICAgICAgICAgICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChzcGFu
TGlzdC5pdGVtKGkpLmdldEF0dHJpYnV0ZSgiaWQiKSk7CisgICAgICAgICAgICAgICAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNwYW5M
aXN0Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJpZCIpKSk7CiAgICAgICAgICAgICAgICAgICAgIGlm
IChuZXdTcGFuRWxlbWVudC5pbm5lclRleHQubGVuZ3RoKQogICAgICAgICAgICAgICAgICAgICAg
ICAgbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ID0gbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ICsg
Ii0iCiAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobmV3U3BhbkVsZW1l
bnQpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1yZXNldC0w
MDEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3Vu
dGVyLXJlc2V0LTAwMS5odG1sCShyZXZpc2lvbiAxMTk5NTcpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb3VudGVycy9jb3VudGVyLXJlc2V0LTAwMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0y
Miw3ICsyMiw3IEBACiAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgIC8v
IFRoaXMgY2FsbCBlbnN1cmVzIHRoZSBsYXlvdXQgaGFwcGVuZWQgYmVmb3JlIHdlIG1vZGlmeSB0
aGUgRE9NIHRyZWUuCi0gICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoInNwYW4xIik7CisgICAgICAgICAgd2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW4xIikpOwogICAgICAgfQogCiAg
ICAgICB2YXIgdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CkBAIC0zNCw3ICsz
NCw3IEBACiAgICAgICAgICAgc3Bhbkxpc3QgPSB0ZXN0RWxlbWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgic3BhbiIpOwogICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzcGFuTGlzdC5sZW5ndGg7
ICsraSApIHsKICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzcGFuIik7Ci0gICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCA9
IGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKHNwYW5MaXN0
Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJpZCIpKTsKKyAgICAgICAgICAgICAgbmV3U3BhbkVsZW1l
bnQuaW5uZXJUZXh0ID0gd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRyaWJ1dGUoImlkIikpKTsKICAgICAg
ICAgICAgICAgaWYgKG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dC5sZW5ndGgpCiAgICAgICAgICAg
ICAgICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSBuZXdTcGFuRWxlbWVudC5pbm5lclRl
eHQgKyAiLSI7CiAgICAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobmV3U3BhbkVsZW1l
bnQpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1yZXNldC0w
MDIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3Vu
dGVyLXJlc2V0LTAwMi5odG1sCShyZXZpc2lvbiAxMTk5NTcpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb3VudGVycy9jb3VudGVyLXJlc2V0LTAwMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw3ICszMCw3IEBACiAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNwYW5MaXN0Lmxl
bmd0aDsgKytpICkgewogICAgICAgICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgICAgICAgICAgICAgbmV3U3BhbkVs
ZW1lbnQuaW5uZXJUZXh0ID0KLSAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRyaWJ1
dGUoImlkIikpOworICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJW
YWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzcGFuTGlzdC5pdGVtKGkpLmdldEF0dHJpYnV0
ZSgiaWQiKSkpOwogICAgICAgICAgICAgICAgICAgICBpZiAobmV3U3BhbkVsZW1lbnQuaW5uZXJU
ZXh0Lmxlbmd0aCkKICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50LmlubmVy
VGV4dCA9IG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCArICItIjsKICAgICAgICAgICAgICAgICAg
ICAgY29uc29sZS5hcHBlbmRDaGlsZChuZXdTcGFuRWxlbWVudCk7CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTk5NTcpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZC1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTEgKzEsMTEgQEAKLVRoaXMgaXMgdGhlIHRl
c3QgZm9yIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkCitU
aGlzIGlzIHRoZSB0ZXN0IGZvciB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkCiAgICAKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ2JlZm9yZScpIGlzICcwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYWZ0ZXInKSBpcyAnMCcKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2JlZm9yZV9hZnRlcicpIGlzICcw
IDAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0d2ljZScpIGlzICcwIDAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCdwb2ludCcpIGlzICcwLjEnCi1QQVNTIGxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d28tcG9pbnRzJykgaXMgJzAuMS4yJwot
UEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZ3Jl
ZWsnKSBpcyAnMC7OsS7OsicKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3RocmVlLWdyZWVrcycpIGlzICcwLs6xLs6yIDAuzrEuzrIgMC7OsS7O
sicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2JlZm9yZScpKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FmdGVyJykpIGlzICcwJworUEFTUyB3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmVmb3JlX2Fm
dGVyJykpIGlzICcwIDAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0d2ljZScpKSBpcyAnMCAwJworUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9pbnQnKSkgaXMgJzAu
MScKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3R3by1wb2ludHMnKSkgaXMgJzAuMS4yJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3JlZWsnKSkgaXMgJzAuzrEuzrIn
CitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0aHJlZS1ncmVla3MnKSkgaXMgJzAuzrEuzrIgMC7OsS7OsiAwLs6xLs6yJwogCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkLmh0bWwJKHJldmlzaW9uIDExOTk1NykKKysrIExheW91dFRl
c3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTE0LDcgKzE0LDcgQEAKICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotICAg
IDxkaXY+VGhpcyBpcyB0aGUgdGVzdCBmb3IgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQ8L2Rpdj4KKyAgICA8ZGl2PlRoaXMgaXMgdGhlIHRlc3QgZm9yIHdp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQ8L2Rpdj4KIAogICAgIDxk
aXYgY2xhc3M9InJlc2V0Ij48c3BhbiBpZD0iYmVmb3JlIiBjbGFzcz0ic2hvdy1iZWZvcmUiPjwv
c3Bhbj48L2Rpdj4KICAgICA8ZGl2IGNsYXNzPSJyZXNldCI+PHNwYW4gaWQ9ImFmdGVyIiBjbGFz
cz0ic2hvdy1hZnRlciI+PC9zcGFuPjwvZGl2PgpAQCAtMzUsMTQgKzM1LDE0IEBACiAgICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAotICAgICAgICAgICAgc2hvdWxkQmUoImxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdiZWZvcmUnKSIsICIn
MCciKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgnYWZ0ZXInKSIsICInMCciKTsKLSAgICAgICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYmVm
b3JlX2FmdGVyJykiLCAiJzAgMCciKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdpY2UnKSIsICInMCAwJyIp
OwotICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCdwb2ludCcpIiwgIicwLjEnIik7Ci0gICAgICAgICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3by1w
b2ludHMnKSIsICInMC4xLjInIik7Ci0gICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2dyZWVrJykiLCAiJzAuXHUwM2Ix
Llx1MDNiMiciKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUtZ3JlZWtzJykiLCAiJzAuXHUwM2IxLlx1
MDNiMiAwLlx1MDNiMS5cdTAzYjIgMC5cdTAzYjEuXHUwM2IyJyIpOworICAgICAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdiZWZvcmUnKSkiLCAiJzAnIik7CisgICAgICAgICAgICBzaG91bGRCZSgid2luZG93Lmlu
dGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FmdGVyJykpIiwg
IicwJyIpOworICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiZWZvcmVfYWZ0ZXInKSkiLCAiJzAgMCciKTsK
KyAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndHdpY2UnKSkiLCAiJzAgMCciKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgncG9pbnQnKSkiLCAiJzAuMSciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHdvLXBvaW50
cycpKSIsICInMC4xLjInIik7CisgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dyZWVrJykpIiwgIicwLlx1
MDNiMS5cdTAzYjInIik7CisgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5j
b3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RocmVlLWdyZWVrcycpKSIsICIn
MC5cdTAzYjEuXHUwM2IyIDAuXHUwM2IxLlx1MDNiMiAwLlx1MDNiMS5cdTAzYjInIik7CiAgICAg
ICAgIH0KICAgICA8L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL2RlZXAtYmVmb3JlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9kZWVwLWJlZm9yZS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDExOTk1NykKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2RlZXAtYmVmb3JlLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLVBBU1MgbGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2RpdjEnKSBpcyAnMCcKK1BB
U1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2RpdjEnKSkgaXMgJzAnCiAKIFRFU1QgQ09NUExFVEUKIApJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY291bnRlcnMvZGVlcC1iZWZvcmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2Nzcy9jb3VudGVycy9kZWVwLWJlZm9yZS5odG1sCShyZXZpc2lvbiAxMTk5NTcpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9kZWVwLWJlZm9yZS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAgIHsKICAgICAgIGlmICghd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQogICAgICAgICAgIHJldHVybjsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZGl2MScpIiwgIicwJyIp
OworICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdkaXYxJykpIiwgIicwJyIpOwogCiAgICAgICBkZWJ1ZygnJyk7CiAg
ICAgICBkZWJ1ZygnVEVTVCBDT01QTEVURScpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y291bnRlcnMvaW52YWxpZGF0ZS1jYWNoZWQtY291bnRlci1ub2RlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvaW52YWxpZGF0ZS1jYWNoZWQtY291bnRl
ci1ub2RlLmh0bWwJKHJldmlzaW9uIDExOTk1NykKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
dW50ZXJzL2ludmFsaWRhdGUtY2FjaGVkLWNvdW50ZXItbm9kZS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0yMiw3ICsyMiw3IEBACiAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAg
ICAgICAgICAgIHZhciB0ZXN0UmVzdWx0OwotICAgICAgICAgICAgdmFyIGNvdW50ZXJWYWx1ZSA9
IGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCJrZWVwLW1l
Iik7CisgICAgICAgICAgICB2YXIgY291bnRlclZhbHVlID0gd2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImtlZXAtbWUiKSk7CiAgICAgICAgICAg
ICBpZiAoY291bnRlclZhbHVlID09ICIxIikKICAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0g
IlBBU1MiOwogICAgICAgICAgICAgZWxzZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291
bnRlcnMvbmVzdGluZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
dW50ZXJzL25lc3RpbmcuaHRtbAkocmV2aXNpb24gMTE5OTU3KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY291bnRlcnMvbmVzdGluZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3
IEBACiAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNwYW5MaXN0Lmxlbmd0aDsgKytp
ICkgewogICAgICAgICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQuaW5u
ZXJUZXh0ID0KLSAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRyaWJ1dGUoImlkIikp
OworICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChzcGFuTGlzdC5pdGVtKGkpLmdldEF0dHJpYnV0ZSgiaWQiKSkp
OwogICAgICAgICAgICAgICAgICAgICBpZiAobmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0Lmxlbmd0
aCkKICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCA9IG5l
d1NwYW5FbGVtZW50LmlubmVyVGV4dCArICItICI7CiAgICAgICAgICAgICAgICAgICAgIGNvbnNv
bGUuYXBwZW5kQ2hpbGQobmV3U3BhbkVsZW1lbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146828</attachid>
            <date>2012-06-11 04:21:36 -0700</date>
            <delta_ts>2012-06-11 21:06:30 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-84406-20120611165051.patch</filename>
            <type>text/plain</type>
            <size>86794</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDExOTk1
OCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA2
LTExICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAg
ICAgIFtEUlRdIExUQzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkgY291bGQgYmUgbW92
ZWQgdG8gSW50ZXJuYWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODQ0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBFeHBvcnRpbmcgSW50ZXJuYWxzOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50IHN5bWJv
bHMgZm9yIHRoZSBHdGsgYnVpbGQuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJv
bHMuZmlsdGVyOgorCiAyMDEyLTA2LTEwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW1vdmUgdW5uZWVkZWQgY2FsbFJlbW92ZWRMYXN0UmVmIGZ1bmN0aW9uIGZy
b20gVHJlZVNoYXJlZCByZWZhY3RvcmluZwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE5OTU4
KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MjIgQEAKKzIwMTItMDYtMTEgIEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9s
YS5jb20+CisKKyAgICAgICAgW0RSVF0gTFRDOjogY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
KSBjb3VsZCBiZSBtb3ZlZCB0byBJbnRlcm5hbHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
IGZyb20gTGF5b3V0VGVzdENvdHJvbGxlciB0byBJbnRlcm5hbHMgYW5kCisgICAgICAgIHJlbW92
ZSB0aGUgb2xkIHBsYXRmb3JtIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBhcyBpdCBleGNsdXNp
dmVseSB0ZXN0cyBXZWJDb3JlIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgQ292ZXJlZCBieSBl
eGlzdGluZyB0ZXN0IGNhc2VzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpjb3VudGVyVmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKEludGVybmFs
cyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEyLTA2LTExICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBFeHRyYWN0
IEN1cnNvck1hcCBmcm9tIFdpZGdldEVmbC5jcHAuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCShyZXZpc2lvbiAxMTk5NTcpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNTgsNiArMTA1OCwxNCBAQCB2b2lk
IEludGVybmFsczo6YWxsb3dSb3VuZGluZ0hhY2tzKCkgY29uCiAgICAgVGV4dFJ1bjo6c2V0QWxs
b3dzUm91bmRpbmdIYWNrcyh0cnVlKTsKIH0KIAorU3RyaW5nIEludGVybmFsczo6Y291bnRlclZh
bHVlKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFlbGVtZW50KQorICAgICAgICByZXR1
cm4gU3RyaW5nKCk7CisKKyAgICByZXR1cm4gY291bnRlclZhbHVlRm9yRWxlbWVudChlbGVtZW50
KTsKK30KKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIHZvaWQgSW50ZXJuYWxzOjp3ZWJr
aXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEVsZW1l
bnQqIGVsZW1lbnQpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlz
aW9uIDExOTk1NykKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTE3Niw2ICsxNzYsOCBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPFN0cmluZz4g
Y29uc29sZU1lc3NhZ2VBcmd1bWVudENvdW50cyhEb2N1bWVudCopIGNvbnN0OwogI2VuZGlmCiAK
KyAgICBTdHJpbmcgY291bnRlclZhbHVlKEVsZW1lbnQqKTsKKwogI2lmIEVOQUJMRShGVUxMU0NS
RUVOX0FQSSkKICAgICB2b2lkIHdlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KERv
Y3VtZW50KiwgRWxlbWVudCopOwogICAgIHZvaWQgd2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9y
RWxlbWVudChEb2N1bWVudCosIEVsZW1lbnQqKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwJKHJldmlzaW9uIDExOTk1NykKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTUxLDYgKzE1MSw4IEBAIG1vZHVsZSB3
aW5kb3cgewogICAgICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25nIG51
bWJlck9mTGl2ZURvY3VtZW50cygpOwogICAgICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSBz
ZXF1ZW5jZTxTdHJpbmc+IGNvbnNvbGVNZXNzYWdlQXJndW1lbnRDb3VudHMoaW4gRG9jdW1lbnQg
ZG9jdW1lbnQpOwogCisgICAgICAgIERPTVN0cmluZyBjb3VudGVyVmFsdWUoaW4gRWxlbWVudCBl
bGVtZW50KTsKKwogI2lmIGRlZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAmJiBFTkFCTEVf
RlVMTFNDUkVFTl9BUEkKICAgICAgICAgdm9pZCB3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9y
RWxlbWVudChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gRWxlbWVudCBlbGVtZW50KTsKICAgICAg
ICAgdm9pZCB3ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGluIERvY3VtZW50IGRv
Y3VtZW50LCBpbiBFbGVtZW50IGVsZW1lbnQpOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTE5
OTU4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTItMDYtMTEgIEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rv
cm9sYS5jb20+CisKKyAgICAgICAgW0RSVF0gTFRDOjogY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoKSBjb3VsZCBiZSBtb3ZlZCB0byBJbnRlcm5hbHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9ydGluZyBJbnRlcm5hbHM6OmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnQgc3ltYm9scyBmb3IgdGhlIHdpbiBidWlsZC4KKworICAgICAgICAqIHdpbi9X
ZWJLaXQyLmRlZjoKKwogMjAxMi0wNi0xMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVtb3ZlIHVubmVlZGVkIGNhbGxSZW1vdmVkTGFzdFJlZiBmdW5jdGlvbiBm
cm9tIFRyZWVTaGFyZWQgcmVmYWN0b3JpbmcKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyLmRlZgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYJKHJl
dmlzaW9uIDExOTk1NykKKysrIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgkod29ya2lu
ZyBjb3B5KQpAQCAtMTE3LDYgKzExNyw3IEBAIEVYUE9SVFMKICAgICAgICAgP2NhbGxPbk1haW5U
aHJlYWRAV1RGQEBZQVhQNkFYUEFYQFowQFoKICAgICAgICAgP2NvbnNvbGVNZXNzYWdlQXJndW1l
bnRDb3VudHNASW5zcGVjdG9yQ29uc29sZUFnZW50QFdlYkNvcmVAQFFBRT9BVj8kVmVjdG9yQEkk
MEFAQFdURkBAWFoKICAgICAgICAgP2NvdW50ZXJWYWx1ZUBJbnNwZWN0b3JDb3VudGVyc0BXZWJD
b3JlQEBTQUhXNENvdW50ZXJUeXBlQDEyQEBaCisgICAgICAgID9jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QFdlYkNvcmVAQFlBP0FWU3RyaW5nQFdURkBAUEFWRWxlbWVudEAxQEBaCiAgICAgICAgID9j
cmVhdGVUaHJlYWRAV1RGQEBZQUlQNkFQQVhQQVhAWjBQQkRAWgogICAgICAgICA/Y3JlYXRlVGhy
ZWFkQFdURkBAWUFJUDZBWFBBWEBaMFBCREBaCiAgICAgICAgID9jdXJyZW50VGhyZWFkQFdURkBA
WUFJWFoKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTk5NTgpCisr
KyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIwIEBACisyMDEyLTA2LTExICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90
b3JvbGEuY29tPgorCisgICAgICAgIFtEUlRdIExUQzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCkgY291bGQgYmUgbW92ZWQgdG8gSW50ZXJuYWxzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRoZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCBmcm9tIExheW91dFRlc3RDb3Ryb2xsZXIgdG8gSW50ZXJuYWxzIGFuZAorICAgICAgICBy
ZW1vdmUgdGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgYXMgaXQgZXhj
bHVzaXZlbHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogcHVibGlj
L1dlYkZyYW1lLmg6CisgICAgICAgIChXZWJGcmFtZSk6CisgICAgICAgICogc3JjL1dlYkZyYW1l
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwu
aDoKKyAgICAgICAgKFdlYkZyYW1lSW1wbCk6CisKIDIwMTItMDYtMDkgIEV1Z2VuZSBLbHl1Y2hu
aWtvdiAgPGV1c3Rhcy5idWdAZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFk
ZCBtZXNzYWdlIGxvb3AgaW5zdHJ1bWVudGF0aW9uIHRvIHB1YmxpYyBBUEkgYW5kIHRpbWVsaW5l
IGFnZW50CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgJKHJl
dmlzaW9uIDExOTk1NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1l
LmgJKHdvcmtpbmcgY29weSkKQEAgLTYxNywxMCArNjE3LDYgQEAgcHVibGljOgogICAgIC8vIHRv
IHN1cHBvcnQgbGF5b3V0IHRlc3RzLgogICAgIHZpcnR1YWwgV2ViU3RyaW5nIHJlbmRlclRyZWVB
c1RleHQoUmVuZGVyQXNUZXh0Q29udHJvbHMgdG9TaG93ID0gUmVuZGVyQXNUZXh0Tm9ybWFsKSBj
b25zdCA9IDA7CiAKLSAgICAvLyBSZXR1cm5zIHRoZSBjb3VudGVyIHZhbHVlIGZvciB0aGUgc3Bl
Y2lmaWVkIGVsZW1lbnQuICBUaGlzIG1ldGhvZCBpcwotICAgIC8vIHVzZWQgdG8gc3VwcG9ydCBs
YXlvdXQgdGVzdHMuCi0gICAgdmlydHVhbCBXZWJTdHJpbmcgY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoY29uc3QgV2ViU3RyaW5nJiBpZCkgY29uc3QgPSAwOwotCiAgICAgLy8gQ2FsbHMgbWFy
a2VyVGV4dEZvckxpc3RJdGVtKCkgZGVmaW5lZCBpbiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
cmVlQXNUZXh0LmguCiAgICAgdmlydHVhbCBXZWJTdHJpbmcgbWFya2VyVGV4dEZvckxpc3RJdGVt
KGNvbnN0IFdlYkVsZW1lbnQmKSBjb25zdCA9IDA7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkocmV2aXNpb24gMTE5OTU3KQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTk2MSwxOCArMTk2MSw2IEBAIFdlYlN0cmluZyBXZWJGcmFtZUltcGw6OnJlbmRlclRyZWVBc1Rl
eHQKICAgICByZXR1cm4gZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihtX2ZyYW1lLCBiZWhhdmlvcik7
CiB9CiAKLVdlYlN0cmluZyBXZWJGcmFtZUltcGw6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KGNvbnN0IFdlYlN0cmluZyYgaWQpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX2ZyYW1lKQotICAgICAg
ICByZXR1cm4gV2ViU3RyaW5nKCk7Ci0KLSAgICBFbGVtZW50KiBlbGVtZW50ID0gbV9mcmFtZS0+
ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoaWQpOwotICAgIGlmICghZWxlbWVudCkKLSAgICAg
ICAgcmV0dXJuIFdlYlN0cmluZygpOwotCi0gICAgcmV0dXJuIGNvdW50ZXJWYWx1ZUZvckVsZW1l
bnQoZWxlbWVudCk7Ci19Ci0KIFdlYlN0cmluZyBXZWJGcmFtZUltcGw6Om1hcmtlclRleHRGb3JM
aXN0SXRlbShjb25zdCBXZWJFbGVtZW50JiB3ZWJFbGVtZW50KSBjb25zdAogewogICAgIHJldHVy
biBXZWJDb3JlOjptYXJrZXJUZXh0Rm9yTGlzdEl0ZW0oY29uc3RfY2FzdDxFbGVtZW50Kj4od2Vi
RWxlbWVudC5jb25zdFVud3JhcDxFbGVtZW50PigpKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAkocmV2aXNpb24gMTE5OTU3KQorKysgU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyMiw3
ICsyMjIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgY29udGVudEFzVGV4dChz
aXplX3QgbWF4Q2hhcnMpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGNvbnRlbnRBc01h
cmt1cCgpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIHJlbmRlclRyZWVBc1RleHQoUmVu
ZGVyQXNUZXh0Q29udHJvbHMgdG9TaG93ID0gUmVuZGVyQXNUZXh0Tm9ybWFsKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIFdlYlN0cmluZyBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChjb25zdCBXZWJT
dHJpbmcmIGlkKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBtYXJrZXJUZXh0Rm9yTGlz
dEl0ZW0oY29uc3QgV2ViRWxlbWVudCYpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IHBhZ2VOdW1i
ZXJGb3JFbGVtZW50QnlJZChjb25zdCBXZWJTdHJpbmcmIGlkLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBwYWdlV2lkdGhJblBpeGVscywKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cJKHJldmlzaW9uIDExOTk1OCkKKysrIFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA2LTExICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFtEUlRdIExU
Qzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkgY291bGQgYmUgbW92ZWQgdG8gSW50ZXJu
YWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0
MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3Zl
IHRoZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCBmcm9tIExheW91dFRlc3RDb3Ryb2xsZXIg
dG8gSW50ZXJuYWxzIGFuZAorICAgICAgICByZW1vdmUgdGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZp
YyBpbXBsZW1lbnRhdGlvbnMgYXMgaXQgZXhjbHVzaXZlbHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlv
bmFsaXR5LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsLmNwcDoKKwogMjAxMi0wNi0wNSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciB0YXJnZXQtZGVuc2l0eWRwaSBpbiB0aGUgdmll
d3BvcnQgbWV0YSB0YWcKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAkocmV2aXNpb24g
MTE5OTU3KQorKysgU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTcsMjEgKzk3LDYgQEAgdm9pZCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmNsZWFyT3BlbgogICAgICAgICBmcmFtZS0+bG9hZGVy
KCktPnNldE9wZW5lcigwKTsKIH0KIAotU3RyaW5nIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6
Y291bnRlclZhbHVlQnlFbGVtZW50SWQoY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBjb25z
dCBjaGFyKiBlbGVtZW50SWQpCi17Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gRVdLUHJp
dmF0ZTo6Y29yZUZyYW1lKGV3a0ZyYW1lKTsKLQotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKLQotICAgIFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQgPSBmcmFtZS0+
ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKLQotICAgIGlmICghZWxlbWVu
dCkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgcmV0dXJuIFdlYkNvcmU6OmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnQoZWxlbWVudCk7Ci19Ci0KIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsOjplbGVtZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRoSWQoY29uc3QgRXZh
c19PYmplY3QqIGV3a0ZyYW1lLCBjb25zdCBTdHJpbmcmIGVsZW1lbnRJZCkKIHsKICAgICBXZWJD
b3JlOjpGcmFtZSogZnJhbWUgPSBFV0tQcml2YXRlOjpjb3JlRnJhbWUoZXdrRnJhbWUpOwpJbmRl
eDogU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24gMTE5OTU4KQorKysgU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDYtMTEgIEth
dXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgW0RS
VF0gTFRDOjogY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoKSBjb3VsZCBiZSBtb3ZlZCB0byBJ
bnRlcm5hbHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NDQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1vdmUgdGhlIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIGZyb20gTGF5b3V0VGVzdENvdHJv
bGxlciB0byBJbnRlcm5hbHMgYW5kCisgICAgICAgIHJlbW92ZSB0aGUgb2xkIHBsYXRmb3JtIHNw
ZWNpZmljIGltcGxlbWVudGF0aW9ucyBhcyBpdCBleGNsdXNpdmVseSB0ZXN0cyBXZWJDb3JlIGZ1
bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGsuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0ay5oOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToKKwogMjAxMi0w
Ni0wNyAgU2ltb24gUGVuYSAgPHNwZW5hQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gZGV2
aWNlU2NhbGVGYWN0b3Igc2V0dGluZyBpcyBub3QgaG9ub3JlZApJbmRleDogU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGsuY3BwCShyZXZpc2lvbiAxMTk5NTcpCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xODksMjggKzE4OSw2IEBAIENTdHJpbmcgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkdW1w
UmUKIH0KIAogLyoqCi0gKiBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZDoKLSAqIEBmcmFtZTog
YSAjV2ViS2l0V2ViRnJhbWUKLSAqIEBpZDogYW4gZWxlbWVudCBJRCBzdHJpbmcKLSAqCi0gKiBS
ZXR1cm4gdmFsdWU6IFRoZSBjb3VudGVyIHZhbHVlIG9mIGVsZW1lbnQgQGlkIGluIEBmcmFtZQot
ICovCi1DU3RyaW5nIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Y291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBjaGFyKiBpZCkKLXsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgQ1N0cmluZygp
KTsKLQotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKLSAgICBpZiAoIWNvcmVG
cmFtZSkKLSAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKLQotICAgIEVsZW1lbnQqIGNvcmVFbGVt
ZW50ID0gY29yZUZyYW1lLT5kb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJZChBdG9taWNTdHJpbmco
aWQpKTsKLSAgICBpZiAoIWNvcmVFbGVtZW50KQotICAgICAgICByZXR1cm4gQ1N0cmluZygpOwot
Ci0gICAgcmV0dXJuIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnQoY29yZUVsZW1lbnQpLnV0ZjgoKTsK
LX0KLQotLyoqCiAgKiBudW1iZXJGb3JFbGVtZW50QnlJZAogICogQGZyYW1lOiBhICNXZWJLaXRX
ZWJGcmFtZQogICogQGlkOiBhbiBlbGVtZW50IElEIHN0cmluZwpJbmRleDogU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmgJKHJldmlzaW9uIDExOTk1NykKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3
ICs2MSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgR1NMaXN0KiBnZXRGcmFtZUNoaWxkcmVuKFdl
YktpdFdlYkZyYW1lKik7CiAgICAgc3RhdGljIFdURjo6Q1N0cmluZyBnZXRJbm5lclRleHQoV2Vi
S2l0V2ViRnJhbWUqKTsKICAgICBzdGF0aWMgV1RGOjpDU3RyaW5nIGR1bXBSZW5kZXJUcmVlKFdl
YktpdFdlYkZyYW1lKik7Ci0gICAgc3RhdGljIFdURjo6Q1N0cmluZyBjb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZChXZWJLaXRXZWJGcmFtZSosIGNvbnN0IGNoYXIqIGlkKTsKICAgICBzdGF0aWMg
aW50IHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChXZWJLaXRXZWJGcmFtZSosIGNvbnN0IGNoYXIq
IGlkLCBmbG9hdCBwYWdlV2lkdGgsIGZsb2F0IHBhZ2VIZWlnaHQpOwogICAgIHN0YXRpYyBpbnQg
bnVtYmVyT2ZQYWdlc0ZvckZyYW1lKFdlYktpdFdlYkZyYW1lKiwgZmxvYXQgcGFnZVdpZHRoLCBm
bG9hdCBwYWdlSGVpZ2h0KTsKICAgICBzdGF0aWMgV1RGOjpDU3RyaW5nIHBhZ2VQcm9wZXJ0eShX
ZWJLaXRXZWJGcmFtZSosIGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgaW50IHBhZ2VOdW1iZXIp
OwpJbmRleDogU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDExOTk1OCkKKysrIFNvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDYtMTEg
IEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAg
W0RSVF0gTFRDOjogY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoKSBjb3VsZCBiZSBtb3ZlZCB0
byBJbnRlcm5hbHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NDQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1vdmUgdGhlIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIGZyb20gTGF5b3V0VGVzdENv
dHJvbGxlciB0byBJbnRlcm5hbHMgYW5kCisgICAgICAgIHJlbW92ZSB0aGUgb2xkIHBsYXRmb3Jt
IHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBhcyBpdCBleGNsdXNpdmVseSB0ZXN0cyBXZWJDb3Jl
IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQuaDoKKwogMjAxMi0wNi0wOCAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFu
bkBub2tpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IGZpbGUgcGVybWlzc2lvbnMu
CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAkocmV2aXNpb24gMTE5OTU3KQorKysgU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQwNSwxNyArNDA1LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6Z2FyYmFnZUNvbAogI2VuZGlmCiB9CiAKLS8vIFJldHVybnMgdGhlIHZhbHVlIG9mIGNv
dW50ZXIgaW4gdGhlIGVsZW1lbnQgc3BlY2lmaWVkIGJ5IFxhIGlkLgotUVN0cmluZyBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoUVdlYkZyYW1lKiBm
cmFtZSwgY29uc3QgUVN0cmluZyYgaWQpCi17Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFFXZWJG
cmFtZVByaXZhdGU6OmNvcmUoZnJhbWUpOwotICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBj
b3JlRnJhbWUtPmRvY3VtZW50KCkpIHsKLSAgICAgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBk
b2N1bWVudC0+Z2V0RWxlbWVudEJ5SWQoaWQpKQotICAgICAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnQoZWxlbWVudCk7Ci0gICAgfQotICAgIHJldHVybiBRU3Ry
aW5nKCk7Ci19Ci0KIGludCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6cGFnZU51bWJlckZvckVs
ZW1lbnRCeUlkKFFXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFFTdHJpbmcmIGlkLCBmbG9hdCB3aWR0
aCwgZmxvYXQgaGVpZ2h0KQogewogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBRV2ViRnJhbWVQcml2
YXRlOjpjb3JlKGZyYW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgJKHJldmlzaW9uIDExOTk1
NykKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDcgKzEzNSw2IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgdm9pZCB3ZWJJbnNwZWN0b3JDbG9zZShRV2ViUGFnZSogcGFnZSk7CiAKICAgICBzdGF0
aWMgUVN0cmluZyB3ZWJQYWdlR3JvdXBOYW1lKFFXZWJQYWdlICpwYWdlKTsKLSAgICBzdGF0aWMg
UVN0cmluZyBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChRV2ViRnJhbWUqIGZyYW1lLCBjb25z
dCBRU3RyaW5nJiBpZCk7CiAgICAgc3RhdGljIHZvaWQgd2ViUGFnZVNldEdyb3VwTmFtZShRV2Vi
UGFnZSogcGFnZSwgY29uc3QgUVN0cmluZyYgZ3JvdXBOYW1lKTsKICAgICBzdGF0aWMgdm9pZCBj
bGVhckZyYW1lTmFtZShRV2ViRnJhbWUqIGZyYW1lKTsKICAgICBzdGF0aWMgdm9pZCBvdmVyd3Jp
dGVQbHVnaW5EaXJlY3RvcmllcygpOwpJbmRleDogU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMTE5
OTU4KQorKysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTItMDYtMTEgIEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBt
b3Rvcm9sYS5jb20+CisKKyAgICAgICAgW0RSVF0gTFRDOjogY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoKSBjb3VsZCBiZSBtb3ZlZCB0byBJbnRlcm5hbHMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDQwNgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkIGZyb20gTGF5b3V0VGVzdENvdHJvbGxlciB0byBJbnRlcm5hbHMgYW5kCisgICAgICAg
IHJlbW92ZSB0aGUgb2xkIHBsYXRmb3JtIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBhcyBpdCBl
eGNsdXNpdmVseSB0ZXN0cyBXZWJDb3JlIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBJbnRl
cmZhY2VzL0lXZWJGcmFtZVByaXZhdGUuaWRsOgorICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAg
ICAgICAgKiBXZWJGcmFtZS5oOgorCiAyMDEyLTA2LTEwICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5y
ZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MTE5OTU1LgpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAkocmV2aXNpb24gMTE5OTU3KQorKysg
U291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04ODgsMjUg
Kzg4OCw2IEBAIEhSRVNVTFQgV2ViRnJhbWU6OnJlbmRlclRyZWVBc0V4dGVybmFsUmUKICAgICBy
ZXR1cm4gU19PSzsKIH0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJGcmFtZTo6Y291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoCi0gICAgLyogW2luXSAqLyBCU1RSIGlkLCAvKiBbcmV0
dmFsXVtvdXRdICovIEJTVFIgKnJlc3VsdCkKLXsKLSAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAg
cmV0dXJuIEVfUE9JTlRFUjsKLQotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKHRoaXMpOwot
ICAgIGlmICghY29yZUZyYW1lKQotICAgICAgICByZXR1cm4gRV9GQUlMOwotCi0gICAgU3RyaW5n
IGNvcmVJZCA9IFN0cmluZyhpZCwgU3lzU3RyaW5nTGVuKGlkKSk7Ci0KLSAgICBFbGVtZW50KiBl
bGVtZW50ID0gY29yZUZyYW1lLT5kb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJZChjb3JlSWQpOwot
ICAgIGlmICghZWxlbWVudCkKLSAgICAgICAgcmV0dXJuIEVfRkFJTDsKLSAgICAqcmVzdWx0ID0g
QlN0cmluZyhjb3VudGVyVmFsdWVGb3JFbGVtZW50KGVsZW1lbnQpKS5yZWxlYXNlKCk7Ci0gICAg
cmV0dXJuIFNfT0s7Ci19Ci0KIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRnJhbWU6OnBh
Z2VOdW1iZXJGb3JFbGVtZW50QnlJZCgKICAgICAvKiBbaW5dICovIEJTVFIgaWQsCiAgICAgLyog
W2luXSAqLyBmbG9hdCBwYWdlV2lkdGhJblBpeGVscywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2lu
L1dlYkZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuaAko
cmV2aXNpb24gMTE5OTU3KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTYzLDEwICsxNjMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIHVudXNlZDEoQlNUUiopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQog
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSByZW5kZXJUcmVlQXNFeHRlcm5h
bFJlcHJlc2VudGF0aW9uKEJPT0wgZm9yUHJpbnRpbmcsIEJTVFIgKnJlc3VsdCk7CiAKLSAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoCi0gICAgICAgIC8qIFtpbl0gKi8gQlNUUiBpZCwKLSAgICAgICAgLyogW3JldHZhbF1bb3V0
XSAqLyBCU1RSICpyZXN1bHQpOwotCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZCgKICAgICAgICAgLyogW2luXSAqLyBCU1RSIGlk
LAogICAgICAgICAvKiBbaW5dICovIGZsb2F0IHBhZ2VXaWR0aEluUGl4ZWxzLApJbmRleDogU291
cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViRnJhbWVQcml2YXRlLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJGcmFtZVByaXZhdGUuaWRsCShy
ZXZpc2lvbiAxMTk5NTcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJGcmFt
ZVByaXZhdGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC05Niw4ICs5Niw2IEBAIGludGVyZmFjZSBJ
V2ViRnJhbWVQcml2YXRlIDogSVVua25vd24KIAogICAgIFtsb2NhbF0gSlNHbG9iYWxDb250ZXh0
UmVmIGdsb2JhbENvbnRleHRGb3JTY3JpcHRXb3JsZChbaW5dIElXZWJTY3JpcHRXb3JsZCopOwog
Ci0gICAgSFJFU1VMVCBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChbaW5dIEJTVFIgaWQsIFtv
dXQsIHJldHZhbF0gQlNUUiogcmVzdWx0KTsKLQogICAgIEhSRVNVTFQgdmlzaWJsZUNvbnRlbnRS
ZWN0KFtvdXQsIHJldHZhbF0gUkVDVCopOwogCiAgICAgSFJFU1VMVCBwYWdlTnVtYmVyRm9yRWxl
bWVudEJ5SWQoW2luXSBCU1RSIGlkLCBbaW5dIGZsb2F0IHBhZ2VXaWR0aEluUGl4ZWxzLCBbaW5d
IGZsb2F0IHBhZ2VIZWlnaHRJblBpeGVscywgW291dCwgcmV0dmFsXSBpbnQqIHBhZ2VOdW1iZXIp
OwpJbmRleDogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCShyZXZpc2lvbiAxMTk5NTcpCisrKyBTb3Vy
Y2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNiArMTA2
LDcgQEAgX1pOSzdXZWJDb3JlOERvY3VtZW50OHNldHRpbmdzRXY7CiBfWk5LN1dlYkNvcmU4RG9j
dW1lbnQ0dmlld0V2OwogX1pOSzdXZWJDb3JlNVJhbmdlNHRleHRFdjsKIF9aTks3V2ViQ29yZTlU
cmVlU2NvcGUxNGdldEVsZW1lbnRCeUlkRVJLTjNXVEYxMkF0b21pY1N0cmluZ0U7CitfWk43V2Vi
Q29yZTIyY291bnRlclZhbHVlRm9yRWxlbWVudEVQTlNfN0VsZW1lbnRFOwogX1pOSzdXZWJDb3Jl
MTREb2N1bWVudE1hcmtlcjExZGVzY3JpcHRpb25FdjsKIF9aTjdXZWJDb3JlOERvY3VtZW50MTZp
c1BhZ2VCb3hWaXNpYmxlRWk7CiBfWk43V2ViQ29yZTE5QW5pbWF0aW9uQ29udHJvbGxlcjE3c3Vz
cGVuZEFuaW1hdGlvbnNFdjsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDExOTk1OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA2LTExICBLYXVzdHViaCBBdHJhd2Fs
a2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFtEUlRdIExUQzo6IGNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkgY291bGQgYmUgbW92ZWQgdG8gSW50ZXJuYWxzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0MDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRoZSBjb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCBmcm9tIExheW91dFRlc3RDb3Ryb2xsZXIgdG8gSW50ZXJu
YWxzIGFuZAorICAgICAgICByZW1vdmUgdGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1l
bnRhdGlvbnMgYXMgaXQgZXhjbHVzaXZlbHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlvbmFsaXR5Lgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRl
c3RDb250cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91
dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENv
bnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpzZXRQT1NJWExvY2FsZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVy
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwu
Y3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0
ay5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVy
TWFjLm1tOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlv
dXRUZXN0Q29udHJvbGxlcik6CisKIDIwMTItMDYtMTAgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgRXhwb3NlIGxheW91dFRlc3RDb250cm9sbGVyIGFzIHRlc3RS
dW5uZXIKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAJKHJldmlzaW9uIDExOTk1NykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYyLDIyICs2NjIsNiBAQCBzdGF0
aWMgSlNWYWx1ZVJlZiBmaW5kU3RyaW5nQ2FsbGJhY2soSlNDCiAgICAgcmV0dXJuIEpTVmFsdWVN
YWtlQm9vbGVhbihjb250ZXh0LCBjb250cm9sbGVyLT5maW5kU3RyaW5nKGNvbnRleHQsIHRhcmdl
dC5nZXQoKSwgb3B0aW9ucykpOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJlZiBjb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBm
dW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNv
bnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAg
ICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjb250ZXh0KTsKLQotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBlbGVtZW50SWQo
QWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRp
b24pKTsKLSAgICBpZiAoKmV4Y2VwdGlvbikKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOwotCi0gICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIg
PSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0
aGlzT2JqZWN0KSk7Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNvdW50ZXJWYWx1ZShj
b250cm9sbGVyLT5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChlbGVtZW50SWQuZ2V0KCkpKTsK
LSAgICBpZiAoIWNvdW50ZXJWYWx1ZS5nZXQoKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpOwotICAgIHJldHVybiBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0
LCBjb3VudGVyVmFsdWUuZ2V0KCkpOwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBnb0JhY2tDYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0
UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFy
Z3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgTGF5b3V0VGVzdENvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpT
T2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CkBAIC0yMzM1LDcgKzIzMTksNiBAQCBKU1N0
YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6CiAgICAgICAgIHsgImV2YWx1YXRl
U2NyaXB0SW5Jc29sYXRlZFdvcmxkIiwgZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGRDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJleGVjQ29tbWFuZCIsIGV4ZWNDb21tYW5kQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICAgICAgICAgeyAiZmluZFN0cmluZyIsIGZpbmRTdHJpbmdDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAotICAgICAgICB7ICJjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCIsIGNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAib3JpZ2luc1dp
dGhBcHBsaWNhdGlvbkNhY2hlIiwgb3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlQ2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAiZ29CYWNrIiwgZ29CYWNrQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCiAg
ICAgICAgIHsgImdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24iLCBncmFudERlc2t0
b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCkluZGV4OiBUb29scy9E
dW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDExOTk1NykK
KysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU2LDcgKzU2LDYgQEAgcHVibGljOgogICAgIGJvb2wgY2FsbFNob3VsZENsb3Nl
T25XZWJWaWV3KCk7CiAgICAgSlNTdHJpbmdSZWYgY29weURlY29kZWRIb3N0TmFtZShKU1N0cmlu
Z1JlZiBuYW1lKTsKICAgICBKU1N0cmluZ1JlZiBjb3B5RW5jb2RlZEhvc3ROYW1lKEpTU3RyaW5n
UmVmIG5hbWUpOwotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCk7CiAgICAgdm9pZCBkZWxpdmVyV2ViSW50ZW50KEpT
U3RyaW5nUmVmIGFjdGlvbiwgSlNTdHJpbmdSZWYgdHlwZSwgSlNTdHJpbmdSZWYgZGF0YSk7CiAg
ICAgdm9pZCBkaXNhYmxlSW1hZ2VMb2FkaW5nKCk7CiAgICAgdm9pZCBkaXNwYXRjaFBlbmRpbmdM
b2FkUmVxdWVzdHMoKTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5
b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1w
UmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAJ
KHJldmlzaW9uIDExOTk1NykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5
b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDI5LDIx
ICs0MjksNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkaXNhYmxlSW1hZ2VMCiAgICAg
QmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnBh
Z2UoKS0+c2V0dGluZ3MoKS0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGZhbHNlKTsKIH0K
IAotSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpjb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKLXsKLSAgICBTdHJpbmcgaWRTdHIg
PSBqc1N0cmluZ1JlZlRvV2ViQ29yZVN0cmluZyhpZCk7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCog
Y29yZUVsZW1lbnQgPSBtYWluRnJhbWUtPmRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKEF0b21p
Y1N0cmluZyhpZFN0cikpOwotICAgIGlmICghY29yZUVsZW1lbnQpCi0gICAgICAgIHJldHVybiAw
OwotCi0gICAgQ1N0cmluZyBjb3VudGVyVmFsdWVTdHIgPSBjb3VudGVyVmFsdWVGb3JFbGVtZW50
KGNvcmVFbGVtZW50KS51dGY4KCk7Ci0gICAgaWYgKGNvdW50ZXJWYWx1ZVN0ci5pc051bGwoKSkK
LSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY291bnRl
clZhbHVlKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhjb3VudGVyVmFsdWVT
dHIuZGF0YSgpKSk7Ci0gICAgcmV0dXJuIGNvdW50ZXJWYWx1ZTsKLX0KLQogdm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6b3ZlcnJpZGVQcmVmZXJlbmNlKEpTU3RyaW5nUmVmIGtleSwgSlNTdHJp
bmdSZWYgdmFsdWUpCiB7CiAgICAgaWYgKCFtYWluRnJhbWUpCkluZGV4OiBUb29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCShy
ZXZpc2lvbiAxMTk5NTcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNCw3ICsxMjQsNiBAQCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsCiAgICAgYmluZE1ldGhvZCgiYWRk
VXNlclN0eWxlU2hlZXQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNoZWV0
KTsKICAgICBiaW5kTWV0aG9kKCJjbGVhckFsbERhdGFiYXNlcyIsICZMYXlvdXRUZXN0Q29udHJv
bGxlcjo6Y2xlYXJBbGxEYXRhYmFzZXMpOwogICAgIGJpbmRNZXRob2QoImNsb3NlV2ViSW5zcGVj
dG9yIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpjbG9zZVdlYkluc3BlY3Rvcik7Ci0gICAgYmlu
ZE1ldGhvZCgiY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQiLCAmTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKTsKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NL
KQogICAgIGJpbmRNZXRob2QoImRpZExvc2VQb2ludGVyTG9jayIsICZMYXlvdXRUZXN0Q29udHJv
bGxlcjo6ZGlkTG9zZVBvaW50ZXJMb2NrKTsKICNlbmRpZgpAQCAtMTY1OCwyMCArMTY1Nyw2IEBA
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBPU0lYTG9jYWwKICAgICAgICAgc2V0bG9j
YWxlKExDX0FMTCwgYXJndW1lbnRzWzBdLnRvU3RyaW5nKCkuY19zdHIoKSk7CiB9CiAKLXZvaWQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgcmVz
dWx0LT5zZXROdWxsKCk7Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAxIHx8ICFhcmd1bWVu
dHNbMF0uaXNTdHJpbmcoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIFdlYkZyYW1lKiBmcmFtZSA9
IG1fc2hlbGwtPndlYlZpZXcoKS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAg
ICAgcmV0dXJuOwotICAgIFdlYlN0cmluZyBjb3VudGVyVmFsdWUgPSBmcmFtZS0+Y291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1swXSkpOwot
ICAgIGlmIChjb3VudGVyVmFsdWUuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybjsKLSAgICByZXN1
bHQtPnNldChjb3VudGVyVmFsdWUudXRmOCgpKTsKLX0KLQogLy8gUGFyc2UgYSBzaW5nbGUgYXJn
dW1lbnQuIFRoZSBtZXRob2QgcmV0dXJucyB0cnVlIGlmIHRoZXJlIGlzIGFuIGFyZ3VtZW50IHRo
YXQKIC8vIGlzIGEgbnVtYmVyIG9yIGlmIHRoZXJlIGlzIG5vIGFyZ3VtZW50IGF0IGFsbC4gSXQg
cmV0dXJucyBmYWxzZSBvbmx5IGlmIHRoZXJlCiAvLyBpcyBzb21lIGFyZ3VtZW50IHRoYXQgaXMg
bm90IGEgbnVtYmVyLiBUaGUgdmFsdWUgcGFyYW1ldGVyIGlzIGZpbGxlZCB3aXRoIHRoZQpJbmRl
eDogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oCShyZXZpc2lvbiAxMTk5NTcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMjQsOSArMzI0
LDYgQEAgcHVibGljOgogICAgIC8vIFJlc2V0cyBiZXR3ZWVuIHRlc3RzLgogICAgIHZvaWQgc2V0
UE9TSVhMb2NhbGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCi0gICAg
Ly8gR2V0cyB0aGUgdmFsdWUgb2YgdGhlIGNvdW50ZXIgaW4gdGhlIGVsZW1lbnQgc3BlY2lmaWVk
IGJ5IGl0cyBJRC4KLSAgICB2b2lkIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLQogICAgIC8vIENhdXNlcyBsYXlvdXQgdG8g
aGFwcGVuIGFzIGlmIHRhcmdldHRlZCB0byBwcmludGVkIHBhZ2VzLgogICAgIHZvaWQgc2V0UHJp
bnRpbmcoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCkluZGV4OiBUb29s
cy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5j
cHAJKHJldmlzaW9uIDExOTk1NykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRU
ZXN0Q29udHJvbGxlckVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMCwxMyArMTAwLDYgQEAg
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzcGxheSgpCiAgICAgZGlzcGxheVdlYlZpZXco
KTsKIH0KIAotSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpj
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKLXsKLSAgICBjb25zdCBF
dmFzX09iamVjdCogbWFpbkZyYW1lID0gYnJvd3Nlci0+bWFpbkZyYW1lKCk7Ci0gICAgY29uc3Qg
U3RyaW5nIGNvdW50ZXJWYWx1ZShEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmNvdW50ZXJWYWx1
ZUJ5RWxlbWVudElkKG1haW5GcmFtZSwgaWQtPnVzdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7Ci0g
ICAgcmV0dXJuIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPihBZG9wdCwgSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoY291bnRlclZhbHVlLnV0ZjgoKS5kYXRhKCkpKTsKLX0KLQogdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6a2VlcFdlYkhpc3RvcnkoKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xs
ZXJHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRU
ZXN0Q29udHJvbGxlckd0ay5jcHAJKHJldmlzaW9uIDExOTk1NykKKysrIFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEwMiwxNyArMTAyLDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzcGxheSgpCiAg
ICAgZGlzcGxheVdlYlZpZXcoKTsKIH0KIAotSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91
dFRlc3RDb250cm9sbGVyOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBp
ZCkKLXsKLSAgICBnY2hhciogaWRHQ2hhciA9IEpTU3RyaW5nQ29weVVURjhDU3RyaW5nKGlkKTsK
LSAgICBDU3RyaW5nIGNvdW50ZXJWYWx1ZUdDaGFyID0gRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
Ojpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChtYWluRnJhbWUsIGlkR0NoYXIpOwotICAgIGdf
ZnJlZShpZEdDaGFyKTsKLSAgICBpZiAoY291bnRlclZhbHVlR0NoYXIuaXNOdWxsKCkpCi0gICAg
ICAgIHJldHVybiAwOwotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWUo
QWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGNvdW50ZXJWYWx1ZUdDaGFyLmRh
dGEoKSkpOwotICAgIHJldHVybiBjb3VudGVyVmFsdWU7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmtlZXBXZWJIaXN0b3J5KCkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50Cklu
ZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9s
bGVyTWFjLm1tCShyZXZpc2lvbiAxMTk5NTcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
TGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI0OSwxOSArMjQ5
LDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzcGxheSgpCiAgICAgZGlzcGxheVdl
YlZpZXcoKTsKIH0KIAotSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9s
bGVyOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKLXsKLSAgICBS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGlkQ0YoQWRvcHRDRiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmco
a0NGQWxsb2NhdG9yRGVmYXVsdCwgaWQpKTsKLSAgICBOU1N0cmluZyAqaWROUyA9IChOU1N0cmlu
ZyAqKWlkQ0YuZ2V0KCk7Ci0KLSAgICBET01FbGVtZW50ICplbGVtZW50ID0gW1ttYWluRnJhbWUg
RE9NRG9jdW1lbnRdIGdldEVsZW1lbnRCeUlkOmlkTlNdOwotICAgIGlmICghZWxlbWVudCkKLSAg
ICAgICAgcmV0dXJuIDA7Ci0KLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY291bnRlclZh
bHVlKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygoQ0ZTdHJpbmdSZWYpW21haW5G
cmFtZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50OmVsZW1lbnRdKSk7Ci0gICAgcmV0dXJuIGNvdW50
ZXJWYWx1ZTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6a2VlcFdlYkhpc3Rvcnko
KQogewogICAgIGlmICghW1dlYkhpc3Rvcnkgb3B0aW9uYWxTaGFyZWRIaXN0b3J5XSkgewpJbmRl
eDogVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJR
dC5jcHAJKHJldmlzaW9uIDExOTk1NykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91
dFRlc3RDb250cm9sbGVyUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsMTEgKzE1NSw2IEBA
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndhaXRVbnRpbERvbmUKICAgICBtX3RpbWVvdXRU
aW1lci5zdGFydChtX3RpbWVvdXQsIHRoaXMpOwogfQogCi1RU3RyaW5nIExheW91dFRlc3RDb250
cm9sbGVyOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChjb25zdCBRU3RyaW5nJiBpZCkKLXsK
LSAgICByZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKG1fZHJ0LT53ZWJQYWdlKCktPm1haW5GcmFtZSgpLCBpZCk7Ci19Ci0KIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKGNvbnN0IFFTdHJpbmcm
IG1vZGUpCiB7CiAgICAgbV9kcnQtPndlYlBhZ2UoKS0+c2V0UHJvcGVydHkoIl9xX3ZpZXdNb2Rl
IiwgbW9kZSk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJv
bGxlclF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5oCShyZXZpc2lvbiAxMTk5NTcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw3ICsx
MDUsNiBAQCBwdWJsaWMgc2xvdHM6CiAgICAgdm9pZCBzZXRDYW5PcGVuV2luZG93cygpIHsgbV9j
YW5PcGVuV2luZG93cyA9IHRydWU7IH0KICAgICB2b2lkIHNldFByaW50aW5nKCkgeyBtX2lzUHJp
bnRpbmcgPSB0cnVlOyB9CiAgICAgdm9pZCB3YWl0VW50aWxEb25lKCk7Ci0gICAgUVN0cmluZyBj
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChjb25zdCBRU3RyaW5nJiBpZCk7CiAgICAgaW50IHdl
Ykhpc3RvcnlJdGVtQ291bnQoKTsKICAgICB2b2lkIGtlZXBXZWJIaXN0b3J5KCk7CiAgICAgdm9p
ZCBub3RpZnlEb25lKCk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVz
dENvbnRyb2xsZXJXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAJKHJldmlzaW9uIDExOTk1NykKKysrIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEzMDAsMjUgKzEzMDAsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpy
ZW1vdmVBbGxWaXNpCiAgICAgc2hhcmVkSGlzdG9yeVByaXZhdGUtPnJlbW92ZUFsbFZpc2l0ZWRM
aW5rcygpOwogfQogCi1KU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkKQotewotICAgIENP
TVB0cjxJV2ViRnJhbWVQcml2YXRlPiBmcmFtZVByaXZhdGUoUXVlcnksIGZyYW1lKTsKLSAgICBp
ZiAoIWZyYW1lUHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICB3c3RyaW5nIGlkV3N0
cmluZyA9IGpzU3RyaW5nUmVmVG9XU3RyaW5nKGlkKTsKLSAgICBCU1RSIGlkQlNUUiA9IFN5c0Fs
bG9jU3RyaW5nTGVuKChPTEVDSEFSKilpZFdzdHJpbmcuY19zdHIoKSwgaWRXc3RyaW5nLmxlbmd0
aCgpKTsKLSAgICBCU1RSIGNvdW50ZXJWYWx1ZUJTVFI7Ci0gICAgaWYgKEZBSUxFRChmcmFtZVBy
aXZhdGUtPmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGlkQlNUUiwgJmNvdW50ZXJWYWx1ZUJT
VFIpKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICB3c3RyaW5nIGNvdW50ZXJWYWx1ZShjb3Vu
dGVyVmFsdWVCU1RSLCBTeXNTdHJpbmdMZW4oY291bnRlclZhbHVlQlNUUikpOwotICAgIFN5c0Zy
ZWVTdHJpbmcoaWRCU1RSKTsKLSAgICBTeXNGcmVlU3RyaW5nKGNvdW50ZXJWYWx1ZUJTVFIpOwot
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWVKUyhBZG9wdCwgSlNTdHJp
bmdDcmVhdGVXaXRoQ2hhcmFjdGVycyhjb3VudGVyVmFsdWUuZGF0YSgpLCBjb3VudGVyVmFsdWUu
bGVuZ3RoKCkpKTsKLSAgICByZXR1cm4gY291bnRlclZhbHVlSlM7Ci19Ci0KIGludCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6cGFnZU51bWJlckZvckVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkLCBm
bG9hdCBwYWdlV2lkdGhJblBpeGVscywgZmxvYXQgcGFnZUhlaWdodEluUGl4ZWxzKQogewogICAg
IENPTVB0cjxJV2ViRnJhbWVQcml2YXRlPiBmcmFtZVByaXZhdGUoUXVlcnksIGZyYW1lKTsKSW5k
ZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVy
V3guY3BwCShyZXZpc2lvbiAxMTk5NTcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlv
dXRUZXN0Q29udHJvbGxlcld4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcyLDExICs0NzIsNiBA
QCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRTY3JvbGxiYXJQCiAgICAgLy8gRklYTUU6
IGltcGxlbWVudAogfQogCi1KU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkKQotewotICAg
IHJldHVybiAwOwotfQotCiBpbnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnBhZ2VOdW1iZXJGb3JF
bGVtZW50QnlJZChKU1N0cmluZ1JlZiwgZmxvYXQsIGZsb2F0KQogewogICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxMTk5
NTcpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU0LDE2ICsyNTQsNiBAQCBKU1ZhbHVl
UmVmIExheW91dFRlc3RDb250cm9sbGVyOjpjb21wdXRlCiAgICAgcmV0dXJuIHZhbHVlOwogfQog
Ci1KU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGVsZW1lbnRJZCkKLXsKLSAgICBXS0J1bmRs
ZUZyYW1lUmVmIG1haW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShJbmplY3RlZEJ1
bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCkpOwotICAgIEpTT2JqZWN0UmVmIGVsZW1lbnQg
PSBnZXRFbGVtZW50QnlJZChtYWluRnJhbWUsIGVsZW1lbnRJZCk7Ci0gICAgaWYgKCFlbGVtZW50
KQotICAgICAgICByZXR1cm4gMDsKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdmFsdWUo
QWRvcHRXSywgV0tCdW5kbGVGcmFtZUNvcHlDb3VudGVyVmFsdWUobWFpbkZyYW1lLCBjb25zdF9j
YXN0PEpTT2JqZWN0UmVmPihlbGVtZW50KSkpOwotICAgIHJldHVybiB0b0pTKHZhbHVlKTsKLX0K
LQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjptYXJrZXJU
ZXh0Rm9yTGlzdEl0ZW0oSlNWYWx1ZVJlZiBlbGVtZW50KQogewogICAgIFdLQnVuZGxlRnJhbWVS
ZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKEluamVjdGVkQnVuZGxlOjpz
aGFyZWQoKS5wYWdlKCktPnBhZ2UoKSk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCShy
ZXZpc2lvbiAxMTk5NTcpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0xheW91dFRlc3RDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw3ICsxMDAsNiBA
QCBwdWJsaWM6CiAKICAgICAvLyBTcGVjaWFsIERPTSBmdW5jdGlvbnMuCiAgICAgSlNWYWx1ZVJl
ZiBjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oSlNWYWx1ZVJlZiBlbGVtZW50KTsK
LSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
SlNTdHJpbmdSZWYgZWxlbWVudElkKTsKICAgICB2b2lkIGNsZWFyQmFja0ZvcndhcmRMaXN0KCk7
CiAgICAgdm9pZCBleGVjQ29tbWFuZChKU1N0cmluZ1JlZiBuYW1lLCBKU1N0cmluZ1JlZiBhcmd1
bWVudCk7CiAgICAgYm9vbCBpc0NvbW1hbmRFbmFibGVkKEpTU3RyaW5nUmVmIG5hbWUpOwpJbmRl
eDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRU
ZXN0Q29udHJvbGxlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwJKHJldmlzaW9u
IDExOTk1NykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw2
IEBAIG1vZHVsZSBXVFIgewogICAgICAgICAvLyBTcGVjaWFsIERPTSBmdW5jdGlvbnMuCiAgICAg
ICAgIHZvaWQgY2xlYXJCYWNrRm9yd2FyZExpc3QoKTsKICAgICAgICAgb2JqZWN0IGNvbXB1dGVk
U3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhpbiBvYmplY3QgZWxlbWVudCk7Ci0gICAgICAgIERP
TVN0cmluZyBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChpbiBET01TdHJpbmcgZWxlbWVudElk
KTsKICAgICAgICAgdm9pZCBleGVjQ29tbWFuZChpbiBET01TdHJpbmcgbmFtZSwgaW4gRE9NU3Ry
aW5nIGFyZ3VtZW50KTsKICAgICAgICAgYm9vbGVhbiBpc0NvbW1hbmRFbmFibGVkKGluIERPTVN0
cmluZyBuYW1lKTsKICAgICAgICAgRE9NU3RyaW5nIG1hcmtlclRleHRGb3JMaXN0SXRlbShpbiBv
YmplY3QgZWxlbWVudCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTk5NTgpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MSBAQAorMjAxMi0wNi0xMSAg
S2F1c3R1YmggQXRyYXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBb
RFJUXSBMVEM6OiBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgpIGNvdWxkIGJlIG1vdmVkIHRv
IEludGVybmFscy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg0NDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTW92ZSB0aGUgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQgZnJvbSBMYXlvdXRUZXN0Q290
cm9sbGVyIHRvIEludGVybmFscyBhbmQKKyAgICAgICAgcmVtb3ZlIHRoZSBvbGQgcGxhdGZvcm0g
c3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIGFzIGl0IGV4Y2x1c2l2ZWx5IHRlc3RzIFdlYkNvcmUg
ZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzLzJkaXNwbGF5cy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvMmRpc3BsYXlzLmh0bWw6
CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvYWRkaW5nLW5vZGVzLmh0bWw6CisgICAgICAg
ICogZmFzdC9jc3MvY291bnRlcnMvYWZ0ZXItY29udGludWF0aW9uLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9hZnRlci1jb250aW51YXRpb24uaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb250ZW50LTAyMS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9jc3MvY291bnRlcnMvY29udGVudC0wMjEuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nz
cy9jb3VudGVycy9jb3VudGVyLWJlZm9yZS1jb250ZW50LW5vdC1pbmNyZW1lbnRlZC5odG1sOgor
ICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAw
Lmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAx
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3Jl
bWVudC0wMDEuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3Jl
bWVudC0wMDIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3Jl
bWVudC1pbmhlcml0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9j
b3VudGVyLWluY3JlbWVudC1pbmhlcml0Lmh0bToKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVy
cy9jb3VudGVyLWluY3JlbWVudC1vdmVyZmxvdy5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2Nv
dW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LXRlc3RzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC10ZXN0cy5odG06CisgICAgICAgICog
ZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1yZXNldC0wMDAuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2Nzcy9jb3VudGVycy9jb3VudGVyLXJlc2V0LTAwMS5odG1sOgorICAgICAgICAqIGZhc3QvY3Nz
L2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAyLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291
bnRlcnMvY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkLmh0bWw6CisgICAg
ICAgICogZmFzdC9jc3MvY291bnRlcnMvZGVlcC1iZWZvcmUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvY3NzL2NvdW50ZXJzL2RlZXAtYmVmb3JlLmh0bWw6CisgICAgICAgICogZmFzdC9j
c3MvY291bnRlcnMvaW52YWxpZGF0ZS1jYWNoZWQtY291bnRlci1ub2RlLmh0bWw6CisgICAgICAg
ICogZmFzdC9jc3MvY291bnRlcnMvbmVzdGluZy5odG1sOgorCiAyMDEyLTA2LTA4ICBLaW51a28g
WWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVc2luZyBCbG9iQnVpbGRl
ciBzaG91bGQgc2hvdyBhIGRlcHJlY2F0aW9uIHdhcm5pbmcgbWVzc2FnZSAoaWYgaXQgaXMgZW5h
YmxlZCkKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzLzJkaXNwbGF5cy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvMmRp
c3BsYXlzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE5OTU3KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY291bnRlcnMvMmRpc3BsYXlzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
Niw1ICs2LDUgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi1QQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0VmlldycpIGlz
ICcxMDAwIDEwMDAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0VmlldycpKSBpcyAnMTAwMCAxMDAwJwogCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy8yZGlzcGxheXMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy8yZGlzcGxheXMuaHRtbAkocmV2aXNpb24gMTE5
OTU3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvMmRpc3BsYXlzLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgZnVuY3Rpb24gcnVuKCkKICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGVzdFZpZXciKS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgImNvdW50
ZXIxMDAwIik7CiAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAg
IHJldHVybjsKLSAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3RWaWV3JykiLCAiJzEwMDAgMTAwMCciKTsKKyAgICBzaG91bGRC
ZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3RWaWV3JykpIiwgIicxMDAwIDEwMDAnIik7CiAKICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZGRpbmctbm9kZXMuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZGRpbmctbm9kZXMu
aHRtbAkocmV2aXNpb24gMTE5OTU3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMv
YWRkaW5nLW5vZGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKICAgICAg
ICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz
cGFuIik7CiAgICAgICAgICAgICAgICAgICAgIGlkID0gc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRy
aWJ1dGUoImlkIik7CiAgICAgICAgICAgICAgICAgICAgIGlmIChpZCAhPSBudWxsKQotICAgICAg
ICAgICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ID0gbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoaWQpOworICAgICAgICAgICAgICAg
ICAgICAgICAgbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ID0gd2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpKTsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dC5sZW5ndGgpCiAgICAgICAgICAgICAgICAg
ICAgICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSBuZXdTcGFuRWxlbWVudC5pbm5lclRl
eHQgKyAiLSI7CiAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobmV3U3Bh
bkVsZW1lbnQpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvYWZ0ZXItY29u
dGludWF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jb3VudGVycy9hZnRlci1jb250aW51YXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTk5
NTcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZnRlci1jb250aW51YXRpb24t
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogVGhpcyB0ZXN0IHBh
c3NlcyBpZiB0aGUgbnVtYmVycyBkaXNwbGF5ZWQgYmVsb3cgYXJlIDEgYW5kIDIgaW4gdGhpcyBv
cmRlci4KIAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgnYzInKSBpcyAnMicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MyJykpIGlzICcyJwogCiBURVNUIENPTVBMRVRFCiAKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2FmdGVyLWNvbnRpbnVhdGlvbi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2FmdGVyLWNvbnRp
bnVhdGlvbi5odG1sCShyZXZpc2lvbiAxMTk5NTcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
b3VudGVycy9hZnRlci1jb250aW51YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyAr
MTAsNyBAQAogICAgICAgICB9CiAgICAgICAgIGZ1bmN0aW9uIHJ1bigpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgnYzInKSIsICInMiciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYzInKSkiLCAi
JzInIik7CiAKICAgICAgICAgICAgIGRlYnVnKCcnKTsKICAgICAgICAgICAgIGRlYnVnKCdURVNU
IENPTVBMRVRFJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb250ZW50
LTAyMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291
bnRlcnMvY29udGVudC0wMjEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTk5NTcpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb250ZW50LTAyMS1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEsNyArMSw3IEBACiBUaGlzIGlzIHRoZSBXZWJLaXQgdmVyc2lvbiBvZiBD
U1MgVGVzdDogQ29udGVudCB1c2luZyBhICdjb3VudGVycygpJyBmdW5jdGlvbiB3aXRoIGEgc3Ry
aW5nIHZhbHVlLgogCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCdkaXYxJykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdkaXYyJykgaXMgJzAuMCcKK1BBU1Mgd2luZG93LmludGVy
bmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdjEnKSkgaXMgJzAn
CitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdkaXYyJykpIGlzICcwLjAnCiAKIFRFU1QgQ09NUExFVEUKIApJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY291bnRlcnMvY29udGVudC0wMjEuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb250ZW50LTAyMS5odG1sCShyZXZpc2lvbiAxMTk5
NTcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb250ZW50LTAyMS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw4IEBACiAgIHsKICAgICAgIGlmICghd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQogICAgICAgICAgIHJldHVybjsKLSAgICAgIHNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZGl2MScpIiwg
IicwJyIpOwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCdkaXYyJykiLCAiJzAuMCciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5k
b3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGl2MScp
KSIsICInMCciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGl2MicpKSIsICInMC4wJyIpOwogCiAgICAgICBk
ZWJ1ZygnJyk7CiAgICAgICBkZWJ1ZygnVEVTVCBDT01QTEVURScpOwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1iZWZvcmUtY29udGVudC1ub3QtaW5jcmVtZW50
ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3Vu
dGVyLWJlZm9yZS1jb250ZW50LW5vdC1pbmNyZW1lbnRlZC5odG1sCShyZXZpc2lvbiAxMTk5NTcp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWJlZm9yZS1jb250ZW50
LW5vdC1pbmNyZW1lbnRlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBACiAg
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNwYW5MaXN0Lmxlbmd0aDsgKytpICkgewog
ICAgICAgICAgICAgICAgIHZhciBkaXZJdGVtID0gc3Bhbkxpc3QuaXRlbShpKTsKICAgICAgICAg
ICAgICAgICBjb3VudGVycyArPSAnLSc7Ci0gICAgICAgICAgICAgICAgY291bnRlcnMgKz0gbGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoZGl2SXRlbS5nZXRB
dHRyaWJ1dGUoImlkIikpOworICAgICAgICAgICAgICAgIGNvdW50ZXJzICs9IHdpbmRvdy5pbnRl
cm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdkl0ZW0uZ2V0QXR0
cmlidXRlKCJpZCIpKSk7CiAgICAgICAgICAgICAgICAgY291bnRlcnMgKz0gZGl2SXRlbS50ZXh0
Q29udGVudDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb250YWluZXIiKS5pbm5lckhUTUwgPSBjb3VudGVyczsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1l
bnQtMDAwLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE5OTU3KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAwLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxNCArMSwxNCBAQAogVGhpcyBpcyB0aGUgV2ViS2l0IHZlcnNpb24gb2Yg
Q1NTIDIuMSBUZXN0IFN1aXRlOiBkeW5hbWljIGNoYW5nZXMgdG8gJ2NvdW50ZXItaW5jcmVtZW50
Jy4KIAogQmVmb3JlIHRoZSBkeW5hbWljIGNoYW5nZToKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIGlzICcxJwotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSBpcyAnMicK
LVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2Zv
dXInKSBpcyAnMycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ29uZScpKSBpcyAnMScKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RocmVlJykpIGlzICcyJworUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm91
cicpKSBpcyAnMycKIEFmdGVyIHRoZSBkeW5hbWljIGNoYW5nZToKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIGlzICcxJwotUEFTUyBs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdvJykgaXMg
JzInCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0aHJlZScpIGlzICczJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgnZm91cicpIGlzICc0JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJykpIGlzICcxJworUEFTUyB3aW5k
b3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHdvJykp
IGlzICcyJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGhyZWUnKSkgaXMgJzMnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3VyJykpIGlzICc0JwogCiBURVNUIENP
TVBMRVRFCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5j
cmVtZW50LTAwMC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50
ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMC5odG1sCShyZXZpc2lvbiAxMTk5NTcpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDAuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTgsMTggKzE4LDE4IEBACiAgIGZ1bmN0aW9uIGNoZWNrQ291bnRlclZh
bHVlc0JlZm9yZUNoYW5nZSgpCiAgIHsKICAgICAgIGRlYnVnKCdCZWZvcmUgdGhlIGR5bmFtaWMg
Y2hhbmdlOicpOwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSIsICInMSciKTsKLSAgICAgIHNob3VsZEJlKCJsYXlv
dXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSIsICIn
MiciKTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgnZm91cicpIiwgIiczJyIpOworICAgICAgc2hvdWxkQmUoIndpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvbmUnKSkiLCAi
JzEnIik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RocmVlJykpIiwgIicyJyIpOworICAgICAgc2hvdWxkQmUo
IndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdm
b3VyJykpIiwgIiczJyIpOwogICB9CiAKICAgZnVuY3Rpb24gY2hlY2tDb3VudGVyVmFsdWVzQWZ0
ZXJDaGFuZ2UoKQogICB7CiAgICAgICBkZWJ1ZygnQWZ0ZXIgdGhlIGR5bmFtaWMgY2hhbmdlOicp
OwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCdvbmUnKSIsICInMSciKTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdvJykiLCAiJzInIik7Ci0gICAg
ICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3RocmVlJykiLCAiJzMnIik7Ci0gICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2ZvdXInKSIsICInNCciKTsKKyAgICAgIHNo
b3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnb25lJykpIiwgIicxJyIpOworICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0d28nKSkiLCAiJzInIik7Cisg
ICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RocmVlJykpIiwgIiczJyIpOworICAgICAgc2hvdWxkQmUoIndpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3VyJykpIiwg
Iic0JyIpOwogCiAgICAgICBkZWJ1ZygnJyk7CiAgICAgICBkZWJ1ZygnVEVTVCBDT01QTEVURScp
OwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQt
MDAxLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3Vu
dGVycy9jb3VudGVyLWluY3JlbWVudC0wMDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTk5NTcp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDEt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICsxLDEzIEBACiBUaGlzIGlzIHRo
ZSBXZWJLaXQgdmVyc2lvbiBvZiBDU1MgMi4xIFRlc3QgU3VpdGU6IGR5bmFtaWMgY2hhbmdlcyB0
byAnY291bnRlci1pbmNyZW1lbnQnLgogCiBCZWZvcmUgdGhlIGR5bmFtaWMgY2hhbmdlOgotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnb25lJykg
aXMgJzEnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0d28nKSBpcyAnMycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3RocmVlJykgaXMgJzQnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvbmUnKSkgaXMgJzEnCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0d28n
KSkgaXMgJzMnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0aHJlZScpKSBpcyAnNCcKIEFmdGVyIHRoZSBkeW5hbWljIGNoYW5nZToK
LVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29u
ZScpIGlzICcxJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndHdvJykgaXMgJzInCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJlZScpIGlzICczJworUEFTUyB3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJykpIGlzICcxJworUEFT
UyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dHdvJykpIGlzICcyJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGhyZWUnKSkgaXMgJzMnCiAKIFRFU1QgQ09NUExFVEUKIApJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAxLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1p
bmNyZW1lbnQtMDAxLmh0bWwJKHJldmlzaW9uIDExOTk1NykKKysrIExheW91dFRlc3RzL2Zhc3Qv
Y3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xOCwxNyArMTgsMTcgQEAKICAgZnVuY3Rpb24gY2hlY2tDb3VudGVyVmFsdWVzQmVmb3JlQ2hh
bmdlKCkKICAgewogICAgICAgZGVidWcoJ0JlZm9yZSB0aGUgZHluYW1pYyBjaGFuZ2U6Jyk7Ci0g
ICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ29uZScpIiwgIicxJyIpOwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d28nKSIsICInMyciKTsKLSAgICAgIHNo
b3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dGhyZWUnKSIsICInNCciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJykpIiwgIicxJyIpOworICAgICAg
c2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0d28nKSkiLCAiJzMnIik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RocmVlJykpIiwgIic0JyIp
OwogICB9CiAKICAgZnVuY3Rpb24gY2hlY2tDb3VudGVyVmFsdWVzQWZ0ZXJDaGFuZ2UoKQogICB7
CiAgICAgICBkZWJ1ZygnQWZ0ZXIgdGhlIGR5bmFtaWMgY2hhbmdlOicpOwotICAgICAgc2hvdWxk
QmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUn
KSIsICInMSciKTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgndHdvJykiLCAiJzInIik7Ci0gICAgICBzaG91bGRCZSgibGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVlJykiLCAi
JzMnIik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29uZScpKSIsICInMSciKTsKKyAgICAgIHNob3VsZEJlKCJ3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHdv
JykpIiwgIicyJyIpOworICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aHJlZScpKSIsICInMyciKTsKIAogICAgICAg
ZGVidWcoJycpOwogICAgICAgZGVidWcoJ1RFU1QgQ09NUExFVEUnKTsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMi5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAw
Mi5odG1sCShyZXZpc2lvbiAxMTk5NTcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVy
cy9jb3VudGVyLWluY3JlbWVudC0wMDIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIs
NyBAQAogICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzcGFuTGlzdC5sZW5ndGg7ICsr
aSApIHsKICAgICAgICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJzcGFuIik7CiAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50Lmlu
bmVyVGV4dCA9Ci0gICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJpZCIp
KTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRyaWJ1dGUoImlkIikp
KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dC5sZW5n
dGgpCiAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSBu
ZXdTcGFuRWxlbWVudC5pbm5lclRleHQgKyAiLSI7CiAgICAgICAgICAgICAgICAgICAgIGNvbnNv
bGUuYXBwZW5kQ2hpbGQobmV3U3BhbkVsZW1lbnQpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtaW5oZXJpdC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQt
aW5oZXJpdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExOTk1NykKKysrIExheW91dFRlc3RzL2Zh
c3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LWluaGVyaXQtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnd3JhcHBlcjkwJykgaXMgJzUnCi1QQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OTAnKSBpcyAn
MTAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0OTBhJykgaXMgJzE1JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgnd3JhcHBlcjkxJykgaXMgJzEwJwotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDkxJykgaXMgJzIwJwotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDkx
YScpIGlzICczMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3dyYXBwZXI5MCcpKSBpcyAnNScKK1BBU1Mgd2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q5MCcpKSBpcyAnMTAn
CitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0OTBhJykpIGlzICcxNScKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dyYXBwZXI5MScpKSBpcyAnMTAnCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
OTEnKSkgaXMgJzIwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGVzdDkxYScpKSBpcyAnMzAnCiAKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LWluaGVyaXQuaHRtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LWlu
aGVyaXQuaHRtCShyZXZpc2lvbiAxMTk5NTcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3Vu
dGVycy9jb3VudGVyLWluY3JlbWVudC1pbmhlcml0Lmh0bQkod29ya2luZyBjb3B5KQpAQCAtMTMs
MTIgKzEzLDEyIEBACiAgICAgICAgICAgICBmdW5jdGlvbiBydW4oKQogICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgIC8vIFNvbWUgZXh0cmEgV2ViS2l0IHRlc3RpbmcgZm9yIGNvdW50ZXIt
aW5jcmVtZW50IGluaGVyaXQKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3dyYXBwZXI5MCcpIiwgIic1JyIp
OwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDkwJykiLCAiJzEwJyIpOwotICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndGVzdDkwYScpIiwgIicxNSciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3dyYXBwZXI5MScpIiwg
IicxMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5MScpIiwgIicyMCciKTsKLSAgICAgICAg
ICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3Rlc3Q5MWEnKSIsICInMzAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
IndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3
cmFwcGVyOTAnKSkiLCAiJzUnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0OTAnKSki
LCAiJzEwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDkwYScpKSIsICInMTUnIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cmFwcGVyOTEnKSkiLCAiJzEwJyIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGVzdDkxJykpIiwgIicyMCciKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3Q5MWEnKSkiLCAiJzMwJyIpOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LW92ZXJmbG93Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtb3Zl
cmZsb3cuaHRtbAkocmV2aXNpb24gMTE5OTU3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291
bnRlcnMvY291bnRlci1pbmNyZW1lbnQtb3ZlcmZsb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTgsNyArMTgsNyBAQAogICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgICAgICB7CiAgICAg
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb3VudGVkJykuaW5uZXJUZXh0ID0gbGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2NvdW50ZWQnKTsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY291bnRlZCcpLmlubmVyVGV4dCA9
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
b3VudGVkJykpOwogICAgICAgICB9CiAKICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2xvYWQnLCBkb1Rlc3QsIGZhbHNlKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50
ZXJzL2NvdW50ZXItaW5jcmVtZW50LXRlc3RzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC10ZXN0cy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDExOTk1NykKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50
ZXJzL2NvdW50ZXItaW5jcmVtZW50LXRlc3RzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSw1OCArMSw1OCBAQAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndGVzdDMnKSBpcyAnLTIxNDc0ODM2NDgnCi1QQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NCcpIGlzICctMjE0NzQ4
MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3Rlc3Q1JykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NicpIGlzICcwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDcnKSBpcyAnMCcKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q4JykgaXMgJzEw
JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dGVzdDknKSBpcyAnMTAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCd0ZXN0MTAnKSBpcyAnMjE0NzQ4MzY0NicKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxMScpIGlzICcyMTQ3NDgz
NjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndGVzdDEyJykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTMnKSBpcyAnMjE0NzQ4MzY0NycKLVBBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxNCcp
IGlzICcyJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgndGVzdDE1JykgaXMgJy0yMTQ3NDgzNjQ4JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDE2JykgaXMgJy0yMTQ3NDgzNjQ4Jwot
UEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDE3JykgaXMgJy0yMTQ3NDgzNjQ4JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDE4JykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTknKSBpcyAnMCcKLVBBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyMCcp
IGlzICcwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgndGVzdDIxJykgaXMgJzIwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDIyJykgaXMgJzIwJwotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDIzJykgaXMgJzIxNDc0ODM2
NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0MjQnKSBpcyAnMjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyNScpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI2Jykg
aXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCd0ZXN0MjcnKSBpcyAnMycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyOCcpIGlzICctMjE0NzQ4MzY0OCcKLVBB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Qy
OScpIGlzICctMjE0NzQ4MzY0OCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzMCcpIGlzICctMjE0NzQ4MzY0OCcKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzMScpIGlzICcw
JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dGVzdDMyJykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCd0ZXN0MzMnKSBpcyAnMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzNCcpIGlzICczMCcKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzNScpIGlzICcz
MCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3Rlc3QzNicpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM3JykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzgnKSBp
cyAnMjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3Rlc3QzOScpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQwJykgaXMgJzMyJwotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQx
JykgaXMgJy0yMTQ3NDgzNjQ4JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDQyJykgaXMgJy0yMTQ3NDgzNjQ4JwotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQzJykgaXMgJy0y
MTQ3NDgzNjQ4JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDQ0JykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDUnKSBpcyAnMCcKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0NicpIGlzICcwJwotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ3
JykgaXMgJzMyMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3Rlc3Q0OCcpIGlzICczMjAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDknKSBpcyAnMjE0NzQ4MzY0NycKLVBBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1MCcp
IGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndGVzdDUxJykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTInKSBpcyAnMjE0NzQ4
MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3Rlc3Q1MycpIGlzICc1JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgnbm9uZTUzJykgaXMgJzUnCi1QQVNTIGxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTNhJykgaXMgJzEwJwotUEFTUyBs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnd3JhcHBlcjU0
JykgaXMgJzUnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0ZXN0NTQnKSBpcyAnMTAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTUnKSBpcyAnMScKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1NicpIGlzICctMjE0NzQ4
MzY0OCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Rlc3QzJykpIGlzICctMjE0NzQ4MzY0OCcKK1BBU1Mgd2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0JykpIGlzICctMjE0
NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3Q1JykpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDYnKSkgaXMgJzAnCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
NycpKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Rlc3Q4JykpIGlzICcxMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5j
b3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q5JykpIGlzICcxMCcKK1BB
U1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3QxMCcpKSBpcyAnMjE0NzQ4MzY0NicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVy
VmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxMScpKSBpcyAnMjE0NzQ4MzY0NycK
K1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3QxMicpKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxMycpKSBpcyAnMjE0NzQ4MzY0
NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3QxNCcpKSBpcyAnMicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxNScpKSBpcyAnLTIxNDc0ODM2NDgnCitQ
QVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0MTYnKSkgaXMgJy0yMTQ3NDgzNjQ4JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDE3JykpIGlzICctMjE0NzQ4MzY0
OCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3QxOCcpKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxOScpKSBpcyAnMCcKK1BBU1Mgd2luZG93
LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyMCcp
KSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3QyMScpKSBpcyAnMjAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MjInKSkgaXMgJzIwJworUEFT
UyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDIzJykpIGlzICcyMTQ3NDgzNjQ3JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJW
YWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDI0JykpIGlzICcyMTQ3NDgzNjQ3Jwor
UEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdDI1JykpIGlzICcyMTQ3NDgzNjQ3JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDI2JykpIGlzICcyMTQ3NDgzNjQ3
JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdDI3JykpIGlzICczJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDI4JykpIGlzICctMjE0NzQ4MzY0OCcKK1BB
U1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3QyOScpKSBpcyAnLTIxNDc0ODM2NDgnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MzAnKSkgaXMgJy0yMTQ3NDgzNjQ4
JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdDMxJykpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDMyJykpIGlzICcwJworUEFTUyB3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDMzJykp
IGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdDM0JykpIGlzICczMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzNScpKSBpcyAnMzAnCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0MzYnKSkgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MzcnKSkgaXMgJzIxNDc0ODM2NDcnCitQ
QVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0MzgnKSkgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MzknKSkgaXMgJzIxNDc0ODM2NDcn
CitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0NDAnKSkgaXMgJzMyJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQxJykpIGlzICctMjE0NzQ4MzY0OCcKK1BB
U1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3Q0MicpKSBpcyAnLTIxNDc0ODM2NDgnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NDMnKSkgaXMgJy0yMTQ3NDgzNjQ4
JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdDQ0JykpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQ1JykpIGlzICcwJworUEFTUyB3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQ2Jykp
IGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdDQ3JykpIGlzICczMjAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NDgnKSkgaXMgJzMyMCcKK1BB
U1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3Q0OScpKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVy
VmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1MCcpKSBpcyAnMjE0NzQ4MzY0NycK
K1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3Q1MScpKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1MicpKSBpcyAnMjE0NzQ4MzY0
NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3Q1MycpKSBpcyAnNScKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vbmU1MycpKSBpcyAnNScKK1BBU1Mgd2luZG93
LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1M2En
KSkgaXMgJzEwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnd3JhcHBlcjU0JykpIGlzICc1JworUEFTUyB3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDU0JykpIGlzICcxMCcK
K1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3Q1NScpKSBpcyAnMScKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1NicpKSBpcyAnLTIxNDc0ODM2NDgnCiAKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LXRlc3Rz
Lmh0bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVy
LWluY3JlbWVudC10ZXN0cy5odG0JKHJldmlzaW9uIDExOTk1NykKKysrIExheW91dFRlc3RzL2Zh
c3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LXRlc3RzLmh0bQkod29ya2luZyBjb3B5
KQpAQCAtMTUsNjMgKzE1LDYzIEBACiAgICAgICAgICAgICAgICAgLyogVGhlc2UgYXJlIHRleHQg
dmVyc2lvbnMgb2YgdGhlIGNvdW50ZXItaW5jcmVtZW50LSogdGVzdHMgaW4gdGhlIENTUyAyLjEg
dGVzdCBzdWl0ZS4KICAgICAgICAgICAgICAgICAgICBTbyAndGVzdDMnIGhlcmUgaXMgZXF1aXZh
bGVudCB0byBjb3VudGVyLWluY3JlbWVudC0wMDMuaHRtLCBhbmQgc28gb24uIAogICAgICAgICAg
ICAgICAgICAgIFdlYktpdCBkdW1wQXNUZXh0IHZlcnNpb25zIG9mIGNvdW50ZXItaW5jcmVtZW50
LTAwMSBhbmQgMDAyIGFscmVhZHkgZXhpc3QgaW4gZmFzdC9jc3MvY291bnRlcnMgKi8KLSAgICAg
ICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3Rlc3QzJykiLCAiJy0yMTQ3NDgzNjQ4JyIpOwotICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndGVzdDQnKSIsICInLTIxNDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NScp
IiwgIicwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDYnKSIsICInMCciKTsKLSAgICAgICAg
ICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3Rlc3Q3JykiLCAiJzAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OCcpIiwg
IicxMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5JykiLCAiJzEwJyIpOwotICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDEwJykiLCAiJzIxNDc0ODM2NDYnIik7Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0MTEnKSIsICInMjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxMicpIiwg
IicyMTQ3NDgzNjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDEzJykiLCAiJzIxNDc0ODM2
NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTQnKSIsICInMiciKTsKLSAgICAgICAgICAg
ICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3Rlc3QxNScpIiwgIictMjE0NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91
bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rl
c3QxNicpIiwgIictMjE0NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxNycpIiwg
IictMjE0NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxOCcpIiwgIicwJyIpOwot
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDE5JykiLCAiJzAnIik7Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0MjAnKSIsICInMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyMScpIiwgIicyMCciKTsK
LSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyMicpIiwgIicyMCciKTsKLSAgICAgICAgICAgICAgICBz
aG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3Rlc3QyMycpIiwgIicyMTQ3NDgzNjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI0Jyki
LCAiJzIxNDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjUnKSIsICInMjE0NzQ4
MzY0NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyNicpIiwgIicyMTQ3NDgzNjQ3JyIpOwot
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDI3JykiLCAiJzMnIik7Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0MjgnKSIsICInLTIxNDc0ODM2NDgnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjknKSIs
ICInLTIxNDc0ODM2NDgnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzAnKSIsICInLTIxNDc0
ODM2NDgnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzEnKSIsICInMCciKTsKLSAgICAgICAg
ICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3Rlc3QzMicpIiwgIicwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDMzJyki
LCAiJzAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzQnKSIsICInMzAnIik7Ci0gICAgICAg
ICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCd0ZXN0MzUnKSIsICInMzAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzYn
KSIsICInMjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzNycpIiwgIicyMTQ3
NDgzNjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM4JykiLCAiJzIxNDc0ODM2NDcnIik7
Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzknKSIsICInMjE0NzQ4MzY0NyciKTsKLSAgICAgICAg
ICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3Rlc3Q0MCcpIiwgIiczMiciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgi
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MScp
IiwgIictMjE0NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MicpIiwgIictMjE0
NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MycpIiwgIictMjE0NzQ4MzY0OCci
KTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0NCcpIiwgIicwJyIpOwotICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndGVzdDQ1JykiLCAiJzAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDYnKSIsICInMCci
KTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0NycpIiwgIiczMjAnIik7Ci0gICAgICAgICAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0ZXN0NDgnKSIsICInMzIwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlv
dXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ5JykiLCAi
JzIxNDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTAnKSIsICInMjE0NzQ4MzY0
NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1MScpIiwgIicyMTQ3NDgzNjQ3JyIpOwotICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndGVzdDUyJykiLCAiJzIxNDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0ZXN0NTMnKSIsICInNSciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ25vbmU1MycpIiwgIic1
JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDUzYScpIiwgIicxMCciKTsKLSAgICAgICAgICAg
ICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3dyYXBwZXI1NCcpIiwgIic1JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDU0Jyki
LCAiJzEwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDU1JykiLCAiJzEnIik7Ci0gICAgICAg
ICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCd0ZXN0NTYnKSIsICInLTIxNDc0ODM2NDgnIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0MycpKSIsICInLTIxNDc0ODM2NDgnIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0NCcpKSIsICInLTIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0NScpKSIsICInMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93Lmlu
dGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q2JykpIiwg
IicwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDcnKSkiLCAiJzAnIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0OCcpKSIsICInMTAnIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0OScpKSIsICInMTAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
MTAnKSkiLCAiJzIxNDc0ODM2NDYnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTEn
KSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTInKSki
LCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRl
cm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTMnKSkiLCAi
JzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTQnKSkiLCAiJzIn
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTUnKSkiLCAiJy0yMTQ3NDgzNjQ4JyIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDE2JykpIiwgIictMjE0NzQ4MzY0OCciKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxNycpKSIsICInLTIxNDc0ODM2NDgnIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTgnKSkiLCAiJzAnIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0MTknKSkiLCAiJzAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
IndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0MjAnKSkiLCAiJzAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRl
cm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MjEnKSkiLCAi
JzIwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDIyJykpIiwgIicyMCciKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyMycpKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyNCcpKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Rlc3QyNScpKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3QyNicpKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Rlc3QyNycpKSIsICInMyciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3QyOCcpKSIsICInLTIxNDc0ODM2NDgnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
MjknKSkiLCAiJy0yMTQ3NDgzNjQ4JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5k
b3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDMw
JykpIiwgIictMjE0NzQ4MzY0OCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93
LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzMScp
KSIsICInMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5j
b3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzMicpKSIsICInMCciKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzMycpKSIsICInMCciKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3QzNCcpKSIsICInMzAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0MzUnKSkiLCAiJzMwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDM2Jykp
IiwgIicyMTQ3NDgzNjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDM3JykpIiwg
IicyMTQ3NDgzNjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDM4JykpIiwgIicy
MTQ3NDgzNjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDM5JykpIiwgIicyMTQ3
NDgzNjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQwJykpIiwgIiczMiciKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0MScpKSIsICInLTIxNDc0ODM2NDgnIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NDInKSkiLCAiJy0yMTQ3NDgzNjQ4JyIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQzJykpIiwgIictMjE0NzQ4MzY0OCciKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0NCcpKSIsICInMCciKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3Q0NScpKSIsICInMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2lu
ZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0
NicpKSIsICInMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0NycpKSIsICInMzIw
JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJW
YWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQ4JykpIiwgIiczMjAnIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NDknKSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0NTAnKSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZXN0NTEnKSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0NTInKSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0NTMnKSkiLCAiJzUnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdub25l
NTMnKSkiLCAiJzUnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NTNhJykpIiwgIicx
MCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVy
VmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dyYXBwZXI1NCcpKSIsICInNSciKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1NCcpKSIsICInMTAnIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0NTUnKSkiLCAiJzEnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
IndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0NTYnKSkiLCAiJy0yMTQ3NDgzNjQ4JyIpOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAwLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1yZXNldC0wMDAuaHRtbAkocmV2aXNp
b24gMTE5OTU3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1yZXNl
dC0wMDAuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICAgICAgICAgICAg
ICAgIGZvciAoaSA9IDA7IGkgPCBzcGFuTGlzdC5sZW5ndGg7ICsraSApIHsKICAgICAgICAgICAg
ICAgICAgICAgbmV3U3BhbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7
CiAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCA9Ci0gICAgICAg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJpZCIpKTsKKyAgICAgICAgICAgICAg
ICAgICAgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRyaWJ1dGUoImlkIikpKTsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dC5sZW5ndGgpCiAgICAgICAgICAgICAg
ICAgICAgICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSBuZXdTcGFuRWxlbWVudC5pbm5l
clRleHQgKyAiLSIKICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChuZXdT
cGFuRWxlbWVudCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVy
LXJlc2V0LTAwMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50
ZXJzL2NvdW50ZXItcmVzZXQtMDAxLmh0bWwJKHJldmlzaW9uIDExOTk1NykKKysrIExheW91dFRl
c3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAxLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTIyLDcgKzIyLDcgQEAKICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAg
ICAgICAgLy8gVGhpcyBjYWxsIGVuc3VyZXMgdGhlIGxheW91dCBoYXBwZW5lZCBiZWZvcmUgd2Ug
bW9kaWZ5IHRoZSBET00gdHJlZS4KLSAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgic3BhbjEiKTsKKyAgICAgICAgICB3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3BhbjEiKSk7CiAgICAg
ICB9CiAKICAgICAgIHZhciB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKQEAg
LTM0LDcgKzM0LDcgQEAKICAgICAgICAgICBzcGFuTGlzdCA9IHRlc3RFbGVtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJzcGFuIik7CiAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNwYW5MaXN0
Lmxlbmd0aDsgKytpICkgewogICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQuaW5u
ZXJUZXh0ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
c3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRyaWJ1dGUoImlkIikpOworICAgICAgICAgICAgICBuZXdT
cGFuRWxlbWVudC5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChzcGFuTGlzdC5pdGVtKGkpLmdldEF0dHJpYnV0ZSgiaWQiKSkp
OwogICAgICAgICAgICAgICBpZiAobmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0Lmxlbmd0aCkKICAg
ICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCA9IG5ld1NwYW5FbGVtZW50
LmlubmVyVGV4dCArICItIjsKICAgICAgICAgICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChuZXdT
cGFuRWxlbWVudCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVy
LXJlc2V0LTAwMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50
ZXJzL2NvdW50ZXItcmVzZXQtMDAyLmh0bWwJKHJldmlzaW9uIDExOTk1NykKKysrIExheW91dFRl
c3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAyLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTMwLDcgKzMwLDcgQEAKICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc3Bh
bkxpc3QubGVuZ3RoOyArK2kgKSB7CiAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgICAgICAgICAgICAgICAgICBu
ZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPQotICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChzcGFuTGlzdC5pdGVtKGkpLmdl
dEF0dHJpYnV0ZSgiaWQiKSk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNwYW5MaXN0Lml0ZW0oaSkuZ2V0
QXR0cmlidXRlKCJpZCIpKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdTcGFuRWxlbWVu
dC5pbm5lclRleHQubGVuZ3RoKQogICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1l
bnQuaW5uZXJUZXh0ID0gbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ICsgIi0iOwogICAgICAgICAg
ICAgICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKG5ld1NwYW5FbGVtZW50KTsKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExOTk1NykK
KysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMSArMSwxMSBAQAotVGhpcyBp
cyB0aGUgdGVzdCBmb3IgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQKK1RoaXMgaXMgdGhlIHRlc3QgZm9yIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQKICAgIAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgnYmVmb3JlJykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhZnRlcicpIGlzICcwJwotUEFTUyBsYXlv
dXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYmVmb3JlX2FmdGVy
JykgaXMgJzAgMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3R3aWNlJykgaXMgJzAgMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3BvaW50JykgaXMgJzAuMScKLVBBU1MgbGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3by1wb2ludHMnKSBpcyAn
MC4xLjInCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCdncmVlaycpIGlzICcwLs6xLs6yJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUtZ3JlZWtzJykgaXMgJzAuzrEuzrIgMC7OsS7O
siAwLs6xLs6yJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYmVmb3JlJykpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWZ0ZXInKSkgaXMgJzAnCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdi
ZWZvcmVfYWZ0ZXInKSkgaXMgJzAgMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R3aWNlJykpIGlzICcwIDAnCitQQVNTIHdpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb2ludCcp
KSBpcyAnMC4xJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndHdvLXBvaW50cycpKSBpcyAnMC4xLjInCitQQVNTIHdpbmRvdy5pbnRl
cm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdncmVlaycpKSBpcyAn
MC7OsS7OsicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RocmVlLWdyZWVrcycpKSBpcyAnMC7OsS7OsiAwLs6xLs6yIDAuzrEuzrIn
CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRl
cnMvY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQuaHRtbAkocmV2aXNpb24gMTE5OTU3KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQsNyArMTQsNyBAQAogICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJv
ZHk+Ci0gICAgPGRpdj5UaGlzIGlzIHRoZSB0ZXN0IGZvciBsYXlvdXRUZXN0Q29udHJvbGxlci5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZDwvZGl2PgorICAgIDxkaXY+VGhpcyBpcyB0aGUgdGVz
dCBmb3Igd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZDwvZGl2Pgog
CiAgICAgPGRpdiBjbGFzcz0icmVzZXQiPjxzcGFuIGlkPSJiZWZvcmUiIGNsYXNzPSJzaG93LWJl
Zm9yZSI+PC9zcGFuPjwvZGl2PgogICAgIDxkaXYgY2xhc3M9InJlc2V0Ij48c3BhbiBpZD0iYWZ0
ZXIiIGNsYXNzPSJzaG93LWFmdGVyIj48L3NwYW4+PC9kaXY+CkBAIC0zNSwxNCArMzUsMTQgQEAK
ICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogCi0gICAgICAgICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2JlZm9y
ZScpIiwgIicwJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhZnRlcicpIiwgIicwJyIpOwotICAgICAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCdiZWZvcmVfYWZ0ZXInKSIsICInMCAwJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoImxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d2ljZScpIiwg
IicwIDAnIik7Ci0gICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3BvaW50JykiLCAiJzAuMSciKTsKLSAgICAgICAgICAg
IHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndHdvLXBvaW50cycpIiwgIicwLjEuMiciKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJsYXlv
dXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZ3JlZWsnKSIsICIn
MC5cdTAzYjEuXHUwM2IyJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJlZS1ncmVla3MnKSIsICInMC5c
dTAzYjEuXHUwM2IyIDAuXHUwM2IxLlx1MDNiMiAwLlx1MDNiMS5cdTAzYjInIik7CisgICAgICAg
ICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2JlZm9yZScpKSIsICInMCciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWZ0
ZXInKSkiLCAiJzAnIik7CisgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5j
b3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JlZm9yZV9hZnRlcicpKSIsICIn
MCAwJyIpOworICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0d2ljZScpKSIsICInMCAwJyIpOworICAgICAg
ICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdwb2ludCcpKSIsICInMC4xJyIpOworICAgICAgICAgICAgc2hvdWxkQmUo
IndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
d28tcG9pbnRzJykpIiwgIicwLjEuMiciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3JlZWsnKSki
LCAiJzAuXHUwM2IxLlx1MDNiMiciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhyZWUtZ3JlZWtz
JykpIiwgIicwLlx1MDNiMS5cdTAzYjIgMC5cdTAzYjEuXHUwM2IyIDAuXHUwM2IxLlx1MDNiMici
KTsKICAgICAgICAgfQogICAgIDwvc2NyaXB0PgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvY291bnRlcnMvZGVlcC1iZWZvcmUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2RlZXAtYmVmb3JlLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMTE5OTU3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvZGVlcC1i
ZWZvcmUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotUEFTUyBs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZGl2MScpIGlz
ICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZGl2MScpKSBpcyAnMCcKIAogVEVTVCBDT01QTEVURQogCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9kZWVwLWJlZm9yZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2RlZXAtYmVmb3JlLmh0bWwJKHJldmlzaW9uIDEx
OTk1NykKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2RlZXAtYmVmb3JlLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICAgewogICAgICAgaWYgKCF3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgcmV0dXJuOwotICAgICAgc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdkaXYxJyki
LCAiJzAnIik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdjEnKSkiLCAiJzAnIik7CiAKICAgICAgIGRlYnVn
KCcnKTsKICAgICAgIGRlYnVnKCdURVNUIENPTVBMRVRFJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jb3VudGVycy9pbnZhbGlkYXRlLWNhY2hlZC1jb3VudGVyLW5vZGUuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9pbnZhbGlkYXRlLWNhY2hl
ZC1jb3VudGVyLW5vZGUuaHRtbAkocmV2aXNpb24gMTE5OTU3KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY291bnRlcnMvaW52YWxpZGF0ZS1jYWNoZWQtY291bnRlci1ub2RlLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAKICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewogICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwogICAgICAgICAgICAgdmFyIHRlc3RSZXN1bHQ7Ci0gICAgICAgICAgICB2YXIgY291bnRl
clZhbHVlID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
ImtlZXAtbWUiKTsKKyAgICAgICAgICAgIHZhciBjb3VudGVyVmFsdWUgPSB3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgia2VlcC1tZSIpKTsKICAg
ICAgICAgICAgIGlmIChjb3VudGVyVmFsdWUgPT0gIjEiKQogICAgICAgICAgICAgICAgIHRlc3RS
ZXN1bHQgPSAiUEFTUyI7CiAgICAgICAgICAgICBlbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb3VudGVycy9uZXN0aW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY291bnRlcnMvbmVzdGluZy5odG1sCShyZXZpc2lvbiAxMTk5NTcpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9uZXN0aW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDcgKzI5LDcgQEAKICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc3Bhbkxpc3QubGVu
Z3RoOyArK2kgKSB7CiAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgICAgICAgICAgICAgICAgICBuZXdTcGFuRWxl
bWVudC5pbm5lclRleHQgPQotICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChzcGFuTGlzdC5pdGVtKGkpLmdldEF0dHJpYnV0
ZSgiaWQiKSk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0cmlidXRl
KCJpZCIpKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdTcGFuRWxlbWVudC5pbm5lclRl
eHQubGVuZ3RoKQogICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQuaW5uZXJU
ZXh0ID0gbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ICsgIi0gIjsKICAgICAgICAgICAgICAgICAg
ICAgY29uc29sZS5hcHBlbmRDaGlsZChuZXdTcGFuRWxlbWVudCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>146831</attachid>
            <date>2012-06-11 04:30:52 -0700</date>
            <delta_ts>2012-06-11 04:30:52 -0700</delta_ts>
            <desc>cr_linux_build_brk patch</desc>
            <filename>cr_webkit_glue.patch</filename>
            <type>text/plain</type>
            <size>1579</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IGdsdWUvd2Via2l0X2dsdWUuY2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2x1ZS93ZWJraXRfZ2x1
ZS5jYwkocmV2aXNpb24gMTQxMjI3KQorKysgZ2x1ZS93ZWJraXRfZ2x1ZS5jYwkod29ya2luZyBj
b3B5KQpAQCAtMTM3LDE3ICsxMzcsNiBAQAogICByZXR1cm4gd2ViX2ZyYW1lLT5yZW5kZXJUcmVl
QXNUZXh0KCk7CiB9CiAKLWJvb2wgQ291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoV2ViRnJhbWUq
IHdlYl9mcmFtZSwgY29uc3Qgc3RkOjpzdHJpbmcmIGlkLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdHJpbmcxNiogY291bnRlcl92YWx1ZSkgewotICBXZWJTdHJpbmcgcmVzdWx0
ID0KLSAgICAgIHdlYl9mcmFtZS0+Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoV2ViU3RyaW5n
Ojpmcm9tVVRGOChpZCkpOwotICBpZiAocmVzdWx0LmlzTnVsbCgpKQotICAgIHJldHVybiBmYWxz
ZTsKLQotICAqY291bnRlcl92YWx1ZSA9IHJlc3VsdDsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KIGlu
dCBQYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoV2ViRnJhbWUqIHdlYl9mcmFtZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGlkLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmbG9hdCBwYWdlX3dpZHRoX2luX3BpeGVscywKSW5kZXg6IGdsdWUv
d2Via2l0X2dsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnbHVlL3dlYmtpdF9nbHVlLmgJKHJldmlzaW9u
IDE0MTIyNykKKysrIGdsdWUvd2Via2l0X2dsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsMTIg
KzU2LDYgQEAKIC8vIFJldHVybnMgdGhlIHJlbmRlcmVyJ3MgZGVzY3JpcHRpb24gb2YgaXRzIHRy
ZWUgKGl0cyBleHRlcm5hbFJlcHJlc2VudGF0aW9uKS4KIFdFQktJVF9HTFVFX0VYUE9SVCBzdHJp
bmcxNiBEdW1wUmVuZGVyZXIoV2ViS2l0OjpXZWJGcmFtZSogd2ViX2ZyYW1lKTsKIAotLy8gRmls
bCB0aGUgdmFsdWUgb2YgY291bnRlciBpbiB0aGUgZWxlbWVudCBzcGVjaWZpZWQgYnkgdGhlIGlk
IGludG8KLS8vIGNvdW50ZXJfdmFsdWUuICBSZXR1cm4gZmFsc2Ugd2hlbiB0aGUgc3BlY2lmaWVk
IGlkIGRvZXNuJ3QgZXhpc3QuCi1ib29sIENvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKFdlYktp
dDo6V2ViRnJhbWUqIHdlYl9mcmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3Qgc3RkOjpzdHJpbmcmIGlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dHJpbmcxNiogY291bnRlcl92YWx1ZSk7Ci0KIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiBwYWdl
IHdoZXJlIHRoZSBzcGVjaWZpZWQgZWxlbWVudCB3aWxsIGJlIHB1dC4KIGludCBQYWdlTnVtYmVy
Rm9yRWxlbWVudEJ5SWQoV2ViS2l0OjpXZWJGcmFtZSogd2ViX2ZyYW1lLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgaWQsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147005</attachid>
            <date>2012-06-11 21:09:50 -0700</date>
            <delta_ts>2012-06-11 22:31:06 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-84406-20120612093803.patch</filename>
            <type>text/plain</type>
            <size>83596</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDEyMDAz
NCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA2
LTExICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAg
ICAgIFtEUlRdIExUQzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkgY291bGQgYmUgbW92
ZWQgdG8gSW50ZXJuYWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODQ0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBFeHBvcnRpbmcgSW50ZXJuYWxzOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50IHN5bWJv
bHMgZm9yIHRoZSBHdGsgYnVpbGQuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJv
bHMuZmlsdGVyOgorCiAyMDEyLTA2LTExICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBv
cGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtDU1MzIEJhY2tncm91bmRzIGFuZCBCb3JkZXJzXSBQ
cm90ZWN0IGJveC1kZWNvcmF0aW9uLWJyZWFrIGJlaGluZCBhIGZlYXR1cmUgZmxhZy4KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyMDAzNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA2LTExICBLYXVzdHViaCBBdHJh
d2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFtEUlRdIExUQzo6IGNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCkgY291bGQgYmUgbW92ZWQgdG8gSW50ZXJuYWxzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0MDYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRoZSBj
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCBmcm9tIExheW91dFRlc3RDb3Ryb2xsZXIgdG8gSW50
ZXJuYWxzIGFuZAorICAgICAgICByZW1vdmUgdGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBs
ZW1lbnRhdGlvbnMgYXMgaXQgZXhjbHVzaXZlbHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlvbmFsaXR5
LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdCBjYXNlcy4KKworICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6Y291
bnRlclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmlkbDoKKwogMjAxMi0wNi0xMSAgSmluIFlhbmcgIDxqaW4uYS55YW5nQGludGVsLmNvbT4KIAog
ICAgICAgICBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZSBzaG91bGQgY2FjaGUgaW1hZ2VzIGZvciB0
aGUgbm9uLXRpbGVkIGNhc2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJ
KHJldmlzaW9uIDEyMDAzNCkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTA1OCw2ICsxMDU4LDE0IEBAIHZvaWQgSW50ZXJuYWxzOjph
bGxvd1JvdW5kaW5nSGFja3MoKSBjb24KICAgICBUZXh0UnVuOjpzZXRBbGxvd3NSb3VuZGluZ0hh
Y2tzKHRydWUpOwogfQogCitTdHJpbmcgSW50ZXJuYWxzOjpjb3VudGVyVmFsdWUoRWxlbWVudCog
ZWxlbWVudCkKK3sKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
KworICAgIHJldHVybiBjb3VudGVyVmFsdWVGb3JFbGVtZW50KGVsZW1lbnQpOworfQorCiAjaWYg
RU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogdm9pZCBJbnRlcm5hbHM6OndlYmtpdFdpbGxFbnRlckZ1
bGxTY3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRWxlbWVudCogZWxlbWVudCkK
IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkocmV2aXNpb24gMTIwMDM0KQor
KysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkod29ya2luZyBjb3B5KQpAQCAt
MTc2LDYgKzE3Niw4IEBAIHB1YmxpYzoKICAgICBWZWN0b3I8U3RyaW5nPiBjb25zb2xlTWVzc2Fn
ZUFyZ3VtZW50Q291bnRzKERvY3VtZW50KikgY29uc3Q7CiAjZW5kaWYKIAorICAgIFN0cmluZyBj
b3VudGVyVmFsdWUoRWxlbWVudCopOworCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAg
IHZvaWQgd2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1lbnQqLCBFbGVt
ZW50Kik7CiAgICAgdm9pZCB3ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KERvY3Vt
ZW50KiwgRWxlbWVudCopOwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAko
cmV2aXNpb24gMTIwMDM0KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTEsNiArMTUxLDggQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAg
ICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZMaXZlRG9j
dW1lbnRzKCk7CiAgICAgICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIHNlcXVlbmNlPFN0cmlu
Zz4gY29uc29sZU1lc3NhZ2VBcmd1bWVudENvdW50cyhpbiBEb2N1bWVudCBkb2N1bWVudCk7CiAK
KyAgICAgICAgRE9NU3RyaW5nIGNvdW50ZXJWYWx1ZShpbiBFbGVtZW50IGVsZW1lbnQpOworCiAj
aWYgZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICYmIEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SQogICAgICAgICB2b2lkIHdlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGluIERv
Y3VtZW50IGRvY3VtZW50LCBpbiBFbGVtZW50IGVsZW1lbnQpOwogICAgICAgICB2b2lkIHdlYmtp
dERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIEVs
ZW1lbnQgZWxlbWVudCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjAwMzQpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAx
Mi0wNi0xMSAgS2F1c3R1YmggQXRyYXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KKwor
ICAgICAgICBbRFJUXSBMVEM6OiBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgpIGNvdWxkIGJl
IG1vdmVkIHRvIEludGVybmFscy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg0NDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRXhwb3J0aW5nIEludGVybmFsczo6Y291bnRlclZhbHVlRm9yRWxlbWVudCBz
eW1ib2xzIGZvciB0aGUgd2luIGJ1aWxkLgorCisgICAgICAgICogd2luL1dlYktpdDIuZGVmOgor
CiAyMDEyLTA2LTExICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3Jn
PgogCiAgICAgICAgIFtDU1MzIEJhY2tncm91bmRzIGFuZCBCb3JkZXJzXSBQcm90ZWN0IGJveC1k
ZWNvcmF0aW9uLWJyZWFrIGJlaGluZCBhIGZlYXR1cmUgZmxhZy4KSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLmRlZgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi93aW4vV2Vi
S2l0Mi5kZWYJKHJldmlzaW9uIDEyMDAzNCkKKysrIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LmRlZgkod29ya2luZyBjb3B5KQpAQCAtMTE3LDYgKzExNyw3IEBAIEVYUE9SVFMKICAgICAgICAg
P2NhbGxPbk1haW5UaHJlYWRAV1RGQEBZQVhQNkFYUEFYQFowQFoKICAgICAgICAgP2NvbnNvbGVN
ZXNzYWdlQXJndW1lbnRDb3VudHNASW5zcGVjdG9yQ29uc29sZUFnZW50QFdlYkNvcmVAQFFBRT9B
Vj8kVmVjdG9yQEkkMEFAQFdURkBAWFoKICAgICAgICAgP2NvdW50ZXJWYWx1ZUBJbnNwZWN0b3JD
b3VudGVyc0BXZWJDb3JlQEBTQUhXNENvdW50ZXJUeXBlQDEyQEBaCisgICAgICAgID9jb3VudGVy
VmFsdWVGb3JFbGVtZW50QFdlYkNvcmVAQFlBP0FWU3RyaW5nQFdURkBAUEFWRWxlbWVudEAxQEBa
CiAgICAgICAgID9jcmVhdGVUaHJlYWRAV1RGQEBZQUlQNkFQQVhQQVhAWjBQQkRAWgogICAgICAg
ICA/Y3JlYXRlVGhyZWFkQFdURkBAWUFJUDZBWFBBWEBaMFBCREBaCiAgICAgICAgID9jdXJyZW50
VGhyZWFkQFdURkBAWUFJWFoKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMDAzNCkK
KysrIFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE1IEBACisyMDEyLTA2LTExICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3Jv
bGEuY29tPgorCisgICAgICAgIFtEUlRdIExUQzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCkgY291bGQgYmUgbW92ZWQgdG8gSW50ZXJuYWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRoZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCBmcm9tIExheW91dFRlc3RDb3Ryb2xsZXIgdG8gSW50ZXJuYWxzIGFuZAorICAgICAgICByZW1v
dmUgdGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgYXMgaXQgZXhjbHVz
aXZlbHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcDoKKwogMjAxMi0wNi0wNSAgQWRhbSBC
YXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciB0
YXJnZXQtZGVuc2l0eWRwaSBpbiB0aGUgdmlld3BvcnQgbWV0YSB0YWcKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsLmNwcAkocmV2aXNpb24gMTIwMDM0KQorKysgU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTcsMjEgKzk3LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmNsZWFy
T3BlbgogICAgICAgICBmcmFtZS0+bG9hZGVyKCktPnNldE9wZW5lcigwKTsKIH0KIAotU3RyaW5n
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Y291bnRlclZhbHVlQnlFbGVtZW50SWQoY29uc3Qg
RXZhc19PYmplY3QqIGV3a0ZyYW1lLCBjb25zdCBjaGFyKiBlbGVtZW50SWQpCi17Ci0gICAgV2Vi
Q29yZTo6RnJhbWUqIGZyYW1lID0gRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKGV3a0ZyYW1lKTsKLQot
ICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIFdlYkNvcmU6
OkVsZW1lbnQqIGVsZW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoZWxl
bWVudElkKTsKLQotICAgIGlmICghZWxlbWVudCkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwot
Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnQoZWxlbWVudCk7Ci19
Ci0KIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjplbGVtZW50RG9lc0F1dG9Db21wbGV0
ZUZvckVsZW1lbnRXaXRoSWQoY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBjb25zdCBTdHJp
bmcmIGVsZW1lbnRJZCkKIHsKICAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUgPSBFV0tQcml2YXRl
Ojpjb3JlRnJhbWUoZXdrRnJhbWUpOwpJbmRleDogU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24gMTIw
MDM0KQorKysgU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTItMDYtMTEgIEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBt
b3Rvcm9sYS5jb20+CisKKyAgICAgICAgW0RSVF0gTFRDOjogY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoKSBjb3VsZCBiZSBtb3ZlZCB0byBJbnRlcm5hbHMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDQwNgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkIGZyb20gTGF5b3V0VGVzdENvdHJvbGxlciB0byBJbnRlcm5hbHMgYW5kCisgICAgICAg
IHJlbW92ZSB0aGUgb2xkIHBsYXRmb3JtIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBhcyBpdCBl
eGNsdXNpdmVseSB0ZXN0cyBXZWJDb3JlIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrKToKKwogMjAxMi0wNi0wNyAgU2ltb24gUGVuYSAgPHNwZW5hQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0dUS10gZGV2aWNlU2NhbGVGYWN0b3Igc2V0dGluZyBpcyBub3Qg
aG9ub3JlZApJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCShyZXZpc2lvbiAxMjAwMzQp
CisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODksMjggKzE4OSw2IEBAIENTdHJpbmcgRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkdW1wUmUKIH0KIAogLyoqCi0gKiBjb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZDoKLSAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKLSAqIEBpZDogYW4g
ZWxlbWVudCBJRCBzdHJpbmcKLSAqCi0gKiBSZXR1cm4gdmFsdWU6IFRoZSBjb3VudGVyIHZhbHVl
IG9mIGVsZW1lbnQgQGlkIGluIEBmcmFtZQotICovCi1DU3RyaW5nIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0azo6Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoV2ViS2l0V2ViRnJhbWUqIGZyYW1l
LCBjb25zdCBjaGFyKiBpZCkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNf
V0VCX0ZSQU1FKGZyYW1lKSwgQ1N0cmluZygpKTsKLQotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBj
b3JlKGZyYW1lKTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuIENTdHJpbmco
KTsKLQotICAgIEVsZW1lbnQqIGNvcmVFbGVtZW50ID0gY29yZUZyYW1lLT5kb2N1bWVudCgpLT5n
ZXRFbGVtZW50QnlJZChBdG9taWNTdHJpbmcoaWQpKTsKLSAgICBpZiAoIWNvcmVFbGVtZW50KQot
ICAgICAgICByZXR1cm4gQ1N0cmluZygpOwotCi0gICAgcmV0dXJuIGNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnQoY29yZUVsZW1lbnQpLnV0ZjgoKTsKLX0KLQotLyoqCiAgKiBudW1iZXJGb3JFbGVtZW50
QnlJZAogICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQogICogQGlkOiBhbiBlbGVtZW50IElE
IHN0cmluZwpJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgJKHJldmlzaW9uIDEyMDAzNCkKKysr
IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
R1NMaXN0KiBnZXRGcmFtZUNoaWxkcmVuKFdlYktpdFdlYkZyYW1lKik7CiAgICAgc3RhdGljIFdU
Rjo6Q1N0cmluZyBnZXRJbm5lclRleHQoV2ViS2l0V2ViRnJhbWUqKTsKICAgICBzdGF0aWMgV1RG
OjpDU3RyaW5nIGR1bXBSZW5kZXJUcmVlKFdlYktpdFdlYkZyYW1lKik7Ci0gICAgc3RhdGljIFdU
Rjo6Q1N0cmluZyBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChXZWJLaXRXZWJGcmFtZSosIGNv
bnN0IGNoYXIqIGlkKTsKICAgICBzdGF0aWMgaW50IHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChX
ZWJLaXRXZWJGcmFtZSosIGNvbnN0IGNoYXIqIGlkLCBmbG9hdCBwYWdlV2lkdGgsIGZsb2F0IHBh
Z2VIZWlnaHQpOwogICAgIHN0YXRpYyBpbnQgbnVtYmVyT2ZQYWdlc0ZvckZyYW1lKFdlYktpdFdl
YkZyYW1lKiwgZmxvYXQgcGFnZVdpZHRoLCBmbG9hdCBwYWdlSGVpZ2h0KTsKICAgICBzdGF0aWMg
V1RGOjpDU3RyaW5nIHBhZ2VQcm9wZXJ0eShXZWJLaXRXZWJGcmFtZSosIGNvbnN0IGNoYXIqIHBy
b3BlcnR5TmFtZSwgaW50IHBhZ2VOdW1iZXIpOwpJbmRleDogU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9u
IDEyMDAzNCkKKysrIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTItMDYtMTEgIEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHVi
aEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgW0RSVF0gTFRDOjogY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoKSBjb3VsZCBiZSBtb3ZlZCB0byBJbnRlcm5hbHMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDQwNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkIGZyb20gTGF5b3V0VGVzdENvdHJvbGxlciB0byBJbnRlcm5hbHMgYW5kCisgICAg
ICAgIHJlbW92ZSB0aGUgb2xkIHBsYXRmb3JtIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBhcyBp
dCBleGNsdXNpdmVseSB0ZXN0cyBXZWJDb3JlIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaDoKKwogMjAxMi0wNi0xMSAgQ3Nh
YmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF1bV2luXSBB
ZGQgbWlzc2luZyBpbmNsdWRlcyB0byBmaXggdGhlIGJ1aWxkCkluZGV4OiBTb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmNwcAkocmV2aXNpb24gMTIwMDM0KQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwNiwx
NyArNDA2LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6Z2FyYmFnZUNvbAogI2Vu
ZGlmCiB9CiAKLS8vIFJldHVybnMgdGhlIHZhbHVlIG9mIGNvdW50ZXIgaW4gdGhlIGVsZW1lbnQg
c3BlY2lmaWVkIGJ5IFxhIGlkLgotUVN0cmluZyBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6Y291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoUVdlYkZyYW1lKiBmcmFtZSwgY29uc3QgUVN0cmluZyYg
aWQpCi17Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFFXZWJGcmFtZVByaXZhdGU6OmNvcmUoZnJh
bWUpOwotICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBjb3JlRnJhbWUtPmRvY3VtZW50KCkp
IHsKLSAgICAgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBkb2N1bWVudC0+Z2V0RWxlbWVudEJ5
SWQoaWQpKQotICAgICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnQoZWxlbWVudCk7Ci0gICAgfQotICAgIHJldHVybiBRU3RyaW5nKCk7Ci19Ci0KIGludCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6cGFnZU51bWJlckZvckVsZW1lbnRCeUlkKFFXZWJGcmFtZSog
ZnJhbWUsIGNvbnN0IFFTdHJpbmcmIGlkLCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KQogewog
ICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBRV2ViRnJhbWVQcml2YXRlOjpjb3JlKGZyYW1lKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0LmgJKHJldmlzaW9uIDEyMDAzNCkKKysrIFNvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAkod29ya2luZyBjb3B5
KQpAQCAtMTM1LDcgKzEzNSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCB3ZWJJbnNwZWN0
b3JDbG9zZShRV2ViUGFnZSogcGFnZSk7CiAKICAgICBzdGF0aWMgUVN0cmluZyB3ZWJQYWdlR3Jv
dXBOYW1lKFFXZWJQYWdlICpwYWdlKTsKLSAgICBzdGF0aWMgUVN0cmluZyBjb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZChRV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBRU3RyaW5nJiBpZCk7CiAgICAg
c3RhdGljIHZvaWQgd2ViUGFnZVNldEdyb3VwTmFtZShRV2ViUGFnZSogcGFnZSwgY29uc3QgUVN0
cmluZyYgZ3JvdXBOYW1lKTsKICAgICBzdGF0aWMgdm9pZCBjbGVhckZyYW1lTmFtZShRV2ViRnJh
bWUqIGZyYW1lKTsKICAgICBzdGF0aWMgdm9pZCBvdmVyd3JpdGVQbHVnaW5EaXJlY3Rvcmllcygp
OwpJbmRleDogU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMTIwMDM0KQorKysgU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDYt
MTEgIEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CisKKyAgICAg
ICAgW0RSVF0gTFRDOjogY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoKSBjb3VsZCBiZSBtb3Zl
ZCB0byBJbnRlcm5hbHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NDQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1vdmUgdGhlIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIGZyb20gTGF5b3V0VGVz
dENvdHJvbGxlciB0byBJbnRlcm5hbHMgYW5kCisgICAgICAgIHJlbW92ZSB0aGUgb2xkIHBsYXRm
b3JtIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBhcyBpdCBleGNsdXNpdmVseSB0ZXN0cyBXZWJD
b3JlIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJGcmFtZVByaXZh
dGUuaWRsOgorICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKiBXZWJGcmFtZS5oOgor
CiAyMDEyLTA2LTExICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVt
b3ZlIHN1cHBvcnQgZm9yIGRpc2Nvbm5lY3RlZC9leGNsdWRlZCBmcm9tIHNlYXJjaCBmcmFtZXMs
IHRoZXkgYXJlIG5vdCB1c2VkIGJ5IFNhZmFyaSBhbnltb3JlCkluZGV4OiBTb3VyY2UvV2ViS2l0
L3dpbi9XZWJGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViRnJh
bWUuY3BwCShyZXZpc2lvbiAxMjAwMzQpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTg3OCwyNSArODc4LDYgQEAgSFJFU1VMVCBXZWJGcmFtZTo6
cmVuZGVyVHJlZUFzRXh0ZXJuYWxSZQogICAgIHJldHVybiBTX09LOwogfQogCi1IUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIFdlYkZyYW1lOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgKLSAg
ICAvKiBbaW5dICovIEJTVFIgaWQsIC8qIFtyZXR2YWxdW291dF0gKi8gQlNUUiAqcmVzdWx0KQot
ewotICAgIGlmICghcmVzdWx0KQotICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwotCi0gICAgRnJh
bWUqIGNvcmVGcmFtZSA9IGNvcmUodGhpcyk7Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAgICAg
IHJldHVybiBFX0ZBSUw7Ci0KLSAgICBTdHJpbmcgY29yZUlkID0gU3RyaW5nKGlkLCBTeXNTdHJp
bmdMZW4oaWQpKTsKLQotICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBjb3JlRnJhbWUtPmRvY3VtZW50
KCktPmdldEVsZW1lbnRCeUlkKGNvcmVJZCk7Ci0gICAgaWYgKCFlbGVtZW50KQotICAgICAgICBy
ZXR1cm4gRV9GQUlMOwotICAgICpyZXN1bHQgPSBCU3RyaW5nKGNvdW50ZXJWYWx1ZUZvckVsZW1l
bnQoZWxlbWVudCkpLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gU19PSzsKLX0KLQogSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJGcmFtZTo6cGFnZU51bWJlckZvckVsZW1lbnRCeUlkKAogICAg
IC8qIFtpbl0gKi8gQlNUUiBpZCwKICAgICAvKiBbaW5dICovIGZsb2F0IHBhZ2VXaWR0aEluUGl4
ZWxzLApJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5oCShyZXZpc2lvbiAxMjAwMzQpCisrKyBTb3VyY2Uv
V2ViS2l0L3dpbi9XZWJGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsMTAgKzE2Myw2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgdW51c2VkMShC
U1RSKikgeyByZXR1cm4gRV9OT1RJTVBMOyB9CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIHJlbmRlclRyZWVBc0V4dGVybmFsUmVwcmVzZW50YXRpb24oQk9PTCBmb3JQcmlu
dGluZywgQlNUUiAqcmVzdWx0KTsKIAotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgKLSAgICAgICAgLyogW2luXSAqLyBCU1RS
IGlkLAotICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJTVFIgKnJlc3VsdCk7Ci0KICAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcGFnZU51bWJlckZvckVsZW1lbnRCeUlk
KAogICAgICAgICAvKiBbaW5dICovIEJTVFIgaWQsCiAgICAgICAgIC8qIFtpbl0gKi8gZmxvYXQg
cGFnZVdpZHRoSW5QaXhlbHMsCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lX
ZWJGcmFtZVByaXZhdGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0ludGVy
ZmFjZXMvSVdlYkZyYW1lUHJpdmF0ZS5pZGwJKHJldmlzaW9uIDEyMDAzNCkKKysrIFNvdXJjZS9X
ZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYkZyYW1lUHJpdmF0ZS5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTk2LDggKzk2LDYgQEAgaW50ZXJmYWNlIElXZWJGcmFtZVByaXZhdGUgOiBJVW5rbm93bgog
CiAgICAgW2xvY2FsXSBKU0dsb2JhbENvbnRleHRSZWYgZ2xvYmFsQ29udGV4dEZvclNjcmlwdFdv
cmxkKFtpbl0gSVdlYlNjcmlwdFdvcmxkKik7CiAKLSAgICBIUkVTVUxUIGNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKFtpbl0gQlNUUiBpZCwgW291dCwgcmV0dmFsXSBCU1RSKiByZXN1bHQpOwot
CiAgICAgSFJFU1VMVCB2aXNpYmxlQ29udGVudFJlY3QoW291dCwgcmV0dmFsXSBSRUNUKik7CiAK
ICAgICBIUkVTVUxUIHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChbaW5dIEJTVFIgaWQsIFtpbl0g
ZmxvYXQgcGFnZVdpZHRoSW5QaXhlbHMsIFtpbl0gZmxvYXQgcGFnZUhlaWdodEluUGl4ZWxzLCBb
b3V0LCByZXR2YWxdIGludCogcGFnZU51bWJlcik7CkluZGV4OiBTb3VyY2UvYXV0b3Rvb2xzL3N5
bWJvbHMuZmlsdGVyCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0
ZXIJKHJldmlzaW9uIDEyMDAzNCkKKysrIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIJ
KHdvcmtpbmcgY29weSkKQEAgLTEwNiw2ICsxMDYsNyBAQCBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ4
c2V0dGluZ3NFdjsKIF9aTks3V2ViQ29yZThEb2N1bWVudDR2aWV3RXY7CiBfWk5LN1dlYkNvcmU1
UmFuZ2U0dGV4dEV2OwogX1pOSzdXZWJDb3JlOVRyZWVTY29wZTE0Z2V0RWxlbWVudEJ5SWRFUktO
M1dURjEyQXRvbWljU3RyaW5nRTsKK19aTjdXZWJDb3JlMjJjb3VudGVyVmFsdWVGb3JFbGVtZW50
RVBOU183RWxlbWVudEU7CiBfWk5LN1dlYkNvcmUxNERvY3VtZW50TWFya2VyMTFkZXNjcmlwdGlv
bkV2OwogX1pON1dlYkNvcmU4RG9jdW1lbnQxNmlzUGFnZUJveFZpc2libGVFaTsKIF9aTjdXZWJD
b3JlMTlBbmltYXRpb25Db250cm9sbGVyMTdzdXNwZW5kQW5pbWF0aW9uc0V2OwpJbmRleDogVG9v
bHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTIw
MDM0KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAK
KzIwMTItMDYtMTEgIEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+
CisKKyAgICAgICAgW0RSVF0gTFRDOjogY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoKSBjb3Vs
ZCBiZSBtb3ZlZCB0byBJbnRlcm5hbHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NDQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1vdmUgdGhlIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIGZyb20g
TGF5b3V0VGVzdENvdHJvbGxlciB0byBJbnRlcm5hbHMgYW5kCisgICAgICAgIHJlbW92ZSB0aGUg
b2xkIHBsYXRmb3JtIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBhcyBpdCBleGNsdXNpdmVseSB0
ZXN0cyBXZWJDb3JlIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNw
cDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xs
ZXIpOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBPU0lYTG9jYWxlKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgor
ICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHA6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oOgorICAgICAgICAoTGF5b3V0VGVzdENv
bnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJv
bGxlcldpbi5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRy
b2xsZXJXeC5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChX
VFIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyKToKKwogMjAxMi0w
Ni0xMSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAg
ICAgICAgIFtFRkxdIFJlbW92ZSBDTWFrZUNhY2hlLnR4dCBiZWZvcmUgYnVpbGRpbmcKSW5kZXg6
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHJldmlz
aW9uIDEyMDAzNCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYyLDIyICs2NjIsNiBAQCBzdGF0aWMgSlNWYWx1ZVJl
ZiBmaW5kU3RyaW5nQ2FsbGJhY2soSlNDCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVhbihj
b250ZXh0LCBjb250cm9sbGVyLT5maW5kU3RyaW5nKGNvbnRleHQsIHRhcmdldC5nZXQoKSwgb3B0
aW9ucykpOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJlZiBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNP
YmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVS
ZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAgICBpZiAoYXJndW1l
bnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KTsKLQotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBlbGVtZW50SWQoQWRvcHQsIEpTVmFs
dWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKLSAgICBp
ZiAoKmV4Y2VwdGlvbikKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRl
eHQpOwotCi0gICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2Fz
dDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7
Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNvdW50ZXJWYWx1ZShjb250cm9sbGVyLT5j
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChlbGVtZW50SWQuZ2V0KCkpKTsKLSAgICBpZiAoIWNv
dW50ZXJWYWx1ZS5nZXQoKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOwotICAgIHJldHVybiBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBjb3VudGVyVmFs
dWUuZ2V0KCkpOwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBnb0JhY2tDYWxsYmFjayhKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRy
b2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJp
dmF0ZSh0aGlzT2JqZWN0KSk7CkBAIC0yMzM1LDcgKzIzMTksNiBAQCBKU1N0YXRpY0Z1bmN0aW9u
KiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6CiAgICAgICAgIHsgImV2YWx1YXRlU2NyaXB0SW5Jc29s
YXRlZFdvcmxkIiwgZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGRDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgICAgICB7ICJleGVjQ29tbWFuZCIsIGV4ZWNDb21tYW5kQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAiZmluZFN0cmluZyIsIGZpbmRTdHJpbmdDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAg
ICAgICB7ICJjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCIsIGNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAib3JpZ2luc1dpdGhBcHBsaWNhdGlv
bkNhY2hlIiwgb3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAiZ29CYWNrIiwgZ29CYWNrQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCiAgICAgICAgIHsgImdy
YW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24iLCBncmFudERlc2t0b3BOb3RpZmljYXRp
b25QZXJtaXNzaW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDEyMDAzNCkKKysrIFRvb2xzL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2
LDcgKzU2LDYgQEAgcHVibGljOgogICAgIGJvb2wgY2FsbFNob3VsZENsb3NlT25XZWJWaWV3KCk7
CiAgICAgSlNTdHJpbmdSZWYgY29weURlY29kZWRIb3N0TmFtZShKU1N0cmluZ1JlZiBuYW1lKTsK
ICAgICBKU1N0cmluZ1JlZiBjb3B5RW5jb2RlZEhvc3ROYW1lKEpTU3RyaW5nUmVmIG5hbWUpOwot
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChK
U1N0cmluZ1JlZiBpZCk7CiAgICAgdm9pZCBkZWxpdmVyV2ViSW50ZW50KEpTU3RyaW5nUmVmIGFj
dGlvbiwgSlNTdHJpbmdSZWYgdHlwZSwgSlNTdHJpbmdSZWYgZGF0YSk7CiAgICAgdm9pZCBkaXNh
YmxlSW1hZ2VMb2FkaW5nKCk7CiAgICAgdm9pZCBkaXNwYXRjaFBlbmRpbmdMb2FkUmVxdWVzdHMo
KTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRy
b2xsZXJCbGFja0JlcnJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9i
bGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAJKHJldmlzaW9uIDEy
MDAzNCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRy
b2xsZXJCbGFja0JlcnJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDI5LDIxICs0MjksNiBAQCB2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkaXNhYmxlSW1hZ2VMCiAgICAgQmxhY2tCZXJyeTo6
V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnBhZ2UoKS0+c2V0dGlu
Z3MoKS0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGZhbHNlKTsKIH0KIAotSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpjb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKLXsKLSAgICBTdHJpbmcgaWRTdHIgPSBqc1N0cmluZ1Jl
ZlRvV2ViQ29yZVN0cmluZyhpZCk7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogY29yZUVsZW1lbnQg
PSBtYWluRnJhbWUtPmRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKEF0b21pY1N0cmluZyhpZFN0
cikpOwotICAgIGlmICghY29yZUVsZW1lbnQpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgQ1N0
cmluZyBjb3VudGVyVmFsdWVTdHIgPSBjb3VudGVyVmFsdWVGb3JFbGVtZW50KGNvcmVFbGVtZW50
KS51dGY4KCk7Ci0gICAgaWYgKGNvdW50ZXJWYWx1ZVN0ci5pc051bGwoKSkKLSAgICAgICAgcmV0
dXJuIDA7Ci0KLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY291bnRlclZhbHVlKEFkb3B0
LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhjb3VudGVyVmFsdWVTdHIuZGF0YSgpKSk7
Ci0gICAgcmV0dXJuIGNvdW50ZXJWYWx1ZTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6b3ZlcnJpZGVQcmVmZXJlbmNlKEpTU3RyaW5nUmVmIGtleSwgSlNTdHJpbmdSZWYgdmFsdWUp
CiB7CiAgICAgaWYgKCFtYWluRnJhbWUpCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxMjAw
MzQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNCw3ICsxMjQsNiBAQCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsCiAgICAgYmluZE1ldGhvZCgiYWRkVXNlclN0eWxlU2hl
ZXQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNoZWV0KTsKICAgICBiaW5k
TWV0aG9kKCJjbGVhckFsbERhdGFiYXNlcyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJB
bGxEYXRhYmFzZXMpOwogICAgIGJpbmRNZXRob2QoImNsb3NlV2ViSW5zcGVjdG9yIiwgJkxheW91
dFRlc3RDb250cm9sbGVyOjpjbG9zZVdlYkluc3BlY3Rvcik7Ci0gICAgYmluZE1ldGhvZCgiY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKTsKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIGJpbmRN
ZXRob2QoImRpZExvc2VQb2ludGVyTG9jayIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlkTG9z
ZVBvaW50ZXJMb2NrKTsKICNlbmRpZgpAQCAtMTY1OCwyMCArMTY1Nyw2IEBAIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldFBPU0lYTG9jYWwKICAgICAgICAgc2V0bG9jYWxlKExDX0FMTCwg
YXJndW1lbnRzWzBdLnRvU3RyaW5nKCkuY19zdHIoKSk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgcmVzdWx0LT5zZXROdWxs
KCk7Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAxIHx8ICFhcmd1bWVudHNbMF0uaXNTdHJp
bmcoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIFdlYkZyYW1lKiBmcmFtZSA9IG1fc2hlbGwtPndl
YlZpZXcoKS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIFdlYlN0cmluZyBjb3VudGVyVmFsdWUgPSBmcmFtZS0+Y291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1swXSkpOwotICAgIGlmIChjb3Vu
dGVyVmFsdWUuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybjsKLSAgICByZXN1bHQtPnNldChjb3Vu
dGVyVmFsdWUudXRmOCgpKTsKLX0KLQogLy8gUGFyc2UgYSBzaW5nbGUgYXJndW1lbnQuIFRoZSBt
ZXRob2QgcmV0dXJucyB0cnVlIGlmIHRoZXJlIGlzIGFuIGFyZ3VtZW50IHRoYXQKIC8vIGlzIGEg
bnVtYmVyIG9yIGlmIHRoZXJlIGlzIG5vIGFyZ3VtZW50IGF0IGFsbC4gSXQgcmV0dXJucyBmYWxz
ZSBvbmx5IGlmIHRoZXJlCiAvLyBpcyBzb21lIGFyZ3VtZW50IHRoYXQgaXMgbm90IGEgbnVtYmVy
LiBUaGUgdmFsdWUgcGFyYW1ldGVyIGlzIGZpbGxlZCB3aXRoIHRoZQpJbmRleDogVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCShy
ZXZpc2lvbiAxMjAwMzQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMjQsOSArMzI0LDYgQEAgcHVibGlj
OgogICAgIC8vIFJlc2V0cyBiZXR3ZWVuIHRlc3RzLgogICAgIHZvaWQgc2V0UE9TSVhMb2NhbGUo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCi0gICAgLy8gR2V0cyB0aGUg
dmFsdWUgb2YgdGhlIGNvdW50ZXIgaW4gdGhlIGVsZW1lbnQgc3BlY2lmaWVkIGJ5IGl0cyBJRC4K
LSAgICB2b2lkIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYsIENwcFZhcmlhbnQqKTsKLQogICAgIC8vIENhdXNlcyBsYXlvdXQgdG8gaGFwcGVuIGFzIGlm
IHRhcmdldHRlZCB0byBwcmludGVkIHBhZ2VzLgogICAgIHZvaWQgc2V0UHJpbnRpbmcoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCkluZGV4OiBUb29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAJKHJldmlzaW9u
IDEyMDAzNCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxl
ckVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNywxMyArMTA3LDYgQEAgdm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6ZGlzcGxheSgpCiAgICAgZGlzcGxheVdlYlZpZXcoKTsKIH0KIAotSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpjb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKLXsKLSAgICBjb25zdCBFdmFzX09iamVjdCog
bWFpbkZyYW1lID0gYnJvd3Nlci0+bWFpbkZyYW1lKCk7Ci0gICAgY29uc3QgU3RyaW5nIGNvdW50
ZXJWYWx1ZShEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmNvdW50ZXJWYWx1ZUJ5RWxlbWVudElk
KG1haW5GcmFtZSwgaWQtPnVzdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7Ci0gICAgcmV0dXJuIEpT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPihBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoY291bnRlclZhbHVlLnV0ZjgoKS5kYXRhKCkpKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6a2VlcFdlYkhpc3RvcnkoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4
OiBUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxl
ckd0ay5jcHAJKHJldmlzaW9uIDEyMDAzNCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9M
YXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMiwxNyArMTAy
LDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzcGxheSgpCiAgICAgZGlzcGxheVdl
YlZpZXcoKTsKIH0KIAotSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9s
bGVyOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKLXsKLSAgICBn
Y2hhciogaWRHQ2hhciA9IEpTU3RyaW5nQ29weVVURjhDU3RyaW5nKGlkKTsKLSAgICBDU3RyaW5n
IGNvdW50ZXJWYWx1ZUdDaGFyID0gRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpjb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZChtYWluRnJhbWUsIGlkR0NoYXIpOwotICAgIGdfZnJlZShpZEdDaGFy
KTsKLSAgICBpZiAoY291bnRlclZhbHVlR0NoYXIuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiAw
OwotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWUoQWRvcHQsIEpTU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGNvdW50ZXJWYWx1ZUdDaGFyLmRhdGEoKSkpOwotICAg
IHJldHVybiBjb3VudGVyVmFsdWU7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Omtl
ZXBXZWJIaXN0b3J5KCkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CkluZGV4OiBUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCShy
ZXZpc2lvbiAxMjAwMzQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENv
bnRyb2xsZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI0OSwxOSArMjQ5LDYgQEAgdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzcGxheSgpCiAgICAgZGlzcGxheVdlYlZpZXcoKTsKIH0K
IAotSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpjb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKLXsKLSAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IGlkQ0YoQWRvcHRDRiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgaWQpKTsKLSAgICBOU1N0cmluZyAqaWROUyA9IChOU1N0cmluZyAqKWlkQ0YuZ2V0
KCk7Ci0KLSAgICBET01FbGVtZW50ICplbGVtZW50ID0gW1ttYWluRnJhbWUgRE9NRG9jdW1lbnRd
IGdldEVsZW1lbnRCeUlkOmlkTlNdOwotICAgIGlmICghZWxlbWVudCkKLSAgICAgICAgcmV0dXJu
IDA7Ci0KLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY291bnRlclZhbHVlKEFkb3B0LCBK
U1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygoQ0ZTdHJpbmdSZWYpW21haW5GcmFtZSBjb3VudGVy
VmFsdWVGb3JFbGVtZW50OmVsZW1lbnRdKSk7Ci0gICAgcmV0dXJuIGNvdW50ZXJWYWx1ZTsKLX0K
LQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6a2VlcFdlYkhpc3RvcnkoKQogewogICAgIGlm
ICghW1dlYkhpc3Rvcnkgb3B0aW9uYWxTaGFyZWRIaXN0b3J5XSkgewpJbmRleDogVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAJKHJldmlz
aW9uIDEyMDAzNCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9s
bGVyUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsMTEgKzE1NSw2IEBAIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OndhaXRVbnRpbERvbmUKICAgICBtX3RpbWVvdXRUaW1lci5zdGFydCht
X3RpbWVvdXQsIHRoaXMpOwogfQogCi1RU3RyaW5nIExheW91dFRlc3RDb250cm9sbGVyOjpjb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZChjb25zdCBRU3RyaW5nJiBpZCkKLXsKLSAgICByZXR1cm4g
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKG1fZHJ0
LT53ZWJQYWdlKCktPm1haW5GcmFtZSgpLCBpZCk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKGNvbnN0IFFTdHJpbmcmIG1vZGUpCiB7CiAg
ICAgbV9kcnQtPndlYlBhZ2UoKS0+c2V0UHJvcGVydHkoIl9xX3ZpZXdNb2RlIiwgbW9kZSk7Cklu
ZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJR
dC5oCShyZXZpc2lvbiAxMjAwMzQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw3ICsxMDUsNiBAQCBwdWJs
aWMgc2xvdHM6CiAgICAgdm9pZCBzZXRDYW5PcGVuV2luZG93cygpIHsgbV9jYW5PcGVuV2luZG93
cyA9IHRydWU7IH0KICAgICB2b2lkIHNldFByaW50aW5nKCkgeyBtX2lzUHJpbnRpbmcgPSB0cnVl
OyB9CiAgICAgdm9pZCB3YWl0VW50aWxEb25lKCk7Ci0gICAgUVN0cmluZyBjb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZChjb25zdCBRU3RyaW5nJiBpZCk7CiAgICAgaW50IHdlYkhpc3RvcnlJdGVt
Q291bnQoKTsKICAgICB2b2lkIGtlZXBXZWJIaXN0b3J5KCk7CiAgICAgdm9pZCBub3RpZnlEb25l
KCk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJX
aW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0
Q29udHJvbGxlcldpbi5jcHAJKHJldmlzaW9uIDEyMDAzNCkKKysrIFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEz
MDAsMjUgKzEzMDAsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVBbGxWaXNp
CiAgICAgc2hhcmVkSGlzdG9yeVByaXZhdGUtPnJlbW92ZUFsbFZpc2l0ZWRMaW5rcygpOwogfQog
Ci1KU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkKQotewotICAgIENPTVB0cjxJV2ViRnJh
bWVQcml2YXRlPiBmcmFtZVByaXZhdGUoUXVlcnksIGZyYW1lKTsKLSAgICBpZiAoIWZyYW1lUHJp
dmF0ZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICB3c3RyaW5nIGlkV3N0cmluZyA9IGpzU3Ry
aW5nUmVmVG9XU3RyaW5nKGlkKTsKLSAgICBCU1RSIGlkQlNUUiA9IFN5c0FsbG9jU3RyaW5nTGVu
KChPTEVDSEFSKilpZFdzdHJpbmcuY19zdHIoKSwgaWRXc3RyaW5nLmxlbmd0aCgpKTsKLSAgICBC
U1RSIGNvdW50ZXJWYWx1ZUJTVFI7Ci0gICAgaWYgKEZBSUxFRChmcmFtZVByaXZhdGUtPmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGlkQlNUUiwgJmNvdW50ZXJWYWx1ZUJTVFIpKSkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0KLSAgICB3c3RyaW5nIGNvdW50ZXJWYWx1ZShjb3VudGVyVmFsdWVCU1RS
LCBTeXNTdHJpbmdMZW4oY291bnRlclZhbHVlQlNUUikpOwotICAgIFN5c0ZyZWVTdHJpbmcoaWRC
U1RSKTsKLSAgICBTeXNGcmVlU3RyaW5nKGNvdW50ZXJWYWx1ZUJTVFIpOwotICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWVKUyhBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRo
Q2hhcmFjdGVycyhjb3VudGVyVmFsdWUuZGF0YSgpLCBjb3VudGVyVmFsdWUubGVuZ3RoKCkpKTsK
LSAgICByZXR1cm4gY291bnRlclZhbHVlSlM7Ci19Ci0KIGludCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6cGFnZU51bWJlckZvckVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkLCBmbG9hdCBwYWdlV2lk
dGhJblBpeGVscywgZmxvYXQgcGFnZUhlaWdodEluUGl4ZWxzKQogewogICAgIENPTVB0cjxJV2Vi
RnJhbWVQcml2YXRlPiBmcmFtZVByaXZhdGUoUXVlcnksIGZyYW1lKTsKSW5kZXg6IFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCShyZXZp
c2lvbiAxMjAwMzQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJv
bGxlcld4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcyLDExICs0NzIsNiBAQCB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRTY3JvbGxiYXJQCiAgICAgLy8gRklYTUU6IGltcGxlbWVudAog
fQogCi1KU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkKQotewotICAgIHJldHVybiAwOwot
fQotCiBpbnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChK
U1N0cmluZ1JlZiwgZmxvYXQsIGZsb2F0KQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKSW5k
ZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxMjAwMzQpCisrKyBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjU0LDE2ICsyNTQsNiBAQCBKU1ZhbHVlUmVmIExheW91dFRl
c3RDb250cm9sbGVyOjpjb21wdXRlCiAgICAgcmV0dXJuIHZhbHVlOwogfQogCi1KU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKEpTU3RyaW5nUmVmIGVsZW1lbnRJZCkKLXsKLSAgICBXS0J1bmRsZUZyYW1lUmVmIG1h
aW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVk
KCkucGFnZSgpLT5wYWdlKCkpOwotICAgIEpTT2JqZWN0UmVmIGVsZW1lbnQgPSBnZXRFbGVtZW50
QnlJZChtYWluRnJhbWUsIGVsZW1lbnRJZCk7Ci0gICAgaWYgKCFlbGVtZW50KQotICAgICAgICBy
ZXR1cm4gMDsKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdmFsdWUoQWRvcHRXSywgV0tC
dW5kbGVGcmFtZUNvcHlDb3VudGVyVmFsdWUobWFpbkZyYW1lLCBjb25zdF9jYXN0PEpTT2JqZWN0
UmVmPihlbGVtZW50KSkpOwotICAgIHJldHVybiB0b0pTKHZhbHVlKTsKLX0KLQogSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjptYXJrZXJUZXh0Rm9yTGlzdEl0
ZW0oSlNWYWx1ZVJlZiBlbGVtZW50KQogewogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1l
ID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdl
KCktPnBhZ2UoKSk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCShyZXZpc2lvbiAxMjAw
MzQpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RD
b250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw3ICsxMDAsNiBAQCBwdWJsaWM6CiAK
ICAgICAvLyBTcGVjaWFsIERPTSBmdW5jdGlvbnMuCiAgICAgSlNWYWx1ZVJlZiBjb21wdXRlZFN0
eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oSlNWYWx1ZVJlZiBlbGVtZW50KTsKLSAgICBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoSlNTdHJpbmdSZWYg
ZWxlbWVudElkKTsKICAgICB2b2lkIGNsZWFyQmFja0ZvcndhcmRMaXN0KCk7CiAgICAgdm9pZCBl
eGVjQ29tbWFuZChKU1N0cmluZ1JlZiBuYW1lLCBKU1N0cmluZ1JlZiBhcmd1bWVudCk7CiAgICAg
Ym9vbCBpc0NvbW1hbmRFbmFibGVkKEpTU3RyaW5nUmVmIG5hbWUpOwpJbmRleDogVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxl
ci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwJKHJldmlzaW9uIDEyMDAzNCkKKysr
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw2IEBAIG1vZHVsZSBX
VFIgewogICAgICAgICAvLyBTcGVjaWFsIERPTSBmdW5jdGlvbnMuCiAgICAgICAgIHZvaWQgY2xl
YXJCYWNrRm9yd2FyZExpc3QoKTsKICAgICAgICAgb2JqZWN0IGNvbXB1dGVkU3R5bGVJbmNsdWRp
bmdWaXNpdGVkSW5mbyhpbiBvYmplY3QgZWxlbWVudCk7Ci0gICAgICAgIERPTVN0cmluZyBjb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZChpbiBET01TdHJpbmcgZWxlbWVudElkKTsKICAgICAgICAg
dm9pZCBleGVjQ29tbWFuZChpbiBET01TdHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5nIGFyZ3VtZW50
KTsKICAgICAgICAgYm9vbGVhbiBpc0NvbW1hbmRFbmFibGVkKGluIERPTVN0cmluZyBuYW1lKTsK
ICAgICAgICAgRE9NU3RyaW5nIG1hcmtlclRleHRGb3JMaXN0SXRlbShpbiBvYmplY3QgZWxlbWVu
dCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjAwMzQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MSBAQAorMjAxMi0wNi0xMSAgS2F1c3R1YmggQXRy
YXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBbRFJUXSBMVEM6OiBj
b3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgpIGNvdWxkIGJlIG1vdmVkIHRvIEludGVybmFscy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NDA2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUg
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQgZnJvbSBMYXlvdXRUZXN0Q290cm9sbGVyIHRvIElu
dGVybmFscyBhbmQKKyAgICAgICAgcmVtb3ZlIHRoZSBvbGQgcGxhdGZvcm0gc3BlY2lmaWMgaW1w
bGVtZW50YXRpb25zIGFzIGl0IGV4Y2x1c2l2ZWx5IHRlc3RzIFdlYkNvcmUgZnVuY3Rpb25hbGl0
eS4KKworICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzLzJkaXNwbGF5cy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvMmRpc3BsYXlzLmh0bWw6CisgICAgICAgICog
ZmFzdC9jc3MvY291bnRlcnMvYWRkaW5nLW5vZGVzLmh0bWw6CisgICAgICAgICogZmFzdC9jc3Mv
Y291bnRlcnMvYWZ0ZXItY29udGludWF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2Nzcy9jb3VudGVycy9hZnRlci1jb250aW51YXRpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nz
cy9jb3VudGVycy9jb250ZW50LTAyMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3Mv
Y291bnRlcnMvY29udGVudC0wMjEuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9j
b3VudGVyLWJlZm9yZS1jb250ZW50LW5vdC1pbmNyZW1lbnRlZC5odG1sOgorICAgICAgICAqIGZh
c3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAwLmh0bWw6CisgICAg
ICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAxLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDEuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDIuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC1pbmhlcml0
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3Jl
bWVudC1pbmhlcml0Lmh0bToKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWlu
Y3JlbWVudC1vdmVyZmxvdy5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL2NvdW50
ZXItaW5jcmVtZW50LXRlc3RzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3Vu
dGVycy9jb3VudGVyLWluY3JlbWVudC10ZXN0cy5odG06CisgICAgICAgICogZmFzdC9jc3MvY291
bnRlcnMvY291bnRlci1yZXNldC0wMDAuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVy
cy9jb3VudGVyLXJlc2V0LTAwMS5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL2Nv
dW50ZXItcmVzZXQtMDAyLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3NzL2Nv
dW50ZXJzL2NvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkLmh0bWw6CisgICAgICAgICogZmFzdC9j
c3MvY291bnRlcnMvZGVlcC1iZWZvcmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3Nz
L2NvdW50ZXJzL2RlZXAtYmVmb3JlLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMv
aW52YWxpZGF0ZS1jYWNoZWQtY291bnRlci1ub2RlLmh0bWw6CisgICAgICAgICogZmFzdC9jc3Mv
Y291bnRlcnMvbmVzdGluZy5odG1sOgorCiAyMDEyLTA2LTExICBEb21pbmljIENvb25leSAgPGRv
bWluaWNjQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3ZWQ6IFVw
ZGF0ZSB0ZXN0IGV4cGVjdGF0aW9ucyB3aXRoIGJ1Z3MgZm9yIG1lZGlhIHRlc3QgdGltZW91dHMK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzLzJkaXNwbGF5cy1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvMmRpc3BsYXlz
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTIwMDM0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y291bnRlcnMvMmRpc3BsYXlzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNiw1ICs2
LDUgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi1QQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0VmlldycpIGlzICcxMDAw
IDEwMDAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0VmlldycpKSBpcyAnMTAwMCAxMDAwJwogCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2Nzcy9jb3VudGVycy8yZGlzcGxheXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jb3VudGVycy8yZGlzcGxheXMuaHRtbAkocmV2aXNpb24gMTIwMDM0KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvMmRpc3BsYXlzLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDcgKzMxLDcgQEAgZnVuY3Rpb24gcnVuKCkKICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGVzdFZpZXciKS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgImNvdW50ZXIxMDAw
Iik7CiAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIHJldHVy
bjsKLSAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3Rlc3RWaWV3JykiLCAiJzEwMDAgMTAwMCciKTsKKyAgICBzaG91bGRCZSgid2lu
ZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RW
aWV3JykpIiwgIicxMDAwIDEwMDAnIik7CiAKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZGRpbmctbm9kZXMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZGRpbmctbm9kZXMuaHRtbAko
cmV2aXNpb24gMTIwMDM0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvYWRkaW5n
LW5vZGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKICAgICAgICAgICAg
ICAgICAgICAgbmV3U3BhbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7
CiAgICAgICAgICAgICAgICAgICAgIGlkID0gc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRyaWJ1dGUo
ImlkIik7CiAgICAgICAgICAgICAgICAgICAgIGlmIChpZCAhPSBudWxsKQotICAgICAgICAgICAg
ICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ID0gbGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoaWQpOworICAgICAgICAgICAgICAgICAgICAg
ICAgbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ID0gd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpKTsKICAgICAgICAgICAgICAgICAgICAgaWYg
KG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dC5sZW5ndGgpCiAgICAgICAgICAgICAgICAgICAgICAg
ICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgKyAi
LSI7CiAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobmV3U3BhbkVsZW1l
bnQpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvYWZ0ZXItY29udGludWF0
aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3Vu
dGVycy9hZnRlci1jb250aW51YXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMjAwMzQpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9hZnRlci1jb250aW51YXRpb24tZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogVGhpcyB0ZXN0IHBhc3NlcyBp
ZiB0aGUgbnVtYmVycyBkaXNwbGF5ZWQgYmVsb3cgYXJlIDEgYW5kIDIgaW4gdGhpcyBvcmRlci4K
IAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
YzInKSBpcyAnMicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2MyJykpIGlzICcyJwogCiBURVNUIENPTVBMRVRFCiAKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2FmdGVyLWNvbnRpbnVhdGlvbi5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2FmdGVyLWNvbnRpbnVhdGlv
bi5odG1sCShyZXZpc2lvbiAxMjAwMzQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVy
cy9hZnRlci1jb250aW51YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBA
QAogICAgICAgICB9CiAgICAgICAgIGZ1bmN0aW9uIHJ1bigpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZCgnYzInKSIsICInMiciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYzInKSkiLCAiJzInIik7
CiAKICAgICAgICAgICAgIGRlYnVnKCcnKTsKICAgICAgICAgICAgIGRlYnVnKCdURVNUIENPTVBM
RVRFJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb250ZW50LTAyMS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMv
Y29udGVudC0wMjEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMjAwMzQpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2Nzcy9jb3VudGVycy9jb250ZW50LTAyMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNyArMSw3IEBACiBUaGlzIGlzIHRoZSBXZWJLaXQgdmVyc2lvbiBvZiBDU1MgVGVz
dDogQ29udGVudCB1c2luZyBhICdjb3VudGVycygpJyBmdW5jdGlvbiB3aXRoIGEgc3RyaW5nIHZh
bHVlLgogCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCdkaXYxJykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCdkaXYyJykgaXMgJzAuMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5j
b3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdjEnKSkgaXMgJzAnCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdk
aXYyJykpIGlzICcwLjAnCiAKIFRFU1QgQ09NUExFVEUKIApJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY291bnRlcnMvY29udGVudC0wMjEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2Nzcy9jb3VudGVycy9jb250ZW50LTAyMS5odG1sCShyZXZpc2lvbiAxMjAwMzQpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb250ZW50LTAyMS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw4ICsyOCw4IEBACiAgIHsKICAgICAgIGlmICghd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQogICAgICAgICAgIHJldHVybjsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZGl2MScpIiwgIicwJyIp
OwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCdkaXYyJykiLCAiJzAuMCciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGl2MScpKSIsICIn
MCciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZGl2MicpKSIsICInMC4wJyIpOwogCiAgICAgICBkZWJ1Zygn
Jyk7CiAgICAgICBkZWJ1ZygnVEVTVCBDT01QTEVURScpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY291bnRlcnMvY291bnRlci1iZWZvcmUtY29udGVudC1ub3QtaW5jcmVtZW50ZWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWJl
Zm9yZS1jb250ZW50LW5vdC1pbmNyZW1lbnRlZC5odG1sCShyZXZpc2lvbiAxMjAwMzQpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWJlZm9yZS1jb250ZW50LW5vdC1p
bmNyZW1lbnRlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBACiAgICAgICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNwYW5MaXN0Lmxlbmd0aDsgKytpICkgewogICAgICAg
ICAgICAgICAgIHZhciBkaXZJdGVtID0gc3Bhbkxpc3QuaXRlbShpKTsKICAgICAgICAgICAgICAg
ICBjb3VudGVycyArPSAnLSc7Ci0gICAgICAgICAgICAgICAgY291bnRlcnMgKz0gbGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoZGl2SXRlbS5nZXRBdHRyaWJ1
dGUoImlkIikpOworICAgICAgICAgICAgICAgIGNvdW50ZXJzICs9IHdpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdkl0ZW0uZ2V0QXR0cmlidXRl
KCJpZCIpKSk7CiAgICAgICAgICAgICAgICAgY291bnRlcnMgKz0gZGl2SXRlbS50ZXh0Q29udGVu
dDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b250YWluZXIiKS5pbm5lckhUTUwgPSBjb3VudGVyczsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
Y3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAw
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTIwMDM0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAwLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMSwxNCArMSwxNCBAQAogVGhpcyBpcyB0aGUgV2ViS2l0IHZlcnNpb24gb2YgQ1NTIDIu
MSBUZXN0IFN1aXRlOiBkeW5hbWljIGNoYW5nZXMgdG8gJ2NvdW50ZXItaW5jcmVtZW50Jy4KIAog
QmVmb3JlIHRoZSBkeW5hbWljIGNoYW5nZToKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIGlzICcxJwotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSBpcyAnMicKLVBBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2ZvdXInKSBp
cyAnMycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ29uZScpKSBpcyAnMScKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RocmVlJykpIGlzICcyJworUEFTUyB3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm91cicpKSBp
cyAnMycKIEFmdGVyIHRoZSBkeW5hbWljIGNoYW5nZToKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIGlzICcxJwotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdvJykgaXMgJzInCi1Q
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJl
ZScpIGlzICczJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgnZm91cicpIGlzICc0JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJykpIGlzICcxJworUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHdvJykpIGlzICcy
JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGhyZWUnKSkgaXMgJzMnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3VyJykpIGlzICc0JwogCiBURVNUIENPTVBMRVRF
CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50
LTAwMC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2Nv
dW50ZXItaW5jcmVtZW50LTAwMC5odG1sCShyZXZpc2lvbiAxMjAwMzQpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDAuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTgsMTggKzE4LDE4IEBACiAgIGZ1bmN0aW9uIGNoZWNrQ291bnRlclZhbHVlc0Jl
Zm9yZUNoYW5nZSgpCiAgIHsKICAgICAgIGRlYnVnKCdCZWZvcmUgdGhlIGR5bmFtaWMgY2hhbmdl
OicpOwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCdvbmUnKSIsICInMSciKTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSIsICInMiciKTsK
LSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgnZm91cicpIiwgIiczJyIpOworICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvbmUnKSkiLCAiJzEnIik7
CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RocmVlJykpIiwgIicyJyIpOworICAgICAgc2hvdWxkQmUoIndpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3VyJykp
IiwgIiczJyIpOwogICB9CiAKICAgZnVuY3Rpb24gY2hlY2tDb3VudGVyVmFsdWVzQWZ0ZXJDaGFu
Z2UoKQogICB7CiAgICAgICBkZWJ1ZygnQWZ0ZXIgdGhlIGR5bmFtaWMgY2hhbmdlOicpOwotICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCdvbmUnKSIsICInMSciKTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdvJykiLCAiJzInIik7Ci0gICAgICBzaG91
bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Ro
cmVlJykiLCAiJzMnIik7Ci0gICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2ZvdXInKSIsICInNCciKTsKKyAgICAgIHNob3VsZEJl
KCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
b25lJykpIiwgIicxJyIpOworICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0d28nKSkiLCAiJzInIik7CisgICAgICBz
aG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3RocmVlJykpIiwgIiczJyIpOworICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3VyJykpIiwgIic0JyIp
OwogCiAgICAgICBkZWJ1ZygnJyk7CiAgICAgICBkZWJ1ZygnVEVTVCBDT01QTEVURScpOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAxLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9j
b3VudGVyLWluY3JlbWVudC0wMDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMjAwMzQpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC0wMDEtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICsxLDEzIEBACiBUaGlzIGlzIHRoZSBXZWJL
aXQgdmVyc2lvbiBvZiBDU1MgMi4xIFRlc3QgU3VpdGU6IGR5bmFtaWMgY2hhbmdlcyB0byAnY291
bnRlci1pbmNyZW1lbnQnLgogCiBCZWZvcmUgdGhlIGR5bmFtaWMgY2hhbmdlOgotUEFTUyBsYXlv
dXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnb25lJykgaXMgJzEn
Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
d28nKSBpcyAnMycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ3RocmVlJykgaXMgJzQnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvbmUnKSkgaXMgJzEnCitQQVNTIHdpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0d28nKSkgaXMg
JzMnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0aHJlZScpKSBpcyAnNCcKIEFmdGVyIHRoZSBkeW5hbWljIGNoYW5nZToKLVBBU1Mg
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIGlz
ICcxJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndHdvJykgaXMgJzInCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCd0aHJlZScpIGlzICczJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJykpIGlzICcxJworUEFTUyB3aW5k
b3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHdvJykp
IGlzICcyJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGhyZWUnKSkgaXMgJzMnCiAKIFRFU1QgQ09NUExFVEUKIApJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtMDAxLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1l
bnQtMDAxLmh0bWwJKHJldmlzaW9uIDEyMDAzNCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
dW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOCwx
NyArMTgsMTcgQEAKICAgZnVuY3Rpb24gY2hlY2tDb3VudGVyVmFsdWVzQmVmb3JlQ2hhbmdlKCkK
ICAgewogICAgICAgZGVidWcoJ0JlZm9yZSB0aGUgZHluYW1pYyBjaGFuZ2U6Jyk7Ci0gICAgICBz
aG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J29uZScpIiwgIicxJyIpOwotICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d28nKSIsICInMyciKTsKLSAgICAgIHNob3VsZEJl
KCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUn
KSIsICInNCciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb25lJykpIiwgIicxJyIpOworICAgICAgc2hvdWxk
QmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0d28nKSkiLCAiJzMnIik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RocmVlJykpIiwgIic0JyIpOwogICB9
CiAKICAgZnVuY3Rpb24gY2hlY2tDb3VudGVyVmFsdWVzQWZ0ZXJDaGFuZ2UoKQogICB7CiAgICAg
ICBkZWJ1ZygnQWZ0ZXIgdGhlIGR5bmFtaWMgY2hhbmdlOicpOwotICAgICAgc2hvdWxkQmUoImxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSIsICIn
MSciKTsKLSAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndHdvJykiLCAiJzInIik7Ci0gICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVlJykiLCAiJzMnIik7
CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ29uZScpKSIsICInMSciKTsKKyAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHdvJykpIiwg
IicyJyIpOworICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aHJlZScpKSIsICInMyciKTsKIAogICAgICAgZGVidWco
JycpOwogICAgICAgZGVidWcoJ1RFU1QgQ09NUExFVEUnKTsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMi5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LTAwMi5odG1s
CShyZXZpc2lvbiAxMjAwMzQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3Vu
dGVyLWluY3JlbWVudC0wMDIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAog
ICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzcGFuTGlzdC5sZW5ndGg7ICsraSApIHsK
ICAgICAgICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzcGFuIik7CiAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50LmlubmVyVGV4
dCA9Ci0gICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJpZCIpKTsKKyAg
ICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoc3Bhbkxpc3QuaXRlbShpKS5nZXRBdHRyaWJ1dGUoImlkIikpKTsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dC5sZW5ndGgpCiAg
ICAgICAgICAgICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSBuZXdTcGFu
RWxlbWVudC5pbm5lclRleHQgKyAiLSI7CiAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuYXBw
ZW5kQ2hpbGQobmV3U3BhbkVsZW1lbnQpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291
bnRlcnMvY291bnRlci1pbmNyZW1lbnQtaW5oZXJpdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtaW5oZXJp
dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEyMDAzNCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LWluaGVyaXQtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xLDcgKzEsNyBAQAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZCgnd3JhcHBlcjkwJykgaXMgJzUnCi1QQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OTAnKSBpcyAnMTAnCi1Q
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0
OTBhJykgaXMgJzE1JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgnd3JhcHBlcjkxJykgaXMgJzEwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDkxJykgaXMgJzIwJwotUEFTUyBsYXlv
dXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDkxYScpIGlz
ICczMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3dyYXBwZXI5MCcpKSBpcyAnNScKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q5MCcpKSBpcyAnMTAnCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0OTBhJykpIGlzICcxNScKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dyYXBwZXI5MScpKSBpcyAnMTAnCitQQVNTIHdpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0OTEnKSkg
aXMgJzIwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdDkxYScpKSBpcyAnMzAnCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
Y3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LWluaGVyaXQuaHRtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LWluaGVyaXQu
aHRtCShyZXZpc2lvbiAxMjAwMzQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9j
b3VudGVyLWluY3JlbWVudC1pbmhlcml0Lmh0bQkod29ya2luZyBjb3B5KQpAQCAtMTMsMTIgKzEz
LDEyIEBACiAgICAgICAgICAgICBmdW5jdGlvbiBydW4oKQogICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgIC8vIFNvbWUgZXh0cmEgV2ViS2l0IHRlc3RpbmcgZm9yIGNvdW50ZXItaW5jcmVt
ZW50IGluaGVyaXQKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3dyYXBwZXI5MCcpIiwgIic1JyIpOwotICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndGVzdDkwJykiLCAiJzEwJyIpOwotICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDkwYScpIiwgIicxNSciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3dyYXBwZXI5MScpIiwgIicxMCci
KTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5MScpIiwgIicyMCciKTsKLSAgICAgICAgICAgICAg
ICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3Rlc3Q5MWEnKSIsICInMzAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cmFwcGVy
OTAnKSkiLCAiJzUnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0OTAnKSkiLCAiJzEw
JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJW
YWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDkwYScpKSIsICInMTUnIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd3cmFwcGVyOTEnKSkiLCAiJzEwJyIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdDkxJykpIiwgIicyMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3Q5MWEnKSkiLCAiJzMwJyIpOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKICAgICAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LW92ZXJmbG93Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1pbmNyZW1lbnQtb3ZlcmZsb3cu
aHRtbAkocmV2aXNpb24gMTIwMDM0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMv
Y291bnRlci1pbmNyZW1lbnQtb3ZlcmZsb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTgsNyAr
MTgsNyBAQAogICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgICAgICB7CiAgICAgICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb3VudGVkJykuaW5uZXJUZXh0ID0gbGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2NvdW50ZWQnKTsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY291bnRlZCcpLmlubmVyVGV4dCA9IHdpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb3VudGVk
JykpOwogICAgICAgICB9CiAKICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQn
LCBkb1Rlc3QsIGZhbHNlKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2Nv
dW50ZXItaW5jcmVtZW50LXRlc3RzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3JlbWVudC10ZXN0cy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDEyMDAzNCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2Nv
dW50ZXItaW5jcmVtZW50LXRlc3RzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw1
OCArMSw1OCBAQAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDMnKSBpcyAnLTIxNDc0ODM2NDgnCi1QQVNTIGxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NCcpIGlzICctMjE0NzQ4MzY0NycK
LVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rl
c3Q1JykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCd0ZXN0NicpIGlzICcwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDcnKSBpcyAnMCcKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q4JykgaXMgJzEwJwotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDkn
KSBpcyAnMTAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0ZXN0MTAnKSBpcyAnMjE0NzQ4MzY0NicKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxMScpIGlzICcyMTQ3NDgzNjQ3Jwot
UEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDEyJykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTMnKSBpcyAnMjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxNCcpIGlzICcy
JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dGVzdDE1JykgaXMgJy0yMTQ3NDgzNjQ4JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDE2JykgaXMgJy0yMTQ3NDgzNjQ4JwotUEFTUyBs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDE3Jykg
aXMgJy0yMTQ3NDgzNjQ4JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndGVzdDE4JykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTknKSBpcyAnMCcKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyMCcpIGlzICcw
JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dGVzdDIxJykgaXMgJzIwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCgndGVzdDIyJykgaXMgJzIwJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDIzJykgaXMgJzIxNDc0ODM2NDcnCi1Q
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0
MjQnKSBpcyAnMjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyNScpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI2JykgaXMgJzIx
NDc0ODM2NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0ZXN0MjcnKSBpcyAnMycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyOCcpIGlzICctMjE0NzQ4MzY0OCcKLVBBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyOScpIGlz
ICctMjE0NzQ4MzY0OCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3Rlc3QzMCcpIGlzICctMjE0NzQ4MzY0OCcKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzMScpIGlzICcwJwotUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDMy
JykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0ZXN0MzMnKSBpcyAnMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzNCcpIGlzICczMCcKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzNScpIGlzICczMCcKLVBB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Qz
NicpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDM3JykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzgnKSBpcyAnMjE0
NzQ4MzY0NycKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3Rlc3QzOScpIGlzICcyMTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQwJykgaXMgJzMyJwotUEFTUyBsYXlv
dXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQxJykgaXMg
Jy0yMTQ3NDgzNjQ4JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgndGVzdDQyJykgaXMgJy0yMTQ3NDgzNjQ4JwotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQzJykgaXMgJy0yMTQ3NDgz
NjQ4JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndGVzdDQ0JykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDUnKSBpcyAnMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0NicpIGlzICcwJwotUEFTUyBsYXlv
dXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ3JykgaXMg
JzMyMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3Rlc3Q0OCcpIGlzICczMjAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDknKSBpcyAnMjE0NzQ4MzY0NycKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1MCcpIGlzICcy
MTQ3NDgzNjQ3JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDUxJykgaXMgJzIxNDc0ODM2NDcnCi1QQVNTIGxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTInKSBpcyAnMjE0NzQ4MzY0NycK
LVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rl
c3Q1MycpIGlzICc1JwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgnbm9uZTUzJykgaXMgJzUnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTNhJykgaXMgJzEwJwotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnd3JhcHBlcjU0JykgaXMg
JzUnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlk
KCd0ZXN0NTQnKSBpcyAnMTAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTUnKSBpcyAnMScKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1NicpIGlzICctMjE0NzQ4MzY0OCcK
K1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3QzJykpIGlzICctMjE0NzQ4MzY0OCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0JykpIGlzICctMjE0NzQ4MzY0
NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3Q1JykpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDYnKSkgaXMgJzAnCitQQVNTIHdpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NycpKSBp
cyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Rlc3Q4JykpIGlzICcxMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVy
VmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q5JykpIGlzICcxMCcKK1BBU1Mgd2lu
ZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qx
MCcpKSBpcyAnMjE0NzQ4MzY0NicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxMScpKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mg
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3QxMicpKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxMycpKSBpcyAnMjE0NzQ4MzY0NycKK1BB
U1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3QxNCcpKSBpcyAnMicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxNScpKSBpcyAnLTIxNDc0ODM2NDgnCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
MTYnKSkgaXMgJy0yMTQ3NDgzNjQ4JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDE3JykpIGlzICctMjE0NzQ4MzY0OCcKK1BB
U1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3QxOCcpKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxOScpKSBpcyAnMCcKK1BBU1Mgd2luZG93LmludGVy
bmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyMCcpKSBpcyAn
MCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3QyMScpKSBpcyAnMjAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MjInKSkgaXMgJzIwJworUEFTUyB3aW5k
b3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDIz
JykpIGlzICcyMTQ3NDgzNjQ3JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDI0JykpIGlzICcyMTQ3NDgzNjQ3JworUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDI1JykpIGlzICcyMTQ3NDgzNjQ3JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDI2JykpIGlzICcyMTQ3NDgzNjQ3JworUEFT
UyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDI3JykpIGlzICczJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDI4JykpIGlzICctMjE0NzQ4MzY0OCcKK1BBU1Mgd2lu
ZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qy
OScpKSBpcyAnLTIxNDc0ODM2NDgnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MzAnKSkgaXMgJy0yMTQ3NDgzNjQ4JworUEFT
UyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDMxJykpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDMyJykpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDMzJykpIGlzICcw
JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdDM0JykpIGlzICczMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzNScpKSBpcyAnMzAnCitQQVNTIHdpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MzYn
KSkgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MzcnKSkgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
MzgnKSkgaXMgJzIxNDc0ODM2NDcnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MzknKSkgaXMgJzIxNDc0ODM2NDcnCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0NDAnKSkgaXMgJzMyJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQxJykpIGlzICctMjE0NzQ4MzY0OCcKK1BBU1Mgd2lu
ZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0
MicpKSBpcyAnLTIxNDc0ODM2NDgnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NDMnKSkgaXMgJy0yMTQ3NDgzNjQ4JworUEFT
UyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDQ0JykpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQ1JykpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQ2JykpIGlzICcw
JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdDQ3JykpIGlzICczMjAnCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZh
bHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NDgnKSkgaXMgJzMyMCcKK1BBU1Mgd2lu
ZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0
OScpKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1MCcpKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mg
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3Q1MScpKSBpcyAnMjE0NzQ4MzY0NycKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFs
dWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1MicpKSBpcyAnMjE0NzQ4MzY0NycKK1BB
U1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3Q1MycpKSBpcyAnNScKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vbmU1MycpKSBpcyAnNScKK1BBU1Mgd2luZG93LmludGVy
bmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1M2EnKSkgaXMg
JzEwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnd3JhcHBlcjU0JykpIGlzICc1JworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDU0JykpIGlzICcxMCcKK1BBU1Mg
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3Q1NScpKSBpcyAnMScKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1NicpKSBpcyAnLTIxNDc0ODM2NDgnCiAKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LXRlc3RzLmh0bQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLWluY3Jl
bWVudC10ZXN0cy5odG0JKHJldmlzaW9uIDEyMDAzNCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL2NvdW50ZXItaW5jcmVtZW50LXRlc3RzLmh0bQkod29ya2luZyBjb3B5KQpAQCAt
MTUsNjMgKzE1LDYzIEBACiAgICAgICAgICAgICAgICAgLyogVGhlc2UgYXJlIHRleHQgdmVyc2lv
bnMgb2YgdGhlIGNvdW50ZXItaW5jcmVtZW50LSogdGVzdHMgaW4gdGhlIENTUyAyLjEgdGVzdCBz
dWl0ZS4KICAgICAgICAgICAgICAgICAgICBTbyAndGVzdDMnIGhlcmUgaXMgZXF1aXZhbGVudCB0
byBjb3VudGVyLWluY3JlbWVudC0wMDMuaHRtLCBhbmQgc28gb24uIAogICAgICAgICAgICAgICAg
ICAgIFdlYktpdCBkdW1wQXNUZXh0IHZlcnNpb25zIG9mIGNvdW50ZXItaW5jcmVtZW50LTAwMSBh
bmQgMDAyIGFscmVhZHkgZXhpc3QgaW4gZmFzdC9jc3MvY291bnRlcnMgKi8KLSAgICAgICAgICAg
ICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQoJ3Rlc3QzJykiLCAiJy0yMTQ3NDgzNjQ4JyIpOwotICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDQnKSIsICInLTIxNDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NScpIiwgIicw
JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDYnKSIsICInMCciKTsKLSAgICAgICAgICAgICAg
ICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3Rlc3Q3JykiLCAiJzAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0OCcpIiwgIicxMCci
KTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q5JykiLCAiJzEwJyIpOwotICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgndGVzdDEwJykiLCAiJzIxNDc0ODM2NDYnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTEn
KSIsICInMjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxMicpIiwgIicyMTQ3
NDgzNjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDEzJykiLCAiJzIxNDc0ODM2NDcnIik7
Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MTQnKSIsICInMiciKTsKLSAgICAgICAgICAgICAgICBz
aG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3Rlc3QxNScpIiwgIictMjE0NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgi
bGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxNicp
IiwgIictMjE0NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxNycpIiwgIictMjE0
NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QxOCcpIiwgIicwJyIpOwotICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgndGVzdDE5JykiLCAiJzAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjAn
KSIsICInMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyMScpIiwgIicyMCciKTsKLSAgICAg
ICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWQoJ3Rlc3QyMicpIiwgIicyMCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Qy
MycpIiwgIicyMTQ3NDgzNjQ3JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDI0JykiLCAiJzIx
NDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjUnKSIsICInMjE0NzQ4MzY0Nyci
KTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QyNicpIiwgIicyMTQ3NDgzNjQ3JyIpOwotICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgndGVzdDI3JykiLCAiJzMnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0Mjgn
KSIsICInLTIxNDc0ODM2NDgnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MjknKSIsICInLTIx
NDc0ODM2NDgnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzAnKSIsICInLTIxNDc0ODM2NDgn
Iik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzEnKSIsICInMCciKTsKLSAgICAgICAgICAgICAg
ICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3Rlc3QzMicpIiwgIicwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDMzJykiLCAiJzAn
Iik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzQnKSIsICInMzAnIik7Ci0gICAgICAgICAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0ZXN0MzUnKSIsICInMzAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0MzYnKSIsICIn
MjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3QzNycpIiwgIicyMTQ3NDgzNjQ3
JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDM4JykiLCAiJzIxNDc0ODM2NDcnIik7Ci0gICAg
ICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKCd0ZXN0MzknKSIsICInMjE0NzQ4MzY0NyciKTsKLSAgICAgICAgICAgICAg
ICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3Rlc3Q0MCcpIiwgIiczMiciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MScpIiwgIict
MjE0NzQ4MzY0OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MicpIiwgIictMjE0NzQ4MzY0
OCciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0MycpIiwgIictMjE0NzQ4MzY0OCciKTsKLSAg
ICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0NCcpIiwgIicwJyIpOwotICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVz
dDQ1JykiLCAiJzAnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NDYnKSIsICInMCciKTsKLSAg
ICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3Rlc3Q0NycpIiwgIiczMjAnIik7Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0NDgnKSIsICInMzIwJyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDQ5JykiLCAiJzIxNDc0
ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0ZXN0NTAnKSIsICInMjE0NzQ4MzY0NyciKTsK
LSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3Rlc3Q1MScpIiwgIicyMTQ3NDgzNjQ3JyIpOwotICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGVzdDUyJykiLCAiJzIxNDc0ODM2NDcnIik7Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0
ZXN0NTMnKSIsICInNSciKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ25vbmU1MycpIiwgIic1JyIpOwot
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGVzdDUzYScpIiwgIicxMCciKTsKLSAgICAgICAgICAgICAgICBz
aG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3dyYXBwZXI1NCcpIiwgIic1JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDU0JykiLCAiJzEw
JyIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGVzdDU1JykiLCAiJzEnIik7Ci0gICAgICAgICAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0ZXN0NTYnKSIsICInLTIxNDc0ODM2NDgnIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0MycpKSIsICInLTIxNDc0ODM2NDgnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
IndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0NCcpKSIsICInLTIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
NScpKSIsICInMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFs
cy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q2JykpIiwgIicwJyIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDcnKSkiLCAiJzAnIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZXN0OCcpKSIsICInMTAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0OScpKSIsICInMTAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTAnKSki
LCAiJzIxNDc0ODM2NDYnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRl
cm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTEnKSkiLCAi
JzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5h
bHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTInKSkiLCAiJzIx
NDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTMnKSkiLCAiJzIxNDc0
ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTQnKSkiLCAiJzInIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTUnKSkiLCAiJy0yMTQ3NDgzNjQ4JyIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDE2JykpIiwgIictMjE0NzQ4MzY0OCciKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxNycpKSIsICInLTIxNDc0ODM2NDgnIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTgnKSkiLCAiJzAnIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0MTknKSkiLCAiJzAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MjAn
KSkiLCAiJzAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MjEnKSkiLCAiJzIwJyIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDIyJykpIiwgIicyMCciKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Rlc3QyMycpKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3QyNCcpKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Rlc3QyNScpKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3QyNicpKSIsICInMjE0NzQ4MzY0NyciKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3QyNycpKSIsICInMyciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93
LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyOCcp
KSIsICInLTIxNDc0ODM2NDgnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MjknKSki
LCAiJy0yMTQ3NDgzNjQ4JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50
ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDMwJykpIiwg
IictMjE0NzQ4MzY0OCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVy
bmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzMScpKSIsICIn
MCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVy
VmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzMicpKSIsICInMCciKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzMycpKSIsICInMCciKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3QzNCcpKSIsICInMzAnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndp
bmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
MzUnKSkiLCAiJzMwJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDM2JykpIiwgIicy
MTQ3NDgzNjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDM3JykpIiwgIicyMTQ3
NDgzNjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDM4JykpIiwgIicyMTQ3NDgz
NjQ3JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50
ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDM5JykpIiwgIicyMTQ3NDgzNjQ3
JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJW
YWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQwJykpIiwgIiczMiciKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0MScpKSIsICInLTIxNDc0ODM2NDgnIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0NDInKSkiLCAiJy0yMTQ3NDgzNjQ4JyIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGVzdDQzJykpIiwgIictMjE0NzQ4MzY0OCciKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3Q0NCcpKSIsICInMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3Q0NScpKSIsICInMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93Lmlu
dGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0NicpKSIs
ICInMCciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3Vu
dGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0NycpKSIsICInMzIwJyIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQ4JykpIiwgIiczMjAnIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZXN0NDknKSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0NTAnKSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0NTEnKSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0NTInKSkiLCAiJzIxNDc0ODM2NDcnIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0NTMnKSkiLCAiJzUnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5p
bnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdub25lNTMnKSki
LCAiJzUnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291
bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NTNhJykpIiwgIicxMCciKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dyYXBwZXI1NCcpKSIsICInNSciKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1NCcpKSIsICInMTAnIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0NTUnKSkiLCAiJzEnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NTYn
KSkiLCAiJy0yMTQ3NDgzNjQ4JyIpOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKICAgICAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAwLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1yZXNldC0wMDAuaHRtbAkocmV2aXNpb24gMTIw
MDM0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlci1yZXNldC0wMDAu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICAgICAgICAgICAgICAgIGZv
ciAoaSA9IDA7IGkgPCBzcGFuTGlzdC5sZW5ndGg7ICsraSApIHsKICAgICAgICAgICAgICAgICAg
ICAgbmV3U3BhbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAg
ICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCA9Ci0gICAgICAgICAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKHNw
YW5MaXN0Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJpZCIpKTsKKyAgICAgICAgICAgICAgICAgICAg
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3Bh
bkxpc3QuaXRlbShpKS5nZXRBdHRyaWJ1dGUoImlkIikpKTsKICAgICAgICAgICAgICAgICAgICAg
aWYgKG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dC5sZW5ndGgpCiAgICAgICAgICAgICAgICAgICAg
ICAgICBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQgPSBuZXdTcGFuRWxlbWVudC5pbm5lclRleHQg
KyAiLSIKICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChuZXdTcGFuRWxl
bWVudCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLXJlc2V0
LTAwMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2Nv
dW50ZXItcmVzZXQtMDAxLmh0bWwJKHJldmlzaW9uIDEyMDAzNCkKKysrIExheW91dFRlc3RzL2Zh
c3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAxLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTIyLDcgKzIyLDcgQEAKICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAg
Ly8gVGhpcyBjYWxsIGVuc3VyZXMgdGhlIGxheW91dCBoYXBwZW5lZCBiZWZvcmUgd2UgbW9kaWZ5
IHRoZSBET00gdHJlZS4KLSAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgic3BhbjEiKTsKKyAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3BhbjEiKSk7CiAgICAgICB9CiAK
ICAgICAgIHZhciB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKQEAgLTM0LDcg
KzM0LDcgQEAKICAgICAgICAgICBzcGFuTGlzdCA9IHRlc3RFbGVtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJzcGFuIik7CiAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNwYW5MaXN0Lmxlbmd0
aDsgKytpICkgewogICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0
ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoc3Bhbkxp
c3QuaXRlbShpKS5nZXRBdHRyaWJ1dGUoImlkIikpOworICAgICAgICAgICAgICBuZXdTcGFuRWxl
bWVudC5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChzcGFuTGlzdC5pdGVtKGkpLmdldEF0dHJpYnV0ZSgiaWQiKSkpOwogICAg
ICAgICAgICAgICBpZiAobmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0Lmxlbmd0aCkKICAgICAgICAg
ICAgICAgICAgIG5ld1NwYW5FbGVtZW50LmlubmVyVGV4dCA9IG5ld1NwYW5FbGVtZW50LmlubmVy
VGV4dCArICItIjsKICAgICAgICAgICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChuZXdTcGFuRWxl
bWVudCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVyLXJlc2V0
LTAwMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2Nv
dW50ZXItcmVzZXQtMDAyLmh0bWwJKHJldmlzaW9uIDEyMDAzNCkKKysrIExheW91dFRlc3RzL2Zh
c3QvY3NzL2NvdW50ZXJzL2NvdW50ZXItcmVzZXQtMDAyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDcgKzMwLDcgQEAKICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc3Bhbkxpc3Qu
bGVuZ3RoOyArK2kgKSB7CiAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgICAgICAgICAgICAgICAgICBuZXdTcGFu
RWxlbWVudC5pbm5lclRleHQgPQotICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChzcGFuTGlzdC5pdGVtKGkpLmdldEF0dHJp
YnV0ZSgiaWQiKSk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuY291bnRl
clZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0cmli
dXRlKCJpZCIpKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdTcGFuRWxlbWVudC5pbm5l
clRleHQubGVuZ3RoKQogICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQuaW5u
ZXJUZXh0ID0gbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ICsgIi0iOwogICAgICAgICAgICAgICAg
ICAgICBjb25zb2xlLmFwcGVuZENoaWxkKG5ld1NwYW5FbGVtZW50KTsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEyMDAzNCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMSArMSwxMSBAQAotVGhpcyBpcyB0aGUg
dGVzdCBmb3IgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQK
K1RoaXMgaXMgdGhlIHRlc3QgZm9yIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQKICAgIAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgnYmVmb3JlJykgaXMgJzAnCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhZnRlcicpIGlzICcwJwotUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnYmVmb3JlX2FmdGVyJykgaXMg
JzAgMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3R3aWNlJykgaXMgJzAgMCcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3BvaW50JykgaXMgJzAuMScKLVBBU1MgbGF5b3V0VGVzdENvbnRy
b2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3by1wb2ludHMnKSBpcyAnMC4xLjIn
Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdn
cmVlaycpIGlzICcwLs6xLs6yJwotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGhyZWUtZ3JlZWtzJykgaXMgJzAuzrEuzrIgMC7OsS7OsiAwLs6x
Ls6yJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnYmVmb3JlJykpIGlzICcwJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJW
YWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWZ0ZXInKSkgaXMgJzAnCitQQVNTIHdpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiZWZvcmVf
YWZ0ZXInKSkgaXMgJzAgMCcKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R3aWNlJykpIGlzICcwIDAnCitQQVNTIHdpbmRvdy5pbnRl
cm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb2ludCcpKSBpcyAn
MC4xJworUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndHdvLXBvaW50cycpKSBpcyAnMC4xLjInCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMu
Y291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdncmVlaycpKSBpcyAnMC7OsS7O
sicKK1BBU1Mgd2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3RocmVlLWdyZWVrcycpKSBpcyAnMC7OsS7OsiAwLs6xLs6yIDAuzrEuzrInCiAKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2NvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQuaHRtbAkocmV2aXNpb24gMTIwMDM0KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMTQsNyArMTQsNyBAQAogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci0g
ICAgPGRpdj5UaGlzIGlzIHRoZSB0ZXN0IGZvciBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZDwvZGl2PgorICAgIDxkaXY+VGhpcyBpcyB0aGUgdGVzdCBmb3Ig
d2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZDwvZGl2PgogCiAgICAg
PGRpdiBjbGFzcz0icmVzZXQiPjxzcGFuIGlkPSJiZWZvcmUiIGNsYXNzPSJzaG93LWJlZm9yZSI+
PC9zcGFuPjwvZGl2PgogICAgIDxkaXYgY2xhc3M9InJlc2V0Ij48c3BhbiBpZD0iYWZ0ZXIiIGNs
YXNzPSJzaG93LWFmdGVyIj48L3NwYW4+PC9kaXY+CkBAIC0zNSwxNCArMzUsMTQgQEAKICAgICAg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogCi0gICAgICAgICAgICBzaG91bGRCZSgibGF5
b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2JlZm9yZScpIiwg
IicwJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdhZnRlcicpIiwgIicwJyIpOwotICAgICAgICAgICAgc2hv
dWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdi
ZWZvcmVfYWZ0ZXInKSIsICInMCAwJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRl
c3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d2ljZScpIiwgIicwIDAn
Iik7Ci0gICAgICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoJ3BvaW50JykiLCAiJzAuMSciKTsKLSAgICAgICAgICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdv
LXBvaW50cycpIiwgIicwLjEuMiciKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZ3JlZWsnKSIsICInMC5cdTAz
YjEuXHUwM2IyJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJlZS1ncmVla3MnKSIsICInMC5cdTAzYjEu
XHUwM2IyIDAuXHUwM2IxLlx1MDNiMiAwLlx1MDNiMS5cdTAzYjInIik7CisgICAgICAgICAgICBz
aG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2JlZm9yZScpKSIsICInMCciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
aW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWZ0ZXInKSki
LCAiJzAnIik7CisgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVy
VmFsdWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JlZm9yZV9hZnRlcicpKSIsICInMCAwJyIp
OworICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0d2ljZScpKSIsICInMCAwJyIpOworICAgICAgICAgICAg
c2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdwb2ludCcpKSIsICInMC4xJyIpOworICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRv
dy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0d28tcG9p
bnRzJykpIiwgIicwLjEuMiciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJu
YWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3JlZWsnKSkiLCAiJzAu
XHUwM2IxLlx1MDNiMiciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxz
LmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhyZWUtZ3JlZWtzJykpIiwg
IicwLlx1MDNiMS5cdTAzYjIgMC5cdTAzYjEuXHUwM2IyIDAuXHUwM2IxLlx1MDNiMiciKTsKICAg
ICAgICAgfQogICAgIDwvc2NyaXB0PgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY291bnRlcnMvZGVlcC1iZWZvcmUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2RlZXAtYmVmb3JlLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMTIwMDM0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvZGVlcC1iZWZvcmUt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnZGl2MScpIGlzICcwJwor
UEFTUyB3aW5kb3cuaW50ZXJuYWxzLmNvdW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZGl2MScpKSBpcyAnMCcKIAogVEVTVCBDT01QTEVURQogCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jb3VudGVycy9kZWVwLWJlZm9yZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2RlZXAtYmVmb3JlLmh0bWwJKHJldmlzaW9uIDEyMDAzNCkK
KysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL2RlZXAtYmVmb3JlLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICAgewogICAgICAgaWYgKCF3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgcmV0dXJuOwotICAgICAgc2hvdWxkQmUoImxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdkaXYxJykiLCAiJzAn
Iik7CisgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5jb3VudGVyVmFsdWUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdjEnKSkiLCAiJzAnIik7CiAKICAgICAgIGRlYnVnKCcnKTsK
ICAgICAgIGRlYnVnKCdURVNUIENPTVBMRVRFJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jb3VudGVycy9pbnZhbGlkYXRlLWNhY2hlZC1jb3VudGVyLW5vZGUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy9pbnZhbGlkYXRlLWNhY2hlZC1jb3Vu
dGVyLW5vZGUuaHRtbAkocmV2aXNpb24gMTIwMDM0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y291bnRlcnMvaW52YWxpZGF0ZS1jYWNoZWQtY291bnRlci1ub2RlLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTIyLDcgKzIyLDcgQEAKICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewogICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwog
ICAgICAgICAgICAgdmFyIHRlc3RSZXN1bHQ7Ci0gICAgICAgICAgICB2YXIgY291bnRlclZhbHVl
ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoImtlZXAt
bWUiKTsKKyAgICAgICAgICAgIHZhciBjb3VudGVyVmFsdWUgPSB3aW5kb3cuaW50ZXJuYWxzLmNv
dW50ZXJWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgia2VlcC1tZSIpKTsKICAgICAgICAg
ICAgIGlmIChjb3VudGVyVmFsdWUgPT0gIjEiKQogICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQg
PSAiUEFTUyI7CiAgICAgICAgICAgICBlbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
b3VudGVycy9uZXN0aW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y291bnRlcnMvbmVzdGluZy5odG1sCShyZXZpc2lvbiAxMjAwMzQpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jb3VudGVycy9uZXN0aW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5
LDcgQEAKICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc3Bhbkxpc3QubGVuZ3RoOyAr
K2kgKSB7CiAgICAgICAgICAgICAgICAgICAgIG5ld1NwYW5FbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgic3BhbiIpOwogICAgICAgICAgICAgICAgICAgICBuZXdTcGFuRWxlbWVudC5p
bm5lclRleHQgPQotICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3Vu
dGVyVmFsdWVGb3JFbGVtZW50QnlJZChzcGFuTGlzdC5pdGVtKGkpLmdldEF0dHJpYnV0ZSgiaWQi
KSk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuY291bnRlclZhbHVlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKHNwYW5MaXN0Lml0ZW0oaSkuZ2V0QXR0cmlidXRlKCJpZCIp
KSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdTcGFuRWxlbWVudC5pbm5lclRleHQubGVu
Z3RoKQogICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ID0g
bmV3U3BhbkVsZW1lbnQuaW5uZXJUZXh0ICsgIi0gIjsKICAgICAgICAgICAgICAgICAgICAgY29u
c29sZS5hcHBlbmRDaGlsZChuZXdTcGFuRWxlbWVudCk7Cg==
</data>
<flag name="review"
          id="154411"
          type_id="1"
          status="+"
          setter="morrita"
    />
          </attachment>
      

    </bug>

</bugzilla>