<?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>7683</bug_id>
          
          <creation_ts>2006-03-09 12:06:08 -0800</creation_ts>
          <short_desc>TinyMCE: Implement execCommand(UnLink)</short_desc>
          <delta_ts>2006-03-25 03:30:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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>6627</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Garcia">justin.garcia</reporter>
          <assigned_to name="Justin Garcia">justin.garcia</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>35643</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-03-09 12:06:08 -0800</bug_when>
    <thetext>Implement execCommand(UnLink)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36509</commentid>
    <comment_count>1</comment_count>
      <attachid>7103</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-03-15 20:41:50 -0800</bug_when>
    <thetext>Created attachment 7103
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36540</commentid>
    <comment_count>2</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-03-16 02:32:25 -0800</bug_when>
    <thetext>I noticed that I misspelled would&apos;t:
+// and Unlink, would&apos;t push the
I think that selectionAroundNode is a misnomer.  The function returns a selection that selects the contents of the passed node.  selectionFromNodeContents is more accurate. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36542</commentid>
    <comment_count>3</comment_count>
      <attachid>7103</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-03-16 02:44:52 -0800</bug_when>
    <thetext>Comment on attachment 7103
patch

Eek, I forgot to svn add Unlink.{h,cpp}!  Removing the review flag until I check in a new patch.  Here are some other problems I noticed:

This should be a FIXME
+    // This pushes down anchors even if they are fully selected.  This is 
+    // less efficient, but makes this code much less complicated.

I now use the new form of the ApplyStyleCommand constructor in 3 places:
+    EditCommandPtr cmd(new ApplyStyleCommand(document(), new CSSMutableStyleDeclarationImpl(), static_cast&lt;ElementImpl*&gt;(newAnchorElement.get())));
+    applyCommandToComposite(cmd);
I should put a convenience method in CompositeEditCommand.

I should follow the style guidelines even in JS code:
+    }
+    else {
+        execUnlinkCommand();
+    }
+}

All I really care about in the test case is the result of innerHTML, so I should probably make the test use dumpAsText.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36577</commentid>
    <comment_count>4</comment_count>
      <attachid>7118</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-03-16 13:47:17 -0800</bug_when>
    <thetext>Created attachment 7118
patch

Implemented Unlink using ApplyStyleCommand in a remove only mode
Added EditActions for CreateLink/Unlink
Added a new constructor for ApplyStyleCommand to be used by CreateLink, Unlink and pushPartiallySelectedAnchorElementsDown, and reverted the other two constructors to deal only with normal style application.
Added code to push partially selected anchor elements down.  It&apos;s used by CreateLink because anchors can&apos;t be nested. It&apos;s used by Unlink because it&apos;s necessary to break a partially selected anchor into fully selected pieces so that Unlink can remove them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37527</commentid>
    <comment_count>5</comment_count>
      <attachid>7118</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-03-24 19:15:47 -0800</bug_when>
    <thetext>Comment on attachment 7118
patch

dave r+&apos;ed this assuming I made a few changes he suggested.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7103</attachid>
            <date>2006-03-15 20:41:50 -0800</date>
            <delta_ts>2006-03-16 13:47:17 -0800</delta_ts>
            <desc>patch</desc>
            <filename>7683.txt</filename>
            <type>text/plain</type>
            <size>36610</size>
            <attacher name="Justin Garcia">justin.garcia</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdW5saW5rLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC91bmxpbmsuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdW5saW5rLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0uLi9lZGl0aW5nLmpzIGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFTY3Jp
cHQiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKSB7CisgICAgdmFy
IGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAgIHZhciBs
aSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgdmFyIHRleHQgPSBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKTsKKyAgICBsaS5hcHBlbmRDaGlsZCh0ZXh0KTsKKyAg
ICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKK30KKworZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7
CisgICAgICAgIAorICAgIHZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOworICAgIHZhciBk
OworICAgIAorICAgIC8vIEZ1bGx5IHNlbGVjdCB0aGUgbGluZSBpbiB0aGUgZmlyc3QgZGl2Lgor
ICAgIGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdDEiKTsKKyAgICBzLnNldFBvc2l0
aW9uKGQsIDApOworICAgIGV4dGVuZFNlbGVjdGlvbkZvcndhcmRCeUxpbmVDb21tYW5kKCk7Cisg
ICAgdW5saW5rQ29tbWFuZCgpOworICAgIAorICAgIGxvZyhkLmlubmVySFRNTCk7CisKKyAgICAv
LyBTZWxlY3QgdGhlIHNlY29uZCB3b3JkIGluIHRoZSBzZWNvbmQgZGl2ICAKKyAgICBkID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QyIik7CisgICAgcy5zZXRQb3NpdGlvbihkLCAwKTsK
KyAgICBtb3ZlU2VsZWN0aW9uRm9yd2FyZEJ5V29yZENvbW1hbmQoKTsKKyAgICBleHRlbmRTZWxl
Y3Rpb25Gb3J3YXJkQnlXb3JkQ29tbWFuZCgpOworICAgIHVubGlua0NvbW1hbmQoKTsKKyAgICAK
KyAgICBsb2coZC5pbm5lckhUTUwpOworICAgIAorICAgIC8vIFNlbGVjdCBwYXJ0IG9mIGEgbGlu
ayAoYW5kIGEgYml0IG9mIHRyYWlsaW5nIG5vbi1saW5rZWQgdGV4dCkKKyAgICB2YXIgZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0M3N0YXJ0Iik7CisgICAgcy5zZXRQb3NpdGlvbihl
LCAwKTsKKyAgICBleHRlbmRTZWxlY3Rpb25Gb3J3YXJkQnlMaW5lQ29tbWFuZCgpOworICAgIHVu
bGlua0NvbW1hbmQoKTsKKyAgICAKKyAgICBsb2coZC5pbm5lckhUTUwpOworICAgIAorICAgIC8v
IExpbmsgYW4gZWRpdGFibGUgcmVnaW9uIGNvbnRhaW5pbmcgbGlzdHMsIHRhYmxlcywgaW1hZ2Vz
LCBldGMuCisgICAgZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0NCIpOworICAgIHMu
c2V0UG9zaXRpb24oZCwgMCk7CisgICAgc2VsZWN0QWxsQ29tbWFuZCgpOworICAgIGNyZWF0ZUxp
bmtDb21tYW5kKCJodHRwOi8vd3d3Lmdvb2dsZS5jb20vIik7CisgICAgLy8gTm93IHVubGluayBh
IHBvcnRpb24gb2YgaXQKKyAgICB2YXIgZW5kID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRl
c3Q0ZW5kIik7CisgICAgcy5zZXRCYXNlQW5kRXh0ZW50KGQsIDAsIGVuZCwgMCk7CisgICAgdW5s
aW5rQ29tbWFuZCgpOworICAgIAorICAgIGxvZyhkLmlubmVySFRNTCk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKworPGJvZHkgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsiPgorPHA+VGhpcyBpcyBh
IHRlc3Qgb2YgZXhlY0NvbW1hbmQoVW5saW5rKS4gIEl0IHRlc3RzOjwvcD4KKzxvbD4KKzxsaT5D
b21wbGV0ZWx5IHVubGlua2luZyBhIGxpbmsuPC9saT4KKzxsaT5VbmxpbmtpbmcgYSBzaW5nbGUg
d29yZCBpbnNpZGUgb2YgYSBsaW5rLjwvbGk+Cis8bGk+VW5saW5raW5nIGEgc2VsZWN0aW9uIGNv
bnRhaW5pbmcgbGlua2VkIGFuZCB1bmxpbmtlZCB0ZXh0LjwvbGk+Cis8bGk+VW5saW5raW5nIGEg
c2VsZWN0aW9uIHRoYXQgcGFydGlhbGx5IHNlbGVjdHMgYSBsaW5rZWQgdGFibGUuPC9saT4KKzwv
b2w+Cis8b2w+Cis8bGk+PGRpdiBpZD0idGVzdDEiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+PGEg
aHJlZj0iaHR0cDovL3d3dy5hcHBsZS5jb20vIj5UaGlzIHBhcmFncmFwaCBzdGFydHMgbGlua2Vk
LiAgSXQgc2hvdWxkIGVuZCB1cCB1bmxpbmtlZC48L2E+PC9kaXY+PC9saT4KKzxsaT48ZGl2IGlk
PSJ0ZXN0MiIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj48YSBocmVmPSJodHRwOi8vd3d3LmFwcGxl
LmNvbS8iPlRoaXMgcGFyYWdyYXBoIHN0YXJ0cyBvdXQgYXMgYSBsaW5rIHRvIGFwcGxlLmNvbS4g
IFRoZSBzZWNvbmQgd29yZCBpbiB0aGUgcGFyYWdyYXBoIHNob3VsZCBlbmQgdXAgYmVpbmcgdW5s
aW5rZWQuPC9hPjwvZGl2PjwvbGk+Cis8bGk+PGRpdiBpZD0idGVzdDMiIGNvbnRlbnRlZGl0YWJs
ZT0idHJ1ZSI+VGhpcyBsaW5lIHN0YXJ0cyBvdXQgd2l0aCA8YSBocmVmPSJodHRwOi8vd3d3Lmdv
b2dsZS5jb20iPjxpPmE8L2k+PHNwYW4gaWQ9InRlc3Qzc3RhcnQiPiBsaW5rPC9zcGFuPjwvYT4g
aW4gdGhlIG1pZGRsZS4gIE9ubHkgdGhlICdhJyBzaG91bGQgYmUgbGlua2VkIGFmdGVyIHRoZSB0
ZXN0LjwvZGl2PjwvbGk+Cis8bGk+PGRpdiBpZD0idGVzdDQiIGNvbnRlbnRlZGl0YWJsZT0idHJ1
ZSI+Cis8cD5UaGlzIDxpPmVkaXRhYmxlIHJlZ2lvbjwvaT4gY29udGFpbnMgbGlzdHMsIHRhYmxl
cywgc3R5bGVkIHRleHQsIGFuZCBpbWFnZXMuICBFdmVyeXRoaW5nIGluIHRoaXMgcmVnaW9uIGV4
Y2VwdCBmb3Igd2hhdCBpcyBzZWxlY3RlZCBzaG91bGQgYmUgYSBsaW5rLjwvcD4KKzx1bD4KKzxs
aT5JdGVtIDE8L2xpPgorPGxpPkl0ZW0gMjwvbGk+Cis8L3VsPgorPHRhYmxlIGJvcmRlcj0xPjx0
cj48dGQ+MTwvdGQ+PHRkPjI8L3RkPjx0ZD48c3BhbiBpZD0idGVzdDRlbmQiPjM8L3NwYW4+PC90
ZD48L3RyPjwvdGFibGU+Cis8YnI+CitUaGlzIDxiPmxpbmU8L2I+IGNvbnRhaW5zIDxpbWcgc3Jj
PSIuLi9yZXNvdXJjZXMvYWJlLmpwZyI+IGFuIGltYWdlLgorPC9kaXY+PC9saT4KKzwvb2w+Cis8
cD5pbm5lckhUTUwgb2YgZWRpdGFibGUgcmVnaW9ucyBhZnRlciB0aGUgdGVzdDo8L3A+Cis8b2wg
aWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0PgorcnVuRWRpdGluZ1Rlc3QoKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorCis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDog
TGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC91bmxpbmstZXhwZWN0ZWQucG5nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjpt
aW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246
IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdW5saW5rLWV4cGVjdGVkLnBuZwpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0K
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3VubGluay1leHBlY3RlZC5j
aGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3Vu
bGluay1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvZXhlY0NvbW1hbmQvdW5saW5rLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxIEBACiswYWY4ZmRkMTIwM2JkYzdkZmIwZTFhZTEwYTRjMzBiMgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdW5s
aW5rLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL3VubGluay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL3VubGluay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTgzIEBACitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPTVJh
bmdlOnJhbmdlIGZyb20gMCBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG8gMSBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGlu
Z05vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3Rp
ZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6
KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gRElWID4gTEkgPiBPTCA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDU3IG9mICN0ZXh0ID4gRElWID4gTEkgPiBPTCA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3du
c3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNh
dGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkRW5kRWRpdGluZ0luRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSAwIG9mIERJViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxIG9m
IERJViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZEVuZEVkaXRpbmc6V2ViVmlld0RpZEVuZEVkaXRpbmdOb3RpZmljYXRpb24K
K0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE9NUmFuZ2U6cmFuZ2UgZnJv
bSAwIG9mIERJViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxIG9mIERJ
ViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlkQmVnaW5FZGl0aW5nTm90aWZpY2F0aW9u
CitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxl
Y3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+IERJ
ViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMCBvZiAjdGV4dCA+IERJ
ViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlv
bkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90
aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRD
aGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEVuZEVkaXRpbmdJbkRP
TVJhbmdlOnJhbmdlIGZyb20gMCBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG8gMyBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRFbmRFZGl0aW5nOldlYlZpZXdEaWRFbmRFZGl0aW5n
Tm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPTVJh
bmdlOnJhbmdlIGZyb20gMCBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG8gMyBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGlu
Z05vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3Rp
ZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6
KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IExJ
ID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA2MiBvZiAjdGV4dCA+IERJViA+IExJ
ID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmlu
aXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0
aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VO
b3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEVuZEVkaXRpbmdJbkRPTVJhbmdl
OnJhbmdlIGZyb20gMCBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gNCBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRFbmRFZGl0aW5nOldlYlZpZXdEaWRFbmRFZGl0aW5nTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPTVJhbmdlOnJh
bmdlIGZyb20gMCBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8g
MTMgb2YgRElWID4gTEkgPiBPTCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQmVnaW5FZGl0aW5nOldlYlZpZXdEaWRCZWdpbkVkaXRpbmdOb3Rp
ZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hv
dWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgUCA+IERJViA+IExJID4g
T0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAwIG9mIFAgPiBESVYgPiBMSSA+IE9MID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQg
PiBQID4gRElWID4gTEkgPiBPTCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEwIG9mICN0
ZXh0ID4gRElWID4gTEkgPiBPTCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5T
U2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVk
RE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gQSA+IFAg
PiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTAgb2YgI3RleHQg
PiBBID4gRElWID4gTEkgPiBPTCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5T
U2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2Vi
Vmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJh
bmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+IFAgPiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gMCBvZiBURCA+IFRSID4gVEJPRFkgPiBUQUJMRSA+IERJViA+IExJ
ID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmlu
aXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0
aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VO
b3RpZmljYXRpb24KK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJDYW52YXMg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVu
ZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4MAorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDAp
IHNpemUgNzg0eDE0CisgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgMjI2
eDE0CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTkyOiAiVGhpcyBpcyBhIHRl
c3Qgb2YgZXhlY0NvbW1hbmQoVW5saW5rKS4gIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgxOTIs
MCkgd2lkdGggMzQ6ICJJdCB0ZXN0czoiCisgICAgICBSZW5kZXJCbG9jayB7T0x9IGF0ICgwLDI2
KSBzaXplIDc4NHg1NgorICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCwwKSBzaXpl
IDc0NHgxNAorICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDExCisg
ICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSAxMzR4MTQKKyAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDEzNDogIkNvbXBsZXRlbHkgdW5saW5raW5nIGEg
bGluay4iCisgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDQwLDE0KSBzaXplIDc0NHgx
NAorICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDExCisgICAgICAg
ICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSAxOTF4MTQKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDE5MTogIlVubGlua2luZyBhIHNpbmdsZSB3b3JkIGluc2lk
ZSBvZiBhIGxpbmsuIgorICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCwyOCkgc2l6
ZSA3NDR4MTQKKyAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgwLDApIHNpemUgMHgxMQor
ICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgMjcxeDE0CisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNzE6ICJVbmxpbmtpbmcgYSBzZWxlY3Rpb24g
Y29udGFpbmluZyBsaW5rZWQgYW5kIHVubGlua2VkIHRleHQuIgorICAgICAgICBSZW5kZXJMaXN0
SXRlbSB7TEl9IGF0ICg0MCw0Mikgc2l6ZSA3NDR4MTQKKyAgICAgICAgICBSZW5kZXJMaXN0TWFy
a2VyIGF0ICgwLDApIHNpemUgMHgxMQorICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgw
LDApIHNpemUgMjYzeDE0CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNjM6
ICJVbmxpbmtpbmcgYSBzZWxlY3Rpb24gdGhhdCBwYXJ0aWFsbHkgc2VsZWN0cyBhIGxpbmtlZCB0
YWJsZS4iCisgICAgICBSZW5kZXJCbG9jayB7T0x9IGF0ICgwLDk0KSBzaXplIDc4NHgyNTYKKyAg
ICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsMCkgc2l6ZSA3NDR4MTQKKyAgICAgICAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDc0NHgxNAorICAgICAgICAgICAgUmVu
ZGVyTGlzdE1hcmtlciBhdCAoMCwwKSBzaXplIDB4MTEKKyAgICAgICAgICAgIFJlbmRlclRleHQg
e1RFWFR9IGF0ICgwLDApIHNpemUgMjYxeDE0CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDEzNzogIlRoaXMgcGFyYWdyYXBoIHN0YXJ0cyBsaW5rZWQuICIKKyAgICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDEzNywwKSB3aWR0aCAxMjQ6ICJJdCBzaG91bGQgZW5kIHVwIHVu
bGlua2VkLiIKKyAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsMTQpIHNpemUgNzQ0
eDE0CisgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3NDR4MTQKKyAg
ICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDExCisgICAgICAgICAg
ICBSZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUgMjF4MTQgW2NvbG9yPSMwMDAwRUVdCisg
ICAgICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgMjF4MTQKKyAgICAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMTogIlRoaXMiCisgICAgICAgICAg
ICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMjEsMCkgc2l6ZSA1MHgxNAorICAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMjEsMCkgd2lkdGggNTA6ICIgcGFyYWdyYXBoIgorICAgICAgICAgICAgUmVu
ZGVySW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDQ2NHgxNCBbY29sb3I9IzAwMDBFRV0KKyAgICAg
ICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDcxLDApIHNpemUgNDY0eDE0CisgICAgICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDcxLDApIHdpZHRoIDE1NzogIiBzdGFydHMgb3V0IGFzIGEg
bGluayB0byBhcHBsZS5jb20uICIKKyAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjI4LDAp
IHdpZHRoIDMwNzogIlRoZSBzZWNvbmQgd29yZCBpbiB0aGUgcGFyYWdyYXBoIHNob3VsZCBlbmQg
dXAgYmVpbmcgdW5saW5rZWQuIgorICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCwy
OCkgc2l6ZSA3NDR4MTQKKyAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXpl
IDc0NHgxNAorICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoMCwwKSBzaXplIDB4MTEK
KyAgICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgMTE0eDE0CisgICAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDExNDogIlRoaXMgbGluZSBzdGFydHMg
b3V0IHdpdGggIgorICAgICAgICAgICAgUmVuZGVySW5saW5lIHtJfSBhdCAoMCwwKSBzaXplIDZ4
MTQKKyAgICAgICAgICAgICAgUmVuZGVySW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDZ4MTQgW2Nv
bG9yPSMwMDAwRUVdCisgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDExNCww
KSBzaXplIDZ4MTQKKyAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMTQsMCkgd2lkdGgg
NjogImEiCisgICAgICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMjF4
MTQKKyAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDEyMCwwKSBzaXplIDIxeDE0
CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEyMCwwKSB3aWR0aCAyMTogIiBsaW5rIgor
ICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDE0MSwwKSBzaXplIDI2N3gxNAorICAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTQxLDApIHdpZHRoIDcwOiAiIGluIHRoZSBtaWRkbGUu
ICIKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIxMSwwKSB3aWR0aCAxOTc6ICJPbmx5IHRo
ZSAnYScgc2hvdWxkIGJlIGxpbmtlZCBhZnRlciB0aGUgdGVzdC4iCisgICAgICAgIFJlbmRlckxp
c3RJdGVtIHtMSX0gYXQgKDQwLDU0KSBzaXplIDc0NHgyMDIKKyAgICAgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCwwKSBzaXplIDc0NHgyMDIKKyAgICAgICAgICAgIFJlbmRlckJsb2NrIHtQ
fSBhdCAoMCwwKSBzaXplIDc0NHgxNAorICAgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0
ICgwLDApIHNpemUgMHgxMQorICAgICAgICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMCww
KSBzaXplIDI0eDE0CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjQ6
ICJUaGlzICIKKyAgICAgICAgICAgICAgUmVuZGVySW5saW5lIHtJfSBhdCAoMCwwKSBzaXplIDcx
eDE0CisgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDI0LDApIHNpemUgNzF4
MTQKKyAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyNCwwKSB3aWR0aCA3MTogImVkaXRh
YmxlIHJlZ2lvbiIKKyAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDk1LDApIHNp
emUgNTQxeDE0CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDk1LDApIHdpZHRoIDIxNjog
IiBjb250YWlucyBsaXN0cywgdGFibGVzLCBzdHlsZWQgdGV4dCwgYW5kIGltYWdlcy4gIgorICAg
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzMTEsMCkgd2lkdGggMzI1OiAiRXZlcnl0aGluZyBp
biB0aGlzIHJlZ2lvbiBleGNlcHQgZm9yIHdoYXQgaXMgc2VsZWN0ZWQgc2hvdWxkIGJlIGEgbGlu
ay4iCisgICAgICAgICAgICBSZW5kZXJCbG9jayB7VUx9IGF0ICgwLDI2KSBzaXplIDc0NHgyOAor
ICAgICAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCwwKSBzaXplIDcwNHgxNAor
ICAgICAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDExCisgICAg
ICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSAzMHgxNAorICAgICAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzA6ICJJdGVtIDEiCisgICAgICAg
ICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDQwLDE0KSBzaXplIDcwNHgxNAorICAgICAg
ICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDExCisgICAgICAgICAg
ICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSAzMHgxNAorICAgICAgICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzA6ICJJdGVtIDIiCisgICAgICAgICAgICBS
ZW5kZXJUYWJsZSB7VEFCTEV9IGF0ICgwLDU0KSBzaXplIDQ2eDI4IFtib3JkZXI6ICgxcHggb3V0
c2V0ICM4MDgwODApXQorICAgICAgICAgICAgICBSZW5kZXJUYWJsZVNlY3Rpb24ge1RCT0RZfSBh
dCAoMSwxKSBzaXplIDB4MjYKKyAgICAgICAgICAgICAgICBSZW5kZXJUYWJsZVJvdyB7VFJ9IGF0
ICgwLDApIHNpemUgMHgwCisgICAgICAgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBh
dCAoMiwyKSBzaXplIDEyeDIyIFtib3JkZXI6ICgxcHggaW5zZXQgIzgwODA4MCldIFtyPTAgYz0w
IHJzPTEgY3M9MV0KKyAgICAgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDIs
Mikgc2l6ZSA4eDE4CisgICAgICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIsMikgd2lk
dGggODogIjEiCisgICAgICAgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTYs
Mikgc2l6ZSAxMngyMiBbYm9yZGVyOiAoMXB4IGluc2V0ICM4MDgwODApXSBbcj0wIGM9MSBycz0x
IGNzPTFdCisgICAgICAgICAgICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgyLDIpIHNp
emUgOHgxOAorICAgICAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyLDIpIHdpZHRoIDg6
ICIyIgorICAgICAgICAgICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDMwLDIpIHNp
emUgMTJ4MjIgW2JvcmRlcjogKDFweCBpbnNldCAjODA4MDgwKV0gW3I9MCBjPTIgcnM9MSBjcz0x
XQorICAgICAgICAgICAgICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUg
OHgxOAorICAgICAgICAgICAgICAgICAgICAgIFJlbmRlcklubGluZSB7QX0gYXQgKDAsMCkgc2l6
ZSA4eDE4IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAgICAgICAgICAgICAgICAgUmVuZGVyVGV4
dCB7VEVYVH0gYXQgKDIsMikgc2l6ZSA4eDE4CisgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgyLDIpIHdpZHRoIDg6ICIzIgorICAgICAgICAgICAgUmVuZGVyQmxvY2sgKGFu
b255bW91cykgYXQgKDAsODIpIHNpemUgNzQ0eDEyMAorICAgICAgICAgICAgICBSZW5kZXJJbmxp
bmUge0F9IGF0ICgwLDApIHNpemUgMjR4MTIwIFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAgICAg
ICAgIFJlbmRlckJSIHtCUn0gYXQgKDAsMCkgc2l6ZSAweDE0CisgICAgICAgICAgICAgICAgUmVu
ZGVyVGV4dCB7VEVYVH0gYXQgKDAsMTA2KSBzaXplIDI0eDE0CisgICAgICAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwxMDYpIHdpZHRoIDI0OiAiVGhpcyAiCisgICAgICAgICAgICAgIFJlbmRl
cklubGluZSB7Qn0gYXQgKDAsMCkgc2l6ZSAxOHgxNAorICAgICAgICAgICAgICAgIFJlbmRlcklu
bGluZSB7QX0gYXQgKDAsMCkgc2l6ZSAxOHgxNCBbY29sb3I9IzAwMDBFRV0KKyAgICAgICAgICAg
ICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgyNCwxMDYpIHNpemUgMTh4MTQKKyAgICAgICAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI0LDEwNikgd2lkdGggMTg6ICJsaW5lIgorICAgICAg
ICAgICAgICBSZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUgNDV4MTQgW2NvbG9yPSMwMDAw
RUVdCisgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDQyLDEwNikgc2l6ZSA0
NXgxNAorICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDQyLDEwNikgd2lkdGggNDU6ICIg
Y29udGFpbnMgIgorICAgICAgICAgICAgICBSZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUg
MTI0eDE0IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAgICAgICAgIFJlbmRlckltYWdlIHtJTUd9
IGF0ICg4NywxNCkgc2l6ZSA3NngxMDMKKyAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IHtURVhU
fSBhdCAoMTYzLDEwNikgc2l6ZSA0OHgxNAorICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDE2MywxMDYpIHdpZHRoIDQ4OiAiIGFuIGltYWdlLiIKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBh
dCAoMCwzNjIpIHNpemUgNzg0eDE0CisgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDAp
IHNpemUgMjExeDE0CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjExOiAiaW5u
ZXJIVE1MIG9mIGVkaXRhYmxlIHJlZ2lvbnMgYWZ0ZXIgdGhlIHRlc3Q6IgorICAgICAgUmVuZGVy
QmxvY2sge09MfSBhdCAoMCwzODgpIHNpemUgNzg0eDE0MAorICAgICAgICBSZW5kZXJMaXN0SXRl
bSB7TEl9IGF0ICg0MCwwKSBzaXplIDc0NHgxNAorICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIg
YXQgKDAsMCkgc2l6ZSAweDExCisgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkg
c2l6ZSAyNjF4MTQKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDEzNzogIlRo
aXMgcGFyYWdyYXBoIHN0YXJ0cyBsaW5rZWQuICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgx
MzcsMCkgd2lkdGggMTI0OiAiSXQgc2hvdWxkIGVuZCB1cCB1bmxpbmtlZC4iCisgICAgICAgIFJl
bmRlckxpc3RJdGVtIHtMSX0gYXQgKDQwLDE0KSBzaXplIDc0NHgyOAorICAgICAgICAgIFJlbmRl
ckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDExCisgICAgICAgICAgUmVuZGVyVGV4dCB7VEVY
VH0gYXQgKDAsMCkgc2l6ZSA3MDV4MjgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDU5NDogIjxBIGhyZWY9XCJodHRwOi8vd3d3LmFwcGxlLmNvbS9cIj5UaGlzPC9BPiBwYXJh
Z3JhcGg8QSBocmVmPVwiaHR0cDovL3d3dy5hcHBsZS5jb20vXCI+IHN0YXJ0cyBvdXQgYXMgYSBs
aW5rIHRvIGFwcGxlLmNvbS4gIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDU5NCwwKSB3aWR0
aCAxMTE6ICJUaGUgc2Vjb25kIHdvcmQgaW4gdGhlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMTQpIHdpZHRoIDIxOTogInBhcmFncmFwaCBzaG91bGQgZW5kIHVwIGJlaW5nIHVubGlua2Vk
LjwvQT4iCisgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDQwLDQyKSBzaXplIDc0NHgy
OAorICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDExCisgICAgICAg
ICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSA3MDV4MjgKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDU5NDogIjxBIGhyZWY9XCJodHRwOi8vd3d3LmFwcGxlLmNv
bS9cIj5UaGlzPC9BPiBwYXJhZ3JhcGg8QSBocmVmPVwiaHR0cDovL3d3dy5hcHBsZS5jb20vXCI+
IHN0YXJ0cyBvdXQgYXMgYSBsaW5rIHRvIGFwcGxlLmNvbS4gIgorICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDU5NCwwKSB3aWR0aCAxMTE6ICJUaGUgc2Vjb25kIHdvcmQgaW4gdGhlIgorICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMTQpIHdpZHRoIDIxOTogInBhcmFncmFwaCBzaG91bGQgZW5k
IHVwIGJlaW5nIHVubGlua2VkLjwvQT4iCisgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQg
KDQwLDcwKSBzaXplIDc0NHg3MAorICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkg
c2l6ZSAweDExCisgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSA3MzN4
NzAKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM2OTogIjxQPlRoaXMgPEk+
ZWRpdGFibGUgcmVnaW9uPC9JPiBjb250YWlucyBsaXN0cywgdGFibGVzLCBzdHlsZWQgdGV4dCwg
YW5kIGltYWdlcy4gIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDM2OSwwKSB3aWR0aCAzNDk6
ICJFdmVyeXRoaW5nIGluIHRoaXMgcmVnaW9uIGV4Y2VwdCBmb3Igd2hhdCBpcyBzZWxlY3RlZCBz
aG91bGQgYmUgYSBsaW5rLjwvUD4iCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxNCkgd2lk
dGggNzMzOiAiPFVMPiA8TEk+SXRlbSAxPC9MST4gPExJPkl0ZW0gMjwvTEk+IDwvVUw+IDxUQUJM
RSBib3JkZXI9XCIxXCI+PFRCT0RZPjxUUj48VEQ+MTwvVEQ+PFREPjI8L1REPjxURD48U1BBTiBp
ZD1cInRlc3Q0ZW5kXCI+PEEiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyOCkgd2lkdGgg
NzE5OiAiaHJlZj1cImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9cIj4zPC9BPjwvU1BBTj48L1REPjwv
VFI+PC9UQk9EWT48L1RBQkxFPiA8QSBocmVmPVwiaHR0cDovL3d3dy5nb29nbGUuY29tL1wiPjxC
Uj4gVGhpcyA8L0E+PEI+PEEiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw0Mikgd2lkdGgg
NjgyOiAiaHJlZj1cImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9cIj5saW5lPC9BPjwvQj48QSBocmVm
PVwiaHR0cDovL3d3dy5nb29nbGUuY29tL1wiPiBjb250YWlucyA8L0E+PEEgaHJlZj1cImh0dHA6
Ly93d3cuZ29vZ2xlLmNvbS9cIj48SU1HIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNTYp
IHdpZHRoIDIwNjogInNyYz1cIi4uL3Jlc291cmNlcy9hYmUuanBnXCI+IGFuIGltYWdlLiA8L0E+
Igorc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAge1RFWFR9IG9mIGNoaWxk
IDEge1B9IG9mIGNoaWxkIDAge0RJVn0gb2YgY2hpbGQgNyB7TEl9IG9mIGNoaWxkIDUge09MfSBv
ZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAorc2VsZWN0aW9u
IGVuZDogICBwb3NpdGlvbiAwIG9mIGNoaWxkIDIge1REfSBvZiBjaGlsZCAwIHtUUn0gb2YgY2hp
bGQgMCB7VEJPRFl9IG9mIGNoaWxkIDUge1RBQkxFfSBvZiBjaGlsZCAwIHtESVZ9IG9mIGNoaWxk
IDcge0xJfSBvZiBjaGlsZCA1IHtPTH0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRN
TH0gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZWRpdGluZy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRpbmcuanMJKHJldmlzaW9uIDEzMzAx
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0aW5nLmpzCSh3b3JraW5nIGNvcHkpCkBAIC01
NzMsNiArNTczLDIxIEBACiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCitmdW5jdGlvbiBleGVjVW5saW5rQ29tbWFuZCgpIHsKKyAgICBkb2N1bWVu
dC5leGVjQ29tbWFuZCgiVW5saW5rIik7Cit9CitmdW5jdGlvbiB1bmxpbmtDb21tYW5kKCkgewor
ICAgIGlmIChjb21tYW5kRGVsYXkgPiAwKSB7CisgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGV4
ZWNVbmxpbmtDb21tYW5kLCBjb21tYW5kQ291bnQgKiBjb21tYW5kRGVsYXkpOworICAgICAgICBj
b21tYW5kQ291bnQrKzsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGV4ZWNVbmxpbmtDb21t
YW5kKCk7CisgICAgfQorfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKwogZnVuY3Rpb24gZXhlY1Bhc3RlQW5kTWF0Y2hTdHlsZUNvbW1hbmQoKSB7
CiAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlBhc3RlQW5kTWF0Y2hTdHlsZSIpOwogfQpJbmRl
eDogV2ViS2l0L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lQnJpZGdlLm0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lQnJpZGdlLm0JKHJldmlzaW9uIDEzMjk0KQor
KysgV2ViS2l0L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lQnJpZGdlLm0JKHdvcmtpbmcgY29weSkK
QEAgLTE1OTcsNiArMTU5Nyw4IEBACiAgICAgICAgIGNhc2UgV2ViVW5kb0FjdGlvblBhc3RlRm9u
dDogcmV0dXJuIFVJX1NUUklOR19LRVkoIlBhc3RlIEZvbnQiLCAiUGFzdGUgRm9udCAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAgICAgICBjYXNlIFdlYlVuZG9B
Y3Rpb25QYXN0ZVJ1bGVyOiByZXR1cm4gVUlfU1RSSU5HX0tFWSgiUGFzdGUgUnVsZXIiLCAiUGFz
dGUgUnVsZXIgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICAg
ICAgY2FzZSBXZWJVbmRvQWN0aW9uVHlwaW5nOiByZXR1cm4gVUlfU1RSSU5HX0tFWSgiVHlwaW5n
IiwgIlR5cGluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAg
ICAgICBjYXNlIFdlYlVuZG9BY3Rpb25DcmVhdGVMaW5rOiByZXR1cm4gVUlfU1RSSU5HX0tFWSgi
Q3JlYXRlIExpbmsiLCAiQ3JlYXRlIExpbmsgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0
aW9uIG5hbWUiKTsKKyAgICAgICAgY2FzZSBXZWJVbmRvQWN0aW9uVW5saW5rOiByZXR1cm4gVUlf
U1RSSU5HX0tFWSgiUmVtb3ZlIExpbmsiLCAiUmVtb3ZlIExpbmsgKFVuZG8gYWN0aW9uIG5hbWUp
IiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICB9CiAgICAgcmV0dXJuIG5pbDsKIH0KSW5kZXg6
IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMzMw
MSkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDI1LDYgKzEwMjUsOCBAQAogCQlCQ0ZCMkY3NzA5N0EyRTFBMDBCQTcwM0Qg
LyogQXJlbmEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDRkIyRjc1MDk3QTJFMUEwMEJBNzAzRCAvKiBBcmVuYS5oICovOyB9OwogCQlDNkQ3NEFENTA5
QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsQ29tbWFuZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZENzRBRDMwOUFBMjgy
RTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbENvbW1hbmQuaCAqLzsgfTsKIAkJ
QzZENzRBRTQwOUFBMjkwQTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbENvbW1h
bmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZE
NzRBRTMwOUFBMjkwQTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbENvbW1hbmQu
Y3BwICovOyB9OworCQlEMDRCRDk5QjA5QzgxNTI5MDBBNzg4MkUgLyogVW5saW5rQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDRCRDk5
OTA5QzgxNTI5MDBBNzg4MkUgLyogVW5saW5rQ29tbWFuZC5jcHAgKi87IH07CisJCUQwNEJEOTlD
MDlDODE1MjkwMEE3ODgyRSAvKiBVbmxpbmtDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDRCRDk5QTA5QzgxNTI5MDBBNzg4MkUgLyogVW5s
aW5rQ29tbWFuZC5oICovOyB9OwogCQlEMEIwNTU2ODA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRl
TGlua0NvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oICovOyB9
OwogCQlEMEIwNTU2OTA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDBCMDU1NjcwOUM2
NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmNwcCAqLzsgfTsKIAkJREQ3NjNCQjIw
OTkyQzJDOTAwNzQwQjhFIC8qIGxpYnhtbDIuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERDc2M0JCMTA5OTJDMkM5MDA3NDBCOEUgLyogbGli
eG1sMi5keWxpYiAqLzsgfTsKQEAgLTIxMjMsNiArMjEyNSw4IEBACiAJCUJFRjdFRUExMDVGRjhG
MEQwMDk3MTdFRSAvKiBLV1FFZGl0Q29tbWFuZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEtXUUVkaXRDb21tYW5kLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQzZE
NzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbENvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kaWZ5U2VsZWN0aW9uTGlzdExl
dmVsQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkQ3NEFFMzA5QUEy
OTBBMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsQ29tbWFuZC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWxD
b21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA0QkQ5OTkwOUM4MTUy
OTAwQTc4ODJFIC8qIFVubGlua0NvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFVubGlua0NvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEMDRCRDk5QTA5QzgxNTI5MDBBNzg4MkUgLyogVW5saW5rQ29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW5saW5rQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEMEIwNTU2NjA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0Nv
bW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3JlYXRlTGlua0NvbW1h
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBCMDU1NjcwOUM2NzAwMTAwMzA3
RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENyZWF0ZUxpbmtDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREQ3NjNCQjEwOTkyQzJDOTAwNzQwQjhFIC8qIGxpYnhtbDIuZHlsaWIgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1v
LmR5bGliIjsgbmFtZSA9IGxpYnhtbDIuZHlsaWI7IHBhdGggPSAvdXNyL2xpYi9saWJ4bWwyLmR5
bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwpAQCAtMjUxNyw2ICsyNTIxLDggQEAK
IAkJOTMzMDlEODYwOTlFNjQ5MTAwNTZFNTgxIC8qIGVkaXRpbmcgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUQwNEJEOTk5MDlDODE1MjkwMEE3ODgyRSAv
KiBVbmxpbmtDb21tYW5kLmNwcCAqLywKKwkJCQlEMDRCRDk5QTA5QzgxNTI5MDBBNzg4MkUgLyog
VW5saW5rQ29tbWFuZC5oICovLAogCQkJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVh
dGVMaW5rQ29tbWFuZC5oICovLAogCQkJCUQwQjA1NTY3MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVh
dGVMaW5rQ29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEODcwOTlFNjQ5MTAwNTZFNTgxIC8qIEFw
cGVuZE5vZGVDb21tYW5kLmNwcCAqLywKQEAgLTQzNjcsNiArNDM3Myw3IEBACiAJCQkJOTM1MjA3
QkUwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXplZFN0cmluZ3MuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzNTIwODgyMDlCRDQ1RTkwMEYyMDM4RCAvKiBDb29raWVKYXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUQwQjA1NTY4MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRDA0QkQ5OUMwOUM4MTUyOTAwQTc4ODJFIC8qIFVubGlua0NvbW1h
bmQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNTQ4Miw2ICs1NDg5LDcgQEAKIAkJCQk5MzUyMDg0NTA5
QkQ0M0I5MDBGMjAzOEQgLyogTGFuZ3VhZ2UubW0gaW4gU291cmNlcyAqLywKIAkJCQk5MzUyMDg3
NzA5QkQ0NTM0MDBGMjAzOEQgLyogQ29va2llSmFyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRDBC
MDU1NjkwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUQwNEJEOTlCMDlDODE1MjkwMEE3ODgyRSAvKiBVbmxpbmtDb21tYW5kLmNwcCBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwCShyZXZpc2lvbiAxMzMwMSkKKysrIFdlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4Niw2ICs1ODYsNTIgQEAKICAgICB9CiB9CiAK
K05vZGVJbXBsKiBlbmNsb3NpbmdBbmNob3JFbGVtZW50KE5vZGVJbXBsKiBub2RlKQoreworICAg
IHdoaWxlIChub2RlICYmICEobm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIG5vZGUtPmlzTGluaygp
KSkKKyAgICAgICAgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKTsKKyAgICAKKyAgICByZXR1cm4g
bm9kZTsKK30KKwordm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cHVzaEFuY2hvckVsZW1lbnRE
b3duKE5vZGVJbXBsKiBhbmNob3JOb2RlKQoreworICAgIGlmICghYW5jaG9yTm9kZSkKKyAgICAg
ICAgcmV0dXJuOworICAgIAorICAgIEFTU0VSVChhbmNob3JOb2RlLT5pc0xpbmsoKSk7CisgICAg
CisgICAgUmVmUHRyPE5vZGVJbXBsPiBuZXdBbmNob3JFbGVtZW50ID0gYW5jaG9yTm9kZS0+Y2xv
bmVOb2RlKGZhbHNlKTsKKyAgICAKKyAgICBzZXRFbmRpbmdTZWxlY3Rpb24oU2VsZWN0aW9uOjpz
ZWxlY3Rpb25Bcm91bmROb2RlKGFuY2hvck5vZGUpKTsKKyAgICBFZGl0Q29tbWFuZFB0ciBjbWQo
bmV3IEFwcGx5U3R5bGVDb21tYW5kKGRvY3VtZW50KCksIG5ldyBDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbkltcGwoKSwgc3RhdGljX2Nhc3Q8RWxlbWVudEltcGwqPihuZXdBbmNob3JFbGVtZW50
LmdldCgpKSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNtZCk7Cit9CisKKy8vIEdp
dmVuIHRoaXMgdHJlZTogPGE+PHA+aGVsbG8gd29ybGQ8L3A+PC9hPiBmb28sIGltYWdpbmUgc2Vs
ZWN0aW5nICd3b3JsZCBmb28nIGFuZCBjYWxsaW5nIENyZWF0ZUxpbmsuICAKKy8vIFNpbmNlIGFu
Y2hvcnMgY2FuJ3QgYmUgbmVzdGVkLCB0aGlzIGlzIHRoZSBvbmx5IGNvcnJlY3QgcmVzdWx0Ogor
Ly8gPHA+PGE+aGVsbG8gPC9hPjxhPndvcmxkPC9hPjwvcD48YT4gZm9vPC9hPi4gIEFwcGx5U3R5
bGVDb21tYW5kLCB3aGljaCBpcyB1c2VkIHRvIGltcGxlbWVudCBDcmVhdGVMaW5rCisvLyBhbmQg
VW5saW5rLCB3b3VsZCd0IHB1c2ggdGhlIDxhPiBkb3duIGJlZm9yZSBhcHBseWluZyB0aGUgc2Vj
b25kLCBzaW5jZSBpdCBjYXJlcyBhYm91dCBzdHlsZXMsIGFuZCBzdHlsZXMgY2FuIGJlIG5lc3Rl
ZC4KK3ZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnB1c2hQYXJ0aWFsbHlTZWxlY3RlZEFuY2hv
ckVsZW1lbnRzRG93bigpCit7CisgICAgU2VsZWN0aW9uIG9yaWdpbmFsU2VsZWN0aW9uID0gZW5k
aW5nU2VsZWN0aW9uKCk7CisgICAgCisgICAgTm9kZUltcGwqIHN0YXJ0QW5jaG9yID0gZW5jbG9z
aW5nQW5jaG9yRWxlbWVudChvcmlnaW5hbFNlbGVjdGlvbi5zdGFydCgpLm5vZGUoKSk7CisgICAg
Tm9kZUltcGwqIGVuZEFuY2hvciA9IGVuY2xvc2luZ0FuY2hvckVsZW1lbnQob3JpZ2luYWxTZWxl
Y3Rpb24uZW5kKCkubm9kZSgpKTsKKyAgICAKKyAgICAvLyBUaGlzIHB1c2hlcyBkb3duIGFuY2hv
cnMgZXZlbiBpZiB0aGV5IGFyZSBmdWxseSBzZWxlY3RlZC4gIFRoaXMgaXMgCisgICAgLy8gbGVz
cyBlZmZpY2llbnQsIGJ1dCBtYWtlcyB0aGlzIGNvZGUgbXVjaCBsZXNzIGNvbXBsaWNhdGVkLgor
ICAgIGlmIChzdGFydEFuY2hvciA9PSBlbmRBbmNob3IpCisgICAgICAgIHB1c2hBbmNob3JFbGVt
ZW50RG93bihzdGFydEFuY2hvcik7CisgICAgZWxzZSB7CisgICAgICAgIHB1c2hBbmNob3JFbGVt
ZW50RG93bihzdGFydEFuY2hvcik7CisgICAgICAgIHB1c2hBbmNob3JFbGVtZW50RG93bihlbmRB
bmNob3IpOworICAgIH0KKworICAgIEFTU0VSVChvcmlnaW5hbFNlbGVjdGlvbi5zdGFydCgpLm5v
ZGUoKS0+aW5Eb2N1bWVudCgpICYmIG9yaWdpbmFsU2VsZWN0aW9uLmVuZCgpLm5vZGUoKS0+aW5E
b2N1bWVudCgpKTsKKyAgICBzZXRFbmRpbmdTZWxlY3Rpb24ob3JpZ2luYWxTZWxlY3Rpb24pOwor
fQorCiBQYXNzUmVmUHRyPEVsZW1lbnRJbXBsPiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVu
dChEb2N1bWVudEltcGwqIGRvY3VtZW50KQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpJ
bmRleDogV2ViQ29yZS9lZGl0aW5nL2pzZWRpdGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9lZGl0aW5nL2pzZWRpdGluZy5jcHAJKHJldmlzaW9uIDEzMzAxKQorKysgV2ViQ29yZS9lZGl0
aW5nL2pzZWRpdGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNs
dWRlICJtYXJrdXAuaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIlR5cGluZ0NvbW1hbmQuaCIKKyNpbmNsdWRlICJVbmxpbmtDb21tYW5kLmgiCiAjaW5j
bHVkZSA8a3htbGNvcmUvSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MDYs
NiArNDA3LDEyIEBACiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgZXhlY1VubGluayhGcmFt
ZSAqZnJhbWUsIGJvb2wgdXNlckludGVyZmFjZSwgY29uc3QgRE9NU3RyaW5nICZ2YWx1ZSkKK3sK
KyAgICBFZGl0Q29tbWFuZFB0cihuZXcgVW5saW5rQ29tbWFuZChmcmFtZS0+ZG9jdW1lbnQoKSkp
LmFwcGx5KCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgZXhlY1Vuc2VsZWN0KEZyYW1l
ICpmcmFtZSwgYm9vbCB1c2VySW50ZXJmYWNlLCBjb25zdCBET01TdHJpbmcgJnZhbHVlKQogewog
ICAgIC8vIEZJWE1FOiA2NDk4IFNob3VsZCBqdXN0IGJlIGFibGUgdG8gY2FsbCBtX2ZyYW1lLT5z
ZWxlY3Rpb24oKS5jbGVhcigpCkBAIC01ODksNiArNTk2LDcgQEAKICAgICAgICAgeyAiVHJhbnNw
b3NlIiwgeyBleGVjVHJhbnNwb3NlLCBlbmFibGVkLCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCB9IH0s
CiAgICAgICAgIHsgIlVuZGVybGluZSIsIHsgZXhlY1VuZGVybGluZSwgZW5hYmxlZEFueVNlbGVj
dGlvbiwgc3RhdGVVbmRlcmxpbmUsIHZhbHVlTnVsbCB9IH0sCiAgICAgICAgIHsgIlVuZG8iLCB7
IGV4ZWNVbmRvLCBlbmFibGVkVW5kbywgc3RhdGVOb25lLCB2YWx1ZU51bGwgfSB9LAorICAgICAg
ICB7ICJVbmxpbmsiLCB7IGV4ZWNVbmxpbmssIGVuYWJsZWRSYW5nZVNlbGVjdGlvbiwgc3RhdGVO
b25lLCB2YWx1ZU51bGwgfSB9LAogICAgICAgICB7ICJVbnNlbGVjdCIsIHsgZXhlY1Vuc2VsZWN0
LCBlbmFibGVkQW55U2VsZWN0aW9uLCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCB9IH0KIAogICAgICAg
ICAvLwpAQCAtNjQ0LDcgKzY1Miw2IEBACiAgICAgICAgIC8vIFN0b3AgKG5vdCBzdXBwb3J0ZWQp
CiAgICAgICAgIC8vIFN0b3BJbWFnZSAobm90IHN1cHBvcnRlZCkKICAgICAgICAgLy8gVW5ib29r
bWFyayAobm90IHN1cHBvcnRlZCkKLSAgICAgICAgLy8gVW5saW5rIChub3Qgc3VwcG9ydGVkKQog
ICAgIH07CiAKICAgICBDb21tYW5kTWFwICpjb21tYW5kTWFwID0gbmV3IENvbW1hbmRNYXA7Cklu
ZGV4OiBXZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9l
ZGl0aW5nL1NlbGVjdGlvbi5oCShyZXZpc2lvbiAxMzMwMCkKKysrIFdlYkNvcmUvZWRpdGluZy9T
ZWxlY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsOCBAQAogICAgIFNlbGVjdGlv
bigpOwogICAgIFNlbGVjdGlvbihjb25zdCBQb3NpdGlvbiAmLCBFQWZmaW5pdHkpOwogICAgIFNl
bGVjdGlvbihjb25zdCBQb3NpdGlvbiAmLCBjb25zdCBQb3NpdGlvbiAmLCBFQWZmaW5pdHkpOwor
ICAgIAorICAgIHN0YXRpYyBTZWxlY3Rpb24gc2VsZWN0aW9uQXJvdW5kTm9kZShOb2RlSW1wbCop
OwogCiAgICAgRVN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQogCkluZGV4
OiBXZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Vk
aXRpbmcvU2VsZWN0aW9uLmNwcAkocmV2aXNpb24gMTMzMDApCisrKyBXZWJDb3JlL2VkaXRpbmcv
U2VsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMsNiArNjMsMTEgQEAKICAgICB2YWxp
ZGF0ZSgpOwogfQogCitTZWxlY3Rpb24gU2VsZWN0aW9uOjpzZWxlY3Rpb25Bcm91bmROb2RlKE5v
ZGVJbXBsKiBub2RlKQoreworICAgIHJldHVybiBTZWxlY3Rpb24oUG9zaXRpb24obm9kZSwgMCks
IFBvc2l0aW9uKG5vZGUsIG1heERlZXBPZmZzZXQobm9kZSkpLCBET1dOU1RSRUFNKTsKK30KKwog
UGFzc1JlZlB0cjxSYW5nZUltcGw+IFNlbGVjdGlvbjo6dG9SYW5nZSgpIGNvbnN0CiB7CiAgICAg
aWYgKGlzTm9uZSgpKQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgJKHJldmlz
aW9uIDEzMzAxKQorKysgV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM4LDggKzM4LDggQEAKIHB1YmxpYzoKICAgICBlbnVtIEVQcm9wZXJ0eUxl
dmVsIHsgUHJvcGVydHlEZWZhdWx0LCBGb3JjZUJsb2NrUHJvcGVydGllcyB9OwogCi0gICAgQXBw
bHlTdHlsZUNvbW1hbmQoRG9jdW1lbnRJbXBsKiwgQ1NTU3R5bGVEZWNsYXJhdGlvbkltcGwqLCBF
bGVtZW50SW1wbCosIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uQ2hhbmdlQXR0cmlidXRlcywgRVBy
b3BlcnR5TGV2ZWwgPSBQcm9wZXJ0eURlZmF1bHQpOwotICAgIEFwcGx5U3R5bGVDb21tYW5kKERv
Y3VtZW50SW1wbCosIENTU1N0eWxlRGVjbGFyYXRpb25JbXBsKiwgRWxlbWVudEltcGwqLCBjb25z
dCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IFBvc2l0aW9uJiBlbmQsIEVkaXRBY3Rpb24gPSBFZGl0
QWN0aW9uQ2hhbmdlQXR0cmlidXRlcywgRVByb3BlcnR5TGV2ZWwgPSBQcm9wZXJ0eURlZmF1bHQp
OworICAgIEFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50SW1wbCosIENTU1N0eWxlRGVjbGFyYXRp
b25JbXBsKiwgRWxlbWVudEltcGwqLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbkNoYW5nZUF0dHJp
YnV0ZXMsIEVQcm9wZXJ0eUxldmVsID0gUHJvcGVydHlEZWZhdWx0LCBib29sIHJlbW92ZU9ubHkg
PSBmYWxzZSk7CisgICAgQXBwbHlTdHlsZUNvbW1hbmQoRG9jdW1lbnRJbXBsKiwgQ1NTU3R5bGVE
ZWNsYXJhdGlvbkltcGwqLCBFbGVtZW50SW1wbCosIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29u
c3QgUG9zaXRpb24mIGVuZCwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25DaGFuZ2VBdHRyaWJ1dGVz
LCBFUHJvcGVydHlMZXZlbCA9IFByb3BlcnR5RGVmYXVsdCwgYm9vbCByZW1vdmVPbmx5ID0gZmFs
c2UpOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKICAgICB2aXJ0dWFsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbigpIGNvbnN0OwpAQCAtOTEsNiArOTEsNyBAQAogICAgIFBvc2l0aW9u
IG1fZW5kOwogICAgIGJvb2wgbV91c2VFbmRpbmdTZWxlY3Rpb247CiAgICAgUmVmUHRyPEVsZW1l
bnRJbXBsPiBtX3N0eWxlZElubGluZUVsZW1lbnQ7CisgICAgYm9vbCBtX3JlbW92ZU9ubHk7CiB9
OwogCiBib29sIGlzU3R5bGVTcGFuKGNvbnN0IE5vZGVJbXBsKik7CkluZGV4OiBXZWJDb3JlL2Vk
aXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGlu
Zy9DcmVhdGVMaW5rQ29tbWFuZC5jcHAJKHJldmlzaW9uIDEzMzAxKQorKysgV2ViQ29yZS9lZGl0
aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCiAK
KyNpbmNsdWRlICJBcHBseVN0eWxlQ29tbWFuZC5oIgogI2luY2x1ZGUgImNzc192YWx1ZWltcGwu
aCIKICNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIKICNpbmNsdWRlICJodG1sX2lubGluZWltcGwu
aCIKQEAgLTQxLDYgKzQyLDggQEAKIAogdm9pZCBDcmVhdGVMaW5rQ29tbWFuZDo6ZG9BcHBseSgp
CiB7CisgICAgcHVzaFBhcnRpYWxseVNlbGVjdGVkQW5jaG9yRWxlbWVudHNEb3duKCk7CisKICAg
ICBIVE1MQW5jaG9yRWxlbWVudEltcGwqIGFuY2hvckVsZW1lbnQgPSBuZXcgSFRNTEFuY2hvckVs
ZW1lbnRJbXBsKGRvY3VtZW50KCkpOwogICAgIGFuY2hvckVsZW1lbnQtPnNldEhyZWYobV91cmwp
OwogICAgIEVkaXRDb21tYW5kUHRyIGNtZChuZXcgQXBwbHlTdHlsZUNvbW1hbmQoZG9jdW1lbnQo
KSwgbmV3IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uSW1wbCgpLCBzdGF0aWNfY2FzdDxFbGVt
ZW50SW1wbCo+KGFuY2hvckVsZW1lbnQpKSk7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvQXBwbHlT
dHlsZUNvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxl
Q29tbWFuZC5jcHAJKHJldmlzaW9uIDEzMzAxKQorKysgV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5
bGVDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU3LDcgKzI1Nyw3IEBACiAgICAgcmV0
dXJuIHN0YXRpY19wb2ludGVyX2Nhc3Q8SFRNTEVsZW1lbnRJbXBsPihzdHlsZUVsZW1lbnQucmVs
ZWFzZSgpKTsKIH0KIAotQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3Vt
ZW50SW1wbCogZG9jdW1lbnQsIENTU1N0eWxlRGVjbGFyYXRpb25JbXBsKiBzdHlsZSwgRWxlbWVu
dEltcGwqIGVsZW1lbnQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiwgRVByb3BlcnR5TGV2ZWwg
cHJvcGVydHlMZXZlbCkKK0FwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1
bWVudEltcGwqIGRvY3VtZW50LCBDU1NTdHlsZURlY2xhcmF0aW9uSW1wbCogc3R5bGUsIEVsZW1l
bnRJbXBsKiBlbGVtZW50LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24sIEVQcm9wZXJ0eUxldmVs
IHByb3BlcnR5TGV2ZWwsIGJvb2wgcmVtb3ZlT25seSkKICAgICA6IENvbXBvc2l0ZUVkaXRDb21t
YW5kKGRvY3VtZW50KQogICAgICwgbV9zdHlsZShzdHlsZS0+bWFrZU11dGFibGUoKSkKICAgICAs
IG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQpAQCAtMjY2LDEwICsyNjYsMTEgQEAKICAg
ICAsIG1fZW5kKGVuZGluZ1NlbGVjdGlvbigpLmVuZCgpLnVwc3RyZWFtKCkpCiAgICAgLCBtX3Vz
ZUVuZGluZ1NlbGVjdGlvbih0cnVlKQogICAgICwgbV9zdHlsZWRJbmxpbmVFbGVtZW50KGVsZW1l
bnQpCisgICAgLCBtX3JlbW92ZU9ubHkocmVtb3ZlT25seSkKIHsKIH0KIAotQXBwbHlTdHlsZUNv
bW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50SW1wbCogZG9jdW1lbnQsIENTU1N0eWxl
RGVjbGFyYXRpb25JbXBsKiBzdHlsZSwgRWxlbWVudEltcGwqIGVsZW1lbnQsIGNvbnN0IFBvc2l0
aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVuZCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
LCBFUHJvcGVydHlMZXZlbCBwcm9wZXJ0eUxldmVsKQorQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5
U3R5bGVDb21tYW5kKERvY3VtZW50SW1wbCogZG9jdW1lbnQsIENTU1N0eWxlRGVjbGFyYXRpb25J
bXBsKiBzdHlsZSwgRWxlbWVudEltcGwqIGVsZW1lbnQsIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwg
Y29uc3QgUG9zaXRpb24mIGVuZCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uLCBFUHJvcGVydHlM
ZXZlbCBwcm9wZXJ0eUxldmVsLCBib29sIHJlbW92ZU9ubHkpCiAgICAgOiBDb21wb3NpdGVFZGl0
Q29tbWFuZChkb2N1bWVudCkKICAgICAsIG1fc3R5bGUoc3R5bGUtPm1ha2VNdXRhYmxlKCkpCiAg
ICAgLCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKQEAgLTI3OCw2ICsyNzksNyBAQAog
ICAgICwgbV9lbmQoZW5kKQogICAgICwgbV91c2VFbmRpbmdTZWxlY3Rpb24oZmFsc2UpCiAgICAg
LCBtX3N0eWxlZElubGluZUVsZW1lbnQoZWxlbWVudCkKKyAgICAsIG1fcmVtb3ZlT25seShyZW1v
dmVPbmx5KQogewogfQogCkBAIC0zNzMsNiArMzc1LDkgQEAKICAgICAgICAgfQogICAgIH0KICAg
ICAKKyAgICBpZiAobV9yZW1vdmVPbmx5KQorICAgICAgICByZXR1cm47CisgICAgCiAgICAgLy8g
YXBwbHkgc3BlY2lmaWVkIHN0eWxlcyB0byB0aGUgYmxvY2sgZmxvdyBlbGVtZW50cyBpbiB0aGUg
c2VsZWN0ZWQgcmFuZ2UKICAgICBwcmV2QmxvY2sgPSAwOwogICAgIGZvciAoUVB0ckxpc3RJdGVy
YXRvcjxOb2RlSW1wbD4gaXQobm9kZXMpOyBpdC5jdXJyZW50KCk7ICsraXQpIHsKQEAgLTM5Miw2
ICszOTcsOSBAQAogCiB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseVJlbGF0aXZlRm9udFN0
eWxlQ2hhbmdlKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uSW1wbCAqc3R5bGUpCiB7CisgICAg
aWYgKG1fcmVtb3ZlT25seSkKKyAgICAgICAgcmV0dXJuOworICAgIAogICAgIFJlZlB0cjxDU1NW
YWx1ZUltcGw+IHZhbHVlID0gc3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTX1BST1BfRk9O
VF9TSVpFKTsKICAgICBpZiAodmFsdWUpIHsKICAgICAgICAgLy8gRXhwbGljaXQgZm9udCBzaXpl
IG92ZXJyaWRlcyBhbnkgZGVsdGEuCkBAIC0xMjAzLDYgKzEyMTEsOSBAQAogCiB2b2lkIEFwcGx5
U3R5bGVDb21tYW5kOjphZGRJbmxpbmVTdHlsZUlmTmVlZGVkKENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uSW1wbCAqc3R5bGUsIE5vZGVJbXBsICpzdGFydE5vZGUsIE5vZGVJbXBsICplbmROb2Rl
KQogeworICAgIGlmIChtX3JlbW92ZU9ubHkpCisgICAgICAgIHJldHVybjsKKyAgICAgICAgCiAg
ICAgU3R5bGVDaGFuZ2Ugc3R5bGVDaGFuZ2Uoc3R5bGUsIFBvc2l0aW9uKHN0YXJ0Tm9kZSwgMCks
IFN0eWxlQ2hhbmdlOjpzdHlsZU1vZGVGb3JQYXJzZU1vZGUoZG9jdW1lbnQoKS0+aW5Db21wYXRN
b2RlKCkpKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICAKSW5kZXg6IFdlYkNvcmUv
ZWRpdGluZy9lZGl0X2FjdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvZWRp
dF9hY3Rpb25zLmgJKHJldmlzaW9uIDEzMzAwKQorKysgV2ViQ29yZS9lZGl0aW5nL2VkaXRfYWN0
aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1OSw4IEBACiAgICAgICAgIEVkaXRBY3Rp
b25QYXN0ZUZvbnQsCiAgICAgICAgIEVkaXRBY3Rpb25QYXN0ZVJ1bGVyLAogICAgICAgICBFZGl0
QWN0aW9uVHlwaW5nLAorICAgICAgICBFZGl0QWN0aW9uQ3JlYXRlTGluaywKKyAgICAgICAgRWRp
dEFjdGlvblVubGluaywKICAgICB9IEVkaXRBY3Rpb247ICAgIAogfQogCkluZGV4OiBXZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Vk
aXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAkocmV2aXNpb24gMTMzMDApCisrKyBXZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAkod29ya2luZyBjb3B5KQpAQCAtOTUsNiAr
OTUsOSBAQAogCiAgICAgdm9pZCBtb3ZlUGFyYWdyYXBoQ29udGVudHNUb05ld0Jsb2NrSWZOZWNl
c3NhcnkoY29uc3QgRE9NOjpQb3NpdGlvbiAmKTsKIAorICAgIHZvaWQgcHVzaEFuY2hvckVsZW1l
bnREb3duKERPTTo6Tm9kZUltcGwqKTsKKyAgICB2b2lkIHB1c2hQYXJ0aWFsbHlTZWxlY3RlZEFu
Y2hvckVsZW1lbnRzRG93bigpOworCiAgICAgUVZhbHVlTGlzdDxFZGl0Q29tbWFuZFB0cj4gbV9j
bWRzOwogfTsKIApJbmRleDogV2ViQ29yZS9lZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmgJKHJldmlzaW9u
IDEzMzAxKQorKysgV2ViQ29yZS9lZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIzLDEwICsyMywxMCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRl
ZiBfX2NyZWF0ZV9saW5rX2NvbW1hbmRfaF9fCi0jZGVmaW5lIF9fY3JlYXRlX2xpbmtfY29tbWFu
ZF9oX18KKyNpZm5kZWYgQ3JlYXRlTGlua0NvbW1hbmRfaAorI2RlZmluZSBDcmVhdGVMaW5rQ29t
bWFuZF9oCiAKLSNpbmNsdWRlICJBcHBseVN0eWxlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkNvbXBv
c2l0ZUVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNCArNDMs
NCBAQAogCiB9IC8vIG5hbWVzcGFjZSBraHRtbAogCi0jZW5kaWYgLy8gX19jcmVhdGVfbGlua19j
b21tYW5kX2hfXworI2VuZGlmIC8vIENyZWF0ZUxpbmtDb21tYW5kX2gKSW5kZXg6IFdlYkNvcmUv
YnJpZGdlL21hYy9XZWJDb3JlRnJhbWVCcmlkZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jy
aWRnZS9tYWMvV2ViQ29yZUZyYW1lQnJpZGdlLmgJKHJldmlzaW9uIDEzMzAwKQorKysgV2ViQ29y
ZS9icmlkZ2UvbWFjL1dlYkNvcmVGcmFtZUJyaWRnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTAs
NiArMTUwLDggQEAKICAgICBXZWJVbmRvQWN0aW9uUGFzdGVGb250LAogICAgIFdlYlVuZG9BY3Rp
b25QYXN0ZVJ1bGVyLAogICAgIFdlYlVuZG9BY3Rpb25UeXBpbmcsCisgICAgV2ViVW5kb0FjdGlv
bkNyZWF0ZUxpbmssCisgICAgV2ViVW5kb0FjdGlvblVubGluaywKIH0gV2ViVW5kb0FjdGlvbjsK
IAogdHlwZWRlZiBlbnVtIHsKSW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkocmV2aXNpb24gMTMzMDEpCisrKyBXZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTE3LDcgKzE5MTcsNyBAQAogCiBi
b29sIEZyYW1lOjpzZWxlY3RDb250ZW50c09mTm9kZShOb2RlSW1wbCogbm9kZSkKIHsKLSAgICBT
ZWxlY3Rpb25Db250cm9sbGVyIHNlbCA9IFNlbGVjdGlvbkNvbnRyb2xsZXIoUG9zaXRpb24obm9k
ZSwgMCksIFBvc2l0aW9uKG5vZGUsIG1heERlZXBPZmZzZXQobm9kZSkpLCBET1dOU1RSRUFNKTsg
ICAgCisgICAgU2VsZWN0aW9uQ29udHJvbGxlciBzZWwgPSBTZWxlY3Rpb25Db250cm9sbGVyKFNl
bGVjdGlvbjo6c2VsZWN0aW9uQXJvdW5kTm9kZShub2RlKSk7ICAgIAogICAgIGlmIChzaG91bGRD
aGFuZ2VTZWxlY3Rpb24oc2VsKSkgewogICAgICAgICBzZXRTZWxlY3Rpb24oc2VsKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7118</attachid>
            <date>2006-03-16 13:47:17 -0800</date>
            <delta_ts>2006-03-24 19:15:47 -0800</delta_ts>
            <desc>patch</desc>
            <filename>7683.txt</filename>
            <type>text/plain</type>
            <size>44850</size>
            <attacher name="Justin Garcia">justin.garcia</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdW5saW5rLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC91bmxpbmsuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdW5saW5rLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0uLi9lZGl0aW5nLmpzIGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFTY3Jp
cHQiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKSB7CisgICAgdmFy
IGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAgIHZhciBs
aSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgdmFyIHRleHQgPSBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKTsKKyAgICBsaS5hcHBlbmRDaGlsZCh0ZXh0KTsKKyAg
ICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKK30KKworZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7
CisgICAgICAgIAorICAgIHZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOworICAgIHZhciBk
OworICAgIAorICAgIC8vIEZ1bGx5IHNlbGVjdCB0aGUgbGluZSBpbiB0aGUgZmlyc3QgZGl2Lgor
ICAgIGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdDEiKTsKKyAgICBzLnNldFBvc2l0
aW9uKGQsIDApOworICAgIGV4dGVuZFNlbGVjdGlvbkZvcndhcmRCeUxpbmVDb21tYW5kKCk7Cisg
ICAgdW5saW5rQ29tbWFuZCgpOworICAgIAorICAgIGxvZyhkLmlubmVySFRNTCk7CisKKyAgICAv
LyBTZWxlY3QgdGhlIHNlY29uZCB3b3JkIGluIHRoZSBzZWNvbmQgZGl2ICAKKyAgICBkID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QyIik7CisgICAgcy5zZXRQb3NpdGlvbihkLCAwKTsK
KyAgICBtb3ZlU2VsZWN0aW9uRm9yd2FyZEJ5V29yZENvbW1hbmQoKTsKKyAgICBleHRlbmRTZWxl
Y3Rpb25Gb3J3YXJkQnlXb3JkQ29tbWFuZCgpOworICAgIHVubGlua0NvbW1hbmQoKTsKKyAgICAK
KyAgICBsb2coZC5pbm5lckhUTUwpOworICAgIAorICAgIC8vIFNlbGVjdCBwYXJ0IG9mIGEgbGlu
ayAoYW5kIGEgYml0IG9mIHRyYWlsaW5nIG5vbi1saW5rZWQgdGV4dCkKKyAgICB2YXIgZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0M3N0YXJ0Iik7CisgICAgcy5zZXRQb3NpdGlvbihl
LCAwKTsKKyAgICBleHRlbmRTZWxlY3Rpb25Gb3J3YXJkQnlMaW5lQ29tbWFuZCgpOworICAgIHVu
bGlua0NvbW1hbmQoKTsKKyAgICAKKyAgICBsb2coZC5pbm5lckhUTUwpOworICAgIAorICAgIC8v
IExpbmsgYW4gZWRpdGFibGUgcmVnaW9uIGNvbnRhaW5pbmcgbGlzdHMsIHRhYmxlcywgaW1hZ2Vz
LCBldGMuCisgICAgZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0NCIpOworICAgIHMu
c2V0UG9zaXRpb24oZCwgMCk7CisgICAgc2VsZWN0QWxsQ29tbWFuZCgpOworICAgIGNyZWF0ZUxp
bmtDb21tYW5kKCJodHRwOi8vd3d3Lmdvb2dsZS5jb20vIik7CisgICAgLy8gTm93IHVubGluayBh
IHBvcnRpb24gb2YgaXQKKyAgICB2YXIgZW5kID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRl
c3Q0ZW5kIik7CisgICAgcy5zZXRCYXNlQW5kRXh0ZW50KGQsIDAsIGVuZCwgMCk7CisgICAgdW5s
aW5rQ29tbWFuZCgpOworICAgIAorICAgIGxvZyhkLmlubmVySFRNTCk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKworPGJvZHkgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsiPgorPHA+VGhpcyBpcyBh
IHRlc3Qgb2YgZXhlY0NvbW1hbmQoVW5saW5rKS4gIEl0IHRlc3RzOjwvcD4KKzxvbD4KKzxsaT5D
b21wbGV0ZWx5IHVubGlua2luZyBhIGxpbmsuPC9saT4KKzxsaT5VbmxpbmtpbmcgYSBzaW5nbGUg
d29yZCBpbnNpZGUgb2YgYSBsaW5rLjwvbGk+Cis8bGk+VW5saW5raW5nIGEgc2VsZWN0aW9uIGNv
bnRhaW5pbmcgbGlua2VkIGFuZCB1bmxpbmtlZCB0ZXh0LjwvbGk+Cis8bGk+VW5saW5raW5nIGEg
c2VsZWN0aW9uIHRoYXQgcGFydGlhbGx5IHNlbGVjdHMgYSBsaW5rZWQgdGFibGUuPC9saT4KKzwv
b2w+Cis8b2w+Cis8bGk+PGRpdiBpZD0idGVzdDEiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+PGEg
aHJlZj0iaHR0cDovL3d3dy5hcHBsZS5jb20vIj5UaGlzIHBhcmFncmFwaCBzdGFydHMgbGlua2Vk
LiAgSXQgc2hvdWxkIGVuZCB1cCB1bmxpbmtlZC48L2E+PC9kaXY+PC9saT4KKzxsaT48ZGl2IGlk
PSJ0ZXN0MiIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj48YSBocmVmPSJodHRwOi8vd3d3LmFwcGxl
LmNvbS8iPlRoaXMgcGFyYWdyYXBoIHN0YXJ0cyBvdXQgYXMgYSBsaW5rIHRvIGFwcGxlLmNvbS4g
IFRoZSBzZWNvbmQgd29yZCBpbiB0aGUgcGFyYWdyYXBoIHNob3VsZCBlbmQgdXAgYmVpbmcgdW5s
aW5rZWQuPC9hPjwvZGl2PjwvbGk+Cis8bGk+PGRpdiBpZD0idGVzdDMiIGNvbnRlbnRlZGl0YWJs
ZT0idHJ1ZSI+VGhpcyBsaW5lIHN0YXJ0cyBvdXQgd2l0aCA8YSBocmVmPSJodHRwOi8vd3d3Lmdv
b2dsZS5jb20iPjxpPmE8L2k+PHNwYW4gaWQ9InRlc3Qzc3RhcnQiPiBsaW5rPC9zcGFuPjwvYT4g
aW4gdGhlIG1pZGRsZS4gIE9ubHkgdGhlICdhJyBzaG91bGQgYmUgbGlua2VkIGFmdGVyIHRoZSB0
ZXN0LjwvZGl2PjwvbGk+Cis8bGk+PGRpdiBpZD0idGVzdDQiIGNvbnRlbnRlZGl0YWJsZT0idHJ1
ZSI+Cis8cD5UaGlzIDxpPmVkaXRhYmxlIHJlZ2lvbjwvaT4gY29udGFpbnMgbGlzdHMsIHRhYmxl
cywgc3R5bGVkIHRleHQsIGFuZCBpbWFnZXMuICBFdmVyeXRoaW5nIGluIHRoaXMgcmVnaW9uIGV4
Y2VwdCBmb3Igd2hhdCBpcyBzZWxlY3RlZCBzaG91bGQgYmUgYSBsaW5rLjwvcD4KKzx1bD4KKzxs
aT5JdGVtIDE8L2xpPgorPGxpPkl0ZW0gMjwvbGk+Cis8L3VsPgorPHRhYmxlIGJvcmRlcj0xPjx0
cj48dGQ+MTwvdGQ+PHRkPjI8L3RkPjx0ZD48c3BhbiBpZD0idGVzdDRlbmQiPjM8L3NwYW4+PC90
ZD48L3RyPjwvdGFibGU+Cis8YnI+CitUaGlzIDxiPmxpbmU8L2I+IGNvbnRhaW5zIDxpbWcgc3Jj
PSIuLi9yZXNvdXJjZXMvYWJlLmpwZyI+IGFuIGltYWdlLgorPC9kaXY+PC9saT4KKzwvb2w+Cis8
cD5pbm5lckhUTUwgb2YgZWRpdGFibGUgcmVnaW9ucyBhZnRlciB0aGUgdGVzdDo8L3A+Cis8b2wg
aWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0PgorcnVuRWRpdGluZ1Rlc3QoKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorCis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDog
TGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC91bmxpbmstZXhwZWN0ZWQucG5nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjpt
aW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246
IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdW5saW5rLWV4cGVjdGVkLnBuZwpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0K
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3VubGluay1leHBlY3RlZC5j
aGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3Vu
bGluay1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvZXhlY0NvbW1hbmQvdW5saW5rLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxIEBACiswYWY4ZmRkMTIwM2JkYzdkZmIwZTFhZTEwYTRjMzBiMgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdW5s
aW5rLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL3VubGluay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL3VubGluay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTgzIEBACitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPTVJh
bmdlOnJhbmdlIGZyb20gMCBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG8gMSBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGlu
Z05vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3Rp
ZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6
KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gRElWID4gTEkgPiBPTCA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDU3IG9mICN0ZXh0ID4gRElWID4gTEkgPiBPTCA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3du
c3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNh
dGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkRW5kRWRpdGluZ0luRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSAwIG9mIERJViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxIG9m
IERJViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZEVuZEVkaXRpbmc6V2ViVmlld0RpZEVuZEVkaXRpbmdOb3RpZmljYXRpb24K
K0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE9NUmFuZ2U6cmFuZ2UgZnJv
bSAwIG9mIERJViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxIG9mIERJ
ViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlkQmVnaW5FZGl0aW5nTm90aWZpY2F0aW9u
CitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxl
Y3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+IERJ
ViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMCBvZiAjdGV4dCA+IERJ
ViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlv
bkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90
aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRD
aGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEVuZEVkaXRpbmdJbkRP
TVJhbmdlOnJhbmdlIGZyb20gMCBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG8gMyBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRFbmRFZGl0aW5nOldlYlZpZXdEaWRFbmRFZGl0aW5n
Tm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPTVJh
bmdlOnJhbmdlIGZyb20gMCBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG8gMyBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGlu
Z05vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3Rp
ZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6
KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IExJ
ID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA2MiBvZiAjdGV4dCA+IERJViA+IExJ
ID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmlu
aXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0
aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VO
b3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEVuZEVkaXRpbmdJbkRPTVJhbmdl
OnJhbmdlIGZyb20gMCBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gNCBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRFbmRFZGl0aW5nOldlYlZpZXdEaWRFbmRFZGl0aW5nTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPTVJhbmdlOnJh
bmdlIGZyb20gMCBvZiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8g
MTMgb2YgRElWID4gTEkgPiBPTCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQmVnaW5FZGl0aW5nOldlYlZpZXdEaWRCZWdpbkVkaXRpbmdOb3Rp
ZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hv
dWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgUCA+IERJViA+IExJID4g
T0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAwIG9mIFAgPiBESVYgPiBMSSA+IE9MID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQg
PiBQID4gRElWID4gTEkgPiBPTCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEwIG9mICN0
ZXh0ID4gRElWID4gTEkgPiBPTCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5T
U2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVk
RE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gQSA+IFAg
PiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTAgb2YgI3RleHQg
PiBBID4gRElWID4gTEkgPiBPTCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5T
U2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2Vi
Vmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJh
bmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+IFAgPiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gMCBvZiBURCA+IFRSID4gVEJPRFkgPiBUQUJMRSA+IERJViA+IExJ
ID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmlu
aXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0
aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VO
b3RpZmljYXRpb24KK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJDYW52YXMg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVu
ZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4MAorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDAp
IHNpemUgNzg0eDE0CisgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgMjI2
eDE0CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTkyOiAiVGhpcyBpcyBhIHRl
c3Qgb2YgZXhlY0NvbW1hbmQoVW5saW5rKS4gIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgxOTIs
MCkgd2lkdGggMzQ6ICJJdCB0ZXN0czoiCisgICAgICBSZW5kZXJCbG9jayB7T0x9IGF0ICgwLDI2
KSBzaXplIDc4NHg1NgorICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCwwKSBzaXpl
IDc0NHgxNAorICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDExCisg
ICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSAxMzR4MTQKKyAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDEzNDogIkNvbXBsZXRlbHkgdW5saW5raW5nIGEg
bGluay4iCisgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDQwLDE0KSBzaXplIDc0NHgx
NAorICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDExCisgICAgICAg
ICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSAxOTF4MTQKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDE5MTogIlVubGlua2luZyBhIHNpbmdsZSB3b3JkIGluc2lk
ZSBvZiBhIGxpbmsuIgorICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCwyOCkgc2l6
ZSA3NDR4MTQKKyAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgwLDApIHNpemUgMHgxMQor
ICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgMjcxeDE0CisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNzE6ICJVbmxpbmtpbmcgYSBzZWxlY3Rpb24g
Y29udGFpbmluZyBsaW5rZWQgYW5kIHVubGlua2VkIHRleHQuIgorICAgICAgICBSZW5kZXJMaXN0
SXRlbSB7TEl9IGF0ICg0MCw0Mikgc2l6ZSA3NDR4MTQKKyAgICAgICAgICBSZW5kZXJMaXN0TWFy
a2VyIGF0ICgwLDApIHNpemUgMHgxMQorICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgw
LDApIHNpemUgMjYzeDE0CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNjM6
ICJVbmxpbmtpbmcgYSBzZWxlY3Rpb24gdGhhdCBwYXJ0aWFsbHkgc2VsZWN0cyBhIGxpbmtlZCB0
YWJsZS4iCisgICAgICBSZW5kZXJCbG9jayB7T0x9IGF0ICgwLDk0KSBzaXplIDc4NHgyNTYKKyAg
ICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsMCkgc2l6ZSA3NDR4MTQKKyAgICAgICAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDc0NHgxNAorICAgICAgICAgICAgUmVu
ZGVyTGlzdE1hcmtlciBhdCAoMCwwKSBzaXplIDB4MTEKKyAgICAgICAgICAgIFJlbmRlclRleHQg
e1RFWFR9IGF0ICgwLDApIHNpemUgMjYxeDE0CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDEzNzogIlRoaXMgcGFyYWdyYXBoIHN0YXJ0cyBsaW5rZWQuICIKKyAgICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDEzNywwKSB3aWR0aCAxMjQ6ICJJdCBzaG91bGQgZW5kIHVwIHVu
bGlua2VkLiIKKyAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsMTQpIHNpemUgNzQ0
eDE0CisgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3NDR4MTQKKyAg
ICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDExCisgICAgICAgICAg
ICBSZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUgMjF4MTQgW2NvbG9yPSMwMDAwRUVdCisg
ICAgICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgMjF4MTQKKyAgICAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMTogIlRoaXMiCisgICAgICAgICAg
ICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMjEsMCkgc2l6ZSA1MHgxNAorICAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMjEsMCkgd2lkdGggNTA6ICIgcGFyYWdyYXBoIgorICAgICAgICAgICAgUmVu
ZGVySW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDQ2NHgxNCBbY29sb3I9IzAwMDBFRV0KKyAgICAg
ICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDcxLDApIHNpemUgNDY0eDE0CisgICAgICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDcxLDApIHdpZHRoIDE1NzogIiBzdGFydHMgb3V0IGFzIGEg
bGluayB0byBhcHBsZS5jb20uICIKKyAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjI4LDAp
IHdpZHRoIDMwNzogIlRoZSBzZWNvbmQgd29yZCBpbiB0aGUgcGFyYWdyYXBoIHNob3VsZCBlbmQg
dXAgYmVpbmcgdW5saW5rZWQuIgorICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCwy
OCkgc2l6ZSA3NDR4MTQKKyAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXpl
IDc0NHgxNAorICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoMCwwKSBzaXplIDB4MTEK
KyAgICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgMTE0eDE0CisgICAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDExNDogIlRoaXMgbGluZSBzdGFydHMg
b3V0IHdpdGggIgorICAgICAgICAgICAgUmVuZGVySW5saW5lIHtJfSBhdCAoMCwwKSBzaXplIDZ4
MTQKKyAgICAgICAgICAgICAgUmVuZGVySW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDZ4MTQgW2Nv
bG9yPSMwMDAwRUVdCisgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDExNCww
KSBzaXplIDZ4MTQKKyAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMTQsMCkgd2lkdGgg
NjogImEiCisgICAgICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMjF4
MTQKKyAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDEyMCwwKSBzaXplIDIxeDE0
CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEyMCwwKSB3aWR0aCAyMTogIiBsaW5rIgor
ICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDE0MSwwKSBzaXplIDI2N3gxNAorICAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTQxLDApIHdpZHRoIDcwOiAiIGluIHRoZSBtaWRkbGUu
ICIKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIxMSwwKSB3aWR0aCAxOTc6ICJPbmx5IHRo
ZSAnYScgc2hvdWxkIGJlIGxpbmtlZCBhZnRlciB0aGUgdGVzdC4iCisgICAgICAgIFJlbmRlckxp
c3RJdGVtIHtMSX0gYXQgKDQwLDU0KSBzaXplIDc0NHgyMDIKKyAgICAgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCwwKSBzaXplIDc0NHgyMDIKKyAgICAgICAgICAgIFJlbmRlckJsb2NrIHtQ
fSBhdCAoMCwwKSBzaXplIDc0NHgxNAorICAgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0
ICgwLDApIHNpemUgMHgxMQorICAgICAgICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMCww
KSBzaXplIDI0eDE0CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjQ6
ICJUaGlzICIKKyAgICAgICAgICAgICAgUmVuZGVySW5saW5lIHtJfSBhdCAoMCwwKSBzaXplIDcx
eDE0CisgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDI0LDApIHNpemUgNzF4
MTQKKyAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyNCwwKSB3aWR0aCA3MTogImVkaXRh
YmxlIHJlZ2lvbiIKKyAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDk1LDApIHNp
emUgNTQxeDE0CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDk1LDApIHdpZHRoIDIxNjog
IiBjb250YWlucyBsaXN0cywgdGFibGVzLCBzdHlsZWQgdGV4dCwgYW5kIGltYWdlcy4gIgorICAg
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzMTEsMCkgd2lkdGggMzI1OiAiRXZlcnl0aGluZyBp
biB0aGlzIHJlZ2lvbiBleGNlcHQgZm9yIHdoYXQgaXMgc2VsZWN0ZWQgc2hvdWxkIGJlIGEgbGlu
ay4iCisgICAgICAgICAgICBSZW5kZXJCbG9jayB7VUx9IGF0ICgwLDI2KSBzaXplIDc0NHgyOAor
ICAgICAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCwwKSBzaXplIDcwNHgxNAor
ICAgICAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDExCisgICAg
ICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSAzMHgxNAorICAgICAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzA6ICJJdGVtIDEiCisgICAgICAg
ICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDQwLDE0KSBzaXplIDcwNHgxNAorICAgICAg
ICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDExCisgICAgICAgICAg
ICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSAzMHgxNAorICAgICAgICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzA6ICJJdGVtIDIiCisgICAgICAgICAgICBS
ZW5kZXJUYWJsZSB7VEFCTEV9IGF0ICgwLDU0KSBzaXplIDQ2eDI4IFtib3JkZXI6ICgxcHggb3V0
c2V0ICM4MDgwODApXQorICAgICAgICAgICAgICBSZW5kZXJUYWJsZVNlY3Rpb24ge1RCT0RZfSBh
dCAoMSwxKSBzaXplIDB4MjYKKyAgICAgICAgICAgICAgICBSZW5kZXJUYWJsZVJvdyB7VFJ9IGF0
ICgwLDApIHNpemUgMHgwCisgICAgICAgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBh
dCAoMiwyKSBzaXplIDEyeDIyIFtib3JkZXI6ICgxcHggaW5zZXQgIzgwODA4MCldIFtyPTAgYz0w
IHJzPTEgY3M9MV0KKyAgICAgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDIs
Mikgc2l6ZSA4eDE4CisgICAgICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIsMikgd2lk
dGggODogIjEiCisgICAgICAgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTYs
Mikgc2l6ZSAxMngyMiBbYm9yZGVyOiAoMXB4IGluc2V0ICM4MDgwODApXSBbcj0wIGM9MSBycz0x
IGNzPTFdCisgICAgICAgICAgICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgyLDIpIHNp
emUgOHgxOAorICAgICAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyLDIpIHdpZHRoIDg6
ICIyIgorICAgICAgICAgICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDMwLDIpIHNp
emUgMTJ4MjIgW2JvcmRlcjogKDFweCBpbnNldCAjODA4MDgwKV0gW3I9MCBjPTIgcnM9MSBjcz0x
XQorICAgICAgICAgICAgICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUg
OHgxOAorICAgICAgICAgICAgICAgICAgICAgIFJlbmRlcklubGluZSB7QX0gYXQgKDAsMCkgc2l6
ZSA4eDE4IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAgICAgICAgICAgICAgICAgUmVuZGVyVGV4
dCB7VEVYVH0gYXQgKDIsMikgc2l6ZSA4eDE4CisgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgyLDIpIHdpZHRoIDg6ICIzIgorICAgICAgICAgICAgUmVuZGVyQmxvY2sgKGFu
b255bW91cykgYXQgKDAsODIpIHNpemUgNzQ0eDEyMAorICAgICAgICAgICAgICBSZW5kZXJJbmxp
bmUge0F9IGF0ICgwLDApIHNpemUgMjR4MTIwIFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAgICAg
ICAgIFJlbmRlckJSIHtCUn0gYXQgKDAsMCkgc2l6ZSAweDE0CisgICAgICAgICAgICAgICAgUmVu
ZGVyVGV4dCB7VEVYVH0gYXQgKDAsMTA2KSBzaXplIDI0eDE0CisgICAgICAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwxMDYpIHdpZHRoIDI0OiAiVGhpcyAiCisgICAgICAgICAgICAgIFJlbmRl
cklubGluZSB7Qn0gYXQgKDAsMCkgc2l6ZSAxOHgxNAorICAgICAgICAgICAgICAgIFJlbmRlcklu
bGluZSB7QX0gYXQgKDAsMCkgc2l6ZSAxOHgxNCBbY29sb3I9IzAwMDBFRV0KKyAgICAgICAgICAg
ICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgyNCwxMDYpIHNpemUgMTh4MTQKKyAgICAgICAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI0LDEwNikgd2lkdGggMTg6ICJsaW5lIgorICAgICAg
ICAgICAgICBSZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUgNDV4MTQgW2NvbG9yPSMwMDAw
RUVdCisgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDQyLDEwNikgc2l6ZSA0
NXgxNAorICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDQyLDEwNikgd2lkdGggNDU6ICIg
Y29udGFpbnMgIgorICAgICAgICAgICAgICBSZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUg
MTI0eDE0IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAgICAgICAgIFJlbmRlckltYWdlIHtJTUd9
IGF0ICg4NywxNCkgc2l6ZSA3NngxMDMKKyAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IHtURVhU
fSBhdCAoMTYzLDEwNikgc2l6ZSA0OHgxNAorICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDE2MywxMDYpIHdpZHRoIDQ4OiAiIGFuIGltYWdlLiIKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBh
dCAoMCwzNjIpIHNpemUgNzg0eDE0CisgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDAp
IHNpemUgMjExeDE0CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjExOiAiaW5u
ZXJIVE1MIG9mIGVkaXRhYmxlIHJlZ2lvbnMgYWZ0ZXIgdGhlIHRlc3Q6IgorICAgICAgUmVuZGVy
QmxvY2sge09MfSBhdCAoMCwzODgpIHNpemUgNzg0eDE0MAorICAgICAgICBSZW5kZXJMaXN0SXRl
bSB7TEl9IGF0ICg0MCwwKSBzaXplIDc0NHgxNAorICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIg
YXQgKDAsMCkgc2l6ZSAweDExCisgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkg
c2l6ZSAyNjF4MTQKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDEzNzogIlRo
aXMgcGFyYWdyYXBoIHN0YXJ0cyBsaW5rZWQuICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgx
MzcsMCkgd2lkdGggMTI0OiAiSXQgc2hvdWxkIGVuZCB1cCB1bmxpbmtlZC4iCisgICAgICAgIFJl
bmRlckxpc3RJdGVtIHtMSX0gYXQgKDQwLDE0KSBzaXplIDc0NHgyOAorICAgICAgICAgIFJlbmRl
ckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDExCisgICAgICAgICAgUmVuZGVyVGV4dCB7VEVY
VH0gYXQgKDAsMCkgc2l6ZSA3MDV4MjgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDU5NDogIjxBIGhyZWY9XCJodHRwOi8vd3d3LmFwcGxlLmNvbS9cIj5UaGlzPC9BPiBwYXJh
Z3JhcGg8QSBocmVmPVwiaHR0cDovL3d3dy5hcHBsZS5jb20vXCI+IHN0YXJ0cyBvdXQgYXMgYSBs
aW5rIHRvIGFwcGxlLmNvbS4gIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDU5NCwwKSB3aWR0
aCAxMTE6ICJUaGUgc2Vjb25kIHdvcmQgaW4gdGhlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMTQpIHdpZHRoIDIxOTogInBhcmFncmFwaCBzaG91bGQgZW5kIHVwIGJlaW5nIHVubGlua2Vk
LjwvQT4iCisgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDQwLDQyKSBzaXplIDc0NHgy
OAorICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDExCisgICAgICAg
ICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSA3MDV4MjgKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDU5NDogIjxBIGhyZWY9XCJodHRwOi8vd3d3LmFwcGxlLmNv
bS9cIj5UaGlzPC9BPiBwYXJhZ3JhcGg8QSBocmVmPVwiaHR0cDovL3d3dy5hcHBsZS5jb20vXCI+
IHN0YXJ0cyBvdXQgYXMgYSBsaW5rIHRvIGFwcGxlLmNvbS4gIgorICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDU5NCwwKSB3aWR0aCAxMTE6ICJUaGUgc2Vjb25kIHdvcmQgaW4gdGhlIgorICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMTQpIHdpZHRoIDIxOTogInBhcmFncmFwaCBzaG91bGQgZW5k
IHVwIGJlaW5nIHVubGlua2VkLjwvQT4iCisgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQg
KDQwLDcwKSBzaXplIDc0NHg3MAorICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkg
c2l6ZSAweDExCisgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSA3MzN4
NzAKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM2OTogIjxQPlRoaXMgPEk+
ZWRpdGFibGUgcmVnaW9uPC9JPiBjb250YWlucyBsaXN0cywgdGFibGVzLCBzdHlsZWQgdGV4dCwg
YW5kIGltYWdlcy4gIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDM2OSwwKSB3aWR0aCAzNDk6
ICJFdmVyeXRoaW5nIGluIHRoaXMgcmVnaW9uIGV4Y2VwdCBmb3Igd2hhdCBpcyBzZWxlY3RlZCBz
aG91bGQgYmUgYSBsaW5rLjwvUD4iCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxNCkgd2lk
dGggNzMzOiAiPFVMPiA8TEk+SXRlbSAxPC9MST4gPExJPkl0ZW0gMjwvTEk+IDwvVUw+IDxUQUJM
RSBib3JkZXI9XCIxXCI+PFRCT0RZPjxUUj48VEQ+MTwvVEQ+PFREPjI8L1REPjxURD48U1BBTiBp
ZD1cInRlc3Q0ZW5kXCI+PEEiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyOCkgd2lkdGgg
NzE5OiAiaHJlZj1cImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9cIj4zPC9BPjwvU1BBTj48L1REPjwv
VFI+PC9UQk9EWT48L1RBQkxFPiA8QSBocmVmPVwiaHR0cDovL3d3dy5nb29nbGUuY29tL1wiPjxC
Uj4gVGhpcyA8L0E+PEI+PEEiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw0Mikgd2lkdGgg
NjgyOiAiaHJlZj1cImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9cIj5saW5lPC9BPjwvQj48QSBocmVm
PVwiaHR0cDovL3d3dy5nb29nbGUuY29tL1wiPiBjb250YWlucyA8L0E+PEEgaHJlZj1cImh0dHA6
Ly93d3cuZ29vZ2xlLmNvbS9cIj48SU1HIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNTYp
IHdpZHRoIDIwNjogInNyYz1cIi4uL3Jlc291cmNlcy9hYmUuanBnXCI+IGFuIGltYWdlLiA8L0E+
Igorc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAge1RFWFR9IG9mIGNoaWxk
IDEge1B9IG9mIGNoaWxkIDAge0RJVn0gb2YgY2hpbGQgNyB7TEl9IG9mIGNoaWxkIDUge09MfSBv
ZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAorc2VsZWN0aW9u
IGVuZDogICBwb3NpdGlvbiAwIG9mIGNoaWxkIDIge1REfSBvZiBjaGlsZCAwIHtUUn0gb2YgY2hp
bGQgMCB7VEJPRFl9IG9mIGNoaWxkIDUge1RBQkxFfSBvZiBjaGlsZCAwIHtESVZ9IG9mIGNoaWxk
IDcge0xJfSBvZiBjaGlsZCA1IHtPTH0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRN
TH0gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZWRpdGluZy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRpbmcuanMJKHJldmlzaW9uIDEzMzAx
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0aW5nLmpzCSh3b3JraW5nIGNvcHkpCkBAIC01
NjUsMTQgKzU2NSwyNSBAQAogICAgIGlmIChjb21tYW5kRGVsYXkgPiAwKSB7CiAgICAgICAgIHdp
bmRvdy5zZXRUaW1lb3V0KGV4ZWNDcmVhdGVMaW5rQ29tbWFuZCwgY29tbWFuZENvdW50ICogY29t
bWFuZERlbGF5LCB1cmwpOwogICAgICAgICBjb21tYW5kQ291bnQrKzsKLSAgICB9Ci0gICAgZWxz
ZSB7CisgICAgfSBlbHNlCiAgICAgICAgIGV4ZWNDcmVhdGVMaW5rQ29tbWFuZCh1cmwpOwotICAg
IH0KIH0KIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKK2Z1bmN0aW9uIGV4ZWNVbmxpbmtDb21tYW5kKCkgeworICAgIGRvY3VtZW50LmV4ZWNDb21t
YW5kKCJVbmxpbmsiKTsKK30KK2Z1bmN0aW9uIHVubGlua0NvbW1hbmQoKSB7CisgICAgaWYgKGNv
bW1hbmREZWxheSA+IDApIHsKKyAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZXhlY1VubGlua0Nv
bW1hbmQsIGNvbW1hbmRDb3VudCAqIGNvbW1hbmREZWxheSk7CisgICAgICAgIGNvbW1hbmRDb3Vu
dCsrOworICAgIH0gZWxzZQorICAgICAgICBleGVjVW5saW5rQ29tbWFuZCgpOworfQorCisvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwogZnVuY3Rpb24g
ZXhlY1Bhc3RlQW5kTWF0Y2hTdHlsZUNvbW1hbmQoKSB7CiAgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoIlBhc3RlQW5kTWF0Y2hTdHlsZSIpOwogfQpJbmRleDogV2ViS2l0L1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lQnJpZGdlLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lQnJpZGdlLm0JKHJldmlzaW9uIDEzMjk0KQorKysgV2ViS2l0L1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lQnJpZGdlLm0JKHdvcmtpbmcgY29weSkKQEAgLTE1OTcsNiArMTU5Nyw4IEBACiAg
ICAgICAgIGNhc2UgV2ViVW5kb0FjdGlvblBhc3RlRm9udDogcmV0dXJuIFVJX1NUUklOR19LRVko
IlBhc3RlIEZvbnQiLCAiUGFzdGUgRm9udCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rp
b24gbmFtZSIpOwogICAgICAgICBjYXNlIFdlYlVuZG9BY3Rpb25QYXN0ZVJ1bGVyOiByZXR1cm4g
VUlfU1RSSU5HX0tFWSgiUGFzdGUgUnVsZXIiLCAiUGFzdGUgUnVsZXIgKFVuZG8gYWN0aW9uIG5h
bWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICAgICAgY2FzZSBXZWJVbmRvQWN0aW9uVHlw
aW5nOiByZXR1cm4gVUlfU1RSSU5HX0tFWSgiVHlwaW5nIiwgIlR5cGluZyAoVW5kbyBhY3Rpb24g
bmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgICAgICBjYXNlIFdlYlVuZG9BY3Rpb25D
cmVhdGVMaW5rOiByZXR1cm4gVUlfU1RSSU5HX0tFWSgiQ3JlYXRlIExpbmsiLCAiQ3JlYXRlIExp
bmsgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICAgICAgY2Fz
ZSBXZWJVbmRvQWN0aW9uVW5saW5rOiByZXR1cm4gVUlfU1RSSU5HX0tFWSgiUmVtb3ZlIExpbmsi
LCAiUmVtb3ZlIExpbmsgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsK
ICAgICB9CiAgICAgcmV0dXJuIG5pbDsKIH0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMzMwMSkKKysrIFdlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMDI1LDYgKzEwMjUs
OCBAQAogCQlCQ0ZCMkY3NzA5N0EyRTFBMDBCQTcwM0QgLyogQXJlbmEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkIyRjc1MDk3QTJFMUEwMEJBNzAz
RCAvKiBBcmVuYS5oICovOyB9OwogCQlDNkQ3NEFENTA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5
U2VsZWN0aW9uTGlzdExldmVsQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzZENzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVj
dGlvbkxpc3RMZXZlbENvbW1hbmQuaCAqLzsgfTsKIAkJQzZENzRBRTQwOUFBMjkwQTAwMEIwQTUy
IC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZENzRBRTMwOUFBMjkwQTAwMEIwQTUyIC8q
IE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbENvbW1hbmQuY3BwICovOyB9OworCQlEMDRCRDk5QjA5
QzgxNTI5MDBBNzg4MkUgLyogVW5saW5rQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDRCRDk5OTA5QzgxNTI5MDBBNzg4MkUgLyogVW5s
aW5rQ29tbWFuZC5jcHAgKi87IH07CisJCUQwNEJEOTlDMDlDODE1MjkwMEE3ODgyRSAvKiBVbmxp
bmtDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEMDRCRDk5QTA5QzgxNTI5MDBBNzg4MkUgLyogVW5saW5rQ29tbWFuZC5oICovOyB9OwogCQlE
MEIwNTU2ODA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQwQjA1NTY2MDlDNjcwMDEwMDMw
N0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oICovOyB9OwogCQlEMEIwNTU2OTA5QzY3MDAxMDAz
MDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRDBCMDU1NjcwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxp
bmtDb21tYW5kLmNwcCAqLzsgfTsKIAkJREQ3NjNCQjIwOTkyQzJDOTAwNzQwQjhFIC8qIGxpYnht
bDIuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBERDc2M0JCMTA5OTJDMkM5MDA3NDBCOEUgLyogbGlieG1sMi5keWxpYiAqLzsgfTsKQEAgLTIx
MjMsNiArMjEyNSw4IEBACiAJCUJFRjdFRUExMDVGRjhGMEQwMDk3MTdFRSAvKiBLV1FFZGl0Q29t
bWFuZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEtXUUVkaXRDb21tYW5kLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQzZENzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8q
IE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsQ29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDNkQ3NEFFMzA5QUEyOTBBMDAwQjBBNTIgLyogTW9kaWZ5U2Vs
ZWN0aW9uTGlzdExldmVsQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWxDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRDA0QkQ5OTkwOUM4MTUyOTAwQTc4ODJFIC8qIFVubGlua0NvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVubGlua0NvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDRCRDk5QTA5QzgxNTI5MDBB
Nzg4MkUgLyogVW5saW5rQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVW5saW5rQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMEIwNTU2
NjA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ3JlYXRlTGlua0NvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRDBCMDU1NjcwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5k
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyZWF0ZUxpbmtDb21t
YW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREQ3NjNCQjEwOTkyQzJDOTAw
NzQwQjhFIC8qIGxpYnhtbDIuZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgbmFtZSA9IGxpYnhtbDIu
ZHlsaWI7IHBhdGggPSAvdXNyL2xpYi9saWJ4bWwyLmR5bGliOyBzb3VyY2VUcmVlID0gIjxhYnNv
bHV0ZT4iOyB9OwpAQCAtMjUxNyw2ICsyNTIxLDggQEAKIAkJOTMzMDlEODYwOTlFNjQ5MTAwNTZF
NTgxIC8qIGVkaXRpbmcgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCUQwNEJEOTk5MDlDODE1MjkwMEE3ODgyRSAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLywK
KwkJCQlEMDRCRDk5QTA5QzgxNTI5MDBBNzg4MkUgLyogVW5saW5rQ29tbWFuZC5oICovLAogCQkJ
CUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAogCQkJ
CUQwQjA1NTY3MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5jcHAgKi8sCiAJ
CQkJOTMzMDlEODcwOTlFNjQ5MTAwNTZFNTgxIC8qIEFwcGVuZE5vZGVDb21tYW5kLmNwcCAqLywK
QEAgLTQzNjcsNiArNDM3Myw3IEBACiAJCQkJOTM1MjA3QkUwOUJENDEwQTAwRjIwMzhEIC8qIExv
Y2FsaXplZFN0cmluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTIwODgyMDlCRDQ1RTkwMEYy
MDM4RCAvKiBDb29raWVKYXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwQjA1NTY4MDlDNjcwMDEw
MDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDA0QkQ5
OUMwOUM4MTUyOTAwQTc4ODJFIC8qIFVubGlua0NvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAt
NTQ4Miw2ICs1NDg5LDcgQEAKIAkJCQk5MzUyMDg0NTA5QkQ0M0I5MDBGMjAzOEQgLyogTGFuZ3Vh
Z2UubW0gaW4gU291cmNlcyAqLywKIAkJCQk5MzUyMDg3NzA5QkQ0NTM0MDBGMjAzOEQgLyogQ29v
a2llSmFyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRDBCMDU1NjkwOUM2NzAwMTAwMzA3RTQzIC8q
IENyZWF0ZUxpbmtDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQwNEJEOTlCMDlDODE1
MjkwMEE3ODgyRSAvKiBVbmxpbmtDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2Vi
Q29yZS9lZGl0aW5nL1VubGlua0NvbW1hbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRp
bmcvVW5saW5rQ29tbWFuZC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9lZGl0aW5nL1VubGlu
a0NvbW1hbmQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBVbmxpbmtDb21tYW5kX2gKKyNkZWZpbmUgVW5saW5rQ29tbWFuZF9oCisK
KyNpbmNsdWRlICJDb21wb3NpdGVFZGl0Q29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFVubGlua0NvbW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQKK3sK
K3B1YmxpYzoKKyAgICBVbmxpbmtDb21tYW5kKERPTTo6RG9jdW1lbnRJbXBsKik7CisgICAgdmly
dHVhbCB2b2lkIGRvQXBwbHkoKTsKKyAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bigpIGNvbnN0IHsgcmV0dXJuIEVkaXRBY3Rpb25Vbmxpbms7IH0KK3ByaXZhdGU6CisKK307CisK
K30gLy8gbmFtZXNwYWNlIGtodG1sCisKKyNlbmRpZiAvLyBVbmxpbmtDb21tYW5kX2gKSW5kZXg6
IFdlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAkocmV2aXNpb24gMTMzMDEp
CisrKyBXZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDMsMTYgKzEwMywyOCBAQAogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjph
cHBseVN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb25JbXBsICpzdHlsZSwgRWRpdEFjdGlvbiBlZGl0
aW5nQWN0aW9uKQogewotICAgIEVkaXRDb21tYW5kUHRyIGNtZChuZXcgQXBwbHlTdHlsZUNvbW1h
bmQoZG9jdW1lbnQoKSwgc3R5bGUsIDAsIGVkaXRpbmdBY3Rpb24pKTsKKyAgICBFZGl0Q29tbWFu
ZFB0ciBjbWQobmV3IEFwcGx5U3R5bGVDb21tYW5kKGRvY3VtZW50KCksIHN0eWxlLCBlZGl0aW5n
QWN0aW9uKSk7CiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY21kKTsKIH0KIAogdm9pZCBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwbHlTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uSW1wbCAq
c3R5bGUsIFBvc2l0aW9uIHN0YXJ0LCBQb3NpdGlvbiBlbmQsIEVkaXRBY3Rpb24gZWRpdGluZ0Fj
dGlvbikKIHsKLSAgICBFZGl0Q29tbWFuZFB0ciBjbWQobmV3IEFwcGx5U3R5bGVDb21tYW5kKGRv
Y3VtZW50KCksIHN0eWxlLCAwLCBzdGFydCwgZW5kLCBlZGl0aW5nQWN0aW9uKSk7CisgICAgRWRp
dENvbW1hbmRQdHIgY21kKG5ldyBBcHBseVN0eWxlQ29tbWFuZChkb2N1bWVudCgpLCBzdHlsZSwg
c3RhcnQsIGVuZCwgZWRpdGluZ0FjdGlvbikpOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRl
KGNtZCk7CiB9CiAKK3ZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5U3R5bGVkRWxlbWVu
dChFbGVtZW50SW1wbCogZWxlbWVudCkKK3sKKyAgICBFZGl0Q29tbWFuZFB0ciBjbWQobmV3IEFw
cGx5U3R5bGVDb21tYW5kKGRvY3VtZW50KCksIGVsZW1lbnQsIGZhbHNlKSk7CisgICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoY21kKTsKK30KKwordm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVtb3ZlU3R5bGVkRWxlbWVudChFbGVtZW50SW1wbCogZWxlbWVudCkKK3sKKyAgICBFZGl0Q29t
bWFuZFB0ciBjbWQobmV3IEFwcGx5U3R5bGVDb21tYW5kKGRvY3VtZW50KCksIGVsZW1lbnQsIHRy
dWUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShjbWQpOworfQorCiB2b2lkIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoKQogewogICAgIEVkaXRD
b21tYW5kUHRyIGNtZChuZXcgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChkb2N1bWVu
dCgpKSk7CkBAIC01ODYsNiArNTk4LDUyIEBACiAgICAgfQogfQogCitOb2RlSW1wbCogZW5jbG9z
aW5nQW5jaG9yRWxlbWVudChOb2RlSW1wbCogbm9kZSkKK3sKKyAgICB3aGlsZSAobm9kZSAmJiAh
KG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiBub2RlLT5pc0xpbmsoKSkpCisgICAgICAgIG5vZGUg
PSBub2RlLT5wYXJlbnROb2RlKCk7CisgICAgCisgICAgcmV0dXJuIG5vZGU7Cit9CisKK3ZvaWQg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnB1c2hBbmNob3JFbGVtZW50RG93bihOb2RlSW1wbCogYW5j
aG9yTm9kZSkKK3sKKyAgICBpZiAoIWFuY2hvck5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICAK
KyAgICBBU1NFUlQoYW5jaG9yTm9kZS0+aXNMaW5rKCkpOworICAgIAorICAgIFJlZlB0cjxOb2Rl
SW1wbD4gbmV3QW5jaG9yRWxlbWVudCA9IGFuY2hvck5vZGUtPmNsb25lTm9kZShmYWxzZSk7Cisg
ICAgCisgICAgc2V0RW5kaW5nU2VsZWN0aW9uKFNlbGVjdGlvbjo6c2VsZWN0aW9uRnJvbU5vZGVD
b250ZW50cyhhbmNob3JOb2RlKSk7CisgICAgYXBwbHlTdHlsZWRFbGVtZW50KHN0YXRpY19jYXN0
PEVsZW1lbnRJbXBsKj4obmV3QW5jaG9yRWxlbWVudC5nZXQoKSkpOworfQorCisvLyBHaXZlbiB0
aGlzIGRvY3VtZW50OiA8YT48cD5oZWxsbyB3b3JsZDwvcD48L2E+IGZvbywgaW1hZ2luZSBzZWxl
Y3RpbmcgJ3dvcmxkIGZvbycgYW5kIAorLy8gY2FsbGluZyBDcmVhdGVMaW5rLiAgU2luY2UgYW5j
aG9ycyBjYW4ndCBiZSBuZXN0ZWQsIHRoaXMgaXMgdGhlIG9ubHkgY29ycmVjdCByZXN1bHQ6Cisv
LyA8cD48YT5oZWxsbyA8L2E+PGE+d29ybGQ8L2E+PC9wPjxhPiBmb288L2E+LiAgQXBwbHlTdHls
ZUNvbW1hbmQsIHdoaWNoIGlzIHVzZWQgdG8gCisvLyBpbXBsZW1lbnQgQ3JlYXRlTGluaywgd291
bGRuJ3QgcHVzaCB0aGUgb3JpZ2luYWwgPGE+IGRvd24gYmVmb3JlIGFwcGx5aW5nIHRoZSBuZXcg
b25lLCAKKy8vIHNpbmNlIGl0IGNhcmVzIGFib3V0IHN0eWxlcywgYW5kIHN0eWxlcyBjYW4gYmUg
bmVzdGVkLgordm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cHVzaFBhcnRpYWxseVNlbGVjdGVk
QW5jaG9yRWxlbWVudHNEb3duKCkKK3sKKyAgICBTZWxlY3Rpb24gb3JpZ2luYWxTZWxlY3Rpb24g
PSBlbmRpbmdTZWxlY3Rpb24oKTsKKyAgICAKKyAgICBOb2RlSW1wbCogc3RhcnRBbmNob3IgPSBl
bmNsb3NpbmdBbmNob3JFbGVtZW50KG9yaWdpbmFsU2VsZWN0aW9uLnN0YXJ0KCkubm9kZSgpKTsK
KyAgICBOb2RlSW1wbCogZW5kQW5jaG9yID0gZW5jbG9zaW5nQW5jaG9yRWxlbWVudChvcmlnaW5h
bFNlbGVjdGlvbi5lbmQoKS5ub2RlKCkpOworICAgIAorICAgIC8vIEZJWE1FOiBUaGlzIHB1c2hl
cyBkb3duIGFuY2hvcnMgZXZlbiBpZiB0aGV5IGFyZSBmdWxseSBzZWxlY3RlZC4gIAorICAgIC8v
IFRoaXMgaXMgbm90IGluY29ycmVjdCwgYnV0IGlzIGxlc3MgZWZmaWNpZW50LgorICAgIGlmIChz
dGFydEFuY2hvciA9PSBlbmRBbmNob3IpCisgICAgICAgIHB1c2hBbmNob3JFbGVtZW50RG93bihz
dGFydEFuY2hvcik7CisgICAgZWxzZSB7CisgICAgICAgIHB1c2hBbmNob3JFbGVtZW50RG93bihz
dGFydEFuY2hvcik7CisgICAgICAgIHB1c2hBbmNob3JFbGVtZW50RG93bihlbmRBbmNob3IpOwor
ICAgIH0KKworICAgIEFTU0VSVChvcmlnaW5hbFNlbGVjdGlvbi5zdGFydCgpLm5vZGUoKS0+aW5E
b2N1bWVudCgpICYmIG9yaWdpbmFsU2VsZWN0aW9uLmVuZCgpLm5vZGUoKS0+aW5Eb2N1bWVudCgp
KTsKKyAgICBzZXRFbmRpbmdTZWxlY3Rpb24ob3JpZ2luYWxTZWxlY3Rpb24pOworfQorCiBQYXNz
UmVmUHRyPEVsZW1lbnRJbXBsPiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVu
dEltcGwqIGRvY3VtZW50KQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpJbmRleDogV2Vi
Q29yZS9lZGl0aW5nL2pzZWRpdGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5n
L2pzZWRpdGluZy5jcHAJKHJldmlzaW9uIDEzMzAxKQorKysgV2ViQ29yZS9lZGl0aW5nL2pzZWRp
dGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJtYXJr
dXAuaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIlR5
cGluZ0NvbW1hbmQuaCIKKyNpbmNsdWRlICJVbmxpbmtDb21tYW5kLmgiCiAjaW5jbHVkZSA8a3ht
bGNvcmUvSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MDYsNiArNDA3LDEy
IEBACiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgZXhlY1VubGluayhGcmFtZSAqZnJhbWUs
IGJvb2wgdXNlckludGVyZmFjZSwgY29uc3QgRE9NU3RyaW5nICZ2YWx1ZSkKK3sKKyAgICBFZGl0
Q29tbWFuZFB0cihuZXcgVW5saW5rQ29tbWFuZChmcmFtZS0+ZG9jdW1lbnQoKSkpLmFwcGx5KCk7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgZXhlY1Vuc2VsZWN0KEZyYW1lICpmcmFtZSwg
Ym9vbCB1c2VySW50ZXJmYWNlLCBjb25zdCBET01TdHJpbmcgJnZhbHVlKQogewogICAgIC8vIEZJ
WE1FOiA2NDk4IFNob3VsZCBqdXN0IGJlIGFibGUgdG8gY2FsbCBtX2ZyYW1lLT5zZWxlY3Rpb24o
KS5jbGVhcigpCkBAIC01ODksNiArNTk2LDcgQEAKICAgICAgICAgeyAiVHJhbnNwb3NlIiwgeyBl
eGVjVHJhbnNwb3NlLCBlbmFibGVkLCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCB9IH0sCiAgICAgICAg
IHsgIlVuZGVybGluZSIsIHsgZXhlY1VuZGVybGluZSwgZW5hYmxlZEFueVNlbGVjdGlvbiwgc3Rh
dGVVbmRlcmxpbmUsIHZhbHVlTnVsbCB9IH0sCiAgICAgICAgIHsgIlVuZG8iLCB7IGV4ZWNVbmRv
LCBlbmFibGVkVW5kbywgc3RhdGVOb25lLCB2YWx1ZU51bGwgfSB9LAorICAgICAgICB7ICJVbmxp
bmsiLCB7IGV4ZWNVbmxpbmssIGVuYWJsZWRSYW5nZVNlbGVjdGlvbiwgc3RhdGVOb25lLCB2YWx1
ZU51bGwgfSB9LAogICAgICAgICB7ICJVbnNlbGVjdCIsIHsgZXhlY1Vuc2VsZWN0LCBlbmFibGVk
QW55U2VsZWN0aW9uLCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCB9IH0KIAogICAgICAgICAvLwpAQCAt
NjQ0LDcgKzY1Miw2IEBACiAgICAgICAgIC8vIFN0b3AgKG5vdCBzdXBwb3J0ZWQpCiAgICAgICAg
IC8vIFN0b3BJbWFnZSAobm90IHN1cHBvcnRlZCkKICAgICAgICAgLy8gVW5ib29rbWFyayAobm90
IHN1cHBvcnRlZCkKLSAgICAgICAgLy8gVW5saW5rIChub3Qgc3VwcG9ydGVkKQogICAgIH07CiAK
ICAgICBDb21tYW5kTWFwICpjb21tYW5kTWFwID0gbmV3IENvbW1hbmRNYXA7CkluZGV4OiBXZWJD
b3JlL2VkaXRpbmcvU2VsZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL1Nl
bGVjdGlvbi5oCShyZXZpc2lvbiAxMzMwMCkKKysrIFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb24u
aAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsOCBAQAogICAgIFNlbGVjdGlvbigpOwogICAg
IFNlbGVjdGlvbihjb25zdCBQb3NpdGlvbiAmLCBFQWZmaW5pdHkpOwogICAgIFNlbGVjdGlvbihj
b25zdCBQb3NpdGlvbiAmLCBjb25zdCBQb3NpdGlvbiAmLCBFQWZmaW5pdHkpOworICAgIAorICAg
IHN0YXRpYyBTZWxlY3Rpb24gc2VsZWN0aW9uRnJvbU5vZGVDb250ZW50cyhOb2RlSW1wbCopOwog
CiAgICAgRVN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQogCkluZGV4OiBX
ZWJDb3JlL2VkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9l
ZGl0aW5nL1VubGlua0NvbW1hbmQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9lZGl0aW5n
L1VubGlua0NvbW1hbmQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVW5saW5rQ29tbWFu
ZC5oIgorCisjaW5jbHVkZSAiaHRtbF9pbmxpbmVpbXBsLmgiCisjaW5jbHVkZSA8a3htbGNvcmUv
QXNzZXJ0aW9ucy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1VubGlua0NvbW1hbmQ6OlVu
bGlua0NvbW1hbmQoRG9jdW1lbnRJbXBsKiBkb2N1bWVudCkgCisgICAgOiBDb21wb3NpdGVFZGl0
Q29tbWFuZChkb2N1bWVudCkKK3sKK30KKwordm9pZCBVbmxpbmtDb21tYW5kOjpkb0FwcGx5KCkK
K3sKKyAgICBwdXNoUGFydGlhbGx5U2VsZWN0ZWRBbmNob3JFbGVtZW50c0Rvd24oKTsKKworICAg
IEhUTUxBbmNob3JFbGVtZW50SW1wbCogYW5jaG9yRWxlbWVudCA9IG5ldyBIVE1MQW5jaG9yRWxl
bWVudEltcGwoZG9jdW1lbnQoKSk7CisgICAgcmVtb3ZlU3R5bGVkRWxlbWVudChzdGF0aWNfY2Fz
dDxFbGVtZW50SW1wbCo+KGFuY2hvckVsZW1lbnQpKTsKK30KKworfQpJbmRleDogV2ViQ29yZS9l
ZGl0aW5nL1NlbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL1NlbGVj
dGlvbi5jcHAJKHJldmlzaW9uIDEzMzAwKQorKysgV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDYgKzYzLDExIEBACiAgICAgdmFsaWRhdGUoKTsKIH0K
IAorU2VsZWN0aW9uIFNlbGVjdGlvbjo6c2VsZWN0aW9uRnJvbU5vZGVDb250ZW50cyhOb2RlSW1w
bCogbm9kZSkKK3sKKyAgICByZXR1cm4gU2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIDApLCBQb3Np
dGlvbihub2RlLCBtYXhEZWVwT2Zmc2V0KG5vZGUpKSwgRE9XTlNUUkVBTSk7Cit9CisKIFBhc3NS
ZWZQdHI8UmFuZ2VJbXBsPiBTZWxlY3Rpb246OnRvUmFuZ2UoKSBjb25zdAogewogICAgIGlmIChp
c05vbmUoKSkKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCShyZXZpc2lvbiAx
MzMwMSkKKysrIFdlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCw4ICszOCw5IEBACiBwdWJsaWM6CiAgICAgZW51bSBFUHJvcGVydHlMZXZlbCB7
IFByb3BlcnR5RGVmYXVsdCwgRm9yY2VCbG9ja1Byb3BlcnRpZXMgfTsKIAotICAgIEFwcGx5U3R5
bGVDb21tYW5kKERvY3VtZW50SW1wbCosIENTU1N0eWxlRGVjbGFyYXRpb25JbXBsKiwgRWxlbWVu
dEltcGwqLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXMsIEVQcm9wZXJ0
eUxldmVsID0gUHJvcGVydHlEZWZhdWx0KTsKLSAgICBBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVu
dEltcGwqLCBDU1NTdHlsZURlY2xhcmF0aW9uSW1wbCosIEVsZW1lbnRJbXBsKiwgY29uc3QgUG9z
aXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlv
bkNoYW5nZUF0dHJpYnV0ZXMsIEVQcm9wZXJ0eUxldmVsID0gUHJvcGVydHlEZWZhdWx0KTsKKyAg
ICBBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudEltcGwqLCBDU1NTdHlsZURlY2xhcmF0aW9uSW1w
bCosIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uQ2hhbmdlQXR0cmlidXRlcywgRVByb3BlcnR5TGV2
ZWwgPSBQcm9wZXJ0eURlZmF1bHQpOworICAgIEFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50SW1w
bCosIENTU1N0eWxlRGVjbGFyYXRpb25JbXBsKiwgY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25z
dCBQb3NpdGlvbiYgZW5kLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXMs
IEVQcm9wZXJ0eUxldmVsID0gUHJvcGVydHlEZWZhdWx0KTsKKyAgICBBcHBseVN0eWxlQ29tbWFu
ZChEb2N1bWVudEltcGwqLCBFbGVtZW50SW1wbCosIGJvb2wgPSBmYWxzZSwgRWRpdEFjdGlvbiA9
IEVkaXRBY3Rpb25DaGFuZ2VBdHRyaWJ1dGVzKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5
KCk7CiAgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdDsKQEAgLTkx
LDYgKzkyLDcgQEAKICAgICBQb3NpdGlvbiBtX2VuZDsKICAgICBib29sIG1fdXNlRW5kaW5nU2Vs
ZWN0aW9uOwogICAgIFJlZlB0cjxFbGVtZW50SW1wbD4gbV9zdHlsZWRJbmxpbmVFbGVtZW50Owor
ICAgIGJvb2wgbV9yZW1vdmVPbmx5OwogfTsKIAogYm9vbCBpc1N0eWxlU3Bhbihjb25zdCBOb2Rl
SW1wbCopOwpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuY3BwCShyZXZpc2lv
biAxMzMwMSkKKysrIFdlYkNvcmUvZWRpdGluZy9DcmVhdGVMaW5rQ29tbWFuZC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJDcmVhdGVMaW5rQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiY3NzX3ZhbHVlaW1wbC5oIgotI2lu
Y2x1ZGUgIkRvY3VtZW50SW1wbC5oIgogI2luY2x1ZGUgImh0bWxfaW5saW5laW1wbC5oIgogI2lu
Y2x1ZGUgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KIApAQCAtNDEsMTAgKzM5LDExIEBACiAKIHZv
aWQgQ3JlYXRlTGlua0NvbW1hbmQ6OmRvQXBwbHkoKQogeworICAgIHB1c2hQYXJ0aWFsbHlTZWxl
Y3RlZEFuY2hvckVsZW1lbnRzRG93bigpOworCiAgICAgSFRNTEFuY2hvckVsZW1lbnRJbXBsKiBh
bmNob3JFbGVtZW50ID0gbmV3IEhUTUxBbmNob3JFbGVtZW50SW1wbChkb2N1bWVudCgpKTsKICAg
ICBhbmNob3JFbGVtZW50LT5zZXRIcmVmKG1fdXJsKTsKLSAgICBFZGl0Q29tbWFuZFB0ciBjbWQo
bmV3IEFwcGx5U3R5bGVDb21tYW5kKGRvY3VtZW50KCksIG5ldyBDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbkltcGwoKSwgc3RhdGljX2Nhc3Q8RWxlbWVudEltcGwqPihhbmNob3JFbGVtZW50KSkp
OwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNtZCk7CisgICAgYXBwbHlTdHlsZWRFbGVt
ZW50KHN0YXRpY19jYXN0PEVsZW1lbnRJbXBsKj4oYW5jaG9yRWxlbWVudCkpOwogfQogCiB9Cklu
ZGV4OiBXZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAJKHJldmlzaW9uIDEzMzAxKQor
KysgV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjU3LDcgKzI1Nyw3IEBACiAgICAgcmV0dXJuIHN0YXRpY19wb2ludGVyX2Nhc3Q8SFRNTEVs
ZW1lbnRJbXBsPihzdHlsZUVsZW1lbnQucmVsZWFzZSgpKTsKIH0KIAotQXBwbHlTdHlsZUNvbW1h
bmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50SW1wbCogZG9jdW1lbnQsIENTU1N0eWxlRGVj
bGFyYXRpb25JbXBsKiBzdHlsZSwgRWxlbWVudEltcGwqIGVsZW1lbnQsIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbiwgRVByb3BlcnR5TGV2ZWwgcHJvcGVydHlMZXZlbCkKK0FwcGx5U3R5bGVDb21t
YW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudEltcGwqIGRvY3VtZW50LCBDU1NTdHlsZURl
Y2xhcmF0aW9uSW1wbCogc3R5bGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiwgRVByb3BlcnR5
TGV2ZWwgcHJvcGVydHlMZXZlbCkKICAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50
KQogICAgICwgbV9zdHlsZShzdHlsZS0+bWFrZU11dGFibGUoKSkKICAgICAsIG1fZWRpdGluZ0Fj
dGlvbihlZGl0aW5nQWN0aW9uKQpAQCAtMjY1LDExICsyNjUsMTIgQEAKICAgICAsIG1fc3RhcnQo
ZW5kaW5nU2VsZWN0aW9uKCkuc3RhcnQoKS5kb3duc3RyZWFtKCkpCiAgICAgLCBtX2VuZChlbmRp
bmdTZWxlY3Rpb24oKS5lbmQoKS51cHN0cmVhbSgpKQogICAgICwgbV91c2VFbmRpbmdTZWxlY3Rp
b24odHJ1ZSkKLSAgICAsIG1fc3R5bGVkSW5saW5lRWxlbWVudChlbGVtZW50KQorICAgICwgbV9z
dHlsZWRJbmxpbmVFbGVtZW50KDApCisgICAgLCBtX3JlbW92ZU9ubHkoZmFsc2UpCiB7CiB9CiAK
LUFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudEltcGwqIGRvY3Vt
ZW50LCBDU1NTdHlsZURlY2xhcmF0aW9uSW1wbCogc3R5bGUsIEVsZW1lbnRJbXBsKiBlbGVtZW50
LCBjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IFBvc2l0aW9uJiBlbmQsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbiwgRVByb3BlcnR5TGV2ZWwgcHJvcGVydHlMZXZlbCkKK0FwcGx5U3R5bGVD
b21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudEltcGwqIGRvY3VtZW50LCBDU1NTdHls
ZURlY2xhcmF0aW9uSW1wbCogc3R5bGUsIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9z
aXRpb24mIGVuZCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uLCBFUHJvcGVydHlMZXZlbCBwcm9w
ZXJ0eUxldmVsKQogICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCiAgICAgLCBt
X3N0eWxlKHN0eWxlLT5tYWtlTXV0YWJsZSgpKQogICAgICwgbV9lZGl0aW5nQWN0aW9uKGVkaXRp
bmdBY3Rpb24pCkBAIC0yNzcsNyArMjc4LDIxIEBACiAgICAgLCBtX3N0YXJ0KHN0YXJ0KQogICAg
ICwgbV9lbmQoZW5kKQogICAgICwgbV91c2VFbmRpbmdTZWxlY3Rpb24oZmFsc2UpCisgICAgLCBt
X3N0eWxlZElubGluZUVsZW1lbnQoMCkKKyAgICAsIG1fcmVtb3ZlT25seShmYWxzZSkKK3sKK30K
KworQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50SW1wbCogZG9j
dW1lbnQsIEVsZW1lbnRJbXBsKiBlbGVtZW50LCBib29sIHJlbW92ZU9ubHksIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorICAg
ICwgbV9zdHlsZShuZXcgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25JbXBsKCkpCisgICAgLCBt
X2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKKyAgICAsIG1fcHJvcGVydHlMZXZlbChQcm9w
ZXJ0eURlZmF1bHQpCisgICAgLCBtX3N0YXJ0KGVuZGluZ1NlbGVjdGlvbigpLnN0YXJ0KCkuZG93
bnN0cmVhbSgpKQorICAgICwgbV9lbmQoZW5kaW5nU2VsZWN0aW9uKCkuZW5kKCkudXBzdHJlYW0o
KSkKKyAgICAsIG1fdXNlRW5kaW5nU2VsZWN0aW9uKHRydWUpCiAgICAgLCBtX3N0eWxlZElubGlu
ZUVsZW1lbnQoZWxlbWVudCkKKyAgICAsIG1fcmVtb3ZlT25seShyZW1vdmVPbmx5KQogewogfQog
CkBAIC0zNzMsNiArMzg4LDkgQEAKICAgICAgICAgfQogICAgIH0KICAgICAKKyAgICBpZiAobV9y
ZW1vdmVPbmx5KQorICAgICAgICByZXR1cm47CisgICAgCiAgICAgLy8gYXBwbHkgc3BlY2lmaWVk
IHN0eWxlcyB0byB0aGUgYmxvY2sgZmxvdyBlbGVtZW50cyBpbiB0aGUgc2VsZWN0ZWQgcmFuZ2UK
ICAgICBwcmV2QmxvY2sgPSAwOwogICAgIGZvciAoUVB0ckxpc3RJdGVyYXRvcjxOb2RlSW1wbD4g
aXQobm9kZXMpOyBpdC5jdXJyZW50KCk7ICsraXQpIHsKQEAgLTM5Miw2ICs0MTAsOSBAQAogCiB2
b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseVJlbGF0aXZlRm9udFN0eWxlQ2hhbmdlKENTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uSW1wbCAqc3R5bGUpCiB7CisgICAgaWYgKG1fcmVtb3ZlT25s
eSkKKyAgICAgICAgcmV0dXJuOworICAgIAogICAgIFJlZlB0cjxDU1NWYWx1ZUltcGw+IHZhbHVl
ID0gc3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTX1BST1BfRk9OVF9TSVpFKTsKICAgICBp
ZiAodmFsdWUpIHsKICAgICAgICAgLy8gRXhwbGljaXQgZm9udCBzaXplIG92ZXJyaWRlcyBhbnkg
ZGVsdGEuCkBAIC0xMjAzLDYgKzEyMjQsOSBAQAogCiB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjph
ZGRJbmxpbmVTdHlsZUlmTmVlZGVkKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uSW1wbCAqc3R5
bGUsIE5vZGVJbXBsICpzdGFydE5vZGUsIE5vZGVJbXBsICplbmROb2RlKQogeworICAgIGlmICht
X3JlbW92ZU9ubHkpCisgICAgICAgIHJldHVybjsKKyAgICAgICAgCiAgICAgU3R5bGVDaGFuZ2Ug
c3R5bGVDaGFuZ2Uoc3R5bGUsIFBvc2l0aW9uKHN0YXJ0Tm9kZSwgMCksIFN0eWxlQ2hhbmdlOjpz
dHlsZU1vZGVGb3JQYXJzZU1vZGUoZG9jdW1lbnQoKS0+aW5Db21wYXRNb2RlKCkpKTsKICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKICAgICAKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9lZGl0X2Fj
dGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvZWRpdF9hY3Rpb25zLmgJKHJl
dmlzaW9uIDEzMzAwKQorKysgV2ViQ29yZS9lZGl0aW5nL2VkaXRfYWN0aW9ucy5oCSh3b3JraW5n
IGNvcHkpCkBAIC01OSw2ICs1OSw4IEBACiAgICAgICAgIEVkaXRBY3Rpb25QYXN0ZUZvbnQsCiAg
ICAgICAgIEVkaXRBY3Rpb25QYXN0ZVJ1bGVyLAogICAgICAgICBFZGl0QWN0aW9uVHlwaW5nLAor
ICAgICAgICBFZGl0QWN0aW9uQ3JlYXRlTGluaywKKyAgICAgICAgRWRpdEFjdGlvblVubGluaywK
ICAgICB9IEVkaXRBY3Rpb247ICAgIAogfQogCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuaAkocmV2aXNpb24gMTMzMDApCisrKyBXZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsOCBAQAogICAgIHZv
aWQgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRWRpdENvbW1hbmRQdHIgJik7CiAgICAgdm9pZCBh
cHBseVN0eWxlKERPTTo6Q1NTU3R5bGVEZWNsYXJhdGlvbkltcGwgKnN0eWxlLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb249RWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXMpOwogICAgIHZvaWQgYXBw
bHlTdHlsZShET006OkNTU1N0eWxlRGVjbGFyYXRpb25JbXBsICpzdHlsZSwgRE9NOjpQb3NpdGlv
biBzdGFydCwgRE9NOjpQb3NpdGlvbiBlbmQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbj1FZGl0
QWN0aW9uQ2hhbmdlQXR0cmlidXRlcyk7CisgICAgdm9pZCBhcHBseVN0eWxlZEVsZW1lbnQoRWxl
bWVudEltcGwqKTsKKyAgICB2b2lkIHJlbW92ZVN0eWxlZEVsZW1lbnQoRWxlbWVudEltcGwqKTsK
ICAgICB2b2lkIGRlbGV0ZUtleVByZXNzZWQoKTsKICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlvbihi
b29sIHNtYXJ0RGVsZXRlPWZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGU9dHJ1ZSk7
CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oY29uc3QgU2VsZWN0aW9uICZzZWxlY3Rpb24sIGJv
b2wgc21hcnREZWxldGU9ZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZT10cnVlKTsK
QEAgLTk1LDYgKzk3LDkgQEAKIAogICAgIHZvaWQgbW92ZVBhcmFncmFwaENvbnRlbnRzVG9OZXdC
bG9ja0lmTmVjZXNzYXJ5KGNvbnN0IERPTTo6UG9zaXRpb24gJik7CiAKKyAgICB2b2lkIHB1c2hB
bmNob3JFbGVtZW50RG93bihET006Ok5vZGVJbXBsKik7CisgICAgdm9pZCBwdXNoUGFydGlhbGx5
U2VsZWN0ZWRBbmNob3JFbGVtZW50c0Rvd24oKTsKKwogICAgIFFWYWx1ZUxpc3Q8RWRpdENvbW1h
bmRQdHI+IG1fY21kczsKIH07CiAKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9DcmVhdGVMaW5rQ29t
bWFuZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9DcmVhdGVMaW5rQ29tbWFuZC5o
CShyZXZpc2lvbiAxMzMwMSkKKysrIFdlYkNvcmUvZWRpdGluZy9DcmVhdGVMaW5rQ29tbWFuZC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMCArMjMsMTAgQEAKICAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICov
CiAKLSNpZm5kZWYgX19jcmVhdGVfbGlua19jb21tYW5kX2hfXwotI2RlZmluZSBfX2NyZWF0ZV9s
aW5rX2NvbW1hbmRfaF9fCisjaWZuZGVmIENyZWF0ZUxpbmtDb21tYW5kX2gKKyNkZWZpbmUgQ3Jl
YXRlTGlua0NvbW1hbmRfaAogCi0jaW5jbHVkZSAiQXBwbHlTdHlsZUNvbW1hbmQuaCIKKyNpbmNs
dWRlICJDb21wb3NpdGVFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTM1LDcgKzM1LDcgQEAKIHB1YmxpYzoKICAgICBDcmVhdGVMaW5rQ29tbWFuZChET006OkRvY3Vt
ZW50SW1wbCosIGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7Ci0g
ICAgCisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCB7IHJldHVy
biBFZGl0QWN0aW9uQ3JlYXRlTGluazsgfQogcHJpdmF0ZToKICAgICBTdHJpbmcgbV91cmw7CiAK
QEAgLTQzLDQgKzQzLDQgQEAKIAogfSAvLyBuYW1lc3BhY2Uga2h0bWwKIAotI2VuZGlmIC8vIF9f
Y3JlYXRlX2xpbmtfY29tbWFuZF9oX18KKyNlbmRpZiAvLyBDcmVhdGVMaW5rQ29tbWFuZF9oCklu
ZGV4OiBXZWJDb3JlL2JyaWRnZS9tYWMvV2ViQ29yZUZyYW1lQnJpZGdlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9icmlkZ2UvbWFjL1dlYkNvcmVGcmFtZUJyaWRnZS5oCShyZXZpc2lvbiAxMzMw
MCkKKysrIFdlYkNvcmUvYnJpZGdlL21hYy9XZWJDb3JlRnJhbWVCcmlkZ2UuaAkod29ya2luZyBj
b3B5KQpAQCAtMTUwLDYgKzE1MCw4IEBACiAgICAgV2ViVW5kb0FjdGlvblBhc3RlRm9udCwKICAg
ICBXZWJVbmRvQWN0aW9uUGFzdGVSdWxlciwKICAgICBXZWJVbmRvQWN0aW9uVHlwaW5nLAorICAg
IFdlYlVuZG9BY3Rpb25DcmVhdGVMaW5rLAorICAgIFdlYlVuZG9BY3Rpb25VbmxpbmssCiB9IFdl
YlVuZG9BY3Rpb247CiAKIHR5cGVkZWYgZW51bSB7CkluZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHJldmlzaW9uIDEzMzAx
KQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkxNyw3ICsx
OTE3LDcgQEAKIAogYm9vbCBGcmFtZTo6c2VsZWN0Q29udGVudHNPZk5vZGUoTm9kZUltcGwqIG5v
ZGUpCiB7Ci0gICAgU2VsZWN0aW9uQ29udHJvbGxlciBzZWwgPSBTZWxlY3Rpb25Db250cm9sbGVy
KFBvc2l0aW9uKG5vZGUsIDApLCBQb3NpdGlvbihub2RlLCBtYXhEZWVwT2Zmc2V0KG5vZGUpKSwg
RE9XTlNUUkVBTSk7ICAgIAorICAgIFNlbGVjdGlvbkNvbnRyb2xsZXIgc2VsID0gU2VsZWN0aW9u
Q29udHJvbGxlcihTZWxlY3Rpb246OnNlbGVjdGlvbkZyb21Ob2RlQ29udGVudHMobm9kZSkpOyAg
ICAKICAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKHNlbCkpIHsKICAgICAgICAgc2V0U2Vs
ZWN0aW9uKHNlbCk7CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMjE0Myw3ICsyMTQzLDcgQEAK
ICAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25JbXBsPiBibG9ja1N0eWxlID0g
bXV0YWJsZVN0eWxlLT5jb3B5QmxvY2tQcm9wZXJ0aWVzKCk7CiAgICAgYmxvY2tTdHlsZS0+ZGlm
ZihtdXRhYmxlU3R5bGUuZ2V0KCkpOwogICAgIGlmIChkb2N1bWVudCgpICYmIGJsb2NrU3R5bGUt
Pmxlbmd0aCgpID4gMCkgewotICAgICAgICBFZGl0Q29tbWFuZFB0ciBjbWQobmV3IEFwcGx5U3R5
bGVDb21tYW5kKGRvY3VtZW50KCksIGJsb2NrU3R5bGUuZ2V0KCksIDAsIGVkaXRpbmdBY3Rpb24p
KTsKKyAgICAgICAgRWRpdENvbW1hbmRQdHIgY21kKG5ldyBBcHBseVN0eWxlQ29tbWFuZChkb2N1
bWVudCgpLCBibG9ja1N0eWxlLmdldCgpLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgICAgIGNtZC5h
cHBseSgpOwogICAgIH0KICAgICAKQEAgLTIxNjMsNyArMjE2Myw3IEBACiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBTZWxlY3Rpb246OlJBTkdFOgogICAgICAgICAgICAgaWYgKGRvY3VtZW50KCkg
JiYgc3R5bGUpIHsKLSAgICAgICAgICAgICAgICBFZGl0Q29tbWFuZFB0ciBjbWQobmV3IEFwcGx5
U3R5bGVDb21tYW5kKGRvY3VtZW50KCksIHN0eWxlLCAwLCBlZGl0aW5nQWN0aW9uKSk7CisgICAg
ICAgICAgICAgICAgRWRpdENvbW1hbmRQdHIgY21kKG5ldyBBcHBseVN0eWxlQ29tbWFuZChkb2N1
bWVudCgpLCBzdHlsZSwgZWRpdGluZ0FjdGlvbikpOwogICAgICAgICAgICAgICAgIGNtZC5hcHBs
eSgpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMTc5LDcgKzIxNzks
NyBAQAogICAgICAgICBjYXNlIFNlbGVjdGlvbjo6Q0FSRVQ6CiAgICAgICAgIGNhc2UgU2VsZWN0
aW9uOjpSQU5HRToKICAgICAgICAgICAgIGlmIChkb2N1bWVudCgpICYmIHN0eWxlKSB7Ci0gICAg
ICAgICAgICAgICAgRWRpdENvbW1hbmRQdHIgY21kKG5ldyBBcHBseVN0eWxlQ29tbWFuZChkb2N1
bWVudCgpLCBzdHlsZSwgMCwgZWRpdGluZ0FjdGlvbiwgQXBwbHlTdHlsZUNvbW1hbmQ6OkZvcmNl
QmxvY2tQcm9wZXJ0aWVzKSk7CisgICAgICAgICAgICAgICAgRWRpdENvbW1hbmRQdHIgY21kKG5l
dyBBcHBseVN0eWxlQ29tbWFuZChkb2N1bWVudCgpLCBzdHlsZSwgZWRpdGluZ0FjdGlvbiwgQXBw
bHlTdHlsZUNvbW1hbmQ6OkZvcmNlQmxvY2tQcm9wZXJ0aWVzKSk7CiAgICAgICAgICAgICAgICAg
Y21kLmFwcGx5KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsK
</data>
<flag name="review"
          id="1865"
          type_id="1"
          status="+"
          setter="justin.garcia"
    />
          </attachment>
      

    </bug>

</bugzilla>