<?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>87495</bug_id>
          
          <creation_ts>2012-05-25 06:04:36 -0700</creation_ts>
          <short_desc>[WK2] Color chooser API missing</short_desc>
          <delta_ts>2012-06-20 17:44:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>87496</blocked>
    
    <blocked>87749</blocked>
    
    <blocked>87989</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Thiago Marcos P. Santos">tmpsantos</reporter>
          <assigned_to name="Thiago Marcos P. Santos">tmpsantos</assigned_to>
          <cc>andersca</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dinu.jacob</cc>
    
    <cc>gustavo</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>noam</cc>
    
    <cc>pierre.rossi</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>633862</commentid>
    <comment_count>0</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-05-25 06:04:36 -0700</bug_when>
    <thetext>This is API allows the embedder to display a custom color chooser for &lt;input type=&quot;color&quot;&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636050</commentid>
    <comment_count>1</comment_count>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2012-05-29 08:23:48 -0700</bug_when>
    <thetext>*** Bug 87496 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638650</commentid>
    <comment_count>2</comment_count>
      <attachid>145137</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-05-31 12:48:08 -0700</bug_when>
    <thetext>Created attachment 145137
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640513</commentid>
    <comment_count>3</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-06-04 05:40:42 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created an attachment (id=145137) [details]
&gt; Patch

You don&apos;t have Xcode to add the files for mac?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640519</commentid>
    <comment_count>4</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-06-04 05:50:52 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; Created an attachment (id=145137) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; You don&apos;t have Xcode to add the files for mac?

Unfortunately I don&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641390</commentid>
    <comment_count>5</comment_count>
      <attachid>145752</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-06-05 03:58:10 -0700</bug_when>
    <thetext>Created attachment 145752
Patch v2

Thanks Alexis for adding the files to xcode buildsystem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647886</commentid>
    <comment_count>6</comment_count>
      <attachid>147284</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-06-13 04:11:33 -0700</bug_when>
    <thetext>Created attachment 147284
Patch

Rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648102</commentid>
    <comment_count>7</comment_count>
      <attachid>147284</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-06-13 09:12:21 -0700</bug_when>
    <thetext>Comment on attachment 147284
Patch

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

According to http://www.webkit.org/coding/contributing.html, new files should have the WebKit license and not LGPL. Patch looks good otherwise.

&gt; Source/WebKit2/UIProcess/PageClient.h:176
&gt; +    virtual PassRefPtr&lt;WebColorChooserProxy&gt; createColorChooserProxy(WebPageProxy*, const WebCore::Color&amp;) = 0;

I think it&apos;s good to name this parameter initialColor.

&gt; Source/WebKit2/UIProcess/WebPageProxy.h:794
&gt; +    void showColorChooser(const WebCore::Color&amp;);

I think it&apos;s good to name this parameter initialColor.

&gt; Source/WebKit2/WebKit2.xcodeproj/project.pbxproj:891
&gt; +		E131CFA8157D1C9A002A66B3 /* WebColorChooser.cpp in CopyFiles */ = {isa = PBXBuildFile; fileRef = E131CFA6157D1C9A002A66B3 /* WebColorChooser.cpp */; };
&gt; +		E131CFA9157D1C9A002A66B3 /* WebColorChooser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E131CFA6157D1C9A002A66B3 /* WebColorChooser.cpp */; };
&gt; +		E131CFAA157D1C9A002A66B3 /* WebColorChooser.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = E131CFA7157D1C9A002A66B3 /* WebColorChooser.h */; };
&gt; +		E131CFAD157D1CD7002A66B3 /* WebColorChooserProxy.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = E131CFAC157D1CD7002A66B3 /* WebColorChooserProxy.h */; };

This part is incorrect. You have to add the files using Xcode and not edit the project file manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648488</commentid>
    <comment_count>8</comment_count>
      <attachid>147418</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-06-13 14:57:01 -0700</bug_when>
    <thetext>Created attachment 147418
Patch v4

Updated patch fixing what was pointed by the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648610</commentid>
    <comment_count>9</comment_count>
      <attachid>147418</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-06-13 17:21:13 -0700</bug_when>
    <thetext>Comment on attachment 147418
Patch v4

Attachment 147418 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/12951445</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649048</commentid>
    <comment_count>10</comment_count>
      <attachid>147546</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-06-14 03:37:00 -0700</bug_when>
    <thetext>Created attachment 147546
Patch v5

Now with stubs for all the ports, so it wont break the build for ports like EFL that has colorpicker enabled for wk1 and are building wk2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649049</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-14 03:38:36 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650122</commentid>
    <comment_count>12</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-06-15 06:42:21 -0700</bug_when>
    <thetext>Shouln&apos;t a new feature like this include some tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650125</commentid>
    <comment_count>13</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-06-15 06:46:10 -0700</bug_when>
    <thetext>It did as a separate bug report</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650139</commentid>
    <comment_count>14</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-06-15 07:09:19 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; It did as a separate bug report

Right, my oversight.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653804</commentid>
    <comment_count>15</comment_count>
      <attachid>147546</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-06-20 13:02:27 -0700</bug_when>
    <thetext>Comment on attachment 147546
Patch v5

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

r=me based on Anders&apos;s prior assessment and the patch looking generally fine to me.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebColorChooser.h:45
&gt; +    ~WebColorChooser();

Should mark this explicitly virtual.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653926</commentid>
    <comment_count>16</comment_count>
      <attachid>148663</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-06-20 15:09:08 -0700</bug_when>
    <thetext>Created attachment 148663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654065</commentid>
    <comment_count>17</comment_count>
      <attachid>148663</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-20 17:44:19 -0700</bug_when>
    <thetext>Comment on attachment 148663
Patch

Clearing flags on attachment: 148663

Committed r120890: &lt;http://trac.webkit.org/changeset/120890&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654066</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-20 17:44:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145137</attachid>
            <date>2012-05-31 12:48:08 -0700</date>
            <delta_ts>2012-06-05 03:57:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87495-20120531224806.patch</filename>
            <type>text/plain</type>
            <size>26166</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjRlMjY4YTExZjdiZGEz
YjY1YTJmM2M4MDk5YTY1NzMzMDc3YmUxNS4uN2QzNzQ1NzNhMmU4MGExNTY4ZWI5Zjg4MGE4MmE0
ZjBhNzQxNmM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDEyLTA1LTMxICBUaGlh
Z28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgorCisgICAgICAg
IFtXSzJdIENvbG9yIGNob29zZXIgQVBJIG1pc3NpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgQ29sb3JDaG9vc2VyIEFQSSB0byBXZWJLaXQy
LiBUaGlzIEFQSSBhbGxvd3MgdGhlCisgICAgICAgIGVtYmVkZGVyIHRvIGRlZmluZSBhIGN1c3Rv
bSBjb2xvciBwaWNrZXIgZm9yIDxpbnB1dCB0eXBlPSJjb2xvciI+LgorCisgICAgICAgIE9ubHkg
b25lIENvbG9yQ2hvb3NlciBjYW4gYmUgYWN0aXZlIGZvciBhIHBhZ2UgYXQgYSB0aW1lLiBBbHRo
b3VnaAorICAgICAgICB0aGUgaW1wbGVtZW50YXRpb24gZG9lc24ndCBub3QgYXNzdW1lIGEgbW9k
YWwgZGlhbG9nLCBubyBvdGhlcgorICAgICAgICBjb2xvciBjaG9vc2VyIHdpbGwgYmUgY3JlYXRl
ZCB1bnRpbCB0aGUgYWN0aXZlIG9uZSBpcyBjbG9zZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5w
cmk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChQYWdlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29sb3JDaG9v
c2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJDb2xvckNob29zZXJQcm94eSk6CisgICAgICAgIChDbGllbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXJQcm94eTo6Q2xpZW50Ojp+Q2xpZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyUHJveHk6On5XZWJDb2xvckNob29zZXJQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclByb3h5OjppbnZhbGlkYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyUHJveHk6OldlYkNvbG9yQ2hvb3NlclBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3dDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnNldENvbG9yQ2hvb3NlckNvbG9yKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjplbmRDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmRpZENob29zZUNvbG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
aWRFbmRDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnByb2Nl
c3NEaWRDcmFzaCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAoV2ViUGFnZVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNo
b29zZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9v
c2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b2xvckNob29zZXI6OldlYkNvbG9yQ2hvb3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9y
Q2hvb3Nlcjo6fldlYkNvbG9yQ2hvb3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hv
b3Nlcjo6ZGlkQ2hvb3NlQ29sb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6
OmRpZEVuZENob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OmRpc2Nv
bm5lY3RGcm9tUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nlcjo6c2V0U2Vs
ZWN0ZWRDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nlcjo6ZW5kQ2hvb3Nl
cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJDb2xvckNob29zZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmNsb3NlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnNldEFjdGl2ZUNvbG9yQ2hvb3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmRpZEVuZENvbG9yQ2hvb3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZENo
b29zZUNvbG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjphY3RpdmVDb2xvckNob29zZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoKKwogMjAx
Mi0wNS0zMSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSB0
aGUgc3BlY2lmaWNhdGlvbiBvZiBmcmFtZXdvcmsgYW5kIGxpYnJhcnkgbGlua2luZyBvdXQgb2Yg
V2ViS2l0Mi54Y29kZXByb2ogYW5kIGludG8gV2ViS2l0Mi54Y2NvbmZpZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3Rz
LnR4dAppbmRleCAzYzE1NzEwNjdhYTRmYWQwYzFkMzNkODE1N2VmNWI4Zjg4NjY1YzFiLi40Nzkw
MDg4M2E1OThiMDk0ZmZhMGM1ZmY0MTAzMTdlMGY4MTZiZjc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4
dApAQCAtMzk3LDYgKzM5Nyw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNz
L1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCiAKICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKyAgICBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRHJhZ0NsaWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGIx
ZWVhMjQ3M2JkMGQzYmUxMDZhYjRlODY3NzI0MzNhNjUwNjczM2MuLjNiYWNiZDU2NDgxODQ2NTU4
ZDM0NGQ2NGYxZjk1MjI1MGJjN2I1OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtNzMzLDYgKzczMyw3IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcCBcCiAJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQ29sb3JDaG9vc2VyUHJveHkuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29udGV4dC5jcHAgXApAQCAtOTcyLDYgKzk3Myw4IEBAIHdlYmtpdDJfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5h
dGl2ZVRleHRDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmggXAogCVNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3Bw
IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRN
ZW51Q2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRGF0YWJhc2VNYW5hZ2VyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJn
ZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCBhNGI5YTRmNmVmMjE1ZDRh
NmJiNzc4OTc2MzI4ZmEwYzE1NjM3M2E5Li5lNDcxN2YyM2NlN2FkYzcxYWUwMzMxZmRkODY5YTEy
ZTA3YzYwMjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTIyNiw2ICsyMjYsNyBAQCBIRUFERVJTICs9IFwK
ICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oIFwKICAgICBVSVByb2Nlc3MvV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViQmFja0Zv
cndhcmRMaXN0LmggXAorICAgIFVJUHJvY2Vzcy9XZWJDb2xvckNob29zZXJQcm94eS5oIFwKICAg
ICBVSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIFwKICAgICBVSVByb2Nlc3Mv
V2ViQ29udGV4dC5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQu
aCBcCkBAIC0zNDAsNiArMzQxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBcCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDb2xvckNob29zZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
b250ZXh0TWVudUNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRh
dGFiYXNlTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdD
bGllbnQuaCBcCkBAIC03MDAsNiArNzAyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBcCisgICAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCmluZGV4IDdjODE1MTAxZGZhNzJkZDQ5M2E5NDA2OWVmYTUyMjVkZDFmMjc4MzUuLjFi
NGU0N2QzYWNjOWM2MGRkNGY3MDFmNmVjYzg3NzU0YzI4NDA4YTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBQYWdlQ2xpZW50
X2gKIAogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIldlYkNvbG9yQ2hv
b3NlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUG9w
dXBNZW51UHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FsdGVybmF0aXZlVGV4dENsaWVudC5o
PgpAQCAtNTgsNiArNTksOSBAQCBjbGFzcyBXZWJHZXN0dXJlRXZlbnQ7CiBjbGFzcyBXZWJDb250
ZXh0TWVudVByb3h5OwogY2xhc3MgV2ViRWRpdENvbW1hbmRQcm94eTsKIGNsYXNzIFdlYlBvcHVw
TWVudVByb3h5OworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorY2xhc3MgV2ViQ29sb3JD
aG9vc2VyUHJveHk7CisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKIHN0cnVjdCBXaW5kb3dH
ZW9tZXRyeTsKQEAgLTE2Miw2ICsxNjYsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5
KikgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVudVByb3h5PiBjcmVh
dGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSopID0gMDsKIAorI2lmIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SKQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb2xvckNob29zZXJQcm94
eT4gY3JlYXRlQ29sb3JDaG9vc2VyUHJveHkoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6
Q29sb3ImKSA9IDA7CisjZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBzZXRGaW5kSW5kaWNhdG9y
KFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgZmFkZU91dCwgYm9vbCBhbmltYXRlKSA9
IDA7CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZpcnR1YWwgdm9pZCBkaWRJbnN0YWxsT3JVbmlu
c3RhbGxQYWdlT3ZlcmxheShib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29sb3JDaG9vc2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb2xvckNob29zZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5MWQ2NmVhMGRhMzUzYWQ2MWMx
MzMyMGI3Y2FmMTU2N2NkYzE1OWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29sb3JDaG9vc2VyUHJveHkuaApAQCAtMCwwICsxLDY3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisg
Ki8KKworI2lmbmRlZiBXZWJDb2xvckNob29zZXJQcm94eV9oCisjZGVmaW5lIFdlYkNvbG9yQ2hv
b3NlclByb3h5X2gKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorCisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK2NsYXNzIENvbG9yOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViUGFnZVByb3h5OworCitjbGFzcyBXZWJDb2xvckNob29zZXJQcm94eSA6IHB1YmxpYyBSZWZD
b3VudGVkPFdlYkNvbG9yQ2hvb3NlclByb3h5PiB7CitwdWJsaWM6CisgICAgY2xhc3MgQ2xpZW50
IHsKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZpcnR1YWwgfkNsaWVudCgpIHsgfQorCisgICAg
cHVibGljOgorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRDb2xvckNob29zZXIo
KSA9IDA7CisgICAgfTsKKyAgICB2aXJ0dWFsIH5XZWJDb2xvckNob29zZXJQcm94eSgpIHsgfQor
CisgICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBtX2NsaWVudCA9IDA7IH0KKworICAgIHZpcnR1YWwg
dm9pZCBlbmRDaG9vc2VyKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9y
KGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgV2ViQ29sb3JD
aG9vc2VyUHJveHkoQ2xpZW50KiBjbGllbnQpCisgICAgICAgIDogbV9jbGllbnQoY2xpZW50KQor
ICAgIHsKKyAgICB9CisKKyAgICBDbGllbnQqIG1fY2xpZW50OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKworI2VuZGlm
IC8vIFdlYkNvbG9yQ2hvb3NlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggMmI1MzhlNWQ4YjA3OWQ5MjkwODc2MjUyMmJiOTEzOWIyOGFjZTAy
Mi4uNWUzZDgzMjk4ZTk2OWZkNTQ2NDczZjFhOTBmNDkyNWU3ZmM4ZDVmNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzk1LDYgKzM5NiwxMyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xvc2UoKQogICAgICAgICBtX29wZW5QYW5lbFJlc3VsdExp
c3RlbmVyID0gMDsKICAgICB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBp
ZiAobV9jb2xvckNob29zZXIpIHsKKyAgICAgICAgbV9jb2xvckNob29zZXItPmludmFsaWRhdGUo
KTsKKyAgICAgICAgbV9jb2xvckNob29zZXIgPSBudWxscHRyOworICAgIH0KKyNlbmRpZgorCiAj
aWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7CiAjZW5kaWYKQEAgLTI2MTEsNiArMjYxOSw1
MCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bmVlZFRvdWNoRXZlbnRzKGJvb2wgbmVlZFRvdWNoRXZl
bnRzKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpzaG93Q29sb3JDaG9vc2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFs
Q29sb3IpCit7CisgICAgQVNTRVJUKCFtX2NvbG9yQ2hvb3Nlcik7CisKKyAgICBtX2NvbG9yQ2hv
b3NlciA9IG1fcGFnZUNsaWVudC0+Y3JlYXRlQ29sb3JDaG9vc2VyUHJveHkodGhpcywgaW5pdGlh
bENvbG9yKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnNldENvbG9yQ2hvb3NlckNvbG9yKGNv
bnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKK3sKKyAgICBBU1NFUlQobV9jb2xvckNob29zZXIp
OworCisgICAgbV9jb2xvckNob29zZXItPnNldFNlbGVjdGVkQ29sb3IoY29sb3IpOworfQorCit2
b2lkIFdlYlBhZ2VQcm94eTo6ZW5kQ29sb3JDaG9vc2VyKCkKK3sKKyAgICBBU1NFUlQobV9jb2xv
ckNob29zZXIpOworCisgICAgbV9jb2xvckNob29zZXItPmVuZENob29zZXIoKTsKK30KKwordm9p
ZCBXZWJQYWdlUHJveHk6OmRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xv
cikKK3sKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJvY2Vz
cygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRDaG9vc2VDb2xvcihjb2xvciksIG1fcGFn
ZUlEKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmRpZEVuZENvbG9yQ2hvb3NlcigpCit7Cisg
ICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChtX2NvbG9y
Q2hvb3Nlcik7CisKKyAgICBtX2NvbG9yQ2hvb3Nlci0+aW52YWxpZGF0ZSgpOworICAgIG1fY29s
b3JDaG9vc2VyID0gbnVsbHB0cjsKKworICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6RGlkRW5kQ29sb3JDaG9vc2VyKCksIG1fcGFnZUlEKTsKK30KKyNlbmRpZgorCiB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkRHJhdygpCiB7CiAgICAgbV91aUNsaWVudC5kaWREcmF3KHRoaXMp
OwpAQCAtMzM2Myw2ICszNDE1LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jh
c2goKQogICAgICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVsbHB0cjsKICAgICB9
CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBpZiAobV9jb2xvckNob29zZXIp
IHsKKyAgICAgICAgbV9jb2xvckNob29zZXItPmludmFsaWRhdGUoKTsKKyAgICAgICAgbV9jb2xv
ckNob29zZXIgPSBudWxscHRyOworICAgIH0KKyNlbmRpZgorCiAjaWYgRU5BQkxFKEdFT0xPQ0FU
SU9OKQogICAgIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaW52YWxpZGF0
ZVJlcXVlc3RzKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCA5NWU2YzEzMzk0M2NmNGMwYzEwMmVlMjY2MGY4OWZkMWRlNTNlMjhmLi42NmY5ZjBj
MjNlN2E4ZGJkYmVmY2UzMjczZDFiZjIyYWNiMDRkZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiU2hhcmVhYmxl
Qml0bWFwLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVkZSAiV0tQYWdlUHJpdmF0ZS5o
IgorI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3NlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4
dE1lbnVJdGVtRGF0YS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2lu
Y2x1ZGUgIldlYkZpbmRDbGllbnQuaCIKQEAgLTU4LDYgKzU5LDcgQEAKICNpbmNsdWRlICJXZWJQ
b3B1cE1lbnVQcm94eS5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZENsaWVudC5oIgogI2lu
Y2x1ZGUgIldlYlVJQ2xpZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Db2xvci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSGl0VGVzdFJlc3VsdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KQEAgLTIxOCw3ICsyMjAsMTIgQEAg
cHJpdmF0ZToKICAgICBDYWxsYmFja0Z1bmN0aW9uIG1fY2FsbGJhY2s7CiB9OwogCi1jbGFzcyBX
ZWJQYWdlUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0LCBwdWJsaWMgV2ViUG9wdXBNZW51UHJveHk6
OkNsaWVudCB7CitjbGFzcyBXZWJQYWdlUHJveHkKKyAgICA6IHB1YmxpYyBBUElPYmplY3QKKyNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICAsIHB1YmxpYyBXZWJDb2xvckNob29zZXJQ
cm94eTo6Q2xpZW50CisjZW5kaWYKKyAgICAsIHB1YmxpYyBXZWJQb3B1cE1lbnVQcm94eTo6Q2xp
ZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZVBhZ2U7
CiAKQEAgLTc3Niw2ICs3ODMsMTQgQEAgcHJpdmF0ZToKICAgICB2b2lkIG5lZWRUb3VjaEV2ZW50
cyhib29sKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgdm9p
ZCBzaG93Q29sb3JDaG9vc2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdm9pZCBzZXRD
b2xvckNob29zZXJDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpOworICAgIHZvaWQgZW5kQ29s
b3JDaG9vc2VyKCk7CisgICAgdm9pZCBkaWRDaG9vc2VDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xv
ciYpOworICAgIHZvaWQgZGlkRW5kQ29sb3JDaG9vc2VyKCk7CisjZW5kaWYKKwogICAgIHZvaWQg
ZWRpdG9yU3RhdGVDaGFuZ2VkKGNvbnN0IEVkaXRvclN0YXRlJik7CiAKICAgICAvLyBCYWNrL0Zv
cndhcmQgbGlzdCBtYW5hZ2VtZW50CkBAIC0xMDQ4LDYgKzEwNjMsOSBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9uZWVkVG91Y2hFdmVudHM7CiAgICAgRGVxdWU8UXVldWVkVG91Y2hFdmVudHM+IG1f
dG91Y2hFdmVudFF1ZXVlOwogI2VuZGlmCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisg
ICAgUmVmUHRyPFdlYkNvbG9yQ2hvb3NlclByb3h5PiBtX2NvbG9yQ2hvb3NlcjsKKyNlbmRpZgog
CiAgICAgdWludDY0X3QgbV9wYWdlSUQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDg1NDFjZmI3YzIxMTQ4MzQ1YTQ5NTMy
NmE1ZjBjZTYyMjUwY2I4YTYuLjc1NmY4Y2RmYjE0MjdhMDNlNTQ5MzU4OTgyYjMxYTIwMmY1MWRh
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgpAQCAtODMsNiArODMsMTIgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAg
ICBOZWVkVG91Y2hFdmVudHMoYm9vbCBuZWVkVG91Y2hFdmVudHMpCiAjZW5kaWYKIAorI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIFNob3dDb2xvckNob29zZXIoV2ViQ29yZTo6Q29s
b3IgaW5pdGlhbENvbG9yKTsKKyAgICBTZXRDb2xvckNob29zZXJDb2xvcihXZWJDb3JlOjpDb2xv
ciBjb2xvcik7CisgICAgRW5kQ29sb3JDaG9vc2VyKCk7CisjZW5kaWYKKwogICAgICMgUG9saWN5
IG1lc3NhZ2VzCiAgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVV
c2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpIC0+IChib29sIHJlY2VpdmVkUG9saWN5QWN0aW9u
LCB1aW50NjRfdCBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IGRvd25sb2FkSUQpCiAgICAgRGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBuYXZp
Z2F0aW9uVHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90IG1vdXNlQnV0dG9uLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0
OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkgLT4gKGJvb2wgcmVj
ZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90IHBvbGljeUFjdGlvbiwgdWludDY0X3QgZG93bmxv
YWRJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBjMDZmMTFiMzY5NDFmNGZmNjBiODdm
ZWIzODAzYjAyMjgyMDVjMmNhLi43MjlmYzExY2Y2YTRhNzhiZGJlYTk1N2IzNzQ4ZjhlNzI3N2U5
NWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk
ZSAiSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRC
dW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3QuaCIKKyNp
bmNsdWRlICJXZWJDb2xvckNob29zZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgiCkBAIC01OTcsMTAgKzU5OCwxMiBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cGFpbnRD
dXN0b21PdmVyaGFuZ0FyZWEoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbgogfQog
CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi1QYXNzT3duUHRyPENvbG9yQ2hvb3Nlcj4g
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50Kiwg
Y29uc3QgQ29sb3ImKQorUGFzc093blB0cjxDb2xvckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6
Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25zdCBDb2xv
ciYgaW5pdGlhbENvbG9yKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIG51
bGxwdHI7CisgICAgaWYgKG1fcGFnZS0+YWN0aXZlQ29sb3JDaG9vc2VyKCkpCisgICAgICAgIHJl
dHVybiBudWxscHRyOworCisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJDb2xvckNob29zZXIo
bV9wYWdlLCBjbGllbnQsIGluaXRpYWxDb2xvcikpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JD
aG9vc2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzgzOGVkNGIwNzM3NGIxZWMzOWQ3MzMwZWI0NDUyNmNi
MDAxYzQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyLmgiCisK
KyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKworI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Nv
bG9yQ2hvb3NlckNsaWVudC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1dlYkNvbG9yQ2hvb3Nlcjo6V2ViQ29sb3JDaG9vc2VyKFdlYlBhZ2Uq
IHBhZ2UsIENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25zdCBDb2xvciYgaW5pdGlhbENv
bG9yKQorICAgIDogbV9jb2xvckNob29zZXJDbGllbnQoY2xpZW50KQorICAgICwgbV9wYWdlKHBh
Z2UpCit7CisgICAgbV9wYWdlLT5zZXRBY3RpdmVDb2xvckNob29zZXIodGhpcyk7CisgICAgV2Vi
UHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlNob3dDb2xvckNob29zZXIoaW5pdGlhbENvbG9yKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9
CisKK1dlYkNvbG9yQ2hvb3Nlcjo6fldlYkNvbG9yQ2hvb3NlcigpCit7CisgICAgaWYgKCFtX3Bh
Z2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZS0+c2V0QWN0aXZlQ29sb3JDaG9vc2Vy
KDApOworfQorCit2b2lkIFdlYkNvbG9yQ2hvb3Nlcjo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgQ29s
b3ImIGNvbG9yKQoreworICAgIG1fY29sb3JDaG9vc2VyQ2xpZW50LT5kaWRDaG9vc2VDb2xvcihj
b2xvcik7Cit9CisKK3ZvaWQgV2ViQ29sb3JDaG9vc2VyOjpkaWRFbmRDaG9vc2VyKCkKK3sKKyAg
ICBtX2NvbG9yQ2hvb3NlckNsaWVudC0+ZGlkRW5kQ2hvb3NlcigpOworfQorCit2b2lkIFdlYkNv
bG9yQ2hvb3Nlcjo6ZGlzY29ubmVjdEZyb21QYWdlKCkKK3sKKyAgICBtX3BhZ2UgPSAwOworfQor
Cit2b2lkIFdlYkNvbG9yQ2hvb3Nlcjo6c2V0U2VsZWN0ZWRDb2xvcihjb25zdCBDb2xvciYgY29s
b3IpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYlByb2Nl
c3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpT
ZXRDb2xvckNob29zZXJDb2xvcihjb2xvciksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCit2b2lk
IFdlYkNvbG9yQ2hvb3Nlcjo6ZW5kQ2hvb3NlcigpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFbmRDb2xvckNob29zZXIoKSwgbV9wYWdlLT5wYWdl
SUQoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKElO
UFVUX1RZUEVfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZWZmOGRmZmQ3
NTI2ZDdmYjQ0NGIzOWIyZWVlZjQyNmI1MzMwNzJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuaApAQCAt
MCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9u
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBXZWJDb2xvckNob29zZXJfaAorI2Rl
ZmluZSBXZWJDb2xvckNob29zZXJfaAorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisK
KyNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yQ2hvb3Nlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBDb2xvcjsKK2NsYXNzIENvbG9yQ2hvb3NlckNsaWVudDsKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYkNvbG9yQ2hvb3NlciA6IHB1
YmxpYyBXZWJDb3JlOjpDb2xvckNob29zZXIgeworcHVibGljOgorICAgIFdlYkNvbG9yQ2hvb3Nl
cihXZWJQYWdlKiwgV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgV2ViQ29yZTo6
Q29sb3ImKTsKKyAgICB+V2ViQ29sb3JDaG9vc2VyKCk7CisKKyAgICB2b2lkIGRpZENob29zZUNv
bG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdm9pZCBkaWRFbmRDaG9vc2VyKCk7Cisg
ICAgdm9pZCBkaXNjb25uZWN0RnJvbVBhZ2UoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxl
Y3RlZENvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGVuZENob29zZXIoKSBPVkVSUklERTsKKworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjpDb2xv
ckNob29zZXJDbGllbnQqIG1fY29sb3JDaG9vc2VyQ2xpZW50OworICAgIFdlYlBhZ2UqIG1fcGFn
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVU
X1RZUEVfQ09MT1IpCisKKyNlbmRpZiAvLyBXZWJDb2xvckNob29zZXJfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDZmMTgyN2NjMTc0OTE5
NjBlNTY2YTZhNmE3YWYzNzcyYzcyMThmMzQuLmFkMzY1NWJiMzUyYjcwNjFkMWIwODNhZDNjZDRh
N2I3MWU2ODJmYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBJ
bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNDcsNiArNDgsNyBAQAogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oIgogI2luY2x1
ZGUgIldlYkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3Nlci5oIgogI2lu
Y2x1ZGUgIldlYkNvbnRleHRNZW51LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVDbGllbnQu
aCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVzc2FnZXMuaCIKQEAgLTIwNiw2ICsyMDgsOSBAQCBX
ZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKICAgICAsIG1fdGFwSGlnaGxpZ2h0Q29udHJvbGxlcih0aGlz
KQogI2VuZGlmCiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICAsIG1f
YWN0aXZlQ29sb3JDaG9vc2VyKDApCisjZW5kaWYKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAg
ICAgLCBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKHRoaXMpCiAjZW5kaWYK
QEAgLTYzMSw2ICs2MzYsMTMgQEAgdm9pZCBXZWJQYWdlOjpjbG9zZSgpCiAgICAgICAgIG1fYWN0
aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSAwOwogICAgIH0KIAorI2lmIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SKQorICAgIGlmIChtX2FjdGl2ZUNvbG9yQ2hvb3NlcikgeworICAgICAgICBt
X2FjdGl2ZUNvbG9yQ2hvb3Nlci0+ZGlzY29ubmVjdEZyb21QYWdlKCk7CisgICAgICAgIG1fYWN0
aXZlQ29sb3JDaG9vc2VyID0gMDsKKyAgICB9CisjZW5kaWYKKwogICAgIG1fc2FuZGJveEV4dGVu
c2lvblRyYWNrZXIuaW52YWxpZGF0ZSgpOwogCiAgICAgbV91bmRlcmxheVBhZ2UgPSBudWxscHRy
OwpAQCAtMjMxMCw2ICsyMzIyLDIzIEBAIHZvaWQgV2ViUGFnZTo6c2V0QWN0aXZlUG9wdXBNZW51
KFdlYlBvcHVwTWVudSogbWVudSkKICAgICBtX2FjdGl2ZVBvcHVwTWVudSA9IG1lbnU7CiB9CiAK
KyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK3ZvaWQgV2ViUGFnZTo6c2V0QWN0aXZlQ29s
b3JDaG9vc2VyKFdlYkNvbG9yQ2hvb3NlciogY29sb3JDaG9vc2VyKQoreworICAgIG1fYWN0aXZl
Q29sb3JDaG9vc2VyID0gY29sb3JDaG9vc2VyOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZEVuZENv
bG9yQ2hvb3NlcigpCit7CisgICAgbV9hY3RpdmVDb2xvckNob29zZXItPmRpZEVuZENob29zZXIo
KTsKK30KKwordm9pZCBXZWJQYWdlOjpkaWRDaG9vc2VDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xv
ciYgY29sb3IpCit7CisgICAgbV9hY3RpdmVDb2xvckNob29zZXItPmRpZENob29zZUNvbG9yKGNv
bG9yKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZU9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyKFBhc3NSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI+IG9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyKQogewogICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIg
PSBvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCmluZGV4IDNiN2U2ZTY0ZmQ5Nzc2MjEyODJmNTMzMDk1NjRiODg4MDk4
NjA5MTUuLjFlZDM5M2M2OWI1YWFlNDlmNzU2ZGFhN2I0OTllNjcyYWI4YWMzNmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTIyLDYgKzEyMiw3
IEBAIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIGNsYXNzIFBh
Z2VPdmVybGF5OwogY2xhc3MgUGx1Z2luVmlldzsKIGNsYXNzIFNlc3Npb25TdGF0ZTsKK2NsYXNz
IFdlYkNvbG9yQ2hvb3NlcjsKIGNsYXNzIFdlYkNvbnRleHRNZW51OwogY2xhc3MgV2ViQ29udGV4
dE1lbnVJdGVtRGF0YTsKIGNsYXNzIFdlYkV2ZW50OwpAQCAtMjEzLDcgKzIxNCwxNCBAQCBwdWJs
aWM6CiAgICAgYm9vbCBpc0luUmVkbygpIGNvbnN0IHsgcmV0dXJuIG1faXNJblJlZG87IH0KIAog
ICAgIHZvaWQgc2V0QWN0aXZlUG9wdXBNZW51KFdlYlBvcHVwTWVudSopOwotICAgIAorCisjaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgV2ViQ29sb3JDaG9vc2VyKiBhY3RpdmVDb2xv
ckNob29zZXIoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZUNvbG9yQ2hvb3NlcjsgfQorICAgIHZv
aWQgc2V0QWN0aXZlQ29sb3JDaG9vc2VyKFdlYkNvbG9yQ2hvb3NlciopOworICAgIHZvaWQgZGlk
Q2hvb3NlQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKyAgICB2b2lkIGRpZEVuZENvbG9y
Q2hvb3NlcigpOworI2VuZGlmCisKICAgICBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciogYWN0
aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZU9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyLmdldCgpOyB9CiAgICAgdm9pZCBzZXRBY3RpdmVPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lcihQYXNzUmVmUHRyPFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyPik7CiAK
QEAgLTc5NCw2ICs4MDIsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQog
ICAgIFJlZlB0cjxXZWJDb250ZXh0TWVudT4gbV9jb250ZXh0TWVudTsKICNlbmRpZgorI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIFdlYkNvbG9yQ2hvb3NlciogbV9hY3RpdmVDb2xv
ckNob29zZXI7CisjZW5kaWYKICAgICBSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI+
IG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CiAgICAgUmVmUHRyPE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggODk5YTJhOTUyMjY3N2FiMmZkNWZmNjU5YjZjOWQ1
N2NjM2QwMGRmOS4uYzMwOGM0NjRiNjVlZmVmYWViMDEyMTc0ZTFmYmZhYjQwYzQ3NzNjNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KQEAgLTQ0LDYgKzQ0LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgewogICAgIEhp
Z2hsaWdodFBvdGVudGlhbEFjdGl2YXRpb24oV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIFdlYkNv
cmU6OkludFNpemUgYXJlYSkKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Ip
CisgICAgRGlkRW5kQ29sb3JDaG9vc2VyKCk7CisgICAgRGlkQ2hvb3NlQ29sb3IoV2ViQ29yZTo6
Q29sb3IgY29sb3IpOworI2VuZGlmCisKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBD
b250ZXh0TWVudUhpZGRlbigpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyLnZjcHJvaiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagppbmRl
eCBjMmZlZjA5YzYzOTY5ZTRiYTRjYjExNDUxYjE0MDIwNzQwYjg4MjY1Li4wYTM4YzRiODIyYTgy
NDc5OGZmOGM0ZWUyZjNjZDI0ODliN2I2ZDBmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi52Y3Byb2oKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9q
CkBAIC0xODM4LDYgKzE4MzgsMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViQ29sb3JD
aG9vc2VyLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViQ29sb3JDaG9vc2VyLmgiCisJ
CQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQ
cm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdlYkNvbnRleHRNZW51Q2xpZW50LmNwcCIKIAkJCQkJPgog
CQkJCTwvRmlsZT4KQEAgLTI4ODMsNiArMjg5MSwxMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQ29sb3JDaG9vc2VyUHJv
eHkuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
VUlQcm9jZXNzXFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIgogCQkJCT4KIAkJCTwvRmls
ZT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145752</attachid>
            <date>2012-06-05 03:58:10 -0700</date>
            <delta_ts>2012-06-13 04:11:21 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-87495-20120605135941.patch</filename>
            <type>text/plain</type>
            <size>31515</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWIwNGVjMzI1N2NiMGM2
NTJkZDcxODRjOTI1YTM5OTM1MjMzZDllYi4uYjIzODI4MzlkMDkzMDcxYWJiMzk1MmE5YTUzM2Ni
M2FmNTg0YjU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEyLTA2LTA1ICBUaGlh
Z28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgorCisgICAgICAg
IFtXSzJdIENvbG9yIGNob29zZXIgQVBJIG1pc3NpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgQ29sb3JDaG9vc2VyIEFQSSB0byBXZWJLaXQy
LiBUaGlzIEFQSSBhbGxvd3MgdGhlCisgICAgICAgIGVtYmVkZGVyIHRvIGRlZmluZSBhIGN1c3Rv
bSBjb2xvciBwaWNrZXIgZm9yIDxpbnB1dCB0eXBlPSJjb2xvciI+LgorCisgICAgICAgIE9ubHkg
b25lIENvbG9yQ2hvb3NlciBjYW4gYmUgYWN0aXZlIGZvciBhIHBhZ2UgYXQgYSB0aW1lLiBBbHRo
b3VnaAorICAgICAgICB0aGUgaW1wbGVtZW50YXRpb24gZG9lc24ndCBub3QgYXNzdW1lIGEgbW9k
YWwgZGlhbG9nLCBubyBvdGhlcgorICAgICAgICBjb2xvciBjaG9vc2VyIHdpbGwgYmUgY3JlYXRl
ZCB1bnRpbCB0aGUgYWN0aXZlIG9uZSBpcyBjbG9zZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5w
cmk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChQYWdlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29sb3JDaG9v
c2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJDb2xvckNob29zZXJQcm94eSk6CisgICAgICAgIChDbGllbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXJQcm94eTo6Q2xpZW50Ojp+Q2xpZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyUHJveHk6On5XZWJDb2xvckNob29zZXJQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclByb3h5OjppbnZhbGlkYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyUHJveHk6OldlYkNvbG9yQ2hvb3NlclBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3dDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnNldENvbG9yQ2hvb3NlckNvbG9yKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjplbmRDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmRpZENob29zZUNvbG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
aWRFbmRDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnByb2Nl
c3NEaWRDcmFzaCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAoV2ViUGFnZVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2Vy
OjpXZWJDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6On5X
ZWJDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OmRpZENo
b29zZUNvbG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjpkaWRFbmRDaG9v
c2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjpkaXNjb25uZWN0RnJvbVBh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OnNldFNlbGVjdGVkQ29sb3Ip
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OmVuZENob29zZXIpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViQ29sb3JD
aG9vc2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpz
ZXRBY3RpdmVDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRFbmRD
b2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDaG9vc2VDb2xvcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YWN0aXZl
Q29sb3JDaG9vc2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisKIDIwMTItMDYtMDUgIE1h
cmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtd
W1dLMl0gSW1wbGVtZW50IEFQSSBmb3IgR2VvbG9jYXRpb24gcGVybWlzc2lvbiByZXF1ZXN0cyBp
biB0aGUgR1RLIHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggM2MxNTcxMDY3YWE0ZmFkMGMx
ZDMzZDgxNTdlZjViOGY4ODY2NWMxYi4uNDc5MDA4ODNhNTk4YjA5NGZmYTBjNWZmNDEwMzE3ZTBm
ODE2YmY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTM5Nyw2ICszOTcsNyBAQCBTRVQoV2Vi
S2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyLmNwcAogCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIu
Y3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5j
cHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAK
ICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBlMzQ1ZDkyZjI0OGM1OGZlNGQ3N2QwMTg0ZjJlOTU5
MGFmZWMzMTg5Li44ZmFjZmE3OWFkYzMzYTg1OGM5YTg5NDFhYmRhNDhkZTJlNDg2MGIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTc0Miw2ICs3NDIsNyBAQCB3ZWJraXQyX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3
YXJkTGlzdC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExp
c3QuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9yQ2hvb3NlclByb3h5Lmgg
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIFwKQEAgLTk4MSw2
ICs5ODIsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggXAogCVNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBcCiAJ
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNo
b29zZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNvbG9yQ2hvb3Nlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1Rhcmdl
dC5wcmkKaW5kZXggMjE2YWI1YjJmZmZjMzVlMmI5MjE1MTA2MjllNjg4MGY5NjU0NTExNS4uMWUx
OTJmNzhlYTNjZTUxYTRmMTcxNTM3ZDlkYTNmMmViMzM0MTY5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0y
MjYsNiArMjI2LDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJv
dmlkZXIuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHku
aCBcCiAgICAgVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5oIFwKKyAgICBVSVByb2Nlc3Mv
V2ViQ29sb3JDaG9vc2VyUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBcCiAgICAgVUlQcm9jZXNz
L1dlYkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmggXApAQCAtMzQwLDYgKzM0MSw3IEBAIEhFQURF
UlMgKz0gXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5o
IFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggXAor
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmggXAogICAgIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuaCBcCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuaCBcCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmggXApAQCAtNzAwLDYgKzcwMiw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbi5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bk1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAgXAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2Vy
LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVu
dC5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2Vy
LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCAwOGNkZDk0ZDVhZTI4Mzk4
NDEwY2UwOTgxYTA2YjdjOTE4YTEzZTJhLi5hNGQ2OTQyYjJlMGJkMGViMjE3MjRkYzZkYjY5NzE5
NWNiZjUwMmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTI3LDYg
KzI3LDcgQEAKICNkZWZpbmUgUGFnZUNsaWVudF9oCiAKICNpbmNsdWRlICJTaGFyZWFibGVCaXRt
YXAuaCIKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlBh
Z2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5LmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9BbHRlcm5hdGl2ZVRleHRDbGllbnQuaD4KQEAgLTYwLDYgKzYxLDkgQEAgY2xhc3MgV2Vi
R2VzdHVyZUV2ZW50OwogY2xhc3MgV2ViQ29udGV4dE1lbnVQcm94eTsKIGNsYXNzIFdlYkVkaXRD
b21tYW5kUHJveHk7CiBjbGFzcyBXZWJQb3B1cE1lbnVQcm94eTsKKyNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9DT0xPUikKK2NsYXNzIFdlYkNvbG9yQ2hvb3NlclByb3h5OworI2VuZGlmCiAKICNpZiBQ
TEFURk9STShXSU4pCiBzdHJ1Y3QgV2luZG93R2VvbWV0cnk7CkBAIC0xNjQsNiArMTY4LDEwIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0
ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSopID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V2ViQ29udGV4dE1lbnVQcm94eT4gY3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJv
eHkqKSA9IDA7CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8V2ViQ29sb3JDaG9vc2VyUHJveHk+IGNyZWF0ZUNvbG9yQ2hvb3NlclByb3h5KFdl
YlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgPSAwOworI2VuZGlmCisKICAgICB2
aXJ0dWFsIHZvaWQgc2V0RmluZEluZGljYXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBi
b29sIGZhZGVPdXQsIGJvb2wgYW5pbWF0ZSkgPSAwOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2
aXJ0dWFsIHZvaWQgZGlkSW5zdGFsbE9yVW5pbnN0YWxsUGFnZU92ZXJsYXkoYm9vbCkgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9yQ2hvb3NlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JDaG9vc2VyUHJveHkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hOTFkNjZlYTBkYTM1M2FkNjFjMTMzMjBiN2NhZjE1NjdjZGMxNTlkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9yQ2hvb3NlclByb3h5
LmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jw
b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgV2ViQ29sb3JDaG9vc2Vy
UHJveHlfaAorI2RlZmluZSBXZWJDb2xvckNob29zZXJQcm94eV9oCisKKyNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9DT0xPUikKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDb2xvcjsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3MgV2ViQ29s
b3JDaG9vc2VyUHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJDb2xvckNob29zZXJQcm94eT4g
eworcHVibGljOgorICAgIGNsYXNzIENsaWVudCB7CisgICAgcHJvdGVjdGVkOgorICAgICAgICB2
aXJ0dWFsIH5DbGllbnQoKSB7IH0KKworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB2b2lk
IGRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgPSAwOworICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkRW5kQ29sb3JDaG9vc2VyKCkgPSAwOworICAgIH07CisgICAgdmlydHVhbCB+
V2ViQ29sb3JDaG9vc2VyUHJveHkoKSB7IH0KKworICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgbV9j
bGllbnQgPSAwOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZW5kQ2hvb3NlcigpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpID0gMDsK
KworcHJvdGVjdGVkOgorICAgIFdlYkNvbG9yQ2hvb3NlclByb3h5KENsaWVudCogY2xpZW50KQor
ICAgICAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICB7CisgICAgfQorCisgICAgQ2xpZW50KiBt
X2NsaWVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KElOUFVUX1RZUEVfQ09MT1IpCisKKyNlbmRpZiAvLyBXZWJDb2xvckNob29zZXJQcm94eV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDJiNTM4ZTVkOGIw
NzlkOTI5MDg3NjI1MjJiYjkxMzliMjhhY2UwMjIuLjVlM2Q4MzI5OGU5NjlmZDU0NjQ3M2YxYTkw
ZjQ5MjVlN2ZjOGQ1ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwg
Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTM5NSw2ICszOTYsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsb3NlKCkK
ICAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CiAgICAgfQogCisjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgaWYgKG1fY29sb3JDaG9vc2VyKSB7CisgICAgICAg
IG1fY29sb3JDaG9vc2VyLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIG1fY29sb3JDaG9vc2VyID0g
bnVsbHB0cjsKKyAgICB9CisjZW5kaWYKKwogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICBt
X2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygp
OwogI2VuZGlmCkBAIC0yNjExLDYgKzI2MTksNTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om5lZWRU
b3VjaEV2ZW50cyhib29sIG5lZWRUb3VjaEV2ZW50cykKIH0KICNlbmRpZgogCisjaWYgRU5BQkxF
KElOUFVUX1RZUEVfQ09MT1IpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0NvbG9yQ2hvb3Nlcihj
b25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yKQoreworICAgIEFTU0VSVCghbV9jb2xv
ckNob29zZXIpOworCisgICAgbV9jb2xvckNob29zZXIgPSBtX3BhZ2VDbGllbnQtPmNyZWF0ZUNv
bG9yQ2hvb3NlclByb3h5KHRoaXMsIGluaXRpYWxDb2xvcik7Cit9CisKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpzZXRDb2xvckNob29zZXJDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCit7
CisgICAgQVNTRVJUKG1fY29sb3JDaG9vc2VyKTsKKworICAgIG1fY29sb3JDaG9vc2VyLT5zZXRT
ZWxlY3RlZENvbG9yKGNvbG9yKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmVuZENvbG9yQ2hv
b3NlcigpCit7CisgICAgQVNTRVJUKG1fY29sb3JDaG9vc2VyKTsKKworICAgIG1fY29sb3JDaG9v
c2VyLT5lbmRDaG9vc2VyKCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaG9vc2VDb2xv
cihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
RGlkQ2hvb3NlQ29sb3IoY29sb3IpLCBtX3BhZ2VJRCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5
OjpkaWRFbmRDb2xvckNob29zZXIoKQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBBU1NFUlQobV9jb2xvckNob29zZXIpOworCisgICAgbV9jb2xvckNob29z
ZXItPmludmFsaWRhdGUoKTsKKyAgICBtX2NvbG9yQ2hvb3NlciA9IG51bGxwdHI7CisKKyAgICBw
cm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZEVuZENvbG9yQ2hvb3NlcigpLCBt
X3BhZ2VJRCk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlUHJveHk6OmRpZERyYXcoKQogewog
ICAgIG1fdWlDbGllbnQuZGlkRHJhdyh0aGlzKTsKQEAgLTMzNjMsNiArMzQxNSwxMyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6cHJvY2Vzc0RpZENyYXNoKCkKICAgICAgICAgbV9vcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lciA9IG51bGxwdHI7CiAgICAgfQogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09M
T1IpCisgICAgaWYgKG1fY29sb3JDaG9vc2VyKSB7CisgICAgICAgIG1fY29sb3JDaG9vc2VyLT5p
bnZhbGlkYXRlKCk7CisgICAgICAgIG1fY29sb3JDaG9vc2VyID0gbnVsbHB0cjsKKyAgICB9Cisj
ZW5kaWYKKwogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICBtX2dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYTM3ZjVjYTNhZTJiNjdiOTY4N2Q3
NDY0MjRkZGQwZTM2ZTVlYzdhNy4uMjVjNzFhZTJiNTllMzJjOGM4ZGM4M2VmYzlmZDhlN2YzZThk
ZTJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDUsNiAr
NDUsNyBAQAogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIldLQmFzZS5o
IgogI2luY2x1ZGUgIldLUGFnZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXJQ
cm94eS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51SXRlbURhdGEuaCIKICNpbmNsdWRlICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJGaW5kQ2xpZW50LmgiCkBAIC01
OCw2ICs1OSw3IEBACiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHkuaCIKICNpbmNsdWRlICJX
ZWJSZXNvdXJjZUxvYWRDbGllbnQuaCIKICNpbmNsdWRlICJXZWJVSUNsaWVudC5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvQ29sb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hpdFRlc3RSZXN1bHQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU2Ny
ZWVuLmg+CkBAIC0yMTgsNyArMjIwLDEyIEBAIHByaXZhdGU6CiAgICAgQ2FsbGJhY2tGdW5jdGlv
biBtX2NhbGxiYWNrOwogfTsKIAotY2xhc3MgV2ViUGFnZVByb3h5IDogcHVibGljIEFQSU9iamVj
dCwgcHVibGljIFdlYlBvcHVwTWVudVByb3h5OjpDbGllbnQgeworY2xhc3MgV2ViUGFnZVByb3h5
CisgICAgOiBwdWJsaWMgQVBJT2JqZWN0CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisg
ICAgLCBwdWJsaWMgV2ViQ29sb3JDaG9vc2VyUHJveHk6OkNsaWVudAorI2VuZGlmCisgICAgLCBw
dWJsaWMgV2ViUG9wdXBNZW51UHJveHk6OkNsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVQYWdlOwogCkBAIC03NzgsNiArNzg1LDE0IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBuZWVkVG91Y2hFdmVudHMoYm9vbCk7CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQorICAgIHZvaWQgc2hvd0NvbG9yQ2hvb3Nlcihjb25zdCBXZWJD
b3JlOjpDb2xvciYpOworICAgIHZvaWQgc2V0Q29sb3JDaG9vc2VyQ29sb3IoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImKTsKKyAgICB2b2lkIGVuZENvbG9yQ2hvb3NlcigpOworICAgIHZvaWQgZGlkQ2hv
b3NlQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKyAgICB2b2lkIGRpZEVuZENvbG9yQ2hv
b3NlcigpOworI2VuZGlmCisKICAgICB2b2lkIGVkaXRvclN0YXRlQ2hhbmdlZChjb25zdCBFZGl0
b3JTdGF0ZSYpOwogCiAgICAgLy8gQmFjay9Gb3J3YXJkIGxpc3QgbWFuYWdlbWVudApAQCAtMTA1
MCw2ICsxMDY1LDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbmVlZFRvdWNoRXZlbnRzOwogICAg
IERlcXVlPFF1ZXVlZFRvdWNoRXZlbnRzPiBtX3RvdWNoRXZlbnRRdWV1ZTsKICNlbmRpZgorI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIFJlZlB0cjxXZWJDb2xvckNob29zZXJQcm94
eT4gbV9jb2xvckNob29zZXI7CisjZW5kaWYKIAogICAgIHVpbnQ2NF90IG1fcGFnZUlEOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCBkZTYwYTcxNjZmNTRhODE4OTEzNTBlMDc1NDI1YTNhOTgzZTNlMGUzLi42NWRjNWFmMmVj
MWIxYzY2NGU5MTUxYWU0ZjdhMzg1ZTM5ZmUzMjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTgzLDYgKzgzLDEyIEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgTmVlZFRvdWNoRXZlbnRzKGJvb2wgbmVlZFRv
dWNoRXZlbnRzKQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBT
aG93Q29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yIGluaXRpYWxDb2xvcik7CisgICAgU2V0Q29s
b3JDaG9vc2VyQ29sb3IoV2ViQ29yZTo6Q29sb3IgY29sb3IpOworICAgIEVuZENvbG9yQ2hvb3Nl
cigpOworI2VuZGlmCisKICAgICAjIFBvbGljeSBtZXNzYWdlcwogICAgIERlY2lkZVBvbGljeUZv
clJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5l
cklELCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSAt
PiAoYm9vbCByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QgcG9saWN5QWN0aW9uLCB1aW50
NjRfdCBkb3dubG9hZElEKQogICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odWlu
dDY0X3QgZnJhbWVJRCwgdWludDMyX3QgbmF2aWdhdGlvblR5cGUsIHVpbnQzMl90IG1vZGlmaWVy
cywgaW50MzJfdCBtb3VzZUJ1dHRvbiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVu
Y29kZXIgdXNlckRhdGEpIC0+IChib29sIHJlY2VpdmVkUG9saWN5QWN0aW9uLCB1aW50NjRfdCBw
b2xpY3lBY3Rpb24sIHVpbnQ2NF90IGRvd25sb2FkSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODExOTYxNDBlYzQ1Yzk1M2Jh
YTM1N2U5YmUwYjhiMDEyNTUwZGZmYy4uNzU3ZjYzMTBkNGE5MTg5YzQ3OTVjYmViMDI3MjVkMjJh
NzkxMjU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtODgzLDYgKzg4MywxMCBAQAogCQlEM0I5NDg0ODExRkY0QjY1MDAwMzJC
MzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQ
b3B1cE1lbnUuY3BwICovOyB9OwogCQlEM0I5NDg0OTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2Vh
cmNoUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi87
IH07CiAJCURGNThDNjM2MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFj
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREY1OEM2
MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMubW0gKi87IH07CisJ
CUUxMzFDRkE4MTU3RDFDOUEwMDJBNjZCMyAvKiBXZWJDb2xvckNob29zZXIuY3BwIGluIENvcHlG
aWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTMxQ0ZBNjE1N0QxQzlB
MDAyQTY2QjMgLyogV2ViQ29sb3JDaG9vc2VyLmNwcCAqLzsgfTsKKwkJRTEzMUNGQTkxNTdEMUM5
QTAwMkE2NkIzIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTMxQ0ZBNjE1N0QxQzlBMDAyQTY2QjMgLyogV2ViQ29s
b3JDaG9vc2VyLmNwcCAqLzsgfTsKKwkJRTEzMUNGQUExNTdEMUM5QTAwMkE2NkIzIC8qIFdlYkNv
bG9yQ2hvb3Nlci5oIGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMTMxQ0ZBNzE1N0QxQzlBMDAyQTY2QjMgLyogV2ViQ29sb3JDaG9vc2VyLmggKi87IH07
CisJCUUxMzFDRkFEMTU3RDFDRDcwMDJBNjZCMyAvKiBXZWJDb2xvckNob29zZXJQcm94eS5oIGlu
IENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTMxQ0ZBQzE1
N0QxQ0Q3MDAyQTY2QjMgLyogV2ViQ29sb3JDaG9vc2VyUHJveHkuaCAqLzsgfTsKIAkJRTEzM0ZE
OEExNDIzREQ3RjAwRkM3QkZCIC8qIFdlYktpdC5pY25zIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTMzRkQ4OTE0MjNERDdGMDBGQzdCRkIgLyogV2Vi
S2l0LmljbnMgKi87IH07CiAJCUUxMzRGMDE3MTJFQTVEMzMwMDRFQzU4RCAvKiBXS1ByaW50aW5n
Vmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEz
NEYwMTUxMkVBNUQxMTAwNEVDNThEIC8qIFdLUHJpbnRpbmdWaWV3LmggKi87IH07CiAJCUUxMzRG
MDFBMTJFQTVEOTkwMDRFQzU4RCAvKiBXS1ByaW50aW5nVmlldy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMzRGMDE5MTJFQTVEOTkwMDRFQzU4RCAv
KiBXS1ByaW50aW5nVmlldy5tbSAqLzsgfTsKQEAgLTk4OCw2ICs5OTIsOSBAQAogCQkJZmlsZXMg
PSAoCiAJCQkJQkNERTBBQkYxMzI3MjcwODAwMTI1OUZCIC8qIFBsdWdpblByb2Nlc3MuYXBwIGlu
IENvcHlGaWxlcyAqLywKIAkJCQkxQTUwREI2NjExMEEzRDU3MDAwRDNGRTUgLyogV2ViUHJvY2Vz
cy5hcHAgaW4gQ29weUZpbGVzICovLAorCQkJCUUxMzFDRkE4MTU3RDFDOUEwMDJBNjZCMyAvKiBX
ZWJDb2xvckNob29zZXIuY3BwIGluIENvcHlGaWxlcyAqLywKKwkJCQlFMTMxQ0ZBQTE1N0QxQzlB
MDAyQTY2QjMgLyogV2ViQ29sb3JDaG9vc2VyLmggaW4gQ29weUZpbGVzICovLAorCQkJCUUxMzFD
RkFEMTU3RDFDRDcwMDJBNjZCMyAvKiBXZWJDb2xvckNob29zZXJQcm94eS5oIGluIENvcHlGaWxl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKQEAgLTE5NDYsNiArMTk1Myw5IEBACiAJCUQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAv
KiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViU2VhcmNoUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGNThD
NjMxMTM3MUFDNTgwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZVdlYldoZWVsRXZlbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJREY1OEM2MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5hdGl2ZVdlYldo
ZWVsRXZlbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBO
YXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MTMxQ0ZBNjE1N0QxQzlBMDAyQTY2QjMgLyogV2ViQ29sb3JDaG9vc2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxMzFDRkE3MTU3RDFDOUEwMDJBNjZCMyAvKiBXZWJDb2xv
ckNob29zZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JDaG9v
c2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxMzFDRkFDMTU3RDFDRDcwMDJB
NjZCMyAvKiBXZWJDb2xvckNob29zZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBXZWJDb2xvckNob29zZXJQcm94eS5oOyBwYXRoID0gVUlQcm9jZXNzL1dlYkNvbG9y
Q2hvb3NlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJRTEzM0ZEODkx
NDIzREQ3RjAwRkM3QkZCIC8qIFdlYktpdC5pY25zICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UuaWNuczsgbmFtZSA9IFdlYktpdC5pY25zOyBw
YXRoID0gV2ViUHJvY2Vzcy9tYWMvV2ViS2l0LmljbnM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUxMzRGMDE1MTJFQTVEMTEwMDRFQzU4RCAvKiBXS1ByaW50aW5nVmlldy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1ByaW50aW5nVmlldy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMTM0RjAxOTEyRUE1RDk5MDA0RUM1OEQgLyogV0tQcmludGlu
Z1ZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1ByaW50
aW5nVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NjcsNiArMjc3Nyw4
IEBACiAJCQkJQ0VEQTEyREUxNTJDQ0FFODAwRDlFMDhEIC8qIFdlYkFsdGVybmF0aXZlVGV4dENs
aWVudC5oICovLAogCQkJCUJDMTExQTUzMTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJDaHJvbWVDbGll
bnQuY3BwICovLAogCQkJCUJDMDMyRDYwMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDaHJvbWVDbGll
bnQuaCAqLywKKwkJCQlFMTMxQ0ZBNjE1N0QxQzlBMDAyQTY2QjMgLyogV2ViQ29sb3JDaG9vc2Vy
LmNwcCAqLywKKwkJCQlFMTMxQ0ZBNzE1N0QxQzlBMDAyQTY2QjMgLyogV2ViQ29sb3JDaG9vc2Vy
LmggKi8sCiAJCQkJQkMxMTFBNTQxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkNvbnRleHRNZW51Q2xp
ZW50LmNwcCAqLywKIAkJCQlCQzAzMkQ2MjEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ29udGV4dE1l
bnVDbGllbnQuaCAqLywKIAkJCQlGNkEyNUZEQTEyQURDNkNDMDBEQzQwQ0MgLyogV2ViRGF0YWJh
c2VNYW5hZ2VyLmNwcCAqLywKQEAgLTI4NzksNiArMjg5MSw3IEBACiAJCQkJNTEyRTM1RjAxMzBC
NjM4QzAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4gKi8sCiAJCQkJQkM3MkJBMUIxMUU2NDkwNzAwMUVCNEVBIC8qIFdlYkJhY2tGb3J3YXJkTGlz
dC5jcHAgKi8sCiAJCQkJQkM3MkJBMUMxMUU2NDkwNzAwMUVCNEVBIC8qIFdlYkJhY2tGb3J3YXJk
TGlzdC5oICovLAorCQkJCUUxMzFDRkFDMTU3RDFDRDcwMDJBNjZCMyAvKiBXZWJDb2xvckNob29z
ZXJQcm94eS5oICovLAogCQkJCUJDNEE2MkE1MTQ3NDRFQzYwMDZDNjgxQSAvKiBXZWJDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcCAqLywKIAkJCQlCQzRBNjJBNjE0NzQ0RUM2MDA2QzY4MUEgLyog
V2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICovLAogCQkJCUJDQjlFMjQyMTEyMERBQ0EwMEEx
MzdFMCAvKiBXZWJDb250ZXh0LmNwcCAqLywKQEAgLTQ0NzgsNiArNDQ5MSw3IEBACiAJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJMUE2RkEzMTExMUUz
OTIxRTAwREIxMzcxIC8qIE1haW5NYWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTEzMUNGQTkx
NTdEMUM5QTAwMkE2NkIzIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBjMDZmMTFiMzY5NDFmNGZmNjBiODdmZWIzODAzYjAy
MjgyMDVjMmNhLi43MjlmYzExY2Y2YTRhNzhiZGJlYTk1N2IzNzQ4ZjhlNzI3N2U5NWQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSW5qZWN0
ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2Vy
TWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3QuaCIKKyNpbmNsdWRlICJX
ZWJDb2xvckNob29zZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNp
bmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xpZW50LmgiCkBA
IC01OTcsMTAgKzU5OCwxMiBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cGFpbnRDdXN0b21PdmVy
aGFuZ0FyZWEoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbgogfQogCiAjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCi1QYXNzT3duUHRyPENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21l
Q2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgQ29s
b3ImKQorUGFzc093blB0cjxDb2xvckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29s
b3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25zdCBDb2xvciYgaW5pdGlh
bENvbG9yKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgaWYgKG1fcGFnZS0+YWN0aXZlQ29sb3JDaG9vc2VyKCkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJDb2xvckNob29zZXIobV9wYWdlLCBj
bGllbnQsIGluaXRpYWxDb2xvcikpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45NzgzOGVkNGIwNzM3NGIxZWMzOWQ3MzMwZWI0NDUyNmNiMDAxYzQxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDb2xvckNob29zZXIuY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyLmgiCisKKyNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9DT0xPUikKKworI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5o
IgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yQ2hvb3Nl
ckNsaWVudC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK1dlYkNvbG9yQ2hvb3Nlcjo6V2ViQ29sb3JDaG9vc2VyKFdlYlBhZ2UqIHBhZ2UsIENv
bG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQorICAg
IDogbV9jb2xvckNob29zZXJDbGllbnQoY2xpZW50KQorICAgICwgbV9wYWdlKHBhZ2UpCit7Cisg
ICAgbV9wYWdlLT5zZXRBY3RpdmVDb2xvckNob29zZXIodGhpcyk7CisgICAgV2ViUHJvY2Vzczo6
c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dD
b2xvckNob29zZXIoaW5pdGlhbENvbG9yKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK1dlYkNv
bG9yQ2hvb3Nlcjo6fldlYkNvbG9yQ2hvb3NlcigpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fcGFnZS0+c2V0QWN0aXZlQ29sb3JDaG9vc2VyKDApOworfQor
Cit2b2lkIFdlYkNvbG9yQ2hvb3Nlcjo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9y
KQoreworICAgIG1fY29sb3JDaG9vc2VyQ2xpZW50LT5kaWRDaG9vc2VDb2xvcihjb2xvcik7Cit9
CisKK3ZvaWQgV2ViQ29sb3JDaG9vc2VyOjpkaWRFbmRDaG9vc2VyKCkKK3sKKyAgICBtX2NvbG9y
Q2hvb3NlckNsaWVudC0+ZGlkRW5kQ2hvb3NlcigpOworfQorCit2b2lkIFdlYkNvbG9yQ2hvb3Nl
cjo6ZGlzY29ubmVjdEZyb21QYWdlKCkKK3sKKyAgICBtX3BhZ2UgPSAwOworfQorCit2b2lkIFdl
YkNvbG9yQ2hvb3Nlcjo6c2V0U2VsZWN0ZWRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCit7Cisg
ICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYlByb2Nlc3M6OnNoYXJl
ZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRDb2xvckNo
b29zZXJDb2xvcihjb2xvciksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCit2b2lkIFdlYkNvbG9y
Q2hvb3Nlcjo6ZW5kQ2hvb3NlcigpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVy
bjsKKworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpFbmRDb2xvckNob29zZXIoKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVf
Q09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNvbG9yQ2hvb3Nlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDb2xvckNob29zZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZWZmOGRmZmQ3NTI2ZDdmYjQ0
NGIzOWIyZWVlZjQyNmI1MzMwNzJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuaApAQCAtMCwwICsxLDU4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBXZWJDb2xvckNob29zZXJfaAorI2RlZmluZSBXZWJD
b2xvckNob29zZXJfaAorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisKKyNpbmNsdWRl
IDxXZWJDb3JlL0NvbG9yQ2hvb3Nlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBD
b2xvcjsKK2NsYXNzIENvbG9yQ2hvb3NlckNsaWVudDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYkNvbG9yQ2hvb3NlciA6IHB1YmxpYyBXZWJD
b3JlOjpDb2xvckNob29zZXIgeworcHVibGljOgorICAgIFdlYkNvbG9yQ2hvb3NlcihXZWJQYWdl
KiwgV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsK
KyAgICB+V2ViQ29sb3JDaG9vc2VyKCk7CisKKyAgICB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0
IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdm9pZCBkaWRFbmRDaG9vc2VyKCk7CisgICAgdm9pZCBk
aXNjb25uZWN0RnJvbVBhZ2UoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9y
KGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGVuZENo
b29zZXIoKSBPVkVSUklERTsKKworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjpDb2xvckNob29zZXJD
bGllbnQqIG1fY29sb3JDaG9vc2VyQ2xpZW50OworICAgIFdlYlBhZ2UqIG1fcGFnZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09M
T1IpCisKKyNlbmRpZiAvLyBXZWJDb2xvckNob29zZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDZmMTgyN2NjMTc0OTE5NjBlNTY2YTZh
NmE3YWYzNzcyYzcyMThmMzQuLmFkMzY1NWJiMzUyYjcwNjFkMWIwODNhZDNjZDRhN2I3MWU2ODJm
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jw
b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNDcsNiArNDgsNyBAQAogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0u
aCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oIgogI2luY2x1ZGUgIldlYkNo
cm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3Nlci5oIgogI2luY2x1ZGUgIldl
YkNvbnRleHRNZW51LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVDbGllbnQuaCIKICNpbmNs
dWRlICJXZWJDb250ZXh0TWVzc2FnZXMuaCIKQEAgLTIwNiw2ICsyMDgsOSBAQCBXZWJQYWdlOjpX
ZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYg
cGFyYW1ldGVycykKICAgICAsIG1fdGFwSGlnaGxpZ2h0Q29udHJvbGxlcih0aGlzKQogI2VuZGlm
CiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICAsIG1fYWN0aXZlQ29s
b3JDaG9vc2VyKDApCisjZW5kaWYKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgLCBtX2dl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKHRoaXMpCiAjZW5kaWYKQEAgLTYzMSw2
ICs2MzYsMTMgQEAgdm9pZCBXZWJQYWdlOjpjbG9zZSgpCiAgICAgICAgIG1fYWN0aXZlT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXIgPSAwOwogICAgIH0KIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQorICAgIGlmIChtX2FjdGl2ZUNvbG9yQ2hvb3NlcikgeworICAgICAgICBtX2FjdGl2ZUNv
bG9yQ2hvb3Nlci0+ZGlzY29ubmVjdEZyb21QYWdlKCk7CisgICAgICAgIG1fYWN0aXZlQ29sb3JD
aG9vc2VyID0gMDsKKyAgICB9CisjZW5kaWYKKwogICAgIG1fc2FuZGJveEV4dGVuc2lvblRyYWNr
ZXIuaW52YWxpZGF0ZSgpOwogCiAgICAgbV91bmRlcmxheVBhZ2UgPSBudWxscHRyOwpAQCAtMjMx
MCw2ICsyMzIyLDIzIEBAIHZvaWQgV2ViUGFnZTo6c2V0QWN0aXZlUG9wdXBNZW51KFdlYlBvcHVw
TWVudSogbWVudSkKICAgICBtX2FjdGl2ZVBvcHVwTWVudSA9IG1lbnU7CiB9CiAKKyNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9DT0xPUikKK3ZvaWQgV2ViUGFnZTo6c2V0QWN0aXZlQ29sb3JDaG9vc2Vy
KFdlYkNvbG9yQ2hvb3NlciogY29sb3JDaG9vc2VyKQoreworICAgIG1fYWN0aXZlQ29sb3JDaG9v
c2VyID0gY29sb3JDaG9vc2VyOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZEVuZENvbG9yQ2hvb3Nl
cigpCit7CisgICAgbV9hY3RpdmVDb2xvckNob29zZXItPmRpZEVuZENob29zZXIoKTsKK30KKwor
dm9pZCBXZWJQYWdlOjpkaWRDaG9vc2VDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3Ip
Cit7CisgICAgbV9hY3RpdmVDb2xvckNob29zZXItPmRpZENob29zZUNvbG9yKGNvbG9yKTsKK30K
KyNlbmRpZgorCiB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
KFBhc3NSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI+IG9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyKQogewogICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBvcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCmluZGV4IDNiN2U2ZTY0ZmQ5Nzc2MjEyODJmNTMzMDk1NjRiODg4MDk4NjA5MTUuLjFl
ZDM5M2M2OWI1YWFlNDlmNzU2ZGFhN2I0OTllNjcyYWI4YWMzNmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTIyLDYgKzEyMiw3IEBAIGNsYXNz
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIGNsYXNzIFBhZ2VPdmVybGF5
OwogY2xhc3MgUGx1Z2luVmlldzsKIGNsYXNzIFNlc3Npb25TdGF0ZTsKK2NsYXNzIFdlYkNvbG9y
Q2hvb3NlcjsKIGNsYXNzIFdlYkNvbnRleHRNZW51OwogY2xhc3MgV2ViQ29udGV4dE1lbnVJdGVt
RGF0YTsKIGNsYXNzIFdlYkV2ZW50OwpAQCAtMjEzLDcgKzIxNCwxNCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc0luUmVkbygpIGNvbnN0IHsgcmV0dXJuIG1faXNJblJlZG87IH0KIAogICAgIHZvaWQg
c2V0QWN0aXZlUG9wdXBNZW51KFdlYlBvcHVwTWVudSopOwotICAgIAorCisjaWYgRU5BQkxFKElO
UFVUX1RZUEVfQ09MT1IpCisgICAgV2ViQ29sb3JDaG9vc2VyKiBhY3RpdmVDb2xvckNob29zZXIo
KSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZUNvbG9yQ2hvb3NlcjsgfQorICAgIHZvaWQgc2V0QWN0
aXZlQ29sb3JDaG9vc2VyKFdlYkNvbG9yQ2hvb3NlciopOworICAgIHZvaWQgZGlkQ2hvb3NlQ29s
b3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKyAgICB2b2lkIGRpZEVuZENvbG9yQ2hvb3Nlcigp
OworI2VuZGlmCisKICAgICBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciogYWN0aXZlT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXIoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZU9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyLmdldCgpOyB9CiAgICAgdm9pZCBzZXRBY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lcihQYXNzUmVmUHRyPFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyPik7CiAKQEAgLTc5NCw2
ICs4MDIsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIFJlZlB0
cjxXZWJDb250ZXh0TWVudT4gbV9jb250ZXh0TWVudTsKICNlbmRpZgorI2lmIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SKQorICAgIFdlYkNvbG9yQ2hvb3NlciogbV9hY3RpdmVDb2xvckNob29zZXI7
CisjZW5kaWYKICAgICBSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI+IG1fYWN0aXZl
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CiAgICAgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcj4gbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KaW5kZXggZjE0ZmNiNmM5MDE1ZGM5NmQyMTU0ZTkzM2RlOGZiZDY0MDE5ODc5
ZC4uZjYwMWNmNTFlMDY4NzA1YzMwZDFlZmUwNmI1OGEyNzY2MGM3YTJjNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
QEAgLTQ1LDYgKzQ1LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgewogICAgIEhpZ2hsaWdodFBv
dGVudGlhbEFjdGl2YXRpb24oV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIFdlYkNvcmU6OkludFNp
emUgYXJlYSkKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgRGlk
RW5kQ29sb3JDaG9vc2VyKCk7CisgICAgRGlkQ2hvb3NlQ29sb3IoV2ViQ29yZTo6Q29sb3IgY29s
b3IpOworI2VuZGlmCisKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBDb250ZXh0TWVu
dUhpZGRlbigpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LnZjcHJvaiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagppbmRleCBjMmZlZjA5
YzYzOTY5ZTRiYTRjYjExNDUxYjE0MDIwNzQwYjg4MjY1Li4wYTM4YzRiODIyYTgyNDc5OGZmOGM0
ZWUyZjNjZDI0ODliN2I2ZDBmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
Mi52Y3Byb2oKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCkBAIC0xODM4
LDYgKzE4MzgsMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViQ29sb3JDaG9vc2VyLmNw
cCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViQ29sb3JDaG9vc2VyLmgiCisJCQkJCT4KKwkJ
CQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdl
YkNvcmVTdXBwb3J0XFdlYkNvbnRleHRNZW51Q2xpZW50LmNwcCIKIAkJCQkJPgogCQkJCTwvRmls
ZT4KQEAgLTI4ODMsNiArMjg5MSwxMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQ29sb3JDaG9vc2VyUHJveHkuaCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNz
XFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147284</attachid>
            <date>2012-06-13 04:11:33 -0700</date>
            <delta_ts>2012-06-13 14:56:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87495-20120613141313.patch</filename>
            <type>text/plain</type>
            <size>31552</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTNmMDMwNzI4MDQwY2Ey
M2YxZTYxZGU2NWRjNDE5MjIxNDMzMGEwNi4uYzQyZDQzN2ZlMDI0MTgwM2I5NmU2NDFkYjllMWZh
YjRiNDVhMTQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEyLTA2LTA1ICBUaGlh
Z28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgorCisgICAgICAg
IFtXSzJdIENvbG9yIGNob29zZXIgQVBJIG1pc3NpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgQ29sb3JDaG9vc2VyIEFQSSB0byBXZWJLaXQy
LiBUaGlzIEFQSSBhbGxvd3MgdGhlCisgICAgICAgIGVtYmVkZGVyIHRvIGRlZmluZSBhIGN1c3Rv
bSBjb2xvciBwaWNrZXIgZm9yIDxpbnB1dCB0eXBlPSJjb2xvciI+LgorCisgICAgICAgIE9ubHkg
b25lIENvbG9yQ2hvb3NlciBjYW4gYmUgYWN0aXZlIGZvciBhIHBhZ2UgYXQgYSB0aW1lLiBBbHRo
b3VnaAorICAgICAgICB0aGUgaW1wbGVtZW50YXRpb24gZG9lc24ndCBub3QgYXNzdW1lIGEgbW9k
YWwgZGlhbG9nLCBubyBvdGhlcgorICAgICAgICBjb2xvciBjaG9vc2VyIHdpbGwgYmUgY3JlYXRl
ZCB1bnRpbCB0aGUgYWN0aXZlIG9uZSBpcyBjbG9zZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5w
cmk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChQYWdlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29sb3JDaG9v
c2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJDb2xvckNob29zZXJQcm94eSk6CisgICAgICAgIChDbGllbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXJQcm94eTo6Q2xpZW50Ojp+Q2xpZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyUHJveHk6On5XZWJDb2xvckNob29zZXJQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclByb3h5OjppbnZhbGlkYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyUHJveHk6OldlYkNvbG9yQ2hvb3NlclBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3dDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnNldENvbG9yQ2hvb3NlckNvbG9yKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjplbmRDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmRpZENob29zZUNvbG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
aWRFbmRDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnByb2Nl
c3NEaWRDcmFzaCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAoV2ViUGFnZVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2Vy
OjpXZWJDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6On5X
ZWJDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OmRpZENo
b29zZUNvbG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjpkaWRFbmRDaG9v
c2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjpkaXNjb25uZWN0RnJvbVBh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OnNldFNlbGVjdGVkQ29sb3Ip
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OmVuZENob29zZXIpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViQ29sb3JD
aG9vc2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpz
ZXRBY3RpdmVDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRFbmRD
b2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDaG9vc2VDb2xvcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YWN0aXZl
Q29sb3JDaG9vc2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisKIDIwMTItMDYtMTIgIE1P
UklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgU2hhZG93IFBzZXVk
byBJRCBzaG91bGQgYmUgYWJsZSB0byBuZXN0IHRvIHBvaW50IG5lc3RlZCBzaGFkb3cgRE9NLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0
Mi9DTWFrZUxpc3RzLnR4dAppbmRleCBmYjYxOGU3NTc4ZWIwNWZiMjFhODE3MjQwNTEyN2UzZGJh
YzYxMWU1Li5mYTczMjRlMTZjZDExMmFkMzEzNjZhZTZjNmVlMTkxYWEzYjFmZTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
TWFrZUxpc3RzLnR4dApAQCAtMzk2LDYgKzM5Niw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAg
ICBXZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCiAK
ICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKyAgICBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5jcHAKICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcAogICAgIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcAogICAgIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IDg1MWQ2MjY2YWVhNjUxOWM3ZTZlMTU1YzlmNzA4NTU4NGZhMzIyYzAuLmI0MGY4
NWI0ZDU0MGJhMDQ0ZjA1YjI3ZDY4NTI3ZGZhOTlhMjg3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtNzUwLDYgKzc1MCw3IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3Bw
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5oIFwKKwlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JDaG9vc2VyUHJveHkuaCBcCiAJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgXApAQCAtOTg5LDYgKzk5MCw4IEBAIHdlYmtp
dDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIFwKKwlTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5jcHAgXAorCVNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmgg
XAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1l
bnVDbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNvbnRleHRNZW51Q2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCAzY2Jl
OTFmNzhlMWY4ZjFmNjEyODRjMzU4OWQ0NjM3NzBiMjg2M2VlLi5jZmI5MWE4NGFhNjgzYjlmODE2
N2E0MjBjMTM5NDFlYzkyOTE5M2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQu
cHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTIyNiw2ICsyMjYsNyBAQCBI
RUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oIFwKICAgICBV
SVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIFwKICAgICBVSVByb2Nl
c3MvV2ViQmFja0ZvcndhcmRMaXN0LmggXAorICAgIFVJUHJvY2Vzcy9XZWJDb2xvckNob29zZXJQ
cm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIFwKICAg
ICBVSVByb2Nlc3MvV2ViQ29udGV4dC5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dENvbm5l
Y3Rpb25DbGllbnQuaCBcCkBAIC0zNDAsNiArMzQxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmggXAogICAgIFdlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCBcCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBcCisgICAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQuaCBcCkBAIC03MDEsNiArNzAzLDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcCBcCiAgICAg
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAgXAog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBcCisgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuY3BwIFwKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBcCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwIFwKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDYyMDU4ZmQ0OGI5M2ZmYTZhZDVkMGZjMmQyMzJhZmI1
NTEzMGM3Y2UuLjljNWRmZDY0ZTFkMDlkNWM1MWU2MzdlOWEzYWI5YTA2YWU2OGRiYTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmlu
ZSBQYWdlQ2xpZW50X2gKIAogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUg
IldlYkNvbG9yQ2hvb3NlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5j
bHVkZSAiV2ViUG9wdXBNZW51UHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FsdGVybmF0aXZl
VGV4dENsaWVudC5oPgpAQCAtNjAsNiArNjEsOSBAQCBjbGFzcyBXZWJHZXN0dXJlRXZlbnQ7CiBj
bGFzcyBXZWJDb250ZXh0TWVudVByb3h5OwogY2xhc3MgV2ViRWRpdENvbW1hbmRQcm94eTsKIGNs
YXNzIFdlYlBvcHVwTWVudVByb3h5OworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorY2xh
c3MgV2ViQ29sb3JDaG9vc2VyUHJveHk7CisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKIHN0
cnVjdCBXaW5kb3dHZW9tZXRyeTsKQEAgLTE2OCw2ICsxNzIsMTAgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHko
V2ViUGFnZVByb3h5KikgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVu
dVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSopID0gMDsKIAorI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb2xv
ckNob29zZXJQcm94eT4gY3JlYXRlQ29sb3JDaG9vc2VyUHJveHkoV2ViUGFnZVByb3h5KiwgY29u
c3QgV2ViQ29yZTo6Q29sb3ImKSA9IDA7CisjZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBzZXRG
aW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgZmFkZU91dCwgYm9v
bCBhbmltYXRlKSA9IDA7CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZpcnR1YWwgdm9pZCBkaWRJ
bnN0YWxsT3JVbmluc3RhbGxQYWdlT3ZlcmxheShib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JDaG9vc2VyUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb2xvckNob29zZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5MWQ2NmVh
MGRhMzUzYWQ2MWMxMzMyMGI3Y2FmMTU2N2NkYzE1OWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JDaG9vc2VyUHJveHkuaApAQCAtMCwwICsxLDY3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBXZWJDb2xvckNob29zZXJQcm94eV9oCisjZGVmaW5l
IFdlYkNvbG9yQ2hvb3NlclByb3h5X2gKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQor
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENvbG9yOworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBXZWJDb2xvckNob29zZXJQcm94eSA6
IHB1YmxpYyBSZWZDb3VudGVkPFdlYkNvbG9yQ2hvb3NlclByb3h5PiB7CitwdWJsaWM6CisgICAg
Y2xhc3MgQ2xpZW50IHsKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZpcnR1YWwgfkNsaWVudCgp
IHsgfQorCisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlQ29sb3Io
Y29uc3QgV2ViQ29yZTo6Q29sb3ImKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRD
b2xvckNob29zZXIoKSA9IDA7CisgICAgfTsKKyAgICB2aXJ0dWFsIH5XZWJDb2xvckNob29zZXJQ
cm94eSgpIHsgfQorCisgICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBtX2NsaWVudCA9IDA7IH0KKwor
ICAgIHZpcnR1YWwgdm9pZCBlbmRDaG9vc2VyKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRT
ZWxlY3RlZENvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgPSAwOworCitwcm90ZWN0ZWQ6Cisg
ICAgV2ViQ29sb3JDaG9vc2VyUHJveHkoQ2xpZW50KiBjbGllbnQpCisgICAgICAgIDogbV9jbGll
bnQoY2xpZW50KQorICAgIHsKKyAgICB9CisKKyAgICBDbGllbnQqIG1fY2xpZW50OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xP
UikKKworI2VuZGlmIC8vIFdlYkNvbG9yQ2hvb3NlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYTg0YzQ2NzkzMWU1YTI3N2ZjMTg3ZDdmMjFj
NjY5YTY3OWFjNmZkOC4uMDY2YTE0YzY5N2E4ZGVkMWIwZjkzYjZhMTlmNGNhYzQzNzgyMTlmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEsNSArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzk1
LDYgKzM5NiwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xvc2UoKQogICAgICAgICBtX29wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyID0gMDsKICAgICB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9D
T0xPUikKKyAgICBpZiAobV9jb2xvckNob29zZXIpIHsKKyAgICAgICAgbV9jb2xvckNob29zZXIt
PmludmFsaWRhdGUoKTsKKyAgICAgICAgbV9jb2xvckNob29zZXIgPSBudWxscHRyOworICAgIH0K
KyNlbmRpZgorCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIG1fZ2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7CiAjZW5kaWYKQEAgLTI2
MTEsNiArMjYxOSw1MCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bmVlZFRvdWNoRXZlbnRzKGJvb2wg
bmVlZFRvdWNoRXZlbnRzKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xP
UikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzaG93Q29sb3JDaG9vc2VyKGNvbnN0IFdlYkNvcmU6OkNv
bG9yJiBpbml0aWFsQ29sb3IpCit7CisgICAgQVNTRVJUKCFtX2NvbG9yQ2hvb3Nlcik7CisKKyAg
ICBtX2NvbG9yQ2hvb3NlciA9IG1fcGFnZUNsaWVudC0+Y3JlYXRlQ29sb3JDaG9vc2VyUHJveHko
dGhpcywgaW5pdGlhbENvbG9yKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnNldENvbG9yQ2hv
b3NlckNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKK3sKKyAgICBBU1NFUlQobV9j
b2xvckNob29zZXIpOworCisgICAgbV9jb2xvckNob29zZXItPnNldFNlbGVjdGVkQ29sb3IoY29s
b3IpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6ZW5kQ29sb3JDaG9vc2VyKCkKK3sKKyAgICBB
U1NFUlQobV9jb2xvckNob29zZXIpOworCisgICAgbV9jb2xvckNob29zZXItPmVuZENob29zZXIo
KTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6
OkNvbG9yJiBjb2xvcikKK3sKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRDaG9vc2VDb2xvcihj
b2xvciksIG1fcGFnZUlEKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmRpZEVuZENvbG9yQ2hv
b3NlcigpCit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEFT
U0VSVChtX2NvbG9yQ2hvb3Nlcik7CisKKyAgICBtX2NvbG9yQ2hvb3Nlci0+aW52YWxpZGF0ZSgp
OworICAgIG1fY29sb3JDaG9vc2VyID0gbnVsbHB0cjsKKworICAgIHByb2Nlc3MoKS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6RGlkRW5kQ29sb3JDaG9vc2VyKCksIG1fcGFnZUlEKTsKK30KKyNl
bmRpZgorCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRHJhdygpCiB7CiAgICAgbV91aUNsaWVudC5k
aWREcmF3KHRoaXMpOwpAQCAtMzM2Myw2ICszNDE1LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpw
cm9jZXNzRGlkQ3Jhc2goKQogICAgICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVs
bHB0cjsKICAgICB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBpZiAobV9j
b2xvckNob29zZXIpIHsKKyAgICAgICAgbV9jb2xvckNob29zZXItPmludmFsaWRhdGUoKTsKKyAg
ICAgICAgbV9jb2xvckNob29zZXIgPSBudWxscHRyOworICAgIH0KKyNlbmRpZgorCiAjaWYgRU5B
QkxFKEdFT0xPQ0FUSU9OKQogICAgIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAppbmRleCA2ZDk4NTk4ZmZlYzQ4ZGNjZmE3YjVkN2JhOWVhMTNiMzE1MzZj
YWI4Li45MjgwM2RjNmEwMWFjZGIxOGJjZTJmMjRlZGZmZDgyNTZjNzhlOWEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVk
ZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVkZSAiV0tQ
YWdlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3NlclByb3h5LmgiCiAjaW5jbHVk
ZSAiV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgogI2luY2x1ZGUgIldlYkZpbmRDbGllbnQuaCIKQEAgLTU4LDYgKzU5LDcgQEAKICNp
bmNsdWRlICJXZWJQb3B1cE1lbnVQcm94eS5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZENs
aWVudC5oIgogI2luY2x1ZGUgIldlYlVJQ2xpZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Db2xv
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSGl0VGVzdFJlc3VsdC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KQEAgLTIxOSw3
ICsyMjEsMTIgQEAgcHJpdmF0ZToKICAgICBDYWxsYmFja0Z1bmN0aW9uIG1fY2FsbGJhY2s7CiB9
OwogCi1jbGFzcyBXZWJQYWdlUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0LCBwdWJsaWMgV2ViUG9w
dXBNZW51UHJveHk6OkNsaWVudCB7CitjbGFzcyBXZWJQYWdlUHJveHkKKyAgICA6IHB1YmxpYyBB
UElPYmplY3QKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICAsIHB1YmxpYyBXZWJD
b2xvckNob29zZXJQcm94eTo6Q2xpZW50CisjZW5kaWYKKyAgICAsIHB1YmxpYyBXZWJQb3B1cE1l
bnVQcm94eTo6Q2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBl
ID0gVHlwZVBhZ2U7CiAKQEAgLTc4Myw2ICs3OTAsMTQgQEAgcHJpdmF0ZToKICAgICB2b2lkIG5l
ZWRUb3VjaEV2ZW50cyhib29sKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09M
T1IpCisgICAgdm9pZCBzaG93Q29sb3JDaG9vc2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7Cisg
ICAgdm9pZCBzZXRDb2xvckNob29zZXJDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpOworICAg
IHZvaWQgZW5kQ29sb3JDaG9vc2VyKCk7CisgICAgdm9pZCBkaWRDaG9vc2VDb2xvcihjb25zdCBX
ZWJDb3JlOjpDb2xvciYpOworICAgIHZvaWQgZGlkRW5kQ29sb3JDaG9vc2VyKCk7CisjZW5kaWYK
KwogICAgIHZvaWQgZWRpdG9yU3RhdGVDaGFuZ2VkKGNvbnN0IEVkaXRvclN0YXRlJik7CiAKICAg
ICAvLyBCYWNrL0ZvcndhcmQgbGlzdCBtYW5hZ2VtZW50CkBAIC0xMDU1LDYgKzEwNzAsOSBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9uZWVkVG91Y2hFdmVudHM7CiAgICAgRGVxdWU8UXVldWVkVG91
Y2hFdmVudHM+IG1fdG91Y2hFdmVudFF1ZXVlOwogI2VuZGlmCisjaWYgRU5BQkxFKElOUFVUX1RZ
UEVfQ09MT1IpCisgICAgUmVmUHRyPFdlYkNvbG9yQ2hvb3NlclByb3h5PiBtX2NvbG9yQ2hvb3Nl
cjsKKyNlbmRpZgogCiAgICAgdWludDY0X3QgbV9wYWdlSUQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGRlNjBhNzE2NmY1
NGE4MTg5MTM1MGUwNzU0MjVhM2E5ODNlM2UwZTMuLjY1ZGM1YWYyZWMxYjFjNjY0ZTkxNTFhZTRm
N2EzODVlMzlmZTMyODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtODMsNiArODMsMTIgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZVByb3h5IHsKICAgICBOZWVkVG91Y2hFdmVudHMoYm9vbCBuZWVkVG91Y2hFdmVudHMpCiAjZW5k
aWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIFNob3dDb2xvckNob29zZXIo
V2ViQ29yZTo6Q29sb3IgaW5pdGlhbENvbG9yKTsKKyAgICBTZXRDb2xvckNob29zZXJDb2xvcihX
ZWJDb3JlOjpDb2xvciBjb2xvcik7CisgICAgRW5kQ29sb3JDaG9vc2VyKCk7CisjZW5kaWYKKwog
ICAgICMgUG9saWN5IG1lc3NhZ2VzCiAgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0
X3QgZnJhbWVJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpIC0+IChib29sIHJlY2VpdmVk
UG9saWN5QWN0aW9uLCB1aW50NjRfdCBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IGRvd25sb2FkSUQp
CiAgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1
aW50MzJfdCBuYXZpZ2F0aW9uVHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90IG1vdXNl
QnV0dG9uLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgdWludDY0X3QgbGlzdGVu
ZXJJRCwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkg
LT4gKGJvb2wgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90IHBvbGljeUFjdGlvbiwgdWlu
dDY0X3QgZG93bmxvYWRJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAzZjk4ZTliNDhmOGNmZDE4ZTQxMDZlMDM1MTc2OTI1ZTQ4
ZjYyMmI3Li5jNGI3ZmQxZDBlMzg2M2EzY2E0OTcyM2JjMzM1ODBlMTcxNGIwNGM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04
ODUsNiArODg1LDEwIEBACiAJCUQzQjk0ODQ4MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQ
b3B1cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi87
IH07CiAJCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQ1MTFG
RjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKIAkJREY1OEM2MzYx
MzcxQUNBMDAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERjU4QzYzNTEzNzFBQ0EwMDBGOUEz
N0MgLyogTmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbSAqLzsgfTsKKwkJRTEzMUNGQTgxNTdEMUM5
QTAwMkE2NkIzIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgaW4gQ29weUZpbGVzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMzFDRkE2MTU3RDFDOUEwMDJBNjZCMyAvKiBXZWJD
b2xvckNob29zZXIuY3BwICovOyB9OworCQlFMTMxQ0ZBOTE1N0QxQzlBMDAyQTY2QjMgLyogV2Vi
Q29sb3JDaG9vc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxMzFDRkE2MTU3RDFDOUEwMDJBNjZCMyAvKiBXZWJDb2xvckNob29zZXIuY3BwICov
OyB9OworCQlFMTMxQ0ZBQTE1N0QxQzlBMDAyQTY2QjMgLyogV2ViQ29sb3JDaG9vc2VyLmggaW4g
Q29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMzFDRkE3MTU3
RDFDOUEwMDJBNjZCMyAvKiBXZWJDb2xvckNob29zZXIuaCAqLzsgfTsKKwkJRTEzMUNGQUQxNTdE
MUNENzAwMkE2NkIzIC8qIFdlYkNvbG9yQ2hvb3NlclByb3h5LmggaW4gQ29weUZpbGVzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMzFDRkFDMTU3RDFDRDcwMDJBNjZCMyAv
KiBXZWJDb2xvckNob29zZXJQcm94eS5oICovOyB9OwogCQlFMTMzRkQ4QTE0MjNERDdGMDBGQzdC
RkIgLyogV2ViS2l0LmljbnMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxMzNGRDg5MTQyM0REN0YwMEZDN0JGQiAvKiBXZWJLaXQuaWNucyAqLzsgfTsK
IAkJRTEzNEYwMTcxMkVBNUQzMzAwNEVDNThEIC8qIFdLUHJpbnRpbmdWaWV3LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTM0RjAxNTEyRUE1RDExMDA0
RUM1OEQgLyogV0tQcmludGluZ1ZpZXcuaCAqLzsgfTsKIAkJRTEzNEYwMUExMkVBNUQ5OTAwNEVD
NThEIC8qIFdLUHJpbnRpbmdWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTEzNEYwMTkxMkVBNUQ5OTAwNEVDNThEIC8qIFdLUHJpbnRpbmdWaWV3
Lm1tICovOyB9OwpAQCAtOTkxLDYgKzk5NSw5IEBACiAJCQkJQkNERTBBQkYxMzI3MjcwODAwMTI1
OUZCIC8qIFBsdWdpblByb2Nlc3MuYXBwIGluIENvcHlGaWxlcyAqLywKIAkJCQkxQTUwREI2NjEx
MEEzRDU3MDAwRDNGRTUgLyogV2ViUHJvY2Vzcy5hcHAgaW4gQ29weUZpbGVzICovLAogCQkJCTFB
MkE0QjAwMTU4NjkzOTIwMDkwQzlFOSAvKiBDb2xvclNwYWNlRGF0YS5oIGluIENvcHlGaWxlcyAq
LywKKwkJCQlFMTMxQ0ZBODE1N0QxQzlBMDAyQTY2QjMgLyogV2ViQ29sb3JDaG9vc2VyLmNwcCBp
biBDb3B5RmlsZXMgKi8sCisJCQkJRTEzMUNGQUExNTdEMUM5QTAwMkE2NkIzIC8qIFdlYkNvbG9y
Q2hvb3Nlci5oIGluIENvcHlGaWxlcyAqLywKKwkJCQlFMTMxQ0ZBRDE1N0QxQ0Q3MDAyQTY2QjMg
LyogV2ViQ29sb3JDaG9vc2VyUHJveHkuaCBpbiBDb3B5RmlsZXMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xOTUxLDYgKzE5
NTgsOSBAQAogCQlEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlYXJjaFBvcHVwTWVudS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERjU4QzYzMTEzNzFBQzU4MDBGOUEzN0Mg
LyogTmF0aXZlV2ViV2hlZWxFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOYXRpdmVXZWJXaGVlbEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURG
NThDNjM1MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmF0aXZlV2ViV2hlZWxFdmVudE1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTEzMUNGQTYxNTdEMUM5QTAwMkE2
NkIzIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJDb2xvckNob29zZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMTMxQ0ZBNzE1N0QxQzlBMDAyQTY2QjMgLyogV2ViQ29sb3JDaG9vc2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMTMxQ0ZBQzE1N0QxQ0Q3MDAyQTY2QjMgLyogV2ViQ29sb3JDaG9v
c2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQ29sb3JDaG9v
c2VyUHJveHkuaDsgcGF0aCA9IFVJUHJvY2Vzcy9XZWJDb2xvckNob29zZXJQcm94eS5oOyBzb3Vy
Y2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUUxMzNGRDg5MTQyM0REN0YwMEZDN0JGQiAvKiBX
ZWJLaXQuaWNucyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IGltYWdlLmljbnM7IG5hbWUgPSBXZWJLaXQuaWNuczsgcGF0aCA9IFdlYlByb2Nlc3MvbWFj
L1dlYktpdC5pY25zOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTM0RjAxNTEyRUE1
RDExMDA0RUM1OEQgLyogV0tQcmludGluZ1ZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tQcmludGluZ1ZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTEzNEYwMTkxMkVBNUQ5OTAwNEVDNThEIC8qIFdLUHJpbnRpbmdWaWV3Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tQcmludGluZ1ZpZXcubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzcyLDYgKzI3ODIsOCBAQAogCQkJCUNFREExMkRFMTUy
Q0NBRTgwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCAqLywKIAkJCQlCQzEx
MUE1MzExMkY0RkJCMDAzMzdCQUIgLyogV2ViQ2hyb21lQ2xpZW50LmNwcCAqLywKIAkJCQlCQzAz
MkQ2MDEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ2hyb21lQ2xpZW50LmggKi8sCisJCQkJRTEzMUNG
QTYxNTdEMUM5QTAwMkE2NkIzIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi8sCisJCQkJRTEzMUNG
QTcxNTdEMUM5QTAwMkE2NkIzIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovLAogCQkJCUJDMTExQTU0
MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5jcHAgKi8sCiAJCQkJQkMw
MzJENjIxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50LmggKi8sCiAJCQkJ
RjZBMjVGREExMkFEQzZDQzAwREM0MENDIC8qIFdlYkRhdGFiYXNlTWFuYWdlci5jcHAgKi8sCkBA
IC0yODg0LDYgKzI4OTYsNyBAQAogCQkJCTUxMkUzNUYwMTMwQjYzOEMwMEFCRDE5QSAvKiBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUJDNzJCQTFC
MTFFNjQ5MDcwMDFFQjRFQSAvKiBXZWJCYWNrRm9yd2FyZExpc3QuY3BwICovLAogCQkJCUJDNzJC
QTFDMTFFNjQ5MDcwMDFFQjRFQSAvKiBXZWJCYWNrRm9yd2FyZExpc3QuaCAqLywKKwkJCQlFMTMx
Q0ZBQzE1N0QxQ0Q3MDAyQTY2QjMgLyogV2ViQ29sb3JDaG9vc2VyUHJveHkuaCAqLywKIAkJCQlC
QzRBNjJBNTE0NzQ0RUM2MDA2QzY4MUEgLyogV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAg
Ki8sCiAJCQkJQkM0QTYyQTYxNDc0NEVDNjAwNkM2ODFBIC8qIFdlYkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaCAqLywKIAkJCQlCQ0I5RTI0MjExMjBEQUNBMDBBMTM3RTAgLyogV2ViQ29udGV4dC5j
cHAgKi8sCkBAIC00NDg1LDYgKzQ0OTgsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4
MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTFBNkZBMzExMTFFMzkyMUUwMERCMTM3MSAvKiBNYWlu
TWFjLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxMzFDRkE5MTU3RDFDOUEwMDJBNjZCMyAvKiBX
ZWJDb2xvckNob29zZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
aW5kZXggYzA2ZjExYjM2OTQxZjRmZjYwYjg3ZmViMzgwM2IwMjI4MjA1YzJjYS4uNzI5ZmMxMWNm
NmE0YTc4YmRiZWE5NTdiMzc0OGY4ZTcyNzdlOTVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFj
dGlvbi5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCIKICNp
bmNsdWRlICJMYXllclRyZWVIb3N0LmgiCisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyLmgiCiAj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIK
ICNpbmNsdWRlICJXZWJGcmFtZUxvYWRlckNsaWVudC5oIgpAQCAtNTk3LDEwICs1OTgsMTIgQEAg
Ym9vbCBXZWJDaHJvbWVDbGllbnQ6OnBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhKEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgSW4KIH0KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
KQotUGFzc093blB0cjxDb2xvckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JD
aG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9yJikKK1Bhc3NPd25QdHI8Q29s
b3JDaG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29z
ZXJDbGllbnQqIGNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKIHsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChtX3BhZ2UtPmFjdGl2
ZUNvbG9yQ2hvb3NlcigpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgV2ViQ29sb3JDaG9vc2VyKG1fcGFnZSwgY2xpZW50LCBpbml0aWFsQ29sb3Ip
KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTc4Mzhl
ZDRiMDczNzRiMWVjMzlkNzMzMGViNDQ1MjZjYjAwMWM0MQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmNw
cApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBv
cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYkNvbG9yQ2hvb3Nlci5oIgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Ip
CisKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQYWdl
LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9j
ZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Db2xvckNob29zZXJDbGllbnQuaD4KKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJDb2xvckNob29z
ZXI6OldlYkNvbG9yQ2hvb3NlcihXZWJQYWdlKiBwYWdlLCBDb2xvckNob29zZXJDbGllbnQqIGNs
aWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKKyAgICA6IG1fY29sb3JDaG9vc2VyQ2xp
ZW50KGNsaWVudCkKKyAgICAsIG1fcGFnZShwYWdlKQoreworICAgIG1fcGFnZS0+c2V0QWN0aXZl
Q29sb3JDaG9vc2VyKHRoaXMpOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93Q29sb3JDaG9vc2VyKGluaXRpYWxD
b2xvciksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCitXZWJDb2xvckNob29zZXI6On5XZWJDb2xv
ckNob29zZXIoKQoreworICAgIGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X3BhZ2UtPnNldEFjdGl2ZUNvbG9yQ2hvb3NlcigwKTsKK30KKwordm9pZCBXZWJDb2xvckNob29z
ZXI6OmRpZENob29zZUNvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICBtX2NvbG9yQ2hv
b3NlckNsaWVudC0+ZGlkQ2hvb3NlQ29sb3IoY29sb3IpOworfQorCit2b2lkIFdlYkNvbG9yQ2hv
b3Nlcjo6ZGlkRW5kQ2hvb3NlcigpCit7CisgICAgbV9jb2xvckNob29zZXJDbGllbnQtPmRpZEVu
ZENob29zZXIoKTsKK30KKwordm9pZCBXZWJDb2xvckNob29zZXI6OmRpc2Nvbm5lY3RGcm9tUGFn
ZSgpCit7CisgICAgbV9wYWdlID0gMDsKK30KKwordm9pZCBXZWJDb2xvckNob29zZXI6OnNldFNl
bGVjdGVkQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIGlmICghbV9wYWdlKQorICAg
ICAgICByZXR1cm47CisKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0Q29sb3JDaG9vc2VyQ29sb3IoY29sb3IpLCBt
X3BhZ2UtPnBhZ2VJRCgpKTsKK30KKwordm9pZCBXZWJDb2xvckNob29zZXI6OmVuZENob29zZXIo
KQoreworICAgIGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJQcm9jZXNz
OjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RW5k
Q29sb3JDaG9vc2VyKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9v
c2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmVmZjhkZmZkNzUyNmQ3ZmI0NDRiMzliMmVlZWY0MjZiNTMzMDcy
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNp
Zm5kZWYgV2ViQ29sb3JDaG9vc2VyX2gKKyNkZWZpbmUgV2ViQ29sb3JDaG9vc2VyX2gKKworI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorCisjaW5jbHVkZSA8V2ViQ29yZS9Db2xvckNob29z
ZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ29sb3I7CitjbGFzcyBDb2xvckNo
b29zZXJDbGllbnQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOwor
CitjbGFzcyBXZWJDb2xvckNob29zZXIgOiBwdWJsaWMgV2ViQ29yZTo6Q29sb3JDaG9vc2VyIHsK
K3B1YmxpYzoKKyAgICBXZWJDb2xvckNob29zZXIoV2ViUGFnZSosIFdlYkNvcmU6OkNvbG9yQ2hv
b3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgfldlYkNvbG9yQ2hvb3Nl
cigpOworCisgICAgdm9pZCBkaWRDaG9vc2VDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpOwor
ICAgIHZvaWQgZGlkRW5kQ2hvb3NlcigpOworICAgIHZvaWQgZGlzY29ubmVjdEZyb21QYWdlKCk7
CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xv
ciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBlbmRDaG9vc2VyKCkgT1ZFUlJJREU7CisK
K3ByaXZhdGU6CisgICAgV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiBtX2NvbG9yQ2hvb3Nl
ckNsaWVudDsKKyAgICBXZWJQYWdlKiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorCisjZW5kaWYgLy8gV2Vi
Q29sb3JDaG9vc2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCA3ZTM2MjNjNTQ0ZjUxM2ZjYjRkMDkzM2M2MDU3N2Q0MDA5ZWRlNTUwLi45
N2ViMWIwNmU4Zjc2YjEyNWI2ODcxNTRhZGQyZDRlYzkwNmVhMWQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ3LDYgKzQ4LDcg
QEAKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCiAjaW5jbHVkZSAiV2ViQmFj
a0ZvcndhcmRMaXN0UHJveHkuaCIKICNpbmNsdWRlICJXZWJDaHJvbWVDbGllbnQuaCIKKyNpbmNs
dWRlICJXZWJDb2xvckNob29zZXIuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudS5oIgogI2lu
Y2x1ZGUgIldlYkNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lc3Nh
Z2VzLmgiCkBAIC0yMDYsNiArMjA4LDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdl
SUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgLCBt
X3RhcEhpZ2hsaWdodENvbnRyb2xsZXIodGhpcykKICNlbmRpZgogI2VuZGlmCisjaWYgRU5BQkxF
KElOUFVUX1RZUEVfQ09MT1IpCisgICAgLCBtX2FjdGl2ZUNvbG9yQ2hvb3NlcigwKQorI2VuZGlm
CiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgICwgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcih0aGlzKQogI2VuZGlmCkBAIC02MzEsNiArNjM2LDEzIEBAIHZvaWQgV2Vi
UGFnZTo6Y2xvc2UoKQogICAgICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0g
MDsKICAgICB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBpZiAobV9hY3Rp
dmVDb2xvckNob29zZXIpIHsKKyAgICAgICAgbV9hY3RpdmVDb2xvckNob29zZXItPmRpc2Nvbm5l
Y3RGcm9tUGFnZSgpOworICAgICAgICBtX2FjdGl2ZUNvbG9yQ2hvb3NlciA9IDA7CisgICAgfQor
I2VuZGlmCisKICAgICBtX3NhbmRib3hFeHRlbnNpb25UcmFja2VyLmludmFsaWRhdGUoKTsKIAog
ICAgIG1fdW5kZXJsYXlQYWdlID0gbnVsbHB0cjsKQEAgLTIzMTQsNiArMjMyNiwyMyBAQCB2b2lk
IFdlYlBhZ2U6OnNldEFjdGl2ZVBvcHVwTWVudShXZWJQb3B1cE1lbnUqIG1lbnUpCiAgICAgbV9h
Y3RpdmVQb3B1cE1lbnUgPSBtZW51OwogfQogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Ip
Cit2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZUNvbG9yQ2hvb3NlcihXZWJDb2xvckNob29zZXIqIGNv
bG9yQ2hvb3NlcikKK3sKKyAgICBtX2FjdGl2ZUNvbG9yQ2hvb3NlciA9IGNvbG9yQ2hvb3NlcjsK
K30KKwordm9pZCBXZWJQYWdlOjpkaWRFbmRDb2xvckNob29zZXIoKQoreworICAgIG1fYWN0aXZl
Q29sb3JDaG9vc2VyLT5kaWRFbmRDaG9vc2VyKCk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6ZGlkQ2hv
b3NlQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQoreworICAgIG1fYWN0aXZlQ29s
b3JDaG9vc2VyLT5kaWRDaG9vc2VDb2xvcihjb2xvcik7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQ
YWdlOjpzZXRBY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcihQYXNzUmVmUHRyPFdlYk9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyPiBvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikKIHsKICAgICBtX2Fj
dGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gb3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAxNWRhN2Y1
ZjE1YmE2MmZiZGMwN2I4NzZmNzgzZGQ0YTJkZDAxNDQ4Li5iMTM3YjUyY2M1MzJmYzc4NzNhODJh
YjJhZTZlODEwOGQ0MzJkMzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKQEAgLTEyMiw2ICsxMjIsNyBAQCBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI7CiBjbGFzcyBQYWdlT3ZlcmxheTsKIGNsYXNzIFBsdWdpblZpZXc7
CiBjbGFzcyBTZXNzaW9uU3RhdGU7CitjbGFzcyBXZWJDb2xvckNob29zZXI7CiBjbGFzcyBXZWJD
b250ZXh0TWVudTsKIGNsYXNzIFdlYkNvbnRleHRNZW51SXRlbURhdGE7CiBjbGFzcyBXZWJFdmVu
dDsKQEAgLTIxMyw3ICsyMTQsMTQgQEAgcHVibGljOgogICAgIGJvb2wgaXNJblJlZG8oKSBjb25z
dCB7IHJldHVybiBtX2lzSW5SZWRvOyB9CiAKICAgICB2b2lkIHNldEFjdGl2ZVBvcHVwTWVudShX
ZWJQb3B1cE1lbnUqKTsKLSAgICAKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAg
IFdlYkNvbG9yQ2hvb3NlciogYWN0aXZlQ29sb3JDaG9vc2VyKCkgY29uc3QgeyByZXR1cm4gbV9h
Y3RpdmVDb2xvckNob29zZXI7IH0KKyAgICB2b2lkIHNldEFjdGl2ZUNvbG9yQ2hvb3NlcihXZWJD
b2xvckNob29zZXIqKTsKKyAgICB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNv
bG9yJik7CisgICAgdm9pZCBkaWRFbmRDb2xvckNob29zZXIoKTsKKyNlbmRpZgorCiAgICAgV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXIqIGFjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKCkg
Y29uc3QgeyByZXR1cm4gbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5nZXQoKTsgfQog
ICAgIHZvaWQgc2V0QWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIoUGFzc1JlZlB0cjxXZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lcj4pOwogCkBAIC03OTYsNiArODA0LDkgQEAgcHJpdmF0ZToK
ICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBSZWZQdHI8V2ViQ29udGV4dE1lbnU+IG1f
Y29udGV4dE1lbnU7CiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBX
ZWJDb2xvckNob29zZXIqIG1fYWN0aXZlQ29sb3JDaG9vc2VyOworI2VuZGlmCiAgICAgUmVmUHRy
PFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyPiBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyOwogICAgIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IG1f
bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDNi
MGNlZGM0YWM4ODEwNTI2MjAwYzNhNGMzZWY0ZmMwYjVjNTg4YmEuLjVhYzc0MmIzNGVjYjc2NDk1
ZmJjNGQyN2Q0NWE1Mzk2MGFlZjZiODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00NSw2ICs0NSwxMSBAQCBt
ZXNzYWdlcyAtPiBXZWJQYWdlIHsKICAgICBIaWdobGlnaHRQb3RlbnRpYWxBY3RpdmF0aW9uKFdl
YkNvcmU6OkludFBvaW50IHBvaW50LCBXZWJDb3JlOjpJbnRTaXplIGFyZWEpCiAjZW5kaWYKIAor
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIERpZEVuZENvbG9yQ2hvb3NlcigpOwor
ICAgIERpZENob29zZUNvbG9yKFdlYkNvcmU6OkNvbG9yIGNvbG9yKTsKKyNlbmRpZgorCiAjaWYg
RU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgQ29udGV4dE1lbnVIaWRkZW4oKQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5kZXggYzJmZWYwOWM2Mzk2OWU0YmE0Y2IxMTQ1MWIx
NDAyMDc0MGI4ODI2NS4uMGEzOGM0YjgyMmE4MjQ3OThmZjhjNGVlMmYzY2QyNDg5YjdiNmQwZiAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtMTgzOCw2ICsxODM4LDE0IEBACiAJCQkJ
CT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9j
ZXNzXFdlYkNvcmVTdXBwb3J0XFdlYkNvbG9yQ2hvb3Nlci5jcHAiCisJCQkJCT4KKwkJCQk8L0Zp
bGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvcmVT
dXBwb3J0XFdlYkNvbG9yQ2hvb3Nlci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxl
CiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFxXZWJDb250
ZXh0TWVudUNsaWVudC5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC0yODgzLDYgKzI4OTEs
MTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
VUlQcm9jZXNzXFdlYkNvbG9yQ2hvb3NlclByb3h5LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJ
PEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147418</attachid>
            <date>2012-06-13 14:57:01 -0700</date>
            <delta_ts>2012-06-14 03:36:04 -0700</delta_ts>
            <desc>Patch v4</desc>
            <filename>bug-87495-20120614005700.patch</filename>
            <type>text/plain</type>
            <size>33070</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmJmMzZlM2I1ZjJlNWQ3
ZjM2ZmQwNGY1M2Y3OTJiNjJmN2Q1OTkyNi4uOGUyYTU5ODhjZGVkMmQ2MDgxMWRhN2Y1NTY4MWJl
ODNlY2U4MTgzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEyLTA2LTA1ICBUaGlh
Z28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgorCisgICAgICAg
IFtXSzJdIENvbG9yIGNob29zZXIgQVBJIG1pc3NpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgQ29sb3JDaG9vc2VyIEFQSSB0byBXZWJLaXQy
LiBUaGlzIEFQSSBhbGxvd3MgdGhlCisgICAgICAgIGVtYmVkZGVyIHRvIGRlZmluZSBhIGN1c3Rv
bSBjb2xvciBwaWNrZXIgZm9yIDxpbnB1dCB0eXBlPSJjb2xvciI+LgorCisgICAgICAgIE9ubHkg
b25lIENvbG9yQ2hvb3NlciBjYW4gYmUgYWN0aXZlIGZvciBhIHBhZ2UgYXQgYSB0aW1lLiBBbHRo
b3VnaAorICAgICAgICB0aGUgaW1wbGVtZW50YXRpb24gZG9lc24ndCBub3QgYXNzdW1lIGEgbW9k
YWwgZGlhbG9nLCBubyBvdGhlcgorICAgICAgICBjb2xvciBjaG9vc2VyIHdpbGwgYmUgY3JlYXRl
ZCB1bnRpbCB0aGUgYWN0aXZlIG9uZSBpcyBjbG9zZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5w
cmk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChQYWdlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29sb3JDaG9v
c2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJDb2xvckNob29zZXJQcm94eSk6CisgICAgICAgIChDbGllbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXJQcm94eTo6Q2xpZW50Ojp+Q2xpZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyUHJveHk6On5XZWJDb2xvckNob29zZXJQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclByb3h5OjppbnZhbGlkYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyUHJveHk6OldlYkNvbG9yQ2hvb3NlclBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3dDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnNldENvbG9yQ2hvb3NlckNvbG9yKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjplbmRDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmRpZENob29zZUNvbG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
aWRFbmRDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnByb2Nl
c3NEaWRDcmFzaCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAoV2ViUGFnZVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2Vy
OjpXZWJDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6On5X
ZWJDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OmRpZENo
b29zZUNvbG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjpkaWRFbmRDaG9v
c2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjpkaXNjb25uZWN0RnJvbVBh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OnNldFNlbGVjdGVkQ29sb3Ip
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OmVuZENob29zZXIpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViQ29sb3JD
aG9vc2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpz
ZXRBY3RpdmVDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRFbmRD
b2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDaG9vc2VDb2xvcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YWN0aXZl
Q29sb3JDaG9vc2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisKIDIwMTItMDYtMTMgIEFs
bGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBub2tpYS5jb20+CiAKICAgICAgICAg
W1F0XSBGaXhlZCB2aXNpYmxlIGNvbnRlbnQgcmVjdCBsb3N0IGR1cmluZyBwYWdlLWxvYWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIv
Q01ha2VMaXN0cy50eHQKaW5kZXggZmI2MThlNzU3OGViMDVmYjIxYTgxNzI0MDUxMjdlM2RiYWM2
MTFlNS4uZmE3MzI0ZTE2Y2QxMTJhZDMxMzY2YWU2YzZlZTE5MWFhM2IxZmUwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01h
a2VMaXN0cy50eHQKQEAgLTM5Niw2ICszOTYsNyBAQCBTRVQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAg
V2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcAogCiAg
ICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuY3BwCiAgICAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKICAgICBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCA4NTFkNjI2NmFlYTY1MTljN2U2ZTE1NWM5ZjcwODU1ODRmYTMyMmMwLi5iNDBmODVi
NGQ1NDBiYTA0NGYwNWIyN2Q2ODUyN2RmYTk5YTI4NzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTc1MCw2ICs3NTAsNyBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAgXAogCVNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuaCBcCisJU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbG9yQ2hvb3NlclByb3h5LmggXAogCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBcCiAJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBcCiAJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIFwKQEAgLTk4OSw2ICs5OTAsOCBAQCB3ZWJraXQy
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBcCisJU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuY3BwIFwKKwlTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51
Q2xpZW50LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDb250ZXh0TWVudUNsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggZDVkNGZm
ZmYxM2ZmMTRjOGNhM2UxNGVmMTc1NzY3NmZkMjkyODJjMC4uYmM2Y2UxNWVkZjI1ZjlhMTU2MzJj
OWE3ZDQyMTlmM2E4MzMwOTI0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnBy
aQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0yMjcsNiArMjI3LDcgQEAgSEVB
REVSUyArPSBcCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaCBcCiAgICAgVUlQ
cm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCBcCiAgICAgVUlQcm9jZXNz
L1dlYkJhY2tGb3J3YXJkTGlzdC5oIFwKKyAgICBVSVByb2Nlc3MvV2ViQ29sb3JDaG9vc2VyUHJv
eHkuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBcCiAgICAg
VUlQcm9jZXNzL1dlYkNvbnRleHQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRDb25uZWN0
aW9uQ2xpZW50LmggXApAQCAtMzQxLDYgKzM0Miw3IEBAIEhFQURFUlMgKz0gXAogICAgIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oIFwKICAgICBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmggXAogICAgIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggXAorICAgIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJEcmFnQ2xpZW50LmggXApAQCAtNzAzLDYgKzcwNSw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAgXAogICAgIFdl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwIFwKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgXAorICAgIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmNwcCBcCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAgXAogICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaAppbmRleCA2MjA1OGZkNDhiOTNmZmE2YWQ1ZDBmYzJkMjMyYWZiNTUx
MzBjN2NlLi5lNjllZDRjOTM3ZTU1MTRhNDk4NTBlNmYwYTlhMGZiZDAwNTFjNGUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUg
UGFnZUNsaWVudF9oCiAKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlICJX
ZWJDb2xvckNob29zZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1
ZGUgIldlYlBvcHVwTWVudVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BbHRlcm5hdGl2ZVRl
eHRDbGllbnQuaD4KQEAgLTYwLDYgKzYxLDkgQEAgY2xhc3MgV2ViR2VzdHVyZUV2ZW50OwogY2xh
c3MgV2ViQ29udGV4dE1lbnVQcm94eTsKIGNsYXNzIFdlYkVkaXRDb21tYW5kUHJveHk7CiBjbGFz
cyBXZWJQb3B1cE1lbnVQcm94eTsKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK2NsYXNz
IFdlYkNvbG9yQ2hvb3NlclByb3h5OworI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pCiBzdHJ1
Y3QgV2luZG93R2VvbWV0cnk7CkBAIC0xNjgsNiArMTcyLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdl
YlBhZ2VQcm94eSopID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQ
cm94eT4gY3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkqKSA9IDA7CiAKKyNpZiBF
TkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29sb3JD
aG9vc2VyUHJveHk+IGNyZWF0ZUNvbG9yQ2hvb3NlclByb3h5KFdlYlBhZ2VQcm94eSosIGNvbnN0
IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpID0gMDsKKyNlbmRpZgorCiAgICAgdmlydHVh
bCB2b2lkIHNldEZpbmRJbmRpY2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5kaWNhdG9yPiwgYm9vbCBm
YWRlT3V0LCBib29sIGFuaW1hdGUpID0gMDsKICNpZiBQTEFURk9STShXSU4pCiAgICAgdmlydHVh
bCB2b2lkIGRpZEluc3RhbGxPclVuaW5zdGFsbFBhZ2VPdmVybGF5KGJvb2wpID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvckNob29zZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9yQ2hvb3NlclByb3h5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzkwNmMxMGZhZmZlOGEwZDMwODU4OTg0NzA5OTc3YzJkMWE2ZjViOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvckNob29zZXJQcm94eS5oCkBA
IC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRp
b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29sb3JDaG9v
c2VyUHJveHlfaAorI2RlZmluZSBXZWJDb2xvckNob29zZXJQcm94eV9oCisKKyNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDb2xvcjsKK30K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3MgV2Vi
Q29sb3JDaG9vc2VyUHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJDb2xvckNob29zZXJQcm94
eT4geworcHVibGljOgorICAgIGNsYXNzIENsaWVudCB7CisgICAgcHJvdGVjdGVkOgorICAgICAg
ICB2aXJ0dWFsIH5DbGllbnQoKSB7IH0KKworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB2
b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgPSAwOworICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkRW5kQ29sb3JDaG9vc2VyKCkgPSAwOworICAgIH07CisgICAgdmlydHVh
bCB+V2ViQ29sb3JDaG9vc2VyUHJveHkoKSB7IH0KKworICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsg
bV9jbGllbnQgPSAwOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZW5kQ2hvb3NlcigpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpID0g
MDsKKworcHJvdGVjdGVkOgorICAgIFdlYkNvbG9yQ2hvb3NlclByb3h5KENsaWVudCogY2xpZW50
KQorICAgICAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICB7CisgICAgfQorCisgICAgQ2xpZW50
KiBtX2NsaWVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCisKKyNlbmRpZiAvLyBXZWJDb2xvckNob29zZXJQcm94eV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGE4NGM0Njc5
MzFlNWEyNzdmYzE4N2Q3ZjIxYzY2OWE2NzlhYzZmZDguLjA2NmExNGM2OTdhOGRlZDFiMGY5M2I2
YTE5ZjRjYWM0Mzc4MjE5ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50
ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM5NSw2ICszOTYsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsb3Nl
KCkKICAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CiAgICAgfQogCisjaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgaWYgKG1fY29sb3JDaG9vc2VyKSB7CisgICAg
ICAgIG1fY29sb3JDaG9vc2VyLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIG1fY29sb3JDaG9vc2Vy
ID0gbnVsbHB0cjsKKyAgICB9CisjZW5kaWYKKwogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAg
ICBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0
cygpOwogI2VuZGlmCkBAIC0yNjExLDYgKzI2MTksNTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om5l
ZWRUb3VjaEV2ZW50cyhib29sIG5lZWRUb3VjaEV2ZW50cykKIH0KICNlbmRpZgogCisjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0NvbG9yQ2hvb3Nl
cihjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yKQoreworICAgIEFTU0VSVCghbV9j
b2xvckNob29zZXIpOworCisgICAgbV9jb2xvckNob29zZXIgPSBtX3BhZ2VDbGllbnQtPmNyZWF0
ZUNvbG9yQ2hvb3NlclByb3h5KHRoaXMsIGluaXRpYWxDb2xvcik7Cit9CisKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpzZXRDb2xvckNob29zZXJDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3Ip
Cit7CisgICAgQVNTRVJUKG1fY29sb3JDaG9vc2VyKTsKKworICAgIG1fY29sb3JDaG9vc2VyLT5z
ZXRTZWxlY3RlZENvbG9yKGNvbG9yKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmVuZENvbG9y
Q2hvb3NlcigpCit7CisgICAgQVNTRVJUKG1fY29sb3JDaG9vc2VyKTsKKworICAgIG1fY29sb3JD
aG9vc2VyLT5lbmRDaG9vc2VyKCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaG9vc2VD
b2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCit7CisgICAgaWYgKCFpc1ZhbGlkKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6RGlkQ2hvb3NlQ29sb3IoY29sb3IpLCBtX3BhZ2VJRCk7Cit9CisKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRFbmRDb2xvckNob29zZXIoKQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBBU1NFUlQobV9jb2xvckNob29zZXIpOworCisgICAgbV9jb2xvckNo
b29zZXItPmludmFsaWRhdGUoKTsKKyAgICBtX2NvbG9yQ2hvb3NlciA9IG51bGxwdHI7CisKKyAg
ICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZEVuZENvbG9yQ2hvb3Nlcigp
LCBtX3BhZ2VJRCk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlUHJveHk6OmRpZERyYXcoKQog
ewogICAgIG1fdWlDbGllbnQuZGlkRHJhdyh0aGlzKTsKQEAgLTMzNjMsNiArMzQxNSwxMyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6cHJvY2Vzc0RpZENyYXNoKCkKICAgICAgICAgbV9vcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiAgICAgfQogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVf
Q09MT1IpCisgICAgaWYgKG1fY29sb3JDaG9vc2VyKSB7CisgICAgICAgIG1fY29sb3JDaG9vc2Vy
LT5pbnZhbGlkYXRlKCk7CisgICAgICAgIG1fY29sb3JDaG9vc2VyID0gbnVsbHB0cjsKKyAgICB9
CisjZW5kaWYKKwogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICBtX2dlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNmQ5ODU5OGZmZWM0OGRjY2Zh
N2I1ZDdiYTllYTEzYjMxNTM2Y2FiOC4uM2FlMzJlMjM1ZmYwZGIxMmM4MzVmYTA3M2I1OThhMzA4
ODc0MjQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDUs
NiArNDUsNyBAQAogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIldLQmFz
ZS5oIgogI2luY2x1ZGUgIldLUGFnZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJDb2xvckNob29z
ZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51SXRlbURhdGEuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJGaW5kQ2xpZW50LmgiCkBA
IC01OCw2ICs1OSw3IEBACiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHkuaCIKICNpbmNsdWRl
ICJXZWJSZXNvdXJjZUxvYWRDbGllbnQuaCIKICNpbmNsdWRlICJXZWJVSUNsaWVudC5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29sb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hpdFRlc3RSZXN1bHQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
U2NyZWVuLmg+CkBAIC0yMTksNyArMjIxLDEyIEBAIHByaXZhdGU6CiAgICAgQ2FsbGJhY2tGdW5j
dGlvbiBtX2NhbGxiYWNrOwogfTsKIAotY2xhc3MgV2ViUGFnZVByb3h5IDogcHVibGljIEFQSU9i
amVjdCwgcHVibGljIFdlYlBvcHVwTWVudVByb3h5OjpDbGllbnQgeworY2xhc3MgV2ViUGFnZVBy
b3h5CisgICAgOiBwdWJsaWMgQVBJT2JqZWN0CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Ip
CisgICAgLCBwdWJsaWMgV2ViQ29sb3JDaG9vc2VyUHJveHk6OkNsaWVudAorI2VuZGlmCisgICAg
LCBwdWJsaWMgV2ViUG9wdXBNZW51UHJveHk6OkNsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVQYWdlOwogCkBAIC03ODMsNiArNzkwLDE0IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBuZWVkVG91Y2hFdmVudHMoYm9vbCk7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIHZvaWQgc2hvd0NvbG9yQ2hvb3Nlcihjb25zdCBX
ZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yKTsKKyAgICB2b2lkIHNldENvbG9yQ2hvb3NlckNv
bG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdm9pZCBlbmRDb2xvckNob29zZXIoKTsK
KyAgICB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdm9p
ZCBkaWRFbmRDb2xvckNob29zZXIoKTsKKyNlbmRpZgorCiAgICAgdm9pZCBlZGl0b3JTdGF0ZUNo
YW5nZWQoY29uc3QgRWRpdG9yU3RhdGUmKTsKIAogICAgIC8vIEJhY2svRm9yd2FyZCBsaXN0IG1h
bmFnZW1lbnQKQEAgLTEwNTUsNiArMTA3MCw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25lZWRU
b3VjaEV2ZW50czsKICAgICBEZXF1ZTxRdWV1ZWRUb3VjaEV2ZW50cz4gbV90b3VjaEV2ZW50UXVl
dWU7CiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBSZWZQdHI8V2Vi
Q29sb3JDaG9vc2VyUHJveHk+IG1fY29sb3JDaG9vc2VyOworI2VuZGlmCiAKICAgICB1aW50NjRf
dCBtX3BhZ2VJRDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggZGU2MGE3MTY2ZjU0YTgxODkxMzUwZTA3NTQyNWEzYTk4M2Uz
ZTBlMy4uNjVkYzVhZjJlYzFiMWM2NjRlOTE1MWFlNGY3YTM4NWUzOWZlMzI4MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC04
Myw2ICs4MywxMiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIE5lZWRUb3VjaEV2
ZW50cyhib29sIG5lZWRUb3VjaEV2ZW50cykKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZ
UEVfQ09MT1IpCisgICAgU2hvd0NvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvciBpbml0aWFsQ29s
b3IpOworICAgIFNldENvbG9yQ2hvb3NlckNvbG9yKFdlYkNvcmU6OkNvbG9yIGNvbG9yKTsKKyAg
ICBFbmRDb2xvckNob29zZXIoKTsKKyNlbmRpZgorCiAgICAgIyBQb2xpY3kgbWVzc2FnZXMKICAg
ICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwg
dWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5j
b2RlciB1c2VyRGF0YSkgLT4gKGJvb2wgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90IHBv
bGljeUFjdGlvbiwgdWludDY0X3QgZG93bmxvYWRJRCkKICAgICBEZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG5hdmlnYXRpb25UeXBlLCB1
aW50MzJfdCBtb2RpZmllcnMsIGludDMyX3QgbW91c2VCdXR0b24sIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCByZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSAtPiAoYm9vbCByZWNlaXZlZFBvbGljeUFj
dGlvbiwgdWludDY0X3QgcG9saWN5QWN0aW9uLCB1aW50NjRfdCBkb3dubG9hZElEKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNm
OThlOWI0OGY4Y2ZkMThlNDEwNmUwMzUxNzY5MjVlNDhmNjIyYjcuLjYwNzdmNmQzZTM4YTQ1MTAx
MjM4YjU0MjM3OGNjMjg3ZTA0ZGJhZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMyNCw2ICszMjQsOSBAQAogCQkzN0M0RTlG
NjEzMUM2RTdFMDAyOUJENUEgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCMzk2RUE1NTEyRTBFRDJEMDBGNEZFQjcgLyogY29uZmlnLmgg
Ki87IH07CiAJCTM3RjYyM0I4MTJBNTdCNjIwMEUzRkRGNiAvKiBXS0ZpbmRPcHRpb25zLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0Y2MjNCNzEyQTU3
QjYyMDBFM0ZERjYgLyogV0tGaW5kT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3RjkwREUzMTM3NjU2MEUwMDUxQ0Y2OCAvKiBIVFRQ
Q29va2llQWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNjM4OTU0RjEzM0JFRjM4MDA4OTQxRDUgLyogSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oICovOyB9OworCQkzRjg3QjlCRDE1ODk0MDEyMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9v
c2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNG
ODdCOUJBMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwICovOyB9OworCQkz
Rjg3QjlCRTE1ODk0MDE5MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCQjE1ODkzRjYzMDA5MEZG
NjIgLyogV2ViQ29sb3JDaG9vc2VyLmggKi87IH07CisJCTNGODdCOUMwMTU4OTQwRDgwMDkwRkY2
MiAvKiBXZWJDb2xvckNob29zZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hv
b3NlclByb3h5LmggKi87IH07CiAJCTRGNjAxNDMyMTU1QzVBQTIwMDFGQkRFMCAvKiBCbG9ja2lu
Z1Jlc3BvbnNlTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oICov
OyB9OwogCQk1MTAyMUU5QzEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRN
YWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAy
MUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi87IH07
CiAJCTUxMEZCQjlBMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEZCQjk4
MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcCAqLzsgfTsKQEAg
LTEzNDMsNiArMTM0Niw5IEBACiAJCTM3OTQ4NDA2MTUwQzRCOTYwMEU1MkNFOSAvKiBXS1JlbmRl
ckxheWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLUmVuZGVy
TGF5ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzk0ODQwNzE1MEM0Qjk2
MDBFNTJDRTkgLyogV0tSZW5kZXJMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS1JlbmRlckxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3RjYy
M0I3MTJBNTdCNjIwMEUzRkRGNiAvKiBXS0ZpbmRPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLRmluZE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJM0Y4N0I5QkExNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb2xvckNob29zZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzRjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIgLyog
V2ViQ29sb3JDaG9vc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNv
bG9yQ2hvb3Nlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzRjg3QjlCRjE1ODk0
MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JDaG9vc2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VN
YXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvY2tpbmdSZXNwb25zZU1h
cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAwMzFGNjEzNzlDQUNCMDBDOERG
RTQgLyogV2ViUHJvY2Vzc1NoaW0uZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRl
eCA9IDA7IHBhdGggPSBXZWJQcm9jZXNzU2hpbS5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKIAkJNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRN
ZW51Q2xpZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yNzcyLDYgKzI3NzgsOCBAQAogCQkJCUNFREExMkRFMTUyQ0NBRTgwMEQ5RTA4RCAvKiBXZWJB
bHRlcm5hdGl2ZVRleHRDbGllbnQuaCAqLywKIAkJCQlCQzExMUE1MzExMkY0RkJCMDAzMzdCQUIg
LyogV2ViQ2hyb21lQ2xpZW50LmNwcCAqLywKIAkJCQlCQzAzMkQ2MDEwRjQzNzhEMDA1OEMxNUEg
LyogV2ViQ2hyb21lQ2xpZW50LmggKi8sCisJCQkJM0Y4N0I5QkExNTg5M0Y2MzAwOTBGRjYyIC8q
IFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi8sCisJCQkJM0Y4N0I5QkIxNTg5M0Y2MzAwOTBGRjYyIC8q
IFdlYkNvbG9yQ2hvb3Nlci5oICovLAogCQkJCUJDMTExQTU0MTEyRjRGQkIwMDMzN0JBQiAvKiBX
ZWJDb250ZXh0TWVudUNsaWVudC5jcHAgKi8sCiAJCQkJQkMwMzJENjIxMEY0Mzc4RDAwNThDMTVB
IC8qIFdlYkNvbnRleHRNZW51Q2xpZW50LmggKi8sCiAJCQkJRjZBMjVGREExMkFEQzZDQzAwREM0
MENDIC8qIFdlYkRhdGFiYXNlTWFuYWdlci5jcHAgKi8sCkBAIC0yODg0LDYgKzI4OTIsNyBAQAog
CQkJCTUxMkUzNUYwMTMwQjYzOEMwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUJDNzJCQTFCMTFFNjQ5MDcwMDFFQjRFQSAvKiBX
ZWJCYWNrRm9yd2FyZExpc3QuY3BwICovLAogCQkJCUJDNzJCQTFDMTFFNjQ5MDcwMDFFQjRFQSAv
KiBXZWJCYWNrRm9yd2FyZExpc3QuaCAqLywKKwkJCQkzRjg3QjlCRjE1ODk0MEQ4MDA5MEZGNjIg
LyogV2ViQ29sb3JDaG9vc2VyUHJveHkuaCAqLywKIAkJCQlCQzRBNjJBNTE0NzQ0RUM2MDA2QzY4
MUEgLyogV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgKi8sCiAJCQkJQkM0QTYyQTYxNDc0
NEVDNjAwNkM2ODFBIC8qIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLywKIAkJCQlCQ0I5
RTI0MjExMjBEQUNBMDBBMTM3RTAgLyogV2ViQ29udGV4dC5jcHAgKi8sCkBAIC00MTkxLDYgKzQy
MDAsOCBAQAogCQkJCUNFREExMkUzMTUyQ0QxQjMwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2ZVRl
eHRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxOTU4MkQzMTUzQ0JGRDcwMEI2MDg3NSAv
KiBQREZLaXRJbXBvcnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUVGQzFDRjE1MjRFNjI1MDBD
OUE5MzggLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTNGODdCOUJFMTU4OTQwMTkwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTNGODdCOUMwMTU4OTQwRDgwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXJQcm94
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkBAIC00OTM5LDYgKzQ5NTAsNyBAQAogCQkJCTUxRkEyRDc0MTUy
MTJERjEwMEMxQkEwQiAvKiBJbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MUZBMkQ3NzE1MjEyRTI2MDBDMUJBMEIgLyogV0tCdW5kbGVET01X
aW5kb3dFeHRlbnNpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyQTRCMEUxNTg2QTIyNDAw
OTBDOUU5IC8qIENvbG9yU3BhY2VEYXRhLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJM0Y4N0I5QkQx
NTg5NDAxMjAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBjMDZmMTFiMzY5NDFmNGZmNjBiODdmZWIzODAzYjAy
MjgyMDVjMmNhLi43MjlmYzExY2Y2YTRhNzhiZGJlYTk1N2IzNzQ4ZjhlNzI3N2U5NWQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSW5qZWN0
ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2Vy
TWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3QuaCIKKyNpbmNsdWRlICJX
ZWJDb2xvckNob29zZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNp
bmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xpZW50LmgiCkBA
IC01OTcsMTAgKzU5OCwxMiBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cGFpbnRDdXN0b21PdmVy
aGFuZ0FyZWEoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbgogfQogCiAjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCi1QYXNzT3duUHRyPENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21l
Q2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgQ29s
b3ImKQorUGFzc093blB0cjxDb2xvckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29s
b3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25zdCBDb2xvciYgaW5pdGlh
bENvbG9yKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgaWYgKG1fcGFnZS0+YWN0aXZlQ29sb3JDaG9vc2VyKCkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJDb2xvckNob29zZXIobV9wYWdlLCBj
bGllbnQsIGluaXRpYWxDb2xvcikpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yY2IwZjNjNTY0NzA4NzcyYzZiZGVkNTg3YTE0N2JkNjg5YmVjNjRjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDb2xvckNob29zZXIuY3BwCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXIuaCIKKwor
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ29s
b3JDaG9vc2VyQ2xpZW50Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworV2ViQ29sb3JDaG9vc2VyOjpXZWJDb2xvckNob29zZXIoV2ViUGFnZSog
cGFnZSwgQ29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29s
b3IpCisgICAgOiBtX2NvbG9yQ2hvb3NlckNsaWVudChjbGllbnQpCisgICAgLCBtX3BhZ2UocGFn
ZSkKK3sKKyAgICBtX3BhZ2UtPnNldEFjdGl2ZUNvbG9yQ2hvb3Nlcih0aGlzKTsKKyAgICBXZWJQ
cm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6U2hvd0NvbG9yQ2hvb3Nlcihpbml0aWFsQ29sb3IpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30K
KworV2ViQ29sb3JDaG9vc2VyOjp+V2ViQ29sb3JDaG9vc2VyKCkKK3sKKyAgICBpZiAoIW1fcGFn
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wYWdlLT5zZXRBY3RpdmVDb2xvckNob29zZXIo
MCk7Cit9CisKK3ZvaWQgV2ViQ29sb3JDaG9vc2VyOjpkaWRDaG9vc2VDb2xvcihjb25zdCBDb2xv
ciYgY29sb3IpCit7CisgICAgbV9jb2xvckNob29zZXJDbGllbnQtPmRpZENob29zZUNvbG9yKGNv
bG9yKTsKK30KKwordm9pZCBXZWJDb2xvckNob29zZXI6OmRpZEVuZENob29zZXIoKQoreworICAg
IG1fY29sb3JDaG9vc2VyQ2xpZW50LT5kaWRFbmRDaG9vc2VyKCk7Cit9CisKK3ZvaWQgV2ViQ29s
b3JDaG9vc2VyOjpkaXNjb25uZWN0RnJvbVBhZ2UoKQoreworICAgIG1fcGFnZSA9IDA7Cit9CisK
K3ZvaWQgV2ViQ29sb3JDaG9vc2VyOjpzZXRTZWxlY3RlZENvbG9yKGNvbnN0IENvbG9yJiBjb2xv
cikKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNl
dENvbG9yQ2hvb3NlckNvbG9yKGNvbG9yKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK3ZvaWQg
V2ViQ29sb3JDaG9vc2VyOjplbmRDaG9vc2VyKCkKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVuZENvbG9yQ2hvb3NlcigpLCBtX3BhZ2UtPnBhZ2VJ
RCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5Q
VVRfVFlQRV9DT0xPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxMzFhYzEwMjQ1
Y2Y1YzUzNmIzZGJiOGU1ZTkxM2RiYjEzZjA1MzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5oCkBAIC0w
LDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24u
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29sb3JDaG9vc2Vy
X2gKKyNkZWZpbmUgV2ViQ29sb3JDaG9vc2VyX2gKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQorCisjaW5jbHVkZSA8V2ViQ29yZS9Db2xvckNob29zZXIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworY2xhc3MgQ29sb3I7CitjbGFzcyBDb2xvckNob29zZXJDbGllbnQ7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJDb2xvckNob29z
ZXIgOiBwdWJsaWMgV2ViQ29yZTo6Q29sb3JDaG9vc2VyIHsKK3B1YmxpYzoKKyAgICBXZWJDb2xv
ckNob29zZXIoV2ViUGFnZSosIFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IFdl
YkNvcmU6OkNvbG9yJik7CisgICAgfldlYkNvbG9yQ2hvb3NlcigpOworCisgICAgdm9pZCBkaWRD
aG9vc2VDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpOworICAgIHZvaWQgZGlkRW5kQ2hvb3Nl
cigpOworICAgIHZvaWQgZGlzY29ubmVjdEZyb21QYWdlKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0U2VsZWN0ZWRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBlbmRDaG9vc2VyKCkgT1ZFUlJJREU7CisKK3ByaXZhdGU6CisgICAgV2ViQ29y
ZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiBtX2NvbG9yQ2hvb3NlckNsaWVudDsKKyAgICBXZWJQYWdl
KiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQorCisjZW5kaWYgLy8gV2ViQ29sb3JDaG9vc2VyX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3ZTM2MjNj
NTQ0ZjUxM2ZjYjRkMDkzM2M2MDU3N2Q0MDA5ZWRlNTUwLi45N2ViMWIwNmU4Zjc2YjEyNWI2ODcx
NTRhZGQyZDRlYzkwNmVhMWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
MCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ3LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtLmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuaCIK
ICNpbmNsdWRlICJXZWJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXIu
aCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51
Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lc3NhZ2VzLmgiCkBAIC0yMDYsNiArMjA4
LDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgLCBtX3RhcEhpZ2hsaWdodENvbnRyb2xs
ZXIodGhpcykKICNlbmRpZgogI2VuZGlmCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisg
ICAgLCBtX2FjdGl2ZUNvbG9yQ2hvb3NlcigwKQorI2VuZGlmCiAjaWYgRU5BQkxFKEdFT0xPQ0FU
SU9OKQogICAgICwgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlzKQog
I2VuZGlmCkBAIC02MzEsNiArNjM2LDEzIEBAIHZvaWQgV2ViUGFnZTo6Y2xvc2UoKQogICAgICAg
ICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gMDsKICAgICB9CiAKKyNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBpZiAobV9hY3RpdmVDb2xvckNob29zZXIpIHsKKyAg
ICAgICAgbV9hY3RpdmVDb2xvckNob29zZXItPmRpc2Nvbm5lY3RGcm9tUGFnZSgpOworICAgICAg
ICBtX2FjdGl2ZUNvbG9yQ2hvb3NlciA9IDA7CisgICAgfQorI2VuZGlmCisKICAgICBtX3NhbmRi
b3hFeHRlbnNpb25UcmFja2VyLmludmFsaWRhdGUoKTsKIAogICAgIG1fdW5kZXJsYXlQYWdlID0g
bnVsbHB0cjsKQEAgLTIzMTQsNiArMjMyNiwyMyBAQCB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZVBv
cHVwTWVudShXZWJQb3B1cE1lbnUqIG1lbnUpCiAgICAgbV9hY3RpdmVQb3B1cE1lbnUgPSBtZW51
OwogfQogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCit2b2lkIFdlYlBhZ2U6OnNldEFj
dGl2ZUNvbG9yQ2hvb3NlcihXZWJDb2xvckNob29zZXIqIGNvbG9yQ2hvb3NlcikKK3sKKyAgICBt
X2FjdGl2ZUNvbG9yQ2hvb3NlciA9IGNvbG9yQ2hvb3NlcjsKK30KKwordm9pZCBXZWJQYWdlOjpk
aWRFbmRDb2xvckNob29zZXIoKQoreworICAgIG1fYWN0aXZlQ29sb3JDaG9vc2VyLT5kaWRFbmRD
aG9vc2VyKCk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImIGNvbG9yKQoreworICAgIG1fYWN0aXZlQ29sb3JDaG9vc2VyLT5kaWRDaG9vc2VD
b2xvcihjb2xvcik7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlOjpzZXRBY3RpdmVPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lcihQYXNzUmVmUHRyPFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyPiBv
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikKIHsKICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyID0gb3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAxNWRhN2Y1ZjE1YmE2MmZiZGMwN2I4NzZmNzgz
ZGQ0YTJkZDAxNDQ4Li5iMTM3YjUyY2M1MzJmYzc4NzNhODJhYjJhZTZlODEwOGQ0MzJkMzQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEyMiw2
ICsxMjIsNyBAQCBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiBj
bGFzcyBQYWdlT3ZlcmxheTsKIGNsYXNzIFBsdWdpblZpZXc7CiBjbGFzcyBTZXNzaW9uU3RhdGU7
CitjbGFzcyBXZWJDb2xvckNob29zZXI7CiBjbGFzcyBXZWJDb250ZXh0TWVudTsKIGNsYXNzIFdl
YkNvbnRleHRNZW51SXRlbURhdGE7CiBjbGFzcyBXZWJFdmVudDsKQEAgLTIxMyw3ICsyMTQsMTQg
QEAgcHVibGljOgogICAgIGJvb2wgaXNJblJlZG8oKSBjb25zdCB7IHJldHVybiBtX2lzSW5SZWRv
OyB9CiAKICAgICB2b2lkIHNldEFjdGl2ZVBvcHVwTWVudShXZWJQb3B1cE1lbnUqKTsKLSAgICAK
KworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIFdlYkNvbG9yQ2hvb3NlciogYWN0
aXZlQ29sb3JDaG9vc2VyKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmVDb2xvckNob29zZXI7IH0K
KyAgICB2b2lkIHNldEFjdGl2ZUNvbG9yQ2hvb3NlcihXZWJDb2xvckNob29zZXIqKTsKKyAgICB2
b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdm9pZCBkaWRF
bmRDb2xvckNob29zZXIoKTsKKyNlbmRpZgorCiAgICAgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXIqIGFjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKCkgY29uc3QgeyByZXR1cm4gbV9hY3Rp
dmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5nZXQoKTsgfQogICAgIHZvaWQgc2V0QWN0aXZlT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXIoUGFzc1JlZlB0cjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
cj4pOwogCkBAIC03OTYsNiArODA0LDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQ09OVEVYVF9N
RU5VUykKICAgICBSZWZQdHI8V2ViQ29udGV4dE1lbnU+IG1fY29udGV4dE1lbnU7CiAjZW5kaWYK
KyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBXZWJDb2xvckNob29zZXIqIG1fYWN0
aXZlQ29sb3JDaG9vc2VyOworI2VuZGlmCiAgICAgUmVmUHRyPFdlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyPiBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyOwogICAgIFJlZlB0cjxOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IG1fbm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDNiMGNlZGM0YWM4ODEwNTI2MjAwYzNh
NGMzZWY0ZmMwYjVjNTg4YmEuLjVhYzc0MmIzNGVjYjc2NDk1ZmJjNGQyN2Q0NWE1Mzk2MGFlZjZi
ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCkBAIC00NSw2ICs0NSwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIHsK
ICAgICBIaWdobGlnaHRQb3RlbnRpYWxBY3RpdmF0aW9uKFdlYkNvcmU6OkludFBvaW50IHBvaW50
LCBXZWJDb3JlOjpJbnRTaXplIGFyZWEpCiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SKQorICAgIERpZEVuZENvbG9yQ2hvb3NlcigpOworICAgIERpZENob29zZUNvbG9yKFdl
YkNvcmU6OkNvbG9yIGNvbG9yKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMp
CiAgICAgQ29udGV4dE1lbnVIaWRkZW4oKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3By
b2oKaW5kZXggYzJmZWYwOWM2Mzk2OWU0YmE0Y2IxMTQ1MWIxNDAyMDc0MGI4ODI2NS4uMGEzOGM0
YjgyMmE4MjQ3OThmZjhjNGVlMmYzY2QyNDg5YjdiNmQwZiAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDIudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LnZjcHJvagpAQCAtMTgzOCw2ICsxODM4LDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdl
YkNvbG9yQ2hvb3Nlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdlYkNvbG9yQ2hvb3Nl
ci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFxXZWJDb250ZXh0TWVudUNsaWVudC5jcHAiCiAJ
CQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC0yODgzLDYgKzI4OTEsMTAgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYkNvbG9yQ2hv
b3NlclByb3h5LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFVJUHJvY2Vzc1xXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCIKIAkJCQk+CiAJ
CQk8L0ZpbGU+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147546</attachid>
            <date>2012-06-14 03:37:00 -0700</date>
            <delta_ts>2012-06-20 15:08:38 -0700</delta_ts>
            <desc>Patch v5</desc>
            <filename>bug-87495-20120614133841.patch</filename>
            <type>text/plain</type>
            <size>42773</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzRiNzNkZTliYjRkNTRi
ODNjZDVhYWJjYzdkN2I1YzliNjgyZWUyNC4uNmFmZGNlNDI0N2E3NmUyNDllOWYwYmJmMTIwM2Qz
NzI0MDZkZjczNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAxMi0wNi0xNCAgVGhp
YWdvIE1hcmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2FudG9zQGludGVsLmNvbT4KKworICAgICAg
ICBbV0syXSBDb2xvciBjaG9vc2VyIEFQSSBtaXNzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzQ5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIENvbG9yQ2hvb3NlciBBUEkgdG8gV2ViS2l0
Mi4gVGhpcyBBUEkgYWxsb3dzIHRoZQorICAgICAgICBlbWJlZGRlciB0byBkZWZpbmUgYSBjdXN0
b20gY29sb3IgcGlja2VyIGZvciA8aW5wdXQgdHlwZT0iY29sb3IiPi4KKworICAgICAgICBPbmx5
IG9uZSBDb2xvckNob29zZXIgY2FuIGJlIGFjdGl2ZSBmb3IgYSBwYWdlIGF0IGEgdGltZS4gQWx0
aG91Z2gKKyAgICAgICAgdGhlIGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qgbm90IGFzc3VtZSBhIG1v
ZGFsIGRpYWxvZywgbm8gb3RoZXIKKyAgICAgICAgY29sb3IgY2hvb3NlciB3aWxsIGJlIGNyZWF0
ZWQgdW50aWwgdGhlIGFjdGl2ZSBvbmUgaXMgY2xvc2VkLgorCisgICAgICAgIEFsc28gYWRkZWQg
c3R1YnMgZm9yIGFsbCBwbGF0Zm9ybXMsIHNvIGl0IHdvbnQgYnJlYWsgdGhlIGJ1aWxkIHdoZW4K
KyAgICAgICAgZW5hYmxpbmcgY29sb3IgY2hvb3NlciwgZXZlbiB0aG91Z2ggdGhleSBkb24ndCBo
YXZlIHRoZSBiYWNrZW5kCisgICAgICAgIGltcGxlbWVudGVkIHlldC4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
VGFyZ2V0LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
Y3JlYXRlQ29sb3JDaG9vc2VyUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1Bh
Z2VDbGllbnRJbXBsLmg6CisgICAgICAgIChQYWdlQ2xpZW50SW1wbCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNyZWF0ZUNvbG9yQ2hvb3NlclByb3h5KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAo
UGFnZUNsaWVudEltcGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJ
bXBsLmg6CisgICAgICAgIChQYWdlQ2xpZW50SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9tYWMvUGFnZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29sb3JDaG9vc2VyUHJveHkpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoUGFn
ZUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbG9yQ2hvb3NlclByb3h5Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
Q29sb3JDaG9vc2VyUHJveHkpOgorICAgICAgICAoQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29sb3JDaG9vc2VyUHJveHk6OkNsaWVudDo6fkNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbG9yQ2hvb3NlclByb3h5Ojp+V2ViQ29sb3JDaG9vc2VyUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb2xvckNob29zZXJQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvbG9yQ2hvb3NlclByb3h5OjpXZWJDb2xvckNob29zZXJQcm94eSk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpzaG93Q29sb3JDaG9vc2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpzZXRDb2xvckNob29zZXJDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
ZW5kQ29sb3JDaG9vc2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaG9v
c2VDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRW5kQ29sb3JDaG9v
c2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2gpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYlBhZ2VQcm94
eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlF0UGFnZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyUHJveHkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuaDoKKyAgICAgICAgKFF0UGFnZUNs
aWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcDoKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OmNyZWF0ZUNvbG9yQ2hvb3NlclByb3h5
KToKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dlYlZpZXcuaDoKKyAgICAgICAgKFdlYlZpZXcp
OgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjpXZWJD
b2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6On5XZWJDb2xv
ckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OmRpZENob29zZUNv
bG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjpkaWRFbmRDaG9vc2VyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjpkaXNjb25uZWN0RnJvbVBhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OnNldFNlbGVjdGVkQ29sb3IpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OmVuZENob29zZXIpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViQ29sb3JDaG9vc2Vy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjbG9z
ZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRBY3Rp
dmVDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRFbmRDb2xvckNo
b29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDaG9vc2VDb2xvcik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YWN0aXZlQ29sb3JD
aG9vc2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisKIDIwMTItMDYtMTQgIEdyemVnb3J6
IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW1dLMl0g
Rml4IGNsaWVudCBpbnRlcmZhY2Ugc2l6ZSBmb3IgV0tQYWdlTG9hZGVyQ2xpZW50LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFr
ZUxpc3RzLnR4dAppbmRleCA1YTk5MWNmNmIzM2QwMmEyMzc1YzMyNzkwM2RkY2U5MWUyMTcxZGMz
Li5jN2ZmODc2ZDhiZTk4MDhjMjllNjIzMDZiMWM5ZTM4MDY1NTE0ZWI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxp
c3RzLnR4dApAQCAtMzk4LDYgKzM5OCw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQ
cm9jZXNzL1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCiAKICAgICBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKyAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5jcHAKICAgICBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dO
VW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmlu
ZGV4IGJhYjJkMDY5YjVmZDg1NDhhOTYxYmNjY2JmNjUzZWU5YTNlMWNjZDguLmYxNDQxMmIwZjIz
MTgyOTQwZmY4NmRiZGU4NDhhODlkMWFiMTI2ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlz
dC5hbQpAQCAtNzUyLDYgKzc1Miw3IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIFwKIAlT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcCBcCiAJU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5oIFwKKwlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29sb3JDaG9vc2VyUHJveHkuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgXApAQCAtOTkzLDYgKzk5NCw4IEBAIHdlYmtpdDJfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJB
bHRlcm5hdGl2ZVRleHRDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5jcHAgXAorCVNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmggXAogCVNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGll
bnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNv
bnRleHRNZW51Q2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCA1ZDg5MTI1NWVj
YzU4NDg0ZmE1ZDA4ZGJkZjUwMzI4Njg3Nzk2M2E0Li4zZWEyNmVlNjZjM2UzNDJhMjkxYjNlYzJk
ZWIxMDcxZGFkNzI0ZWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTIyOCw2ICsyMjgsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oIFwKICAgICBVSVByb2Nl
c3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2Vi
QmFja0ZvcndhcmRMaXN0LmggXAorICAgIFVJUHJvY2Vzcy9XZWJDb2xvckNob29zZXJQcm94eS5o
IFwKICAgICBVSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIFwKICAgICBVSVBy
b2Nlc3MvV2ViQ29udGV4dC5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dENvbm5lY3Rpb25D
bGllbnQuaCBcCkBAIC0zNDMsNiArMzQ0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmggXAogICAgIFdlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBcCisgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDb2xvckNob29zZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDb250ZXh0TWVudUNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkRhdGFiYXNlTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkRyYWdDbGllbnQuaCBcCkBAIC03MDcsNiArNzA5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcCBcCiAgICAgV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAgXAogICAgIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBcCisgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuY3BwIFwKICAgICBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcAppbmRleCA1Njc1NDhmNWRh
NTc0Zjk2ZjBkYjNhOGRmNTRjZGI2YjRiZGE4M2MwLi5lNjlmODdkMjgwMTJkZTE1MzBjOTJjOWNj
YjIyMWJkYzgyMWM0YWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCkBAIC0yMDUsNiArMjA1LDE0IEBAIFBhc3NSZWZQdHI8
V2ViQ29udGV4dE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZUNvbnRleHRNZW51UHJv
eHkoV2ViUGFnZVByCiAgICAgcmV0dXJuIDA7CiB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9D
T0xPUikKK1Bhc3NSZWZQdHI8V2ViQ29sb3JDaG9vc2VyUHJveHk+IFBhZ2VDbGllbnRJbXBsOjpj
cmVhdGVDb2xvckNob29zZXJQcm94eShXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJDb3JlOjpDb2xv
ciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgor
CiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRGaW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8RmluZElu
ZGljYXRvcj4sIGJvb2wsIGJvb2wpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IGE0
ZGNkOTNlMzk3NTA5NmRlNDcyMGU0YzMzYmVhODU1NTIxNGM0ODguLjQyN2VmNTI5NzAwMWIwMDEy
Nzc4ZGZiMjE0NzBjM2I0NzYyNjkxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuaApAQCAtODQsNiArODQsMTAgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVu
dVByb3h5KFdlYlBhZ2VQcm94eSopOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb250ZXh0
TWVudVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSopOwogCisjaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvbG9y
Q2hvb3NlclByb3h5PiBjcmVhdGVDb2xvckNob29zZXJQcm94eShXZWJQYWdlUHJveHkqLCBjb25z
dCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yKTsKKyNlbmRpZgorCiAgICAgdmlydHVhbCB2
b2lkIHNldEZpbmRJbmRpY2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5kaWNhdG9yPiwgYm9vbCwgYm9v
bCk7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgdm9pZCBl
bnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBs
LmNwcAppbmRleCA4ZmJmZTczZjY1NWZkZTlkZjQ0MWMwYWYxZjc3NWI4M2VkYzEzOTU4Li44ZWNk
NDgwZTU1ZTgxZTNlMWI0NDRhOTQyOWM4MWEyYTQwODZkMTdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCkBAIC0yMjksNiAr
MjI5LDE0IEBAIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6
OmNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByCiAgICAgcmV0dXJuIFdlYkNvbnRleHRN
ZW51UHJveHlHdGs6OmNyZWF0ZShtX3ZpZXdXaWRnZXQsIHBhZ2UpOwogfQogCisjaWYgRU5BQkxF
KElOUFVUX1RZUEVfQ09MT1IpCitQYXNzUmVmUHRyPFdlYkNvbG9yQ2hvb3NlclByb3h5PiBQYWdl
Q2xpZW50SW1wbDo6Y3JlYXRlQ29sb3JDaG9vc2VyUHJveHkoV2ViUGFnZVByb3h5KiwgY29uc3Qg
V2ViQ29yZTo6Q29sb3ImKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7
Cit9CisjZW5kaWYKKwogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0RmluZEluZGljYXRvcihQYXNz
UmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sIGZhZGVPdXQsIGJvb2wgYW5pbWF0ZSkKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggNTRhZDk5ZjhmYTA0YmQwMmYwYzUxNDhjNDVhOWZl
YjdmMjA1ZmE4Yy4uNzJmYzM0NTM5YTYwODA1NjNkNzM0ZmE4OTIzOTcxYjhkMDRmODBiOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5o
CkBAIC04MSw2ICs4MSw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvbmVXaXRoS2V5
RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGJvb2wgd2FzRXZlbnRIYW5kbGVk
KTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVw
TWVudVByb3h5KFdlYlBhZ2VQcm94eSopOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb250
ZXh0TWVudVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSopOworI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb2xv
ckNob29zZXJQcm94eT4gY3JlYXRlQ29sb3JDaG9vc2VyUHJveHkoV2ViUGFnZVByb3h5KiwgY29u
c3QgV2ViQ29yZTo6Q29sb3ImIGludGlhbENvbG9yKTsKKyNlbmRpZgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRGaW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgZmFkZU91
dCwgYm9vbCBhbmltYXRlKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsYmFyc0Zv
ck1haW5GcmFtZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBmbGFzaEJhY2tpbmdTdG9yZVVw
ZGF0ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiB1cGRhdGVSZWN0cyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaAppbmRl
eCA1MmRkMDUwYjg2MGY2ZTZkZGU5MmI5MGU4YmY4YWY0ODQxNDJmN2M0Li4wYTMzNTE2NGU0NTg0
YTZmYjU0NGE1OTE4NmY2ZmZkNzhlYjZmZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTkxLDYgKzkxLDEwIEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBjcmVhdGVQb3B1
cE1lbnVQcm94eShXZWJQYWdlUHJveHkqKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29u
dGV4dE1lbnVQcm94eT4gY3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkqKTsKIAor
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJD
b2xvckNob29zZXJQcm94eT4gY3JlYXRlQ29sb3JDaG9vc2VyUHJveHkoV2ViUGFnZVByb3h5Kiwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvcik7CisjZW5kaWYKKwogICAgIHZvaWQg
c2V0RmluZEluZGljYXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sIGZhZGVPdXQs
IGJvb2wgYW5pbWF0ZSk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCmluZGV4IDc4M2MzMjgwMDkw
ZTk2ZGNiNTQ0OWQ1ZDMzMTRhOGQ2NzJiMGYxZTkuLjk2NTMzMjU0ZWUzZmMwY2NiNGQ1ZGM1NTky
Yzk2MDQwZGZlNGZlYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1BhZ2VDbGllbnRJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1BhZ2VDbGllbnRJbXBsLm1tCkBAIC0zNTAsNiArMzUwLDE0IEBAIFBhc3NSZWZQdHI8V2Vi
Q29udGV4dE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZUNvbnRleHRNZW51UHJveHko
V2ViUGFnZVByCiAgICAgcmV0dXJuIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmNyZWF0ZShtX3dr
VmlldywgcGFnZSk7CiB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK1Bhc3NSZWZQ
dHI8V2ViQ29sb3JDaG9vc2VyUHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVDb2xvckNob29z
ZXJQcm94eShXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorCiB2b2lkIFBhZ2VDbGll
bnRJbXBsOjpzZXRGaW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4gZmluZElu
ZGljYXRvciwgYm9vbCBmYWRlT3V0LCBib29sIGFuaW1hdGUpCiB7CiAgICAgW21fd2tWaWV3IF9z
ZXRGaW5kSW5kaWNhdG9yOmZpbmRJbmRpY2F0b3IgZmFkZU91dDpmYWRlT3V0IGFuaW1hdGU6YW5p
bWF0ZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA2MjA1OGZkNDhi
OTNmZmE2YWQ1ZDBmYzJkMjMyYWZiNTUxMzBjN2NlLi5lNjllZDRjOTM3ZTU1MTRhNDk4NTBlNmYw
YTlhMGZiZDAwNTFjNGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFn
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAg
LTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgUGFnZUNsaWVudF9oCiAKICNpbmNsdWRlICJTaGFyZWFi
bGVCaXRtYXAuaCIKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXJQcm94eS5oIgogI2luY2x1ZGUg
IldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5LmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9BbHRlcm5hdGl2ZVRleHRDbGllbnQuaD4KQEAgLTYwLDYgKzYxLDkgQEAgY2xh
c3MgV2ViR2VzdHVyZUV2ZW50OwogY2xhc3MgV2ViQ29udGV4dE1lbnVQcm94eTsKIGNsYXNzIFdl
YkVkaXRDb21tYW5kUHJveHk7CiBjbGFzcyBXZWJQb3B1cE1lbnVQcm94eTsKKyNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKK2NsYXNzIFdlYkNvbG9yQ2hvb3NlclByb3h5OworI2VuZGlmCiAK
ICNpZiBQTEFURk9STShXSU4pCiBzdHJ1Y3QgV2luZG93R2VvbWV0cnk7CkBAIC0xNjgsNiArMTcy
LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+
IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSopID0gMDsKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eT4gY3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQ
YWdlUHJveHkqKSA9IDA7CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8V2ViQ29sb3JDaG9vc2VyUHJveHk+IGNyZWF0ZUNvbG9yQ2hvb3NlclBy
b3h5KFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpID0g
MDsKKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIHNldEZpbmRJbmRpY2F0b3IoUGFzc1JlZlB0
cjxGaW5kSW5kaWNhdG9yPiwgYm9vbCBmYWRlT3V0LCBib29sIGFuaW1hdGUpID0gMDsKICNpZiBQ
TEFURk9STShXSU4pCiAgICAgdmlydHVhbCB2b2lkIGRpZEluc3RhbGxPclVuaW5zdGFsbFBhZ2VP
dmVybGF5KGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb2xvckNob29zZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9y
Q2hvb3NlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzkwNmMxMGZhZmZlOGEwZDMwODU4OTg0NzA5OTc3
YzJkMWE2ZjViOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb2xvckNob29zZXJQcm94eS5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV2ViQ29sb3JDaG9vc2VyUHJveHlfaAorI2RlZmluZSBXZWJDb2xvckNob29z
ZXJQcm94eV9oCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKworI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBDb2xvcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YlBhZ2VQcm94eTsKKworY2xhc3MgV2ViQ29sb3JDaG9vc2VyUHJveHkgOiBwdWJsaWMgUmVmQ291
bnRlZDxXZWJDb2xvckNob29zZXJQcm94eT4geworcHVibGljOgorICAgIGNsYXNzIENsaWVudCB7
CisgICAgcHJvdGVjdGVkOgorICAgICAgICB2aXJ0dWFsIH5DbGllbnQoKSB7IH0KKworICAgIHB1
YmxpYzoKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6
OkNvbG9yJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kQ29sb3JDaG9vc2VyKCkg
PSAwOworICAgIH07CisgICAgdmlydHVhbCB+V2ViQ29sb3JDaG9vc2VyUHJveHkoKSB7IH0KKwor
ICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgbV9jbGllbnQgPSAwOyB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgZW5kQ2hvb3NlcigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDb2xvcihj
b25zdCBXZWJDb3JlOjpDb2xvciYpID0gMDsKKworcHJvdGVjdGVkOgorICAgIFdlYkNvbG9yQ2hv
b3NlclByb3h5KENsaWVudCogY2xpZW50KQorICAgICAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAg
ICB7CisgICAgfQorCisgICAgQ2xpZW50KiBtX2NsaWVudDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisKKyNlbmRpZiAv
LyBXZWJDb2xvckNob29zZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCmluZGV4IDkxMGM3ZDIxMmQ1YTkxNWEwYTc4OTgwZGZiMjRiMGNhYmJhMjkwZDYu
LmQyMDU5ZDMzODQ3YzBkYzNkNTY1MWMwMTM3NTRjNWVjNjYzY2M5ZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQwMCw2ICs0MDEsMTMgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmNsb3NlKCkKICAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lciA9IDA7CiAgICAgfQogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgaWYg
KG1fY29sb3JDaG9vc2VyKSB7CisgICAgICAgIG1fY29sb3JDaG9vc2VyLT5pbnZhbGlkYXRlKCk7
CisgICAgICAgIG1fY29sb3JDaG9vc2VyID0gbnVsbHB0cjsKKyAgICB9CisjZW5kaWYKKwogI2lm
IEVOQUJMRShHRU9MT0NBVElPTikKICAgICBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOwogI2VuZGlmCkBAIC0yNjI3LDYgKzI2MzUsNTAg
QEAgdm9pZCBXZWJQYWdlUHJveHk6Om5lZWRUb3VjaEV2ZW50cyhib29sIG5lZWRUb3VjaEV2ZW50
cykKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCit2b2lkIFdlYlBh
Z2VQcm94eTo6c2hvd0NvbG9yQ2hvb3Nlcihjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENv
bG9yKQoreworICAgIEFTU0VSVCghbV9jb2xvckNob29zZXIpOworCisgICAgbV9jb2xvckNob29z
ZXIgPSBtX3BhZ2VDbGllbnQtPmNyZWF0ZUNvbG9yQ2hvb3NlclByb3h5KHRoaXMsIGluaXRpYWxD
b2xvcik7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRDb2xvckNob29zZXJDb2xvcihjb25z
dCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCit7CisgICAgQVNTRVJUKG1fY29sb3JDaG9vc2VyKTsK
KworICAgIG1fY29sb3JDaG9vc2VyLT5zZXRTZWxlY3RlZENvbG9yKGNvbG9yKTsKK30KKwordm9p
ZCBXZWJQYWdlUHJveHk6OmVuZENvbG9yQ2hvb3NlcigpCit7CisgICAgQVNTRVJUKG1fY29sb3JD
aG9vc2VyKTsKKworICAgIG1fY29sb3JDaG9vc2VyLT5lbmRDaG9vc2VyKCk7Cit9CisKK3ZvaWQg
V2ViUGFnZVByb3h5OjpkaWRDaG9vc2VDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3Ip
Cit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHByb2Nlc3Mo
KS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ2hvb3NlQ29sb3IoY29sb3IpLCBtX3BhZ2VJ
RCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRFbmRDb2xvckNob29zZXIoKQoreworICAg
IGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQobV9jb2xvckNo
b29zZXIpOworCisgICAgbV9jb2xvckNob29zZXItPmludmFsaWRhdGUoKTsKKyAgICBtX2NvbG9y
Q2hvb3NlciA9IG51bGxwdHI7CisKKyAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OkRpZEVuZENvbG9yQ2hvb3NlcigpLCBtX3BhZ2VJRCk7Cit9CisjZW5kaWYKKwogdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZERyYXcoKQogewogICAgIG1fdWlDbGllbnQuZGlkRHJhdyh0aGlzKTsK
QEAgLTMzNzksNiArMzQzMSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJvY2Vzc0RpZENyYXNo
KCkKICAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiAgICAgfQog
CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgaWYgKG1fY29sb3JDaG9vc2VyKSB7
CisgICAgICAgIG1fY29sb3JDaG9vc2VyLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIG1fY29sb3JD
aG9vc2VyID0gbnVsbHB0cjsKKyAgICB9CisjZW5kaWYKKwogI2lmIEVOQUJMRShHRU9MT0NBVElP
TikKICAgICBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmludmFsaWRhdGVS
ZXF1ZXN0cygpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggMjI4YjI0N2YyNDY2ODEwZDg3Y2RkNWFkMjVmZGY2NDVkNGJiZmZlNy4uODMzMDM5MzRj
ZGJkYzM1MmVmMjIzMmZiMzA1ZTJmZGE0Nzk2ZjA4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIlNoYXJlYWJsZUJp
dG1hcC5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUgIldLUGFnZVByaXZhdGUuaCIK
KyNpbmNsdWRlICJXZWJDb2xvckNob29zZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRN
ZW51SXRlbURhdGEuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNs
dWRlICJXZWJGaW5kQ2xpZW50LmgiCkBAIC01OCw2ICs1OSw3IEBACiAjaW5jbHVkZSAiV2ViUG9w
dXBNZW51UHJveHkuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRDbGllbnQuaCIKICNpbmNs
dWRlICJXZWJVSUNsaWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3IuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0hpdFRlc3RSZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CkBAIC0yMjMsNyArMjI1LDEyIEBAIHBy
aXZhdGU6CiAgICAgQ2FsbGJhY2tGdW5jdGlvbiBtX2NhbGxiYWNrOwogfTsKIAotY2xhc3MgV2Vi
UGFnZVByb3h5IDogcHVibGljIEFQSU9iamVjdCwgcHVibGljIFdlYlBvcHVwTWVudVByb3h5OjpD
bGllbnQgeworY2xhc3MgV2ViUGFnZVByb3h5CisgICAgOiBwdWJsaWMgQVBJT2JqZWN0CisjaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgLCBwdWJsaWMgV2ViQ29sb3JDaG9vc2VyUHJv
eHk6OkNsaWVudAorI2VuZGlmCisgICAgLCBwdWJsaWMgV2ViUG9wdXBNZW51UHJveHk6OkNsaWVu
dCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVQYWdlOwog
CkBAIC03OTUsNiArODAyLDE0IEBAIHByaXZhdGU6CiAgICAgdm9pZCBuZWVkVG91Y2hFdmVudHMo
Ym9vbCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIHZvaWQg
c2hvd0NvbG9yQ2hvb3Nlcihjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yKTsKKyAg
ICB2b2lkIHNldENvbG9yQ2hvb3NlckNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAg
dm9pZCBlbmRDb2xvckNob29zZXIoKTsKKyAgICB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IFdl
YkNvcmU6OkNvbG9yJik7CisgICAgdm9pZCBkaWRFbmRDb2xvckNob29zZXIoKTsKKyNlbmRpZgor
CiAgICAgdm9pZCBlZGl0b3JTdGF0ZUNoYW5nZWQoY29uc3QgRWRpdG9yU3RhdGUmKTsKIAogICAg
IC8vIEJhY2svRm9yd2FyZCBsaXN0IG1hbmFnZW1lbnQKQEAgLTEwNjcsNiArMTA4Miw5IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX25lZWRUb3VjaEV2ZW50czsKICAgICBEZXF1ZTxRdWV1ZWRUb3Vj
aEV2ZW50cz4gbV90b3VjaEV2ZW50UXVldWU7CiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5QVVRfVFlQ
RV9DT0xPUikKKyAgICBSZWZQdHI8V2ViQ29sb3JDaG9vc2VyUHJveHk+IG1fY29sb3JDaG9vc2Vy
OworI2VuZGlmCiAKICAgICB1aW50NjRfdCBtX3BhZ2VJRDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMjU3MDQ0MTRhNGUy
MTRmOGYxYjcyMTMxZTg4MmMxNjRmNDY1ODZkNS4uNTllYTE5Nzk4M2ZjNjIzMTA2MzU2YzgwZDdm
MmE1ZWQxOTk5M2ZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC04Myw2ICs4MywxMiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdl
UHJveHkgewogICAgIE5lZWRUb3VjaEV2ZW50cyhib29sIG5lZWRUb3VjaEV2ZW50cykKICNlbmRp
ZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgU2hvd0NvbG9yQ2hvb3NlcihX
ZWJDb3JlOjpDb2xvciBpbml0aWFsQ29sb3IpOworICAgIFNldENvbG9yQ2hvb3NlckNvbG9yKFdl
YkNvcmU6OkNvbG9yIGNvbG9yKTsKKyAgICBFbmRDb2xvckNob29zZXIoKTsKKyNlbmRpZgorCiAg
ICAgIyBQb2xpY3kgbWVzc2FnZXMKICAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRf
dCBmcmFtZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpJbmpl
Y3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkgLT4gKGJvb2wgcmVjZWl2ZWRQ
b2xpY3lBY3Rpb24sIHVpbnQ2NF90IHBvbGljeUFjdGlvbiwgdWludDY0X3QgZG93bmxvYWRJRCkK
ICAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQzMl90IG5hdmlnYXRpb25UeXBlLCB1aW50MzJfdCBtb2RpZmllcnMsIGludDMyX3QgbW91c2VC
dXR0b24sIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5l
cklELCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSAt
PiAoYm9vbCByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QgcG9saWN5QWN0aW9uLCB1aW50
NjRfdCBkb3dubG9hZElEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L1F0UGFnZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xp
ZW50LmNwcAppbmRleCA4ZTlhYjJlZmRjYzcxNDM4NjQ2OGE4ZjFkNTY1OTJhNzMzM2Q0ZmNlLi5l
YmE0ZjhiODAwYTM5ZmE5OTg2ODk3YmQwMTZjNzc1Njg2ZDVjYTlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmNwcApAQCAtMjA1LDYgKzIwNSwxNCBAQCBQ
YXNzUmVmUHRyPFdlYkNvbnRleHRNZW51UHJveHk+IFF0UGFnZUNsaWVudDo6Y3JlYXRlQ29udGV4
dE1lbnVQcm94eShXZWJQYWdlUHJveAogICAgIHJldHVybiBXZWJDb250ZXh0TWVudVByb3h5UXQ6
OmNyZWF0ZSh3ZWJQYWdlUHJveHkpOwogfQogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Ip
CitQYXNzUmVmUHRyPFdlYkNvbG9yQ2hvb3NlclByb3h5PiBRdFBhZ2VDbGllbnQ6OmNyZWF0ZUNv
bG9yQ2hvb3NlclByb3h5KFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorI2VuZGlmCisKIHZvaWQg
UXRQYWdlQ2xpZW50OjpmbGFzaEJhY2tpbmdTdG9yZVVwZGF0ZXMoY29uc3QgVmVjdG9yPEludFJl
Y3Q+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0UGFnZUNsaWVudC5oCmluZGV4IGUzM2RhZGY2MWU3NjhjNDQzZmNlMjg4Y2M4ZGU2NTNh
NmQ2ODZjMGMuLjVjNjlhYzg3OTFmZWMwMjZkYTdkMmI4N2VlMmI0N2YyOTc5NWYwNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmgKQEAgLTg2LDYgKzg2LDkg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2
ZVdlYktleWJvYXJkRXZlbnQmLCBib29sIHdhc0V2ZW50SGFuZGxlZCkgeyB9CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQ
YWdlUHJveHkqKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eT4g
Y3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkqKTsKKyNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9DT0xPUikKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29sb3JDaG9vc2VyUHJveHk+
IGNyZWF0ZUNvbG9yQ2hvb3NlclByb3h5KFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OkNv
bG9yJiBpbnRpYWxDb2xvcik7CisjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgc2V0RmluZEluZGlj
YXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sIGZhZGVPdXQsIGJvb2wgYW5pbWF0
ZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoYm9vbCB1
c2VDdXN0b21SZXByZXNlbnRhdGlvbikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExv
YWRpbmdEYXRhRm9yQ3VzdG9tUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRG
aWxlbmFtZSwgY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYpIHsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKaW5kZXggZjZlNzVkNjhhYmUxZWE2MWI0YjI1MWNk
MWIyMWRjZDdiMjNlY2U4YS4uMjhkMjZmMWYzZTQyYmJmNDM1MDIyY2UyNjg5ZjhhZTY4MGZiODM4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCkBAIC0xNDI5LDYg
KzE0MjksMTQgQEAgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVudVByb3h5PiBXZWJWaWV3OjpjcmVh
dGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSogcGEKICAgICByZXR1cm4gV2ViQ29udGV4
dE1lbnVQcm94eVdpbjo6Y3JlYXRlKG1fd2luZG93LCBwYWdlKTsKIH0KIAorI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX0NPTE9SKQorUGFzc1JlZlB0cjxXZWJDb2xvckNob29zZXJQcm94eT4gV2ViVmll
dzo6Y3JlYXRlQ29sb3JDaG9vc2VyUHJveHkoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6
Q29sb3ImKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisjZW5k
aWYKKwogdm9pZCBXZWJWaWV3OjpzZXRGaW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8RmluZEluZGlj
YXRvcj4gcHJwRmluZEluZGljYXRvciwgYm9vbCBmYWRlT3V0LCBib29sIGFuaW1hdGUpCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKGFuaW1hdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3dpbi9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZp
ZXcuaAppbmRleCBkYmExNTkzZjEwOWUxZTkyMGEwMmRjYTQ5MjYyZTgwY2I0OGIzYmFjLi43MWE5
ZTU3OGZhMjVjZDAwZGI0MjU3ZTk2YzMyYTBmY2E1OGU5NzRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3Mvd2luL1dlYlZpZXcuaApAQCAtMTk4LDYgKzE5OCw5IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIGNvbXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlZChib29sKTsKICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBh
Z2VQcm94eSopOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVudVByb3h5PiBj
cmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSopOworI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb2xvckNob29zZXJQcm94eT4g
Y3JlYXRlQ29sb3JDaG9vc2VyUHJveHkoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6Q29s
b3ImIGludGlhbENvbG9yKTsKKyNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBzZXRGaW5kSW5kaWNh
dG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgZmFkZU91dCwgYm9vbCBhbmltYXRl
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkSW5zdGFsbE9yVW5pbnN0YWxsUGFnZU92ZXJsYXkoYm9v
bCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAzZjk4ZTliNDhmOGNmZDE4ZTQxMDZlMDM1MTc2OTI1ZTQ4ZjYyMmI3Li42MDc3
ZjZkM2UzOGE0NTEwMTIzOGI1NDIzNzhjYzI4N2UwNGRiYWYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjQsNiArMzI0LDkg
QEAKIAkJMzdDNEU5RjYxMzFDNkU3RTAwMjlCRDVBIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjM5NkVBNTUxMkUwRUQyRDAwRjRGRUI3
IC8qIGNvbmZpZy5oICovOyB9OwogCQkzN0Y2MjNCODEyQTU3QjYyMDBFM0ZERjYgLyogV0tGaW5k
T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzdGNjIzQjcxMkE1N0I2MjAwRTNGREY2IC8qIFdLRmluZE9wdGlvbnMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzN0Y5MERFMzEzNzY1NjBFMDA1
MUNGNjggLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYzODk1NEYxMzNCRUYzODAwODk0MUQ1IC8qIEhUVFBD
b29raWVBY2NlcHRQb2xpY3kuaCAqLzsgfTsKKwkJM0Y4N0I5QkQxNTg5NDAxMjAwOTBGRjYyIC8q
IFdlYkNvbG9yQ2hvb3Nlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzRjg3QjlCQTE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmNw
cCAqLzsgfTsKKwkJM0Y4N0I5QkUxNTg5NDAxOTAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5QkIx
NTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovOyB9OworCQkzRjg3QjlDMDE1
ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODdCOUJGMTU4OTQwRDgwMDkwRkY2MiAv
KiBXZWJDb2xvckNob29zZXJQcm94eS5oICovOyB9OwogCQk0RjYwMTQzMjE1NUM1QUEyMDAxRkJE
RTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVz
cG9uc2VNYXAuaCAqLzsgfTsKIAkJNTEwMjFFOUMxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRl
eHRNZW51Q2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50
TWFjLm1tICovOyB9OwogCQk1MTBGQkI5QTEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1l
bnVJdGVtRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTBGQkI5ODEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5j
cHAgKi87IH07CkBAIC0xMzQzLDYgKzEzNDYsOSBAQAogCQkzNzk0ODQwNjE1MEM0Qjk2MDBFNTJD
RTkgLyogV0tSZW5kZXJMYXllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXS1JlbmRlckxheWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzc5
NDg0MDcxNTBDNEI5NjAwRTUyQ0U5IC8qIFdLUmVuZGVyTGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tSZW5kZXJMYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzN0Y2MjNCNzEyQTU3QjYyMDBFM0ZERjYgLyogV0tGaW5kT3B0aW9ucy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ZpbmRPcHRpb25zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTNGODdCOUJBMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNo
b29zZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JD
aG9vc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0Y4N0I5QkIxNTg5M0Y2
MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJDb2xvckNob29zZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
M0Y4N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3NlclByb3h5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3NlclByb3h5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGNjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9j
a2luZ1Jlc3BvbnNlTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2Nr
aW5nUmVzcG9uc2VNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMDMxRjYx
Mzc5Q0FDQjAwQzhERkU0IC8qIFdlYlByb2Nlc3NTaGltLmR5bGliICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsg
aW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gV2ViUHJvY2Vzc1NoaW0uZHlsaWI7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAv
KiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjc3Miw2ICsyNzc4LDggQEAKIAkJCQlDRURBMTJERTE1MkNDQUU4MDBE
OUUwOEQgLyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggKi8sCiAJCQkJQkMxMTFBNTMxMTJG
NEZCQjAwMzM3QkFCIC8qIFdlYkNocm9tZUNsaWVudC5jcHAgKi8sCiAJCQkJQkMwMzJENjAxMEY0
Mzc4RDAwNThDMTVBIC8qIFdlYkNocm9tZUNsaWVudC5oICovLAorCQkJCTNGODdCOUJBMTU4OTNG
NjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwICovLAorCQkJCTNGODdCOUJCMTU4OTNG
NjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLywKIAkJCQlCQzExMUE1NDExMkY0RkJC
MDAzMzdCQUIgLyogV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwICovLAogCQkJCUJDMDMyRDYyMTBG
NDM3OEQwMDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5oICovLAogCQkJCUY2QTI1RkRB
MTJBREM2Q0MwMERDNDBDQyAvKiBXZWJEYXRhYmFzZU1hbmFnZXIuY3BwICovLApAQCAtMjg4NCw2
ICsyODkyLDcgQEAKIAkJCQk1MTJFMzVGMDEzMEI2MzhDMDBBQkQxOUEgLyogV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQlCQzcyQkExQjExRTY0OTA3
MDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRMaXN0LmNwcCAqLywKIAkJCQlCQzcyQkExQzExRTY0
OTA3MDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRMaXN0LmggKi8sCisJCQkJM0Y4N0I5QkYxNTg5
NDBEODAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3NlclByb3h5LmggKi8sCiAJCQkJQkM0QTYyQTUx
NDc0NEVDNjAwNkM2ODFBIC8qIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwICovLAogCQkJ
CUJDNEE2MkE2MTQ3NDRFQzYwMDZDNjgxQSAvKiBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgg
Ki8sCiAJCQkJQkNCOUUyNDIxMTIwREFDQTAwQTEzN0UwIC8qIFdlYkNvbnRleHQuY3BwICovLApA
QCAtNDE5MSw2ICs0MjAwLDggQEAKIAkJCQlDRURBMTJFMzE1MkNEMUIzMDBEOUUwOEQgLyogV2Vi
QWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTk1ODJEMzE1M0NC
RkQ3MDBCNjA4NzUgLyogUERGS2l0SW1wb3J0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFRkMx
Q0YxNTI0RTYyNTAwQzlBOTM4IC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkzRjg3QjlCRTE1ODk0MDE5MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2Vy
LmggaW4gSGVhZGVycyAqLywKKwkJCQkzRjg3QjlDMDE1ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29s
b3JDaG9vc2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNDkzOSw2ICs0OTUwLDcgQEAKIAkJ
CQk1MUZBMkQ3NDE1MjEyREYxMDBDMUJBMEIgLyogSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRl
bnNpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGQTJENzcxNTIxMkUyNjAwQzFCQTBCIC8q
IFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkE0
QjBFMTU4NkEyMjQwMDkwQzlFOSAvKiBDb2xvclNwYWNlRGF0YS5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTNGODdCOUJEMTU4OTQwMTIwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggYzA2ZjExYjM2OTQxZjRmZjYw
Yjg3ZmViMzgwM2IwMjI4MjA1YzJjYS4uNzI5ZmMxMWNmNmE0YTc4YmRiZWE5NTdiMzc0OGY4ZTcy
NzdlOTVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIkluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oIgogI2luY2x1ZGUgIkluamVj
dGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCIKICNpbmNsdWRlICJMYXllclRyZWVIb3N0Lmgi
CisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZUxvYWRl
ckNsaWVudC5oIgpAQCAtNTk3LDEwICs1OTgsMTIgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnBh
aW50Q3VzdG9tT3ZlcmhhbmdBcmVhKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW4K
IH0KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotUGFzc093blB0cjxDb2xvckNob29z
ZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVu
dCosIGNvbnN0IENvbG9yJikKK1Bhc3NPd25QdHI8Q29sb3JDaG9vc2VyPiBXZWJDaHJvbWVDbGll
bnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCwgY29uc3Qg
Q29sb3ImIGluaXRpYWxDb2xvcikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBudWxscHRyOworICAgIGlmIChtX3BhZ2UtPmFjdGl2ZUNvbG9yQ2hvb3NlcigpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViQ29sb3JDaG9v
c2VyKG1fcGFnZSwgY2xpZW50LCBpbml0aWFsQ29sb3IpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hv
b3Nlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNv
bG9yQ2hvb3Nlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmNiMGYzYzU2NDcwODc3MmM2YmRlZDU4N2ExNDdi
ZDY4OWJlYzY0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmNwcApAQCAtMCwwICsxLDkwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ29sb3JD
aG9vc2VyLmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKworI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJX
ZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0NvbG9yQ2hvb3NlckNsaWVudC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkNvbG9yQ2hvb3Nlcjo6V2ViQ29sb3JDaG9v
c2VyKFdlYlBhZ2UqIHBhZ2UsIENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25zdCBDb2xv
ciYgaW5pdGlhbENvbG9yKQorICAgIDogbV9jb2xvckNob29zZXJDbGllbnQoY2xpZW50KQorICAg
ICwgbV9wYWdlKHBhZ2UpCit7CisgICAgbV9wYWdlLT5zZXRBY3RpdmVDb2xvckNob29zZXIodGhp
cyk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlNob3dDb2xvckNob29zZXIoaW5pdGlhbENvbG9yKSwgbV9wYWdlLT5w
YWdlSUQoKSk7Cit9CisKK1dlYkNvbG9yQ2hvb3Nlcjo6fldlYkNvbG9yQ2hvb3NlcigpCit7Cisg
ICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZS0+c2V0QWN0aXZl
Q29sb3JDaG9vc2VyKDApOworfQorCit2b2lkIFdlYkNvbG9yQ2hvb3Nlcjo6ZGlkQ2hvb3NlQ29s
b3IoY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIG1fY29sb3JDaG9vc2VyQ2xpZW50LT5kaWRD
aG9vc2VDb2xvcihjb2xvcik7Cit9CisKK3ZvaWQgV2ViQ29sb3JDaG9vc2VyOjpkaWRFbmRDaG9v
c2VyKCkKK3sKKyAgICBtX2NvbG9yQ2hvb3NlckNsaWVudC0+ZGlkRW5kQ2hvb3NlcigpOworfQor
Cit2b2lkIFdlYkNvbG9yQ2hvb3Nlcjo6ZGlzY29ubmVjdEZyb21QYWdlKCkKK3sKKyAgICBtX3Bh
Z2UgPSAwOworfQorCit2b2lkIFdlYkNvbG9yQ2hvb3Nlcjo6c2V0U2VsZWN0ZWRDb2xvcihjb25z
dCBDb2xvciYgY29sb3IpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpTZXRDb2xvckNob29zZXJDb2xvcihjb2xvciksIG1fcGFnZS0+cGFnZUlEKCkp
OworfQorCit2b2lkIFdlYkNvbG9yQ2hvb3Nlcjo6ZW5kQ2hvb3NlcigpCit7CisgICAgaWYgKCFt
X3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFbmRDb2xvckNob29zZXIoKSwg
bV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMTMxYWMxMDI0NWNmNWM1MzZiM2RiYjhlNWU5MTNkYmIxM2YwNTMxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNo
b29zZXIuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVs
IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdl
YkNvbG9yQ2hvb3Nlcl9oCisjZGVmaW5lIFdlYkNvbG9yQ2hvb3Nlcl9oCisKKyNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKKworI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JDaG9vc2VyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENvbG9yOworY2xhc3MgQ29sb3JDaG9vc2VyQ2xp
ZW50OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3Mg
V2ViQ29sb3JDaG9vc2VyIDogcHVibGljIFdlYkNvcmU6OkNvbG9yQ2hvb3NlciB7CitwdWJsaWM6
CisgICAgV2ViQ29sb3JDaG9vc2VyKFdlYlBhZ2UqLCBXZWJDb3JlOjpDb2xvckNob29zZXJDbGll
bnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpOworICAgIH5XZWJDb2xvckNob29zZXIoKTsKKwor
ICAgIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKyAgICB2b2lk
IGRpZEVuZENob29zZXIoKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3RGcm9tUGFnZSgpOworCisgICAg
dmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kQ2hvb3NlcigpIE9WRVJSSURFOworCitwcml2YXRl
OgorICAgIFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCogbV9jb2xvckNob29zZXJDbGllbnQ7
CisgICAgV2ViUGFnZSogbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKworI2VuZGlmIC8vIFdlYkNvbG9yQ2hv
b3Nlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggN2UzNjIzYzU0NGY1MTNmY2I0ZDA5MzNjNjA1NzdkNDAwOWVkZTU1MC4uOTdlYjFiMDZl
OGY3NmIxMjViNjg3MTU0YWRkMmQ0ZWM5MDZlYTFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Nyw2ICs0OCw3IEBACiAjaW5j
bHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJk
TGlzdFByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiV2Vi
Q29sb3JDaG9vc2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnUuaCIKICNpbmNsdWRlICJX
ZWJDb250ZXh0TWVudUNsaWVudC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZXNzYWdlcy5oIgpA
QCAtMjA2LDYgKzIwOCw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25z
dCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgICwgbV90YXBIaWdo
bGlnaHRDb250cm9sbGVyKHRoaXMpCiAjZW5kaWYKICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQorICAgICwgbV9hY3RpdmVDb2xvckNob29zZXIoMCkKKyNlbmRpZgogI2lmIEVO
QUJMRShHRU9MT0NBVElPTikKICAgICAsIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIodGhpcykKICNlbmRpZgpAQCAtNjMxLDYgKzYzNiwxMyBAQCB2b2lkIFdlYlBhZ2U6OmNs
b3NlKCkKICAgICAgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CiAgICAg
fQogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgaWYgKG1fYWN0aXZlQ29sb3JD
aG9vc2VyKSB7CisgICAgICAgIG1fYWN0aXZlQ29sb3JDaG9vc2VyLT5kaXNjb25uZWN0RnJvbVBh
Z2UoKTsKKyAgICAgICAgbV9hY3RpdmVDb2xvckNob29zZXIgPSAwOworICAgIH0KKyNlbmRpZgor
CiAgICAgbV9zYW5kYm94RXh0ZW5zaW9uVHJhY2tlci5pbnZhbGlkYXRlKCk7CiAKICAgICBtX3Vu
ZGVybGF5UGFnZSA9IG51bGxwdHI7CkBAIC0yMzE0LDYgKzIzMjYsMjMgQEAgdm9pZCBXZWJQYWdl
OjpzZXRBY3RpdmVQb3B1cE1lbnUoV2ViUG9wdXBNZW51KiBtZW51KQogICAgIG1fYWN0aXZlUG9w
dXBNZW51ID0gbWVudTsKIH0KIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQordm9pZCBX
ZWJQYWdlOjpzZXRBY3RpdmVDb2xvckNob29zZXIoV2ViQ29sb3JDaG9vc2VyKiBjb2xvckNob29z
ZXIpCit7CisgICAgbV9hY3RpdmVDb2xvckNob29zZXIgPSBjb2xvckNob29zZXI7Cit9CisKK3Zv
aWQgV2ViUGFnZTo6ZGlkRW5kQ29sb3JDaG9vc2VyKCkKK3sKKyAgICBtX2FjdGl2ZUNvbG9yQ2hv
b3Nlci0+ZGlkRW5kQ2hvb3NlcigpOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZENob29zZUNvbG9y
KGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKK3sKKyAgICBtX2FjdGl2ZUNvbG9yQ2hvb3Nl
ci0+ZGlkQ2hvb3NlQ29sb3IoY29sb3IpOworfQorI2VuZGlmCisKIHZvaWQgV2ViUGFnZTo6c2V0
QWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIoUGFzc1JlZlB0cjxXZWJPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lcj4gb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIpCiB7CiAgICAgbV9hY3RpdmVPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lciA9IG9wZW5QYW5lbFJlc3VsdExpc3RlbmVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMzNlMmNlY2I2ZjczMTQx
ZTgwOThlNGZkMDY3NTAwOTk1NzQ1M2EwNC4uZmQ3NmNjNWI5MmUwOGQxZDgwMjYwOTRhMGVlNmU5
ZmU1Yzk1YzFmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCkBAIC0xMjIsNiArMTIyLDcgQEAgY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOwogY2xhc3MgUGFnZU92ZXJsYXk7CiBjbGFzcyBQbHVnaW5WaWV3OwogY2xhc3Mg
U2Vzc2lvblN0YXRlOworY2xhc3MgV2ViQ29sb3JDaG9vc2VyOwogY2xhc3MgV2ViQ29udGV4dE1l
bnU7CiBjbGFzcyBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOwogY2xhc3MgV2ViRXZlbnQ7CkBAIC0y
MTMsNyArMjE0LDE0IEBAIHB1YmxpYzoKICAgICBib29sIGlzSW5SZWRvKCkgY29uc3QgeyByZXR1
cm4gbV9pc0luUmVkbzsgfQogCiAgICAgdm9pZCBzZXRBY3RpdmVQb3B1cE1lbnUoV2ViUG9wdXBN
ZW51Kik7Ci0gICAgCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBXZWJDb2xv
ckNob29zZXIqIGFjdGl2ZUNvbG9yQ2hvb3NlcigpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlQ29s
b3JDaG9vc2VyOyB9CisgICAgdm9pZCBzZXRBY3RpdmVDb2xvckNob29zZXIoV2ViQ29sb3JDaG9v
c2VyKik7CisgICAgdm9pZCBkaWRDaG9vc2VDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpOwor
ICAgIHZvaWQgZGlkRW5kQ29sb3JDaG9vc2VyKCk7CisjZW5kaWYKKwogICAgIFdlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyKiBhY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcigpIGNvbnN0IHsg
cmV0dXJuIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuZ2V0KCk7IH0KICAgICB2b2lk
IHNldEFjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKFBhc3NSZWZQdHI8V2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXI+KTsKIApAQCAtODA4LDYgKzgxNiw5IEBAIHByaXZhdGU6CiAjaWYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpCiAgICAgUmVmUHRyPFdlYkNvbnRleHRNZW51PiBtX2NvbnRleHRN
ZW51OwogI2VuZGlmCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgV2ViQ29sb3JD
aG9vc2VyKiBtX2FjdGl2ZUNvbG9yQ2hvb3NlcjsKKyNlbmRpZgogICAgIFJlZlB0cjxXZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lcj4gbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKICAg
ICBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBtX25vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA5Yjk1MzRlYWU4
YjdmMWQ4N2RmMjUwYWEwNGJiN2IyMjRjOWExM2UwLi42Nzk5MTQ1MGJlYzM0NDhjOWVlNDM0NDNi
ZWI2MDllNjU3MDEzNTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNDUsNiArNDUsMTEgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZSB7CiAgICAgSGlnaGxpZ2h0UG90ZW50aWFsQWN0aXZhdGlvbihXZWJDb3JlOjpJ
bnRQb2ludCBwb2ludCwgV2ViQ29yZTo6SW50U2l6ZSBhcmVhKQogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBEaWRFbmRDb2xvckNob29zZXIoKTsKKyAgICBEaWRD
aG9vc2VDb2xvcihXZWJDb3JlOjpDb2xvciBjb2xvcik7CisjZW5kaWYKKwogI2lmIEVOQUJMRShD
T05URVhUX01FTlVTKQogICAgIENvbnRleHRNZW51SGlkZGVuKCkKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDIudmNwcm9qCmluZGV4IGMyZmVmMDljNjM5NjllNGJhNGNiMTE0NTFiMTQwMjA3NDBi
ODgyNjUuLjBhMzhjNGI4MjJhODI0Nzk4ZmY4YzRlZTJmM2NkMjQ4OWI3YjZkMGYgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0Mi52Y3Byb2oKQEAgLTE4MzgsNiArMTgzOCwxNCBAQAogCQkJCQk+CiAJCQkJ
PC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJD
b3JlU3VwcG9ydFxXZWJDb2xvckNob29zZXIuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJ
CTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFxX
ZWJDb2xvckNob29zZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViQ29udGV4dE1lbnVD
bGllbnQuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpAQCAtMjg4Myw2ICsyODkxLDEwIEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vz
c1xXZWJDb2xvckNob29zZXJQcm94eS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAiCiAJCQkJPgogCQkJPC9GaWxlPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148663</attachid>
            <date>2012-06-20 15:09:08 -0700</date>
            <delta_ts>2012-06-20 17:44:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87495-20120621010907.patch</filename>
            <type>text/plain</type>
            <size>42790</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzc0YTkwZjRjOGU1MDdl
Mzc4NmUxM2JkODQ5OWZjOGU4MmE2OTAyZC4uYmZmOTE1MzQ5MDUyY2Q3MTg4MDQ2MzhmYmIyOTM1
MjBmZDRmNWZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAxMi0wNi0yMCAgVGhp
YWdvIE1hcmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2FudG9zQGludGVsLmNvbT4KKworICAgICAg
ICBbV0syXSBDb2xvciBjaG9vc2VyIEFQSSBtaXNzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzQ5NQorCisgICAgICAgIFJldmlld2VkIGJ5IEFu
ZHJlYXMgS2xpbmcuCisKKyAgICAgICAgQWRkZWQgQ29sb3JDaG9vc2VyIEFQSSB0byBXZWJLaXQy
LiBUaGlzIEFQSSBhbGxvd3MgdGhlCisgICAgICAgIGVtYmVkZGVyIHRvIGRlZmluZSBhIGN1c3Rv
bSBjb2xvciBwaWNrZXIgZm9yIDxpbnB1dCB0eXBlPSJjb2xvciI+LgorCisgICAgICAgIE9ubHkg
b25lIENvbG9yQ2hvb3NlciBjYW4gYmUgYWN0aXZlIGZvciBhIHBhZ2UgYXQgYSB0aW1lLiBBbHRo
b3VnaAorICAgICAgICB0aGUgaW1wbGVtZW50YXRpb24gZG9lc24ndCBub3QgYXNzdW1lIGEgbW9k
YWwgZGlhbG9nLCBubyBvdGhlcgorICAgICAgICBjb2xvciBjaG9vc2VyIHdpbGwgYmUgY3JlYXRl
ZCB1bnRpbCB0aGUgYWN0aXZlIG9uZSBpcyBjbG9zZWQuCisKKyAgICAgICAgQWxzbyBhZGRlZCBz
dHVicyBmb3IgYWxsIHBsYXRmb3Jtcywgc28gaXQgd29udCBicmVhayB0aGUgYnVpbGQgd2hlbgor
ICAgICAgICBlbmFibGluZyBjb2xvciBjaG9vc2VyLCBldmVuIHRob3VnaCB0aGV5IGRvbid0IGhh
dmUgdGhlIGJhY2tlbmQKKyAgICAgICAgaW1wbGVtZW50ZWQgeWV0LgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBU
YXJnZXQucHJpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNw
cDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpj
cmVhdGVDb2xvckNob29zZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvUGFn
ZUNsaWVudEltcGwuaDoKKyAgICAgICAgKFBhZ2VDbGllbnRJbXBsKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29sb3JDaG9vc2VyUHJveHkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgIChQ
YWdlQ2xpZW50SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudElt
cGwuaDoKKyAgICAgICAgKFBhZ2VDbGllbnRJbXBsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjpjcmVhdGVDb2xvckNob29zZXJQcm94eSk6CisgICAgICAgICog
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChQYWdl
Q2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29sb3JDaG9vc2VyUHJveHkuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJD
b2xvckNob29zZXJQcm94eSk6CisgICAgICAgIChDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb2xvckNob29zZXJQcm94eTo6Q2xpZW50Ojp+Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29sb3JDaG9vc2VyUHJveHk6On5XZWJDb2xvckNob29zZXJQcm94eSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclByb3h5OjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29sb3JDaG9vc2VyUHJveHk6OldlYkNvbG9yQ2hvb3NlclByb3h5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnNob3dDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnNldENvbG9yQ2hvb3NlckNvbG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpl
bmRDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENob29z
ZUNvbG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRFbmRDb2xvckNob29z
ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRDcmFzaCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViUGFnZVByb3h5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKFdlYktpdDo6UXRQYWdlQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXJQcm94eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oOgorICAgICAgICAoUXRQYWdlQ2xp
ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6Y3JlYXRlQ29sb3JDaG9vc2VyUHJveHkp
OgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6
CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OldlYkNv
bG9yQ2hvb3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nlcjo6fldlYkNvbG9y
Q2hvb3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nlcjo6ZGlkQ2hvb3NlQ29s
b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OmRpZEVuZENob29zZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OmRpc2Nvbm5lY3RGcm9tUGFnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nlcjo6c2V0U2VsZWN0ZWRDb2xvcik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nlcjo6ZW5kQ2hvb3Nlcik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJDb2xvckNob29zZXIp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNsb3Nl
KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEFjdGl2
ZUNvbG9yQ2hvb3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZEVuZENvbG9yQ2hv
b3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZENob29zZUNvbG9yKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKFdlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjphY3RpdmVDb2xvckNo
b29zZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoKKwogMjAxMi0wNi0yMCAgSnVsaWVuIENo
YWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgSW50U2l6ZSBp
biBSZW5kZXJMYXllciB0byByZXByZXNlbnQgc2Nyb2xsIG9mZnNldHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50
eHQKaW5kZXggNDVkYmUyNDMwMDkzMGZiYzA0NGIyZDNmOGM2MjUyZjY4ODkwMzE4Ny4uYjhjNjAz
MzYyNjE0OTAwZTAxMTc2YzdmNmMzZWM3ZGM1OTY3ODMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQK
QEAgLTQwMSw2ICs0MDEsNyBAQCBTRVQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9S
ZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcAogCiAgICAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkRyYWdDbGllbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAzNTIz
OTE4MGQwNjQ1ZTE3MmIyNTAwMTE5NDE2ZDY3OWI4NzM3MDc3Li4yMzQyMzA0NWRkZmZiNGI1Nzk5
M2Q5YjYxOWJiYTg1MGY0YTQ3MGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTc1Niw2ICs3NTYsNyBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcCBcCiAJU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAgXAogCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbG9yQ2hvb3NlclByb3h5LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwIFwKQEAgLTk5OSw2ICsxMDAwLDggQEAgd2Via2l0Ml9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0
aXZlVGV4dENsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggXAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmNwcCBcCisJU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuaCBcCiAJU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1l
bnVDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJEYXRhYmFzZU1hbmFnZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Rhcmdl
dC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IDllNWJjNGUzN2Y1NjlkMDNh
YTIwOGFjZjBlNDA4MzJlOWM5NmRiNmQuLmFhMDhlM2NkNzNhNzc2ZjVlZjY0M2RhMDE0MDc1MDk5
MmYxZGRhZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysrIGIvU291
cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMjI5LDYgKzIyOSw3IEBAIEhFQURFUlMgKz0gXAog
ICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmggXAogICAgIFVJUHJvY2Vzcy9XZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJCYWNrRm9y
d2FyZExpc3QuaCBcCisgICAgVUlQcm9jZXNzL1dlYkNvbG9yQ2hvb3NlclByb3h5LmggXAogICAg
IFVJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggXAogICAgIFVJUHJvY2Vzcy9X
ZWJDb250ZXh0LmggXAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5o
IFwKQEAgLTM0NSw2ICszNDYsNyBAQCBIRUFERVJTICs9IFwKICAgICBXZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIFwKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNvbG9yQ2hvb3Nlci5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNv
bnRleHRNZW51Q2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0
YWJhc2VNYW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0Ns
aWVudC5oIFwKQEAgLTcxMSw2ICs3MTMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIFwKICAgICBXZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIFwKKyAgICBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDU2NzU0OGY1ZGE1NzRmOTZm
MGRiM2E4ZGY1NGNkYjZiNGJkYTgzYzAuLmU2OWY4N2QyODAxMmRlMTUzMGM5MmM5Y2NiMjIxYmRj
ODIxYzRhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1Bh
Z2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Q
YWdlQ2xpZW50SW1wbC5jcHAKQEAgLTIwNSw2ICsyMDUsMTQgQEAgUGFzc1JlZlB0cjxXZWJDb250
ZXh0TWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQ
YWdlUHIKICAgICByZXR1cm4gMDsKIH0KIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQor
UGFzc1JlZlB0cjxXZWJDb2xvckNob29zZXJQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZUNv
bG9yQ2hvb3NlclByb3h5KFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorI2VuZGlmCisKIHZvaWQg
UGFnZUNsaWVudEltcGw6OnNldEZpbmRJbmRpY2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5kaWNhdG9y
PiwgYm9vbCwgYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggYTRkY2Q5M2Uz
OTc1MDk2ZGU0NzIwZTRjMzNiZWE4NTU1MjE0YzQ4OC4uNDI3ZWY1Mjk3MDAxYjAwMTI3NzhkZmIy
MTQ3MGMzYjQ3NjI2OTFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9QYWdlQ2xpZW50SW1wbC5oCkBAIC04NCw2ICs4NCwxMCBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHko
V2ViUGFnZVByb3h5Kik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvbnRleHRNZW51UHJv
eHk+IGNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5Kik7CiAKKyNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29sb3JDaG9vc2Vy
UHJveHk+IGNyZWF0ZUNvbG9yQ2hvb3NlclByb3h5KFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNv
cmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpOworI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgc2V0
RmluZEluZGljYXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sLCBib29sKTsKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCB2b2lkIGVudGVyQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCmlu
ZGV4IDhmYmZlNzNmNjU1ZmRlOWRmNDQxYzBhZjFmNzc1YjgzZWRjMTM5NTguLjhlY2Q0ODBlNTVl
ODFlM2UxYjQ0NGE5NDI5YzgxYTJhNDA4NmQxN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTIyOSw2ICsyMjksMTQg
QEAgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRl
Q29udGV4dE1lbnVQcm94eShXZWJQYWdlUHIKICAgICByZXR1cm4gV2ViQ29udGV4dE1lbnVQcm94
eUd0azo6Y3JlYXRlKG1fdmlld1dpZGdldCwgcGFnZSk7CiB9CiAKKyNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9DT0xPUikKK1Bhc3NSZWZQdHI8V2ViQ29sb3JDaG9vc2VyUHJveHk+IFBhZ2VDbGllbnRJ
bXBsOjpjcmVhdGVDb2xvckNob29zZXJQcm94eShXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJDb3Jl
OjpDb2xvciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKyNl
bmRpZgorCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRGaW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8
RmluZEluZGljYXRvcj4sIGJvb2wgZmFkZU91dCwgYm9vbCBhbmltYXRlKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFn
ZUNsaWVudEltcGwuaAppbmRleCA1NGFkOTlmOGZhMDRiZDAyZjBjNTE0OGM0NWE5ZmViN2YyMDVm
YThjLi43MmZjMzQ1MzlhNjA4MDU2M2Q3MzRmYTg5MjM5NzFiOGQwNGY4MGI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTgx
LDYgKzgxLDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9uZVdpdGhLZXlFdmVudChj
b25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCB3YXNFdmVudEhhbmRsZWQpOwogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJv
eHkoV2ViUGFnZVByb3h5Kik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvbnRleHRNZW51
UHJveHk+IGNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5Kik7CisjaWYgRU5BQkxF
KElOUFVUX1RZUEVfQ09MT1IpCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvbG9yQ2hvb3Nl
clByb3h5PiBjcmVhdGVDb2xvckNob29zZXJQcm94eShXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJD
b3JlOjpDb2xvciYgaW50aWFsQ29sb3IpOworI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIHNldEZp
bmRJbmRpY2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5kaWNhdG9yPiwgYm9vbCBmYWRlT3V0LCBib29s
IGFuaW1hdGUpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VTY3JvbGxiYXJzRm9yTWFpbkZy
YW1lKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGZsYXNoQmFja2luZ1N0b3JlVXBkYXRlcyhj
b25zdCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHVwZGF0ZVJlY3RzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IGFjMDc0
ZThjYzU1NzI4NDQxODJhYTU5MzVjMTA0OWVlZjdjN2Q1NGMuLjhhZjZmZjQwYzBkZGE1MjExNjU0
YTk0NzNjZGEyYzNkMWM2OTBkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaApAQCAtOTQsNiArOTQsMTAgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVBy
b3h5KFdlYlBhZ2VQcm94eSopOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVu
dVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSopOwogCisjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvbG9yQ2hv
b3NlclByb3h5PiBjcmVhdGVDb2xvckNob29zZXJQcm94eShXZWJQYWdlUHJveHkqLCBjb25zdCBX
ZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yKTsKKyNlbmRpZgorCiAgICAgdm9pZCBzZXRGaW5k
SW5kaWNhdG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgZmFkZU91dCwgYm9vbCBh
bmltYXRlKTsKIAogICAgIHZpcnR1YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggOGQwOTEzZTUyYzgzZmMxNTZh
NTc4OGE1MWU4NDcyZmJhNzdlZDM3Ny4uM2JkNzAyMDc4NmEzNTI4N2UxMDAyYmVmZDZjM2IxOTI0
ODJmYTYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFn
ZUNsaWVudEltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFn
ZUNsaWVudEltcGwubW0KQEAgLTM2MCw2ICszNjAsMTQgQEAgUGFzc1JlZlB0cjxXZWJDb250ZXh0
TWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdl
UHIKICAgICByZXR1cm4gV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Y3JlYXRlKG1fd2tWaWV3LCBw
YWdlKTsKIH0KIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorUGFzc1JlZlB0cjxXZWJD
b2xvckNob29zZXJQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZUNvbG9yQ2hvb3NlclByb3h5
KFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwOworfQorI2VuZGlmCisKIHZvaWQgUGFnZUNsaWVudEltcGw6
OnNldEZpbmRJbmRpY2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5kaWNhdG9yPiBmaW5kSW5kaWNhdG9y
LCBib29sIGZhZGVPdXQsIGJvb2wgYW5pbWF0ZSkKIHsKICAgICBbbV93a1ZpZXcgX3NldEZpbmRJ
bmRpY2F0b3I6ZmluZEluZGljYXRvciBmYWRlT3V0OmZhZGVPdXQgYW5pbWF0ZTphbmltYXRlXTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDc0MDFmZDc5OWQ0YWQwZWNi
NTNjM2JiZjRjMzYxMDc3MzgwZDBjZTUuLmZjNWQ3NDdjNTNhMjRkMGUwZTBkY2ZjZmEyY2EwOGUy
NDE1YTExMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMjcsNiAr
MjcsNyBAQAogI2RlZmluZSBQYWdlQ2xpZW50X2gKIAogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1h
cC5oIgorI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3NlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFn
ZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHkuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0FsdGVybmF0aXZlVGV4dENsaWVudC5oPgpAQCAtNjEsNiArNjIsOSBAQCBjbGFzcyBXZWJH
ZXN0dXJlRXZlbnQ7CiBjbGFzcyBXZWJDb250ZXh0TWVudVByb3h5OwogY2xhc3MgV2ViRWRpdENv
bW1hbmRQcm94eTsKIGNsYXNzIFdlYlBvcHVwTWVudVByb3h5OworI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQorY2xhc3MgV2ViQ29sb3JDaG9vc2VyUHJveHk7CisjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKFdJTikKIHN0cnVjdCBXaW5kb3dHZW9tZXRyeTsKQEAgLTE2OSw2ICsxNzMsMTAgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRl
UG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5KikgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJDb250ZXh0TWVudVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94
eSopID0gMDsKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb2xvckNob29zZXJQcm94eT4gY3JlYXRlQ29sb3JDaG9vc2VyUHJveHkoV2Vi
UGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvcikgPSAwOworI2Vu
ZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgc2V0RmluZEluZGljYXRvcihQYXNzUmVmUHRyPEZpbmRJ
bmRpY2F0b3I+LCBib29sIGZhZGVPdXQsIGJvb2wgYW5pbWF0ZSkgPSAwOwogI2lmIFBMQVRGT1JN
KFdJTikKICAgICB2aXJ0dWFsIHZvaWQgZGlkSW5zdGFsbE9yVW5pbnN0YWxsUGFnZU92ZXJsYXko
Ym9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9y
Q2hvb3NlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JDaG9vc2Vy
UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43OTA2YzEwZmFmZmU4YTBkMzA4NTg5ODQ3MDk5NzdjMmQxYTZm
NWI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9y
Q2hvb3NlclByb3h5LmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBXZWJDb2xvckNob29zZXJQcm94eV9oCisjZGVmaW5lIFdlYkNvbG9yQ2hvb3NlclByb3h5
X2gKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorCisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIENvbG9yOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZVBy
b3h5OworCitjbGFzcyBXZWJDb2xvckNob29zZXJQcm94eSA6IHB1YmxpYyBSZWZDb3VudGVkPFdl
YkNvbG9yQ2hvb3NlclByb3h5PiB7CitwdWJsaWM6CisgICAgY2xhc3MgQ2xpZW50IHsKKyAgICBw
cm90ZWN0ZWQ6CisgICAgICAgIHZpcnR1YWwgfkNsaWVudCgpIHsgfQorCisgICAgcHVibGljOgor
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3Im
KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRDb2xvckNob29zZXIoKSA9IDA7Cisg
ICAgfTsKKyAgICB2aXJ0dWFsIH5XZWJDb2xvckNob29zZXJQcm94eSgpIHsgfQorCisgICAgdm9p
ZCBpbnZhbGlkYXRlKCkgeyBtX2NsaWVudCA9IDA7IH0KKworICAgIHZpcnR1YWwgdm9pZCBlbmRD
aG9vc2VyKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9yKGNvbnN0IFdl
YkNvcmU6OkNvbG9yJikgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgV2ViQ29sb3JDaG9vc2VyUHJv
eHkoQ2xpZW50KiBjbGllbnQpCisgICAgICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgIHsKKyAg
ICB9CisKKyAgICBDbGllbnQqIG1fY2xpZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKworI2VuZGlmIC8vIFdlYkNv
bG9yQ2hvb3NlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggMTZkNGE5ODFkZjVhM2MxODZlZDM1ODI4NTc2NTkxY2ZmYWZiMmNlZC4uNTE1ZDlh
ZjFkMjc3ODVkYTM2ZjJhNDAwNWNkNTY1MTUyYWMzZDBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDAzLDYgKzQwNCwxMyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6Y2xvc2UoKQogICAgICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0g
MDsKICAgICB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBpZiAobV9jb2xv
ckNob29zZXIpIHsKKyAgICAgICAgbV9jb2xvckNob29zZXItPmludmFsaWRhdGUoKTsKKyAgICAg
ICAgbV9jb2xvckNob29zZXIgPSBudWxscHRyOworICAgIH0KKyNlbmRpZgorCiAjaWYgRU5BQkxF
KEdFT0xPQ0FUSU9OKQogICAgIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
aW52YWxpZGF0ZVJlcXVlc3RzKCk7CiAjZW5kaWYKQEAgLTI2NDEsNiArMjY0OSw1MCBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6bmVlZFRvdWNoRXZlbnRzKGJvb2wgbmVlZFRvdWNoRXZlbnRzKQogfQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK3ZvaWQgV2ViUGFnZVByb3h5
OjpzaG93Q29sb3JDaG9vc2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpCit7
CisgICAgQVNTRVJUKCFtX2NvbG9yQ2hvb3Nlcik7CisKKyAgICBtX2NvbG9yQ2hvb3NlciA9IG1f
cGFnZUNsaWVudC0+Y3JlYXRlQ29sb3JDaG9vc2VyUHJveHkodGhpcywgaW5pdGlhbENvbG9yKTsK
K30KKwordm9pZCBXZWJQYWdlUHJveHk6OnNldENvbG9yQ2hvb3NlckNvbG9yKGNvbnN0IFdlYkNv
cmU6OkNvbG9yJiBjb2xvcikKK3sKKyAgICBBU1NFUlQobV9jb2xvckNob29zZXIpOworCisgICAg
bV9jb2xvckNob29zZXItPnNldFNlbGVjdGVkQ29sb3IoY29sb3IpOworfQorCit2b2lkIFdlYlBh
Z2VQcm94eTo6ZW5kQ29sb3JDaG9vc2VyKCkKK3sKKyAgICBBU1NFUlQobV9jb2xvckNob29zZXIp
OworCisgICAgbV9jb2xvckNob29zZXItPmVuZENob29zZXIoKTsKK30KKwordm9pZCBXZWJQYWdl
UHJveHk6OmRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKK3sKKyAg
ICBpZiAoIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJvY2VzcygpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRDaG9vc2VDb2xvcihjb2xvciksIG1fcGFnZUlEKTsKK30K
Kwordm9pZCBXZWJQYWdlUHJveHk6OmRpZEVuZENvbG9yQ2hvb3NlcigpCit7CisgICAgaWYgKCFp
c1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChtX2NvbG9yQ2hvb3Nlcik7
CisKKyAgICBtX2NvbG9yQ2hvb3Nlci0+aW52YWxpZGF0ZSgpOworICAgIG1fY29sb3JDaG9vc2Vy
ID0gbnVsbHB0cjsKKworICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlk
RW5kQ29sb3JDaG9vc2VyKCksIG1fcGFnZUlEKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRHJhdygpCiB7CiAgICAgbV91aUNsaWVudC5kaWREcmF3KHRoaXMpOwpAQCAtMzM5
Myw2ICszNDQ1LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2goKQogICAg
ICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVsbHB0cjsKICAgICB9CiAKKyNpZiBF
TkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBpZiAobV9jb2xvckNob29zZXIpIHsKKyAgICAg
ICAgbV9jb2xvckNob29zZXItPmludmFsaWRhdGUoKTsKKyAgICAgICAgbV9jb2xvckNob29zZXIg
PSBudWxscHRyOworICAgIH0KKyNlbmRpZgorCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAg
IG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3Rz
KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA1
OTliY2M0N2ZjOGQ1NmIwYzE3MDE3MWFmNmM0MTgwODliYzU4YjBjLi5mMzFlZWQ5YjA1ZTdlY2Jj
OTRmOWEwZjE2NmFkMGU5ZTk4MThhYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgi
CiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVkZSAiV0tQYWdlUHJpdmF0ZS5oIgorI2luY2x1
ZGUgIldlYkNvbG9yQ2hvb3NlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVJdGVt
RGF0YS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldl
YkZpbmRDbGllbnQuaCIKQEAgLTU5LDYgKzYwLDcgQEAKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxv
YWRDbGllbnQuaCIKICNpbmNsdWRlICJXZWJVSUNsaWVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
QWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Db2xvci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdTZXNz
aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IaXRUZXN0UmVzdWx0Lmg+CkBAIC0yMzEsNyArMjMz
LDEyIEBAIHByaXZhdGU6CiAgICAgQ2FsbGJhY2tGdW5jdGlvbiBtX2NhbGxiYWNrOwogfTsKIAot
Y2xhc3MgV2ViUGFnZVByb3h5IDogcHVibGljIEFQSU9iamVjdCwgcHVibGljIFdlYlBvcHVwTWVu
dVByb3h5OjpDbGllbnQgeworY2xhc3MgV2ViUGFnZVByb3h5CisgICAgOiBwdWJsaWMgQVBJT2Jq
ZWN0CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgLCBwdWJsaWMgV2ViQ29sb3JD
aG9vc2VyUHJveHk6OkNsaWVudAorI2VuZGlmCisgICAgLCBwdWJsaWMgV2ViUG9wdXBNZW51UHJv
eHk6OkNsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5
cGVQYWdlOwogCkBAIC04MTAsNiArODE3LDE0IEBAIHByaXZhdGU6CiAgICAgdm9pZCBuZWVkVG91
Y2hFdmVudHMoYm9vbCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQor
ICAgIHZvaWQgc2hvd0NvbG9yQ2hvb3Nlcihjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENv
bG9yKTsKKyAgICB2b2lkIHNldENvbG9yQ2hvb3NlckNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9y
Jik7CisgICAgdm9pZCBlbmRDb2xvckNob29zZXIoKTsKKyAgICB2b2lkIGRpZENob29zZUNvbG9y
KGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdm9pZCBkaWRFbmRDb2xvckNob29zZXIoKTsK
KyNlbmRpZgorCiAgICAgdm9pZCBlZGl0b3JTdGF0ZUNoYW5nZWQoY29uc3QgRWRpdG9yU3RhdGUm
KTsKIAogICAgIC8vIEJhY2svRm9yd2FyZCBsaXN0IG1hbmFnZW1lbnQKQEAgLTEwODksNiArMTEw
NCw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25lZWRUb3VjaEV2ZW50czsKICAgICBEZXF1ZTxR
dWV1ZWRUb3VjaEV2ZW50cz4gbV90b3VjaEV2ZW50UXVldWU7CiAjZW5kaWYKKyNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKKyAgICBSZWZQdHI8V2ViQ29sb3JDaG9vc2VyUHJveHk+IG1fY29s
b3JDaG9vc2VyOworI2VuZGlmCiAKICAgICB1aW50NjRfdCBtX3BhZ2VJRDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMDZi
MzcyZjA4NTViZTAyOGMzMjJiMWE4MWZkYjgxYmU4ZDIwZDE2Zi4uMDM0MTI3NjZkZTA4ZWY0ODdk
ZGYwZjUxOGE2YTY5YTFiMTM1ZjYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC04Myw2ICs4MywxMiBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlUHJveHkgewogICAgIE5lZWRUb3VjaEV2ZW50cyhib29sIG5lZWRUb3VjaEV2ZW50
cykKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgU2hvd0NvbG9y
Q2hvb3NlcihXZWJDb3JlOjpDb2xvciBpbml0aWFsQ29sb3IpOworICAgIFNldENvbG9yQ2hvb3Nl
ckNvbG9yKFdlYkNvcmU6OkNvbG9yIGNvbG9yKTsKKyAgICBFbmRDb2xvckNob29zZXIoKTsKKyNl
bmRpZgorCiAgICAgIyBQb2xpY3kgbWVzc2FnZXMKICAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZSh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkgLT4gKGJvb2wg
cmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90IHBvbGljeUFjdGlvbiwgdWludDY0X3QgZG93
bmxvYWRJRCkKICAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQzMl90IG5hdmlnYXRpb25UeXBlLCB1aW50MzJfdCBtb2RpZmllcnMsIGludDMy
X3QgbW91c2VCdXR0b24sIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCB1aW50NjRf
dCBsaXN0ZW5lcklELCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVz
ZXJEYXRhKSAtPiAoYm9vbCByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QgcG9saWN5QWN0
aW9uLCB1aW50NjRfdCBkb3dubG9hZElEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0UGFnZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UXRQYWdlQ2xpZW50LmNwcAppbmRleCA4ZTlhYjJlZmRjYzcxNDM4NjQ2OGE4ZjFkNTY1OTJhNzMz
M2Q0ZmNlLi5lYmE0ZjhiODAwYTM5ZmE5OTg2ODk3YmQwMTZjNzc1Njg2ZDVjYTlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmNwcApAQCAtMjA1LDYgKzIw
NSwxNCBAQCBQYXNzUmVmUHRyPFdlYkNvbnRleHRNZW51UHJveHk+IFF0UGFnZUNsaWVudDo6Y3Jl
YXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveAogICAgIHJldHVybiBXZWJDb250ZXh0TWVu
dVByb3h5UXQ6OmNyZWF0ZSh3ZWJQYWdlUHJveHkpOwogfQogCisjaWYgRU5BQkxFKElOUFVUX1RZ
UEVfQ09MT1IpCitQYXNzUmVmUHRyPFdlYkNvbG9yQ2hvb3NlclByb3h5PiBRdFBhZ2VDbGllbnQ6
OmNyZWF0ZUNvbG9yQ2hvb3NlclByb3h5KFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OkNv
bG9yJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorI2VuZGlm
CisKIHZvaWQgUXRQYWdlQ2xpZW50OjpmbGFzaEJhY2tpbmdTdG9yZVVwZGF0ZXMoY29uc3QgVmVj
dG9yPEludFJlY3Q+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oCmluZGV4IGUzM2RhZGY2MWU3NjhjNDQzZmNlMjg4
Y2M4ZGU2NTNhNmQ2ODZjMGMuLjVjNjlhYzg3OTFmZWMwMjZkYTdkMmI4N2VlMmI0N2YyOTc5NWYw
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmgKQEAgLTg2
LDYgKzg2LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkb25lV2l0aEtleUV2ZW50KGNv
bnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sIHdhc0V2ZW50SGFuZGxlZCkgeyB9CiAg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQ
cm94eShXZWJQYWdlUHJveHkqKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1l
bnVQcm94eT4gY3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkqKTsKKyNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29sb3JDaG9v
c2VyUHJveHk+IGNyZWF0ZUNvbG9yQ2hvb3NlclByb3h5KFdlYlBhZ2VQcm94eSosIGNvbnN0IFdl
YkNvcmU6OkNvbG9yJiBpbnRpYWxDb2xvcik7CisjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgc2V0
RmluZEluZGljYXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sIGZhZGVPdXQsIGJv
b2wgYW5pbWF0ZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdExvYWRGb3JNYWluRnJh
bWUoYm9vbCB1c2VDdXN0b21SZXByZXNlbnRhdGlvbikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiBz
dWdnZXN0ZWRGaWxlbmFtZSwgY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYpIHsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKaW5kZXggZjZlNzVkNjhhYmUxZWE2
MWI0YjI1MWNkMWIyMWRjZDdiMjNlY2U4YS4uMjhkMjZmMWYzZTQyYmJmNDM1MDIyY2UyNjg5Zjhh
ZTY4MGZiODM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCkBA
IC0xNDI5LDYgKzE0MjksMTQgQEAgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVudVByb3h5PiBXZWJW
aWV3OjpjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSogcGEKICAgICByZXR1cm4g
V2ViQ29udGV4dE1lbnVQcm94eVdpbjo6Y3JlYXRlKG1fd2luZG93LCBwYWdlKTsKIH0KIAorI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorUGFzc1JlZlB0cjxXZWJDb2xvckNob29zZXJQcm94
eT4gV2ViVmlldzo6Y3JlYXRlQ29sb3JDaG9vc2VyUHJveHkoV2ViUGFnZVByb3h5KiwgY29uc3Qg
V2ViQ29yZTo6Q29sb3ImKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7
Cit9CisjZW5kaWYKKwogdm9pZCBXZWJWaWV3OjpzZXRGaW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8
RmluZEluZGljYXRvcj4gcHJwRmluZEluZGljYXRvciwgYm9vbCBmYWRlT3V0LCBib29sIGFuaW1h
dGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGFuaW1hdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
d2luL1dlYlZpZXcuaAppbmRleCBkYmExNTkzZjEwOWUxZTkyMGEwMmRjYTQ5MjYyZTgwY2I0OGIz
YmFjLi43MWE5ZTU3OGZhMjVjZDAwZGI0MjU3ZTk2YzMyYTBmY2E1OGU5NzRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuaApAQCAtMTk4LDYgKzE5OCw5IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGNvbXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlZChib29sKTsKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVBy
b3h5KFdlYlBhZ2VQcm94eSopOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVu
dVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSopOworI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb2xvckNob29z
ZXJQcm94eT4gY3JlYXRlQ29sb3JDaG9vc2VyUHJveHkoV2ViUGFnZVByb3h5KiwgY29uc3QgV2Vi
Q29yZTo6Q29sb3ImIGludGlhbENvbG9yKTsKKyNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBzZXRG
aW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgZmFkZU91dCwgYm9v
bCBhbmltYXRlKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkSW5zdGFsbE9yVW5pbnN0YWxsUGFnZU92
ZXJsYXkoYm9vbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAzZjk4ZTliNDhmOGNmZDE4ZTQxMDZlMDM1MTc2OTI1ZTQ4ZjYy
MmI3Li42MDc3ZjZkM2UzOGE0NTEwMTIzOGI1NDIzNzhjYzI4N2UwNGRiYWYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjQs
NiArMzI0LDkgQEAKIAkJMzdDNEU5RjYxMzFDNkU3RTAwMjlCRDVBIC8qIGNvbmZpZy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjM5NkVBNTUxMkUwRUQy
RDAwRjRGRUI3IC8qIGNvbmZpZy5oICovOyB9OwogCQkzN0Y2MjNCODEyQTU3QjYyMDBFM0ZERjYg
LyogV0tGaW5kT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzdGNjIzQjcxMkE1N0I2MjAwRTNGREY2IC8qIFdLRmluZE9wdGlvbnMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzN0Y5MERFMzEz
NzY1NjBFMDA1MUNGNjggLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYzODk1NEYxMzNCRUYzODAwODk0MUQ1
IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCAqLzsgfTsKKwkJM0Y4N0I5QkQxNTg5NDAxMjAw
OTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCQTE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JD
aG9vc2VyLmNwcCAqLzsgfTsKKwkJM0Y4N0I5QkUxNTg5NDAxOTAwOTBGRjYyIC8qIFdlYkNvbG9y
Q2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
M0Y4N0I5QkIxNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovOyB9OworCQkz
Rjg3QjlDMDE1ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyUHJveHkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODdCOUJGMTU4OTQwRDgw
MDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXJQcm94eS5oICovOyB9OwogCQk0RjYwMTQzMjE1NUM1
QUEyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJs
b2NraW5nUmVzcG9uc2VNYXAuaCAqLzsgfTsKIAkJNTEwMjFFOUMxMkIxNjc4ODAwNUMwMzNDIC8q
IFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRN
ZW51Q2xpZW50TWFjLm1tICovOyB9OwogCQk1MTBGQkI5QTEyODhDOTVFMDBBRkZERjQgLyogV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTBGQkI5ODEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJ
dGVtRGF0YS5jcHAgKi87IH07CkBAIC0xMzQzLDYgKzEzNDYsOSBAQAogCQkzNzk0ODQwNjE1MEM0
Qjk2MDBFNTJDRTkgLyogV0tSZW5kZXJMYXllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXS1JlbmRlckxheWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMzc5NDg0MDcxNTBDNEI5NjAwRTUyQ0U5IC8qIFdLUmVuZGVyTGF5ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tSZW5kZXJMYXllci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzN0Y2MjNCNzEyQTU3QjYyMDBFM0ZERjYgLyogV0tGaW5kT3B0aW9u
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ZpbmRPcHRpb25zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGODdCOUJBMTU4OTNGNjMwMDkwRkY2MiAvKiBX
ZWJDb2xvckNob29zZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViQ29sb3JDaG9vc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0Y4N0I5
QkIxNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDb2xvckNob29zZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJM0Y4N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3NlclByb3h5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3NlclByb3h5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGNjAxNDMwMTU1QzVBMzIwMDFGQkRF
MCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEJsb2NraW5nUmVzcG9uc2VNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8qIFdlYlByb2Nlc3NTaGltLmR5bGliICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1v
LmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gV2ViUHJvY2Vzc1NoaW0uZHlsaWI7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMDIxRTlCMTJCMTY3ODgw
MDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjc3Miw2ICsyNzc4LDggQEAKIAkJCQlDRURBMTJERTE1
MkNDQUU4MDBEOUUwOEQgLyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggKi8sCiAJCQkJQkMx
MTFBNTMxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkNocm9tZUNsaWVudC5jcHAgKi8sCiAJCQkJQkMw
MzJENjAxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNocm9tZUNsaWVudC5oICovLAorCQkJCTNGODdC
OUJBMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwICovLAorCQkJCTNGODdC
OUJCMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLywKIAkJCQlCQzExMUE1
NDExMkY0RkJCMDAzMzdCQUIgLyogV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwICovLAogCQkJCUJD
MDMyRDYyMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5oICovLAogCQkJ
CUY2QTI1RkRBMTJBREM2Q0MwMERDNDBDQyAvKiBXZWJEYXRhYmFzZU1hbmFnZXIuY3BwICovLApA
QCAtMjg4NCw2ICsyODkyLDcgQEAKIAkJCQk1MTJFMzVGMDEzMEI2MzhDMDBBQkQxOUEgLyogV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQlCQzcyQkEx
QjExRTY0OTA3MDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRMaXN0LmNwcCAqLywKIAkJCQlCQzcy
QkExQzExRTY0OTA3MDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRMaXN0LmggKi8sCisJCQkJM0Y4
N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3NlclByb3h5LmggKi8sCiAJCQkJ
QkM0QTYyQTUxNDc0NEVDNjAwNkM2ODFBIC8qIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
ICovLAogCQkJCUJDNEE2MkE2MTQ3NDRFQzYwMDZDNjgxQSAvKiBXZWJDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggKi8sCiAJCQkJQkNCOUUyNDIxMTIwREFDQTAwQTEzN0UwIC8qIFdlYkNvbnRleHQu
Y3BwICovLApAQCAtNDE5MSw2ICs0MjAwLDggQEAKIAkJCQlDRURBMTJFMzE1MkNEMUIzMDBEOUUw
OEQgLyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTk1
ODJEMzE1M0NCRkQ3MDBCNjA4NzUgLyogUERGS2l0SW1wb3J0cy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTFFRkMxQ0YxNTI0RTYyNTAwQzlBOTM4IC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQkzRjg3QjlCRTE1ODk0MDE5MDA5MEZGNjIgLyogV2ViQ29s
b3JDaG9vc2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQkzRjg3QjlDMDE1ODk0MEQ4MDA5MEZGNjIg
LyogV2ViQ29sb3JDaG9vc2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNDkzOSw2ICs0OTUw
LDcgQEAKIAkJCQk1MUZBMkQ3NDE1MjEyREYxMDBDMUJBMEIgLyogSW5qZWN0ZWRCdW5kbGVET01X
aW5kb3dFeHRlbnNpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGQTJENzcxNTIxMkUyNjAw
QzFCQTBCIC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTFBMkE0QjBFMTU4NkEyMjQwMDkwQzlFOSAvKiBDb2xvclNwYWNlRGF0YS5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTNGODdCOUJEMTU4OTQwMTIwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggYzA2ZjExYjM2
OTQxZjRmZjYwYjg3ZmViMzgwM2IwMjI4MjA1YzJjYS4uNzI5ZmMxMWNmNmE0YTc4YmRiZWE5NTdi
Mzc0OGY4ZTcyNzdlOTVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oIgogI2luY2x1
ZGUgIkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCIKICNpbmNsdWRlICJMYXllclRy
ZWVIb3N0LmgiCisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJG
cmFtZUxvYWRlckNsaWVudC5oIgpAQCAtNTk3LDEwICs1OTgsMTIgQEAgYm9vbCBXZWJDaHJvbWVD
bGllbnQ6OnBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwg
Y29uc3QgSW4KIH0KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotUGFzc093blB0cjxD
b2xvckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hv
b3NlckNsaWVudCosIGNvbnN0IENvbG9yJikKK1Bhc3NPd25QdHI8Q29sb3JDaG9vc2VyPiBXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqIGNsaWVu
dCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
ICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChtX3BhZ2UtPmFjdGl2ZUNvbG9yQ2hvb3Nlcigp
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2Vi
Q29sb3JDaG9vc2VyKG1fcGFnZSwgY2xpZW50LCBpbml0aWFsQ29sb3IpKTsKIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNvbG9yQ2hvb3Nlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNvbG9yQ2hvb3Nlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmNiMGYzYzU2NDcwODc3MmM2YmRl
ZDU4N2ExNDdiZDY4OWJlYzY0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmNwcApAQCAtMCwwICsxLDkw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViQ29sb3JDaG9vc2VyLmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKworI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNp
bmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yQ2hvb3NlckNsaWVudC5oPgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkNvbG9yQ2hvb3Nlcjo6V2Vi
Q29sb3JDaG9vc2VyKFdlYlBhZ2UqIHBhZ2UsIENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBj
b25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQorICAgIDogbV9jb2xvckNob29zZXJDbGllbnQoY2xp
ZW50KQorICAgICwgbV9wYWdlKHBhZ2UpCit7CisgICAgbV9wYWdlLT5zZXRBY3RpdmVDb2xvckNo
b29zZXIodGhpcyk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dDb2xvckNob29zZXIoaW5pdGlhbENvbG9yKSwg
bV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK1dlYkNvbG9yQ2hvb3Nlcjo6fldlYkNvbG9yQ2hvb3Nl
cigpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZS0+
c2V0QWN0aXZlQ29sb3JDaG9vc2VyKDApOworfQorCit2b2lkIFdlYkNvbG9yQ2hvb3Nlcjo6ZGlk
Q2hvb3NlQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIG1fY29sb3JDaG9vc2VyQ2xp
ZW50LT5kaWRDaG9vc2VDb2xvcihjb2xvcik7Cit9CisKK3ZvaWQgV2ViQ29sb3JDaG9vc2VyOjpk
aWRFbmRDaG9vc2VyKCkKK3sKKyAgICBtX2NvbG9yQ2hvb3NlckNsaWVudC0+ZGlkRW5kQ2hvb3Nl
cigpOworfQorCit2b2lkIFdlYkNvbG9yQ2hvb3Nlcjo6ZGlzY29ubmVjdEZyb21QYWdlKCkKK3sK
KyAgICBtX3BhZ2UgPSAwOworfQorCit2b2lkIFdlYkNvbG9yQ2hvb3Nlcjo6c2V0U2VsZWN0ZWRD
b2xvcihjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJl
dHVybjsKKworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpTZXRDb2xvckNob29zZXJDb2xvcihjb2xvciksIG1fcGFnZS0+
cGFnZUlEKCkpOworfQorCit2b2lkIFdlYkNvbG9yQ2hvb3Nlcjo6ZW5kQ2hvb3NlcigpCit7Cisg
ICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYlByb2Nlc3M6OnNoYXJl
ZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFbmRDb2xvckNo
b29zZXIoKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xZTZmZWVlZTk2NTBkOWQzZmE1ZDk4MmRjOWEyNjFjNWE1ZDVmM2IwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDb2xvckNob29zZXIuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFdlYkNvbG9yQ2hvb3Nlcl9oCisjZGVmaW5lIFdlYkNvbG9yQ2hvb3Nlcl9oCisKKyNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKworI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JDaG9v
c2VyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENvbG9yOworY2xhc3MgQ29sb3JD
aG9vc2VyQ2xpZW50OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsK
KworY2xhc3MgV2ViQ29sb3JDaG9vc2VyIDogcHVibGljIFdlYkNvcmU6OkNvbG9yQ2hvb3NlciB7
CitwdWJsaWM6CisgICAgV2ViQ29sb3JDaG9vc2VyKFdlYlBhZ2UqLCBXZWJDb3JlOjpDb2xvckNo
b29zZXJDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpOworICAgIHZpcnR1YWwgfldlYkNv
bG9yQ2hvb3NlcigpOworCisgICAgdm9pZCBkaWRDaG9vc2VDb2xvcihjb25zdCBXZWJDb3JlOjpD
b2xvciYpOworICAgIHZvaWQgZGlkRW5kQ2hvb3NlcigpOworICAgIHZvaWQgZGlzY29ubmVjdEZy
b21QYWdlKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDb2xvcihjb25zdCBXZWJD
b3JlOjpDb2xvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBlbmRDaG9vc2VyKCkgT1ZF
UlJJREU7CisKK3ByaXZhdGU6CisgICAgV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiBtX2Nv
bG9yQ2hvb3NlckNsaWVudDsKKyAgICBXZWJQYWdlKiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorCisjZW5k
aWYgLy8gV2ViQ29sb3JDaG9vc2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCA0OTYxNTA1ODUwNjE3YzUzYTcyYmM3YzU4ZGVjNTIyMjc2
NDU4ZTM2Li4xNzM2YmM0NmEwZDU1NWI3N2Y2YjNmZjFhZDk2YTdiZDY3MzM3YTJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ3
LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCiAjaW5jbHVk
ZSAiV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuaCIKICNpbmNsdWRlICJXZWJDaHJvbWVDbGllbnQu
aCIKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXIuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVu
dS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29u
dGV4dE1lc3NhZ2VzLmgiCkBAIC0yMTAsNiArMjEyLDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50
NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMp
CiAgICAgLCBtX3RhcEhpZ2hsaWdodENvbnRyb2xsZXIodGhpcykKICNlbmRpZgogI2VuZGlmCisj
aWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgLCBtX2FjdGl2ZUNvbG9yQ2hvb3Nlcigw
KQorI2VuZGlmCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgICwgbV9nZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlzKQogI2VuZGlmCkBAIC02MzUsNiArNjQwLDEzIEBA
IHZvaWQgV2ViUGFnZTo6Y2xvc2UoKQogICAgICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyID0gMDsKICAgICB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBp
ZiAobV9hY3RpdmVDb2xvckNob29zZXIpIHsKKyAgICAgICAgbV9hY3RpdmVDb2xvckNob29zZXIt
PmRpc2Nvbm5lY3RGcm9tUGFnZSgpOworICAgICAgICBtX2FjdGl2ZUNvbG9yQ2hvb3NlciA9IDA7
CisgICAgfQorI2VuZGlmCisKICAgICBtX3NhbmRib3hFeHRlbnNpb25UcmFja2VyLmludmFsaWRh
dGUoKTsKIAogICAgIG1fdW5kZXJsYXlQYWdlID0gbnVsbHB0cjsKQEAgLTIzMzAsNiArMjM0Miwy
MyBAQCB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZVBvcHVwTWVudShXZWJQb3B1cE1lbnUqIG1lbnUp
CiAgICAgbV9hY3RpdmVQb3B1cE1lbnUgPSBtZW51OwogfQogCisjaWYgRU5BQkxFKElOUFVUX1RZ
UEVfQ09MT1IpCit2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZUNvbG9yQ2hvb3NlcihXZWJDb2xvckNo
b29zZXIqIGNvbG9yQ2hvb3NlcikKK3sKKyAgICBtX2FjdGl2ZUNvbG9yQ2hvb3NlciA9IGNvbG9y
Q2hvb3NlcjsKK30KKwordm9pZCBXZWJQYWdlOjpkaWRFbmRDb2xvckNob29zZXIoKQoreworICAg
IG1fYWN0aXZlQ29sb3JDaG9vc2VyLT5kaWRFbmRDaG9vc2VyKCk7Cit9CisKK3ZvaWQgV2ViUGFn
ZTo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQoreworICAgIG1f
YWN0aXZlQ29sb3JDaG9vc2VyLT5kaWRDaG9vc2VDb2xvcihjb2xvcik7Cit9CisjZW5kaWYKKwog
dm9pZCBXZWJQYWdlOjpzZXRBY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcihQYXNzUmVmUHRy
PFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyPiBvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikKIHsK
ICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gb3BlblBhbmVsUmVzdWx0TGlz
dGVuZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRl
eCBmMWUxMTQyYTM2NWEwZjliNjU1N2QzMTQ3MWU4ZGNmZjI5YWI2NzE4Li4xYTEzYjZjZTc0MjZl
YWViOTg4YmY0MTRiYWQxYzRmMDE2MDI2NTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEyMyw2ICsxMjMsNyBAQCBjbGFzcyBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiBjbGFzcyBQYWdlT3ZlcmxheTsKIGNsYXNzIFBs
dWdpblZpZXc7CiBjbGFzcyBTZXNzaW9uU3RhdGU7CitjbGFzcyBXZWJDb2xvckNob29zZXI7CiBj
bGFzcyBXZWJDb250ZXh0TWVudTsKIGNsYXNzIFdlYkNvbnRleHRNZW51SXRlbURhdGE7CiBjbGFz
cyBXZWJFdmVudDsKQEAgLTIxOCw3ICsyMTksMTQgQEAgcHVibGljOgogICAgIGJvb2wgaXNJblJl
ZG8oKSBjb25zdCB7IHJldHVybiBtX2lzSW5SZWRvOyB9CiAKICAgICB2b2lkIHNldEFjdGl2ZVBv
cHVwTWVudShXZWJQb3B1cE1lbnUqKTsKLSAgICAKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQorICAgIFdlYkNvbG9yQ2hvb3NlciogYWN0aXZlQ29sb3JDaG9vc2VyKCkgY29uc3QgeyBy
ZXR1cm4gbV9hY3RpdmVDb2xvckNob29zZXI7IH0KKyAgICB2b2lkIHNldEFjdGl2ZUNvbG9yQ2hv
b3NlcihXZWJDb2xvckNob29zZXIqKTsKKyAgICB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IFdl
YkNvcmU6OkNvbG9yJik7CisgICAgdm9pZCBkaWRFbmRDb2xvckNob29zZXIoKTsKKyNlbmRpZgor
CiAgICAgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIqIGFjdGl2ZU9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5n
ZXQoKTsgfQogICAgIHZvaWQgc2V0QWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIoUGFzc1Jl
ZlB0cjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcj4pOwogCkBAIC04MTYsNiArODI0LDkgQEAg
cHJpdmF0ZToKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBSZWZQdHI8V2ViQ29udGV4
dE1lbnU+IG1fY29udGV4dE1lbnU7CiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xP
UikKKyAgICBXZWJDb2xvckNob29zZXIqIG1fYWN0aXZlQ29sb3JDaG9vc2VyOworI2VuZGlmCiAg
ICAgUmVmUHRyPFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyPiBtX2FjdGl2ZU9wZW5QYW5lbFJl
c3VsdExpc3RlbmVyOwogICAgIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI+IG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CmluZGV4IDY0MDQ0MDE1MWQzYmNlNTMzNWExZjM4NmMyMGY0MTNhZGExNGYwNTUuLjM4ZjM2YzJi
ZjhkODM4YTcyZGFhMDMzNTMxMTJiNDA2NWQ2ZmMwYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00NSw2ICs0
NSwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIHsKICAgICBIaWdobGlnaHRQb3RlbnRpYWxBY3Rp
dmF0aW9uKFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBXZWJDb3JlOjpJbnRTaXplIGFyZWEpCiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIERpZEVuZENvbG9yQ2hv
b3NlcigpOworICAgIERpZENob29zZUNvbG9yKFdlYkNvcmU6OkNvbG9yIGNvbG9yKTsKKyNlbmRp
ZgorCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgQ29udGV4dE1lbnVIaWRkZW4oKQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5kZXggYzJmZWYwOWM2Mzk2OWU0YmE0
Y2IxMTQ1MWIxNDAyMDc0MGI4ODI2NS4uMGEzOGM0YjgyMmE4MjQ3OThmZjhjNGVlMmYzY2QyNDg5
YjdiNmQwZiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtMTgzOCw2ICsxODM4LDE0
IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdlYkNvbG9yQ2hvb3Nlci5jcHAiCisJCQkJCT4K
KwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNz
XFdlYkNvcmVTdXBwb3J0XFdlYkNvbG9yQ2hvb3Nlci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgor
CQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9y
dFxXZWJDb250ZXh0TWVudUNsaWVudC5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC0yODgz
LDYgKzI4OTEsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cVUlQcm9jZXNzXFdlYkNvbG9yQ2hvb3NlclByb3h5LmgiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>