<?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>79320</bug_id>
          
          <creation_ts>2012-02-22 20:19:10 -0800</creation_ts>
          <short_desc>SpellCheckRequest needs to know the context where the spellcheck happened</short_desc>
          <delta_ts>2012-02-24 04:32:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Shinya Kawanaka">shinyak</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>hbono</cc>
    
    <cc>japhet</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>562754</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-22 20:19:10 -0800</bug_when>
    <thetext>To save IPC requests, SpellCheckRequest can have a field which tells the client
where the spellchecking is happening.
For example, if a series of spellcheckings is triggered by key typing, 
the client can refer such hit to reuse the recent result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562779</commentid>
    <comment_count>1</comment_count>
      <attachid>128383</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-22 20:59:40 -0800</bug_when>
    <thetext>Created attachment 128383
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562783</commentid>
    <comment_count>2</comment_count>
      <attachid>128383</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-22 21:04:00 -0800</bug_when>
    <thetext>Comment on attachment 128383
WIP

Attachment 128383 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11600107</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562788</commentid>
    <comment_count>3</comment_count>
      <attachid>128383</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-22 21:10:18 -0800</bug_when>
    <thetext>Comment on attachment 128383
WIP

Attachment 128383 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11603093</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562795</commentid>
    <comment_count>4</comment_count>
      <attachid>128383</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-22 21:18:23 -0800</bug_when>
    <thetext>Comment on attachment 128383
WIP

Attachment 128383 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11602095</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562796</commentid>
    <comment_count>5</comment_count>
      <attachid>128387</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-22 21:20:10 -0800</bug_when>
    <thetext>Created attachment 128387
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562797</commentid>
    <comment_count>6</comment_count>
      <attachid>128388</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-22 21:21:53 -0800</bug_when>
    <thetext>Created attachment 128388
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562819</commentid>
    <comment_count>7</comment_count>
      <attachid>128391</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-22 22:03:54 -0800</bug_when>
    <thetext>Created attachment 128391
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562834</commentid>
    <comment_count>8</comment_count>
      <attachid>128396</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-22 22:18:56 -0800</bug_when>
    <thetext>Created attachment 128396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562864</commentid>
    <comment_count>9</comment_count>
      <attachid>128396</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-22 23:10:50 -0800</bug_when>
    <thetext>Comment on attachment 128396
Patch

Attachment 128396 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11610106</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562889</commentid>
    <comment_count>10</comment_count>
      <attachid>128410</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-22 23:40:09 -0800</bug_when>
    <thetext>Created attachment 128410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562895</commentid>
    <comment_count>11</comment_count>
      <attachid>128410</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-22 23:44:41 -0800</bug_when>
    <thetext>Comment on attachment 128410
Patch

Attachment 128410 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11610126</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562904</commentid>
    <comment_count>12</comment_count>
      <attachid>128415</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-23 00:00:43 -0800</bug_when>
    <thetext>Created attachment 128415
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562906</commentid>
    <comment_count>13</comment_count>
      <attachid>128415</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-23 00:05:09 -0800</bug_when>
    <thetext>Comment on attachment 128415
Patch

Attachment 128415 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11602131</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562908</commentid>
    <comment_count>14</comment_count>
      <attachid>128417</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-23 00:08:33 -0800</bug_when>
    <thetext>Created attachment 128417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562911</commentid>
    <comment_count>15</comment_count>
      <attachid>128418</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-23 00:18:34 -0800</bug_when>
    <thetext>Created attachment 128418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562915</commentid>
    <comment_count>16</comment_count>
      <attachid>128418</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-23 00:22:29 -0800</bug_when>
    <thetext>Comment on attachment 128418
Patch

Let me see the green bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562939</commentid>
    <comment_count>17</comment_count>
      <attachid>128418</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-23 01:03:51 -0800</bug_when>
    <thetext>Comment on attachment 128418
Patch

Attachment 128418 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11600191

New failing tests:
editing/spelling/spellcheck-async.html
editing/spelling/spellcheck-async-mutation.html
editing/spelling/spelling-marker-description.html
editing/spelling/grammar-paste.html
editing/spelling/spellcheck-paste.html
editing/spelling/spellcheck-sequencenum.html
editing/spelling/spellcheck-queue.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562950</commentid>
    <comment_count>18</comment_count>
      <attachid>128430</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-23 01:22:36 -0800</bug_when>
    <thetext>Created attachment 128430
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562951</commentid>
    <comment_count>19</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-23 01:24:04 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 128418 [details])
&gt; Attachment 128418 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/11600191
&gt; 
&gt; New failing tests:
&gt; editing/spelling/spellcheck-async.html
&gt; editing/spelling/spellcheck-async-mutation.html
&gt; editing/spelling/spelling-marker-description.html
&gt; editing/spelling/grammar-paste.html
&gt; editing/spelling/spellcheck-paste.html
&gt; editing/spelling/spellcheck-sequencenum.html
&gt; editing/spelling/spellcheck-queue.html

Ah, I&apos;ve touched PassRefPtr which became null... Boo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563108</commentid>
    <comment_count>20</comment_count>
      <attachid>128430</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-02-23 07:47:08 -0800</bug_when>
    <thetext>Comment on attachment 128430
Patch

Attachment 128430 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11600311</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563799</commentid>
    <comment_count>21</comment_count>
      <attachid>128629</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-23 18:26:24 -0800</bug_when>
    <thetext>Created attachment 128629
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563870</commentid>
    <comment_count>22</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-23 20:12:51 -0800</bug_when>
    <thetext>mac bot seems drunk...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563893</commentid>
    <comment_count>23</comment_count>
      <attachid>128643</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-23 21:00:04 -0800</bug_when>
    <thetext>Created attachment 128643
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564187</commentid>
    <comment_count>24</comment_count>
      <attachid>128643</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-24 04:32:09 -0800</bug_when>
    <thetext>Comment on attachment 128643
Patch

Clearing flags on attachment: 128643

Committed r108772: &lt;http://trac.webkit.org/changeset/108772&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564188</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-24 04:32:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128383</attachid>
            <date>2012-02-22 20:59:40 -0800</date>
            <delta_ts>2012-02-22 21:20:05 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-79320-20120223135939.patch</filename>
            <type>text/plain</type>
            <size>10809</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5k
ZXggMTNiYjdlNzVmN2NjOTU1ODdkMThjNDQyMDVmYTY3ODhjODUxMWM1Yy4uMWNlMjRlNTM4ZDQz
NTdmMWUzZTJkYmE4MGM0NGI0YTU4NGMyYTA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cApAQCAtNDE4LDcgKzQxOCw3IEBAIHZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZy
YWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsCiAgICAgICAgIHJl
dHVybjsKIAogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2VUb0NoZWNrID0gUmFuZ2U6OmNyZWF0ZSht
X2ZyYW1lLT5kb2N1bWVudCgpLCBmaXJzdFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0NoZWNrKSwgbGFz
dFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0NoZWNrKSk7Ci0gICAgbV9zcGVsbENoZWNrZXItPnJlcXVl
c3RDaGVja2luZ0ZvcihTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKHJlc29sdmVUZXh0Q2hlY2tp
bmdUeXBlTWFzayhUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3Jh
bW1hciksIHJhbmdlVG9DaGVjaywgcmFuZ2VUb0NoZWNrKSk7CisgICAgbV9zcGVsbENoZWNrZXIt
PnJlcXVlc3RDaGVja2luZ0ZvcihTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKHJlc29sdmVUZXh0
Q2hlY2tpbmdUeXBlTWFzayhUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdU
eXBlR3JhbW1hciksIFRleHRDaGVja2luZ1Byb2Nlc3NCYXRjaCwgcmFuZ2VUb0NoZWNrLCByYW5n
ZVRvQ2hlY2spKTsKIH0KIAogdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChj
b25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBs
YWNlKQpAQCAtMTkzNSw3ICsxOTM1LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbGxNaXNzcGVsbGlu
Z3NBbmRCYWRHcmFtbWFySW5SYW5nZXMoVGV4dENoZWNraW5nVHlwZU1hc2sgdGV4dEMKICAgICBi
b29sIGFzeW5jaHJvbm91cyA9IG1fZnJhbWUgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKSAmJiBtX2Zy
YW1lLT5zZXR0aW5ncygpLT5hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpICYmICFz
aG91bGRTaG93Q29ycmVjdGlvblBhbmVsOwogCiAgICAgLy8gSW4gYXN5bmNocm9ub3VzIG1vZGUs
IHdlIGludGVudGlvbmFsbHkgY2hlY2sgcGFyYWdyYXBoLXdpZGUgc2VudGVuY2UuCi0gICAgUmVm
UHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0ID0gU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0
ZShyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2sodGV4dENoZWNraW5nT3B0aW9ucyksIGFzeW5j
aHJvbm91cyA/IHBhcmFncmFwaFJhbmdlIDogcmFuZ2VUb0NoZWNrLCBwYXJhZ3JhcGhSYW5nZSk7
CisgICAgUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0ID0gU3BlbGxDaGVja1JlcXVl
c3Q6OmNyZWF0ZShyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2sodGV4dENoZWNraW5nT3B0aW9u
cyksIFRleHRDaGVja2luZ1Byb2Nlc3NJbmNyZW1lbnRhbCwgYXN5bmNocm9ub3VzID8gcGFyYWdy
YXBoUmFuZ2UgOiByYW5nZVRvQ2hlY2ssIHBhcmFncmFwaFJhbmdlKTsKIAogICAgIGlmIChhc3lu
Y2hyb25vdXMpIHsKICAgICAgICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2luZ0Zvcihy
ZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcAppbmRleCA2ODM2
NDRjNmQwMTVlYzkyOWY1MmY4NTlkMzM2ZGI3ZTgyZjEyYzk1Li5iN2JiNTFkYTRiMDljNDFkYjA1
Nzc2ZjQ2MmE2N2QwNWM1NzE5NmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1NwZWxsQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNr
ZXIuY3BwCkBAIC00NywxMyArNDcsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMg
Y29uc3QgaW50IHVucmVxdWVzdGVkU2VxdWVuY2UgPSAtMTsKIAotU3BlbGxDaGVja1JlcXVlc3Q6
OlNwZWxsQ2hlY2tSZXF1ZXN0KGludCBzZXF1ZW5jZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tp
bmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UsIGNvbnN0IFN0cmluZyYg
dGV4dCwgVGV4dENoZWNraW5nVHlwZU1hc2sgbWFzaykKK1NwZWxsQ2hlY2tSZXF1ZXN0OjpTcGVs
bENoZWNrUmVxdWVzdChpbnQgc2VxdWVuY2UsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFu
Z2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQs
IFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlIHByb2Nl
c3NUeXBlKQogICAgIDogbV9zZXF1ZW5jZShzZXF1ZW5jZSkKICAgICAsIG1fY2hlY2tpbmdSYW5n
ZShjaGVja2luZ1JhbmdlKQogICAgICwgbV9wYXJhZ3JhcGhSYW5nZShwYXJhZ3JhcGhSYW5nZSkK
ICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV9tYXNrKG1hc2spCiAgICAgLCBtX3Jvb3RFZGl0
YWJsZUVsZW1lbnQobV9jaGVja2luZ1JhbmdlLT5zdGFydENvbnRhaW5lcigpLT5yb290RWRpdGFi
bGVFbGVtZW50KCkpCisgICAgLCBtX3Byb2Nlc3NUeXBlKHByb2Nlc3NUeXBlKQogewogfQogCkBA
IC02Miw3ICs2Myw3IEBAIFNwZWxsQ2hlY2tSZXF1ZXN0Ojp+U3BlbGxDaGVja1JlcXVlc3QoKQog
fQogCiAvLyBzdGF0aWMKLVBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IFNwZWxsQ2hlY2tS
ZXF1ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlwZU1hc2sgdGV4dENoZWNraW5nT3B0aW9ucywg
UGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdy
YXBoUmFuZ2UpCitQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBTcGVsbENoZWNrUmVxdWVz
dDo6Y3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrIHRleHRDaGVja2luZ09wdGlvbnMsIFRleHRD
aGVja2luZ1Byb2Nlc3NUeXBlIHByb2Nlc3NUeXBlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2lu
Z1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSkKIHsKICAgICBBU1NFUlQo
Y2hlY2tpbmdSYW5nZSk7CiAgICAgQVNTRVJUKHBhcmFncmFwaFJhbmdlKTsKQEAgLTcxLDcgKzcy
LDcgQEAgUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gU3BlbGxDaGVja1JlcXVlc3Q6OmNy
ZWF0ZShUZXh0Q2hlY2tpbmdUeXBlTWFzayB0ZXgKICAgICBpZiAoIXRleHQubGVuZ3RoKCkpCiAg
ICAgICAgIHJldHVybiBQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PigpOwogCi0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTcGVsbENoZWNrUmVxdWVzdCh1bnJlcXVlc3RlZFNlcXVlbmNlLCBj
aGVja2luZ1JhbmdlLCBwYXJhZ3JhcGhSYW5nZSwgdGV4dCwgdGV4dENoZWNraW5nT3B0aW9ucykp
OworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlbGxDaGVja1JlcXVlc3QodW5yZXF1ZXN0ZWRT
ZXF1ZW5jZSwgY2hlY2tpbmdSYW5nZSwgcGFyYWdyYXBoUmFuZ2UsIHRleHQsIHRleHRDaGVja2lu
Z09wdGlvbnMsIHByb2Nlc3NUeXBlKSk7CiB9CiAKIApAQCAtMTQ1LDcgKzE0Niw3IEBAIHZvaWQg
U3BlbGxDaGVja2VyOjppbnZva2VSZXF1ZXN0KFBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+
IHJlcXVlc3QpCiAgICAgQVNTRVJUKCFtX3Byb2Nlc3NpbmdSZXF1ZXN0KTsKIAogICAgIG1fcHJv
Y2Vzc2luZ1JlcXVlc3QgPSByZXF1ZXN0OwotICAgIGNsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyh0aGlzLCBtX3Byb2Nlc3NpbmdSZXF1ZXN0LT5zZXF1ZW5jZSgpLCBtX3Byb2Nlc3Np
bmdSZXF1ZXN0LT5tYXNrKCksIG1fcHJvY2Vzc2luZ1JlcXVlc3QtPnRleHQoKSk7CisgICAgY2xp
ZW50KCktPnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKHRoaXMsIG1fcHJvY2Vzc2luZ1JlcXVlc3Qt
PnNlcXVlbmNlKCksIG1fcHJvY2Vzc2luZ1JlcXVlc3QtPm1hc2soKSwgbV9wcm9jZXNzaW5nUmVx
dWVzdC0+cHJvY2Vzc1R5cGUoKSwgbV9wcm9jZXNzaW5nUmVxdWVzdC0+dGV4dCgpKTsKIH0KIAog
dm9pZCBTcGVsbENoZWNrZXI6OmVucXVldWVSZXF1ZXN0KFBhc3NSZWZQdHI8U3BlbGxDaGVja1Jl
cXVlc3Q+IHJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxs
Q2hlY2tlci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaAppbmRleCAy
MDMwNmRhMWE1OTM2ZTJmZjU0ZjliZTJiMmFmM2YyNWU5ODcwMjViLi40ZDYxN2IwODZmZTg1NmM1
ZjVjYzUwZTk5MjAyYjA2MzZkN2ZjZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1NwZWxsQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVj
a2VyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2lu
Y2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNraW5nLmgiCisjaW5jbHVkZSAiVGV4
dENoZWNraW5nUHJvY2Vzc1R5cGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0
Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00NiwxMCArNDcsMTAg
QEAgc3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdDsKIAogY2xhc3MgU3BlbGxDaGVja1JlcXVlc3Qg
OiBwdWJsaWMgUmVmQ291bnRlZDxTcGVsbENoZWNrUmVxdWVzdD4gewogcHVibGljOgotICAgIFNw
ZWxsQ2hlY2tSZXF1ZXN0KGludCBzZXF1ZW5jZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdS
YW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UsIGNvbnN0IFN0cmluZyYsIFRl
eHRDaGVja2luZ1R5cGVNYXNrKTsKKyAgICBTcGVsbENoZWNrUmVxdWVzdChpbnQgc2VxdWVuY2Us
IFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFn
cmFwaFJhbmdlLCBjb25zdCBTdHJpbmcmLCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgVGV4dENoZWNr
aW5nUHJvY2Vzc1R5cGUpOwogICAgIH5TcGVsbENoZWNrUmVxdWVzdCgpOwogCi0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IGNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlTWFz
aywgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFy
YWdyYXBoUmFuZ2UpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBj
cmVhdGUoVGV4dENoZWNraW5nVHlwZU1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLCBQYXNz
UmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhS
YW5nZSk7CiAKICAgICB2b2lkIHNldFNlcXVlbmNlKGludCBzZXF1ZW5jZSkgeyBtX3NlcXVlbmNl
ID0gc2VxdWVuY2U7IH0KICAgICBpbnQgc2VxdWVuY2UoKSBjb25zdCB7IHJldHVybiBtX3NlcXVl
bmNlOyB9CkBAIC01Nyw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFJhbmdlPiBw
YXJhZ3JhcGhSYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYWdyYXBoUmFuZ2U7IH0KICAgICBj
b25zdCBTdHJpbmcmIHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KICAgICBUZXh0Q2hl
Y2tpbmdUeXBlTWFzayBtYXNrKCkgY29uc3QgeyByZXR1cm4gbV9tYXNrOyB9CisgICAgVGV4dENo
ZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NU
eXBlOyB9CiAgICAgUGFzc1JlZlB0cjxFbGVtZW50PiByb290RWRpdGFibGVFbGVtZW50KCkgY29u
c3QgeyByZXR1cm4gbV9yb290RWRpdGFibGVFbGVtZW50OyB9CiBwcml2YXRlOgogCkBAIC02Niw2
ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fdGV4dDsKICAgICBUZXh0Q2hlY2tpbmdU
eXBlTWFzayBtX21hc2s7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fcm9vdEVkaXRhYmxlRWxlbWVu
dDsKKyAgICBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBtX3Byb2Nlc3NUeXBlOwogfTsKIAogY2xh
c3MgU3BlbGxDaGVja2VyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCAy
MzUyYzI4NzZkMjE4MTM0ZDBiZWE2NDI1NDc4MWJlODFlNjYwMGU4Li44NzQzZjIyZmExYjkyNjZk
ZTg3YzBhNjEzMWQ1YmY0YjRjYTYxN2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oCkBAIC00MzIsNyArNDMyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgVmVjdG9y
PFN0cmluZz4mKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmco
U3BlbGxDaGVja2VyKiwgaW50LCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgU3RyaW5nJikg
eyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tl
ciosIGludCwgVGV4dENoZWNraW5nVHlwZU1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLCBj
b25zdCBTdHJpbmcmKSB7IH0KIH07CiAKIGNsYXNzIEVtcHR5RWRpdG9yQ2xpZW50IDogcHVibGlj
IEVkaXRvckNsaWVudCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1RleHRDaGVja2VyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRD
aGVja2VyQ2xpZW50LmgKaW5kZXggZDE2YWRlMTY0NjBhZDcwZjM3ZWI5ZThkNDE0ZGY2MWY2N2Nm
YzhkMy4uYmEzNDJlZjYwMTIzNGZkNGRkOWQyNTA5MjY0NWM3OWFlODJjZWEzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaApAQCAtMjks
NiArMjksNyBAQAogI2RlZmluZSBUZXh0Q2hlY2tlckNsaWVudF9oCiAKICNpbmNsdWRlICJUZXh0
Q2hlY2tpbmcuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZS5oIgogCiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC03MSw3ICs3
Miw3IEBAIHB1YmxpYzoKICAgICAvLyBwcm92aWRlIG1vcmUgYWNjdXJhdGUgY29ycmVjdGlvbiBz
dWdnZXN0aW9ucy4gQ2FsbGVyIGNhbiBwYXNzIGluIG1vcmUgdGV4dCBpbiAiY29udGV4dCIgdG8g
YWlkIHN1Y2ggc3BlbGxjaGVja2VycyBvbiBsYW5ndWFnZQogICAgIC8vIGlkZW50aWZpY2F0aW9u
LiBOb3JhbWxseSBpdCdzIHRoZSB0ZXh0IHN1cnJvdW5kaW5nIHRoZSAid29yZCIgZm9yIHdoaWNo
IHdlIGFyZSBnZXR0aW5nIGNvcnJlY3Rpb24gc3VnZ2VzdGlvbnMuCiAgICAgdmlydHVhbCB2b2lk
IGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250
ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVN
YXNrLCBjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgVGV4dENoZWNraW5nVHlwZU1hc2ssIFRleHRD
aGVja2luZ1Byb2Nlc3NUeXBlLCBjb25zdCBTdHJpbmcmKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCmluZGV4IDAzM2Q0
NmQ1OGMyZjc5NTQ3OWUwYTA0MjllMzZkZjkxNzNkZDVlOTYuLjNlYmI5NWFkMWZkMjA2MDI2M2Q1
MDMwMWIxYWRlM2VlM2YyMTMyNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0VkaXRvckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0VkaXRvckNsaWVudEltcGwuY3BwCkBAIC03MjksNyArNzI5LDcgQEAgdm9pZCBFZGl0b3JDbGll
bnRJbXBsOjpjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5n
dGgsCiAgICAgICAgICptaXNzcGVsbGluZ0xlbmd0aCA9IHNwZWxsTGVuZ3RoOwogfQogCi12b2lk
IEVkaXRvckNsaWVudEltcGw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciog
c2VuZGVyLCBpbnQgaWRlbnRpZmllciwgVGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFN0cmlu
ZyYgdGV4dCkKK3ZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmco
U3BlbGxDaGVja2VyKiBzZW5kZXIsIGludCBpZGVudGlmaWVyLCBUZXh0Q2hlY2tpbmdUeXBlTWFz
aywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBp
ZiAobV93ZWJWaWV3LT5zcGVsbENoZWNrQ2xpZW50KCkpCiAgICAgICAgIG1fd2ViVmlldy0+c3Bl
bGxDaGVja0NsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlRleHQodGV4dCwgbmV3IFdlYlRleHRD
aGVja2luZ0NvbXBsZXRpb25JbXBsKGlkZW50aWZpZXIsIHNlbmRlcikpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCmluZGV4IDk5OTg2MGEwMjcyNjk0
MzM2MzMwNTM0NjNjNDIyYmNkYWU4OTBjZDcuLjk3N2YyZjlhODNlODczN2QxNjQ4NmY1NmU5YjM2
MjA3YWM1ZmY5MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRv
ckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGll
bnRJbXBsLmgKQEAgLTEwOSw3ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdl
dEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmlu
ZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0
dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRl
eHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0cmluZyYpOworICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdl
YkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdQcm9jZXNz
VHlwZSwgY29uc3QgV1RGOjpTdHJpbmcmKTsKIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6VGV4dENo
ZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCAyMTcwNGQ5N2UwMTJjOTFj
YWUwZTQ3OThmMzE0Y2ViNzI4Yjc3OTM1Li5hZGYyMDIzNzEwNTY5M2FlMTFhN2MyMTBlODA5ZmIz
YjdjN2YyNzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFt
ZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAKQEAgLTEzMDEsNyArMTMwMSw3IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpyZXF1ZXN0VGV4dENo
ZWNraW5nKGNvbnN0IFdlYkVsZW1lbnQmIHdlYkVsZW0pCiAKICAgICBSZWZQdHI8UmFuZ2U+IHJh
bmdlVG9DaGVjayA9IHJhbmdlT2ZDb250ZW50cyhjb25zdF9jYXN0PEVsZW1lbnQqPih3ZWJFbGVt
LmNvbnN0VW53cmFwPEVsZW1lbnQ+KCkpKTsKIAotICAgIGZyYW1lKCktPmVkaXRvcigpLT5zcGVs
bENoZWNrZXIoKS0+cmVxdWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUo
VGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIsIHJhbmdl
VG9DaGVjaywgcmFuZ2VUb0NoZWNrKSk7CisgICAgZnJhbWUoKS0+ZWRpdG9yKCktPnNwZWxsQ2hl
Y2tlcigpLT5yZXF1ZXN0Q2hlY2tpbmdGb3IoU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0
Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciwgVGV4dENoZWNr
aW5nUHJvY2Vzc0JhdGNoLCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVjaykpOwogfQogCiBib29s
IFdlYkZyYW1lSW1wbDo6aGFzU2VsZWN0aW9uKCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128387</attachid>
            <date>2012-02-22 21:20:10 -0800</date>
            <delta_ts>2012-02-22 21:21:47 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-79320-20120223142009.patch</filename>
            <type>text/plain</type>
            <size>24160</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJiZWY1YmVjOTZhZTg0
NzNlYjQ1NWE2ZDMyZDhmZGE5NDU1MmQ2Mi4uNTViZGFjZTE4MjQ5YzJkOWE2OGM1MTc1YTg4MTM5
ZjUzNTY2MzNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAyLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNr
UmVxdWVzdCBuZWVkIHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUgdGhlIHNwZWxsY2hlY2sgaGFw
cGVuZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5
MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hcklu
UmFuZ2VzKToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6U3BlbGxDaGVja1JlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVsbENoZWNrZXI6Omludm9rZVJlcXVlc3QpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVj
a2VyLmg6CisgICAgICAgIChTcGVsbENoZWNrUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVsbENoZWNrUmVxdWVzdDo6cHJvY2Vzc1R5cGUpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNs
aWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5VGV4dENoZWNrZXJDbGllbnQ6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2Vy
Q2xpZW50Lmg6CisgICAgICAgIChUZXh0Q2hlY2tlckNsaWVudCk6CisKIDIwMTItMDItMjIgIEFu
ZHJlYXMgS2xpbmcgIDxhd2Vzb21la2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgcGFy
c2luZyBjb2xvciBwcmVzZW50YXRpb24gYXR0cmlidXRlcyBkbyBsZXNzIHBvaW50bGVzcyB3b3Jr
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5NzEzNzQ5Y2U3ODc0YWIwOGNiOTBhY2Mw
YzJmOGI5OGE4MGExNzVkLi5lZTY4MTVjM2NmOTFmYjQ2MjQ3NWM0NjFmNmJmYTBjNDBkYzE5ODYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTIy
ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVs
bENoZWNrUmVxdWVzdCBuZWVkIHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUgdGhlIHNwZWxsY2hl
Y2sgaGFwcGVuZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc5MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNs
aWVudEltcGw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBzcmMvRWRpdG9y
Q2xpZW50SW1wbC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50SW1wbCk6CisgICAgICAgICogc3Jj
L1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6cmVxdWVz
dFRleHRDaGVja2luZyk6CisKIDIwMTItMDItMjIgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwODU5MC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDk3NGRhMWU0NGE0ZTJiMjAzMzVjYzg5NzE1
NmVhOTM4NGE4OGVlNTQuLjYwYzcyYWZjNDc1NzE5NTgxYTI4ZWJlM2M0ZDRlYmE1ZTcyNmZjNjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzM1Miw2ICszMzUyLDcgQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVh
a0l0ZXJhdG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJD
bGllbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaCBc
CisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZS5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlYy5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dENvZGVjQVNDSUlGYXN0UGF0aC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCBmZGM2MGU0MTY5OWQ1MGYwYTc3YTA5Y2JmYjMyOWVjZjI3M2EyNWJlLi43ZWUxODY4YzRkYzBm
NzE2YTk4NTAyZjQ4OWYwZmE0MzRhOTZiOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00NTUsNiAr
NDU1LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySW50
ZXJuYWxJQ1UuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVu
dC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oJywKKyAgICAg
ICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZ1Byb2Nlc3NUeXBlLmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL3RleHQvVGV4dENvZGVjLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L3RleHQvVGV4dENvZGVjSUNVLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvVGV4dENv
ZGVjTGF0aW4xLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagppbmRleCAxZTdjNmYwNjAxYmZkMDE3Njg3ZGNkNjdkMzg3MWQzNTk4MWExNTgxLi4zNzIw
NjBiYjY3ZjA3YTE4NjNiZGRhYTFiYjkwNWMzMDQxYzQ1MjMxIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMzE3NDksNiArMzE3NDksMTAgQEAK
IAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXHRleHRcVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUuaCIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcVGV4dENv
ZGVjLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApp
bmRleCAxM2JiN2U3NWY3Y2M5NTU4N2QxOGM0NDIwNWZhNjc4OGM4NTExYzVjLi4xY2UyNGU1Mzhk
NDM1N2YxZTNlMmRiYTgwYzQ0YjRhNTg0YzJhMDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCkBAIC00MTgsNyArNDE4LDcgQEAgdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRo
RnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwKICAgICAgICAg
cmV0dXJuOwogCiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZVRvQ2hlY2sgPSBSYW5nZTo6Y3JlYXRl
KG1fZnJhbWUtPmRvY3VtZW50KCksIGZpcnN0UG9zaXRpb25Jbk5vZGUobm9kZVRvQ2hlY2spLCBs
YXN0UG9zaXRpb25Jbk5vZGUobm9kZVRvQ2hlY2spKTsKLSAgICBtX3NwZWxsQ2hlY2tlci0+cmVx
dWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUocmVzb2x2ZVRleHRDaGVj
a2luZ1R5cGVNYXNrKFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVja2luZ1R5cGVH
cmFtbWFyKSwgcmFuZ2VUb0NoZWNrLCByYW5nZVRvQ2hlY2spKTsKKyAgICBtX3NwZWxsQ2hlY2tl
ci0+cmVxdWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUocmVzb2x2ZVRl
eHRDaGVja2luZ1R5cGVNYXNrKFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVja2lu
Z1R5cGVHcmFtbWFyKSwgVGV4dENoZWNraW5nUHJvY2Vzc0JhdGNoLCByYW5nZVRvQ2hlY2ssIHJh
bmdlVG9DaGVjaykpOwogfQogCiB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0
KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJl
cGxhY2UpCkBAIC0xOTM1LDcgKzE5MzUsNyBAQCB2b2lkIEVkaXRvcjo6bWFya0FsbE1pc3NwZWxs
aW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyhUZXh0Q2hlY2tpbmdUeXBlTWFzayB0ZXh0QwogICAg
IGJvb2wgYXN5bmNocm9ub3VzID0gbV9mcmFtZSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpICYmIG1f
ZnJhbWUtPnNldHRpbmdzKCktPmFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgJiYg
IXNob3VsZFNob3dDb3JyZWN0aW9uUGFuZWw7CiAKICAgICAvLyBJbiBhc3luY2hyb25vdXMgbW9k
ZSwgd2UgaW50ZW50aW9uYWxseSBjaGVjayBwYXJhZ3JhcGgtd2lkZSBzZW50ZW5jZS4KLSAgICBS
ZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IHJlcXVlc3QgPSBTcGVsbENoZWNrUmVxdWVzdDo6Y3Jl
YXRlKHJlc29sdmVUZXh0Q2hlY2tpbmdUeXBlTWFzayh0ZXh0Q2hlY2tpbmdPcHRpb25zKSwgYXN5
bmNocm9ub3VzID8gcGFyYWdyYXBoUmFuZ2UgOiByYW5nZVRvQ2hlY2ssIHBhcmFncmFwaFJhbmdl
KTsKKyAgICBSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IHJlcXVlc3QgPSBTcGVsbENoZWNrUmVx
dWVzdDo6Y3JlYXRlKHJlc29sdmVUZXh0Q2hlY2tpbmdUeXBlTWFzayh0ZXh0Q2hlY2tpbmdPcHRp
b25zKSwgVGV4dENoZWNraW5nUHJvY2Vzc0luY3JlbWVudGFsLCBhc3luY2hyb25vdXMgPyBwYXJh
Z3JhcGhSYW5nZSA6IHJhbmdlVG9DaGVjaywgcGFyYWdyYXBoUmFuZ2UpOwogCiAgICAgaWYgKGFz
eW5jaHJvbm91cykgewogICAgICAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNraW5nRm9y
KHJlcXVlc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNr
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCmluZGV4IDY4
MzY0NGM2ZDAxNWVjOTI5ZjUyZjg1OWQzMzZkYjdlODJmMTJjOTUuLmI3YmI1MWRhNGIwOWM0MWRi
MDU3NzZmNDYyYTY3ZDA1YzU3MTk2YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvU3BlbGxDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hl
Y2tlci5jcHAKQEAgLTQ3LDEzICs0NywxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRp
YyBjb25zdCBpbnQgdW5yZXF1ZXN0ZWRTZXF1ZW5jZSA9IC0xOwogCi1TcGVsbENoZWNrUmVxdWVz
dDo6U3BlbGxDaGVja1JlcXVlc3QoaW50IHNlcXVlbmNlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVj
a2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrKQorU3BlbGxDaGVja1JlcXVlc3Q6OlNw
ZWxsQ2hlY2tSZXF1ZXN0KGludCBzZXF1ZW5jZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdS
YW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4
dCwgVGV4dENoZWNraW5nVHlwZU1hc2sgbWFzaywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJv
Y2Vzc1R5cGUpCiAgICAgOiBtX3NlcXVlbmNlKHNlcXVlbmNlKQogICAgICwgbV9jaGVja2luZ1Jh
bmdlKGNoZWNraW5nUmFuZ2UpCiAgICAgLCBtX3BhcmFncmFwaFJhbmdlKHBhcmFncmFwaFJhbmdl
KQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX21hc2sobWFzaykKICAgICAsIG1fcm9vdEVk
aXRhYmxlRWxlbWVudChtX2NoZWNraW5nUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPnJvb3RFZGl0
YWJsZUVsZW1lbnQoKSkKKyAgICAsIG1fcHJvY2Vzc1R5cGUocHJvY2Vzc1R5cGUpCiB7CiB9CiAK
QEAgLTYyLDcgKzYzLDcgQEAgU3BlbGxDaGVja1JlcXVlc3Q6On5TcGVsbENoZWNrUmVxdWVzdCgp
CiB9CiAKIC8vIHN0YXRpYwotUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gU3BlbGxDaGVj
a1JlcXVlc3Q6OmNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlTWFzayB0ZXh0Q2hlY2tpbmdPcHRpb25z
LCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJh
Z3JhcGhSYW5nZSkKK1Bhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IFNwZWxsQ2hlY2tSZXF1
ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlwZU1hc2sgdGV4dENoZWNraW5nT3B0aW9ucywgVGV4
dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNr
aW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKQogewogICAgIEFTU0VS
VChjaGVja2luZ1JhbmdlKTsKICAgICBBU1NFUlQocGFyYWdyYXBoUmFuZ2UpOwpAQCAtNzEsNyAr
NzIsNyBAQCBQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBTcGVsbENoZWNrUmVxdWVzdDo6
Y3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrIHRleAogICAgIGlmICghdGV4dC5sZW5ndGgoKSkK
ICAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+KCk7CiAKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNwZWxsQ2hlY2tSZXF1ZXN0KHVucmVxdWVzdGVkU2VxdWVuY2Us
IGNoZWNraW5nUmFuZ2UsIHBhcmFncmFwaFJhbmdlLCB0ZXh0LCB0ZXh0Q2hlY2tpbmdPcHRpb25z
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGVsbENoZWNrUmVxdWVzdCh1bnJlcXVlc3Rl
ZFNlcXVlbmNlLCBjaGVja2luZ1JhbmdlLCBwYXJhZ3JhcGhSYW5nZSwgdGV4dCwgdGV4dENoZWNr
aW5nT3B0aW9ucywgcHJvY2Vzc1R5cGUpKTsKIH0KIAogCkBAIC0xNDUsNyArMTQ2LDcgQEAgdm9p
ZCBTcGVsbENoZWNrZXI6Omludm9rZVJlcXVlc3QoUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVz
dD4gcmVxdWVzdCkKICAgICBBU1NFUlQoIW1fcHJvY2Vzc2luZ1JlcXVlc3QpOwogCiAgICAgbV9w
cm9jZXNzaW5nUmVxdWVzdCA9IHJlcXVlc3Q7Ci0gICAgY2xpZW50KCktPnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKHRoaXMsIG1fcHJvY2Vzc2luZ1JlcXVlc3QtPnNlcXVlbmNlKCksIG1fcHJvY2Vz
c2luZ1JlcXVlc3QtPm1hc2soKSwgbV9wcm9jZXNzaW5nUmVxdWVzdC0+dGV4dCgpKTsKKyAgICBj
bGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcodGhpcywgbV9wcm9jZXNzaW5nUmVxdWVz
dC0+c2VxdWVuY2UoKSwgbV9wcm9jZXNzaW5nUmVxdWVzdC0+bWFzaygpLCBtX3Byb2Nlc3NpbmdS
ZXF1ZXN0LT5wcm9jZXNzVHlwZSgpLCBtX3Byb2Nlc3NpbmdSZXF1ZXN0LT50ZXh0KCkpOwogfQog
CiB2b2lkIFNwZWxsQ2hlY2tlcjo6ZW5xdWV1ZVJlcXVlc3QoUGFzc1JlZlB0cjxTcGVsbENoZWNr
UmVxdWVzdD4gcmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3Bl
bGxDaGVja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCmluZGV4
IDIwMzA2ZGExYTU5MzZlMmZmNTRmOWJlMmIyYWYzZjI1ZTk4NzAyNWIuLjRkNjE3YjA4NmZlODU2
YzVmNWNjNTBlOTkyMDJiMDYzNmQ3ZmNlZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvU3BlbGxDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENo
ZWNrZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAj
aW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tpbmcuaCIKKyNpbmNsdWRlICJU
ZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8
d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQ2LDEwICs0Nywx
MCBAQCBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0OwogCiBjbGFzcyBTcGVsbENoZWNrUmVxdWVz
dCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWxsQ2hlY2tSZXF1ZXN0PiB7CiBwdWJsaWM6Ci0gICAg
U3BlbGxDaGVja1JlcXVlc3QoaW50IHNlcXVlbmNlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2lu
Z1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3RyaW5nJiwg
VGV4dENoZWNraW5nVHlwZU1hc2spOworICAgIFNwZWxsQ2hlY2tSZXF1ZXN0KGludCBzZXF1ZW5j
ZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFy
YWdyYXBoUmFuZ2UsIGNvbnN0IFN0cmluZyYsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBUZXh0Q2hl
Y2tpbmdQcm9jZXNzVHlwZSk7CiAgICAgflNwZWxsQ2hlY2tSZXF1ZXN0KCk7CiAKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gY3JlYXRlKFRleHRDaGVja2luZ1R5cGVN
YXNrLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBw
YXJhZ3JhcGhSYW5nZSk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+
IGNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlTWFzaywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUsIFBh
c3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFw
aFJhbmdlKTsKIAogICAgIHZvaWQgc2V0U2VxdWVuY2UoaW50IHNlcXVlbmNlKSB7IG1fc2VxdWVu
Y2UgPSBzZXF1ZW5jZTsgfQogICAgIGludCBzZXF1ZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vx
dWVuY2U7IH0KQEAgLTU3LDYgKzU4LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UmFuZ2U+
IHBhcmFncmFwaFJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhZ3JhcGhSYW5nZTsgfQogICAg
IGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQogICAgIFRleHRD
aGVja2luZ1R5cGVNYXNrIG1hc2soKSBjb25zdCB7IHJldHVybiBtX21hc2s7IH0KKyAgICBUZXh0
Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vz
c1R5cGU7IH0KICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IHJvb3RFZGl0YWJsZUVsZW1lbnQoKSBj
b25zdCB7IHJldHVybiBtX3Jvb3RFZGl0YWJsZUVsZW1lbnQ7IH0KIHByaXZhdGU6CiAKQEAgLTY2
LDYgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV90ZXh0OwogICAgIFRleHRDaGVja2lu
Z1R5cGVNYXNrIG1fbWFzazsKICAgICBSZWZQdHI8RWxlbWVudD4gbV9yb290RWRpdGFibGVFbGVt
ZW50OworICAgIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlIG1fcHJvY2Vzc1R5cGU7CiB9OwogCiBj
bGFzcyBTcGVsbENoZWNrZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4
IDIzNTJjMjg3NmQyMTgxMzRkMGJlYTY0MjU0NzgxYmU4MWU2NjAwZTguLjg3NDNmMjJmYTFiOTI2
NmRlODdjMGE2MTMxZDViZjRiNGNhNjE3ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgKQEAgLTQzMiw3ICs0MzIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwg
dm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBWZWN0
b3I8U3RyaW5nPiYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
ZyhTcGVsbENoZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcm
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVj
a2VyKiwgaW50LCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUs
IGNvbnN0IFN0cmluZyYpIHsgfQogfTsKIAogY2xhc3MgRW1wdHlFZGl0b3JDbGllbnQgOiBwdWJs
aWMgRWRpdG9yQ2xpZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dENoZWNrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4
dENoZWNrZXJDbGllbnQuaAppbmRleCBkMTZhZGUxNjQ2MGFkNzBmMzdlYjllOGQ0MTRkZjYxZjY3
Y2ZjOGQzLi5iYTM0MmVmNjAxMjM0ZmQ0ZGQ5ZDI1MDkyNjQ1Yzc5YWU4MmNlYTM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oCkBAIC0y
OSw2ICsyOSw3IEBACiAjZGVmaW5lIFRleHRDaGVja2VyQ2xpZW50X2gKIAogI2luY2x1ZGUgIlRl
eHRDaGVja2luZy5oIgorI2luY2x1ZGUgIlRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLmgiCiAKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTcxLDcg
KzcyLDcgQEAgcHVibGljOgogICAgIC8vIHByb3ZpZGUgbW9yZSBhY2N1cmF0ZSBjb3JyZWN0aW9u
IHN1Z2dlc3Rpb25zLiBDYWxsZXIgY2FuIHBhc3MgaW4gbW9yZSB0ZXh0IGluICJjb250ZXh0IiB0
byBhaWQgc3VjaCBzcGVsbGNoZWNrZXJzIG9uIGxhbmd1YWdlCiAgICAgLy8gaWRlbnRpZmljYXRp
b24uIE5vcmFtbGx5IGl0J3MgdGhlIHRleHQgc3Vycm91bmRpbmcgdGhlICJ3b3JkIiBmb3Igd2hp
Y2ggd2UgYXJlIGdldHRpbmcgY29ycmVjdGlvbiBzdWdnZXN0aW9ucy4KICAgICB2aXJ0dWFsIHZv
aWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNv
bnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgVGV4dENoZWNraW5nVHlw
ZU1hc2ssIGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgVGV4
dENoZWNraW5nUHJvY2Vzc1R5cGUsIGNvbnN0IFN0cmluZyYpID0gMDsKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oCmluZGV4IGJmZmE4ODE4MDZkNjQ3MTEwNGI5MjFkOGQx
ZTg3NmY0N2NlNGU1NjUuLjM4Mjg3ODE1MGRjYjkzYTk4Nzk3ODhiOTNhZDkzYTgzMTVhNjhlOWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaApAQCAtODQsNyArODQsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3Bl
bGxlZFdvcmQoY29uc3QgU3RyaW5nJiBtaXNzcGVsbGVkV29yZCk7CiAgICAgdmlydHVhbCB2b2lk
IGNoZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50LCBWZWN0b3I8R3JhbW1hckRl
dGFpbCwgMHU+JiwgaW50KiwgaW50Kik7CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JX
b3JkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+Jik7Ci0gICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwg
VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5
cGVNYXNrLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSwgY29uc3QgU3RyaW5nJik7CiAKICAgICB2
aXJ0dWFsIFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpOwogICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcoY29uc3QgU3RyaW5nJiwgY29uc3Qg
R3JhbW1hckRldGFpbCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
RWRpdG9yQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JD
bGllbnRJbXBsLmNwcAppbmRleCAwMzNkNDZkNThjMmY3OTU0NzllMGEwNDI5ZTM2ZGY5MTczZGQ1
ZTk2Li4zZWJiOTVhZDFmZDIwNjAyNjNkNTAzMDFiMWFkZTNlZTNmMjEzMjc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcApAQCAtNzI5LDcg
KzcyOSw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNv
bnN0IFVDaGFyKiB0ZXh0LCBpbnQgbGVuZ3RoLAogICAgICAgICAqbWlzc3BlbGxpbmdMZW5ndGgg
PSBzcGVsbExlbmd0aDsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRJbXBsOjpyZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZyhTcGVsbENoZWNrZXIqIHNlbmRlciwgaW50IGlkZW50aWZpZXIsIFRleHRDaGVj
a2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmIHRleHQpCit2b2lkIEVkaXRvckNsaWVudEltcGw6
OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciogc2VuZGVyLCBpbnQgaWRlbnRp
ZmllciwgVGV4dENoZWNraW5nVHlwZU1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLCBjb25z
dCBTdHJpbmcmIHRleHQpCiB7CiAgICAgaWYgKG1fd2ViVmlldy0+c3BlbGxDaGVja0NsaWVudCgp
KQogICAgICAgICBtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGllbnQoKS0+cmVxdWVzdENoZWNraW5n
T2ZUZXh0KHRleHQsIG5ldyBXZWJUZXh0Q2hlY2tpbmdDb21wbGV0aW9uSW1wbChpZGVudGlmaWVy
LCBzZW5kZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRv
ckNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudElt
cGwuaAppbmRleCA5OTk4NjBhMDI3MjY5NDMzNjMzMDUzNDYzYzQyMmJjZGFlODkwY2Q3Li45Nzdm
MmY5YTgzZTg3MzdkMTY0ODZmNTZlOWIzNjIwN2FjNWZmOTE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCkBAIC0xMDksNyArMTA5LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmlu
ZyYgd29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3Ry
aW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRl
KCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsK
LSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxD
aGVja2VyKiwgaW50LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgV1RGOjpT
dHJpbmcmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29y
ZTo6U3BlbGxDaGVja2VyKiwgaW50LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzaywgV2Vi
Q29yZTo6VGV4dENoZWNraW5nUHJvY2Vzc1R5cGUsIGNvbnN0IFdURjo6U3RyaW5nJik7CiAKICAg
ICB2aXJ0dWFsIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsgcmV0
dXJuIHRoaXM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAKaW5kZXggMjE3MDRkOTdlMDEyYzkxY2FlMGU0Nzk4ZjMxNGNlYjcyOGI3NzkzNS4uYWRmMjAy
MzcxMDU2OTNhZTExYTdjMjEwZTgwOWZiM2I3YzdmMjczNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC0xMzAxLDcgKzEzMDEsNyBAQCB2b2lkIFdl
YkZyYW1lSW1wbDo6cmVxdWVzdFRleHRDaGVja2luZyhjb25zdCBXZWJFbGVtZW50JiB3ZWJFbGVt
KQogCiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZVRvQ2hlY2sgPSByYW5nZU9mQ29udGVudHMoY29u
c3RfY2FzdDxFbGVtZW50Kj4od2ViRWxlbS5jb25zdFVud3JhcDxFbGVtZW50PigpKSk7CiAKLSAg
ICBmcmFtZSgpLT5lZGl0b3IoKS0+c3BlbGxDaGVja2VyKCktPnJlcXVlc3RDaGVja2luZ0ZvcihT
cGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRD
aGVja2luZ1R5cGVHcmFtbWFyLCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVjaykpOworICAgIGZy
YW1lKCktPmVkaXRvcigpLT5zcGVsbENoZWNrZXIoKS0+cmVxdWVzdENoZWNraW5nRm9yKFNwZWxs
Q2hlY2tSZXF1ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgVGV4dENoZWNr
aW5nVHlwZUdyYW1tYXIsIFRleHRDaGVja2luZ1Byb2Nlc3NCYXRjaCwgcmFuZ2VUb0NoZWNrLCBy
YW5nZVRvQ2hlY2spKTsKIH0KIAogYm9vbCBXZWJGcmFtZUltcGw6Omhhc1NlbGVjdGlvbigpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hl
Y2tlckNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvVGV4dENo
ZWNrZXJDbGllbnRHdGsuaAppbmRleCBlNTM5MGJjYzk3Mzk0NzdhMjc2MDQ3OWM2ZTQxMTIzODI4
NWUxMGU2Li45YjE4Yzk3YmZjOGM4NDhlNTQwOTMzMDNlZDIwMDA1NDgzODExNjI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0
ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xp
ZW50R3RrLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgVGV4dENoZWNrZXJDbGllbnRHdGsgOiBw
dWJsaWMgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQgewogICAgICAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFdU
Rjo6U3RyaW5nJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjaGVja0dyYW1tYXJPZlN0cmluZyhj
b25zdCBVQ2hhciosIGludCBsZW5ndGgsIFdURjo6VmVjdG9yPFdlYkNvcmU6OkdyYW1tYXJEZXRh
aWw+JiwgaW50KiBiYWRHcmFtbWFyTG9jYXRpb24sIGludCogYmFkR3JhbW1hckxlbmd0aCk7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYg
d29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5n
PiYgZ3Vlc3Nlcyk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
ZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVN
YXNrLCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENo
ZWNraW5nVHlwZU1hc2ssIFdlYkNvcmU6OlRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLCBjb25zdCBX
VEY6OlN0cmluZyYpIHt9CiAKICAgICAgICAgdm9pZCB1cGRhdGVTcGVsbENoZWNraW5nTGFuZ3Vh
Z2UoY29uc3QgY2hhciopOwogICAgIHByaXZhdGU6CkBAIC01Niw0ICs1NiwzIEBAIGNsYXNzIFRl
eHRDaGVja2VyQ2xpZW50R3RrIDogcHVibGljIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50IHsK
ICAgICB9OwogfQogI2VuZGlmCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNWE5YjkxNzBiNWQ2MjA3MWRmNDgxY2MzMjk0
MGRhNzJmYjUxYWExYy4uYWQ1NDRjZTQ5OGFhOWY0NTk5NzRmNmJiZTQ4Nzc3MzFiNDQ2Y2E1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmgKQEAgLTEzNSw3ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1
ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYg
Y29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENo
ZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0
cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
ZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVN
YXNrLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSwgY29uc3QgV1RGOjpTdHJpbmcm
KSBPVkVSUklERTsKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0
aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3Ry
aW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY29u
c3QgVmVjdG9yPFN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpSZWFz
b25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCBmMWM1
NTEwYmYxMTAyYzhlZjhhZmUzOWUzMDlhODI0OWExN2UwNTZjLi5hOTNhZjY2YmUxZTA0MmY4MDIz
NjY5MDUzYmQ0ZWE2MDhmMGM2ODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC05NzIsNyArOTcyLDcgQEAgdm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKIEBlbmQKICNlbmRpZgog
Ci12b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6
U3BlbGxDaGVja2VyKiBzZW5kZXIsIGludCBzZXF1ZW5jZSwgV2ViQ29yZTo6VGV4dENoZWNraW5n
VHlwZU1hc2sgY2hlY2tpbmdUeXBlcywgY29uc3QgU3RyaW5nJiB0ZXh0KQordm9pZCBXZWJFZGl0
b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciog
c2VuZGVyLCBpbnQgc2VxdWVuY2UsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrIGNoZWNr
aW5nVHlwZXMsIFdlYkNvcmU6OlRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLCBjb25zdCBTdHJpbmcm
IHRleHQpCiB7CiAjaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKICAgICBOU1JhbmdlIHJhbmdl
ID0gTlNNYWtlUmFuZ2UoMCwgdGV4dC5sZW5ndGgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRRdC5oCmluZGV4IGU3OGNlMWQx
MGMwNWQyMzVhNmE1NGIzYmJiZWE3ZWVhOWFjZTg0ODMuLmQ3MWRjMzQ5MDEwMzRiMDY5MmUyN2Vj
Y2E0MDQzMzNmOTJmODFjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvVGV4dENoZWNrZXJDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRRdC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIFN0cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVk
V29yZChjb25zdCBTdHJpbmcmIG1pc3NwZWxsZWRXb3JkKTsKICAgICB2aXJ0dWFsIHZvaWQgY2hl
Y2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBWZWN0b3I8R3JhbW1h
ckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRHcmFtbWFyTGVuZ3Ro
KTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3Jk
LCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKLSAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBU
ZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgVGV4dENoZWNraW5n
VHlwZU1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLCBjb25zdCBTdHJpbmcmKSB7IH0KIAog
ICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRpbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CiAgICAg
dmlydHVhbCB2b2lkIHRvZ2dsZUNvbnRpbm91c1NwZWxsQ2hlY2tpbmcoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggMjhh
OTEwNWVmYjY0ZWU4MTU1YWQwZGU5NzJmMWM4ZjdhMTU5OTMyYS4uODVhMzNlODM2ZGQ3NWI2NzVi
Y2I4ZThlZjk3ODU2ZDZhN2Y1MjdmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTExMCw3ICsxMTAsOCBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBXZWJDb3Jl
OjpUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQorICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBp
bnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdQ
cm9jZXNzVHlwZSwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQorCiAgICAgdmlydHVhbCBXZWJDb3Jl
OjpUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFdpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFdpbkNFLmgKaW5kZXggYzI5NTI0ZTFhMjZmNDBjM2RkMDA0YTIyYTI2NzEyZjYw
ZTZkNWM0OS4uNjA3N2ZjZTRlZTg1ZTZkN2RhMDA1Yjg5ZGUzMGM3NGIxMzdiZmY0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5D
RS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
V2luQ0UuaApAQCAtMTAxLDcgKzEwMSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5n
JiBjb250ZXh0LCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1
YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJ
bnB1dE1ldGhvZFN0YXRlKGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2lu
Z1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CisgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6
VGV4dENoZWNraW5nVHlwZU1hc2ssIFdlYkNvcmU6OlRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLCBj
b25zdCBXVEY6OlN0cmluZyYpIHt9CiAgICAgdmlydHVhbCBXZWJDb3JlOjpUZXh0Q2hlY2tlckNs
aWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5jcHAKaW5kZXggMTllZjdkYzRmMjNhMzIwM2M3Zjk4ZjE1OTU1MTM5NWUwNDNh
NGEwNy4uMDg3YzEwYzEwZmIyZDI2Zjk2YWY3NDgyY2M2MmQxZGM4MGE2ZjRiOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcApAQCAtNDQ3LDcgKzQ0Nyw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50
OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAot
dm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNw
ZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdU
Rjo6U3RyaW5nJikKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
ZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVN
YXNrLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSwgY29uc3QgV1RGOjpTdHJpbmcm
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCAy
NjAwMjBmZjI2ZGVkZDE3MDE1ZWU2YWJhNGIyMmQwMjllMzM4MDg5Li5lMTU3ZjkzZjNlNTkxMzYx
MGFmNTlhYTQ5MDNhYTcxZTJjN2M2NGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTE0MSw3
ICsxNDEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChj
b25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4m
IGd1ZXNzZXMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RT
dGF0ZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJv
b2wgZW5hYmxlZCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09m
U3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5n
VHlwZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2Vi
Q29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2ssIFdlYkNvcmU6OlRleHRDaGVja2luZ1Byb2Nlc3NU
eXBlLCBjb25zdCBXVEY6OlN0cmluZyYpIE9WRVJSSURFOwogI2lmIFBMQVRGT1JNKE1BQykgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93
Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNv
bnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJp
bmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncykg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoV2ViQ29y
ZTo6UmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCkgT1ZFUlJJREU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128388</attachid>
            <date>2012-02-22 21:21:53 -0800</date>
            <delta_ts>2012-02-22 22:03:48 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-79320-20120223142151.patch</filename>
            <type>text/plain</type>
            <size>26323</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJiZWY1YmVjOTZhZTg0
NzNlYjQ1NWE2ZDMyZDhmZGE5NDU1MmQ2Mi4uNTViZGFjZTE4MjQ5YzJkOWE2OGM1MTc1YTg4MTM5
ZjUzNTY2MzNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAyLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNr
UmVxdWVzdCBuZWVkIHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUgdGhlIHNwZWxsY2hlY2sgaGFw
cGVuZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5
MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hcklu
UmFuZ2VzKToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6U3BlbGxDaGVja1JlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVsbENoZWNrZXI6Omludm9rZVJlcXVlc3QpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVj
a2VyLmg6CisgICAgICAgIChTcGVsbENoZWNrUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVsbENoZWNrUmVxdWVzdDo6cHJvY2Vzc1R5cGUpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNs
aWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5VGV4dENoZWNrZXJDbGllbnQ6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2Vy
Q2xpZW50Lmg6CisgICAgICAgIChUZXh0Q2hlY2tlckNsaWVudCk6CisKIDIwMTItMDItMjIgIEFu
ZHJlYXMgS2xpbmcgIDxhd2Vzb21la2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgcGFy
c2luZyBjb2xvciBwcmVzZW50YXRpb24gYXR0cmlidXRlcyBkbyBsZXNzIHBvaW50bGVzcyB3b3Jr
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5NzEzNzQ5Y2U3ODc0YWIwOGNiOTBhY2Mw
YzJmOGI5OGE4MGExNzVkLi5lZTY4MTVjM2NmOTFmYjQ2MjQ3NWM0NjFmNmJmYTBjNDBkYzE5ODYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTIy
ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVs
bENoZWNrUmVxdWVzdCBuZWVkIHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUgdGhlIHNwZWxsY2hl
Y2sgaGFwcGVuZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc5MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNs
aWVudEltcGw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBzcmMvRWRpdG9y
Q2xpZW50SW1wbC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50SW1wbCk6CisgICAgICAgICogc3Jj
L1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6cmVxdWVz
dFRleHRDaGVja2luZyk6CisKIDIwMTItMDItMjIgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwODU5MC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDk3NGRhMWU0NGE0ZTJiMjAzMzVjYzg5NzE1
NmVhOTM4NGE4OGVlNTQuLjYwYzcyYWZjNDc1NzE5NTgxYTI4ZWJlM2M0ZDRlYmE1ZTcyNmZjNjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzM1Miw2ICszMzUyLDcgQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVh
a0l0ZXJhdG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJD
bGllbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaCBc
CisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZS5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlYy5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dENvZGVjQVNDSUlGYXN0UGF0aC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCBmZGM2MGU0MTY5OWQ1MGYwYTc3YTA5Y2JmYjMyOWVjZjI3M2EyNWJlLi43ZWUxODY4YzRkYzBm
NzE2YTk4NTAyZjQ4OWYwZmE0MzRhOTZiOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00NTUsNiAr
NDU1LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySW50
ZXJuYWxJQ1UuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVu
dC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oJywKKyAgICAg
ICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZ1Byb2Nlc3NUeXBlLmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL3RleHQvVGV4dENvZGVjLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L3RleHQvVGV4dENvZGVjSUNVLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvVGV4dENv
ZGVjTGF0aW4xLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagppbmRleCAxZTdjNmYwNjAxYmZkMDE3Njg3ZGNkNjdkMzg3MWQzNTk4MWExNTgxLi4zNzIw
NjBiYjY3ZjA3YTE4NjNiZGRhYTFiYjkwNWMzMDQxYzQ1MjMxIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMzE3NDksNiArMzE3NDksMTAgQEAK
IAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXHRleHRcVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUuaCIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcVGV4dENv
ZGVjLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApp
bmRleCAxM2JiN2U3NWY3Y2M5NTU4N2QxOGM0NDIwNWZhNjc4OGM4NTExYzVjLi4xY2UyNGU1Mzhk
NDM1N2YxZTNlMmRiYTgwYzQ0YjRhNTg0YzJhMDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCkBAIC00MTgsNyArNDE4LDcgQEAgdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRo
RnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwKICAgICAgICAg
cmV0dXJuOwogCiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZVRvQ2hlY2sgPSBSYW5nZTo6Y3JlYXRl
KG1fZnJhbWUtPmRvY3VtZW50KCksIGZpcnN0UG9zaXRpb25Jbk5vZGUobm9kZVRvQ2hlY2spLCBs
YXN0UG9zaXRpb25Jbk5vZGUobm9kZVRvQ2hlY2spKTsKLSAgICBtX3NwZWxsQ2hlY2tlci0+cmVx
dWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUocmVzb2x2ZVRleHRDaGVj
a2luZ1R5cGVNYXNrKFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVja2luZ1R5cGVH
cmFtbWFyKSwgcmFuZ2VUb0NoZWNrLCByYW5nZVRvQ2hlY2spKTsKKyAgICBtX3NwZWxsQ2hlY2tl
ci0+cmVxdWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUocmVzb2x2ZVRl
eHRDaGVja2luZ1R5cGVNYXNrKFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVja2lu
Z1R5cGVHcmFtbWFyKSwgVGV4dENoZWNraW5nUHJvY2Vzc0JhdGNoLCByYW5nZVRvQ2hlY2ssIHJh
bmdlVG9DaGVjaykpOwogfQogCiB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0
KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJl
cGxhY2UpCkBAIC0xOTM1LDcgKzE5MzUsNyBAQCB2b2lkIEVkaXRvcjo6bWFya0FsbE1pc3NwZWxs
aW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyhUZXh0Q2hlY2tpbmdUeXBlTWFzayB0ZXh0QwogICAg
IGJvb2wgYXN5bmNocm9ub3VzID0gbV9mcmFtZSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpICYmIG1f
ZnJhbWUtPnNldHRpbmdzKCktPmFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgJiYg
IXNob3VsZFNob3dDb3JyZWN0aW9uUGFuZWw7CiAKICAgICAvLyBJbiBhc3luY2hyb25vdXMgbW9k
ZSwgd2UgaW50ZW50aW9uYWxseSBjaGVjayBwYXJhZ3JhcGgtd2lkZSBzZW50ZW5jZS4KLSAgICBS
ZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IHJlcXVlc3QgPSBTcGVsbENoZWNrUmVxdWVzdDo6Y3Jl
YXRlKHJlc29sdmVUZXh0Q2hlY2tpbmdUeXBlTWFzayh0ZXh0Q2hlY2tpbmdPcHRpb25zKSwgYXN5
bmNocm9ub3VzID8gcGFyYWdyYXBoUmFuZ2UgOiByYW5nZVRvQ2hlY2ssIHBhcmFncmFwaFJhbmdl
KTsKKyAgICBSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IHJlcXVlc3QgPSBTcGVsbENoZWNrUmVx
dWVzdDo6Y3JlYXRlKHJlc29sdmVUZXh0Q2hlY2tpbmdUeXBlTWFzayh0ZXh0Q2hlY2tpbmdPcHRp
b25zKSwgVGV4dENoZWNraW5nUHJvY2Vzc0luY3JlbWVudGFsLCBhc3luY2hyb25vdXMgPyBwYXJh
Z3JhcGhSYW5nZSA6IHJhbmdlVG9DaGVjaywgcGFyYWdyYXBoUmFuZ2UpOwogCiAgICAgaWYgKGFz
eW5jaHJvbm91cykgewogICAgICAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNraW5nRm9y
KHJlcXVlc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNr
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCmluZGV4IDY4
MzY0NGM2ZDAxNWVjOTI5ZjUyZjg1OWQzMzZkYjdlODJmMTJjOTUuLmI3YmI1MWRhNGIwOWM0MWRi
MDU3NzZmNDYyYTY3ZDA1YzU3MTk2YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvU3BlbGxDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hl
Y2tlci5jcHAKQEAgLTQ3LDEzICs0NywxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRp
YyBjb25zdCBpbnQgdW5yZXF1ZXN0ZWRTZXF1ZW5jZSA9IC0xOwogCi1TcGVsbENoZWNrUmVxdWVz
dDo6U3BlbGxDaGVja1JlcXVlc3QoaW50IHNlcXVlbmNlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVj
a2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrKQorU3BlbGxDaGVja1JlcXVlc3Q6OlNw
ZWxsQ2hlY2tSZXF1ZXN0KGludCBzZXF1ZW5jZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdS
YW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4
dCwgVGV4dENoZWNraW5nVHlwZU1hc2sgbWFzaywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJv
Y2Vzc1R5cGUpCiAgICAgOiBtX3NlcXVlbmNlKHNlcXVlbmNlKQogICAgICwgbV9jaGVja2luZ1Jh
bmdlKGNoZWNraW5nUmFuZ2UpCiAgICAgLCBtX3BhcmFncmFwaFJhbmdlKHBhcmFncmFwaFJhbmdl
KQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX21hc2sobWFzaykKICAgICAsIG1fcm9vdEVk
aXRhYmxlRWxlbWVudChtX2NoZWNraW5nUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPnJvb3RFZGl0
YWJsZUVsZW1lbnQoKSkKKyAgICAsIG1fcHJvY2Vzc1R5cGUocHJvY2Vzc1R5cGUpCiB7CiB9CiAK
QEAgLTYyLDcgKzYzLDcgQEAgU3BlbGxDaGVja1JlcXVlc3Q6On5TcGVsbENoZWNrUmVxdWVzdCgp
CiB9CiAKIC8vIHN0YXRpYwotUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gU3BlbGxDaGVj
a1JlcXVlc3Q6OmNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlTWFzayB0ZXh0Q2hlY2tpbmdPcHRpb25z
LCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJh
Z3JhcGhSYW5nZSkKK1Bhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IFNwZWxsQ2hlY2tSZXF1
ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlwZU1hc2sgdGV4dENoZWNraW5nT3B0aW9ucywgVGV4
dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNr
aW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKQogewogICAgIEFTU0VS
VChjaGVja2luZ1JhbmdlKTsKICAgICBBU1NFUlQocGFyYWdyYXBoUmFuZ2UpOwpAQCAtNzEsNyAr
NzIsNyBAQCBQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBTcGVsbENoZWNrUmVxdWVzdDo6
Y3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrIHRleAogICAgIGlmICghdGV4dC5sZW5ndGgoKSkK
ICAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+KCk7CiAKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNwZWxsQ2hlY2tSZXF1ZXN0KHVucmVxdWVzdGVkU2VxdWVuY2Us
IGNoZWNraW5nUmFuZ2UsIHBhcmFncmFwaFJhbmdlLCB0ZXh0LCB0ZXh0Q2hlY2tpbmdPcHRpb25z
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGVsbENoZWNrUmVxdWVzdCh1bnJlcXVlc3Rl
ZFNlcXVlbmNlLCBjaGVja2luZ1JhbmdlLCBwYXJhZ3JhcGhSYW5nZSwgdGV4dCwgdGV4dENoZWNr
aW5nT3B0aW9ucywgcHJvY2Vzc1R5cGUpKTsKIH0KIAogCkBAIC0xNDUsNyArMTQ2LDcgQEAgdm9p
ZCBTcGVsbENoZWNrZXI6Omludm9rZVJlcXVlc3QoUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVz
dD4gcmVxdWVzdCkKICAgICBBU1NFUlQoIW1fcHJvY2Vzc2luZ1JlcXVlc3QpOwogCiAgICAgbV9w
cm9jZXNzaW5nUmVxdWVzdCA9IHJlcXVlc3Q7Ci0gICAgY2xpZW50KCktPnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKHRoaXMsIG1fcHJvY2Vzc2luZ1JlcXVlc3QtPnNlcXVlbmNlKCksIG1fcHJvY2Vz
c2luZ1JlcXVlc3QtPm1hc2soKSwgbV9wcm9jZXNzaW5nUmVxdWVzdC0+dGV4dCgpKTsKKyAgICBj
bGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcodGhpcywgbV9wcm9jZXNzaW5nUmVxdWVz
dC0+c2VxdWVuY2UoKSwgbV9wcm9jZXNzaW5nUmVxdWVzdC0+bWFzaygpLCBtX3Byb2Nlc3NpbmdS
ZXF1ZXN0LT5wcm9jZXNzVHlwZSgpLCBtX3Byb2Nlc3NpbmdSZXF1ZXN0LT50ZXh0KCkpOwogfQog
CiB2b2lkIFNwZWxsQ2hlY2tlcjo6ZW5xdWV1ZVJlcXVlc3QoUGFzc1JlZlB0cjxTcGVsbENoZWNr
UmVxdWVzdD4gcmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3Bl
bGxDaGVja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCmluZGV4
IDIwMzA2ZGExYTU5MzZlMmZmNTRmOWJlMmIyYWYzZjI1ZTk4NzAyNWIuLjRkNjE3YjA4NmZlODU2
YzVmNWNjNTBlOTkyMDJiMDYzNmQ3ZmNlZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvU3BlbGxDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENo
ZWNrZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAj
aW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tpbmcuaCIKKyNpbmNsdWRlICJU
ZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8
d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQ2LDEwICs0Nywx
MCBAQCBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0OwogCiBjbGFzcyBTcGVsbENoZWNrUmVxdWVz
dCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWxsQ2hlY2tSZXF1ZXN0PiB7CiBwdWJsaWM6Ci0gICAg
U3BlbGxDaGVja1JlcXVlc3QoaW50IHNlcXVlbmNlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2lu
Z1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3RyaW5nJiwg
VGV4dENoZWNraW5nVHlwZU1hc2spOworICAgIFNwZWxsQ2hlY2tSZXF1ZXN0KGludCBzZXF1ZW5j
ZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFy
YWdyYXBoUmFuZ2UsIGNvbnN0IFN0cmluZyYsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBUZXh0Q2hl
Y2tpbmdQcm9jZXNzVHlwZSk7CiAgICAgflNwZWxsQ2hlY2tSZXF1ZXN0KCk7CiAKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gY3JlYXRlKFRleHRDaGVja2luZ1R5cGVN
YXNrLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBw
YXJhZ3JhcGhSYW5nZSk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+
IGNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlTWFzaywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUsIFBh
c3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFw
aFJhbmdlKTsKIAogICAgIHZvaWQgc2V0U2VxdWVuY2UoaW50IHNlcXVlbmNlKSB7IG1fc2VxdWVu
Y2UgPSBzZXF1ZW5jZTsgfQogICAgIGludCBzZXF1ZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vx
dWVuY2U7IH0KQEAgLTU3LDYgKzU4LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UmFuZ2U+
IHBhcmFncmFwaFJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhZ3JhcGhSYW5nZTsgfQogICAg
IGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQogICAgIFRleHRD
aGVja2luZ1R5cGVNYXNrIG1hc2soKSBjb25zdCB7IHJldHVybiBtX21hc2s7IH0KKyAgICBUZXh0
Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vz
c1R5cGU7IH0KICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IHJvb3RFZGl0YWJsZUVsZW1lbnQoKSBj
b25zdCB7IHJldHVybiBtX3Jvb3RFZGl0YWJsZUVsZW1lbnQ7IH0KIHByaXZhdGU6CiAKQEAgLTY2
LDYgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV90ZXh0OwogICAgIFRleHRDaGVja2lu
Z1R5cGVNYXNrIG1fbWFzazsKICAgICBSZWZQdHI8RWxlbWVudD4gbV9yb290RWRpdGFibGVFbGVt
ZW50OworICAgIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlIG1fcHJvY2Vzc1R5cGU7CiB9OwogCiBj
bGFzcyBTcGVsbENoZWNrZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4
IDIzNTJjMjg3NmQyMTgxMzRkMGJlYTY0MjU0NzgxYmU4MWU2NjAwZTguLjg3NDNmMjJmYTFiOTI2
NmRlODdjMGE2MTMxZDViZjRiNGNhNjE3ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgKQEAgLTQzMiw3ICs0MzIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwg
dm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBWZWN0
b3I8U3RyaW5nPiYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
ZyhTcGVsbENoZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcm
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVj
a2VyKiwgaW50LCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUs
IGNvbnN0IFN0cmluZyYpIHsgfQogfTsKIAogY2xhc3MgRW1wdHlFZGl0b3JDbGllbnQgOiBwdWJs
aWMgRWRpdG9yQ2xpZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dENoZWNrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4
dENoZWNrZXJDbGllbnQuaAppbmRleCBkMTZhZGUxNjQ2MGFkNzBmMzdlYjllOGQ0MTRkZjYxZjY3
Y2ZjOGQzLi5iYTM0MmVmNjAxMjM0ZmQ0ZGQ5ZDI1MDkyNjQ1Yzc5YWU4MmNlYTM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oCkBAIC0y
OSw2ICsyOSw3IEBACiAjZGVmaW5lIFRleHRDaGVja2VyQ2xpZW50X2gKIAogI2luY2x1ZGUgIlRl
eHRDaGVja2luZy5oIgorI2luY2x1ZGUgIlRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLmgiCiAKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTcxLDcg
KzcyLDcgQEAgcHVibGljOgogICAgIC8vIHByb3ZpZGUgbW9yZSBhY2N1cmF0ZSBjb3JyZWN0aW9u
IHN1Z2dlc3Rpb25zLiBDYWxsZXIgY2FuIHBhc3MgaW4gbW9yZSB0ZXh0IGluICJjb250ZXh0IiB0
byBhaWQgc3VjaCBzcGVsbGNoZWNrZXJzIG9uIGxhbmd1YWdlCiAgICAgLy8gaWRlbnRpZmljYXRp
b24uIE5vcmFtbGx5IGl0J3MgdGhlIHRleHQgc3Vycm91bmRpbmcgdGhlICJ3b3JkIiBmb3Igd2hp
Y2ggd2UgYXJlIGdldHRpbmcgY29ycmVjdGlvbiBzdWdnZXN0aW9ucy4KICAgICB2aXJ0dWFsIHZv
aWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNv
bnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgVGV4dENoZWNraW5nVHlw
ZU1hc2ssIGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgVGV4
dENoZWNraW5nUHJvY2Vzc1R5cGUsIGNvbnN0IFN0cmluZyYpID0gMDsKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nUHJvY2Vzc1R5
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nUHJvY2Vzc1R5
cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kYmY3NjQ2NGJlMTRiZDViZjE4MzA3ZDM1NDI0ZDA3M2ZlYzhkMTY1
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hl
Y2tpbmdQcm9jZXNzVHlwZS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFRleHRDaGVja2luZ1By
b2Nlc3NUeXBlX2gKKyNkZWZpbmUgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGVfaAorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2VudW0gVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgeworICAgIFRleHRD
aGVja2luZ1Byb2Nlc3NCYXRjaCwKKyAgICBUZXh0Q2hlY2tpbmdQcm9jZXNzSW5jcmVtZW50YWwK
K307CisKK30KKworI2VuZGlmIC8vIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRC
bGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50QmxhY2tCZXJyeS5oCmluZGV4IGJmZmE4ODE4MDZkNjQ3MTEwNGI5MjFkOGQxZTg3
NmY0N2NlNGU1NjUuLjM4Mjg3ODE1MGRjYjkzYTk4Nzk3ODhiOTNhZDkzYTgzMTVhNjhlOWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaApAQCAtODQsNyArODQsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3BlbGxl
ZFdvcmQoY29uc3QgU3RyaW5nJiBtaXNzcGVsbGVkV29yZCk7CiAgICAgdmlydHVhbCB2b2lkIGNo
ZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50LCBWZWN0b3I8R3JhbW1hckRldGFp
bCwgMHU+JiwgaW50KiwgaW50Kik7CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3Jk
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+Jik7Ci0gICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgVGV4
dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVN
YXNrLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSwgY29uc3QgU3RyaW5nJik7CiAKICAgICB2aXJ0
dWFsIFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpOwogICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcoY29uc3QgU3RyaW5nJiwgY29uc3QgR3Jh
bW1hckRldGFpbCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRp
dG9yQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGll
bnRJbXBsLmNwcAppbmRleCAwMzNkNDZkNThjMmY3OTU0NzllMGEwNDI5ZTM2ZGY5MTczZGQ1ZTk2
Li4zZWJiOTVhZDFmZDIwNjAyNjNkNTAzMDFiMWFkZTNlZTNmMjEzMjc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcApAQCAtNzI5LDcgKzcy
OSw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNvbnN0
IFVDaGFyKiB0ZXh0LCBpbnQgbGVuZ3RoLAogICAgICAgICAqbWlzc3BlbGxpbmdMZW5ndGggPSBz
cGVsbExlbmd0aDsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRJbXBsOjpyZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhTcGVsbENoZWNrZXIqIHNlbmRlciwgaW50IGlkZW50aWZpZXIsIFRleHRDaGVja2lu
Z1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmIHRleHQpCit2b2lkIEVkaXRvckNsaWVudEltcGw6OnJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciogc2VuZGVyLCBpbnQgaWRlbnRpZmll
ciwgVGV4dENoZWNraW5nVHlwZU1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLCBjb25zdCBT
dHJpbmcmIHRleHQpCiB7CiAgICAgaWYgKG1fd2ViVmlldy0+c3BlbGxDaGVja0NsaWVudCgpKQog
ICAgICAgICBtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZU
ZXh0KHRleHQsIG5ldyBXZWJUZXh0Q2hlY2tpbmdDb21wbGV0aW9uSW1wbChpZGVudGlmaWVyLCBz
ZW5kZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNs
aWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwu
aAppbmRleCA5OTk4NjBhMDI3MjY5NDMzNjMzMDUzNDYzYzQyMmJjZGFlODkwY2Q3Li45NzdmMmY5
YTgzZTg3MzdkMTY0ODZmNTZlOWIzNjIwN2FjNWZmOTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYg
d29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5n
PiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVj
a2VyKiwgaW50LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgV1RGOjpTdHJp
bmcmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6
U3BlbGxDaGVja2VyKiwgaW50LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzaywgV2ViQ29y
ZTo6VGV4dENoZWNraW5nUHJvY2Vzc1R5cGUsIGNvbnN0IFdURjo6U3RyaW5nJik7CiAKICAgICB2
aXJ0dWFsIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJu
IHRoaXM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJh
bWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAK
aW5kZXggMjE3MDRkOTdlMDEyYzkxY2FlMGU0Nzk4ZjMxNGNlYjcyOGI3NzkzNS4uYWRmMjAyMzcx
MDU2OTNhZTExYTdjMjEwZTgwOWZiM2I3YzdmMjczNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC0xMzAxLDcgKzEzMDEsNyBAQCB2b2lkIFdlYkZy
YW1lSW1wbDo6cmVxdWVzdFRleHRDaGVja2luZyhjb25zdCBXZWJFbGVtZW50JiB3ZWJFbGVtKQog
CiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZVRvQ2hlY2sgPSByYW5nZU9mQ29udGVudHMoY29uc3Rf
Y2FzdDxFbGVtZW50Kj4od2ViRWxlbS5jb25zdFVud3JhcDxFbGVtZW50PigpKSk7CiAKLSAgICBm
cmFtZSgpLT5lZGl0b3IoKS0+c3BlbGxDaGVja2VyKCktPnJlcXVlc3RDaGVja2luZ0ZvcihTcGVs
bENoZWNrUmVxdWVzdDo6Y3JlYXRlKFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVj
a2luZ1R5cGVHcmFtbWFyLCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVjaykpOworICAgIGZyYW1l
KCktPmVkaXRvcigpLT5zcGVsbENoZWNrZXIoKS0+cmVxdWVzdENoZWNraW5nRm9yKFNwZWxsQ2hl
Y2tSZXF1ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgVGV4dENoZWNraW5n
VHlwZUdyYW1tYXIsIFRleHRDaGVja2luZ1Byb2Nlc3NCYXRjaCwgcmFuZ2VUb0NoZWNrLCByYW5n
ZVRvQ2hlY2spKTsKIH0KIAogYm9vbCBXZWJGcmFtZUltcGw6Omhhc1NlbGVjdGlvbigpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tl
ckNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNr
ZXJDbGllbnRHdGsuaAppbmRleCBlNTM5MGJjYzk3Mzk0NzdhMjc2MDQ3OWM2ZTQxMTIzODI4NWUx
MGU2Li45YjE4Yzk3YmZjOGM4NDhlNTQwOTMzMDNlZDIwMDA1NDgzODExNjI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50
R3RrLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgVGV4dENoZWNrZXJDbGllbnRHdGsgOiBwdWJs
aWMgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQgewogICAgICAgICB2aXJ0dWFsIFdURjo6U3Ry
aW5nIGdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFdURjo6
U3RyaW5nJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjaGVja0dyYW1tYXJPZlN0cmluZyhjb25z
dCBVQ2hhciosIGludCBsZW5ndGgsIFdURjo6VmVjdG9yPFdlYkNvcmU6OkdyYW1tYXJEZXRhaWw+
JiwgaW50KiBiYWRHcmFtbWFyTG9jYXRpb24sIGludCogYmFkR3JhbW1hckxlbmd0aCk7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYgd29y
ZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYg
Z3Vlc3Nlcyk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhX
ZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNr
LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNr
aW5nVHlwZU1hc2ssIFdlYkNvcmU6OlRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLCBjb25zdCBXVEY6
OlN0cmluZyYpIHt9CiAKICAgICAgICAgdm9pZCB1cGRhdGVTcGVsbENoZWNraW5nTGFuZ3VhZ2Uo
Y29uc3QgY2hhciopOwogICAgIHByaXZhdGU6CkBAIC01Niw0ICs1NiwzIEBAIGNsYXNzIFRleHRD
aGVja2VyQ2xpZW50R3RrIDogcHVibGljIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50IHsKICAg
ICB9OwogfQogI2VuZGlmCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNWE5YjkxNzBiNWQ2MjA3MWRmNDgxY2MzMjk0MGRh
NzJmYjUxYWExYy4uYWQ1NDRjZTQ5OGFhOWY0NTk5NzRmNmJiZTQ4Nzc3MzFiNDQ2Y2E1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmgKQEAgLTEzNSw3ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNz
ZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYgY29u
dGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNr
ZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0cmlu
ZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhX
ZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNr
LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSwgY29uc3QgV1RGOjpTdHJpbmcmKSBP
VkVSUklERTsKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9u
UGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5n
JiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpSZWFzb25G
b3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCBmMWM1NTEw
YmYxMTAyYzhlZjhhZmUzOWUzMDlhODI0OWExN2UwNTZjLi5hOTNhZjY2YmUxZTA0MmY4MDIzNjY5
MDUzYmQ0ZWE2MDhmMGM2ODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC05NzIsNyArOTcyLDcgQEAgdm9pZCBXZWJF
ZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKIEBlbmQKICNlbmRpZgogCi12
b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3Bl
bGxDaGVja2VyKiBzZW5kZXIsIGludCBzZXF1ZW5jZSwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlw
ZU1hc2sgY2hlY2tpbmdUeXBlcywgY29uc3QgU3RyaW5nJiB0ZXh0KQordm9pZCBXZWJFZGl0b3JD
bGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciogc2Vu
ZGVyLCBpbnQgc2VxdWVuY2UsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrIGNoZWNraW5n
VHlwZXMsIFdlYkNvcmU6OlRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLCBjb25zdCBTdHJpbmcmIHRl
eHQpCiB7CiAjaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKICAgICBOU1JhbmdlIHJhbmdlID0g
TlNNYWtlUmFuZ2UoMCwgdGV4dC5sZW5ndGgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRRdC5oCmluZGV4IGU3OGNlMWQxMGMw
NWQyMzVhNmE1NGIzYmJiZWE3ZWVhOWFjZTg0ODMuLmQ3MWRjMzQ5MDEwMzRiMDY5MmUyN2VjY2E0
MDQzMzNmOTJmODFjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvVGV4dENoZWNrZXJDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvVGV4dENoZWNrZXJDbGllbnRRdC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIFN0cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29y
ZChjb25zdCBTdHJpbmcmIG1pc3NwZWxsZWRXb3JkKTsKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tH
cmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBWZWN0b3I8R3JhbW1hckRl
dGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRHcmFtbWFyTGVuZ3RoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBj
b25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKLSAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBUZXh0
Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgVGV4dENoZWNraW5nVHlw
ZU1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLCBjb25zdCBTdHJpbmcmKSB7IH0KIAogICAg
IHZpcnR1YWwgYm9vbCBpc0NvbnRpbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CiAgICAgdmly
dHVhbCB2b2lkIHRvZ2dsZUNvbnRpbm91c1NwZWxsQ2hlY2tpbmcoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggMjhhOTEw
NWVmYjY0ZWU4MTU1YWQwZGU5NzJmMWM4ZjdhMTU5OTMyYS4uODVhMzNlODM2ZGQ3NWI2NzViY2I4
ZThlZjk3ODU2ZDZhN2Y1MjdmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTExMCw3ICsxMTAsOCBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBXZWJDb3JlOjpU
ZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQorICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQs
IFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdQcm9j
ZXNzVHlwZSwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQorCiAgICAgdmlydHVhbCBXZWJDb3JlOjpU
ZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFdpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFdpbkNFLmgKaW5kZXggYzI5NTI0ZTFhMjZmNDBjM2RkMDA0YTIyYTI2NzEyZjYwZTZk
NWM0OS4uNjA3N2ZjZTRlZTg1ZTZkN2RhMDA1Yjg5ZGUzMGM3NGIxMzdiZmY0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2lu
Q0UuaApAQCAtMTAxLDcgKzEwMSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vl
c3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBj
b250ZXh0LCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwg
dm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1
dE1ldGhvZFN0YXRlKGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5
cGVNYXNrLCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RD
aGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4
dENoZWNraW5nVHlwZU1hc2ssIFdlYkNvcmU6OlRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLCBjb25z
dCBXVEY6OlN0cmluZyYpIHt9CiAgICAgdmlydHVhbCBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVu
dCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5jcHAKaW5kZXggMTllZjdkYzRmMjNhMzIwM2M3Zjk4ZjE1OTU1MTM5NWUwNDNhNGEw
Ny4uMDg3YzEwYzEwZmIyZDI2Zjk2YWY3NDgyY2M2MmQxZGM4MGE2ZjRiOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcApAQCAtNDQ3LDcgKzQ0Nyw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojpz
ZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxs
Q2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6
U3RyaW5nJikKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhX
ZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNr
LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSwgY29uc3QgV1RGOjpTdHJpbmcmKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCAyNjAw
MjBmZjI2ZGVkZDE3MDE1ZWU2YWJhNGIyMmQwMjllMzM4MDg5Li5lMTU3ZjkzZjNlNTkxMzYxMGFm
NTlhYTQ5MDNhYTcxZTJjN2M2NGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTE0MSw3ICsx
NDEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25z
dCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1
ZXNzZXMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0
ZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wg
ZW5hYmxlZCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlw
ZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29y
ZTo6VGV4dENoZWNraW5nVHlwZU1hc2ssIFdlYkNvcmU6OlRleHRDaGVja2luZ1Byb2Nlc3NUeXBl
LCBjb25zdCBXVEY6OlN0cmluZyYpIE9WRVJSSURFOwogI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29y
cmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0
IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncykgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6
UmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCkgT1ZFUlJJREU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128391</attachid>
            <date>2012-02-22 22:03:54 -0800</date>
            <delta_ts>2012-02-22 22:18:50 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-79320-20120223150352.patch</filename>
            <type>text/plain</type>
            <size>31135</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJiZWY1YmVjOTZhZTg0
NzNlYjQ1NWE2ZDMyZDhmZGE5NDU1MmQ2Mi4uNTViZGFjZTE4MjQ5YzJkOWE2OGM1MTc1YTg4MTM5
ZjUzNTY2MzNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAyLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNr
UmVxdWVzdCBuZWVkIHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUgdGhlIHNwZWxsY2hlY2sgaGFw
cGVuZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5
MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hcklu
UmFuZ2VzKToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6U3BlbGxDaGVja1JlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVsbENoZWNrZXI6Omludm9rZVJlcXVlc3QpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVj
a2VyLmg6CisgICAgICAgIChTcGVsbENoZWNrUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVsbENoZWNrUmVxdWVzdDo6cHJvY2Vzc1R5cGUpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNs
aWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5VGV4dENoZWNrZXJDbGllbnQ6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2Vy
Q2xpZW50Lmg6CisgICAgICAgIChUZXh0Q2hlY2tlckNsaWVudCk6CisKIDIwMTItMDItMjIgIEFu
ZHJlYXMgS2xpbmcgIDxhd2Vzb21la2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgcGFy
c2luZyBjb2xvciBwcmVzZW50YXRpb24gYXR0cmlidXRlcyBkbyBsZXNzIHBvaW50bGVzcyB3b3Jr
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5NzEzNzQ5Y2U3ODc0YWIwOGNiOTBhY2Mw
YzJmOGI5OGE4MGExNzVkLi5lZTY4MTVjM2NmOTFmYjQ2MjQ3NWM0NjFmNmJmYTBjNDBkYzE5ODYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTIy
ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVs
bENoZWNrUmVxdWVzdCBuZWVkIHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUgdGhlIHNwZWxsY2hl
Y2sgaGFwcGVuZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc5MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNs
aWVudEltcGw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBzcmMvRWRpdG9y
Q2xpZW50SW1wbC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50SW1wbCk6CisgICAgICAgICogc3Jj
L1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6cmVxdWVz
dFRleHRDaGVja2luZyk6CisKIDIwMTItMDItMjIgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwODU5MC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDk3NGRhMWU0NGE0ZTJiMjAzMzVjYzg5NzE1
NmVhOTM4NGE4OGVlNTQuLjYwYzcyYWZjNDc1NzE5NTgxYTI4ZWJlM2M0ZDRlYmE1ZTcyNmZjNjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzM1Miw2ICszMzUyLDcgQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVh
a0l0ZXJhdG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJD
bGllbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaCBc
CisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZS5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlYy5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dENvZGVjQVNDSUlGYXN0UGF0aC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCBmZGM2MGU0MTY5OWQ1MGYwYTc3YTA5Y2JmYjMyOWVjZjI3M2EyNWJlLi43ZWUxODY4YzRkYzBm
NzE2YTk4NTAyZjQ4OWYwZmE0MzRhOTZiOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00NTUsNiAr
NDU1LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySW50
ZXJuYWxJQ1UuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVu
dC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oJywKKyAgICAg
ICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZ1Byb2Nlc3NUeXBlLmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL3RleHQvVGV4dENvZGVjLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L3RleHQvVGV4dENvZGVjSUNVLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvVGV4dENv
ZGVjTGF0aW4xLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagppbmRleCAxZTdjNmYwNjAxYmZkMDE3Njg3ZGNkNjdkMzg3MWQzNTk4MWExNTgxLi4zNzIw
NjBiYjY3ZjA3YTE4NjNiZGRhYTFiYjkwNWMzMDQxYzQ1MjMxIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMzE3NDksNiArMzE3NDksMTAgQEAK
IAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXHRleHRcVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUuaCIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcVGV4dENv
ZGVjLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2YTMxMzI3YjljNzc0ZGUxMzMxMTUw
NWYwN2EwMWExNjYxYTAzNGM4Li5hYjk3YWE4NmNjNDcwYTFlZTM2Y2NjYWUyZjRkOGMxNWEwMzZl
YmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xNjIyLDYgKzE2MjIsNyBAQAogCQk1N0I3OTFBQTE0QzZBNjMzMDBGMjAyRDEg
LyogSFRNTENvbnRlbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1N0I3OTFBODE0QzZBNjMzMDBGMjAyRDEgLyogSFRNTENvbnRlbnRFbGVt
ZW50LmggKi87IH07CiAJCTU3Q0Y0OTc0MTRFRTM2RDcwMEVDRkYxNCAvKiBJbnNlcnRpb25Qb2lu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0NG
NDk3MjE0RUUzNkQ3MDBFQ0ZGMTQgLyogSW5zZXJ0aW9uUG9pbnQuY3BwICovOyB9OwogCQk1N0NG
NDk3NTE0RUUzNkQ3MDBFQ0ZGMTQgLyogSW5zZXJ0aW9uUG9pbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3Q0Y0OTczMTRFRTM2RDcwMEVDRkYxNCAv
KiBJbnNlcnRpb25Qb2ludC5oICovOyB9OworCQk1N0NGNEIwMzE0RjYwNEQ3MDBFQ0ZGMTQgLyog
VGV4dENoZWNraW5nUHJvY2Vzc1R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3Q0Y0QjAyMTRGNjA0RDcwMEVDRkYxNCAvKiBUZXh0Q2hlY2tpbmdQ
cm9jZXNzVHlwZS5oICovOyB9OwogCQk1OTA1QURCRjEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJl
ZVZpZXdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1OTA1QURCRDEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5jcHAgKi87IH07CiAJ
CTU5MDVBREMwMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTA1QURCRTEzMDJGM0NFMDBGMTE2
REYgLyogWE1MVHJlZVZpZXdlci5oICovOyB9OwogCQk1OTBFMUI0OTExRTRFRjRCMDA2OUY3ODQg
LyogRGV2aWNlT3JpZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU5MEUxQjQ4MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VPcmllbnRhdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04
NTA3LDYgKzg1MDgsNyBAQAogCQk1N0I3OTFBODE0QzZBNjMzMDBGMjAyRDEgLyogSFRNTENvbnRl
bnRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxDb250ZW50
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0NGNDk3MjE0RUUzNkQ3
MDBFQ0ZGMTQgLyogSW5zZXJ0aW9uUG9pbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW5zZXJ0aW9uUG9pbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1N0NGNDk3MzE0RUUzNkQ3MDBFQ0ZGMTQgLyogSW5zZXJ0aW9uUG9pbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zZXJ0aW9uUG9pbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTdDRjRCMDIxNEY2MDRENzAwRUNGRjE0IC8qIFRleHRDaGVja2lu
Z1Byb2Nlc3NUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDaGVj
a2luZ1Byb2Nlc3NUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5MDVBREJE
MTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFhNTFRyZWVWaWV3ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1OTA1QURCRTEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxUcmVlVmlld2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5MEUxQjQ4MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VP
cmllbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmll
bnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkxMTAsNiArMTkxMTIs
NyBAQAogCQkJCUIyQzNEQTA4MEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0QnJlYWtJdGVyYXRvcklu
dGVybmFsSUNVLmggKi8sCiAJCQkJQTcxNTFCRDcxMkYxNTU4RjAwNUEwRjY0IC8qIFRleHRDaGVj
a2VyQ2xpZW50LmggKi8sCiAJCQkJQTc3RDAwMTExMzNCMEFFQjAwRDY2NThDIC8qIFRleHRDaGVj
a2luZy5oICovLAorCQkJCTU3Q0Y0QjAyMTRGNjA0RDcwMEVDRkYxNCAvKiBUZXh0Q2hlY2tpbmdQ
cm9jZXNzVHlwZS5oICovLAogCQkJCUIyQzNEQTA5MEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29k
ZWMuY3BwICovLAogCQkJCUIyQzNEQTBBMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWMuaCAq
LywKIAkJCQkyNkU5OEEwRjEzMEE5RkNBMDA4RUI3QjIgLyogVGV4dENvZGVjQVNDSUlGYXN0UGF0
aC5oICovLApAQCAtMjQzMzgsNiArMjQzNDEsNyBAQAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMx
MzM3OSAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1MzEzN0I2NTE4
MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUVCNDlEQjhGMTRGNDZF
OEIwMDIyOTlEOSAvKiBJREJUcmFjaW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQk1N0NGNEIwMzE0
RjYwNEQ3MDBFQ0ZGMTQgLyogVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDEzYmI3ZTc1ZjdjYzk1NTg3ZDE4YzQ0
MjA1ZmE2Nzg4Yzg1MTFjNWMuLjFjZTI0ZTUzOGQ0MzU3ZjFlM2UyZGJhODBjNDRiNGE1ODRjMmEw
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTQxOCw3ICs0MTgsNyBAQCB2b2lk
IEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IGZyYWdtZW50LAogICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8UmFuZ2U+
IHJhbmdlVG9DaGVjayA9IFJhbmdlOjpjcmVhdGUobV9mcmFtZS0+ZG9jdW1lbnQoKSwgZmlyc3RQ
b3NpdGlvbkluTm9kZShub2RlVG9DaGVjayksIGxhc3RQb3NpdGlvbkluTm9kZShub2RlVG9DaGVj
aykpOwotICAgIG1fc3BlbGxDaGVja2VyLT5yZXF1ZXN0Q2hlY2tpbmdGb3IoU3BlbGxDaGVja1Jl
cXVlc3Q6OmNyZWF0ZShyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2soVGV4dENoZWNraW5nVHlw
ZVNwZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpLCByYW5nZVRvQ2hlY2ssIHJhbmdl
VG9DaGVjaykpOworICAgIG1fc3BlbGxDaGVja2VyLT5yZXF1ZXN0Q2hlY2tpbmdGb3IoU3BlbGxD
aGVja1JlcXVlc3Q6OmNyZWF0ZShyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2soVGV4dENoZWNr
aW5nVHlwZVNwZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpLCBUZXh0Q2hlY2tpbmdQ
cm9jZXNzQmF0Y2gsIHJhbmdlVG9DaGVjaywgcmFuZ2VUb0NoZWNrKSk7CiB9CiAKIHZvaWQgRWRp
dG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNl
bGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSkKQEAgLTE5MzUsNyArMTkzNSw3IEBA
IHZvaWQgRWRpdG9yOjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hckluUmFuZ2VzKFRl
eHRDaGVja2luZ1R5cGVNYXNrIHRleHRDCiAgICAgYm9vbCBhc3luY2hyb25vdXMgPSBtX2ZyYW1l
ICYmIG1fZnJhbWUtPnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKS0+YXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSAmJiAhc2hvdWxkU2hvd0NvcnJlY3Rpb25QYW5lbDsK
IAogICAgIC8vIEluIGFzeW5jaHJvbm91cyBtb2RlLCB3ZSBpbnRlbnRpb25hbGx5IGNoZWNrIHBh
cmFncmFwaC13aWRlIHNlbnRlbmNlLgotICAgIFJlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gcmVx
dWVzdCA9IFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUocmVzb2x2ZVRleHRDaGVja2luZ1R5cGVN
YXNrKHRleHRDaGVja2luZ09wdGlvbnMpLCBhc3luY2hyb25vdXMgPyBwYXJhZ3JhcGhSYW5nZSA6
IHJhbmdlVG9DaGVjaywgcGFyYWdyYXBoUmFuZ2UpOworICAgIFJlZlB0cjxTcGVsbENoZWNrUmVx
dWVzdD4gcmVxdWVzdCA9IFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUocmVzb2x2ZVRleHRDaGVj
a2luZ1R5cGVNYXNrKHRleHRDaGVja2luZ09wdGlvbnMpLCBUZXh0Q2hlY2tpbmdQcm9jZXNzSW5j
cmVtZW50YWwsIGFzeW5jaHJvbm91cyA/IHBhcmFncmFwaFJhbmdlIDogcmFuZ2VUb0NoZWNrLCBw
YXJhZ3JhcGhSYW5nZSk7CiAKICAgICBpZiAoYXN5bmNocm9ub3VzKSB7CiAgICAgICAgIG1fc3Bl
bGxDaGVja2VyLT5yZXF1ZXN0Q2hlY2tpbmdGb3IocmVxdWVzdCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1NwZWxsQ2hlY2tlci5jcHAKaW5kZXggNjgzNjQ0YzZkMDE1ZWM5MjlmNTJmODU5ZDMzNmRi
N2U4MmYxMmM5NS4uZDZkYzdhYzIzMWM0NGQwMzBhMzIyZDgyOGNkMjEwMTFjMTA0Y2I0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApAQCAtNDcsMTMgKzQ3LDE0IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IGludCB1bnJlcXVlc3RlZFNlcXVl
bmNlID0gLTE7CiAKLVNwZWxsQ2hlY2tSZXF1ZXN0OjpTcGVsbENoZWNrUmVxdWVzdChpbnQgc2Vx
dWVuY2UsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+
IHBhcmFncmFwaFJhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIFRleHRDaGVja2luZ1R5cGVNYXNr
IG1hc2spCitTcGVsbENoZWNrUmVxdWVzdDo6U3BlbGxDaGVja1JlcXVlc3QoaW50IHNlcXVlbmNl
LCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJh
Z3JhcGhSYW5nZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNr
LCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSkKICAgICA6IG1fc2VxdWVuY2Uo
c2VxdWVuY2UpCiAgICAgLCBtX2NoZWNraW5nUmFuZ2UoY2hlY2tpbmdSYW5nZSkKICAgICAsIG1f
cGFyYWdyYXBoUmFuZ2UocGFyYWdyYXBoUmFuZ2UpCiAgICAgLCBtX3RleHQodGV4dCkKICAgICAs
IG1fbWFzayhtYXNrKQogICAgICwgbV9yb290RWRpdGFibGVFbGVtZW50KG1fY2hlY2tpbmdSYW5n
ZS0+c3RhcnRDb250YWluZXIoKS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpKQorICAgICwgbV9wcm9j
ZXNzVHlwZShwcm9jZXNzVHlwZSkKIHsKIH0KIApAQCAtNjIsNyArNjMsNyBAQCBTcGVsbENoZWNr
UmVxdWVzdDo6flNwZWxsQ2hlY2tSZXF1ZXN0KCkKIH0KIAogLy8gc3RhdGljCi1QYXNzUmVmUHRy
PFNwZWxsQ2hlY2tSZXF1ZXN0PiBTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKFRleHRDaGVja2lu
Z1R5cGVNYXNrIHRleHRDaGVja2luZ09wdGlvbnMsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5n
UmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKQorUGFzc1JlZlB0cjxTcGVs
bENoZWNrUmVxdWVzdD4gU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBl
TWFzayB0ZXh0Q2hlY2tpbmdPcHRpb25zLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNz
VHlwZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4g
cGFyYWdyYXBoUmFuZ2UpCiB7CiAgICAgQVNTRVJUKGNoZWNraW5nUmFuZ2UpOwogICAgIEFTU0VS
VChwYXJhZ3JhcGhSYW5nZSk7CkBAIC03MSw3ICs3Miw3IEBAIFBhc3NSZWZQdHI8U3BlbGxDaGVj
a1JlcXVlc3Q+IFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlwZU1hc2sg
dGV4CiAgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxT
cGVsbENoZWNrUmVxdWVzdD4oKTsKIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlbGxDaGVj
a1JlcXVlc3QodW5yZXF1ZXN0ZWRTZXF1ZW5jZSwgY2hlY2tpbmdSYW5nZSwgcGFyYWdyYXBoUmFu
Z2UsIHRleHQsIHRleHRDaGVja2luZ09wdGlvbnMpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFNwZWxsQ2hlY2tSZXF1ZXN0KHVucmVxdWVzdGVkU2VxdWVuY2UsIGNoZWNraW5nUmFuZ2UsIHBh
cmFncmFwaFJhbmdlLCB0ZXh0LCB0ZXh0Q2hlY2tpbmdPcHRpb25zLCBwcm9jZXNzVHlwZSkpOwog
fQogCiAKQEAgLTE0NSw3ICsxNDYsNyBAQCB2b2lkIFNwZWxsQ2hlY2tlcjo6aW52b2tlUmVxdWVz
dChQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0KQogICAgIEFTU0VSVCghbV9w
cm9jZXNzaW5nUmVxdWVzdCk7CiAKICAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0ID0gcmVxdWVzdDsK
LSAgICBjbGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcodGhpcywgbV9wcm9jZXNzaW5n
UmVxdWVzdC0+c2VxdWVuY2UoKSwgbV9wcm9jZXNzaW5nUmVxdWVzdC0+bWFzaygpLCBtX3Byb2Nl
c3NpbmdSZXF1ZXN0LT50ZXh0KCkpOworICAgIGNsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyh0aGlzLCAqcmVxdWVzdCk7CiB9CiAKIHZvaWQgU3BlbGxDaGVja2VyOjplbnF1ZXVlUmVx
dWVzdChQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvU3BlbGxDaGVja2VyLmgKaW5kZXggMjAzMDZkYTFhNTkzNmUyZmY1NGY5YmUyYjJhZjNm
MjVlOTg3MDI1Yi4uNGQ2MTdiMDg2ZmU4NTZjNWY1Y2M1MGU5OTIwMmIwNjM2ZDdmY2VmNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlRl
eHRDaGVja2luZy5oIgorI2luY2x1ZGUgIlRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLmgiCiAjaW5j
bHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgpAQCAtNDYsMTAgKzQ3LDEwIEBAIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7
CiAKIGNsYXNzIFNwZWxsQ2hlY2tSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlbGxDaGVj
a1JlcXVlc3Q+IHsKIHB1YmxpYzoKLSAgICBTcGVsbENoZWNrUmVxdWVzdChpbnQgc2VxdWVuY2Us
IFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFn
cmFwaFJhbmdlLCBjb25zdCBTdHJpbmcmLCBUZXh0Q2hlY2tpbmdUeXBlTWFzayk7CisgICAgU3Bl
bGxDaGVja1JlcXVlc3QoaW50IHNlcXVlbmNlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1Jh
bmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3RyaW5nJiwgVGV4
dENoZWNraW5nVHlwZU1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlKTsKICAgICB+U3BlbGxD
aGVja1JlcXVlc3QoKTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0
PiBjcmVhdGUoVGV4dENoZWNraW5nVHlwZU1hc2ssIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5n
UmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gY3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrLCBU
ZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwg
UGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UpOwogCiAgICAgdm9pZCBzZXRTZXF1ZW5j
ZShpbnQgc2VxdWVuY2UpIHsgbV9zZXF1ZW5jZSA9IHNlcXVlbmNlOyB9CiAgICAgaW50IHNlcXVl
bmNlKCkgY29uc3QgeyByZXR1cm4gbV9zZXF1ZW5jZTsgfQpAQCAtNTcsNiArNTgsNyBAQCBwdWJs
aWM6CiAgICAgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UoKSBjb25zdCB7IHJldHVy
biBtX3BhcmFncmFwaFJhbmdlOyB9CiAgICAgY29uc3QgU3RyaW5nJiB0ZXh0KCkgY29uc3QgeyBy
ZXR1cm4gbV90ZXh0OyB9CiAgICAgVGV4dENoZWNraW5nVHlwZU1hc2sgbWFzaygpIGNvbnN0IHsg
cmV0dXJuIG1fbWFzazsgfQorICAgIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlIHByb2Nlc3NUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzVHlwZTsgfQogICAgIFBhc3NSZWZQdHI8RWxlbWVu
dD4gcm9vdEVkaXRhYmxlRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdEVkaXRhYmxlRWxl
bWVudDsgfQogcHJpdmF0ZToKIApAQCAtNjYsNiArNjgsNyBAQCBwcml2YXRlOgogICAgIFN0cmlu
ZyBtX3RleHQ7CiAgICAgVGV4dENoZWNraW5nVHlwZU1hc2sgbV9tYXNrOwogICAgIFJlZlB0cjxF
bGVtZW50PiBtX3Jvb3RFZGl0YWJsZUVsZW1lbnQ7CisgICAgVGV4dENoZWNraW5nUHJvY2Vzc1R5
cGUgbV9wcm9jZXNzVHlwZTsKIH07CiAKIGNsYXNzIFNwZWxsQ2hlY2tlciB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggMjM1MmMyODc2ZDIxODEzNGQwYmVhNjQyNTQ3ODFi
ZTgxZTY2MDBlOC4uM2QzZWIwMzRjNzQxMzc2NDQ0NTU3MzNlOTcyNDRmZDI1NjBlYTVlYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtNDMyLDcgKzQzMiw3IEBAIHB1Ymxp
YzoKICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikgeyB9Ci0gICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgVGV4dENoZWNr
aW5nVHlwZU1hc2ssIGNvbnN0IFN0cmluZyYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBjb25zdCBTcGVsbENoZWNrUmVxdWVzdCYp
IHsgfQogfTsKIAogY2xhc3MgRW1wdHlFZGl0b3JDbGllbnQgOiBwdWJsaWMgRWRpdG9yQ2xpZW50
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQu
aAppbmRleCBkMTZhZGUxNjQ2MGFkNzBmMzdlYjllOGQ0MTRkZjYxZjY3Y2ZjOGQzLi5mMGU1NDQy
ZTI3Yjk1ZDlhZTgxZjhjOGI2MGVjZGQ2MTJmNDE1NDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oCkBAIC0zNyw2ICszNyw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNwZWxsQ2hlY2tlcjsKK2NsYXNzIFNwZWxsQ2hl
Y2tSZXF1ZXN0OwogCiBzdHJ1Y3QgR3JhbW1hckRldGFpbCB7CiAgICAgaW50IGxvY2F0aW9uOwpA
QCAtNzEsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgLy8gcHJvdmlkZSBtb3JlIGFjY3VyYXRlIGNv
cnJlY3Rpb24gc3VnZ2VzdGlvbnMuIENhbGxlciBjYW4gcGFzcyBpbiBtb3JlIHRleHQgaW4gImNv
bnRleHQiIHRvIGFpZCBzdWNoIHNwZWxsY2hlY2tlcnMgb24gbGFuZ3VhZ2UKICAgICAvLyBpZGVu
dGlmaWNhdGlvbi4gTm9yYW1sbHkgaXQncyB0aGUgdGV4dCBzdXJyb3VuZGluZyB0aGUgIndvcmQi
IGZvciB3aGljaCB3ZSBhcmUgZ2V0dGluZyBjb3JyZWN0aW9uIHN1Z2dlc3Rpb25zLgogICAgIHZp
cnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0
cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBUZXh0Q2hl
Y2tpbmdUeXBlTWFzaywgY29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBjb25zdCBTcGVsbENoZWNrUmVxdWVz
dCYpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYmY3NjQ2NGJlMTRiZDVi
ZjE4MzA3ZDM1NDI0ZDA3M2ZlYzhkMTY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZS5oCkBAIC0wLDAgKzEsNDMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlX2gKKyNkZWZpbmUgVGV4dENoZWNraW5n
UHJvY2Vzc1R5cGVfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gVGV4dENoZWNraW5n
UHJvY2Vzc1R5cGUgeworICAgIFRleHRDaGVja2luZ1Byb2Nlc3NCYXRjaCwKKyAgICBUZXh0Q2hl
Y2tpbmdQcm9jZXNzSW5jcmVtZW50YWwKK307CisKK30KKworI2VuZGlmIC8vIFRleHRDaGVja2lu
Z1Byb2Nlc3NUeXBlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCBk
M2MzN2VlOTQ0YzRiN2Q4N2NmNTIyN2VlNTk0ZTEwZmQ4NmM1MTdlLi4wNjg5MWEwMzAwNDc2ZjUx
Y2U5OGVkMDJkYjFmNDE2N2Y0NjQxMjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVy
cnkuY3BwCkBAIC01NTgsNyArNTU4LDcgQEAgdm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5Ojpj
aGVja0dyYW1tYXJPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCwgV1RGOjpWZWN0b3IKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgVGV4dENoZWNraW5nVHlwZU1h
c2ssIGNvbnN0IFN0cmluZyYpCit2b2lkIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnJlcXVlc3RD
aGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGNvbnN0IFNwZWxsQ2hlY2tSZXF1ZXN0JikK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaCBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5
LmgKaW5kZXggYmZmYTg4MTgwNmQ2NDcxMTA0YjkyMWQ4ZDFlODc2ZjQ3Y2U0ZTU2NS4uODY4MWNj
ODZmZjZiNzNkN2MwYThhYmZiMDlkZjZjOGE5Nzk3YTM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
QmxhY2tCZXJyeS5oCkBAIC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmlu
ZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcm
IG1pc3NwZWxsZWRXb3JkKTsKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmco
Y29uc3QgVUNoYXIqLCBpbnQsIFZlY3RvcjxHcmFtbWFyRGV0YWlsLCAwdT4mLCBpbnQqLCBpbnQq
KTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywg
Y29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KFNwZWxsQ2hlY2tlciosIGNvbnN0IFNwZWxsQ2hlY2tSZXF1ZXN0Jik7CiAKICAgICB2aXJ0dWFs
IFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcoY29uc3QgU3RyaW5nJiwgY29uc3QgR3JhbW1h
ckRldGFpbCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9y
Q2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJ
bXBsLmNwcAppbmRleCAwMzNkNDZkNThjMmY3OTU0NzllMGEwNDI5ZTM2ZGY5MTczZGQ1ZTk2Li5k
NzQ1NDI2OTdhNmYwODk4OWEyMjhjN2FjYjVlZTc2NzExODUzMjkwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcApAQCAtNzI5LDEwICs3Mjks
MTAgQEAgdm9pZCBFZGl0b3JDbGllbnRJbXBsOjpjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3Qg
VUNoYXIqIHRleHQsIGludCBsZW5ndGgsCiAgICAgICAgICptaXNzcGVsbGluZ0xlbmd0aCA9IHNw
ZWxsTGVuZ3RoOwogfQogCi12b2lkIEVkaXRvckNsaWVudEltcGw6OnJlcXVlc3RDaGVja2luZ09m
U3RyaW5nKFNwZWxsQ2hlY2tlciogc2VuZGVyLCBpbnQgaWRlbnRpZmllciwgVGV4dENoZWNraW5n
VHlwZU1hc2ssIGNvbnN0IFN0cmluZyYgdGV4dCkKK3ZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6cmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiBzZW5kZXIsIGNvbnN0IFdlYkNvcmU6
OlNwZWxsQ2hlY2tSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIGlmIChtX3dlYlZpZXctPnNwZWxs
Q2hlY2tDbGllbnQoKSkKLSAgICAgICAgbV93ZWJWaWV3LT5zcGVsbENoZWNrQ2xpZW50KCktPnJl
cXVlc3RDaGVja2luZ09mVGV4dCh0ZXh0LCBuZXcgV2ViVGV4dENoZWNraW5nQ29tcGxldGlvbklt
cGwoaWRlbnRpZmllciwgc2VuZGVyKSk7CisgICAgICAgIG1fd2ViVmlldy0+c3BlbGxDaGVja0Ns
aWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlRleHQocmVxdWVzdC50ZXh0KCksIG5ldyBXZWJUZXh0
Q2hlY2tpbmdDb21wbGV0aW9uSW1wbChyZXF1ZXN0LnNlcXVlbmNlKCksIHNlbmRlcikpOwogfQog
CiBTdHJpbmcgRWRpdG9yQ2xpZW50SW1wbDo6Z2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlz
c3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJiBtaXNzcGVsbGVkV29yZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAppbmRleCA5OTk4NjBhMDI3MjY5NDMz
NjMzMDUzNDYzYzQyMmJjZGFlODkwY2Q3Li4xZjEzOGQ4N2IzM2FiMjhiNTcyYWFiMmQ4NjJkOGY4
YWRiNWNhZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JD
bGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50
SW1wbC5oCkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYgd29yZCwgY29uc3QgV1RGOjpTdHJpbmcm
IGNvbnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElu
cHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBXZWJDb3JlOjpUZXh0
Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgV1RGOjpTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgY29uc3QgV2Vi
Q29yZTo6U3BlbGxDaGVja1JlcXVlc3QmKTsKIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6VGV4dENo
ZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCAyMTcwNGQ5N2UwMTJjOTFj
YWUwZTQ3OThmMzE0Y2ViNzI4Yjc3OTM1Li5hZGYyMDIzNzEwNTY5M2FlMTFhN2MyMTBlODA5ZmIz
YjdjN2YyNzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFt
ZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAKQEAgLTEzMDEsNyArMTMwMSw3IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpyZXF1ZXN0VGV4dENo
ZWNraW5nKGNvbnN0IFdlYkVsZW1lbnQmIHdlYkVsZW0pCiAKICAgICBSZWZQdHI8UmFuZ2U+IHJh
bmdlVG9DaGVjayA9IHJhbmdlT2ZDb250ZW50cyhjb25zdF9jYXN0PEVsZW1lbnQqPih3ZWJFbGVt
LmNvbnN0VW53cmFwPEVsZW1lbnQ+KCkpKTsKIAotICAgIGZyYW1lKCktPmVkaXRvcigpLT5zcGVs
bENoZWNrZXIoKS0+cmVxdWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUo
VGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIsIHJhbmdl
VG9DaGVjaywgcmFuZ2VUb0NoZWNrKSk7CisgICAgZnJhbWUoKS0+ZWRpdG9yKCktPnNwZWxsQ2hl
Y2tlcigpLT5yZXF1ZXN0Q2hlY2tpbmdGb3IoU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0
Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciwgVGV4dENoZWNr
aW5nUHJvY2Vzc0JhdGNoLCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVjaykpOwogfQogCiBib29s
IFdlYkZyYW1lSW1wbDo6aGFzU2VsZWN0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmggYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5oCmluZGV4IGU1
MzkwYmNjOTczOTQ3N2EyNzYwNDc5YzZlNDExMjM4Mjg1ZTEwZTYuLjJhZDBhZGRjYmZjZWY4YmM4
NGU2ZDUzZGE5YzAyOGJmNjVkMTE2ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRHdGsuaApAQCAtNDgsNyArNDgsNyBA
QCBjbGFzcyBUZXh0Q2hlY2tlckNsaWVudEd0ayA6IHB1YmxpYyBXZWJDb3JlOjpUZXh0Q2hlY2tl
ckNsaWVudCB7CiAgICAgICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdn
ZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwg
V1RGOjpWZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2Nh
dGlvbiwgaW50KiBiYWRHcmFtbWFyTGVuZ3RoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldEd1
ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYg
Y29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcios
IGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJikg
e30KKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hl
Y2tlciosIGNvbnN0IFNwZWxsQ2hlY2tSZXF1ZXN0JikgeyB9CiAKICAgICAgICAgdm9pZCB1cGRh
dGVTcGVsbENoZWNraW5nTGFuZ3VhZ2UoY29uc3QgY2hhciopOwogICAgIHByaXZhdGU6CkBAIC01
Niw0ICs1NiwzIEBAIGNsYXNzIFRleHRDaGVja2VyQ2xpZW50R3RrIDogcHVibGljIFdlYkNvcmU6
OlRleHRDaGVja2VyQ2xpZW50IHsKICAgICB9OwogfQogI2VuZGlmCi0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNWE5Yjkx
NzBiNWQ2MjA3MWRmNDgxY2MzMjk0MGRhNzJmYjUxYWExYy4uYTI2MWUxODdlNDgyYmM2YzM5YzU3
YjdlYWRmZTdmNjZjMzcwNzVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTEzNSw3ICsxMzUsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3Jk
LCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBn
dWVzc2VzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3Rh
dGUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29s
IGVuYWJsZWQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5
cGVNYXNrLCBjb25zdCBXVEY6OlN0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBjb25zdCBTcGVsbENoZWNrUmVx
dWVzdCYpIE9WRVJSSURFOwogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0Nv
cnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25z
dCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5n
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKFdlYkNvcmU6
OlJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwpIE9WRVJSSURFOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4
IGYxYzU1MTBiZjExMDJjOGVmOGFmZTM5ZTMwOWE4MjQ5YTE3ZTA1NmMuLmM3ZDQ5NmU2YzViZGRj
ZDIzNDZiZWVhMTEwYTM2MTIyZjNhZjUzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTk3MiwxNSArOTcyLDE1IEBA
IHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpCiBAZW5kCiAj
ZW5kaWYKIAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdl
YkNvcmU6OlNwZWxsQ2hlY2tlciogc2VuZGVyLCBpbnQgc2VxdWVuY2UsIFdlYkNvcmU6OlRleHRD
aGVja2luZ1R5cGVNYXNrIGNoZWNraW5nVHlwZXMsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3ZvaWQg
V2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENo
ZWNrZXIqIHNlbmRlciwgY29uc3QgV2ViQ29yZTo6U3BlbGxDaGVja1JlcXVlc3QmIHJlcXVlc3Qp
CiB7CiAjaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKLSAgICBOU1JhbmdlIHJhbmdlID0gTlNN
YWtlUmFuZ2UoMCwgdGV4dC5sZW5ndGgoKSk7CisgICAgTlNSYW5nZSByYW5nZSA9IE5TTWFrZVJh
bmdlKDAsIHJlcXVlc3QudGV4dCgpLmxlbmd0aCgpKTsKICAgICBOU1J1bkxvb3AqIGN1cnJlbnRM
b29wID0gW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF07Ci0gICAgW1tOU1NwZWxsQ2hlY2tlciBz
aGFyZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nOnRleHQgcmFuZ2U6cmFu
Z2UgdHlwZXM6TlNUZXh0Q2hlY2tpbmdBbGxTeXN0ZW1UeXBlcyBvcHRpb25zOjAgaW5TcGVsbERv
Y3VtZW50V2l0aFRhZzowIAorICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2Vy
XSByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpyZXF1ZXN0LnRleHQoKSByYW5nZTpyYW5nZSB0eXBl
czpOU1RleHRDaGVja2luZ0FsbFN5c3RlbVR5cGVzIG9wdGlvbnM6MCBpblNwZWxsRG9jdW1lbnRX
aXRoVGFnOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXI6XihOU0ludGVnZXIsIE5TQXJyYXkqIHJlc3VsdHMsIE5TT3J0aG9ncmFwaHkq
LCBOU0ludGVnZXIpIHsKICAgICAgICAgICAgIFtjdXJyZW50TG9vcCBwZXJmb3JtU2VsZWN0b3I6
QHNlbGVjdG9yKHBlcmZvcm0pIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRh
cmdldDpbW1tXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGFsbG9jXSBpbml0V2l0aFNlbmRl
cjpzZW5kZXIgc2VxdWVuY2U6c2VxdWVuY2UgdHlwZXM6Y2hlY2tpbmdUeXBlcyByZXN1bHRzOnJl
c3VsdHNdIGF1dG9yZWxlYXNlXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRh
cmdldDpbW1tXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGFsbG9jXSBpbml0V2l0aFNlbmRl
cjpzZW5kZXIgc2VxdWVuY2U6cmVxdWVzdC5zZXF1ZW5jZSgpIHR5cGVzOnJlcXVlc3QubWFzaygp
IHJlc3VsdHM6cmVzdWx0c10gYXV0b3JlbGVhc2VdCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFyZ3VtZW50Om5pbCBvcmRlcjowIG1vZGVzOltOU0FycmF5IGFycmF5V2l0aE9iamVj
dDpOU0RlZmF1bHRSdW5Mb29wTW9kZV1dOwogICAgICAgICB9XTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudFF0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQuaApp
bmRleCBlNzhjZTFkMTBjMDVkMjM1YTZhNTRiM2JiYmVhN2VlYTlhY2U4NDgzLi40OTVmYzZlZWRk
YTJmZWNhNDYxMGM2ZWY4NDQwYTU1ZThiYmY4MzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQuaApAQCAtNDcsNyArNDcs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9u
Rm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJiBtaXNzcGVsbGVkV29yZCk7CiAgICAgdmly
dHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwg
VmVjdG9yPEdyYW1tYXJEZXRhaWw+JiwgaW50KiBiYWRHcmFtbWFyTG9jYXRpb24sIGludCogYmFk
R3JhbW1hckxlbmd0aCk7CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0
IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vl
c3Nlcyk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hl
Y2tlciosIGludCwgVGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFN0cmluZyYpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBjb25z
dCBTcGVsbENoZWNrUmVxdWVzdCYpIHsgfQogCiAgICAgdmlydHVhbCBib29sIGlzQ29udGlub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ29udGlub3Vz
U3BlbGxDaGVja2luZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCAyOGE5MTA1ZWZiNjRlZTgxNTVhZDBkZTk3MmYxYzhm
N2ExNTk5MzJhLi4zZGEyMDI0N2JiNjA5MmU0NDFiZWFjYzFlMDMyM2U1MmUxMjNlZjkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
aApAQCAtMTEwLDcgKzExMCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0
SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRl
KGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3Jl
OjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25z
dCBXVEY6OlN0cmluZyYpIHt9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKFNwZWxsQ2hlY2tlciosIGNvbnN0IFNwZWxsQ2hlY2tSZXF1ZXN0JikgeyB9CisKICAgICB2
aXJ0dWFsIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJu
IHRoaXM7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaAppbmRleCBjMjk1MjRlMWEyNmY0MGMzZGQw
MDRhMjJhMjY3MTJmNjBlNmQ1YzQ5Li5jMjI4ODI4YjdlYzM2OTY4Yzk5OWIzZDRhMjYwNGUzMGFm
MWY1YzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFdpbkNFLmgKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRXaW5DRS5oCkBAIC0xMDEsNyArMTAxLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYgd29yZCwgY29u
c3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nl
cyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmly
dHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29y
ZTo6VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJikge30KKyAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwg
Y29uc3QgV2ViQ29yZTo6U3BlbGxDaGVja1JlcXVlc3QmKSB7IH0KICAgICB2aXJ0dWFsIFdlYkNv
cmU6OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJuIHRoaXM7IH0KIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCAxOWVmN2RjNGYyM2EzMjAzYzdm
OThmMTU5NTUxMzk1ZTA0M2E0YTA3Li5mZjdiNWI2YzM4MWJjYjA3YWYyNzIxZTQ2Njg5Y2M5NjEx
OTgxNTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC00NDcsNyArNDQ3LDcgQEAgdm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdU
eXBlTWFzaywgY29uc3QgV1RGOjpTdHJpbmcmKQordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6
OlNwZWxsQ2hlY2tSZXF1ZXN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgKaW5kZXggMjYwMDIwZmYyNmRlZGQxNzAxNWVlNmFiYTRiMjJkMDI5ZTMzODA4
OS4uYTdmNGQyMWE3ZTRjZWJjZmJkZDRjZmZiY2E0OGUyYzJhYzY1NTIzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oCkBAIC0xNDEsNyArMTQxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRl
eHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdl
YkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0cmluZyYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVs
bENoZWNrZXIqLCBjb25zdCBXZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdCYpIE9WRVJSSURFOwog
I2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQog
ICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25Q
YW5lbEluZm86OlBhbmVsVHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0Jv
eE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0
cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2
ZVJlcGxhY2VtZW50U3RyaW5ncykgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3ND
b3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5l
bCkgT1ZFUlJJREU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128396</attachid>
            <date>2012-02-22 22:18:56 -0800</date>
            <delta_ts>2012-02-22 23:40:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79320-20120223151854.patch</filename>
            <type>text/plain</type>
            <size>36956</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJiZWY1YmVjOTZhZTg0
NzNlYjQ1NWE2ZDMyZDhmZGE5NDU1MmQ2Mi4uMzg4OTA2NGY5YzE4ZTI2Njk1NzQ0Mjg3NDYwOTM4
ZGIxY2ZjNGJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAyLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNr
UmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhh
cHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZWJLaXQgY2xpZW50cyBzaG91bGQgYmUgYWJsZSB0byBnZXQgdGhlIGNvbnRleHQgaG93IHRoZSBz
cGVsbGNoZWNrIGhhcHBlbmRlZC4KKyAgICAgICAgRm9yIGV4YW1wbGUsIFdlYktpdCBjbGllbnRz
IG1heSB3YW50IHRvIGNoYW5nZSB0aGUgYmVoYXZpb3IgYnkgYSBzcGVsbGNoZWNrIHJlcXVlc3Qg
aXMKKyAgICAgICAgaW52b2tlZCBpbiB0eXBpbmcgb3IgaW4gcGFzdGluZy4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZGVkIGFuIGVudW0gaW4gU3BlbGxDaGVja1JlcXVlc3Qgc28gdGhhdCBXZWJL
aXQgY2xpZW50cyBjYW4gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4KKworICAgICAgICAqIEdOVW1h
a2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hckluUmFuZ2Vz
KToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVsbENoZWNrUmVxdWVzdDo6U3BlbGxDaGVja1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENo
ZWNrZXI6Omludm9rZVJlcXVlc3QpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVja2VyLmg6
CisgICAgICAgIChTcGVsbENoZWNrUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENo
ZWNrUmVxdWVzdDo6cHJvY2Vzc1R5cGUpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5VGV4dENoZWNrZXJDbGllbnQ6OnJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xpZW50
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFRleHRDaGVja2VyQ2xpZW50KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZ1Byb2Nlc3NUeXBlLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDItMjIgIEFuZHJlYXMgS2xpbmcgIDxhd2Vzb21l
a2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgcGFyc2luZyBjb2xvciBwcmVzZW50YXRp
b24gYXR0cmlidXRlcyBkbyBsZXNzIHBvaW50bGVzcyB3b3JrLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9D
aGFuZ2VMb2cKaW5kZXggZGI4YjQxMGM4NzEyY2M1ZmFmNmI5YmFiY2ZlODM5Nzg3ZmRiZWVjOS4u
MTRlOTY4NTM1ODU3ZDRlZmQ1YzJlMzQ1MGI0YzFmMTg1NDU2MGI1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDItMjIgIFNoaW55YSBLYXdh
bmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNwZWxsQ2hlY2tSZXF1ZXN0
IG5lZWRzIHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUgdGhlIHNwZWxsY2hlY2sgaGFwcGVuZWQu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTMyMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oOgorICAgICAgICAoRWRp
dG9yQ2xpZW50QmxhY2tCZXJyeSk6CisKIDIwMTItMDItMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHRoZSByZW1haW5pbmcgdXNlcyBvZiBDU1NT
dHlsZURlY2xhcmF0aW9uIGluIEVkaXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5
NzEzNzQ5Y2U3ODc0YWIwOGNiOTBhY2MwYzJmOGI5OGE4MGExNzVkLi5iOGIzOGY4NzhjY2ExNDRl
YTFmOWEwZDJhYWE0MWEzYTM2ZDU0OWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDEyLTAyLTIyICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNrUmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBj
b250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhhcHBlbmVkLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9FZGl0b3JDbGllbnRJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6cmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcpOgorICAgICAgICAqIHNyYy9FZGl0b3JDbGllbnRJbXBsLmg6CisgICAgICAgIChFZGl0b3JD
bGllbnRJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVJbXBsOjpyZXF1ZXN0VGV4dENoZWNraW5nKToKKwogMjAxMi0wMi0yMiAg
WXV0YSBLaXRhbXVyYSAgPHl1dGFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTA4NTkwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGFhNjI5NzAyN2Q4OGU3
YjRkODdjMDM1OTAwZTNhNmE4Y2NiYjM0ODUuLmQ5OTQzZWQxZGU2NzJlZDlmMTBlOGVlOTIxOGIx
Mjg1N2VjY2ZjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0y
MiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3Bl
bGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3BlbGxj
aGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5oOgorICAgICAgICAo
V2ViS2l0OjpUZXh0Q2hlY2tlckNsaWVudEd0azo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgor
CiAyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0
b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCBlZTJmZGI3YzlkM2NjZTIzYjZlNGE1MmRkNGM5YTczY2Jh
NjNhYmIyLi43N2Y2NmEwMDEyNmU2ZGUyOWIyYTY0MDMzMjQyZTU4NTA2MTg5MzQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMjIgIFNoaW55YSBLYXdhbmFrYSAg
PHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNwZWxsQ2hlY2tSZXF1ZXN0IG5lZWRz
IHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUgdGhlIHNwZWxsY2hlY2sgaGFwcGVuZWQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTMyMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyk6CisKIDIwMTItMDItMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmVtb3ZlIHRoZSByZW1haW5pbmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9u
IGluIEVkaXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBkYTVlYjg3N2U0ZjZiNzk3YzQwMzFkZmVkMGQz
MWRjYWNlYzgyOTFiLi41NzM5NzdjMjI2YjFmZjk2M2ZhODYxNGMxYmFkNmIxMjUzZmYyNjk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTIyICBTaGlueWEgS2F3YW5h
a2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNrUmVxdWVzdCBu
ZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhhcHBlbmVkLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVj
a2VyQ2xpZW50UXQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMi0wMi0yMSAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdGhlIHJlbWFp
bmluZyB1c2VzIG9mIENTU1N0eWxlRGVjbGFyYXRpb24gaW4gRWRpdG9yCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
aW5kZXggODYyYTljMzZiOGRlYzkwOTM3ZjNkYzVkMGE3YWIwYmVlOWI1MmVkNS4uOWUyZGQxNjM5
NjdlZWNiODkzNWJlMTIxOTJkM2IzYWVmYWNjYzZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDEyLTAyLTIyICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBTcGVsbENoZWNrUmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250
ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhhcHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6
CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQpOgorCiAyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMg
b2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXgg
ODAyYTRlYzhiZDBjODljZDI2ODk0ZmIyNjFlNzlmNWUyMGM2NDc1YS4uMTg5ZTM1MmZlODJjMzE4
NDQwMzY0M2Y4NDU2NDE1M2Q0YWQ0NjVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxMi0wMi0yMiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgU3BlbGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25vdyB0aGUgY29udGV4
dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5D
RS5oOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRXaW5DRTo6cmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcpOgorCiAyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJh
dGlvbiBpbiBFZGl0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1YWEyMDZmMThmMzgzMThjNzUxZmRmNDFmMGIy
NGFmZjkyZmZlYjk5Li5hM2E4ZGEzMGRkNzNjZTFiMzJiNjUyZWEzYzZjYTRmNmM5ZWJiNjRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMjIgIFNoaW55YSBLYXdhbmFrYSAg
PHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNwZWxsQ2hlY2tSZXF1ZXN0IG5lZWRz
IHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUgdGhlIHNwZWxsY2hlY2sgaGFwcGVuZWQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTMyMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJF
ZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDEyLTAyLTIyICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRldmljZVNjYWxlRmFjdG9yRGlkQ2hh
bmdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5NzRkYTFlNDRhNGUyYjIwMzM1
Y2M4OTcxNTZlYTkzODRhODhlZTU0Li42MGM3MmFmYzQ3NTcxOTU4MWEyOGViZTNjNGQ0ZWJhNWU3
MjZmYzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTMzNTIsNiArMzM1Miw3
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRD
aGVja2VyQ2xpZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNr
aW5nLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nUHJvY2Vz
c1R5cGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWMuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlYy5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0FTQ0lJRmFzdFBhdGguaCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggZmRjNjBlNDE2OTlkNTBmMGE3N2EwOWNiZmIzMjllY2YyNzNhMjViZS4uN2VlMTg2
OGM0ZGMwZjcxNmE5ODUwMmY0ODlmMGZhNDM0YTk2YjhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAt
NDU1LDYgKzQ1NSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVy
YXRvckludGVybmFsSUNVLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvVGV4dENoZWNr
ZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaCcs
CisgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZS5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRDb2RlYy5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0
L1RleHRDb2RlY0xhdGluMS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKaW5kZXggMWU3YzZmMDYwMWJmZDAxNzY4N2RjZDY3ZDM4NzFkMzU5ODFhMTU4
MS4uMzcyMDYwYmI2N2YwN2ExODYzYmRkYWExYmI5MDVjMzA0MWM0NTIzMSAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTMxNzQ5LDYgKzMxNzQ5
LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxwbGF0Zm9ybVx0ZXh0XFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLmgiCisJCQkJCT4KKwkJ
CQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx0ZXh0
XFRleHRDb2RlYy5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmEzMTMyN2I5Yzc3NGRl
MTMzMTE1MDVmMDdhMDFhMTY2MWEwMzRjOC4uYWI5N2FhODZjYzQ3MGExZWUzNmNjY2FlMmY0ZDhj
MTVhMDM2ZWJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTYyMiw2ICsxNjIyLDcgQEAKIAkJNTdCNzkxQUExNEM2QTYzMzAw
RjIwMkQxIC8qIEhUTUxDb250ZW50RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTdCNzkxQTgxNEM2QTYzMzAwRjIwMkQxIC8qIEhUTUxDb250
ZW50RWxlbWVudC5oICovOyB9OwogCQk1N0NGNDk3NDE0RUUzNkQ3MDBFQ0ZGMTQgLyogSW5zZXJ0
aW9uUG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTdDRjQ5NzIxNEVFMzZENzAwRUNGRjE0IC8qIEluc2VydGlvblBvaW50LmNwcCAqLzsgfTsK
IAkJNTdDRjQ5NzUxNEVFMzZENzAwRUNGRjE0IC8qIEluc2VydGlvblBvaW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0NGNDk3MzE0RUUzNkQ3MDBF
Q0ZGMTQgLyogSW5zZXJ0aW9uUG9pbnQuaCAqLzsgfTsKKwkJNTdDRjRCMDMxNEY2MDRENzAwRUNG
RjE0IC8qIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0NGNEIwMjE0RjYwNEQ3MDBFQ0ZGMTQgLyogVGV4dENo
ZWNraW5nUHJvY2Vzc1R5cGUuaCAqLzsgfTsKIAkJNTkwNUFEQkYxMzAyRjNDRTAwRjExNkRGIC8q
IFhNTFRyZWVWaWV3ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTkwNUFEQkQxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3ZXIuY3BwICov
OyB9OwogCQk1OTA1QURDMDEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTkwNUFEQkUxMzAyRjND
RTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3ZXIuaCAqLzsgfTsKIAkJNTkwRTFCNDkxMUU0RUY0QjAw
NjlGNzg0IC8qIERldmljZU9yaWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1OTBFMUI0ODExRTRFRjRCMDA2OUY3ODQgLyogRGV2aWNlT3Jp
ZW50YXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtODUwNyw2ICs4NTA4LDcgQEAKIAkJNTdCNzkxQTgxNEM2QTYzMzAwRjIwMkQxIC8qIEhU
TUxDb250ZW50RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1M
Q29udGVudEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdDRjQ5NzIx
NEVFMzZENzAwRUNGRjE0IC8qIEluc2VydGlvblBvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluc2VydGlvblBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTdDRjQ5NzMxNEVFMzZENzAwRUNGRjE0IC8qIEluc2VydGlvblBvaW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc2VydGlvblBvaW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3Q0Y0QjAyMTRGNjA0RDcwMEVDRkYxNCAvKiBUZXh0
Q2hlY2tpbmdQcm9jZXNzVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBU
ZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
OTA1QURCRDEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYTUxUcmVlVmlld2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTkwNUFEQkUxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWE1MVHJlZVZpZXdlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTBFMUI0ODExRTRFRjRCMDA2OUY3ODQgLyog
RGV2aWNlT3JpZW50YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2
aWNlT3JpZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MTEwLDYg
KzE5MTEyLDcgQEAKIAkJCQlCMkMzREEwODBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dEJyZWFrSXRl
cmF0b3JJbnRlcm5hbElDVS5oICovLAogCQkJCUE3MTUxQkQ3MTJGMTU1OEYwMDVBMEY2NCAvKiBU
ZXh0Q2hlY2tlckNsaWVudC5oICovLAogCQkJCUE3N0QwMDExMTMzQjBBRUIwMEQ2NjU4QyAvKiBU
ZXh0Q2hlY2tpbmcuaCAqLywKKwkJCQk1N0NGNEIwMjE0RjYwNEQ3MDBFQ0ZGMTQgLyogVGV4dENo
ZWNraW5nUHJvY2Vzc1R5cGUuaCAqLywKIAkJCQlCMkMzREEwOTBEMDA2QzFEMDBFRjZGMjYgLyog
VGV4dENvZGVjLmNwcCAqLywKIAkJCQlCMkMzREEwQTBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENv
ZGVjLmggKi8sCiAJCQkJMjZFOThBMEYxMzBBOUZDQTAwOEVCN0IyIC8qIFRleHRDb2RlY0FTQ0lJ
RmFzdFBhdGguaCAqLywKQEAgLTI0MzM4LDYgKzI0MzQxLDcgQEAKIAkJCQk5NzdFMkUwRjEyRjBG
QzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1MzczNTMx
MzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFQjQ5REI4
RjE0RjQ2RThCMDAyMjk5RDkgLyogSURCVHJhY2luZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTdD
RjRCMDMxNEY2MDRENzAwRUNGRjE0IC8qIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlLmggaW4gSGVh
ZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCAxM2JiN2U3NWY3Y2M5NTU4
N2QxOGM0NDIwNWZhNjc4OGM4NTExYzVjLi4xY2UyNGU1MzhkNDM1N2YxZTNlMmRiYTgwYzQ0YjRh
NTg0YzJhMDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC00MTgsNyArNDE4LDcg
QEAgdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRy
PFJhbmdlPiByYW5nZVRvQ2hlY2sgPSBSYW5nZTo6Y3JlYXRlKG1fZnJhbWUtPmRvY3VtZW50KCks
IGZpcnN0UG9zaXRpb25Jbk5vZGUobm9kZVRvQ2hlY2spLCBsYXN0UG9zaXRpb25Jbk5vZGUobm9k
ZVRvQ2hlY2spKTsKLSAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNraW5nRm9yKFNwZWxs
Q2hlY2tSZXF1ZXN0OjpjcmVhdGUocmVzb2x2ZVRleHRDaGVja2luZ1R5cGVNYXNrKFRleHRDaGVj
a2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVja2luZ1R5cGVHcmFtbWFyKSwgcmFuZ2VUb0NoZWNr
LCByYW5nZVRvQ2hlY2spKTsKKyAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNraW5nRm9y
KFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUocmVzb2x2ZVRleHRDaGVja2luZ1R5cGVNYXNrKFRl
eHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVja2luZ1R5cGVHcmFtbWFyKSwgVGV4dENo
ZWNraW5nUHJvY2Vzc0JhdGNoLCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVjaykpOwogfQogCiB2
b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwg
Ym9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UpCkBAIC0xOTM1LDcgKzE5
MzUsNyBAQCB2b2lkIEVkaXRvcjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJh
bmdlcyhUZXh0Q2hlY2tpbmdUeXBlTWFzayB0ZXh0QwogICAgIGJvb2wgYXN5bmNocm9ub3VzID0g
bV9mcmFtZSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpICYmIG1fZnJhbWUtPnNldHRpbmdzKCktPmFz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgJiYgIXNob3VsZFNob3dDb3JyZWN0aW9u
UGFuZWw7CiAKICAgICAvLyBJbiBhc3luY2hyb25vdXMgbW9kZSwgd2UgaW50ZW50aW9uYWxseSBj
aGVjayBwYXJhZ3JhcGgtd2lkZSBzZW50ZW5jZS4KLSAgICBSZWZQdHI8U3BlbGxDaGVja1JlcXVl
c3Q+IHJlcXVlc3QgPSBTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKHJlc29sdmVUZXh0Q2hlY2tp
bmdUeXBlTWFzayh0ZXh0Q2hlY2tpbmdPcHRpb25zKSwgYXN5bmNocm9ub3VzID8gcGFyYWdyYXBo
UmFuZ2UgOiByYW5nZVRvQ2hlY2ssIHBhcmFncmFwaFJhbmdlKTsKKyAgICBSZWZQdHI8U3BlbGxD
aGVja1JlcXVlc3Q+IHJlcXVlc3QgPSBTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKHJlc29sdmVU
ZXh0Q2hlY2tpbmdUeXBlTWFzayh0ZXh0Q2hlY2tpbmdPcHRpb25zKSwgVGV4dENoZWNraW5nUHJv
Y2Vzc0luY3JlbWVudGFsLCBhc3luY2hyb25vdXMgPyBwYXJhZ3JhcGhSYW5nZSA6IHJhbmdlVG9D
aGVjaywgcGFyYWdyYXBoUmFuZ2UpOwogCiAgICAgaWYgKGFzeW5jaHJvbm91cykgewogICAgICAg
ICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNraW5nRm9yKHJlcXVlc3QpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCmluZGV4IDY4MzY0NGM2ZDAxNWVjOTI5ZjUyZjg1
OWQzMzZkYjdlODJmMTJjOTUuLmQ2ZGM3YWMyMzFjNDRkMDMwYTMyMmQ4MjhjZDIxMDExYzEwNGNi
NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKQEAgLTQ3LDEzICs0
NywxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBpbnQgdW5yZXF1ZXN0
ZWRTZXF1ZW5jZSA9IC0xOwogCi1TcGVsbENoZWNrUmVxdWVzdDo6U3BlbGxDaGVja1JlcXVlc3Qo
aW50IHNlcXVlbmNlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRy
PFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBUZXh0Q2hlY2tpbmdU
eXBlTWFzayBtYXNrKQorU3BlbGxDaGVja1JlcXVlc3Q6OlNwZWxsQ2hlY2tSZXF1ZXN0KGludCBz
ZXF1ZW5jZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5n
ZT4gcGFyYWdyYXBoUmFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgVGV4dENoZWNraW5nVHlwZU1h
c2sgbWFzaywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUpCiAgICAgOiBtX3Nl
cXVlbmNlKHNlcXVlbmNlKQogICAgICwgbV9jaGVja2luZ1JhbmdlKGNoZWNraW5nUmFuZ2UpCiAg
ICAgLCBtX3BhcmFncmFwaFJhbmdlKHBhcmFncmFwaFJhbmdlKQogICAgICwgbV90ZXh0KHRleHQp
CiAgICAgLCBtX21hc2sobWFzaykKICAgICAsIG1fcm9vdEVkaXRhYmxlRWxlbWVudChtX2NoZWNr
aW5nUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPnJvb3RFZGl0YWJsZUVsZW1lbnQoKSkKKyAgICAs
IG1fcHJvY2Vzc1R5cGUocHJvY2Vzc1R5cGUpCiB7CiB9CiAKQEAgLTYyLDcgKzYzLDcgQEAgU3Bl
bGxDaGVja1JlcXVlc3Q6On5TcGVsbENoZWNrUmVxdWVzdCgpCiB9CiAKIC8vIHN0YXRpYwotUGFz
c1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0
Q2hlY2tpbmdUeXBlTWFzayB0ZXh0Q2hlY2tpbmdPcHRpb25zLCBQYXNzUmVmUHRyPFJhbmdlPiBj
aGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSkKK1Bhc3NSZWZQ
dHI8U3BlbGxDaGVja1JlcXVlc3Q+IFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUoVGV4dENoZWNr
aW5nVHlwZU1hc2sgdGV4dENoZWNraW5nT3B0aW9ucywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUg
cHJvY2Vzc1R5cGUsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8
UmFuZ2U+IHBhcmFncmFwaFJhbmdlKQogewogICAgIEFTU0VSVChjaGVja2luZ1JhbmdlKTsKICAg
ICBBU1NFUlQocGFyYWdyYXBoUmFuZ2UpOwpAQCAtNzEsNyArNzIsNyBAQCBQYXNzUmVmUHRyPFNw
ZWxsQ2hlY2tSZXF1ZXN0PiBTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKFRleHRDaGVja2luZ1R5
cGVNYXNrIHRleAogICAgIGlmICghdGV4dC5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIFBhc3NS
ZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+KCk7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNw
ZWxsQ2hlY2tSZXF1ZXN0KHVucmVxdWVzdGVkU2VxdWVuY2UsIGNoZWNraW5nUmFuZ2UsIHBhcmFn
cmFwaFJhbmdlLCB0ZXh0LCB0ZXh0Q2hlY2tpbmdPcHRpb25zKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTcGVsbENoZWNrUmVxdWVzdCh1bnJlcXVlc3RlZFNlcXVlbmNlLCBjaGVja2luZ1Jh
bmdlLCBwYXJhZ3JhcGhSYW5nZSwgdGV4dCwgdGV4dENoZWNraW5nT3B0aW9ucywgcHJvY2Vzc1R5
cGUpKTsKIH0KIAogCkBAIC0xNDUsNyArMTQ2LDcgQEAgdm9pZCBTcGVsbENoZWNrZXI6Omludm9r
ZVJlcXVlc3QoUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gcmVxdWVzdCkKICAgICBBU1NF
UlQoIW1fcHJvY2Vzc2luZ1JlcXVlc3QpOwogCiAgICAgbV9wcm9jZXNzaW5nUmVxdWVzdCA9IHJl
cXVlc3Q7Ci0gICAgY2xpZW50KCktPnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKHRoaXMsIG1fcHJv
Y2Vzc2luZ1JlcXVlc3QtPnNlcXVlbmNlKCksIG1fcHJvY2Vzc2luZ1JlcXVlc3QtPm1hc2soKSwg
bV9wcm9jZXNzaW5nUmVxdWVzdC0+dGV4dCgpKTsKKyAgICBjbGllbnQoKS0+cmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcodGhpcywgKnJlcXVlc3QpOwogfQogCiB2b2lkIFNwZWxsQ2hlY2tlcjo6ZW5x
dWV1ZVJlcXVlc3QoUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gcmVxdWVzdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCmluZGV4IDIwMzA2ZGExYTU5MzZlMmZmNTRmOWJl
MmIyYWYzZjI1ZTk4NzAyNWIuLjRkNjE3YjA4NmZlODU2YzVmNWNjNTBlOTkyMDJiMDYzNmQ3ZmNl
ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNs
dWRlICJUZXh0Q2hlY2tpbmcuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZS5o
IgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQ2LDEwICs0NywxMCBAQCBzdHJ1Y3QgVGV4dENoZWNraW5n
UmVzdWx0OwogCiBjbGFzcyBTcGVsbENoZWNrUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFNw
ZWxsQ2hlY2tSZXF1ZXN0PiB7CiBwdWJsaWM6Ci0gICAgU3BlbGxDaGVja1JlcXVlc3QoaW50IHNl
cXVlbmNlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdl
PiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3RyaW5nJiwgVGV4dENoZWNraW5nVHlwZU1hc2spOwor
ICAgIFNwZWxsQ2hlY2tSZXF1ZXN0KGludCBzZXF1ZW5jZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hl
Y2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UsIGNvbnN0IFN0cmlu
ZyYsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSk7CiAgICAg
flNwZWxsQ2hlY2tSZXF1ZXN0KCk7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVsbENoZWNr
UmVxdWVzdD4gY3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrLCBQYXNzUmVmUHRyPFJhbmdlPiBj
aGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSk7CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IGNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBl
TWFzaywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5n
UmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKTsKIAogICAgIHZvaWQgc2V0
U2VxdWVuY2UoaW50IHNlcXVlbmNlKSB7IG1fc2VxdWVuY2UgPSBzZXF1ZW5jZTsgfQogICAgIGlu
dCBzZXF1ZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VxdWVuY2U7IH0KQEAgLTU3LDYgKzU4LDcg
QEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKCkgY29uc3Qg
eyByZXR1cm4gbV9wYXJhZ3JhcGhSYW5nZTsgfQogICAgIGNvbnN0IFN0cmluZyYgdGV4dCgpIGNv
bnN0IHsgcmV0dXJuIG1fdGV4dDsgfQogICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2soKSBj
b25zdCB7IHJldHVybiBtX21hc2s7IH0KKyAgICBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9j
ZXNzVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc1R5cGU7IH0KICAgICBQYXNzUmVmUHRy
PEVsZW1lbnQ+IHJvb3RFZGl0YWJsZUVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RFZGl0
YWJsZUVsZW1lbnQ7IH0KIHByaXZhdGU6CiAKQEAgLTY2LDYgKzY4LDcgQEAgcHJpdmF0ZToKICAg
ICBTdHJpbmcgbV90ZXh0OwogICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIG1fbWFzazsKICAgICBS
ZWZQdHI8RWxlbWVudD4gbV9yb290RWRpdGFibGVFbGVtZW50OworICAgIFRleHRDaGVja2luZ1By
b2Nlc3NUeXBlIG1fcHJvY2Vzc1R5cGU7CiB9OwogCiBjbGFzcyBTcGVsbENoZWNrZXIgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDIzNTJjMjg3NmQyMTgxMzRkMGJlYTY0
MjU0NzgxYmU4MWU2NjAwZTguLjNkM2ViMDM0Yzc0MTM3NjQ0NDU1NzMzZTk3MjQ0ZmQyNTYwZWE1
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTQzMiw3ICs0MzIsNyBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIHsgfQotICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIFRl
eHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgY29uc3QgU3BlbGxDaGVja1Jl
cXVlc3QmKSB7IH0KIH07CiAKIGNsYXNzIEVtcHR5RWRpdG9yQ2xpZW50IDogcHVibGljIEVkaXRv
ckNsaWVudCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRD
aGVja2VyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2Vy
Q2xpZW50LmgKaW5kZXggZDE2YWRlMTY0NjBhZDcwZjM3ZWI5ZThkNDE0ZGY2MWY2N2NmYzhkMy4u
ZjBlNTQ0MmUyN2I5NWQ5YWU4MWY4YzhiNjBlY2RkNjEyZjQxNTQ2YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaApAQCAtMzcsNiArMzcs
NyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTcGVsbENoZWNrZXI7CitjbGFzcyBT
cGVsbENoZWNrUmVxdWVzdDsKIAogc3RydWN0IEdyYW1tYXJEZXRhaWwgewogICAgIGludCBsb2Nh
dGlvbjsKQEAgLTcxLDcgKzcyLDcgQEAgcHVibGljOgogICAgIC8vIHByb3ZpZGUgbW9yZSBhY2N1
cmF0ZSBjb3JyZWN0aW9uIHN1Z2dlc3Rpb25zLiBDYWxsZXIgY2FuIHBhc3MgaW4gbW9yZSB0ZXh0
IGluICJjb250ZXh0IiB0byBhaWQgc3VjaCBzcGVsbGNoZWNrZXJzIG9uIGxhbmd1YWdlCiAgICAg
Ly8gaWRlbnRpZmljYXRpb24uIE5vcmFtbGx5IGl0J3MgdGhlIHRleHQgc3Vycm91bmRpbmcgdGhl
ICJ3b3JkIiBmb3Igd2hpY2ggd2UgYXJlIGdldHRpbmcgY29ycmVjdGlvbiBzdWdnZXN0aW9ucy4K
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBj
b25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwg
VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgY29uc3QgU3BlbGxDaGVj
a1JlcXVlc3QmKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L1RleHRDaGVja2luZ1Byb2Nlc3NUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L1RleHRDaGVja2luZ1Byb2Nlc3NUeXBlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGJmNzY0NjRi
ZTE0YmQ1YmYxODMwN2QzNTQyNGQwNzNmZWM4ZDE2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUuaApAQCAtMCww
ICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZV9oCisjZGVmaW5lIFRleHRD
aGVja2luZ1Byb2Nlc3NUeXBlX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFRleHRD
aGVja2luZ1Byb2Nlc3NUeXBlIHsKKyAgICBUZXh0Q2hlY2tpbmdQcm9jZXNzQmF0Y2gsCisgICAg
VGV4dENoZWNraW5nUHJvY2Vzc0luY3JlbWVudGFsCit9OworCit9CisKKyNlbmRpZiAvLyBUZXh0
Q2hlY2tpbmdQcm9jZXNzVHlwZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAK
aW5kZXggZDNjMzdlZTk0NGM0YjdkODdjZjUyMjdlZTU5NGUxMGZkODZjNTE3ZS4uMDY4OTFhMDMw
MDQ3NmY1MWNlOThlZDAyZGIxZjQxNjdmNDY0MTIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRC
bGFja0JlcnJ5LmNwcApAQCAtNTU4LDcgKzU1OCw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50QmxhY2tC
ZXJyeTo6Y2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQsIFdURjo6VmVjdG9y
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5
OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIFRleHRDaGVja2lu
Z1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmKQordm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5Ojpy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBjb25zdCBTcGVsbENoZWNrUmVx
dWVzdCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50Qmxh
Y2tCZXJyeS5oCmluZGV4IGJmZmE4ODE4MDZkNjQ3MTEwNGI5MjFkOGQxZTg3NmY0N2NlNGU1NjUu
Ljg2ODFjYzg2ZmY2YjczZDdjMGE4YWJmYjA5ZGY2YzhhOTc5N2EzN2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0Jl
cnJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEJsYWNrQmVycnkuaApAQCAtODQsNyArODQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQoY29uc3Qg
U3RyaW5nJiBtaXNzcGVsbGVkV29yZCk7CiAgICAgdmlydHVhbCB2b2lkIGNoZWNrR3JhbW1hck9m
U3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50LCBWZWN0b3I8R3JhbW1hckRldGFpbCwgMHU+JiwgaW50
KiwgaW50Kik7CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+Jik7Ci0gICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgVGV4dENoZWNraW5nVHlw
ZU1hc2ssIGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhTcGVsbENoZWNrZXIqLCBjb25zdCBTcGVsbENoZWNrUmVxdWVzdCYpOwogCiAgICAg
dmlydHVhbCBUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKTsKICAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKGNvbnN0IFN0cmluZyYsIGNvbnN0
IEdyYW1tYXJEZXRhaWwmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0VkaXRvckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9y
Q2xpZW50SW1wbC5jcHAKaW5kZXggMDMzZDQ2ZDU4YzJmNzk1NDc5ZTBhMDQyOWUzNmRmOTE3M2Rk
NWU5Ni4uZDc0NTQyNjk3YTZmMDg5ODlhMjI4YzdhY2I1ZWU3NjcxMTg1MzI5MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKQEAgLTcyOSwx
MCArNzI5LDEwIEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6Y2hlY2tTcGVsbGluZ09mU3RyaW5n
KGNvbnN0IFVDaGFyKiB0ZXh0LCBpbnQgbGVuZ3RoLAogICAgICAgICAqbWlzc3BlbGxpbmdMZW5n
dGggPSBzcGVsbExlbmd0aDsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRJbXBsOjpyZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqIHNlbmRlciwgaW50IGlkZW50aWZpZXIsIFRleHRD
aGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmIHRleHQpCit2b2lkIEVkaXRvckNsaWVudElt
cGw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciogc2VuZGVyLCBjb25zdCBX
ZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAobV93ZWJWaWV3
LT5zcGVsbENoZWNrQ2xpZW50KCkpCi0gICAgICAgIG1fd2ViVmlldy0+c3BlbGxDaGVja0NsaWVu
dCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlRleHQodGV4dCwgbmV3IFdlYlRleHRDaGVja2luZ0NvbXBs
ZXRpb25JbXBsKGlkZW50aWZpZXIsIHNlbmRlcikpOworICAgICAgICBtX3dlYlZpZXctPnNwZWxs
Q2hlY2tDbGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZUZXh0KHJlcXVlc3QudGV4dCgpLCBuZXcg
V2ViVGV4dENoZWNraW5nQ29tcGxldGlvbkltcGwocmVxdWVzdC5zZXF1ZW5jZSgpLCBzZW5kZXIp
KTsKIH0KIAogU3RyaW5nIEVkaXRvckNsaWVudEltcGw6OmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlv
bkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKaW5kZXggOTk5ODYwYTAy
NzI2OTQzMzYzMzA1MzQ2M2M0MjJiY2RhZTg5MGNkNy4uMWYxMzhkODdiMzNhYjI4YjU3MmFhYjJk
ODYyZDhmOGFkYjVjYWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
RWRpdG9yQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRv
ckNsaWVudEltcGwuaApAQCAtMTA5LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6
U3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAg
IHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7Ci0gICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29y
ZTo6VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJik7CisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGNv
bnN0IFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0Jik7CiAKICAgICB2aXJ0dWFsIFdlYkNvcmU6
OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJuIHRoaXM7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggMjE3MDRkOTdl
MDEyYzkxY2FlMGU0Nzk4ZjMxNGNlYjcyOGI3NzkzNS4uYWRmMjAyMzcxMDU2OTNhZTExYTdjMjEw
ZTgwOWZiM2I3YzdmMjczNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFt
ZUltcGwuY3BwCkBAIC0xMzAxLDcgKzEzMDEsNyBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6cmVxdWVz
dFRleHRDaGVja2luZyhjb25zdCBXZWJFbGVtZW50JiB3ZWJFbGVtKQogCiAgICAgUmVmUHRyPFJh
bmdlPiByYW5nZVRvQ2hlY2sgPSByYW5nZU9mQ29udGVudHMoY29uc3RfY2FzdDxFbGVtZW50Kj4o
d2ViRWxlbS5jb25zdFVud3JhcDxFbGVtZW50PigpKSk7CiAKLSAgICBmcmFtZSgpLT5lZGl0b3Io
KS0+c3BlbGxDaGVja2VyKCktPnJlcXVlc3RDaGVja2luZ0ZvcihTcGVsbENoZWNrUmVxdWVzdDo6
Y3JlYXRlKFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVja2luZ1R5cGVHcmFtbWFy
LCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVjaykpOworICAgIGZyYW1lKCktPmVkaXRvcigpLT5z
cGVsbENoZWNrZXIoKS0+cmVxdWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVh
dGUoVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIsIFRl
eHRDaGVja2luZ1Byb2Nlc3NCYXRjaCwgcmFuZ2VUb0NoZWNrLCByYW5nZVRvQ2hlY2spKTsKIH0K
IAogYm9vbCBXZWJGcmFtZUltcGw6Omhhc1NlbGVjdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5oIGIv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRHdGsuaApp
bmRleCBlNTM5MGJjYzk3Mzk0NzdhMjc2MDQ3OWM2ZTQxMTIzODI4NWUxMGU2Li4yYWQwYWRkY2Jm
Y2VmOGJjODRlNmQ1M2RhOWMwMjhiZjY1ZDExNjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmgKQEAgLTQ4LDcg
KzQ4LDcgQEAgY2xhc3MgVGV4dENoZWNrZXJDbGllbnRHdGsgOiBwdWJsaWMgV2ViQ29yZTo6VGV4
dENoZWNrZXJDbGllbnQgewogICAgICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGdldEF1dG9Db3Jy
ZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFdURjo6U3RyaW5nJik7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBjaGVja0dyYW1tYXJPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCBs
ZW5ndGgsIFdURjo6VmVjdG9yPFdlYkNvcmU6OkdyYW1tYXJEZXRhaWw+JiwgaW50KiBiYWRHcmFt
bWFyTG9jYXRpb24sIGludCogYmFkR3JhbW1hckxlbmd0aCk7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYgd29yZCwgY29uc3QgV1RGOjpT
dHJpbmcmIGNvbnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENo
ZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0
cmluZyYpIHt9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhT
cGVsbENoZWNrZXIqLCBjb25zdCBTcGVsbENoZWNrUmVxdWVzdCYpIHsgfQogCiAgICAgICAgIHZv
aWQgdXBkYXRlU3BlbGxDaGVja2luZ0xhbmd1YWdlKGNvbnN0IGNoYXIqKTsKICAgICBwcml2YXRl
OgpAQCAtNTYsNCArNTYsMyBAQCBjbGFzcyBUZXh0Q2hlY2tlckNsaWVudEd0ayA6IHB1YmxpYyBX
ZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCB7CiAgICAgfTsKIH0KICNlbmRpZgotCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4
IDVhOWI5MTcwYjVkNjIwNzFkZjQ4MWNjMzI5NDBkYTcyZmI1MWFhMWMuLmEyNjFlMTg3ZTQ4MmJj
NmMzOWM1N2I3ZWFkZmU3ZjY2YzM3MDc1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xMzUsNyArMTM1LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmlu
ZyYgd29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3Ry
aW5nPiYgZ3Vlc3NlcykgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1l
dGhvZFN0YXRlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3Rh
dGUoYm9vbCBlbmFibGVkKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdUeXBlTWFzaywgY29uc3QgV1RGOjpTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgY29uc3QgU3BlbGxD
aGVja1JlcXVlc3QmKSBPVkVSUklERTsKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgdmlydHVhbCB2b2lk
IHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxU
eXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmlu
ZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVu
dFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJp
bmdzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChX
ZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsKSBPVkVSUklERTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bQppbmRleCBmMWM1NTEwYmYxMTAyYzhlZjhhZmUzOWUzMDlhODI0OWExN2UwNTZjLi5jN2Q0OTZl
NmM1YmRkY2QyMzQ2YmVlYTExMGEzNjEyMmYzYWY1M2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC05NzIsMTUgKzk3
MiwxNSBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRob2RTdGF0ZShib29sKQog
QGVuZAogI2VuZGlmCiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqIHNlbmRlciwgaW50IHNlcXVlbmNlLCBXZWJDb3Jl
OjpUZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVja2luZ1R5cGVzLCBjb25zdCBTdHJpbmcmIHRleHQp
Cit2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6
U3BlbGxDaGVja2VyKiBzZW5kZXIsIGNvbnN0IFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0JiBy
ZXF1ZXN0KQogewogI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECi0gICAgTlNSYW5nZSByYW5n
ZSA9IE5TTWFrZVJhbmdlKDAsIHRleHQubGVuZ3RoKCkpOworICAgIE5TUmFuZ2UgcmFuZ2UgPSBO
U01ha2VSYW5nZSgwLCByZXF1ZXN0LnRleHQoKS5sZW5ndGgoKSk7CiAgICAgTlNSdW5Mb29wKiBj
dXJyZW50TG9vcCA9IFtOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdOwotICAgIFtbTlNTcGVsbENo
ZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzp0ZXh0IHJh
bmdlOnJhbmdlIHR5cGVzOk5TVGV4dENoZWNraW5nQWxsU3lzdGVtVHlwZXMgb3B0aW9uczowIGlu
U3BlbGxEb2N1bWVudFdpdGhUYWc6MCAKKyAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxs
Q2hlY2tlcl0gcmVxdWVzdENoZWNraW5nT2ZTdHJpbmc6cmVxdWVzdC50ZXh0KCkgcmFuZ2U6cmFu
Z2UgdHlwZXM6TlNUZXh0Q2hlY2tpbmdBbGxTeXN0ZW1UeXBlcyBvcHRpb25zOjAgaW5TcGVsbERv
Y3VtZW50V2l0aFRhZzowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyOl4oTlNJbnRlZ2VyLCBOU0FycmF5KiByZXN1bHRzLCBOU09ydGhv
Z3JhcGh5KiwgTlNJbnRlZ2VyKSB7CiAgICAgICAgICAgICBbY3VycmVudExvb3AgcGVyZm9ybVNl
bGVjdG9yOkBzZWxlY3RvcihwZXJmb3JtKSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0YXJnZXQ6W1tbV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciBhbGxvY10gaW5pdFdp
dGhTZW5kZXI6c2VuZGVyIHNlcXVlbmNlOnNlcXVlbmNlIHR5cGVzOmNoZWNraW5nVHlwZXMgcmVz
dWx0czpyZXN1bHRzXSBhdXRvcmVsZWFzZV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0YXJnZXQ6W1tbV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciBhbGxvY10gaW5pdFdp
dGhTZW5kZXI6c2VuZGVyIHNlcXVlbmNlOnJlcXVlc3Quc2VxdWVuY2UoKSB0eXBlczpyZXF1ZXN0
Lm1hc2soKSByZXN1bHRzOnJlc3VsdHNdIGF1dG9yZWxlYXNlXQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhcmd1bWVudDpuaWwgb3JkZXI6MCBtb2RlczpbTlNBcnJheSBhcnJheVdp
dGhPYmplY3Q6TlNEZWZhdWx0UnVuTG9vcE1vZGVdXTsKICAgICAgICAgfV07CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGll
bnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVu
dFF0LmgKaW5kZXggZTc4Y2UxZDEwYzA1ZDIzNWE2YTU0YjNiYmJlYTdlZWE5YWNlODQ4My4uNDk1
ZmM2ZWVkZGEyZmVjYTQ2MTBjNmVmODQ0MGE1NWU4YmJmODMwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudFF0LmgKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudFF0LmgKQEAgLTQ3
LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGdldEF1dG9Db3JyZWN0U3Vn
Z2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpOwog
ICAgIHZpcnR1YWwgdm9pZCBjaGVja0dyYW1tYXJPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCBs
ZW5ndGgsIFZlY3RvcjxHcmFtbWFyRGV0YWlsPiYsIGludCogYmFkR3JhbW1hckxvY2F0aW9uLCBp
bnQqIGJhZEdyYW1tYXJMZW5ndGgpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29y
ZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmlu
Zz4mIGd1ZXNzZXMpOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhT
cGVsbENoZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2Vy
KiwgY29uc3QgU3BlbGxDaGVja1JlcXVlc3QmKSB7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc0Nv
bnRpbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUNv
bnRpbm91c1NwZWxsQ2hlY2tpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggMjhhOTEwNWVmYjY0ZWU4MTU1YWQwZGU5
NzJmMWM4ZjdhMTU5OTMyYS4uM2RhMjAyNDdiYjYwOTJlNDQxYmVhY2MxZTAzMjNlNTJlMTIzZWY5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmgKQEAgLTExMCw3ICsxMTAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRo
b2RTdGF0ZShib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmco
V2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFz
aywgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBjb25zdCBTcGVsbENoZWNrUmVxdWVzdCYpIHsgfQor
CiAgICAgdmlydHVhbCBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7
IHJldHVybiB0aGlzOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKaW5kZXggYzI5NTI0ZTFhMjZm
NDBjM2RkMDA0YTIyYTI2NzEyZjYwZTZkNWM0OS4uYzIyODgyOGI3ZWMzNjk2OGM5OTliM2Q0YTI2
MDRlMzBhZjFmNWM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaApAQCAtMTAxLDcgKzEwMSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJpbmcmIHdv
cmQsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4m
IGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpOwotICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQs
IFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0cmluZyYpIHt9Cisg
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hl
Y2tlciosIGNvbnN0IFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0JikgeyB9CiAgICAgdmlydHVh
bCBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlz
OyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggMTllZjdkYzRmMjNh
MzIwM2M3Zjk4ZjE1OTU1MTM5NWUwNDNhNGEwNy4uZmY3YjViNmMzODFiY2IwN2FmMjcyMWU0NjY4
OWNjOTYxMTk4MTUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtNDQ3LDcgKzQ0Nyw3
IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpCiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENo
ZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJikKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50
OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBjb25zdCBX
ZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDI2MDAyMGZmMjZkZWRkMTcwMTVlZTZhYmE0YjIyZDAy
OWUzMzgwODkuLmE3ZjRkMjFhN2U0Y2ViY2ZiZGQ0Y2ZmYmNhNDhlMmMyYWM2NTUyMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaApAQCAtMTQxLDcgKzE0MSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5n
JiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwg
aW50LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgV1RGOjpTdHJpbmcmKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29y
ZTo6U3BlbGxDaGVja2VyKiwgY29uc3QgV2ViQ29yZTo6U3BlbGxDaGVja1JlcXVlc3QmKSBPVkVS
UklERTsKICNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3Jy
ZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91
bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBj
b25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0
ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBk
aXNtaXNzQ29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0
aW9uUGFuZWwpIE9WRVJSSURFOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128410</attachid>
            <date>2012-02-22 23:40:09 -0800</date>
            <delta_ts>2012-02-23 00:00:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79320-20120223164007.patch</filename>
            <type>text/plain</type>
            <size>31254</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTljNGI5ODMwMmI1MDRk
NGFlZDdjMzE5MmQ0MDYyZjVmNjFlOTc0ZC4uMmE1ZTM1NWNmODk1MmJiY2M5ZDlkYTFmMWZlZThi
MGZlZjYzZjc5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTAyLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNr
UmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhh
cHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZWJLaXQgY2xpZW50cyBzaG91bGQgYmUgYWJsZSB0byBnZXQgdGhlIGNvbnRleHQgaG93IHRoZSBz
cGVsbGNoZWNrIGhhcHBlbmRlZC4KKyAgICAgICAgRm9yIGV4YW1wbGUsIFdlYktpdCBjbGllbnRz
IG1heSB3YW50IHRvIGNoYW5nZSB0aGUgYmVoYXZpb3IgYnkgYSBzcGVsbGNoZWNrIHJlcXVlc3Qg
aXMKKyAgICAgICAgaW52b2tlZCBpbiB0eXBpbmcgb3IgaW4gcGFzdGluZy4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZGVkIGFuIGVudW0gaW4gU3BlbGxDaGVja1JlcXVlc3Qgc28gdGhhdCBXZWJL
aXQgY2xpZW50cyBjYW4gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4KKworICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVwbGFjZVNlbGVjdGlv
bldpdGhGcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Om1hcmtBbGxNaXNzcGVs
bGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXMpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVj
a2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0OjpTcGVsbENoZWNr
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aW52b2tlUmVxdWVzdCk6CisgICAgICAg
ICogZWRpdGluZy9TcGVsbENoZWNrZXIuaDoKKyAgICAgICAgKFNwZWxsQ2hlY2tSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0Ojp0ZXh0Q2hlY2tSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0Ojpwcm9jZXNzVHlwZSk6CisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlUZXh0
Q2hlY2tlckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoVGV4dENoZWNrZXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENoZWNr
aW5nLmg6CisgICAgICAgIChUZXh0Q2hlY2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRDaGVja1JlcXVlc3Q6OlRleHRDaGVja1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dENoZWNrUmVxdWVzdDo6c2V0U2VxdWVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNr
UmVxdWVzdDo6c2VxdWVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNrUmVxdWVzdDo6
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tSZXF1ZXN0OjptYXNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRDaGVja1JlcXVlc3Q6OnByb2Nlc3NUeXBlKToKKyAgICAgICAgKFdl
YkNvcmUpOgorCiAyMDEyLTAyLTIyICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBFbmFibGUgR2VvbG9jYXRpb24gYmluZGluZ3MgZm9yIEdPYmplY3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IGRiOGI0MTBjODcxMmNjNWZhZjZiOWJhYmNm
ZTgzOTc4N2ZkYmVlYzkuLjE0ZTk2ODUzNTg1N2Q0ZWZkNWMyZTM0NTBiNGMxZjE4NTQ1NjBiNWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAy
LTIyICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBT
cGVsbENoZWNrUmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVs
bGNoZWNrIGhhcHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6cmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnku
aDoKKyAgICAgICAgKEVkaXRvckNsaWVudEJsYWNrQmVycnkpOgorCiAyMDEyLTAyLTIxICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB0aGUgcmVtYWlu
aW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggZDIwYmFkZjQwNDU5NWNkZDY2MjliNDYzMzJmZjFkNmM1NThkNTk5OC4u
MmQ1OTFkYjIzYmYxNTk2MzlkOGIxNjA2Yzk3OGNkMGFhZWJjMDY4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMi0yMiAgU2hpbnlhIEthd2FuYWth
ICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlbGxDaGVja1JlcXVlc3QgbmVl
ZHMgdG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBwZW5lZC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzIwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvRWRpdG9y
Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgor
ICAgICAgICAoRWRpdG9yQ2xpZW50SW1wbCk6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6cmVxdWVzdFRleHRDaGVja2luZyk6
CisKIDIwMTItMDItMjIgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBBZGQgdW5pdCB0ZXN0IGZvciBzdXJmYWNlIG9jY2x1c2lvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCmluZGV4IGFhNjI5NzAyN2Q4OGU3YjRkODdjMDM1OTAwZTNhNmE4Y2NiYjM0ODUu
LmQ5OTQzZWQxZGU2NzJlZDlmMTBlOGVlOTIxOGIxMjg1N2VjY2ZjN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0yMiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlh
a0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlbGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25v
dyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0
Q2hlY2tlckNsaWVudEd0ay5oOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlckNsaWVudEd0
azo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMg
b2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBlZTJm
ZGI3YzlkM2NjZTIzYjZlNGE1MmRkNGM5YTczY2JhNjNhYmIyLi43N2Y2NmEwMDEyNmU2ZGUyOWIy
YTY0MDMzMjQyZTU4NTA2MTg5MzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDItMjIgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFNwZWxsQ2hlY2tSZXF1ZXN0IG5lZWRzIHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUg
dGhlIHNwZWxsY2hlY2sgaGFwcGVuZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03OTMyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRp
dG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTItMDItMjEgIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHRoZSByZW1haW5p
bmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGluIEVkaXRvcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRl
eCBkYTVlYjg3N2U0ZjZiNzk3YzQwMzFkZmVkMGQzMWRjYWNlYzgyOTFiLi41NzM5NzdjMjI2YjFm
Zjk2M2ZhODYxNGMxYmFkNmIxMjUzZmYyNjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDEyLTAyLTIyICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4K
KworICAgICAgICBTcGVsbENoZWNrUmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdo
ZXJlIHRoZSBzcGVsbGNoZWNrIGhhcHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50UXQ6OnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKToKKwogMjAxMi0wMi0yMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZW1vdmUgdGhlIHJlbWFpbmluZyB1c2VzIG9mIENTU1N0eWxlRGVjbGFy
YXRpb24gaW4gRWRpdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggODYyYTljMzZiOGRlYzkwOTM3ZjNk
YzVkMGE3YWIwYmVlOWI1MmVkNS4uOWUyZGQxNjM5NjdlZWNiODkzNWJlMTIxOTJkM2IzYWVmYWNj
YzZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAyLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNr
UmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhh
cHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAoV2ViRWRpdG9yQ2xp
ZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQp
OgorCiAyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBF
ZGl0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggODAyYTRlYzhiZDBjODljZDI2ODk0ZmIyNjFl
NzlmNWUyMGM2NDc1YS4uMTg5ZTM1MmZlODJjMzE4NDQwMzY0M2Y4NDU2NDE1M2Q0YWQ0NjVmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0yMiAgU2hpbnlh
IEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlbGxDaGVja1Jl
cXVlc3QgbmVlZHMgdG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBw
ZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5
MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oOgorICAgICAgICAoV2ViS2l0OjpFZGl0
b3JDbGllbnRXaW5DRTo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEyLTAyLTIxICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB0aGUgcmVt
YWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA1YWEyMDZmMThmMzgzMThjNzUxZmRmNDFmMGIyNGFmZjkyZmZlYjk5Li5hM2E4ZGEzMGRkNzNj
ZTFiMzJiNjUyZWEzYzZjYTRmNmM5ZWJiNjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDItMjIgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFNwZWxsQ2hlY2tSZXF1ZXN0IG5lZWRzIHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUg
dGhlIHNwZWxsY2hlY2sgaGFwcGVuZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03OTMyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oOgorCiAyMDEyLTAyLTIyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
UHJveHk6OmRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKaW5kZXggMTNiYjdlNzVmN2NjOTU1ODdkMThjNDQyMDVmYTY3ODhjODUxMWM1Yy4uMWNlMjRl
NTM4ZDQzNTdmMWUzZTJkYmE4MGM0NGI0YTU4NGMyYTA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcApAQCAtNDE4LDcgKzQxOCw3IEBAIHZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9u
V2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsCiAgICAg
ICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2VUb0NoZWNrID0gUmFuZ2U6OmNy
ZWF0ZShtX2ZyYW1lLT5kb2N1bWVudCgpLCBmaXJzdFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0NoZWNr
KSwgbGFzdFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0NoZWNrKSk7Ci0gICAgbV9zcGVsbENoZWNrZXIt
PnJlcXVlc3RDaGVja2luZ0ZvcihTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKHJlc29sdmVUZXh0
Q2hlY2tpbmdUeXBlTWFzayhUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdU
eXBlR3JhbW1hciksIHJhbmdlVG9DaGVjaywgcmFuZ2VUb0NoZWNrKSk7CisgICAgbV9zcGVsbENo
ZWNrZXItPnJlcXVlc3RDaGVja2luZ0ZvcihTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKHJlc29s
dmVUZXh0Q2hlY2tpbmdUeXBlTWFzayhUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hl
Y2tpbmdUeXBlR3JhbW1hciksIFRleHRDaGVja2luZ1Byb2Nlc3NCYXRjaCwgcmFuZ2VUb0NoZWNr
LCByYW5nZVRvQ2hlY2spKTsKIH0KIAogdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRo
VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21h
cnRSZXBsYWNlKQpAQCAtMTkzNSw3ICsxOTM1LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbGxNaXNz
cGVsbGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXMoVGV4dENoZWNraW5nVHlwZU1hc2sgdGV4dEMK
ICAgICBib29sIGFzeW5jaHJvbm91cyA9IG1fZnJhbWUgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKSAm
JiBtX2ZyYW1lLT5zZXR0aW5ncygpLT5hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgp
ICYmICFzaG91bGRTaG93Q29ycmVjdGlvblBhbmVsOwogCiAgICAgLy8gSW4gYXN5bmNocm9ub3Vz
IG1vZGUsIHdlIGludGVudGlvbmFsbHkgY2hlY2sgcGFyYWdyYXBoLXdpZGUgc2VudGVuY2UuCi0g
ICAgUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0ID0gU3BlbGxDaGVja1JlcXVlc3Q6
OmNyZWF0ZShyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2sodGV4dENoZWNraW5nT3B0aW9ucyks
IGFzeW5jaHJvbm91cyA/IHBhcmFncmFwaFJhbmdlIDogcmFuZ2VUb0NoZWNrLCBwYXJhZ3JhcGhS
YW5nZSk7CisgICAgUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0ID0gU3BlbGxDaGVj
a1JlcXVlc3Q6OmNyZWF0ZShyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2sodGV4dENoZWNraW5n
T3B0aW9ucyksIFRleHRDaGVja2luZ1Byb2Nlc3NJbmNyZW1lbnRhbCwgYXN5bmNocm9ub3VzID8g
cGFyYWdyYXBoUmFuZ2UgOiByYW5nZVRvQ2hlY2ssIHBhcmFncmFwaFJhbmdlKTsKIAogICAgIGlm
IChhc3luY2hyb25vdXMpIHsKICAgICAgICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2lu
Z0ZvcihyZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxD
aGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcAppbmRl
eCA2ODM2NDRjNmQwMTVlYzkyOWY1MmY4NTlkMzM2ZGI3ZTgyZjEyYzk1Li5iYTYwMjliNzU5NDcy
ZTA1NTBkZDY3YmFiNDFjMTYyYTgzM2RhMGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVs
bENoZWNrZXIuY3BwCkBAIC00NywxMiArNDcsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dGF0aWMgY29uc3QgaW50IHVucmVxdWVzdGVkU2VxdWVuY2UgPSAtMTsKIAotU3BlbGxDaGVja1Jl
cXVlc3Q6OlNwZWxsQ2hlY2tSZXF1ZXN0KGludCBzZXF1ZW5jZSwgUGFzc1JlZlB0cjxSYW5nZT4g
Y2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UsIGNvbnN0IFN0
cmluZyYgdGV4dCwgVGV4dENoZWNraW5nVHlwZU1hc2sgbWFzaykKK1NwZWxsQ2hlY2tSZXF1ZXN0
OjpTcGVsbENoZWNrUmVxdWVzdChpbnQgc2VxdWVuY2UsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNr
aW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlLCBjb25zdCBTdHJpbmcm
IHRleHQsIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBl
IHByb2Nlc3NUeXBlKQogICAgIDogbV9zZXF1ZW5jZShzZXF1ZW5jZSkKLSAgICAsIG1fY2hlY2tp
bmdSYW5nZShjaGVja2luZ1JhbmdlKQotICAgICwgbV9wYXJhZ3JhcGhSYW5nZShwYXJhZ3JhcGhS
YW5nZSkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV9tYXNrKG1hc2spCisgICAgLCBtX3By
b2Nlc3NUeXBlKHByb2Nlc3NUeXBlKQorICAgICwgbV9jaGVja2luZ1JhbmdlKGNoZWNraW5nUmFu
Z2UpCisgICAgLCBtX3BhcmFncmFwaFJhbmdlKHBhcmFncmFwaFJhbmdlKQogICAgICwgbV9yb290
RWRpdGFibGVFbGVtZW50KG1fY2hlY2tpbmdSYW5nZS0+c3RhcnRDb250YWluZXIoKS0+cm9vdEVk
aXRhYmxlRWxlbWVudCgpKQogewogfQpAQCAtNjIsNyArNjMsNyBAQCBTcGVsbENoZWNrUmVxdWVz
dDo6flNwZWxsQ2hlY2tSZXF1ZXN0KCkKIH0KIAogLy8gc3RhdGljCi1QYXNzUmVmUHRyPFNwZWxs
Q2hlY2tSZXF1ZXN0PiBTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKFRleHRDaGVja2luZ1R5cGVN
YXNrIHRleHRDaGVja2luZ09wdGlvbnMsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2Us
IFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKQorUGFzc1JlZlB0cjxTcGVsbENoZWNr
UmVxdWVzdD4gU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlTWFzayB0
ZXh0Q2hlY2tpbmdPcHRpb25zLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSwg
UGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdy
YXBoUmFuZ2UpCiB7CiAgICAgQVNTRVJUKGNoZWNraW5nUmFuZ2UpOwogICAgIEFTU0VSVChwYXJh
Z3JhcGhSYW5nZSk7CkBAIC03MSw3ICs3Miw3IEBAIFBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVl
c3Q+IFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlwZU1hc2sgdGV4CiAg
ICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxTcGVsbENo
ZWNrUmVxdWVzdD4oKTsKIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlbGxDaGVja1JlcXVl
c3QodW5yZXF1ZXN0ZWRTZXF1ZW5jZSwgY2hlY2tpbmdSYW5nZSwgcGFyYWdyYXBoUmFuZ2UsIHRl
eHQsIHRleHRDaGVja2luZ09wdGlvbnMpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWxs
Q2hlY2tSZXF1ZXN0KHVucmVxdWVzdGVkU2VxdWVuY2UsIGNoZWNraW5nUmFuZ2UsIHBhcmFncmFw
aFJhbmdlLCB0ZXh0LCB0ZXh0Q2hlY2tpbmdPcHRpb25zLCBwcm9jZXNzVHlwZSkpOwogfQogCiAK
QEAgLTE0NSw3ICsxNDYsNyBAQCB2b2lkIFNwZWxsQ2hlY2tlcjo6aW52b2tlUmVxdWVzdChQYXNz
UmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0KQogICAgIEFTU0VSVCghbV9wcm9jZXNz
aW5nUmVxdWVzdCk7CiAKICAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0ID0gcmVxdWVzdDsKLSAgICBj
bGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcodGhpcywgbV9wcm9jZXNzaW5nUmVxdWVz
dC0+c2VxdWVuY2UoKSwgbV9wcm9jZXNzaW5nUmVxdWVzdC0+bWFzaygpLCBtX3Byb2Nlc3NpbmdS
ZXF1ZXN0LT50ZXh0KCkpOworICAgIGNsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyh0
aGlzLCByZXF1ZXN0LT50ZXh0Q2hlY2tSZXF1ZXN0KCkpOwogfQogCiB2b2lkIFNwZWxsQ2hlY2tl
cjo6ZW5xdWV1ZVJlcXVlc3QoUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gcmVxdWVzdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCmluZGV4IDIwMzA2ZGExYTU5MzZlMmZm
NTRmOWJlMmIyYWYzZjI1ZTk4NzAyNWIuLmU4ZDYwMzVhNmU4NTZlNDM5NTA5NTI0NjEwMDk2OTc1
YzAwNmRlMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApAQCAtNDYsMTAg
KzQ2LDEyIEBAIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CiAKIGNsYXNzIFNwZWxsQ2hlY2tS
ZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlbGxDaGVja1JlcXVlc3Q+IHsKIHB1YmxpYzoK
LSAgICBTcGVsbENoZWNrUmVxdWVzdChpbnQgc2VxdWVuY2UsIFBhc3NSZWZQdHI8UmFuZ2U+IGNo
ZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlLCBjb25zdCBTdHJp
bmcmLCBUZXh0Q2hlY2tpbmdUeXBlTWFzayk7CisgICAgU3BlbGxDaGVja1JlcXVlc3QoaW50IHNl
cXVlbmNlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdl
PiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3RyaW5nJiwgVGV4dENoZWNraW5nVHlwZU1hc2ssIFRl
eHRDaGVja2luZ1Byb2Nlc3NUeXBlKTsKICAgICB+U3BlbGxDaGVja1JlcXVlc3QoKTsKIAotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBjcmVhdGUoVGV4dENoZWNraW5n
VHlwZU1hc2ssIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFu
Z2U+IHBhcmFncmFwaFJhbmdlKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVx
dWVzdD4gY3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlw
ZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFy
YWdyYXBoUmFuZ2UpOworCisgICAgVGV4dENoZWNrUmVxdWVzdCB0ZXh0Q2hlY2tSZXF1ZXN0KCkg
Y29uc3Q7CiAKICAgICB2b2lkIHNldFNlcXVlbmNlKGludCBzZXF1ZW5jZSkgeyBtX3NlcXVlbmNl
ID0gc2VxdWVuY2U7IH0KICAgICBpbnQgc2VxdWVuY2UoKSBjb25zdCB7IHJldHVybiBtX3NlcXVl
bmNlOyB9CkBAIC01NywxNCArNTksMTUgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UmFuZ2U+
IHBhcmFncmFwaFJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhZ3JhcGhSYW5nZTsgfQogICAg
IGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQogICAgIFRleHRD
aGVja2luZ1R5cGVNYXNrIG1hc2soKSBjb25zdCB7IHJldHVybiBtX21hc2s7IH0KKyAgICBUZXh0
Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vz
c1R5cGU7IH0KICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IHJvb3RFZGl0YWJsZUVsZW1lbnQoKSBj
b25zdCB7IHJldHVybiBtX3Jvb3RFZGl0YWJsZUVsZW1lbnQ7IH0KIHByaXZhdGU6Ci0KICAgICBp
bnQgbV9zZXF1ZW5jZTsKLSAgICBSZWZQdHI8UmFuZ2U+IG1fY2hlY2tpbmdSYW5nZTsKLSAgICBS
ZWZQdHI8UmFuZ2U+IG1fcGFyYWdyYXBoUmFuZ2U7CiAgICAgU3RyaW5nIG1fdGV4dDsKICAgICBU
ZXh0Q2hlY2tpbmdUeXBlTWFzayBtX21hc2s7CisgICAgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUg
bV9wcm9jZXNzVHlwZTsKKyAgICBSZWZQdHI8UmFuZ2U+IG1fY2hlY2tpbmdSYW5nZTsKKyAgICBS
ZWZQdHI8UmFuZ2U+IG1fcGFyYWdyYXBoUmFuZ2U7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fcm9v
dEVkaXRhYmxlRWxlbWVudDsKIH07CiAKQEAgLTEwOSw2ICsxMTIsMTEgQEAgcHJpdmF0ZToKICAg
ICBSZXF1ZXN0UXVldWUgbV9yZXF1ZXN0UXVldWU7CiB9OwogCitpbmxpbmUgVGV4dENoZWNrUmVx
dWVzdCBTcGVsbENoZWNrUmVxdWVzdDo6dGV4dENoZWNrUmVxdWVzdCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIFRleHRDaGVja1JlcXVlc3QobV9zZXF1ZW5jZSwgbV90ZXh0LCBtX21hc2ssIG1fcHJv
Y2Vzc1R5cGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTcGVs
bENoZWNrZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDIzNTJjMjg3
NmQyMTgxMzRkMGJlYTY0MjU0NzgxYmU4MWU2NjAwZTguLmZhY2YzY2MyYTU2OTVmZTE0MTE2YmQ5
MTI5NWEyMzQ3OTlkZjhmNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAg
LTQzMiw3ICs0MzIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5n
PiYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENo
ZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgY29u
c3QgVGV4dENoZWNrUmVxdWVzdCYpIHsgfQogfTsKIAogY2xhc3MgRW1wdHlFZGl0b3JDbGllbnQg
OiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dENoZWNrZXJDbGllbnQuaAppbmRleCBkMTZhZGUxNjQ2MGFkNzBmMzdlYjllOGQ0MTRk
ZjYxZjY3Y2ZjOGQzLi41NmRjODNjOGZhYmFmOGU1M2Y3NjYxM2U3ODIwYjc0YjkyMmMzNGJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5o
CkBAIC0zNyw2ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNwZWxsQ2hl
Y2tlcjsKK2NsYXNzIFRleHRDaGVja1JlcXVlc3Q7CiAKIHN0cnVjdCBHcmFtbWFyRGV0YWlsIHsK
ICAgICBpbnQgbG9jYXRpb247CkBAIC03MSw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICAvLyBwcm92
aWRlIG1vcmUgYWNjdXJhdGUgY29ycmVjdGlvbiBzdWdnZXN0aW9ucy4gQ2FsbGVyIGNhbiBwYXNz
IGluIG1vcmUgdGV4dCBpbiAiY29udGV4dCIgdG8gYWlkIHN1Y2ggc3BlbGxjaGVja2VycyBvbiBs
YW5ndWFnZQogICAgIC8vIGlkZW50aWZpY2F0aW9uLiBOb3JhbWxseSBpdCdzIHRoZSB0ZXh0IHN1
cnJvdW5kaW5nIHRoZSAid29yZCIgZm9yIHdoaWNoIHdlIGFyZSBnZXR0aW5nIGNvcnJlY3Rpb24g
c3VnZ2VzdGlvbnMuCiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0
cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nl
cykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENo
ZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGNv
bnN0IFRleHRDaGVja1JlcXVlc3QmKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaAppbmRleCA5NjdlYWM1YjM2NTNiZmRiYjFiMTFmOGQ0
NmI0M2ViYTljNTIyODEwLi5hNjViZjJlMTE1ZGI5ZTNlNGFiYWU3YmYxYzAzNDJjOWI3N2Y3MGZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmgKQEAgLTMx
LDYgKzMxLDggQEAKICNpZm5kZWYgVGV4dENoZWNraW5nX2gKICNkZWZpbmUgVGV4dENoZWNraW5n
X2gKIAorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICNkZWZpbmUgV1RGX1VTRV9HUkFNTUFSX0NIRUNLSU5HIDEKQEAgLTYxLDYgKzYzLDM0
IEBAIGVudW0gVGV4dENoZWNraW5nVHlwZSB7CiAKIHR5cGVkZWYgdW5zaWduZWQgVGV4dENoZWNr
aW5nVHlwZU1hc2s7CiAKK2VudW0gVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgeworICAgIFRleHRD
aGVja2luZ1Byb2Nlc3NCYXRjaCwKKyAgICBUZXh0Q2hlY2tpbmdQcm9jZXNzSW5jcmVtZW50YWwK
K307CisKK2NsYXNzIFRleHRDaGVja1JlcXVlc3QgeworcHVibGljOgorICAgIFRleHRDaGVja1Jl
cXVlc3QoaW50IHNlcXVlbmNlLCBTdHJpbmcgdGV4dCwgVGV4dENoZWNraW5nVHlwZU1hc2sgbWFz
aywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUpCisgICAgICAgIDogbV9zZXF1
ZW5jZShzZXF1ZW5jZSkKKyAgICAgICAgLCBtX3RleHQodGV4dCkKKyAgICAgICAgLCBtX21hc2so
bWFzaykKKyAgICAgICAgLCBtX3Byb2Nlc3NUeXBlKHByb2Nlc3NUeXBlKQorICAgIHsKKyAgICB9
CisKKyAgICB2b2lkIHNldFNlcXVlbmNlKGludCBzZXF1ZW5jZSkgeyBtX3NlcXVlbmNlID0gc2Vx
dWVuY2U7IH0KKyAgICBpbnQgc2VxdWVuY2UoKSBjb25zdCB7IHJldHVybiBtX3NlcXVlbmNlOyB9
CisgICAgU3RyaW5nIHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KKyAgICBUZXh0Q2hl
Y2tpbmdUeXBlTWFzayBtYXNrKCkgY29uc3QgeyByZXR1cm4gbV9tYXNrOyB9CisgICAgVGV4dENo
ZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NU
eXBlOyB9CisKK3ByaXZhdGU6CisgICAgaW50IG1fc2VxdWVuY2U7CisgICAgU3RyaW5nIG1fdGV4
dDsKKyAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtX21hc2s7CisgICAgVGV4dENoZWNraW5nUHJv
Y2Vzc1R5cGUgbV9wcm9jZXNzVHlwZTsKK307CisKIH0KIAogI2VuZGlmIC8vIFRleHRDaGVja2lu
Z19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggZDNjMzdlZTk0NGM0
YjdkODdjZjUyMjdlZTU5NGUxMGZkODZjNTE3ZS4uYjVhZGExOTYyMWRiNWJlMDYzMzU5YTJmMDFl
NDA4M2VlZGJmYjIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAt
NTU4LDcgKzU1OCw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6Y2hlY2tHcmFtbWFy
T2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQsIFdURjo6VmVjdG9yCiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBT
dHJpbmcmKQordm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhTcGVsbENoZWNrZXIqLCBjb25zdCBUZXh0Q2hlY2tSZXF1ZXN0JikKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggYmZm
YTg4MTgwNmQ2NDcxMTA0YjkyMWQ4ZDFlODc2ZjQ3Y2U0ZTU2NS4uZDFhZTI3NGZiYzg1YjhhY2Y3
N2M0YmVmOTBlYTY3Mjg5YjkyZDVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5o
CkBAIC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRBdXRvQ29y
cmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmIG1pc3NwZWxsZWRX
b3JkKTsKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIq
LCBpbnQsIFZlY3RvcjxHcmFtbWFyRGV0YWlsLCAwdT4mLCBpbnQqLCBpbnQqKTsKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwg
VmVjdG9yPFN0cmluZz4mKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcoU3BlbGxDaGVja2VyKiwgaW50LCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgU3RyaW5n
Jik7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tl
ciosIGNvbnN0IFRleHRDaGVja1JlcXVlc3QmKTsKIAogICAgIHZpcnR1YWwgVGV4dENoZWNrZXJD
bGllbnQqIHRleHRDaGVja2VyKCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlX
aXRoR3JhbW1hclN0cmluZyhjb25zdCBTdHJpbmcmLCBjb25zdCBHcmFtbWFyRGV0YWlsJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCmluZGV4
IDAzM2Q0NmQ1OGMyZjc5NTQ3OWUwYTA0MjllMzZkZjkxNzNkZDVlOTYuLjNiOWFkYzk4YWIxNTBi
ZWJmYzFjNWRjOGJhMGJjN2UyZDNlMDlkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCkBAIC03MjksMTAgKzcyOSwxMCBAQCB2b2lkIEVk
aXRvckNsaWVudEltcGw6OmNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25zdCBVQ2hhciogdGV4dCwg
aW50IGxlbmd0aCwKICAgICAgICAgKm1pc3NwZWxsaW5nTGVuZ3RoID0gc3BlbGxMZW5ndGg7CiB9
CiAKLXZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxD
aGVja2VyKiBzZW5kZXIsIGludCBpZGVudGlmaWVyLCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29u
c3QgU3RyaW5nJiB0ZXh0KQordm9pZCBFZGl0b3JDbGllbnRJbXBsOjpyZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhTcGVsbENoZWNrZXIqIHNlbmRlciwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNrUmVx
dWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAobV93ZWJWaWV3LT5zcGVsbENoZWNrQ2xpZW50KCkp
Ci0gICAgICAgIG1fd2ViVmlldy0+c3BlbGxDaGVja0NsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdP
ZlRleHQodGV4dCwgbmV3IFdlYlRleHRDaGVja2luZ0NvbXBsZXRpb25JbXBsKGlkZW50aWZpZXIs
IHNlbmRlcikpOworICAgICAgICBtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGllbnQoKS0+cmVxdWVz
dENoZWNraW5nT2ZUZXh0KHJlcXVlc3QudGV4dCgpLCBuZXcgV2ViVGV4dENoZWNraW5nQ29tcGxl
dGlvbkltcGwocmVxdWVzdC5zZXF1ZW5jZSgpLCBzZW5kZXIpKTsKIH0KIAogU3RyaW5nIEVkaXRv
ckNsaWVudEltcGw6OmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNv
bnN0IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9FZGl0b3JDbGllbnRJbXBsLmgKaW5kZXggOTk5ODYwYTAyNzI2OTQzMzYzMzA1MzQ2M2M0MjJi
Y2RhZTg5MGNkNy4uNDdiMTdkMGQ4OWZmM2JlYWUwMmFlZWEwN2JkMzgwZDhjOWUwY2QwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaApAQCAtMTA5
LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQo
Y29uc3QgV1RGOjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6
OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0
SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRl
KGJvb2wgZW5hYmxlZCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1h
c2ssIGNvbnN0IFdURjo6U3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVj
a1JlcXVlc3QmKTsKIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQqIHRl
eHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCAyMTcwNGQ5N2UwMTJjOTFjYWUwZTQ3OThmMzE0Y2Vi
NzI4Yjc3OTM1Li5hZGYyMDIzNzEwNTY5M2FlMTFhN2MyMTBlODA5ZmIzYjdjN2YyNzM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTEzMDEsNyAr
MTMwMSw3IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpyZXF1ZXN0VGV4dENoZWNraW5nKGNvbnN0IFdl
YkVsZW1lbnQmIHdlYkVsZW0pCiAKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlVG9DaGVjayA9IHJh
bmdlT2ZDb250ZW50cyhjb25zdF9jYXN0PEVsZW1lbnQqPih3ZWJFbGVtLmNvbnN0VW53cmFwPEVs
ZW1lbnQ+KCkpKTsKIAotICAgIGZyYW1lKCktPmVkaXRvcigpLT5zcGVsbENoZWNrZXIoKS0+cmVx
dWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlw
ZVNwZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIsIHJhbmdlVG9DaGVjaywgcmFuZ2VU
b0NoZWNrKSk7CisgICAgZnJhbWUoKS0+ZWRpdG9yKCktPnNwZWxsQ2hlY2tlcigpLT5yZXF1ZXN0
Q2hlY2tpbmdGb3IoU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlU3Bl
bGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciwgVGV4dENoZWNraW5nUHJvY2Vzc0JhdGNo
LCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVjaykpOwogfQogCiBib29sIFdlYkZyYW1lSW1wbDo6
aGFzU2VsZWN0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5oCmluZGV4IGU1MzkwYmNjOTczOTQ3N2Ey
NzYwNDc5YzZlNDExMjM4Mjg1ZTEwZTYuLjZjNTA3NjE2ZTBjOTY4Y2Q3YTRjZmY1ZGEyMjkyMTQy
MTU0OTAxMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1Rl
eHRDaGVja2VyQ2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvVGV4dENoZWNrZXJDbGllbnRHdGsuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBUZXh0Q2hl
Y2tlckNsaWVudEd0ayA6IHB1YmxpYyBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCB7CiAgICAg
ICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3Bl
bGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNoZWNr
R3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgV1RGOjpWZWN0b3I8V2Vi
Q29yZTo6R3JhbW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRH
cmFtbWFyTGVuZ3RoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNv
bnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4dCwgV1RGOjpW
ZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6
VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJikge30KKyAgICAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGNvbnN0IFRl
eHRDaGVja1JlcXVlc3QmKSB7IH0KIAogICAgICAgICB2b2lkIHVwZGF0ZVNwZWxsQ2hlY2tpbmdM
YW5ndWFnZShjb25zdCBjaGFyKik7CiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNWE5YjkxNzBiNWQ2
MjA3MWRmNDgxY2MzMjk0MGRhNzJmYjUxYWExYy4uMWFiNWQ2OGZmMzNjNzYwNDQ0MjE1M2I4MTk0
NzM5YjA3NGMyZDhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTEzNSw3ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25z
dCBXVEY6OlN0cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2Vz
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJs
ZWQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhX
ZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNr
LCBjb25zdCBXVEY6OlN0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBjb25zdCBUZXh0Q2hlY2tSZXF1ZXN0Jikg
T1ZFUlJJREU7CiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlv
blBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncykgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6UmVhc29u
Rm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggZjFjNTUx
MGJmMTEwMmM4ZWY4YWZlMzllMzA5YTgyNDlhMTdlMDU2Yy4uZDY3YWMzMmJmNDIyZDcwODIyMDRj
M2VkNmNmNTI4NzFhNGZkNDc3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtOTcyLDE1ICs5NzIsMTUgQEAgdm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKIEBlbmQKICNlbmRpZgog
Ci12b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6
U3BlbGxDaGVja2VyKiBzZW5kZXIsIGludCBzZXF1ZW5jZSwgV2ViQ29yZTo6VGV4dENoZWNraW5n
VHlwZU1hc2sgY2hlY2tpbmdUeXBlcywgY29uc3QgU3RyaW5nJiB0ZXh0KQordm9pZCBXZWJFZGl0
b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciog
c2VuZGVyLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tSZXF1ZXN0JiByZXF1ZXN0KQogewogI2lm
bmRlZiBCVUlMRElOR19PTl9MRU9QQVJECi0gICAgTlNSYW5nZSByYW5nZSA9IE5TTWFrZVJhbmdl
KDAsIHRleHQubGVuZ3RoKCkpOworICAgIE5TUmFuZ2UgcmFuZ2UgPSBOU01ha2VSYW5nZSgwLCBy
ZXF1ZXN0LnRleHQoKS5sZW5ndGgoKSk7CiAgICAgTlNSdW5Mb29wKiBjdXJyZW50TG9vcCA9IFtO
U1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdOwotICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3Bl
bGxDaGVja2VyXSByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzp0ZXh0IHJhbmdlOnJhbmdlIHR5cGVz
Ok5TVGV4dENoZWNraW5nQWxsU3lzdGVtVHlwZXMgb3B0aW9uczowIGluU3BlbGxEb2N1bWVudFdp
dGhUYWc6MCAKKyAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVxdWVz
dENoZWNraW5nT2ZTdHJpbmc6cmVxdWVzdC50ZXh0KCkgcmFuZ2U6cmFuZ2UgdHlwZXM6TlNUZXh0
Q2hlY2tpbmdBbGxTeXN0ZW1UeXBlcyBvcHRpb25zOjAgaW5TcGVsbERvY3VtZW50V2l0aFRhZzow
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyOl4oTlNJbnRlZ2VyLCBOU0FycmF5KiByZXN1bHRzLCBOU09ydGhvZ3JhcGh5KiwgTlNJbnRl
Z2VyKSB7CiAgICAgICAgICAgICBbY3VycmVudExvb3AgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3Rv
cihwZXJmb3JtKSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6W1tb
V2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciBhbGxvY10gaW5pdFdpdGhTZW5kZXI6c2VuZGVy
IHNlcXVlbmNlOnNlcXVlbmNlIHR5cGVzOmNoZWNraW5nVHlwZXMgcmVzdWx0czpyZXN1bHRzXSBh
dXRvcmVsZWFzZV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6W1tb
V2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciBhbGxvY10gaW5pdFdpdGhTZW5kZXI6c2VuZGVy
IHNlcXVlbmNlOnJlcXVlc3Quc2VxdWVuY2UoKSB0eXBlczpyZXF1ZXN0Lm1hc2soKSByZXN1bHRz
OnJlc3VsdHNdIGF1dG9yZWxlYXNlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
cmd1bWVudDpuaWwgb3JkZXI6MCBtb2RlczpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6TlNEZWZh
dWx0UnVuTG9vcE1vZGVdXTsKICAgICAgICAgfV07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRRdC5oIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudFF0LmgKaW5kZXggZTc4
Y2UxZDEwYzA1ZDIzNWE2YTU0YjNiYmJlYTdlZWE5YWNlODQ4My4uY2M0ZGYwYTIxNmZmZjNiYjhh
YThlZDZiYmRkZDc4MTgyMDM3NWQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudFF0LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3Nw
ZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpOwogICAgIHZpcnR1YWwgdm9p
ZCBjaGVja0dyYW1tYXJPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCBsZW5ndGgsIFZlY3RvcjxH
cmFtbWFyRGV0YWlsPiYsIGludCogYmFkR3JhbW1hckxvY2F0aW9uLCBpbnQqIGJhZEdyYW1tYXJM
ZW5ndGgpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcm
IHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpOwot
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBp
bnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgY29uc3QgVGV4dENo
ZWNrUmVxdWVzdCYpIHsgfQogCiAgICAgdmlydHVhbCBib29sIGlzQ29udGlub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ29udGlub3VzU3BlbGxDaGVj
a2luZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaAppbmRleCAyOGE5MTA1ZWZiNjRlZTgxNTVhZDBkZTk3MmYxYzhmN2ExNTk5MzJh
Li40YjQyMWNhNzE3Y2E5ZjQxMDA1Y2FiYzlhMGE2YzAwYzA0ZDY3YzY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTEw
LDcgKzExMCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRo
b2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpOwot
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENo
ZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0
cmluZyYpIHt9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNv
cmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja1JlcXVlc3QmKSB7IH0K
KwogICAgIHZpcnR1YWwgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkg
eyByZXR1cm4gdGhpczsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oIGIvU291cmNlL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCmluZGV4IGMyOTUyNGUxYTI2
ZjQwYzNkZDAwNGEyMmEyNjcxMmY2MGU2ZDVjNDkuLjI4MjZhNjFiNjZkMGQ5YjI3OTUzZjgxMjIw
NDQzM2YyMGIzNjAzMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3
b3JkLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+
JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKTsKLSAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50
LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQor
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENo
ZWNrZXIqLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tSZXF1ZXN0JikgeyB9CiAgICAgdmlydHVh
bCBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlz
OyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggMTllZjdkYzRmMjNh
MzIwM2M3Zjk4ZjE1OTU1MTM5NWUwNDNhNGEwNy4uMDhkOGFjOTZjOWU5N2NmYjFiMjRkZTY3Y2M1
OGQxMjgyN2NhYTU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtNDQ3LDcgKzQ0Nyw3
IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpCiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENo
ZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJikKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50
OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBjb25zdCBX
ZWJDb3JlOjpUZXh0Q2hlY2tSZXF1ZXN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggMjYwMDIwZmYyNmRlZGQxNzAxNWVlNmFiYTRiMjJkMDI5
ZTMzODA4OS4uZjNiZmIwMWQ1NGE5NDg4NDEzYTA1YzkzYTBjOTE3NWE4MDgxOTgxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCkBAIC0xNDEsNyArMTQxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcm
IGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBp
bnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0cmluZyYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3Jl
OjpTcGVsbENoZWNrZXIqLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tSZXF1ZXN0JikgT1ZFUlJJ
REU7CiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVj
dGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5k
aW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29u
c3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVy
bmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlz
bWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlv
blBhbmVsKSBPVkVSUklERTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128415</attachid>
            <date>2012-02-23 00:00:43 -0800</date>
            <delta_ts>2012-02-23 00:08:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79320-20120223170041.patch</filename>
            <type>text/plain</type>
            <size>31280</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTljNGI5ODMwMmI1MDRk
NGFlZDdjMzE5MmQ0MDYyZjVmNjFlOTc0ZC4uMmE1ZTM1NWNmODk1MmJiY2M5ZDlkYTFmMWZlZThi
MGZlZjYzZjc5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTAyLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNr
UmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhh
cHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZWJLaXQgY2xpZW50cyBzaG91bGQgYmUgYWJsZSB0byBnZXQgdGhlIGNvbnRleHQgaG93IHRoZSBz
cGVsbGNoZWNrIGhhcHBlbmRlZC4KKyAgICAgICAgRm9yIGV4YW1wbGUsIFdlYktpdCBjbGllbnRz
IG1heSB3YW50IHRvIGNoYW5nZSB0aGUgYmVoYXZpb3IgYnkgYSBzcGVsbGNoZWNrIHJlcXVlc3Qg
aXMKKyAgICAgICAgaW52b2tlZCBpbiB0eXBpbmcgb3IgaW4gcGFzdGluZy4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZGVkIGFuIGVudW0gaW4gU3BlbGxDaGVja1JlcXVlc3Qgc28gdGhhdCBXZWJL
aXQgY2xpZW50cyBjYW4gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4KKworICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVwbGFjZVNlbGVjdGlv
bldpdGhGcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Om1hcmtBbGxNaXNzcGVs
bGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXMpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVj
a2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0OjpTcGVsbENoZWNr
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aW52b2tlUmVxdWVzdCk6CisgICAgICAg
ICogZWRpdGluZy9TcGVsbENoZWNrZXIuaDoKKyAgICAgICAgKFNwZWxsQ2hlY2tSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0Ojp0ZXh0Q2hlY2tSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0Ojpwcm9jZXNzVHlwZSk6CisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlUZXh0
Q2hlY2tlckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoVGV4dENoZWNrZXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENoZWNr
aW5nLmg6CisgICAgICAgIChUZXh0Q2hlY2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRDaGVja1JlcXVlc3Q6OlRleHRDaGVja1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dENoZWNrUmVxdWVzdDo6c2V0U2VxdWVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNr
UmVxdWVzdDo6c2VxdWVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNrUmVxdWVzdDo6
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tSZXF1ZXN0OjptYXNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRDaGVja1JlcXVlc3Q6OnByb2Nlc3NUeXBlKToKKyAgICAgICAgKFdl
YkNvcmUpOgorCiAyMDEyLTAyLTIyICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBFbmFibGUgR2VvbG9jYXRpb24gYmluZGluZ3MgZm9yIEdPYmplY3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IGRiOGI0MTBjODcxMmNjNWZhZjZiOWJhYmNm
ZTgzOTc4N2ZkYmVlYzkuLjE0ZTk2ODUzNTg1N2Q0ZWZkNWMyZTM0NTBiNGMxZjE4NTQ1NjBiNWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAy
LTIyICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBT
cGVsbENoZWNrUmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVs
bGNoZWNrIGhhcHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6cmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnku
aDoKKyAgICAgICAgKEVkaXRvckNsaWVudEJsYWNrQmVycnkpOgorCiAyMDEyLTAyLTIxICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB0aGUgcmVtYWlu
aW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggZDIwYmFkZjQwNDU5NWNkZDY2MjliNDYzMzJmZjFkNmM1NThkNTk5OC4u
MmQ1OTFkYjIzYmYxNTk2MzlkOGIxNjA2Yzk3OGNkMGFhZWJjMDY4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMi0yMiAgU2hpbnlhIEthd2FuYWth
ICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlbGxDaGVja1JlcXVlc3QgbmVl
ZHMgdG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBwZW5lZC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzIwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvRWRpdG9y
Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgor
ICAgICAgICAoRWRpdG9yQ2xpZW50SW1wbCk6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6cmVxdWVzdFRleHRDaGVja2luZyk6
CisKIDIwMTItMDItMjIgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBBZGQgdW5pdCB0ZXN0IGZvciBzdXJmYWNlIG9jY2x1c2lvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCmluZGV4IGFhNjI5NzAyN2Q4OGU3YjRkODdjMDM1OTAwZTNhNmE4Y2NiYjM0ODUu
LmQ5OTQzZWQxZGU2NzJlZDlmMTBlOGVlOTIxOGIxMjg1N2VjY2ZjN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0yMiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlh
a0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlbGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25v
dyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0
Q2hlY2tlckNsaWVudEd0ay5oOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlckNsaWVudEd0
azo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMg
b2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBlZTJm
ZGI3YzlkM2NjZTIzYjZlNGE1MmRkNGM5YTczY2JhNjNhYmIyLi43N2Y2NmEwMDEyNmU2ZGUyOWIy
YTY0MDMzMjQyZTU4NTA2MTg5MzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDItMjIgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFNwZWxsQ2hlY2tSZXF1ZXN0IG5lZWRzIHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUg
dGhlIHNwZWxsY2hlY2sgaGFwcGVuZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03OTMyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRp
dG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTItMDItMjEgIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHRoZSByZW1haW5p
bmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGluIEVkaXRvcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRl
eCBkYTVlYjg3N2U0ZjZiNzk3YzQwMzFkZmVkMGQzMWRjYWNlYzgyOTFiLi41NzM5NzdjMjI2YjFm
Zjk2M2ZhODYxNGMxYmFkNmIxMjUzZmYyNjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDEyLTAyLTIyICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4K
KworICAgICAgICBTcGVsbENoZWNrUmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdo
ZXJlIHRoZSBzcGVsbGNoZWNrIGhhcHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50UXQ6OnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKToKKwogMjAxMi0wMi0yMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZW1vdmUgdGhlIHJlbWFpbmluZyB1c2VzIG9mIENTU1N0eWxlRGVjbGFy
YXRpb24gaW4gRWRpdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggODYyYTljMzZiOGRlYzkwOTM3ZjNk
YzVkMGE3YWIwYmVlOWI1MmVkNS4uOWUyZGQxNjM5NjdlZWNiODkzNWJlMTIxOTJkM2IzYWVmYWNj
YzZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAyLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNr
UmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhh
cHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAoV2ViRWRpdG9yQ2xp
ZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQp
OgorCiAyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBF
ZGl0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggODAyYTRlYzhiZDBjODljZDI2ODk0ZmIyNjFl
NzlmNWUyMGM2NDc1YS4uMTg5ZTM1MmZlODJjMzE4NDQwMzY0M2Y4NDU2NDE1M2Q0YWQ0NjVmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0yMiAgU2hpbnlh
IEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlbGxDaGVja1Jl
cXVlc3QgbmVlZHMgdG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBw
ZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5
MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oOgorICAgICAgICAoV2ViS2l0OjpFZGl0
b3JDbGllbnRXaW5DRTo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEyLTAyLTIxICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB0aGUgcmVt
YWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA1YWEyMDZmMThmMzgzMThjNzUxZmRmNDFmMGIyNGFmZjkyZmZlYjk5Li5hM2E4ZGEzMGRkNzNj
ZTFiMzJiNjUyZWEzYzZjYTRmNmM5ZWJiNjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDItMjIgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFNwZWxsQ2hlY2tSZXF1ZXN0IG5lZWRzIHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUg
dGhlIHNwZWxsY2hlY2sgaGFwcGVuZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03OTMyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oOgorCiAyMDEyLTAyLTIyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
UHJveHk6OmRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKaW5kZXggMTNiYjdlNzVmN2NjOTU1ODdkMThjNDQyMDVmYTY3ODhjODUxMWM1Yy4uMWNlMjRl
NTM4ZDQzNTdmMWUzZTJkYmE4MGM0NGI0YTU4NGMyYTA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcApAQCAtNDE4LDcgKzQxOCw3IEBAIHZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9u
V2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsCiAgICAg
ICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2VUb0NoZWNrID0gUmFuZ2U6OmNy
ZWF0ZShtX2ZyYW1lLT5kb2N1bWVudCgpLCBmaXJzdFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0NoZWNr
KSwgbGFzdFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0NoZWNrKSk7Ci0gICAgbV9zcGVsbENoZWNrZXIt
PnJlcXVlc3RDaGVja2luZ0ZvcihTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKHJlc29sdmVUZXh0
Q2hlY2tpbmdUeXBlTWFzayhUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdU
eXBlR3JhbW1hciksIHJhbmdlVG9DaGVjaywgcmFuZ2VUb0NoZWNrKSk7CisgICAgbV9zcGVsbENo
ZWNrZXItPnJlcXVlc3RDaGVja2luZ0ZvcihTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKHJlc29s
dmVUZXh0Q2hlY2tpbmdUeXBlTWFzayhUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hl
Y2tpbmdUeXBlR3JhbW1hciksIFRleHRDaGVja2luZ1Byb2Nlc3NCYXRjaCwgcmFuZ2VUb0NoZWNr
LCByYW5nZVRvQ2hlY2spKTsKIH0KIAogdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRo
VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21h
cnRSZXBsYWNlKQpAQCAtMTkzNSw3ICsxOTM1LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbGxNaXNz
cGVsbGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXMoVGV4dENoZWNraW5nVHlwZU1hc2sgdGV4dEMK
ICAgICBib29sIGFzeW5jaHJvbm91cyA9IG1fZnJhbWUgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKSAm
JiBtX2ZyYW1lLT5zZXR0aW5ncygpLT5hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgp
ICYmICFzaG91bGRTaG93Q29ycmVjdGlvblBhbmVsOwogCiAgICAgLy8gSW4gYXN5bmNocm9ub3Vz
IG1vZGUsIHdlIGludGVudGlvbmFsbHkgY2hlY2sgcGFyYWdyYXBoLXdpZGUgc2VudGVuY2UuCi0g
ICAgUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0ID0gU3BlbGxDaGVja1JlcXVlc3Q6
OmNyZWF0ZShyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2sodGV4dENoZWNraW5nT3B0aW9ucyks
IGFzeW5jaHJvbm91cyA/IHBhcmFncmFwaFJhbmdlIDogcmFuZ2VUb0NoZWNrLCBwYXJhZ3JhcGhS
YW5nZSk7CisgICAgUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0ID0gU3BlbGxDaGVj
a1JlcXVlc3Q6OmNyZWF0ZShyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2sodGV4dENoZWNraW5n
T3B0aW9ucyksIFRleHRDaGVja2luZ1Byb2Nlc3NJbmNyZW1lbnRhbCwgYXN5bmNocm9ub3VzID8g
cGFyYWdyYXBoUmFuZ2UgOiByYW5nZVRvQ2hlY2ssIHBhcmFncmFwaFJhbmdlKTsKIAogICAgIGlm
IChhc3luY2hyb25vdXMpIHsKICAgICAgICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2lu
Z0ZvcihyZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxD
aGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcAppbmRl
eCA2ODM2NDRjNmQwMTVlYzkyOWY1MmY4NTlkMzM2ZGI3ZTgyZjEyYzk1Li5iYTYwMjliNzU5NDcy
ZTA1NTBkZDY3YmFiNDFjMTYyYTgzM2RhMGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVs
bENoZWNrZXIuY3BwCkBAIC00NywxMiArNDcsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dGF0aWMgY29uc3QgaW50IHVucmVxdWVzdGVkU2VxdWVuY2UgPSAtMTsKIAotU3BlbGxDaGVja1Jl
cXVlc3Q6OlNwZWxsQ2hlY2tSZXF1ZXN0KGludCBzZXF1ZW5jZSwgUGFzc1JlZlB0cjxSYW5nZT4g
Y2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UsIGNvbnN0IFN0
cmluZyYgdGV4dCwgVGV4dENoZWNraW5nVHlwZU1hc2sgbWFzaykKK1NwZWxsQ2hlY2tSZXF1ZXN0
OjpTcGVsbENoZWNrUmVxdWVzdChpbnQgc2VxdWVuY2UsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNr
aW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlLCBjb25zdCBTdHJpbmcm
IHRleHQsIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBl
IHByb2Nlc3NUeXBlKQogICAgIDogbV9zZXF1ZW5jZShzZXF1ZW5jZSkKLSAgICAsIG1fY2hlY2tp
bmdSYW5nZShjaGVja2luZ1JhbmdlKQotICAgICwgbV9wYXJhZ3JhcGhSYW5nZShwYXJhZ3JhcGhS
YW5nZSkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV9tYXNrKG1hc2spCisgICAgLCBtX3By
b2Nlc3NUeXBlKHByb2Nlc3NUeXBlKQorICAgICwgbV9jaGVja2luZ1JhbmdlKGNoZWNraW5nUmFu
Z2UpCisgICAgLCBtX3BhcmFncmFwaFJhbmdlKHBhcmFncmFwaFJhbmdlKQogICAgICwgbV9yb290
RWRpdGFibGVFbGVtZW50KG1fY2hlY2tpbmdSYW5nZS0+c3RhcnRDb250YWluZXIoKS0+cm9vdEVk
aXRhYmxlRWxlbWVudCgpKQogewogfQpAQCAtNjIsNyArNjMsNyBAQCBTcGVsbENoZWNrUmVxdWVz
dDo6flNwZWxsQ2hlY2tSZXF1ZXN0KCkKIH0KIAogLy8gc3RhdGljCi1QYXNzUmVmUHRyPFNwZWxs
Q2hlY2tSZXF1ZXN0PiBTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKFRleHRDaGVja2luZ1R5cGVN
YXNrIHRleHRDaGVja2luZ09wdGlvbnMsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2Us
IFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKQorUGFzc1JlZlB0cjxTcGVsbENoZWNr
UmVxdWVzdD4gU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlTWFzayB0
ZXh0Q2hlY2tpbmdPcHRpb25zLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSwg
UGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdy
YXBoUmFuZ2UpCiB7CiAgICAgQVNTRVJUKGNoZWNraW5nUmFuZ2UpOwogICAgIEFTU0VSVChwYXJh
Z3JhcGhSYW5nZSk7CkBAIC03MSw3ICs3Miw3IEBAIFBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVl
c3Q+IFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlwZU1hc2sgdGV4CiAg
ICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxTcGVsbENo
ZWNrUmVxdWVzdD4oKTsKIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlbGxDaGVja1JlcXVl
c3QodW5yZXF1ZXN0ZWRTZXF1ZW5jZSwgY2hlY2tpbmdSYW5nZSwgcGFyYWdyYXBoUmFuZ2UsIHRl
eHQsIHRleHRDaGVja2luZ09wdGlvbnMpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWxs
Q2hlY2tSZXF1ZXN0KHVucmVxdWVzdGVkU2VxdWVuY2UsIGNoZWNraW5nUmFuZ2UsIHBhcmFncmFw
aFJhbmdlLCB0ZXh0LCB0ZXh0Q2hlY2tpbmdPcHRpb25zLCBwcm9jZXNzVHlwZSkpOwogfQogCiAK
QEAgLTE0NSw3ICsxNDYsNyBAQCB2b2lkIFNwZWxsQ2hlY2tlcjo6aW52b2tlUmVxdWVzdChQYXNz
UmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0KQogICAgIEFTU0VSVCghbV9wcm9jZXNz
aW5nUmVxdWVzdCk7CiAKICAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0ID0gcmVxdWVzdDsKLSAgICBj
bGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcodGhpcywgbV9wcm9jZXNzaW5nUmVxdWVz
dC0+c2VxdWVuY2UoKSwgbV9wcm9jZXNzaW5nUmVxdWVzdC0+bWFzaygpLCBtX3Byb2Nlc3NpbmdS
ZXF1ZXN0LT50ZXh0KCkpOworICAgIGNsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyh0
aGlzLCByZXF1ZXN0LT50ZXh0Q2hlY2tSZXF1ZXN0KCkpOwogfQogCiB2b2lkIFNwZWxsQ2hlY2tl
cjo6ZW5xdWV1ZVJlcXVlc3QoUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gcmVxdWVzdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCmluZGV4IDIwMzA2ZGExYTU5MzZlMmZm
NTRmOWJlMmIyYWYzZjI1ZTk4NzAyNWIuLmU4ZDYwMzVhNmU4NTZlNDM5NTA5NTI0NjEwMDk2OTc1
YzAwNmRlMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApAQCAtNDYsMTAg
KzQ2LDEyIEBAIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CiAKIGNsYXNzIFNwZWxsQ2hlY2tS
ZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlbGxDaGVja1JlcXVlc3Q+IHsKIHB1YmxpYzoK
LSAgICBTcGVsbENoZWNrUmVxdWVzdChpbnQgc2VxdWVuY2UsIFBhc3NSZWZQdHI8UmFuZ2U+IGNo
ZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlLCBjb25zdCBTdHJp
bmcmLCBUZXh0Q2hlY2tpbmdUeXBlTWFzayk7CisgICAgU3BlbGxDaGVja1JlcXVlc3QoaW50IHNl
cXVlbmNlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdl
PiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3RyaW5nJiwgVGV4dENoZWNraW5nVHlwZU1hc2ssIFRl
eHRDaGVja2luZ1Byb2Nlc3NUeXBlKTsKICAgICB+U3BlbGxDaGVja1JlcXVlc3QoKTsKIAotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBjcmVhdGUoVGV4dENoZWNraW5n
VHlwZU1hc2ssIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFu
Z2U+IHBhcmFncmFwaFJhbmdlKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVx
dWVzdD4gY3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlw
ZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFy
YWdyYXBoUmFuZ2UpOworCisgICAgVGV4dENoZWNrUmVxdWVzdCB0ZXh0Q2hlY2tSZXF1ZXN0KCkg
Y29uc3Q7CiAKICAgICB2b2lkIHNldFNlcXVlbmNlKGludCBzZXF1ZW5jZSkgeyBtX3NlcXVlbmNl
ID0gc2VxdWVuY2U7IH0KICAgICBpbnQgc2VxdWVuY2UoKSBjb25zdCB7IHJldHVybiBtX3NlcXVl
bmNlOyB9CkBAIC01NywxNCArNTksMTUgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UmFuZ2U+
IHBhcmFncmFwaFJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhZ3JhcGhSYW5nZTsgfQogICAg
IGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQogICAgIFRleHRD
aGVja2luZ1R5cGVNYXNrIG1hc2soKSBjb25zdCB7IHJldHVybiBtX21hc2s7IH0KKyAgICBUZXh0
Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vz
c1R5cGU7IH0KICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IHJvb3RFZGl0YWJsZUVsZW1lbnQoKSBj
b25zdCB7IHJldHVybiBtX3Jvb3RFZGl0YWJsZUVsZW1lbnQ7IH0KIHByaXZhdGU6Ci0KICAgICBp
bnQgbV9zZXF1ZW5jZTsKLSAgICBSZWZQdHI8UmFuZ2U+IG1fY2hlY2tpbmdSYW5nZTsKLSAgICBS
ZWZQdHI8UmFuZ2U+IG1fcGFyYWdyYXBoUmFuZ2U7CiAgICAgU3RyaW5nIG1fdGV4dDsKICAgICBU
ZXh0Q2hlY2tpbmdUeXBlTWFzayBtX21hc2s7CisgICAgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUg
bV9wcm9jZXNzVHlwZTsKKyAgICBSZWZQdHI8UmFuZ2U+IG1fY2hlY2tpbmdSYW5nZTsKKyAgICBS
ZWZQdHI8UmFuZ2U+IG1fcGFyYWdyYXBoUmFuZ2U7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fcm9v
dEVkaXRhYmxlRWxlbWVudDsKIH07CiAKQEAgLTEwOSw2ICsxMTIsMTEgQEAgcHJpdmF0ZToKICAg
ICBSZXF1ZXN0UXVldWUgbV9yZXF1ZXN0UXVldWU7CiB9OwogCitpbmxpbmUgVGV4dENoZWNrUmVx
dWVzdCBTcGVsbENoZWNrUmVxdWVzdDo6dGV4dENoZWNrUmVxdWVzdCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIFRleHRDaGVja1JlcXVlc3QobV9zZXF1ZW5jZSwgbV90ZXh0LCBtX21hc2ssIG1fcHJv
Y2Vzc1R5cGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTcGVs
bENoZWNrZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDIzNTJjMjg3
NmQyMTgxMzRkMGJlYTY0MjU0NzgxYmU4MWU2NjAwZTguLmZhY2YzY2MyYTU2OTVmZTE0MTE2YmQ5
MTI5NWEyMzQ3OTlkZjhmNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAg
LTQzMiw3ICs0MzIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5n
PiYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENo
ZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgY29u
c3QgVGV4dENoZWNrUmVxdWVzdCYpIHsgfQogfTsKIAogY2xhc3MgRW1wdHlFZGl0b3JDbGllbnQg
OiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dENoZWNrZXJDbGllbnQuaAppbmRleCBkMTZhZGUxNjQ2MGFkNzBmMzdlYjllOGQ0MTRk
ZjYxZjY3Y2ZjOGQzLi41NmRjODNjOGZhYmFmOGU1M2Y3NjYxM2U3ODIwYjc0YjkyMmMzNGJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5o
CkBAIC0zNyw2ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNwZWxsQ2hl
Y2tlcjsKK2NsYXNzIFRleHRDaGVja1JlcXVlc3Q7CiAKIHN0cnVjdCBHcmFtbWFyRGV0YWlsIHsK
ICAgICBpbnQgbG9jYXRpb247CkBAIC03MSw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICAvLyBwcm92
aWRlIG1vcmUgYWNjdXJhdGUgY29ycmVjdGlvbiBzdWdnZXN0aW9ucy4gQ2FsbGVyIGNhbiBwYXNz
IGluIG1vcmUgdGV4dCBpbiAiY29udGV4dCIgdG8gYWlkIHN1Y2ggc3BlbGxjaGVja2VycyBvbiBs
YW5ndWFnZQogICAgIC8vIGlkZW50aWZpY2F0aW9uLiBOb3JhbWxseSBpdCdzIHRoZSB0ZXh0IHN1
cnJvdW5kaW5nIHRoZSAid29yZCIgZm9yIHdoaWNoIHdlIGFyZSBnZXR0aW5nIGNvcnJlY3Rpb24g
c3VnZ2VzdGlvbnMuCiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0
cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nl
cykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENo
ZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGNv
bnN0IFRleHRDaGVja1JlcXVlc3QmKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaAppbmRleCA5NjdlYWM1YjM2NTNiZmRiYjFiMTFmOGQ0
NmI0M2ViYTljNTIyODEwLi5hNjViZjJlMTE1ZGI5ZTNlNGFiYWU3YmYxYzAzNDJjOWI3N2Y3MGZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmgKQEAgLTMx
LDYgKzMxLDggQEAKICNpZm5kZWYgVGV4dENoZWNraW5nX2gKICNkZWZpbmUgVGV4dENoZWNraW5n
X2gKIAorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICNkZWZpbmUgV1RGX1VTRV9HUkFNTUFSX0NIRUNLSU5HIDEKQEAgLTYxLDYgKzYzLDM0
IEBAIGVudW0gVGV4dENoZWNraW5nVHlwZSB7CiAKIHR5cGVkZWYgdW5zaWduZWQgVGV4dENoZWNr
aW5nVHlwZU1hc2s7CiAKK2VudW0gVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgeworICAgIFRleHRD
aGVja2luZ1Byb2Nlc3NCYXRjaCwKKyAgICBUZXh0Q2hlY2tpbmdQcm9jZXNzSW5jcmVtZW50YWwK
K307CisKK2NsYXNzIFRleHRDaGVja1JlcXVlc3QgeworcHVibGljOgorICAgIFRleHRDaGVja1Jl
cXVlc3QoaW50IHNlcXVlbmNlLCBTdHJpbmcgdGV4dCwgVGV4dENoZWNraW5nVHlwZU1hc2sgbWFz
aywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUpCisgICAgICAgIDogbV9zZXF1
ZW5jZShzZXF1ZW5jZSkKKyAgICAgICAgLCBtX3RleHQodGV4dCkKKyAgICAgICAgLCBtX21hc2so
bWFzaykKKyAgICAgICAgLCBtX3Byb2Nlc3NUeXBlKHByb2Nlc3NUeXBlKQorICAgIHsKKyAgICB9
CisKKyAgICB2b2lkIHNldFNlcXVlbmNlKGludCBzZXF1ZW5jZSkgeyBtX3NlcXVlbmNlID0gc2Vx
dWVuY2U7IH0KKyAgICBpbnQgc2VxdWVuY2UoKSBjb25zdCB7IHJldHVybiBtX3NlcXVlbmNlOyB9
CisgICAgU3RyaW5nIHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KKyAgICBUZXh0Q2hl
Y2tpbmdUeXBlTWFzayBtYXNrKCkgY29uc3QgeyByZXR1cm4gbV9tYXNrOyB9CisgICAgVGV4dENo
ZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NU
eXBlOyB9CisKK3ByaXZhdGU6CisgICAgaW50IG1fc2VxdWVuY2U7CisgICAgU3RyaW5nIG1fdGV4
dDsKKyAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtX21hc2s7CisgICAgVGV4dENoZWNraW5nUHJv
Y2Vzc1R5cGUgbV9wcm9jZXNzVHlwZTsKK307CisKIH0KIAogI2VuZGlmIC8vIFRleHRDaGVja2lu
Z19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggZDNjMzdlZTk0NGM0
YjdkODdjZjUyMjdlZTU5NGUxMGZkODZjNTE3ZS4uYjVhZGExOTYyMWRiNWJlMDYzMzU5YTJmMDFl
NDA4M2VlZGJmYjIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAt
NTU4LDcgKzU1OCw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6Y2hlY2tHcmFtbWFy
T2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQsIFdURjo6VmVjdG9yCiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBT
dHJpbmcmKQordm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhTcGVsbENoZWNrZXIqLCBjb25zdCBUZXh0Q2hlY2tSZXF1ZXN0JikKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggYmZm
YTg4MTgwNmQ2NDcxMTA0YjkyMWQ4ZDFlODc2ZjQ3Y2U0ZTU2NS4uZDFhZTI3NGZiYzg1YjhhY2Y3
N2M0YmVmOTBlYTY3Mjg5YjkyZDVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5o
CkBAIC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRBdXRvQ29y
cmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmIG1pc3NwZWxsZWRX
b3JkKTsKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIq
LCBpbnQsIFZlY3RvcjxHcmFtbWFyRGV0YWlsLCAwdT4mLCBpbnQqLCBpbnQqKTsKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwg
VmVjdG9yPFN0cmluZz4mKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcoU3BlbGxDaGVja2VyKiwgaW50LCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgU3RyaW5n
Jik7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tl
ciosIGNvbnN0IFRleHRDaGVja1JlcXVlc3QmKTsKIAogICAgIHZpcnR1YWwgVGV4dENoZWNrZXJD
bGllbnQqIHRleHRDaGVja2VyKCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlX
aXRoR3JhbW1hclN0cmluZyhjb25zdCBTdHJpbmcmLCBjb25zdCBHcmFtbWFyRGV0YWlsJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCmluZGV4
IDAzM2Q0NmQ1OGMyZjc5NTQ3OWUwYTA0MjllMzZkZjkxNzNkZDVlOTYuLjNiOWFkYzk4YWIxNTBi
ZWJmYzFjNWRjOGJhMGJjN2UyZDNlMDlkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCkBAIC03MjksMTAgKzcyOSwxMCBAQCB2b2lkIEVk
aXRvckNsaWVudEltcGw6OmNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25zdCBVQ2hhciogdGV4dCwg
aW50IGxlbmd0aCwKICAgICAgICAgKm1pc3NwZWxsaW5nTGVuZ3RoID0gc3BlbGxMZW5ndGg7CiB9
CiAKLXZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxD
aGVja2VyKiBzZW5kZXIsIGludCBpZGVudGlmaWVyLCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29u
c3QgU3RyaW5nJiB0ZXh0KQordm9pZCBFZGl0b3JDbGllbnRJbXBsOjpyZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhTcGVsbENoZWNrZXIqIHNlbmRlciwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNrUmVx
dWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAobV93ZWJWaWV3LT5zcGVsbENoZWNrQ2xpZW50KCkp
Ci0gICAgICAgIG1fd2ViVmlldy0+c3BlbGxDaGVja0NsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdP
ZlRleHQodGV4dCwgbmV3IFdlYlRleHRDaGVja2luZ0NvbXBsZXRpb25JbXBsKGlkZW50aWZpZXIs
IHNlbmRlcikpOworICAgICAgICBtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGllbnQoKS0+cmVxdWVz
dENoZWNraW5nT2ZUZXh0KHJlcXVlc3QudGV4dCgpLCBuZXcgV2ViVGV4dENoZWNraW5nQ29tcGxl
dGlvbkltcGwocmVxdWVzdC5zZXF1ZW5jZSgpLCBzZW5kZXIpKTsKIH0KIAogU3RyaW5nIEVkaXRv
ckNsaWVudEltcGw6OmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNv
bnN0IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9FZGl0b3JDbGllbnRJbXBsLmgKaW5kZXggOTk5ODYwYTAyNzI2OTQzMzYzMzA1MzQ2M2M0MjJi
Y2RhZTg5MGNkNy4uNDdiMTdkMGQ4OWZmM2JlYWUwMmFlZWEwN2JkMzgwZDhjOWUwY2QwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaApAQCAtMTA5
LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQo
Y29uc3QgV1RGOjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6
OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0
SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRl
KGJvb2wgZW5hYmxlZCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1h
c2ssIGNvbnN0IFdURjo6U3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVj
a1JlcXVlc3QmKTsKIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQqIHRl
eHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCAyMTcwNGQ5N2UwMTJjOTFjYWUwZTQ3OThmMzE0Y2Vi
NzI4Yjc3OTM1Li5hZGYyMDIzNzEwNTY5M2FlMTFhN2MyMTBlODA5ZmIzYjdjN2YyNzM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTEzMDEsNyAr
MTMwMSw3IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpyZXF1ZXN0VGV4dENoZWNraW5nKGNvbnN0IFdl
YkVsZW1lbnQmIHdlYkVsZW0pCiAKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlVG9DaGVjayA9IHJh
bmdlT2ZDb250ZW50cyhjb25zdF9jYXN0PEVsZW1lbnQqPih3ZWJFbGVtLmNvbnN0VW53cmFwPEVs
ZW1lbnQ+KCkpKTsKIAotICAgIGZyYW1lKCktPmVkaXRvcigpLT5zcGVsbENoZWNrZXIoKS0+cmVx
dWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlw
ZVNwZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIsIHJhbmdlVG9DaGVjaywgcmFuZ2VU
b0NoZWNrKSk7CisgICAgZnJhbWUoKS0+ZWRpdG9yKCktPnNwZWxsQ2hlY2tlcigpLT5yZXF1ZXN0
Q2hlY2tpbmdGb3IoU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlU3Bl
bGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciwgVGV4dENoZWNraW5nUHJvY2Vzc0JhdGNo
LCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVjaykpOwogfQogCiBib29sIFdlYkZyYW1lSW1wbDo6
aGFzU2VsZWN0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5oCmluZGV4IGU1MzkwYmNjOTczOTQ3N2Ey
NzYwNDc5YzZlNDExMjM4Mjg1ZTEwZTYuLjFiNjE3ODI0NzI0MTcwZTI2YTRjNjEwNzg1YTcxNWU3
ZWZiYjgwZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1Rl
eHRDaGVja2VyQ2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvVGV4dENoZWNrZXJDbGllbnRHdGsuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBUZXh0Q2hl
Y2tlckNsaWVudEd0ayA6IHB1YmxpYyBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCB7CiAgICAg
ICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3Bl
bGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNoZWNr
R3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgV1RGOjpWZWN0b3I8V2Vi
Q29yZTo6R3JhbW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRH
cmFtbWFyTGVuZ3RoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNv
bnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4dCwgV1RGOjpW
ZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6
VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJikge30KKyAgICAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGNvbnN0IFdl
YkNvcmU6OlRleHRDaGVja1JlcXVlc3QmKSB7IH0KIAogICAgICAgICB2b2lkIHVwZGF0ZVNwZWxs
Q2hlY2tpbmdMYW5ndWFnZShjb25zdCBjaGFyKik7CiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNWE5
YjkxNzBiNWQ2MjA3MWRmNDgxY2MzMjk0MGRhNzJmYjUxYWExYy4uNmRjNjNjNzI1ZjhiMzk5N2Rl
YjRkOWNkZDNhOTljM2I3ZjA2ZWYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTEzNSw3ICsxMzUsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3
b3JkLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+
JiBndWVzc2VzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9k
U3RhdGUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShi
b29sIGVuYWJsZWQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2lu
Z1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBjb25zdCBX
ZWJDb3JlOlRleHRDaGVja1JlcXVlc3QmKSBPVkVSUklERTsKICNpZiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAg
dmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVs
SW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZS
ZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5n
JiByZXBsYWNlbWVudFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVybmF0aXZlUmVw
bGFjZW1lbnRTdHJpbmdzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJl
Y3Rpb25QYW5lbChXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsKSBP
VkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5tbQppbmRleCBmMWM1NTEwYmYxMTAyYzhlZjhhZmUzOWUzMDlhODI0OWExN2Uw
NTZjLi5kNjdhYzMyYmY0MjJkNzA4MjIwNGMzZWQ2Y2Y1Mjg3MWE0ZmQ0Nzc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBA
IC05NzIsMTUgKzk3MiwxNSBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRob2RT
dGF0ZShib29sKQogQGVuZAogI2VuZGlmCiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqIHNlbmRlciwgaW50IHNlcXVl
bmNlLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVja2luZ1R5cGVzLCBjb25zdCBT
dHJpbmcmIHRleHQpCit2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiBzZW5kZXIsIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVj
a1JlcXVlc3QmIHJlcXVlc3QpCiB7CiAjaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKLSAgICBO
U1JhbmdlIHJhbmdlID0gTlNNYWtlUmFuZ2UoMCwgdGV4dC5sZW5ndGgoKSk7CisgICAgTlNSYW5n
ZSByYW5nZSA9IE5TTWFrZVJhbmdlKDAsIHJlcXVlc3QudGV4dCgpLmxlbmd0aCgpKTsKICAgICBO
U1J1bkxvb3AqIGN1cnJlbnRMb29wID0gW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF07Ci0gICAg
W1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nOnRleHQgcmFuZ2U6cmFuZ2UgdHlwZXM6TlNUZXh0Q2hlY2tpbmdBbGxTeXN0ZW1UeXBlcyBv
cHRpb25zOjAgaW5TcGVsbERvY3VtZW50V2l0aFRhZzowIAorICAgIFtbTlNTcGVsbENoZWNrZXIg
c2hhcmVkU3BlbGxDaGVja2VyXSByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpyZXF1ZXN0LnRleHQo
KSByYW5nZTpyYW5nZSB0eXBlczpOU1RleHRDaGVja2luZ0FsbFN5c3RlbVR5cGVzIG9wdGlvbnM6
MCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXI6XihOU0ludGVnZXIsIE5TQXJyYXkqIHJlc3Vs
dHMsIE5TT3J0aG9ncmFwaHkqLCBOU0ludGVnZXIpIHsKICAgICAgICAgICAgIFtjdXJyZW50TG9v
cCBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKHBlcmZvcm0pIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRhcmdldDpbW1tXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGFs
bG9jXSBpbml0V2l0aFNlbmRlcjpzZW5kZXIgc2VxdWVuY2U6c2VxdWVuY2UgdHlwZXM6Y2hlY2tp
bmdUeXBlcyByZXN1bHRzOnJlc3VsdHNdIGF1dG9yZWxlYXNlXQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRhcmdldDpbW1tXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGFs
bG9jXSBpbml0V2l0aFNlbmRlcjpzZW5kZXIgc2VxdWVuY2U6cmVxdWVzdC5zZXF1ZW5jZSgpIHR5
cGVzOnJlcXVlc3QubWFzaygpIHJlc3VsdHM6cmVzdWx0c10gYXV0b3JlbGVhc2VdCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50Om5pbCBvcmRlcjowIG1vZGVzOltOU0Fy
cmF5IGFycmF5V2l0aE9iamVjdDpOU0RlZmF1bHRSdW5Mb29wTW9kZV1dOwogICAgICAgICB9XTsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9UZXh0
Q2hlY2tlckNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRD
aGVja2VyQ2xpZW50UXQuaAppbmRleCBlNzhjZTFkMTBjMDVkMjM1YTZhNTRiM2JiYmVhN2VlYTlh
Y2U4NDgzLi5jYzRkZjBhMjE2ZmZmM2JiOGFhOGVkNmJiZGRkNzgxODIwMzc1ZDljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50
UXQuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0QXV0
b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJiBtaXNzcGVs
bGVkV29yZCk7CiAgICAgdmlydHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFVD
aGFyKiwgaW50IGxlbmd0aCwgVmVjdG9yPEdyYW1tYXJEZXRhaWw+JiwgaW50KiBiYWRHcmFtbWFy
TG9jYXRpb24sIGludCogYmFkR3JhbW1hckxlbmd0aCk7CiAgICAgdmlydHVhbCB2b2lkIGdldEd1
ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBW
ZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgVGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0
IFN0cmluZyYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhT
cGVsbENoZWNrZXIqLCBjb25zdCBUZXh0Q2hlY2tSZXF1ZXN0JikgeyB9CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNDb250aW5vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOwogICAgIHZpcnR1YWwgdm9p
ZCB0b2dnbGVDb250aW5vdXNTcGVsbENoZWNraW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDI4YTkxMDVlZmI2NGVl
ODE1NWFkMGRlOTcyZjFjOGY3YTE1OTkzMmEuLjRiNDIxY2E3MTdjYTlmNDEwMDVjYWJjOWEwYTZj
MDBjMDRkNjdjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xMTAsNyArMTEwLDggQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dElucHV0TWV0aG9kU3RhdGUoYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNr
aW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJikge30KKyAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgY29uc3QgV2ViQ29y
ZTo6VGV4dENoZWNrUmVxdWVzdCYpIHsgfQorCiAgICAgdmlydHVhbCBXZWJDb3JlOjpUZXh0Q2hl
Y2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFdpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFdpbkNFLmgKaW5kZXggYzI5NTI0ZTFhMjZmNDBjM2RkMDA0YTIyYTI2NzEyZjYwZTZkNWM0OS4u
MjgyNmE2MWI2NmQwZDliMjc5NTNmODEyMjA0NDMzZjIwYjM2MDMwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaApA
QCAtMTAxLDcgKzEwMSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0Zv
cldvcmQoY29uc3QgV1RGOjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZXh0
LCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3
aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhv
ZFN0YXRlKGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhX
ZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNr
LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVj
a1JlcXVlc3QmKSB7IH0KICAgICB2aXJ0dWFsIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0
ZXh0Q2hlY2tlcigpIHsgcmV0dXJuIHRoaXM7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmNwcAppbmRleCAxOWVmN2RjNGYyM2EzMjAzYzdmOThmMTU5NTUxMzk1ZTA0M2E0YTA3Li4w
OGQ4YWM5NmM5ZTk3Y2ZiMWIyNGRlNjdjYzU4ZDEyODI3Y2FhNTdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuY3BwCkBAIC00NDcsNyArNDQ3LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNldElu
cHV0TWV0aG9kU3RhdGUoYm9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdl
YkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVj
a2VyKiwgaW50LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgV1RGOjpTdHJp
bmcmKQordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNv
cmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja1JlcXVlc3QmKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCAyNjAwMjBm
ZjI2ZGVkZDE3MDE1ZWU2YWJhNGIyMmQwMjllMzM4MDg5Li5mM2JmYjAxZDU0YTk0ODg0MTNhMDVj
OTNhMGM5MTc1YTgwODE5ODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTE0MSw3ICsxNDEs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBT
dHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNz
ZXMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5h
YmxlZCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1h
c2ssIGNvbnN0IFdURjo6U3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6
OlRleHRDaGVja1JlcXVlc3QmKSBPVkVSUklERTsKICNpZiBQTEFURk9STShNQUMpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJl
Y3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OlJl
YXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwpIE9WRVJSSURFOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128417</attachid>
            <date>2012-02-23 00:08:33 -0800</date>
            <delta_ts>2012-02-23 00:18:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79320-20120223170831.patch</filename>
            <type>text/plain</type>
            <size>31289</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTljNGI5ODMwMmI1MDRk
NGFlZDdjMzE5MmQ0MDYyZjVmNjFlOTc0ZC4uMmE1ZTM1NWNmODk1MmJiY2M5ZDlkYTFmMWZlZThi
MGZlZjYzZjc5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTAyLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNr
UmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhh
cHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZWJLaXQgY2xpZW50cyBzaG91bGQgYmUgYWJsZSB0byBnZXQgdGhlIGNvbnRleHQgaG93IHRoZSBz
cGVsbGNoZWNrIGhhcHBlbmRlZC4KKyAgICAgICAgRm9yIGV4YW1wbGUsIFdlYktpdCBjbGllbnRz
IG1heSB3YW50IHRvIGNoYW5nZSB0aGUgYmVoYXZpb3IgYnkgYSBzcGVsbGNoZWNrIHJlcXVlc3Qg
aXMKKyAgICAgICAgaW52b2tlZCBpbiB0eXBpbmcgb3IgaW4gcGFzdGluZy4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZGVkIGFuIGVudW0gaW4gU3BlbGxDaGVja1JlcXVlc3Qgc28gdGhhdCBXZWJL
aXQgY2xpZW50cyBjYW4gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4KKworICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVwbGFjZVNlbGVjdGlv
bldpdGhGcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Om1hcmtBbGxNaXNzcGVs
bGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXMpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVj
a2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0OjpTcGVsbENoZWNr
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aW52b2tlUmVxdWVzdCk6CisgICAgICAg
ICogZWRpdGluZy9TcGVsbENoZWNrZXIuaDoKKyAgICAgICAgKFNwZWxsQ2hlY2tSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0Ojp0ZXh0Q2hlY2tSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0Ojpwcm9jZXNzVHlwZSk6CisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlUZXh0
Q2hlY2tlckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoVGV4dENoZWNrZXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENoZWNr
aW5nLmg6CisgICAgICAgIChUZXh0Q2hlY2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRDaGVja1JlcXVlc3Q6OlRleHRDaGVja1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dENoZWNrUmVxdWVzdDo6c2V0U2VxdWVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNr
UmVxdWVzdDo6c2VxdWVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNrUmVxdWVzdDo6
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tSZXF1ZXN0OjptYXNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRDaGVja1JlcXVlc3Q6OnByb2Nlc3NUeXBlKToKKyAgICAgICAgKFdl
YkNvcmUpOgorCiAyMDEyLTAyLTIyICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBFbmFibGUgR2VvbG9jYXRpb24gYmluZGluZ3MgZm9yIEdPYmplY3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IGRiOGI0MTBjODcxMmNjNWZhZjZiOWJhYmNm
ZTgzOTc4N2ZkYmVlYzkuLjE0ZTk2ODUzNTg1N2Q0ZWZkNWMyZTM0NTBiNGMxZjE4NTQ1NjBiNWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAy
LTIyICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBT
cGVsbENoZWNrUmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVs
bGNoZWNrIGhhcHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6cmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnku
aDoKKyAgICAgICAgKEVkaXRvckNsaWVudEJsYWNrQmVycnkpOgorCiAyMDEyLTAyLTIxICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB0aGUgcmVtYWlu
aW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggZDIwYmFkZjQwNDU5NWNkZDY2MjliNDYzMzJmZjFkNmM1NThkNTk5OC4u
MmQ1OTFkYjIzYmYxNTk2MzlkOGIxNjA2Yzk3OGNkMGFhZWJjMDY4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMi0yMiAgU2hpbnlhIEthd2FuYWth
ICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlbGxDaGVja1JlcXVlc3QgbmVl
ZHMgdG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBwZW5lZC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzIwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvRWRpdG9y
Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgor
ICAgICAgICAoRWRpdG9yQ2xpZW50SW1wbCk6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6cmVxdWVzdFRleHRDaGVja2luZyk6
CisKIDIwMTItMDItMjIgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBBZGQgdW5pdCB0ZXN0IGZvciBzdXJmYWNlIG9jY2x1c2lvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCmluZGV4IGFhNjI5NzAyN2Q4OGU3YjRkODdjMDM1OTAwZTNhNmE4Y2NiYjM0ODUu
LmQ5OTQzZWQxZGU2NzJlZDlmMTBlOGVlOTIxOGIxMjg1N2VjY2ZjN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0yMiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlh
a0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlbGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25v
dyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0
Q2hlY2tlckNsaWVudEd0ay5oOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlckNsaWVudEd0
azo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMg
b2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBlZTJm
ZGI3YzlkM2NjZTIzYjZlNGE1MmRkNGM5YTczY2JhNjNhYmIyLi43N2Y2NmEwMDEyNmU2ZGUyOWIy
YTY0MDMzMjQyZTU4NTA2MTg5MzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDItMjIgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFNwZWxsQ2hlY2tSZXF1ZXN0IG5lZWRzIHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUg
dGhlIHNwZWxsY2hlY2sgaGFwcGVuZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03OTMyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRp
dG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTItMDItMjEgIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHRoZSByZW1haW5p
bmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGluIEVkaXRvcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRl
eCBkYTVlYjg3N2U0ZjZiNzk3YzQwMzFkZmVkMGQzMWRjYWNlYzgyOTFiLi41NzM5NzdjMjI2YjFm
Zjk2M2ZhODYxNGMxYmFkNmIxMjUzZmYyNjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDEyLTAyLTIyICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4K
KworICAgICAgICBTcGVsbENoZWNrUmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdo
ZXJlIHRoZSBzcGVsbGNoZWNrIGhhcHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50UXQ6OnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKToKKwogMjAxMi0wMi0yMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZW1vdmUgdGhlIHJlbWFpbmluZyB1c2VzIG9mIENTU1N0eWxlRGVjbGFy
YXRpb24gaW4gRWRpdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggODYyYTljMzZiOGRlYzkwOTM3ZjNk
YzVkMGE3YWIwYmVlOWI1MmVkNS4uOWUyZGQxNjM5NjdlZWNiODkzNWJlMTIxOTJkM2IzYWVmYWNj
YzZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAyLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNr
UmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhh
cHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAoV2ViRWRpdG9yQ2xp
ZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQp
OgorCiAyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBF
ZGl0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggODAyYTRlYzhiZDBjODljZDI2ODk0ZmIyNjFl
NzlmNWUyMGM2NDc1YS4uMTg5ZTM1MmZlODJjMzE4NDQwMzY0M2Y4NDU2NDE1M2Q0YWQ0NjVmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0yMiAgU2hpbnlh
IEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlbGxDaGVja1Jl
cXVlc3QgbmVlZHMgdG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBw
ZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5
MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oOgorICAgICAgICAoV2ViS2l0OjpFZGl0
b3JDbGllbnRXaW5DRTo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEyLTAyLTIxICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB0aGUgcmVt
YWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA1YWEyMDZmMThmMzgzMThjNzUxZmRmNDFmMGIyNGFmZjkyZmZlYjk5Li5hM2E4ZGEzMGRkNzNj
ZTFiMzJiNjUyZWEzYzZjYTRmNmM5ZWJiNjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDItMjIgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFNwZWxsQ2hlY2tSZXF1ZXN0IG5lZWRzIHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUg
dGhlIHNwZWxsY2hlY2sgaGFwcGVuZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03OTMyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oOgorCiAyMDEyLTAyLTIyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
UHJveHk6OmRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKaW5kZXggMTNiYjdlNzVmN2NjOTU1ODdkMThjNDQyMDVmYTY3ODhjODUxMWM1Yy4uMWNlMjRl
NTM4ZDQzNTdmMWUzZTJkYmE4MGM0NGI0YTU4NGMyYTA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcApAQCAtNDE4LDcgKzQxOCw3IEBAIHZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9u
V2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsCiAgICAg
ICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2VUb0NoZWNrID0gUmFuZ2U6OmNy
ZWF0ZShtX2ZyYW1lLT5kb2N1bWVudCgpLCBmaXJzdFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0NoZWNr
KSwgbGFzdFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0NoZWNrKSk7Ci0gICAgbV9zcGVsbENoZWNrZXIt
PnJlcXVlc3RDaGVja2luZ0ZvcihTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKHJlc29sdmVUZXh0
Q2hlY2tpbmdUeXBlTWFzayhUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdU
eXBlR3JhbW1hciksIHJhbmdlVG9DaGVjaywgcmFuZ2VUb0NoZWNrKSk7CisgICAgbV9zcGVsbENo
ZWNrZXItPnJlcXVlc3RDaGVja2luZ0ZvcihTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKHJlc29s
dmVUZXh0Q2hlY2tpbmdUeXBlTWFzayhUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hl
Y2tpbmdUeXBlR3JhbW1hciksIFRleHRDaGVja2luZ1Byb2Nlc3NCYXRjaCwgcmFuZ2VUb0NoZWNr
LCByYW5nZVRvQ2hlY2spKTsKIH0KIAogdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRo
VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21h
cnRSZXBsYWNlKQpAQCAtMTkzNSw3ICsxOTM1LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbGxNaXNz
cGVsbGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXMoVGV4dENoZWNraW5nVHlwZU1hc2sgdGV4dEMK
ICAgICBib29sIGFzeW5jaHJvbm91cyA9IG1fZnJhbWUgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKSAm
JiBtX2ZyYW1lLT5zZXR0aW5ncygpLT5hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgp
ICYmICFzaG91bGRTaG93Q29ycmVjdGlvblBhbmVsOwogCiAgICAgLy8gSW4gYXN5bmNocm9ub3Vz
IG1vZGUsIHdlIGludGVudGlvbmFsbHkgY2hlY2sgcGFyYWdyYXBoLXdpZGUgc2VudGVuY2UuCi0g
ICAgUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0ID0gU3BlbGxDaGVja1JlcXVlc3Q6
OmNyZWF0ZShyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2sodGV4dENoZWNraW5nT3B0aW9ucyks
IGFzeW5jaHJvbm91cyA/IHBhcmFncmFwaFJhbmdlIDogcmFuZ2VUb0NoZWNrLCBwYXJhZ3JhcGhS
YW5nZSk7CisgICAgUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0ID0gU3BlbGxDaGVj
a1JlcXVlc3Q6OmNyZWF0ZShyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2sodGV4dENoZWNraW5n
T3B0aW9ucyksIFRleHRDaGVja2luZ1Byb2Nlc3NJbmNyZW1lbnRhbCwgYXN5bmNocm9ub3VzID8g
cGFyYWdyYXBoUmFuZ2UgOiByYW5nZVRvQ2hlY2ssIHBhcmFncmFwaFJhbmdlKTsKIAogICAgIGlm
IChhc3luY2hyb25vdXMpIHsKICAgICAgICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2lu
Z0ZvcihyZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxD
aGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcAppbmRl
eCA2ODM2NDRjNmQwMTVlYzkyOWY1MmY4NTlkMzM2ZGI3ZTgyZjEyYzk1Li5iYTYwMjliNzU5NDcy
ZTA1NTBkZDY3YmFiNDFjMTYyYTgzM2RhMGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVs
bENoZWNrZXIuY3BwCkBAIC00NywxMiArNDcsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dGF0aWMgY29uc3QgaW50IHVucmVxdWVzdGVkU2VxdWVuY2UgPSAtMTsKIAotU3BlbGxDaGVja1Jl
cXVlc3Q6OlNwZWxsQ2hlY2tSZXF1ZXN0KGludCBzZXF1ZW5jZSwgUGFzc1JlZlB0cjxSYW5nZT4g
Y2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UsIGNvbnN0IFN0
cmluZyYgdGV4dCwgVGV4dENoZWNraW5nVHlwZU1hc2sgbWFzaykKK1NwZWxsQ2hlY2tSZXF1ZXN0
OjpTcGVsbENoZWNrUmVxdWVzdChpbnQgc2VxdWVuY2UsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNr
aW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlLCBjb25zdCBTdHJpbmcm
IHRleHQsIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBl
IHByb2Nlc3NUeXBlKQogICAgIDogbV9zZXF1ZW5jZShzZXF1ZW5jZSkKLSAgICAsIG1fY2hlY2tp
bmdSYW5nZShjaGVja2luZ1JhbmdlKQotICAgICwgbV9wYXJhZ3JhcGhSYW5nZShwYXJhZ3JhcGhS
YW5nZSkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV9tYXNrKG1hc2spCisgICAgLCBtX3By
b2Nlc3NUeXBlKHByb2Nlc3NUeXBlKQorICAgICwgbV9jaGVja2luZ1JhbmdlKGNoZWNraW5nUmFu
Z2UpCisgICAgLCBtX3BhcmFncmFwaFJhbmdlKHBhcmFncmFwaFJhbmdlKQogICAgICwgbV9yb290
RWRpdGFibGVFbGVtZW50KG1fY2hlY2tpbmdSYW5nZS0+c3RhcnRDb250YWluZXIoKS0+cm9vdEVk
aXRhYmxlRWxlbWVudCgpKQogewogfQpAQCAtNjIsNyArNjMsNyBAQCBTcGVsbENoZWNrUmVxdWVz
dDo6flNwZWxsQ2hlY2tSZXF1ZXN0KCkKIH0KIAogLy8gc3RhdGljCi1QYXNzUmVmUHRyPFNwZWxs
Q2hlY2tSZXF1ZXN0PiBTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKFRleHRDaGVja2luZ1R5cGVN
YXNrIHRleHRDaGVja2luZ09wdGlvbnMsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2Us
IFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKQorUGFzc1JlZlB0cjxTcGVsbENoZWNr
UmVxdWVzdD4gU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlTWFzayB0
ZXh0Q2hlY2tpbmdPcHRpb25zLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSwg
UGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdy
YXBoUmFuZ2UpCiB7CiAgICAgQVNTRVJUKGNoZWNraW5nUmFuZ2UpOwogICAgIEFTU0VSVChwYXJh
Z3JhcGhSYW5nZSk7CkBAIC03MSw3ICs3Miw3IEBAIFBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVl
c3Q+IFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlwZU1hc2sgdGV4CiAg
ICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxTcGVsbENo
ZWNrUmVxdWVzdD4oKTsKIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlbGxDaGVja1JlcXVl
c3QodW5yZXF1ZXN0ZWRTZXF1ZW5jZSwgY2hlY2tpbmdSYW5nZSwgcGFyYWdyYXBoUmFuZ2UsIHRl
eHQsIHRleHRDaGVja2luZ09wdGlvbnMpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWxs
Q2hlY2tSZXF1ZXN0KHVucmVxdWVzdGVkU2VxdWVuY2UsIGNoZWNraW5nUmFuZ2UsIHBhcmFncmFw
aFJhbmdlLCB0ZXh0LCB0ZXh0Q2hlY2tpbmdPcHRpb25zLCBwcm9jZXNzVHlwZSkpOwogfQogCiAK
QEAgLTE0NSw3ICsxNDYsNyBAQCB2b2lkIFNwZWxsQ2hlY2tlcjo6aW52b2tlUmVxdWVzdChQYXNz
UmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0KQogICAgIEFTU0VSVCghbV9wcm9jZXNz
aW5nUmVxdWVzdCk7CiAKICAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0ID0gcmVxdWVzdDsKLSAgICBj
bGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcodGhpcywgbV9wcm9jZXNzaW5nUmVxdWVz
dC0+c2VxdWVuY2UoKSwgbV9wcm9jZXNzaW5nUmVxdWVzdC0+bWFzaygpLCBtX3Byb2Nlc3NpbmdS
ZXF1ZXN0LT50ZXh0KCkpOworICAgIGNsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyh0
aGlzLCByZXF1ZXN0LT50ZXh0Q2hlY2tSZXF1ZXN0KCkpOwogfQogCiB2b2lkIFNwZWxsQ2hlY2tl
cjo6ZW5xdWV1ZVJlcXVlc3QoUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gcmVxdWVzdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCmluZGV4IDIwMzA2ZGExYTU5MzZlMmZm
NTRmOWJlMmIyYWYzZjI1ZTk4NzAyNWIuLmU4ZDYwMzVhNmU4NTZlNDM5NTA5NTI0NjEwMDk2OTc1
YzAwNmRlMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApAQCAtNDYsMTAg
KzQ2LDEyIEBAIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CiAKIGNsYXNzIFNwZWxsQ2hlY2tS
ZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlbGxDaGVja1JlcXVlc3Q+IHsKIHB1YmxpYzoK
LSAgICBTcGVsbENoZWNrUmVxdWVzdChpbnQgc2VxdWVuY2UsIFBhc3NSZWZQdHI8UmFuZ2U+IGNo
ZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlLCBjb25zdCBTdHJp
bmcmLCBUZXh0Q2hlY2tpbmdUeXBlTWFzayk7CisgICAgU3BlbGxDaGVja1JlcXVlc3QoaW50IHNl
cXVlbmNlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdl
PiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3RyaW5nJiwgVGV4dENoZWNraW5nVHlwZU1hc2ssIFRl
eHRDaGVja2luZ1Byb2Nlc3NUeXBlKTsKICAgICB+U3BlbGxDaGVja1JlcXVlc3QoKTsKIAotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBjcmVhdGUoVGV4dENoZWNraW5n
VHlwZU1hc2ssIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFu
Z2U+IHBhcmFncmFwaFJhbmdlKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVx
dWVzdD4gY3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlw
ZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFy
YWdyYXBoUmFuZ2UpOworCisgICAgVGV4dENoZWNrUmVxdWVzdCB0ZXh0Q2hlY2tSZXF1ZXN0KCkg
Y29uc3Q7CiAKICAgICB2b2lkIHNldFNlcXVlbmNlKGludCBzZXF1ZW5jZSkgeyBtX3NlcXVlbmNl
ID0gc2VxdWVuY2U7IH0KICAgICBpbnQgc2VxdWVuY2UoKSBjb25zdCB7IHJldHVybiBtX3NlcXVl
bmNlOyB9CkBAIC01NywxNCArNTksMTUgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UmFuZ2U+
IHBhcmFncmFwaFJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhZ3JhcGhSYW5nZTsgfQogICAg
IGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQogICAgIFRleHRD
aGVja2luZ1R5cGVNYXNrIG1hc2soKSBjb25zdCB7IHJldHVybiBtX21hc2s7IH0KKyAgICBUZXh0
Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vz
c1R5cGU7IH0KICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IHJvb3RFZGl0YWJsZUVsZW1lbnQoKSBj
b25zdCB7IHJldHVybiBtX3Jvb3RFZGl0YWJsZUVsZW1lbnQ7IH0KIHByaXZhdGU6Ci0KICAgICBp
bnQgbV9zZXF1ZW5jZTsKLSAgICBSZWZQdHI8UmFuZ2U+IG1fY2hlY2tpbmdSYW5nZTsKLSAgICBS
ZWZQdHI8UmFuZ2U+IG1fcGFyYWdyYXBoUmFuZ2U7CiAgICAgU3RyaW5nIG1fdGV4dDsKICAgICBU
ZXh0Q2hlY2tpbmdUeXBlTWFzayBtX21hc2s7CisgICAgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUg
bV9wcm9jZXNzVHlwZTsKKyAgICBSZWZQdHI8UmFuZ2U+IG1fY2hlY2tpbmdSYW5nZTsKKyAgICBS
ZWZQdHI8UmFuZ2U+IG1fcGFyYWdyYXBoUmFuZ2U7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fcm9v
dEVkaXRhYmxlRWxlbWVudDsKIH07CiAKQEAgLTEwOSw2ICsxMTIsMTEgQEAgcHJpdmF0ZToKICAg
ICBSZXF1ZXN0UXVldWUgbV9yZXF1ZXN0UXVldWU7CiB9OwogCitpbmxpbmUgVGV4dENoZWNrUmVx
dWVzdCBTcGVsbENoZWNrUmVxdWVzdDo6dGV4dENoZWNrUmVxdWVzdCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIFRleHRDaGVja1JlcXVlc3QobV9zZXF1ZW5jZSwgbV90ZXh0LCBtX21hc2ssIG1fcHJv
Y2Vzc1R5cGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTcGVs
bENoZWNrZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDIzNTJjMjg3
NmQyMTgxMzRkMGJlYTY0MjU0NzgxYmU4MWU2NjAwZTguLmZhY2YzY2MyYTU2OTVmZTE0MTE2YmQ5
MTI5NWEyMzQ3OTlkZjhmNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAg
LTQzMiw3ICs0MzIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5n
PiYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENo
ZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgY29u
c3QgVGV4dENoZWNrUmVxdWVzdCYpIHsgfQogfTsKIAogY2xhc3MgRW1wdHlFZGl0b3JDbGllbnQg
OiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dENoZWNrZXJDbGllbnQuaAppbmRleCBkMTZhZGUxNjQ2MGFkNzBmMzdlYjllOGQ0MTRk
ZjYxZjY3Y2ZjOGQzLi41NmRjODNjOGZhYmFmOGU1M2Y3NjYxM2U3ODIwYjc0YjkyMmMzNGJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5o
CkBAIC0zNyw2ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNwZWxsQ2hl
Y2tlcjsKK2NsYXNzIFRleHRDaGVja1JlcXVlc3Q7CiAKIHN0cnVjdCBHcmFtbWFyRGV0YWlsIHsK
ICAgICBpbnQgbG9jYXRpb247CkBAIC03MSw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICAvLyBwcm92
aWRlIG1vcmUgYWNjdXJhdGUgY29ycmVjdGlvbiBzdWdnZXN0aW9ucy4gQ2FsbGVyIGNhbiBwYXNz
IGluIG1vcmUgdGV4dCBpbiAiY29udGV4dCIgdG8gYWlkIHN1Y2ggc3BlbGxjaGVja2VycyBvbiBs
YW5ndWFnZQogICAgIC8vIGlkZW50aWZpY2F0aW9uLiBOb3JhbWxseSBpdCdzIHRoZSB0ZXh0IHN1
cnJvdW5kaW5nIHRoZSAid29yZCIgZm9yIHdoaWNoIHdlIGFyZSBnZXR0aW5nIGNvcnJlY3Rpb24g
c3VnZ2VzdGlvbnMuCiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0
cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nl
cykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENo
ZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGNv
bnN0IFRleHRDaGVja1JlcXVlc3QmKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaAppbmRleCA5NjdlYWM1YjM2NTNiZmRiYjFiMTFmOGQ0
NmI0M2ViYTljNTIyODEwLi5hNjViZjJlMTE1ZGI5ZTNlNGFiYWU3YmYxYzAzNDJjOWI3N2Y3MGZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmgKQEAgLTMx
LDYgKzMxLDggQEAKICNpZm5kZWYgVGV4dENoZWNraW5nX2gKICNkZWZpbmUgVGV4dENoZWNraW5n
X2gKIAorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICNkZWZpbmUgV1RGX1VTRV9HUkFNTUFSX0NIRUNLSU5HIDEKQEAgLTYxLDYgKzYzLDM0
IEBAIGVudW0gVGV4dENoZWNraW5nVHlwZSB7CiAKIHR5cGVkZWYgdW5zaWduZWQgVGV4dENoZWNr
aW5nVHlwZU1hc2s7CiAKK2VudW0gVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgeworICAgIFRleHRD
aGVja2luZ1Byb2Nlc3NCYXRjaCwKKyAgICBUZXh0Q2hlY2tpbmdQcm9jZXNzSW5jcmVtZW50YWwK
K307CisKK2NsYXNzIFRleHRDaGVja1JlcXVlc3QgeworcHVibGljOgorICAgIFRleHRDaGVja1Jl
cXVlc3QoaW50IHNlcXVlbmNlLCBTdHJpbmcgdGV4dCwgVGV4dENoZWNraW5nVHlwZU1hc2sgbWFz
aywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUpCisgICAgICAgIDogbV9zZXF1
ZW5jZShzZXF1ZW5jZSkKKyAgICAgICAgLCBtX3RleHQodGV4dCkKKyAgICAgICAgLCBtX21hc2so
bWFzaykKKyAgICAgICAgLCBtX3Byb2Nlc3NUeXBlKHByb2Nlc3NUeXBlKQorICAgIHsKKyAgICB9
CisKKyAgICB2b2lkIHNldFNlcXVlbmNlKGludCBzZXF1ZW5jZSkgeyBtX3NlcXVlbmNlID0gc2Vx
dWVuY2U7IH0KKyAgICBpbnQgc2VxdWVuY2UoKSBjb25zdCB7IHJldHVybiBtX3NlcXVlbmNlOyB9
CisgICAgU3RyaW5nIHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KKyAgICBUZXh0Q2hl
Y2tpbmdUeXBlTWFzayBtYXNrKCkgY29uc3QgeyByZXR1cm4gbV9tYXNrOyB9CisgICAgVGV4dENo
ZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NU
eXBlOyB9CisKK3ByaXZhdGU6CisgICAgaW50IG1fc2VxdWVuY2U7CisgICAgU3RyaW5nIG1fdGV4
dDsKKyAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtX21hc2s7CisgICAgVGV4dENoZWNraW5nUHJv
Y2Vzc1R5cGUgbV9wcm9jZXNzVHlwZTsKK307CisKIH0KIAogI2VuZGlmIC8vIFRleHRDaGVja2lu
Z19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggZDNjMzdlZTk0NGM0
YjdkODdjZjUyMjdlZTU5NGUxMGZkODZjNTE3ZS4uYjVhZGExOTYyMWRiNWJlMDYzMzU5YTJmMDFl
NDA4M2VlZGJmYjIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAt
NTU4LDcgKzU1OCw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6Y2hlY2tHcmFtbWFy
T2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQsIFdURjo6VmVjdG9yCiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBT
dHJpbmcmKQordm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhTcGVsbENoZWNrZXIqLCBjb25zdCBUZXh0Q2hlY2tSZXF1ZXN0JikKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggYmZm
YTg4MTgwNmQ2NDcxMTA0YjkyMWQ4ZDFlODc2ZjQ3Y2U0ZTU2NS4uZDFhZTI3NGZiYzg1YjhhY2Y3
N2M0YmVmOTBlYTY3Mjg5YjkyZDVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5o
CkBAIC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRBdXRvQ29y
cmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmIG1pc3NwZWxsZWRX
b3JkKTsKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIq
LCBpbnQsIFZlY3RvcjxHcmFtbWFyRGV0YWlsLCAwdT4mLCBpbnQqLCBpbnQqKTsKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwg
VmVjdG9yPFN0cmluZz4mKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcoU3BlbGxDaGVja2VyKiwgaW50LCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgU3RyaW5n
Jik7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tl
ciosIGNvbnN0IFRleHRDaGVja1JlcXVlc3QmKTsKIAogICAgIHZpcnR1YWwgVGV4dENoZWNrZXJD
bGllbnQqIHRleHRDaGVja2VyKCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlX
aXRoR3JhbW1hclN0cmluZyhjb25zdCBTdHJpbmcmLCBjb25zdCBHcmFtbWFyRGV0YWlsJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCmluZGV4
IDAzM2Q0NmQ1OGMyZjc5NTQ3OWUwYTA0MjllMzZkZjkxNzNkZDVlOTYuLjNiOWFkYzk4YWIxNTBi
ZWJmYzFjNWRjOGJhMGJjN2UyZDNlMDlkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCkBAIC03MjksMTAgKzcyOSwxMCBAQCB2b2lkIEVk
aXRvckNsaWVudEltcGw6OmNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25zdCBVQ2hhciogdGV4dCwg
aW50IGxlbmd0aCwKICAgICAgICAgKm1pc3NwZWxsaW5nTGVuZ3RoID0gc3BlbGxMZW5ndGg7CiB9
CiAKLXZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxD
aGVja2VyKiBzZW5kZXIsIGludCBpZGVudGlmaWVyLCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29u
c3QgU3RyaW5nJiB0ZXh0KQordm9pZCBFZGl0b3JDbGllbnRJbXBsOjpyZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhTcGVsbENoZWNrZXIqIHNlbmRlciwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNrUmVx
dWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAobV93ZWJWaWV3LT5zcGVsbENoZWNrQ2xpZW50KCkp
Ci0gICAgICAgIG1fd2ViVmlldy0+c3BlbGxDaGVja0NsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdP
ZlRleHQodGV4dCwgbmV3IFdlYlRleHRDaGVja2luZ0NvbXBsZXRpb25JbXBsKGlkZW50aWZpZXIs
IHNlbmRlcikpOworICAgICAgICBtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGllbnQoKS0+cmVxdWVz
dENoZWNraW5nT2ZUZXh0KHJlcXVlc3QudGV4dCgpLCBuZXcgV2ViVGV4dENoZWNraW5nQ29tcGxl
dGlvbkltcGwocmVxdWVzdC5zZXF1ZW5jZSgpLCBzZW5kZXIpKTsKIH0KIAogU3RyaW5nIEVkaXRv
ckNsaWVudEltcGw6OmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNv
bnN0IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9FZGl0b3JDbGllbnRJbXBsLmgKaW5kZXggOTk5ODYwYTAyNzI2OTQzMzYzMzA1MzQ2M2M0MjJi
Y2RhZTg5MGNkNy4uNDdiMTdkMGQ4OWZmM2JlYWUwMmFlZWEwN2JkMzgwZDhjOWUwY2QwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaApAQCAtMTA5
LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQo
Y29uc3QgV1RGOjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6
OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0
SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRl
KGJvb2wgZW5hYmxlZCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1h
c2ssIGNvbnN0IFdURjo6U3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVj
a1JlcXVlc3QmKTsKIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQqIHRl
eHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCAyMTcwNGQ5N2UwMTJjOTFjYWUwZTQ3OThmMzE0Y2Vi
NzI4Yjc3OTM1Li5hZGYyMDIzNzEwNTY5M2FlMTFhN2MyMTBlODA5ZmIzYjdjN2YyNzM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTEzMDEsNyAr
MTMwMSw3IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpyZXF1ZXN0VGV4dENoZWNraW5nKGNvbnN0IFdl
YkVsZW1lbnQmIHdlYkVsZW0pCiAKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlVG9DaGVjayA9IHJh
bmdlT2ZDb250ZW50cyhjb25zdF9jYXN0PEVsZW1lbnQqPih3ZWJFbGVtLmNvbnN0VW53cmFwPEVs
ZW1lbnQ+KCkpKTsKIAotICAgIGZyYW1lKCktPmVkaXRvcigpLT5zcGVsbENoZWNrZXIoKS0+cmVx
dWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlw
ZVNwZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIsIHJhbmdlVG9DaGVjaywgcmFuZ2VU
b0NoZWNrKSk7CisgICAgZnJhbWUoKS0+ZWRpdG9yKCktPnNwZWxsQ2hlY2tlcigpLT5yZXF1ZXN0
Q2hlY2tpbmdGb3IoU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlU3Bl
bGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciwgVGV4dENoZWNraW5nUHJvY2Vzc0JhdGNo
LCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVjaykpOwogfQogCiBib29sIFdlYkZyYW1lSW1wbDo6
aGFzU2VsZWN0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5oCmluZGV4IGU1MzkwYmNjOTczOTQ3N2Ey
NzYwNDc5YzZlNDExMjM4Mjg1ZTEwZTYuLmNmYzc0ZTFmMTgzOWYyZmRiNTM3YjdlOGZiYTZkODUy
YjM5ZjA5ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1Rl
eHRDaGVja2VyQ2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvVGV4dENoZWNrZXJDbGllbnRHdGsuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBUZXh0Q2hl
Y2tlckNsaWVudEd0ayA6IHB1YmxpYyBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCB7CiAgICAg
ICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3Bl
bGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNoZWNr
R3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgV1RGOjpWZWN0b3I8V2Vi
Q29yZTo6R3JhbW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRH
cmFtbWFyTGVuZ3RoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNv
bnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4dCwgV1RGOjpW
ZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6
VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJikge30KKyAgICAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcios
IGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja1JlcXVlc3QmKSB7IH0KIAogICAgICAgICB2b2lkIHVw
ZGF0ZVNwZWxsQ2hlY2tpbmdMYW5ndWFnZShjb25zdCBjaGFyKik7CiAgICAgcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgK
aW5kZXggNWE5YjkxNzBiNWQ2MjA3MWRmNDgxY2MzMjk0MGRhNzJmYjUxYWExYy4uNmRjNjNjNzI1
ZjhiMzk5N2RlYjRkOWNkZDNhOTljM2I3ZjA2ZWYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTEzNSw3ICsxMzUsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6
U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RG
OjpTdHJpbmc+JiBndWVzc2VzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElu
cHV0TWV0aG9kU3RhdGUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRo
b2RTdGF0ZShib29sIGVuYWJsZWQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRl
eHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0cmluZyYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIq
LCBjb25zdCBXZWJDb3JlOlRleHRDaGVja1JlcXVlc3QmKSBPVkVSUklERTsKICNpZiAhZGVmaW5l
ZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVj
dGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5k
aW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29u
c3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVy
bmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlz
bWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlv
blBhbmVsKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCBmMWM1NTEwYmYxMTAyYzhlZjhhZmUzOWUzMDlh
ODI0OWExN2UwNTZjLi5kNjdhYzMyYmY0MjJkNzA4MjIwNGMzZWQ2Y2Y1Mjg3MWE0ZmQ0Nzc2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50Lm1tCkBAIC05NzIsMTUgKzk3MiwxNSBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2V0SW5w
dXRNZXRob2RTdGF0ZShib29sKQogQGVuZAogI2VuZGlmCiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50
OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqIHNlbmRlciwg
aW50IHNlcXVlbmNlLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVja2luZ1R5cGVz
LCBjb25zdCBTdHJpbmcmIHRleHQpCit2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiBzZW5kZXIsIGNvbnN0IFdlYkNvcmU6
OlRleHRDaGVja1JlcXVlc3QmIHJlcXVlc3QpCiB7CiAjaWZuZGVmIEJVSUxESU5HX09OX0xFT1BB
UkQKLSAgICBOU1JhbmdlIHJhbmdlID0gTlNNYWtlUmFuZ2UoMCwgdGV4dC5sZW5ndGgoKSk7Cisg
ICAgTlNSYW5nZSByYW5nZSA9IE5TTWFrZVJhbmdlKDAsIHJlcXVlc3QudGV4dCgpLmxlbmd0aCgp
KTsKICAgICBOU1J1bkxvb3AqIGN1cnJlbnRMb29wID0gW05TUnVuTG9vcCBjdXJyZW50UnVuTG9v
cF07Ci0gICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nOnRleHQgcmFuZ2U6cmFuZ2UgdHlwZXM6TlNUZXh0Q2hlY2tpbmdBbGxTeXN0
ZW1UeXBlcyBvcHRpb25zOjAgaW5TcGVsbERvY3VtZW50V2l0aFRhZzowIAorICAgIFtbTlNTcGVs
bENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpyZXF1
ZXN0LnRleHQoKSByYW5nZTpyYW5nZSB0eXBlczpOU1RleHRDaGVja2luZ0FsbFN5c3RlbVR5cGVz
IG9wdGlvbnM6MCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOjAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXI6XihOU0ludGVnZXIsIE5TQXJy
YXkqIHJlc3VsdHMsIE5TT3J0aG9ncmFwaHkqLCBOU0ludGVnZXIpIHsKICAgICAgICAgICAgIFtj
dXJyZW50TG9vcCBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKHBlcmZvcm0pIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDpbW1tXZWJFZGl0b3JTcGVsbENoZWNrUmVz
cG9uZGVyIGFsbG9jXSBpbml0V2l0aFNlbmRlcjpzZW5kZXIgc2VxdWVuY2U6c2VxdWVuY2UgdHlw
ZXM6Y2hlY2tpbmdUeXBlcyByZXN1bHRzOnJlc3VsdHNdIGF1dG9yZWxlYXNlXQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDpbW1tXZWJFZGl0b3JTcGVsbENoZWNrUmVz
cG9uZGVyIGFsbG9jXSBpbml0V2l0aFNlbmRlcjpzZW5kZXIgc2VxdWVuY2U6cmVxdWVzdC5zZXF1
ZW5jZSgpIHR5cGVzOnJlcXVlc3QubWFzaygpIHJlc3VsdHM6cmVzdWx0c10gYXV0b3JlbGVhc2Vd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50Om5pbCBvcmRlcjowIG1v
ZGVzOltOU0FycmF5IGFycmF5V2l0aE9iamVjdDpOU0RlZmF1bHRSdW5Mb29wTW9kZV1dOwogICAg
ICAgICB9XTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9UZXh0Q2hlY2tlckNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L1RleHRDaGVja2VyQ2xpZW50UXQuaAppbmRleCBlNzhjZTFkMTBjMDVkMjM1YTZhNTRiM2Ji
YmVhN2VlYTlhY2U4NDgzLi5jYzRkZjBhMjE2ZmZmM2JiOGFhOGVkNmJiZGRkNzgxODIwMzc1ZDlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2Vy
Q2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVj
a2VyQ2xpZW50UXQuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJp
bmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5n
JiBtaXNzcGVsbGVkV29yZCk7CiAgICAgdmlydHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5n
KGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgVmVjdG9yPEdyYW1tYXJEZXRhaWw+JiwgaW50KiBi
YWRHcmFtbWFyTG9jYXRpb24sIGludCogYmFkR3JhbW1hckxlbmd0aCk7CiAgICAgdmlydHVhbCB2
b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBj
b250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgVGV4dENoZWNraW5nVHlwZU1h
c2ssIGNvbnN0IFN0cmluZyYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhTcGVsbENoZWNrZXIqLCBjb25zdCBUZXh0Q2hlY2tSZXF1ZXN0JikgeyB9CiAKICAg
ICB2aXJ0dWFsIGJvb2wgaXNDb250aW5vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOwogICAgIHZp
cnR1YWwgdm9pZCB0b2dnbGVDb250aW5vdXNTcGVsbENoZWNraW5nKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDI4YTkx
MDVlZmI2NGVlODE1NWFkMGRlOTcyZjFjOGY3YTE1OTkzMmEuLjRiNDIxY2E3MTdjYTlmNDEwMDVj
YWJjOWEwYTZjMDBjMDRkNjdjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xMTAsNyArMTEwLDggQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6
VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJikge30KKyAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgY29u
c3QgV2ViQ29yZTo6VGV4dENoZWNrUmVxdWVzdCYpIHsgfQorCiAgICAgdmlydHVhbCBXZWJDb3Jl
OjpUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFdpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFdpbkNFLmgKaW5kZXggYzI5NTI0ZTFhMjZmNDBjM2RkMDA0YTIyYTI2NzEyZjYw
ZTZkNWM0OS4uMjgyNmE2MWI2NmQwZDliMjc5NTNmODEyMjA0NDMzZjIwYjM2MDMwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5D
RS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
V2luQ0UuaApAQCAtMTAxLDcgKzEwMSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5n
JiBjb250ZXh0LCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1
YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJ
bnB1dE1ldGhvZFN0YXRlKGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2lu
Z1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CisgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6
OlRleHRDaGVja1JlcXVlc3QmKSB7IH0KICAgICB2aXJ0dWFsIFdlYkNvcmU6OlRleHRDaGVja2Vy
Q2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJuIHRoaXM7IH0KIAogcHJpdmF0ZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcAppbmRleCAxOWVmN2RjNGYyM2EzMjAzYzdmOThmMTU5NTUxMzk1ZTA0
M2E0YTA3Li4wOGQ4YWM5NmM5ZTk3Y2ZiMWIyNGRlNjdjYzU4ZDEyODI3Y2FhNTdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwCkBAIC00NDcsNyArNDQ3LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGll
bnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQog
Ci12b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6
U3BlbGxDaGVja2VyKiwgaW50LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3Qg
V1RGOjpTdHJpbmcmKQordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja1JlcXVl
c3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRl
eCAyNjAwMjBmZjI2ZGVkZDE3MDE1ZWU2YWJhNGIyMmQwMjllMzM4MDg5Li5mM2JmYjAxZDU0YTk0
ODg0MTNhMDVjOTNhMGM5MTc1YTgwODE5ODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTE0
MSw3ICsxNDEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29y
ZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmlu
Zz4mIGd1ZXNzZXMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRo
b2RTdGF0ZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRl
KGJvb2wgZW5hYmxlZCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNr
aW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0
IFdlYkNvcmU6OlRleHRDaGVja1JlcXVlc3QmKSBPVkVSUklERTsKICNpZiBQTEFURk9STShNQUMp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICB2aXJ0dWFsIHZvaWQg
c2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5
cGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50
U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmlu
Z3MpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKFdl
YkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwpIE9WRVJSSURFOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128418</attachid>
            <date>2012-02-23 00:18:34 -0800</date>
            <delta_ts>2012-02-23 01:22:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79320-20120223171833.patch</filename>
            <type>text/plain</type>
            <size>31385</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTljNGI5ODMwMmI1MDRk
NGFlZDdjMzE5MmQ0MDYyZjVmNjFlOTc0ZC4uYTA4ODc0MDMwNWNiNTY5NDExODA2MDI0MDA2NjM4
NjhlZjcxMTEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTAyLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNr
UmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhh
cHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZWJLaXQgY2xpZW50cyBzaG91bGQgYmUgYWJsZSB0byBnZXQgdGhlIGNvbnRleHQgaG93IHRoZSBz
cGVsbGNoZWNrIGhhcHBlbmRlZC4KKyAgICAgICAgRm9yIGV4YW1wbGUsIFdlYktpdCBjbGllbnRz
IG1heSB3YW50IHRvIGNoYW5nZSB0aGUgYmVoYXZpb3IgYnkgYSBzcGVsbGNoZWNrIHJlcXVlc3Qg
aXMKKyAgICAgICAgaW52b2tlZCBpbiB0eXBpbmcgb3IgaW4gcGFzdGluZy4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZGVkIGFuIGVudW0gaW4gU3BlbGxDaGVja1JlcXVlc3Qgc28gdGhhdCBXZWJL
aXQgY2xpZW50cyBjYW4gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4KKworICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVwbGFjZVNlbGVjdGlv
bldpdGhGcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Om1hcmtBbGxNaXNzcGVs
bGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXMpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVj
a2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0OjpTcGVsbENoZWNr
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aW52b2tlUmVxdWVzdCk6CisgICAgICAg
ICogZWRpdGluZy9TcGVsbENoZWNrZXIuaDoKKyAgICAgICAgKFNwZWxsQ2hlY2tSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0Ojp0ZXh0Q2hlY2tpbmdSZXF1ZXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0Ojpwcm9jZXNzVHlwZSk6Cisg
ICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlU
ZXh0Q2hlY2tlckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIHBs
YXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoVGV4dENoZWNrZXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENo
ZWNraW5nLmg6CisgICAgICAgIChUZXh0Q2hlY2tpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRDaGVja2luZ1JlcXVlc3Q6OlRleHRDaGVja2luZ1JlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdDo6c2V0U2VxdWVuY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dENoZWNraW5nUmVxdWVzdDo6c2VxdWVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dENoZWNraW5nUmVxdWVzdDo6dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdSZXF1ZXN0OjptYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3Q6
OnByb2Nlc3NUeXBlKToKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTAyLTIyICBLZW50YXJv
IEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBFbmFibGUgR2VvbG9jYXRp
b24gYmluZGluZ3MgZm9yIEdPYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4
IGRiOGI0MTBjODcxMmNjNWZhZjZiOWJhYmNmZTgzOTc4N2ZkYmVlYzkuLjE0ZTk2ODUzNTg1N2Q0
ZWZkNWMyZTM0NTBiNGMxZjE4NTQ1NjBiNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTIyICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFr
QGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNrUmVxdWVzdCBuZWVkcyB0byBrbm93
IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhhcHBlbmVkLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50Qmxh
Y2tCZXJyeTo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaDoKKyAgICAgICAgKEVkaXRvckNsaWVudEJsYWNr
QmVycnkpOgorCiAyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlv
biBpbiBFZGl0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZDIwYmFkZjQwNDU5NWNk
ZDY2MjliNDYzMzJmZjFkNmM1NThkNTk5OC4uMmQ1OTFkYjIzYmYxNTk2MzlkOGIxNjA2Yzk3OGNk
MGFhZWJjMDY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxMi0wMi0yMiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgU3BlbGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0
aGUgc3BlbGxjaGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkVkaXRvckNsaWVudEltcGw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAg
KiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50SW1wbCk6Cisg
ICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
SW1wbDo6cmVxdWVzdFRleHRDaGVja2luZyk6CisKIDIwMTItMDItMjIgIERhbmEgSmFuc2VucyAg
PGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBBZGQgdW5pdCB0ZXN0
IGZvciBzdXJmYWNlIG9jY2x1c2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGFhNjI5NzAyN2Q4OGU3
YjRkODdjMDM1OTAwZTNhNmE4Y2NiYjM0ODUuLmQ5OTQzZWQxZGU2NzJlZDlmMTBlOGVlOTIxOGIx
Mjg1N2VjY2ZjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0y
MiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3Bl
bGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3BlbGxj
aGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5oOgorICAgICAgICAo
V2ViS2l0OjpUZXh0Q2hlY2tlckNsaWVudEd0azo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgor
CiAyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0
b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCBlZTJmZGI3YzlkM2NjZTIzYjZlNGE1MmRkNGM5YTczY2Jh
NjNhYmIyLi43N2Y2NmEwMDEyNmU2ZGUyOWIyYTY0MDMzMjQyZTU4NTA2MTg5MzQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMjIgIFNoaW55YSBLYXdhbmFrYSAg
PHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNwZWxsQ2hlY2tSZXF1ZXN0IG5lZWRz
IHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUgdGhlIHNwZWxsY2hlY2sgaGFwcGVuZWQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTMyMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyk6CisKIDIwMTItMDItMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmVtb3ZlIHRoZSByZW1haW5pbmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9u
IGluIEVkaXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBkYTVlYjg3N2U0ZjZiNzk3YzQwMzFkZmVkMGQz
MWRjYWNlYzgyOTFiLi41NzM5NzdjMjI2YjFmZjk2M2ZhODYxNGMxYmFkNmIxMjUzZmYyNjk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTIyICBTaGlueWEgS2F3YW5h
a2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNrUmVxdWVzdCBu
ZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhhcHBlbmVkLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVj
a2VyQ2xpZW50UXQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMi0wMi0yMSAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdGhlIHJlbWFp
bmluZyB1c2VzIG9mIENTU1N0eWxlRGVjbGFyYXRpb24gaW4gRWRpdG9yCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
aW5kZXggODYyYTljMzZiOGRlYzkwOTM3ZjNkYzVkMGE3YWIwYmVlOWI1MmVkNS4uOWUyZGQxNjM5
NjdlZWNiODkzNWJlMTIxOTJkM2IzYWVmYWNjYzZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDEyLTAyLTIyICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBTcGVsbENoZWNrUmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250
ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhhcHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6
CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQpOgorCiAyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMg
b2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXgg
ODAyYTRlYzhiZDBjODljZDI2ODk0ZmIyNjFlNzlmNWUyMGM2NDc1YS4uMTg5ZTM1MmZlODJjMzE4
NDQwMzY0M2Y4NDU2NDE1M2Q0YWQ0NjVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxMi0wMi0yMiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgU3BlbGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25vdyB0aGUgY29udGV4
dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5D
RS5oOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRXaW5DRTo6cmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcpOgorCiAyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJh
dGlvbiBpbiBFZGl0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1YWEyMDZmMThmMzgzMThjNzUxZmRmNDFmMGIy
NGFmZjkyZmZlYjk5Li5hM2E4ZGEzMGRkNzNjZTFiMzJiNjUyZWEzYzZjYTRmNmM5ZWJiNjRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMjIgIFNoaW55YSBLYXdhbmFrYSAg
PHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNwZWxsQ2hlY2tSZXF1ZXN0IG5lZWRz
IHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUgdGhlIHNwZWxsY2hlY2sgaGFwcGVuZWQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTMyMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJF
ZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDEyLTAyLTIyICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRldmljZVNjYWxlRmFjdG9yRGlkQ2hh
bmdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggMTNiYjdlNzVmN2NjOTU1ODdkMThj
NDQyMDVmYTY3ODhjODUxMWM1Yy4uMWNlMjRlNTM4ZDQzNTdmMWUzZTJkYmE4MGM0NGI0YTU4NGMy
YTA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtNDE4LDcgKzQxOCw3IEBAIHZv
aWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gZnJhZ21lbnQsCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxSYW5n
ZT4gcmFuZ2VUb0NoZWNrID0gUmFuZ2U6OmNyZWF0ZShtX2ZyYW1lLT5kb2N1bWVudCgpLCBmaXJz
dFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0NoZWNrKSwgbGFzdFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0No
ZWNrKSk7Ci0gICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2luZ0ZvcihTcGVsbENoZWNr
UmVxdWVzdDo6Y3JlYXRlKHJlc29sdmVUZXh0Q2hlY2tpbmdUeXBlTWFzayhUZXh0Q2hlY2tpbmdU
eXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciksIHJhbmdlVG9DaGVjaywgcmFu
Z2VUb0NoZWNrKSk7CisgICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2luZ0ZvcihTcGVs
bENoZWNrUmVxdWVzdDo6Y3JlYXRlKHJlc29sdmVUZXh0Q2hlY2tpbmdUeXBlTWFzayhUZXh0Q2hl
Y2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciksIFRleHRDaGVja2lu
Z1Byb2Nlc3NCYXRjaCwgcmFuZ2VUb0NoZWNrLCByYW5nZVRvQ2hlY2spKTsKIH0KIAogdm9pZCBF
ZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wg
c2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlKQpAQCAtMTkzNSw3ICsxOTM1LDcg
QEAgdm9pZCBFZGl0b3I6Om1hcmtBbGxNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXMo
VGV4dENoZWNraW5nVHlwZU1hc2sgdGV4dEMKICAgICBib29sIGFzeW5jaHJvbm91cyA9IG1fZnJh
bWUgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpLT5hc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpICYmICFzaG91bGRTaG93Q29ycmVjdGlvblBhbmVs
OwogCiAgICAgLy8gSW4gYXN5bmNocm9ub3VzIG1vZGUsIHdlIGludGVudGlvbmFsbHkgY2hlY2sg
cGFyYWdyYXBoLXdpZGUgc2VudGVuY2UuCi0gICAgUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBy
ZXF1ZXN0ID0gU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShyZXNvbHZlVGV4dENoZWNraW5nVHlw
ZU1hc2sodGV4dENoZWNraW5nT3B0aW9ucyksIGFzeW5jaHJvbm91cyA/IHBhcmFncmFwaFJhbmdl
IDogcmFuZ2VUb0NoZWNrLCBwYXJhZ3JhcGhSYW5nZSk7CisgICAgUmVmUHRyPFNwZWxsQ2hlY2tS
ZXF1ZXN0PiByZXF1ZXN0ID0gU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShyZXNvbHZlVGV4dENo
ZWNraW5nVHlwZU1hc2sodGV4dENoZWNraW5nT3B0aW9ucyksIFRleHRDaGVja2luZ1Byb2Nlc3NJ
bmNyZW1lbnRhbCwgYXN5bmNocm9ub3VzID8gcGFyYWdyYXBoUmFuZ2UgOiByYW5nZVRvQ2hlY2ss
IHBhcmFncmFwaFJhbmdlKTsKIAogICAgIGlmIChhc3luY2hyb25vdXMpIHsKICAgICAgICAgbV9z
cGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2luZ0ZvcihyZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvU3BlbGxDaGVja2VyLmNwcAppbmRleCA2ODM2NDRjNmQwMTVlYzkyOWY1MmY4NTlkMzM2
ZGI3ZTgyZjEyYzk1Li5jODRhYWY1NGY5OTQ2YmZhMzQ3ODEwN2Y3ZjAxZWE2Y2FiZTFhN2YyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBAIC00NywxMiArNDcsMTMg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgaW50IHVucmVxdWVzdGVkU2Vx
dWVuY2UgPSAtMTsKIAotU3BlbGxDaGVja1JlcXVlc3Q6OlNwZWxsQ2hlY2tSZXF1ZXN0KGludCBz
ZXF1ZW5jZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5n
ZT4gcGFyYWdyYXBoUmFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgVGV4dENoZWNraW5nVHlwZU1h
c2sgbWFzaykKK1NwZWxsQ2hlY2tSZXF1ZXN0OjpTcGVsbENoZWNrUmVxdWVzdChpbnQgc2VxdWVu
Y2UsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBh
cmFncmFwaFJhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIFRleHRDaGVja2luZ1R5cGVNYXNrIG1h
c2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlIHByb2Nlc3NUeXBlKQogICAgIDogbV9zZXF1ZW5j
ZShzZXF1ZW5jZSkKLSAgICAsIG1fY2hlY2tpbmdSYW5nZShjaGVja2luZ1JhbmdlKQotICAgICwg
bV9wYXJhZ3JhcGhSYW5nZShwYXJhZ3JhcGhSYW5nZSkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAg
ICwgbV9tYXNrKG1hc2spCisgICAgLCBtX3Byb2Nlc3NUeXBlKHByb2Nlc3NUeXBlKQorICAgICwg
bV9jaGVja2luZ1JhbmdlKGNoZWNraW5nUmFuZ2UpCisgICAgLCBtX3BhcmFncmFwaFJhbmdlKHBh
cmFncmFwaFJhbmdlKQogICAgICwgbV9yb290RWRpdGFibGVFbGVtZW50KG1fY2hlY2tpbmdSYW5n
ZS0+c3RhcnRDb250YWluZXIoKS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpKQogewogfQpAQCAtNjIs
NyArNjMsNyBAQCBTcGVsbENoZWNrUmVxdWVzdDo6flNwZWxsQ2hlY2tSZXF1ZXN0KCkKIH0KIAog
Ly8gc3RhdGljCi1QYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBTcGVsbENoZWNrUmVxdWVz
dDo6Y3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrIHRleHRDaGVja2luZ09wdGlvbnMsIFBhc3NS
ZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJh
bmdlKQorUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gU3BlbGxDaGVja1JlcXVlc3Q6OmNy
ZWF0ZShUZXh0Q2hlY2tpbmdUeXBlTWFzayB0ZXh0Q2hlY2tpbmdPcHRpb25zLCBUZXh0Q2hlY2tp
bmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5n
ZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UpCiB7CiAgICAgQVNTRVJUKGNoZWNr
aW5nUmFuZ2UpOwogICAgIEFTU0VSVChwYXJhZ3JhcGhSYW5nZSk7CkBAIC03MSw3ICs3Miw3IEBA
IFBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUo
VGV4dENoZWNraW5nVHlwZU1hc2sgdGV4CiAgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQogICAgICAg
ICByZXR1cm4gUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4oKTsKIAotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU3BlbGxDaGVja1JlcXVlc3QodW5yZXF1ZXN0ZWRTZXF1ZW5jZSwgY2hlY2tp
bmdSYW5nZSwgcGFyYWdyYXBoUmFuZ2UsIHRleHQsIHRleHRDaGVja2luZ09wdGlvbnMpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWxsQ2hlY2tSZXF1ZXN0KHVucmVxdWVzdGVkU2VxdWVu
Y2UsIGNoZWNraW5nUmFuZ2UsIHBhcmFncmFwaFJhbmdlLCB0ZXh0LCB0ZXh0Q2hlY2tpbmdPcHRp
b25zLCBwcm9jZXNzVHlwZSkpOwogfQogCiAKQEAgLTE0NSw3ICsxNDYsNyBAQCB2b2lkIFNwZWxs
Q2hlY2tlcjo6aW52b2tlUmVxdWVzdChQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1
ZXN0KQogICAgIEFTU0VSVCghbV9wcm9jZXNzaW5nUmVxdWVzdCk7CiAKICAgICBtX3Byb2Nlc3Np
bmdSZXF1ZXN0ID0gcmVxdWVzdDsKLSAgICBjbGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcodGhpcywgbV9wcm9jZXNzaW5nUmVxdWVzdC0+c2VxdWVuY2UoKSwgbV9wcm9jZXNzaW5nUmVx
dWVzdC0+bWFzaygpLCBtX3Byb2Nlc3NpbmdSZXF1ZXN0LT50ZXh0KCkpOworICAgIGNsaWVudCgp
LT5yZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyh0aGlzLCByZXF1ZXN0LT50ZXh0Q2hlY2tpbmdSZXF1
ZXN0KCkpOwogfQogCiB2b2lkIFNwZWxsQ2hlY2tlcjo6ZW5xdWV1ZVJlcXVlc3QoUGFzc1JlZlB0
cjxTcGVsbENoZWNrUmVxdWVzdD4gcmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU3BlbGxDaGVja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hl
Y2tlci5oCmluZGV4IDIwMzA2ZGExYTU5MzZlMmZmNTRmOWJlMmIyYWYzZjI1ZTk4NzAyNWIuLjA3
ZjUxZTQzMTgzZTIzYzhlZTU0MjJhMGE3NTlkNWU1YzhhNjhmZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9TcGVsbENoZWNrZXIuaApAQCAtNDYsMTAgKzQ2LDEyIEBAIHN0cnVjdCBUZXh0Q2hlY2tp
bmdSZXN1bHQ7CiAKIGNsYXNzIFNwZWxsQ2hlY2tSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8
U3BlbGxDaGVja1JlcXVlc3Q+IHsKIHB1YmxpYzoKLSAgICBTcGVsbENoZWNrUmVxdWVzdChpbnQg
c2VxdWVuY2UsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFu
Z2U+IHBhcmFncmFwaFJhbmdlLCBjb25zdCBTdHJpbmcmLCBUZXh0Q2hlY2tpbmdUeXBlTWFzayk7
CisgICAgU3BlbGxDaGVja1JlcXVlc3QoaW50IHNlcXVlbmNlLCBQYXNzUmVmUHRyPFJhbmdlPiBj
aGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3Ry
aW5nJiwgVGV4dENoZWNraW5nVHlwZU1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlKTsKICAg
ICB+U3BlbGxDaGVja1JlcXVlc3QoKTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNwZWxsQ2hl
Y2tSZXF1ZXN0PiBjcmVhdGUoVGV4dENoZWNraW5nVHlwZU1hc2ssIFBhc3NSZWZQdHI8UmFuZ2U+
IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gY3JlYXRlKFRleHRDaGVja2luZ1R5
cGVNYXNrLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tp
bmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UpOworCisgICAgVGV4dENo
ZWNraW5nUmVxdWVzdCB0ZXh0Q2hlY2tpbmdSZXF1ZXN0KCkgY29uc3Q7CiAKICAgICB2b2lkIHNl
dFNlcXVlbmNlKGludCBzZXF1ZW5jZSkgeyBtX3NlcXVlbmNlID0gc2VxdWVuY2U7IH0KICAgICBp
bnQgc2VxdWVuY2UoKSBjb25zdCB7IHJldHVybiBtX3NlcXVlbmNlOyB9CkBAIC01NywxNCArNTks
MTUgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKCkgY29u
c3QgeyByZXR1cm4gbV9wYXJhZ3JhcGhSYW5nZTsgfQogICAgIGNvbnN0IFN0cmluZyYgdGV4dCgp
IGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQogICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2so
KSBjb25zdCB7IHJldHVybiBtX21hc2s7IH0KKyAgICBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBw
cm9jZXNzVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc1R5cGU7IH0KICAgICBQYXNzUmVm
UHRyPEVsZW1lbnQ+IHJvb3RFZGl0YWJsZUVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RF
ZGl0YWJsZUVsZW1lbnQ7IH0KIHByaXZhdGU6Ci0KICAgICBpbnQgbV9zZXF1ZW5jZTsKLSAgICBS
ZWZQdHI8UmFuZ2U+IG1fY2hlY2tpbmdSYW5nZTsKLSAgICBSZWZQdHI8UmFuZ2U+IG1fcGFyYWdy
YXBoUmFuZ2U7CiAgICAgU3RyaW5nIG1fdGV4dDsKICAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBt
X21hc2s7CisgICAgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgbV9wcm9jZXNzVHlwZTsKKyAgICBS
ZWZQdHI8UmFuZ2U+IG1fY2hlY2tpbmdSYW5nZTsKKyAgICBSZWZQdHI8UmFuZ2U+IG1fcGFyYWdy
YXBoUmFuZ2U7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fcm9vdEVkaXRhYmxlRWxlbWVudDsKIH07
CiAKQEAgLTEwOSw2ICsxMTIsMTEgQEAgcHJpdmF0ZToKICAgICBSZXF1ZXN0UXVldWUgbV9yZXF1
ZXN0UXVldWU7CiB9OwogCitpbmxpbmUgVGV4dENoZWNraW5nUmVxdWVzdCBTcGVsbENoZWNrUmVx
dWVzdDo6dGV4dENoZWNraW5nUmVxdWVzdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFRleHRDaGVj
a2luZ1JlcXVlc3QobV9zZXF1ZW5jZSwgbV90ZXh0LCBtX21hc2ssIG1fcHJvY2Vzc1R5cGUpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTcGVsbENoZWNrZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDIzNTJjMjg3NmQyMTgxMzRkMGJl
YTY0MjU0NzgxYmU4MWU2NjAwZTguLjhjNGYwMGE1MjA1MjBhNjY3ZjhlNTc1NjVlYWU2MmJiMGNh
M2ZhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTQzMiw3ICs0MzIs
NyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29y
ZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIHsgfQotICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQs
IFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgY29uc3QgVGV4dENoZWNr
aW5nUmVxdWVzdCYpIHsgfQogfTsKIAogY2xhc3MgRW1wdHlFZGl0b3JDbGllbnQgOiBwdWJsaWMg
RWRpdG9yQ2xpZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dENoZWNrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENo
ZWNrZXJDbGllbnQuaAppbmRleCBkMTZhZGUxNjQ2MGFkNzBmMzdlYjllOGQ0MTRkZjYxZjY3Y2Zj
OGQzLi42YjBmYTgwNTM2MGVkYWI3OGNlZGQ1ODNhMmJkMzM2OTIwNzFlNTllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oCkBAIC0zNyw2
ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNwZWxsQ2hlY2tlcjsKK2Ns
YXNzIFRleHRDaGVja2luZ1JlcXVlc3Q7CiAKIHN0cnVjdCBHcmFtbWFyRGV0YWlsIHsKICAgICBp
bnQgbG9jYXRpb247CkBAIC03MSw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICAvLyBwcm92aWRlIG1v
cmUgYWNjdXJhdGUgY29ycmVjdGlvbiBzdWdnZXN0aW9ucy4gQ2FsbGVyIGNhbiBwYXNzIGluIG1v
cmUgdGV4dCBpbiAiY29udGV4dCIgdG8gYWlkIHN1Y2ggc3BlbGxjaGVja2VycyBvbiBsYW5ndWFn
ZQogICAgIC8vIGlkZW50aWZpY2F0aW9uLiBOb3JhbWxseSBpdCdzIHRoZSB0ZXh0IHN1cnJvdW5k
aW5nIHRoZSAid29yZCIgZm9yIHdoaWNoIHdlIGFyZSBnZXR0aW5nIGNvcnJlY3Rpb24gc3VnZ2Vz
dGlvbnMuCiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYg
d29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIq
LCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGNvbnN0IFRl
eHRDaGVja2luZ1JlcXVlc3QmKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0Q2hlY2tpbmcuaAppbmRleCA5NjdlYWM1YjM2NTNiZmRiYjFiMTFmOGQ0NmI0
M2ViYTljNTIyODEwLi5iZTllZDVmOWU4NWZjZGU4MDExNjhjMzM5M2VmZDQ5NTE4NzZkYzEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmgKQEAgLTMxLDYg
KzMxLDggQEAKICNpZm5kZWYgVGV4dENoZWNraW5nX2gKICNkZWZpbmUgVGV4dENoZWNraW5nX2gK
IAorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICNkZWZpbmUgV1RGX1VTRV9HUkFNTUFSX0NIRUNLSU5HIDEKQEAgLTYxLDYgKzYzLDM0IEBA
IGVudW0gVGV4dENoZWNraW5nVHlwZSB7CiAKIHR5cGVkZWYgdW5zaWduZWQgVGV4dENoZWNraW5n
VHlwZU1hc2s7CiAKK2VudW0gVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgeworICAgIFRleHRDaGVj
a2luZ1Byb2Nlc3NCYXRjaCwKKyAgICBUZXh0Q2hlY2tpbmdQcm9jZXNzSW5jcmVtZW50YWwKK307
CisKK2NsYXNzIFRleHRDaGVja2luZ1JlcXVlc3QgeworcHVibGljOgorICAgIFRleHRDaGVja2lu
Z1JlcXVlc3QoaW50IHNlcXVlbmNlLCBTdHJpbmcgdGV4dCwgVGV4dENoZWNraW5nVHlwZU1hc2sg
bWFzaywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUpCisgICAgICAgIDogbV9z
ZXF1ZW5jZShzZXF1ZW5jZSkKKyAgICAgICAgLCBtX3RleHQodGV4dCkKKyAgICAgICAgLCBtX21h
c2sobWFzaykKKyAgICAgICAgLCBtX3Byb2Nlc3NUeXBlKHByb2Nlc3NUeXBlKQorICAgIHsKKyAg
ICB9CisKKyAgICB2b2lkIHNldFNlcXVlbmNlKGludCBzZXF1ZW5jZSkgeyBtX3NlcXVlbmNlID0g
c2VxdWVuY2U7IH0KKyAgICBpbnQgc2VxdWVuY2UoKSBjb25zdCB7IHJldHVybiBtX3NlcXVlbmNl
OyB9CisgICAgU3RyaW5nIHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KKyAgICBUZXh0
Q2hlY2tpbmdUeXBlTWFzayBtYXNrKCkgY29uc3QgeyByZXR1cm4gbV9tYXNrOyB9CisgICAgVGV4
dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nl
c3NUeXBlOyB9CisKK3ByaXZhdGU6CisgICAgaW50IG1fc2VxdWVuY2U7CisgICAgU3RyaW5nIG1f
dGV4dDsKKyAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtX21hc2s7CisgICAgVGV4dENoZWNraW5n
UHJvY2Vzc1R5cGUgbV9wcm9jZXNzVHlwZTsKK307CisKIH0KIAogI2VuZGlmIC8vIFRleHRDaGVj
a2luZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggZDNjMzdlZTk0
NGM0YjdkODdjZjUyMjdlZTU5NGUxMGZkODZjNTE3ZS4uMGU0NDQxZDgyNzZkYzY4NmM5OWIwOGE5
OTI4MWFkYzNmNjc2NTQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcApA
QCAtNTU4LDcgKzU1OCw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6Y2hlY2tHcmFt
bWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQsIFdURjo6VmVjdG9yCiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25z
dCBTdHJpbmcmKQordm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhTcGVsbENoZWNrZXIqLCBjb25zdCBUZXh0Q2hlY2tpbmdSZXF1ZXN0JikKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmgKaW5k
ZXggYmZmYTg4MTgwNmQ2NDcxMTA0YjkyMWQ4ZDFlODc2ZjQ3Y2U0ZTU2NS4uNTRhMzEwMDkwMDAy
OThlODkxZjA3M2RkNzU3YzAyZWY1MWUwMTdlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tC
ZXJyeS5oCkBAIC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRB
dXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmIG1pc3Nw
ZWxsZWRXb3JkKTsKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3Qg
VUNoYXIqLCBpbnQsIFZlY3RvcjxHcmFtbWFyRGV0YWlsLCAwdT4mLCBpbnQqLCBpbnQqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiwgVmVjdG9yPFN0cmluZz4mKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3Qg
U3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxs
Q2hlY2tlciosIGNvbnN0IFRleHRDaGVja2luZ1JlcXVlc3QmKTsKIAogICAgIHZpcnR1YWwgVGV4
dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNw
ZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhjb25zdCBTdHJpbmcmLCBjb25zdCBHcmFtbWFyRGV0
YWlsJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGll
bnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwu
Y3BwCmluZGV4IDAzM2Q0NmQ1OGMyZjc5NTQ3OWUwYTA0MjllMzZkZjkxNzNkZDVlOTYuLjkzNDI4
MWEyOTIxZDllZTY3OTJkNGJlN2E3Mzc3NWE0ZjA3OWI2ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCkBAIC03MjksMTAgKzcyOSwxMCBA
QCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25zdCBVQ2hh
ciogdGV4dCwgaW50IGxlbmd0aCwKICAgICAgICAgKm1pc3NwZWxsaW5nTGVuZ3RoID0gc3BlbGxM
ZW5ndGg7CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6cmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcoU3BlbGxDaGVja2VyKiBzZW5kZXIsIGludCBpZGVudGlmaWVyLCBUZXh0Q2hlY2tpbmdUeXBl
TWFzaywgY29uc3QgU3RyaW5nJiB0ZXh0KQordm9pZCBFZGl0b3JDbGllbnRJbXBsOjpyZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqIHNlbmRlciwgY29uc3QgV2ViQ29yZTo6VGV4
dENoZWNraW5nUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAobV93ZWJWaWV3LT5zcGVsbENo
ZWNrQ2xpZW50KCkpCi0gICAgICAgIG1fd2ViVmlldy0+c3BlbGxDaGVja0NsaWVudCgpLT5yZXF1
ZXN0Q2hlY2tpbmdPZlRleHQodGV4dCwgbmV3IFdlYlRleHRDaGVja2luZ0NvbXBsZXRpb25JbXBs
KGlkZW50aWZpZXIsIHNlbmRlcikpOworICAgICAgICBtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGll
bnQoKS0+cmVxdWVzdENoZWNraW5nT2ZUZXh0KHJlcXVlc3QudGV4dCgpLCBuZXcgV2ViVGV4dENo
ZWNraW5nQ29tcGxldGlvbkltcGwocmVxdWVzdC5zZXF1ZW5jZSgpLCBzZW5kZXIpKTsKIH0KIAog
U3RyaW5nIEVkaXRvckNsaWVudEltcGw6OmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3Nw
ZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKaW5kZXggOTk5ODYwYTAyNzI2OTQzMzYz
MzA1MzQ2M2M0MjJiY2RhZTg5MGNkNy4uYjE2N2I2YzJkNDY2YTRkZjJlZTBhYjNlMjQ5ZmU0MGMw
OTMyZjE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xp
ZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudElt
cGwuaApAQCAtMTA5LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vl
c3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBj
b250ZXh0LCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwg
dm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1
dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENo
ZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNv
cmU6OlRleHRDaGVja2luZ1JlcXVlc3QmKTsKIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6VGV4dENo
ZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCAyMTcwNGQ5N2UwMTJjOTFj
YWUwZTQ3OThmMzE0Y2ViNzI4Yjc3OTM1Li5hZGYyMDIzNzEwNTY5M2FlMTFhN2MyMTBlODA5ZmIz
YjdjN2YyNzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFt
ZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAKQEAgLTEzMDEsNyArMTMwMSw3IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpyZXF1ZXN0VGV4dENo
ZWNraW5nKGNvbnN0IFdlYkVsZW1lbnQmIHdlYkVsZW0pCiAKICAgICBSZWZQdHI8UmFuZ2U+IHJh
bmdlVG9DaGVjayA9IHJhbmdlT2ZDb250ZW50cyhjb25zdF9jYXN0PEVsZW1lbnQqPih3ZWJFbGVt
LmNvbnN0VW53cmFwPEVsZW1lbnQ+KCkpKTsKIAotICAgIGZyYW1lKCktPmVkaXRvcigpLT5zcGVs
bENoZWNrZXIoKS0+cmVxdWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUo
VGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIsIHJhbmdl
VG9DaGVjaywgcmFuZ2VUb0NoZWNrKSk7CisgICAgZnJhbWUoKS0+ZWRpdG9yKCktPnNwZWxsQ2hl
Y2tlcigpLT5yZXF1ZXN0Q2hlY2tpbmdGb3IoU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0
Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciwgVGV4dENoZWNr
aW5nUHJvY2Vzc0JhdGNoLCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVjaykpOwogfQogCiBib29s
IFdlYkZyYW1lSW1wbDo6aGFzU2VsZWN0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmggYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5oCmluZGV4IGU1
MzkwYmNjOTczOTQ3N2EyNzYwNDc5YzZlNDExMjM4Mjg1ZTEwZTYuLmIzZmEwNDk5NDk5Yzk4Y2Mx
NjNjY2M2NjYwNDVhMjFlNzY0ZDNkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRHdGsuaApAQCAtNDgsNyArNDgsNyBA
QCBjbGFzcyBUZXh0Q2hlY2tlckNsaWVudEd0ayA6IHB1YmxpYyBXZWJDb3JlOjpUZXh0Q2hlY2tl
ckNsaWVudCB7CiAgICAgICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdn
ZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwg
V1RGOjpWZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2Nh
dGlvbiwgaW50KiBiYWRHcmFtbWFyTGVuZ3RoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldEd1
ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYg
Y29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcios
IGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJikg
e30KKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6
OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3QmKSB7IH0K
IAogICAgICAgICB2b2lkIHVwZGF0ZVNwZWxsQ2hlY2tpbmdMYW5ndWFnZShjb25zdCBjaGFyKik7
CiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNWE5YjkxNzBiNWQ2MjA3MWRmNDgxY2MzMjk0MGRhNzJm
YjUxYWExYy4uYTE5ZTE0OGRhZjNhNWZhOTg4YWJkMjZkNmEzMjI1ZmFlMTc2Nzg4OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgK
QEAgLTEzNSw3ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNG
b3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4
dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIq
LCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0cmluZyYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJD
b3JlOjpTcGVsbENoZWNrZXIqLCBjb25zdCBXZWJDb3JlOlRleHRDaGVja2luZ1JlcXVlc3QmKSBP
VkVSUklERTsKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9u
UGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5n
JiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpSZWFzb25G
b3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCBmMWM1NTEw
YmYxMTAyYzhlZjhhZmUzOWUzMDlhODI0OWExN2UwNTZjLi40Nzg1NTMwMzRhNzgyM2JiMTg1NTcw
NGVkZGMyNWEzMjkyZjllMmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC05NzIsMTUgKzk3MiwxNSBAQCB2b2lkIFdl
YkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRob2RTdGF0ZShib29sKQogQGVuZAogI2VuZGlmCiAK
LXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpT
cGVsbENoZWNrZXIqIHNlbmRlciwgaW50IHNlcXVlbmNlLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdU
eXBlTWFzayBjaGVja2luZ1R5cGVzLCBjb25zdCBTdHJpbmcmIHRleHQpCit2b2lkIFdlYkVkaXRv
ckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiBz
ZW5kZXIsIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3QmIHJlcXVlc3QpCiB7CiAj
aWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKLSAgICBOU1JhbmdlIHJhbmdlID0gTlNNYWtlUmFu
Z2UoMCwgdGV4dC5sZW5ndGgoKSk7CisgICAgTlNSYW5nZSByYW5nZSA9IE5TTWFrZVJhbmdlKDAs
IHJlcXVlc3QudGV4dCgpLmxlbmd0aCgpKTsKICAgICBOU1J1bkxvb3AqIGN1cnJlbnRMb29wID0g
W05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF07Ci0gICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRT
cGVsbENoZWNrZXJdIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nOnRleHQgcmFuZ2U6cmFuZ2UgdHlw
ZXM6TlNUZXh0Q2hlY2tpbmdBbGxTeXN0ZW1UeXBlcyBvcHRpb25zOjAgaW5TcGVsbERvY3VtZW50
V2l0aFRhZzowIAorICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSByZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZzpyZXF1ZXN0LnRleHQoKSByYW5nZTpyYW5nZSB0eXBlczpOU1Rl
eHRDaGVja2luZ0FsbFN5c3RlbVR5cGVzIG9wdGlvbnM6MCBpblNwZWxsRG9jdW1lbnRXaXRoVGFn
OjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXI6XihOU0ludGVnZXIsIE5TQXJyYXkqIHJlc3VsdHMsIE5TT3J0aG9ncmFwaHkqLCBOU0lu
dGVnZXIpIHsKICAgICAgICAgICAgIFtjdXJyZW50TG9vcCBwZXJmb3JtU2VsZWN0b3I6QHNlbGVj
dG9yKHBlcmZvcm0pIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDpb
W1tXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGFsbG9jXSBpbml0V2l0aFNlbmRlcjpzZW5k
ZXIgc2VxdWVuY2U6c2VxdWVuY2UgdHlwZXM6Y2hlY2tpbmdUeXBlcyByZXN1bHRzOnJlc3VsdHNd
IGF1dG9yZWxlYXNlXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDpb
W1tXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGFsbG9jXSBpbml0V2l0aFNlbmRlcjpzZW5k
ZXIgc2VxdWVuY2U6cmVxdWVzdC5zZXF1ZW5jZSgpIHR5cGVzOnJlcXVlc3QubWFzaygpIHJlc3Vs
dHM6cmVzdWx0c10gYXV0b3JlbGVhc2VdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFyZ3VtZW50Om5pbCBvcmRlcjowIG1vZGVzOltOU0FycmF5IGFycmF5V2l0aE9iamVjdDpOU0Rl
ZmF1bHRSdW5Mb29wTW9kZV1dOwogICAgICAgICB9XTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudFF0LmggYi9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQuaAppbmRleCBl
NzhjZTFkMTBjMDVkMjM1YTZhNTRiM2JiYmVhN2VlYTlhY2U4NDgzLi5hZTQxOWIyNTBmOTdkMTM5
MjE0NGY2YTNkNmY0Mzc0MWQ3OGM0ODAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQuaApAQCAtNDcsNyArNDcsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlz
c3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJiBtaXNzcGVsbGVkV29yZCk7CiAgICAgdmlydHVhbCB2
b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgVmVjdG9y
PEdyYW1tYXJEZXRhaWw+JiwgaW50KiBiYWRHcmFtbWFyTG9jYXRpb24sIGludCogYmFkR3JhbW1h
ckxlbmd0aCk7CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmlu
ZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7
Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlcios
IGludCwgVGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFN0cmluZyYpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBjb25zdCBUZXh0
Q2hlY2tpbmdSZXF1ZXN0JikgeyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDb250aW5vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCgpOwogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVDb250aW5vdXNTcGVs
bENoZWNraW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCmluZGV4IDI4YTkxMDVlZmI2NGVlODE1NWFkMGRlOTcyZjFjOGY3YTE1
OTkzMmEuLjBmMjllOWUwZjk1OWY2MTY3ZTM4OTBmMmJkNTRkZmQwMWQ2MjNjZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBA
IC0xMTAsNyArMTEwLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1
dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9v
bCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNw
ZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdU
Rjo6U3RyaW5nJikge30KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmco
V2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVz
dCYpIHsgfQorCiAgICAgdmlydHVhbCBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCogdGV4dENo
ZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmggYi9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKaW5kZXggYzI5
NTI0ZTFhMjZmNDBjM2RkMDA0YTIyYTI2NzEyZjYwZTZkNWM0OS4uYzUzYzM5MzFmZTYwNzljMDEz
NzJkYjYxYzU1MmU5YWU1YmU3OGI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaApAQCAtMTAxLDcgKzEwMSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpT
dHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxXVEY6
OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RT
dGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpOwotICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNr
ZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0cmlu
ZyYpIHt9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6
OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3QmKSB7IH0K
ICAgICB2aXJ0dWFsIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsg
cmV0dXJuIHRoaXM7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCAx
OWVmN2RjNGYyM2EzMjAzYzdmOThmMTU5NTUxMzk1ZTA0M2E0YTA3Li5jNzQyMTY3ODY1NGJlN2Ey
YzU0MjRiYjBmMjkzY2VlYTU1Y2IyYjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC00
NDcsNyArNDQ3LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUo
Ym9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkVkaXRvckNsaWVudDo6
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBXZWJD
b3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgV1RGOjpTdHJpbmcmKQordm9pZCBXZWJF
ZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tl
ciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3QmKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCAyNjAwMjBmZjI2ZGVkZDE3MDE1
ZWU2YWJhNGIyMmQwMjllMzM4MDg5Li4yZmIzMTUwYmQ3MDI0NTBiZDFjZmU3NTM3YmUwY2E0YWNk
NjQwODJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTE0MSw3ICsxNDEsNyBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQs
IGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNw
ZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdU
Rjo6U3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09m
U3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2lu
Z1JlcXVlc3QmKSBPVkVSUklERTsKICNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5l
bChXZWJDb3JlOjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJl
cGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OlJlYXNvbkZvckRp
c21pc3NpbmdDb3JyZWN0aW9uUGFuZWwpIE9WRVJSSURFOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128430</attachid>
            <date>2012-02-23 01:22:36 -0800</date>
            <delta_ts>2012-02-23 18:26:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79320-20120223182234.patch</filename>
            <type>text/plain</type>
            <size>31397</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTljNGI5ODMwMmI1MDRk
NGFlZDdjMzE5MmQ0MDYyZjVmNjFlOTc0ZC4uYTA4ODc0MDMwNWNiNTY5NDExODA2MDI0MDA2NjM4
NjhlZjcxMTEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTAyLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNr
UmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhh
cHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZWJLaXQgY2xpZW50cyBzaG91bGQgYmUgYWJsZSB0byBnZXQgdGhlIGNvbnRleHQgaG93IHRoZSBz
cGVsbGNoZWNrIGhhcHBlbmRlZC4KKyAgICAgICAgRm9yIGV4YW1wbGUsIFdlYktpdCBjbGllbnRz
IG1heSB3YW50IHRvIGNoYW5nZSB0aGUgYmVoYXZpb3IgYnkgYSBzcGVsbGNoZWNrIHJlcXVlc3Qg
aXMKKyAgICAgICAgaW52b2tlZCBpbiB0eXBpbmcgb3IgaW4gcGFzdGluZy4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZGVkIGFuIGVudW0gaW4gU3BlbGxDaGVja1JlcXVlc3Qgc28gdGhhdCBXZWJL
aXQgY2xpZW50cyBjYW4gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4KKworICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVwbGFjZVNlbGVjdGlv
bldpdGhGcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Om1hcmtBbGxNaXNzcGVs
bGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXMpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVj
a2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0OjpTcGVsbENoZWNr
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aW52b2tlUmVxdWVzdCk6CisgICAgICAg
ICogZWRpdGluZy9TcGVsbENoZWNrZXIuaDoKKyAgICAgICAgKFNwZWxsQ2hlY2tSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0Ojp0ZXh0Q2hlY2tpbmdSZXF1ZXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0Ojpwcm9jZXNzVHlwZSk6Cisg
ICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlU
ZXh0Q2hlY2tlckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIHBs
YXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoVGV4dENoZWNrZXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENo
ZWNraW5nLmg6CisgICAgICAgIChUZXh0Q2hlY2tpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRDaGVja2luZ1JlcXVlc3Q6OlRleHRDaGVja2luZ1JlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdDo6c2V0U2VxdWVuY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dENoZWNraW5nUmVxdWVzdDo6c2VxdWVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dENoZWNraW5nUmVxdWVzdDo6dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdSZXF1ZXN0OjptYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3Q6
OnByb2Nlc3NUeXBlKToKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTAyLTIyICBLZW50YXJv
IEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBFbmFibGUgR2VvbG9jYXRp
b24gYmluZGluZ3MgZm9yIEdPYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4
IGRiOGI0MTBjODcxMmNjNWZhZjZiOWJhYmNmZTgzOTc4N2ZkYmVlYzkuLjE0ZTk2ODUzNTg1N2Q0
ZWZkNWMyZTM0NTBiNGMxZjE4NTQ1NjBiNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTIyICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFr
QGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNrUmVxdWVzdCBuZWVkcyB0byBrbm93
IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhhcHBlbmVkLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50Qmxh
Y2tCZXJyeTo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaDoKKyAgICAgICAgKEVkaXRvckNsaWVudEJsYWNr
QmVycnkpOgorCiAyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlv
biBpbiBFZGl0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZDIwYmFkZjQwNDU5NWNk
ZDY2MjliNDYzMzJmZjFkNmM1NThkNTk5OC4uMmQ1OTFkYjIzYmYxNTk2MzlkOGIxNjA2Yzk3OGNk
MGFhZWJjMDY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxMi0wMi0yMiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgU3BlbGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0
aGUgc3BlbGxjaGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkVkaXRvckNsaWVudEltcGw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAg
KiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50SW1wbCk6Cisg
ICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
SW1wbDo6cmVxdWVzdFRleHRDaGVja2luZyk6CisKIDIwMTItMDItMjIgIERhbmEgSmFuc2VucyAg
PGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBBZGQgdW5pdCB0ZXN0
IGZvciBzdXJmYWNlIG9jY2x1c2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGFhNjI5NzAyN2Q4OGU3
YjRkODdjMDM1OTAwZTNhNmE4Y2NiYjM0ODUuLmQ5OTQzZWQxZGU2NzJlZDlmMTBlOGVlOTIxOGIx
Mjg1N2VjY2ZjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0y
MiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3Bl
bGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3BlbGxj
aGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5oOgorICAgICAgICAo
V2ViS2l0OjpUZXh0Q2hlY2tlckNsaWVudEd0azo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgor
CiAyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0
b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCBlZTJmZGI3YzlkM2NjZTIzYjZlNGE1MmRkNGM5YTczY2Jh
NjNhYmIyLi43N2Y2NmEwMDEyNmU2ZGUyOWIyYTY0MDMzMjQyZTU4NTA2MTg5MzQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMjIgIFNoaW55YSBLYXdhbmFrYSAg
PHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNwZWxsQ2hlY2tSZXF1ZXN0IG5lZWRz
IHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUgdGhlIHNwZWxsY2hlY2sgaGFwcGVuZWQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTMyMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyk6CisKIDIwMTItMDItMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmVtb3ZlIHRoZSByZW1haW5pbmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9u
IGluIEVkaXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBkYTVlYjg3N2U0ZjZiNzk3YzQwMzFkZmVkMGQz
MWRjYWNlYzgyOTFiLi41NzM5NzdjMjI2YjFmZjk2M2ZhODYxNGMxYmFkNmIxMjUzZmYyNjk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTIyICBTaGlueWEgS2F3YW5h
a2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNrUmVxdWVzdCBu
ZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhhcHBlbmVkLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVj
a2VyQ2xpZW50UXQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMi0wMi0yMSAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdGhlIHJlbWFp
bmluZyB1c2VzIG9mIENTU1N0eWxlRGVjbGFyYXRpb24gaW4gRWRpdG9yCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
aW5kZXggODYyYTljMzZiOGRlYzkwOTM3ZjNkYzVkMGE3YWIwYmVlOWI1MmVkNS4uOWUyZGQxNjM5
NjdlZWNiODkzNWJlMTIxOTJkM2IzYWVmYWNjYzZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDEyLTAyLTIyICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBTcGVsbENoZWNrUmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250
ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhhcHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6
CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQpOgorCiAyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMg
b2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXgg
ODAyYTRlYzhiZDBjODljZDI2ODk0ZmIyNjFlNzlmNWUyMGM2NDc1YS4uMTg5ZTM1MmZlODJjMzE4
NDQwMzY0M2Y4NDU2NDE1M2Q0YWQ0NjVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxMi0wMi0yMiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgU3BlbGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25vdyB0aGUgY29udGV4
dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5D
RS5oOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRXaW5DRTo6cmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcpOgorCiAyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJh
dGlvbiBpbiBFZGl0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1YWEyMDZmMThmMzgzMThjNzUxZmRmNDFmMGIy
NGFmZjkyZmZlYjk5Li5hM2E4ZGEzMGRkNzNjZTFiMzJiNjUyZWEzYzZjYTRmNmM5ZWJiNjRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMjIgIFNoaW55YSBLYXdhbmFrYSAg
PHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNwZWxsQ2hlY2tSZXF1ZXN0IG5lZWRz
IHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUgdGhlIHNwZWxsY2hlY2sgaGFwcGVuZWQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTMyMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJF
ZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDEyLTAyLTIyICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRldmljZVNjYWxlRmFjdG9yRGlkQ2hh
bmdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggMTNiYjdlNzVmN2NjOTU1ODdkMThj
NDQyMDVmYTY3ODhjODUxMWM1Yy4uMWNlMjRlNTM4ZDQzNTdmMWUzZTJkYmE4MGM0NGI0YTU4NGMy
YTA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtNDE4LDcgKzQxOCw3IEBAIHZv
aWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gZnJhZ21lbnQsCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxSYW5n
ZT4gcmFuZ2VUb0NoZWNrID0gUmFuZ2U6OmNyZWF0ZShtX2ZyYW1lLT5kb2N1bWVudCgpLCBmaXJz
dFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0NoZWNrKSwgbGFzdFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0No
ZWNrKSk7Ci0gICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2luZ0ZvcihTcGVsbENoZWNr
UmVxdWVzdDo6Y3JlYXRlKHJlc29sdmVUZXh0Q2hlY2tpbmdUeXBlTWFzayhUZXh0Q2hlY2tpbmdU
eXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciksIHJhbmdlVG9DaGVjaywgcmFu
Z2VUb0NoZWNrKSk7CisgICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2luZ0ZvcihTcGVs
bENoZWNrUmVxdWVzdDo6Y3JlYXRlKHJlc29sdmVUZXh0Q2hlY2tpbmdUeXBlTWFzayhUZXh0Q2hl
Y2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciksIFRleHRDaGVja2lu
Z1Byb2Nlc3NCYXRjaCwgcmFuZ2VUb0NoZWNrLCByYW5nZVRvQ2hlY2spKTsKIH0KIAogdm9pZCBF
ZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wg
c2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlKQpAQCAtMTkzNSw3ICsxOTM1LDcg
QEAgdm9pZCBFZGl0b3I6Om1hcmtBbGxNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXMo
VGV4dENoZWNraW5nVHlwZU1hc2sgdGV4dEMKICAgICBib29sIGFzeW5jaHJvbm91cyA9IG1fZnJh
bWUgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpLT5hc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpICYmICFzaG91bGRTaG93Q29ycmVjdGlvblBhbmVs
OwogCiAgICAgLy8gSW4gYXN5bmNocm9ub3VzIG1vZGUsIHdlIGludGVudGlvbmFsbHkgY2hlY2sg
cGFyYWdyYXBoLXdpZGUgc2VudGVuY2UuCi0gICAgUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBy
ZXF1ZXN0ID0gU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShyZXNvbHZlVGV4dENoZWNraW5nVHlw
ZU1hc2sodGV4dENoZWNraW5nT3B0aW9ucyksIGFzeW5jaHJvbm91cyA/IHBhcmFncmFwaFJhbmdl
IDogcmFuZ2VUb0NoZWNrLCBwYXJhZ3JhcGhSYW5nZSk7CisgICAgUmVmUHRyPFNwZWxsQ2hlY2tS
ZXF1ZXN0PiByZXF1ZXN0ID0gU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShyZXNvbHZlVGV4dENo
ZWNraW5nVHlwZU1hc2sodGV4dENoZWNraW5nT3B0aW9ucyksIFRleHRDaGVja2luZ1Byb2Nlc3NJ
bmNyZW1lbnRhbCwgYXN5bmNocm9ub3VzID8gcGFyYWdyYXBoUmFuZ2UgOiByYW5nZVRvQ2hlY2ss
IHBhcmFncmFwaFJhbmdlKTsKIAogICAgIGlmIChhc3luY2hyb25vdXMpIHsKICAgICAgICAgbV9z
cGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2luZ0ZvcihyZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvU3BlbGxDaGVja2VyLmNwcAppbmRleCA2ODM2NDRjNmQwMTVlYzkyOWY1MmY4NTlkMzM2
ZGI3ZTgyZjEyYzk1Li5lMTI0M2IxNGQzMTgwNzdiMGJhODcwYTM3MjFjN2Q3ZTJlMGM0ZTI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBAIC00NywxMiArNDcsMTMg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgaW50IHVucmVxdWVzdGVkU2Vx
dWVuY2UgPSAtMTsKIAotU3BlbGxDaGVja1JlcXVlc3Q6OlNwZWxsQ2hlY2tSZXF1ZXN0KGludCBz
ZXF1ZW5jZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5n
ZT4gcGFyYWdyYXBoUmFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgVGV4dENoZWNraW5nVHlwZU1h
c2sgbWFzaykKK1NwZWxsQ2hlY2tSZXF1ZXN0OjpTcGVsbENoZWNrUmVxdWVzdChpbnQgc2VxdWVu
Y2UsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBh
cmFncmFwaFJhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIFRleHRDaGVja2luZ1R5cGVNYXNrIG1h
c2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlIHByb2Nlc3NUeXBlKQogICAgIDogbV9zZXF1ZW5j
ZShzZXF1ZW5jZSkKLSAgICAsIG1fY2hlY2tpbmdSYW5nZShjaGVja2luZ1JhbmdlKQotICAgICwg
bV9wYXJhZ3JhcGhSYW5nZShwYXJhZ3JhcGhSYW5nZSkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAg
ICwgbV9tYXNrKG1hc2spCisgICAgLCBtX3Byb2Nlc3NUeXBlKHByb2Nlc3NUeXBlKQorICAgICwg
bV9jaGVja2luZ1JhbmdlKGNoZWNraW5nUmFuZ2UpCisgICAgLCBtX3BhcmFncmFwaFJhbmdlKHBh
cmFncmFwaFJhbmdlKQogICAgICwgbV9yb290RWRpdGFibGVFbGVtZW50KG1fY2hlY2tpbmdSYW5n
ZS0+c3RhcnRDb250YWluZXIoKS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpKQogewogfQpAQCAtNjIs
NyArNjMsNyBAQCBTcGVsbENoZWNrUmVxdWVzdDo6flNwZWxsQ2hlY2tSZXF1ZXN0KCkKIH0KIAog
Ly8gc3RhdGljCi1QYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBTcGVsbENoZWNrUmVxdWVz
dDo6Y3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrIHRleHRDaGVja2luZ09wdGlvbnMsIFBhc3NS
ZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJh
bmdlKQorUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gU3BlbGxDaGVja1JlcXVlc3Q6OmNy
ZWF0ZShUZXh0Q2hlY2tpbmdUeXBlTWFzayB0ZXh0Q2hlY2tpbmdPcHRpb25zLCBUZXh0Q2hlY2tp
bmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5n
ZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UpCiB7CiAgICAgQVNTRVJUKGNoZWNr
aW5nUmFuZ2UpOwogICAgIEFTU0VSVChwYXJhZ3JhcGhSYW5nZSk7CkBAIC03MSw3ICs3Miw3IEBA
IFBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUo
VGV4dENoZWNraW5nVHlwZU1hc2sgdGV4CiAgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQogICAgICAg
ICByZXR1cm4gUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4oKTsKIAotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU3BlbGxDaGVja1JlcXVlc3QodW5yZXF1ZXN0ZWRTZXF1ZW5jZSwgY2hlY2tp
bmdSYW5nZSwgcGFyYWdyYXBoUmFuZ2UsIHRleHQsIHRleHRDaGVja2luZ09wdGlvbnMpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWxsQ2hlY2tSZXF1ZXN0KHVucmVxdWVzdGVkU2VxdWVu
Y2UsIGNoZWNraW5nUmFuZ2UsIHBhcmFncmFwaFJhbmdlLCB0ZXh0LCB0ZXh0Q2hlY2tpbmdPcHRp
b25zLCBwcm9jZXNzVHlwZSkpOwogfQogCiAKQEAgLTE0NSw3ICsxNDYsNyBAQCB2b2lkIFNwZWxs
Q2hlY2tlcjo6aW52b2tlUmVxdWVzdChQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1
ZXN0KQogICAgIEFTU0VSVCghbV9wcm9jZXNzaW5nUmVxdWVzdCk7CiAKICAgICBtX3Byb2Nlc3Np
bmdSZXF1ZXN0ID0gcmVxdWVzdDsKLSAgICBjbGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcodGhpcywgbV9wcm9jZXNzaW5nUmVxdWVzdC0+c2VxdWVuY2UoKSwgbV9wcm9jZXNzaW5nUmVx
dWVzdC0+bWFzaygpLCBtX3Byb2Nlc3NpbmdSZXF1ZXN0LT50ZXh0KCkpOworICAgIGNsaWVudCgp
LT5yZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyh0aGlzLCBtX3Byb2Nlc3NpbmdSZXF1ZXN0LT50ZXh0
Q2hlY2tpbmdSZXF1ZXN0KCkpOwogfQogCiB2b2lkIFNwZWxsQ2hlY2tlcjo6ZW5xdWV1ZVJlcXVl
c3QoUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gcmVxdWVzdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1NwZWxsQ2hlY2tlci5oCmluZGV4IDIwMzA2ZGExYTU5MzZlMmZmNTRmOWJlMmIyYWYzZjI1
ZTk4NzAyNWIuLjA3ZjUxZTQzMTgzZTIzYzhlZTU0MjJhMGE3NTlkNWU1YzhhNjhmZDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApAQCAtNDYsMTAgKzQ2LDEyIEBAIHN0cnVj
dCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CiAKIGNsYXNzIFNwZWxsQ2hlY2tSZXF1ZXN0IDogcHVibGlj
IFJlZkNvdW50ZWQ8U3BlbGxDaGVja1JlcXVlc3Q+IHsKIHB1YmxpYzoKLSAgICBTcGVsbENoZWNr
UmVxdWVzdChpbnQgc2VxdWVuY2UsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBh
c3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlLCBjb25zdCBTdHJpbmcmLCBUZXh0Q2hlY2tp
bmdUeXBlTWFzayk7CisgICAgU3BlbGxDaGVja1JlcXVlc3QoaW50IHNlcXVlbmNlLCBQYXNzUmVm
UHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5n
ZSwgY29uc3QgU3RyaW5nJiwgVGV4dENoZWNraW5nVHlwZU1hc2ssIFRleHRDaGVja2luZ1Byb2Nl
c3NUeXBlKTsKICAgICB+U3BlbGxDaGVja1JlcXVlc3QoKTsKIAotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBjcmVhdGUoVGV4dENoZWNraW5nVHlwZU1hc2ssIFBhc3NS
ZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJh
bmdlKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gY3JlYXRlKFRl
eHRDaGVja2luZ1R5cGVNYXNrLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSwgUGFzc1JlZlB0cjxS
YW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UpOwor
CisgICAgVGV4dENoZWNraW5nUmVxdWVzdCB0ZXh0Q2hlY2tpbmdSZXF1ZXN0KCkgY29uc3Q7CiAK
ICAgICB2b2lkIHNldFNlcXVlbmNlKGludCBzZXF1ZW5jZSkgeyBtX3NlcXVlbmNlID0gc2VxdWVu
Y2U7IH0KICAgICBpbnQgc2VxdWVuY2UoKSBjb25zdCB7IHJldHVybiBtX3NlcXVlbmNlOyB9CkBA
IC01NywxNCArNTksMTUgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFw
aFJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhZ3JhcGhSYW5nZTsgfQogICAgIGNvbnN0IFN0
cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQogICAgIFRleHRDaGVja2luZ1R5
cGVNYXNrIG1hc2soKSBjb25zdCB7IHJldHVybiBtX21hc2s7IH0KKyAgICBUZXh0Q2hlY2tpbmdQ
cm9jZXNzVHlwZSBwcm9jZXNzVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc1R5cGU7IH0K
ICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IHJvb3RFZGl0YWJsZUVsZW1lbnQoKSBjb25zdCB7IHJl
dHVybiBtX3Jvb3RFZGl0YWJsZUVsZW1lbnQ7IH0KIHByaXZhdGU6Ci0KICAgICBpbnQgbV9zZXF1
ZW5jZTsKLSAgICBSZWZQdHI8UmFuZ2U+IG1fY2hlY2tpbmdSYW5nZTsKLSAgICBSZWZQdHI8UmFu
Z2U+IG1fcGFyYWdyYXBoUmFuZ2U7CiAgICAgU3RyaW5nIG1fdGV4dDsKICAgICBUZXh0Q2hlY2tp
bmdUeXBlTWFzayBtX21hc2s7CisgICAgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgbV9wcm9jZXNz
VHlwZTsKKyAgICBSZWZQdHI8UmFuZ2U+IG1fY2hlY2tpbmdSYW5nZTsKKyAgICBSZWZQdHI8UmFu
Z2U+IG1fcGFyYWdyYXBoUmFuZ2U7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fcm9vdEVkaXRhYmxl
RWxlbWVudDsKIH07CiAKQEAgLTEwOSw2ICsxMTIsMTEgQEAgcHJpdmF0ZToKICAgICBSZXF1ZXN0
UXVldWUgbV9yZXF1ZXN0UXVldWU7CiB9OwogCitpbmxpbmUgVGV4dENoZWNraW5nUmVxdWVzdCBT
cGVsbENoZWNrUmVxdWVzdDo6dGV4dENoZWNraW5nUmVxdWVzdCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIFRleHRDaGVja2luZ1JlcXVlc3QobV9zZXF1ZW5jZSwgbV90ZXh0LCBtX21hc2ssIG1fcHJv
Y2Vzc1R5cGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTcGVs
bENoZWNrZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDIzNTJjMjg3
NmQyMTgxMzRkMGJlYTY0MjU0NzgxYmU4MWU2NjAwZTguLjhjNGYwMGE1MjA1MjBhNjY3ZjhlNTc1
NjVlYWU2MmJiMGNhM2ZhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAg
LTQzMiw3ICs0MzIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5n
PiYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENo
ZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgY29u
c3QgVGV4dENoZWNraW5nUmVxdWVzdCYpIHsgfQogfTsKIAogY2xhc3MgRW1wdHlFZGl0b3JDbGll
bnQgOiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dENoZWNrZXJDbGllbnQuaAppbmRleCBkMTZhZGUxNjQ2MGFkNzBmMzdlYjllOGQ0
MTRkZjYxZjY3Y2ZjOGQzLi42YjBmYTgwNTM2MGVkYWI3OGNlZGQ1ODNhMmJkMzM2OTIwNzFlNTll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVu
dC5oCkBAIC0zNyw2ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNwZWxs
Q2hlY2tlcjsKK2NsYXNzIFRleHRDaGVja2luZ1JlcXVlc3Q7CiAKIHN0cnVjdCBHcmFtbWFyRGV0
YWlsIHsKICAgICBpbnQgbG9jYXRpb247CkBAIC03MSw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICAv
LyBwcm92aWRlIG1vcmUgYWNjdXJhdGUgY29ycmVjdGlvbiBzdWdnZXN0aW9ucy4gQ2FsbGVyIGNh
biBwYXNzIGluIG1vcmUgdGV4dCBpbiAiY29udGV4dCIgdG8gYWlkIHN1Y2ggc3BlbGxjaGVja2Vy
cyBvbiBsYW5ndWFnZQogICAgIC8vIGlkZW50aWZpY2F0aW9uLiBOb3JhbWxseSBpdCdzIHRoZSB0
ZXh0IHN1cnJvdW5kaW5nIHRoZSAid29yZCIgZm9yIHdoaWNoIHdlIGFyZSBnZXR0aW5nIGNvcnJl
Y3Rpb24gc3VnZ2VzdGlvbnMuCiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNv
bnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYg
Z3Vlc3NlcykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhT
cGVsbENoZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tl
ciosIGNvbnN0IFRleHRDaGVja2luZ1JlcXVlc3QmKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaAppbmRleCA5NjdlYWM1YjM2NTNiZmRi
YjFiMTFmOGQ0NmI0M2ViYTljNTIyODEwLi5iZTllZDVmOWU4NWZjZGU4MDExNjhjMzM5M2VmZDQ5
NTE4NzZkYzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRD
aGVja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5n
LmgKQEAgLTMxLDYgKzMxLDggQEAKICNpZm5kZWYgVGV4dENoZWNraW5nX2gKICNkZWZpbmUgVGV4
dENoZWNraW5nX2gKIAorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICNkZWZpbmUgV1RGX1VTRV9HUkFNTUFSX0NIRUNLSU5HIDEKQEAgLTYx
LDYgKzYzLDM0IEBAIGVudW0gVGV4dENoZWNraW5nVHlwZSB7CiAKIHR5cGVkZWYgdW5zaWduZWQg
VGV4dENoZWNraW5nVHlwZU1hc2s7CiAKK2VudW0gVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgewor
ICAgIFRleHRDaGVja2luZ1Byb2Nlc3NCYXRjaCwKKyAgICBUZXh0Q2hlY2tpbmdQcm9jZXNzSW5j
cmVtZW50YWwKK307CisKK2NsYXNzIFRleHRDaGVja2luZ1JlcXVlc3QgeworcHVibGljOgorICAg
IFRleHRDaGVja2luZ1JlcXVlc3QoaW50IHNlcXVlbmNlLCBTdHJpbmcgdGV4dCwgVGV4dENoZWNr
aW5nVHlwZU1hc2sgbWFzaywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUpCisg
ICAgICAgIDogbV9zZXF1ZW5jZShzZXF1ZW5jZSkKKyAgICAgICAgLCBtX3RleHQodGV4dCkKKyAg
ICAgICAgLCBtX21hc2sobWFzaykKKyAgICAgICAgLCBtX3Byb2Nlc3NUeXBlKHByb2Nlc3NUeXBl
KQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIHNldFNlcXVlbmNlKGludCBzZXF1ZW5jZSkgeyBt
X3NlcXVlbmNlID0gc2VxdWVuY2U7IH0KKyAgICBpbnQgc2VxdWVuY2UoKSBjb25zdCB7IHJldHVy
biBtX3NlcXVlbmNlOyB9CisgICAgU3RyaW5nIHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7
IH0KKyAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrKCkgY29uc3QgeyByZXR1cm4gbV9tYXNr
OyB9CisgICAgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUoKSBjb25zdCB7IHJl
dHVybiBtX3Byb2Nlc3NUeXBlOyB9CisKK3ByaXZhdGU6CisgICAgaW50IG1fc2VxdWVuY2U7Cisg
ICAgU3RyaW5nIG1fdGV4dDsKKyAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtX21hc2s7CisgICAg
VGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgbV9wcm9jZXNzVHlwZTsKK307CisKIH0KIAogI2VuZGlm
IC8vIFRleHRDaGVja2luZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5k
ZXggZDNjMzdlZTk0NGM0YjdkODdjZjUyMjdlZTU5NGUxMGZkODZjNTE3ZS4uMGU0NDQxZDgyNzZk
YzY4NmM5OWIwOGE5OTI4MWFkYzNmNjc2NTQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFj
a0JlcnJ5LmNwcApAQCAtNTU4LDcgKzU1OCw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50QmxhY2tCZXJy
eTo6Y2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQsIFdURjo6VmVjdG9yCiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5Ojpy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5
cGVNYXNrLCBjb25zdCBTdHJpbmcmKQordm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBjb25zdCBUZXh0Q2hlY2tpbmdSZXF1
ZXN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaCBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFj
a0JlcnJ5LmgKaW5kZXggYmZmYTg4MTgwNmQ2NDcxMTA0YjkyMWQ4ZDFlODc2ZjQ3Y2U0ZTU2NS4u
NTRhMzEwMDkwMDAyOThlODkxZjA3M2RkNzU3YzAyZWY1MWUwMTdlOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVy
cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50QmxhY2tCZXJyeS5oCkBAIC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IFN0cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25zdCBT
dHJpbmcmIG1pc3NwZWxsZWRXb3JkKTsKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZT
dHJpbmcoY29uc3QgVUNoYXIqLCBpbnQsIFZlY3RvcjxHcmFtbWFyRGV0YWlsLCAwdT4mLCBpbnQq
LCBpbnQqKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBUZXh0Q2hlY2tpbmdUeXBl
TWFzaywgY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09m
U3RyaW5nKFNwZWxsQ2hlY2tlciosIGNvbnN0IFRleHRDaGVja2luZ1JlcXVlc3QmKTsKIAogICAg
IHZpcnR1YWwgVGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCk7CiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhjb25zdCBTdHJpbmcmLCBjb25z
dCBHcmFtbWFyRGV0YWlsJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9FZGl0b3JDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRv
ckNsaWVudEltcGwuY3BwCmluZGV4IDAzM2Q0NmQ1OGMyZjc5NTQ3OWUwYTA0MjllMzZkZjkxNzNk
ZDVlOTYuLjkzNDI4MWEyOTIxZDllZTY3OTJkNGJlN2E3Mzc3NWE0ZjA3OWI2ZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCkBAIC03Mjks
MTAgKzcyOSwxMCBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmNoZWNrU3BlbGxpbmdPZlN0cmlu
Zyhjb25zdCBVQ2hhciogdGV4dCwgaW50IGxlbmd0aCwKICAgICAgICAgKm1pc3NwZWxsaW5nTGVu
Z3RoID0gc3BlbGxMZW5ndGg7CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6cmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiBzZW5kZXIsIGludCBpZGVudGlmaWVyLCBUZXh0
Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgU3RyaW5nJiB0ZXh0KQordm9pZCBFZGl0b3JDbGllbnRJ
bXBsOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqIHNlbmRlciwgY29uc3Qg
V2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAobV93ZWJW
aWV3LT5zcGVsbENoZWNrQ2xpZW50KCkpCi0gICAgICAgIG1fd2ViVmlldy0+c3BlbGxDaGVja0Ns
aWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlRleHQodGV4dCwgbmV3IFdlYlRleHRDaGVja2luZ0Nv
bXBsZXRpb25JbXBsKGlkZW50aWZpZXIsIHNlbmRlcikpOworICAgICAgICBtX3dlYlZpZXctPnNw
ZWxsQ2hlY2tDbGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZUZXh0KHJlcXVlc3QudGV4dCgpLCBu
ZXcgV2ViVGV4dENoZWNraW5nQ29tcGxldGlvbkltcGwocmVxdWVzdC5zZXF1ZW5jZSgpLCBzZW5k
ZXIpKTsKIH0KIAogU3RyaW5nIEVkaXRvckNsaWVudEltcGw6OmdldEF1dG9Db3JyZWN0U3VnZ2Vz
dGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKaW5kZXggOTk5ODYw
YTAyNzI2OTQzMzYzMzA1MzQ2M2M0MjJiY2RhZTg5MGNkNy4uYjE2N2I2YzJkNDY2YTRkZjJlZTBh
YjNlMjQ5ZmU0MGMwOTMyZjE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvRWRpdG9yQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Vk
aXRvckNsaWVudEltcGwuaApAQCAtMTA5LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdU
Rjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwog
ICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7Ci0gICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2Vi
Q29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJik7CisgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcios
IGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3QmKTsKIAogICAgIHZpcnR1YWwgV2Vi
Q29yZTo6VGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCAyMTcw
NGQ5N2UwMTJjOTFjYWUwZTQ3OThmMzE0Y2ViNzI4Yjc3OTM1Li5hZGYyMDIzNzEwNTY5M2FlMTFh
N2MyMTBlODA5ZmIzYjdjN2YyNzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5jcHAKQEAgLTEzMDEsNyArMTMwMSw3IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpy
ZXF1ZXN0VGV4dENoZWNraW5nKGNvbnN0IFdlYkVsZW1lbnQmIHdlYkVsZW0pCiAKICAgICBSZWZQ
dHI8UmFuZ2U+IHJhbmdlVG9DaGVjayA9IHJhbmdlT2ZDb250ZW50cyhjb25zdF9jYXN0PEVsZW1l
bnQqPih3ZWJFbGVtLmNvbnN0VW53cmFwPEVsZW1lbnQ+KCkpKTsKIAotICAgIGZyYW1lKCktPmVk
aXRvcigpLT5zcGVsbENoZWNrZXIoKS0+cmVxdWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1
ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdy
YW1tYXIsIHJhbmdlVG9DaGVjaywgcmFuZ2VUb0NoZWNrKSk7CisgICAgZnJhbWUoKS0+ZWRpdG9y
KCktPnNwZWxsQ2hlY2tlcigpLT5yZXF1ZXN0Q2hlY2tpbmdGb3IoU3BlbGxDaGVja1JlcXVlc3Q6
OmNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1h
ciwgVGV4dENoZWNraW5nUHJvY2Vzc0JhdGNoLCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVjaykp
OwogfQogCiBib29sIFdlYkZyYW1lSW1wbDo6aGFzU2VsZWN0aW9uKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3Rr
LmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0
ay5oCmluZGV4IGU1MzkwYmNjOTczOTQ3N2EyNzYwNDc5YzZlNDExMjM4Mjg1ZTEwZTYuLmIzZmEw
NDk5NDk5Yzk4Y2MxNjNjY2M2NjYwNDVhMjFlNzY0ZDNkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmgKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRHdGsuaApAQCAt
NDgsNyArNDgsNyBAQCBjbGFzcyBUZXh0Q2hlY2tlckNsaWVudEd0ayA6IHB1YmxpYyBXZWJDb3Jl
OjpUZXh0Q2hlY2tlckNsaWVudCB7CiAgICAgICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZ2V0QXV0
b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwg
aW50IGxlbmd0aCwgV1RGOjpWZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRldGFpbD4mLCBpbnQqIGJh
ZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRHcmFtbWFyTGVuZ3RoKTsKICAgICAgICAgdmlydHVh
bCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBX
VEY6OlN0cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsK
LSAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNw
ZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdU
Rjo6U3RyaW5nJikge30KKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1Jl
cXVlc3QmKSB7IH0KIAogICAgICAgICB2b2lkIHVwZGF0ZVNwZWxsQ2hlY2tpbmdMYW5ndWFnZShj
b25zdCBjaGFyKik7CiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNWE5YjkxNzBiNWQ2MjA3MWRmNDgx
Y2MzMjk0MGRhNzJmYjUxYWExYy4uYTE5ZTE0OGRhZjNhNWZhOTg4YWJkMjZkNmEzMjI1ZmFlMTc2
Nzg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgKQEAgLTEzNSw3ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0
cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpT
cGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBX
VEY6OlN0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBjb25zdCBXZWJDb3JlOlRleHRDaGVja2lu
Z1JlcXVlc3QmKSBPVkVSUklERTsKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgdmlydHVhbCB2b2lkIHNo
b3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBl
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywg
Y29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0
cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdz
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJD
b3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsKSBPVkVSUklERTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpp
bmRleCBmMWM1NTEwYmYxMTAyYzhlZjhhZmUzOWUzMDlhODI0OWExN2UwNTZjLi40Nzg1NTMwMzRh
NzgyM2JiMTg1NTcwNGVkZGMyNWEzMjkyZjllMmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC05NzIsMTUgKzk3Miwx
NSBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRob2RTdGF0ZShib29sKQogQGVu
ZAogI2VuZGlmCiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
ZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqIHNlbmRlciwgaW50IHNlcXVlbmNlLCBXZWJDb3JlOjpU
ZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVja2luZ1R5cGVzLCBjb25zdCBTdHJpbmcmIHRleHQpCit2
b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3Bl
bGxDaGVja2VyKiBzZW5kZXIsIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3QmIHJl
cXVlc3QpCiB7CiAjaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKLSAgICBOU1JhbmdlIHJhbmdl
ID0gTlNNYWtlUmFuZ2UoMCwgdGV4dC5sZW5ndGgoKSk7CisgICAgTlNSYW5nZSByYW5nZSA9IE5T
TWFrZVJhbmdlKDAsIHJlcXVlc3QudGV4dCgpLmxlbmd0aCgpKTsKICAgICBOU1J1bkxvb3AqIGN1
cnJlbnRMb29wID0gW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF07Ci0gICAgW1tOU1NwZWxsQ2hl
Y2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nOnRleHQgcmFu
Z2U6cmFuZ2UgdHlwZXM6TlNUZXh0Q2hlY2tpbmdBbGxTeXN0ZW1UeXBlcyBvcHRpb25zOjAgaW5T
cGVsbERvY3VtZW50V2l0aFRhZzowIAorICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxD
aGVja2VyXSByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpyZXF1ZXN0LnRleHQoKSByYW5nZTpyYW5n
ZSB0eXBlczpOU1RleHRDaGVja2luZ0FsbFN5c3RlbVR5cGVzIG9wdGlvbnM6MCBpblNwZWxsRG9j
dW1lbnRXaXRoVGFnOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXI6XihOU0ludGVnZXIsIE5TQXJyYXkqIHJlc3VsdHMsIE5TT3J0aG9n
cmFwaHkqLCBOU0ludGVnZXIpIHsKICAgICAgICAgICAgIFtjdXJyZW50TG9vcCBwZXJmb3JtU2Vs
ZWN0b3I6QHNlbGVjdG9yKHBlcmZvcm0pIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRhcmdldDpbW1tXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGFsbG9jXSBpbml0V2l0
aFNlbmRlcjpzZW5kZXIgc2VxdWVuY2U6c2VxdWVuY2UgdHlwZXM6Y2hlY2tpbmdUeXBlcyByZXN1
bHRzOnJlc3VsdHNdIGF1dG9yZWxlYXNlXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRhcmdldDpbW1tXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGFsbG9jXSBpbml0V2l0
aFNlbmRlcjpzZW5kZXIgc2VxdWVuY2U6cmVxdWVzdC5zZXF1ZW5jZSgpIHR5cGVzOnJlcXVlc3Qu
bWFzaygpIHJlc3VsdHM6cmVzdWx0c10gYXV0b3JlbGVhc2VdCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ3VtZW50Om5pbCBvcmRlcjowIG1vZGVzOltOU0FycmF5IGFycmF5V2l0
aE9iamVjdDpOU0RlZmF1bHRSdW5Mb29wTW9kZV1dOwogICAgICAgICB9XTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVu
dFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50
UXQuaAppbmRleCBlNzhjZTFkMTBjMDVkMjM1YTZhNTRiM2JiYmVhN2VlYTlhY2U4NDgzLi5hZTQx
OWIyNTBmOTdkMTM5MjE0NGY2YTNkNmY0Mzc0MWQ3OGM0ODAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQuaApAQCAtNDcs
NyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdn
ZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJiBtaXNzcGVsbGVkV29yZCk7CiAg
ICAgdmlydHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxl
bmd0aCwgVmVjdG9yPEdyYW1tYXJEZXRhaWw+JiwgaW50KiBiYWRHcmFtbWFyTG9jYXRpb24sIGlu
dCogYmFkR3JhbW1hckxlbmd0aCk7CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3Jk
KGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5n
PiYgZ3Vlc3Nlcyk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNw
ZWxsQ2hlY2tlciosIGludCwgVGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFN0cmluZyYpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIq
LCBjb25zdCBUZXh0Q2hlY2tpbmdSZXF1ZXN0JikgeyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXND
b250aW5vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOwogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVD
b250aW5vdXNTcGVsbENoZWNraW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDI4YTkxMDVlZmI2NGVlODE1NWFkMGRl
OTcyZjFjOGY3YTE1OTkzMmEuLjBmMjllOWUwZjk1OWY2MTY3ZTM4OTBmMmJkNTRkZmQwMWQ2MjNj
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oCkBAIC0xMTAsNyArMTEwLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0
aG9kU3RhdGUoYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1h
c2ssIGNvbnN0IFdURjo6U3RyaW5nJikge30KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgY29uc3QgV2ViQ29yZTo6VGV4dENo
ZWNraW5nUmVxdWVzdCYpIHsgfQorCiAgICAgdmlydHVhbCBXZWJDb3JlOjpUZXh0Q2hlY2tlckNs
aWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNF
LmggYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNF
LmgKaW5kZXggYzI5NTI0ZTFhMjZmNDBjM2RkMDA0YTIyYTI2NzEyZjYwZTZkNWM0OS4uYzUzYzM5
MzFmZTYwNzljMDEzNzJkYjYxYzU1MmU5YWU1YmU3OGI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaApAQCAtMTAx
LDcgKzEwMSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQo
Y29uc3QgV1RGOjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6
OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0
SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRl
KGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3Jl
OjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25z
dCBXVEY6OlN0cmluZyYpIHt9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1Jl
cXVlc3QmKSB7IH0KICAgICB2aXJ0dWFsIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0
Q2hlY2tlcigpIHsgcmV0dXJuIHRoaXM7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcAppbmRleCAxOWVmN2RjNGYyM2EzMjAzYzdmOThmMTU5NTUxMzk1ZTA0M2E0YTA3Li5jNzQy
MTY3ODY1NGJlN2EyYzU0MjRiYjBmMjkzY2VlYTU1Y2IyYjY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuY3BwCkBAIC00NDcsNyArNDQ3LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNldElucHV0
TWV0aG9kU3RhdGUoYm9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkVk
aXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2Vy
KiwgaW50LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgV1RGOjpTdHJpbmcm
KQordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6
OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3QmKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCAyNjAwMjBm
ZjI2ZGVkZDE3MDE1ZWU2YWJhNGIyMmQwMjllMzM4MDg5Li4yZmIzMTUwYmQ3MDI0NTBiZDFjZmU3
NTM3YmUwY2E0YWNkNjQwODJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTE0MSw3ICsxNDEs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBT
dHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNz
ZXMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5h
YmxlZCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1h
c2ssIGNvbnN0IFdURjo6U3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6
OlRleHRDaGVja2luZ1JlcXVlc3QmKSBPVkVSUklERTsKICNpZiBQTEFURk9STShNQUMpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0Nv
cnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25z
dCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5n
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKFdlYkNvcmU6
OlJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwpIE9WRVJSSURFOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128629</attachid>
            <date>2012-02-23 18:26:24 -0800</date>
            <delta_ts>2012-02-23 20:59:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79320-20120224112622.patch</filename>
            <type>text/plain</type>
            <size>34461</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTIwODY4NjU5MzczZjUy
YmI3YmQ5ZjJkMzEwZDk2NDdlY2M5NWIwZC4uZTIzNWU2ZDliNGVlODJlMDJkMWJiODYzYjNjY2Rk
MTY3ODdkZDI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTAyLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNr
UmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhh
cHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZWJLaXQgY2xpZW50cyBzaG91bGQgYmUgYWJsZSB0byBnZXQgdGhlIGNvbnRleHQgaG93IHRoZSBz
cGVsbGNoZWNrIGhhcHBlbmRlZC4KKyAgICAgICAgRm9yIGV4YW1wbGUsIFdlYktpdCBjbGllbnRz
IG1heSB3YW50IHRvIGNoYW5nZSB0aGUgYmVoYXZpb3IgYnkgYSBzcGVsbGNoZWNrIHJlcXVlc3Qg
aXMKKyAgICAgICAgaW52b2tlZCBpbiB0eXBpbmcgb3IgaW4gcGFzdGluZy4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZGVkIGFuIGVudW0gaW4gU3BlbGxDaGVja1JlcXVlc3Qgc28gdGhhdCBXZWJL
aXQgY2xpZW50cyBjYW4gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4KKworICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVwbGFjZVNlbGVjdGlv
bldpdGhGcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Om1hcmtBbGxNaXNzcGVs
bGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXMpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVj
a2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0OjpTcGVsbENoZWNr
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aW52b2tlUmVxdWVzdCk6CisgICAgICAg
ICogZWRpdGluZy9TcGVsbENoZWNrZXIuaDoKKyAgICAgICAgKFNwZWxsQ2hlY2tSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0Ojp0ZXh0Q2hlY2tpbmdSZXF1ZXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0Ojpwcm9jZXNzVHlwZSk6Cisg
ICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlU
ZXh0Q2hlY2tlckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIHBs
YXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoVGV4dENoZWNrZXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENo
ZWNraW5nLmg6CisgICAgICAgIChUZXh0Q2hlY2tpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRDaGVja2luZ1JlcXVlc3Q6OlRleHRDaGVja2luZ1JlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdDo6c2V0U2VxdWVuY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dENoZWNraW5nUmVxdWVzdDo6c2VxdWVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dENoZWNraW5nUmVxdWVzdDo6dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdSZXF1ZXN0OjptYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3Q6
OnByb2Nlc3NUeXBlKToKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTAyLTIzICBFcmljIFNl
aWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBTcGxpdCBvdXQgSFRNTCBjb25zdHJ1
Y3RvcnMgaW50byBuZXcgRE9NV2luZG93SFRNTCBzdXBsZW1lbnRhbCBpZGwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQ2hhbmdlTG9nCmluZGV4IDc1OWVjOTEzNzZiMmU1OGUwNjYzMTM1ZWYzMjA5NDA2MTRl
OWM4MTcuLmJlMTFiYjRjYzY1OTc0OTAwYmM2NjQ2NGNhNDg1M2Y0ZTViYTRmMjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNr
UmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhh
cHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaDoKKyAgICAg
ICAgKEVkaXRvckNsaWVudEJsYWNrQmVycnkpOgorCiAyMDEyLTAyLTIzICBNaWtlIEZlbnRvbiAg
PG1pZmVudG9uQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIElucHV0SGFuZGxlciBy
ZXF1aXJlcyBjbGVhbnVwIG9mIE5hdmlnYXRpb24gTW9kZSBoYW5kbGluZy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggZDQ4ZjI1YjVjMGE5YjcyMTA0MWY0ZDM3M2U1ZjgxNjA5ZDFiZmFi
MC4uZDc2ZWZhZjY5NzBlMjU4NjAyZWI2NzhhMTJjYjc0YzcyOWZhNzE0NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMi0yMiAgU2hpbnlhIEthd2Fu
YWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlbGxDaGVja1JlcXVlc3Qg
bmVlZHMgdG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBwZW5lZC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzIwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvRWRp
dG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5o
OgorICAgICAgICAoRWRpdG9yQ2xpZW50SW1wbCk6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6cmVxdWVzdFRleHRDaGVja2lu
Zyk6CisKIDIwMTItMDItMjMgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbY2hyb21pdW1dIENsZWFuIHVwIEdyYXBoaWNzQ29udGV4dDNEIGluaXRpYWxp
emF0aW9uIHBhdGhzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggOTJjMDFmZWQ1MjJhODQ4ZWE3NTUyMzYy
YmM4YmNmODNkYzZkY2MyYi4uM2FhODY1OGM4NzAxNmMyZWJiMDRkZjEyZDYyNDA1NmM4NWQ5YTE2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTIzICBTaGlueWEg
S2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNrUmVx
dWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhhcHBl
bmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzkz
MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
Q2xpZW50RWZsOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTItMDItMjEgIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHRoZSByZW1haW5p
bmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGluIEVkaXRvcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmlu
ZGV4IDA2NzdhYTJkZDcxM2U1MjI3MTU0Y2Q2ZmRlMDA4Y2Q0NTJhZjA3OGQuLjhmYmYyNzRhNjM2
YTIwMzM5ODM4YjEwZmRjZDM3MzNjYmQ3NDkwZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxMi0wMi0yMiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgU3BlbGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25vdyB0aGUgY29udGV4
dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVu
dEd0ay5oOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlckNsaWVudEd0azo6cmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEyLTAyLTIzICBDaGFuZ1Nlb2sgT2ggIDxzaGl2YW1pZG93
QGdtYWlsLmNvbT4KIAogICAgICAgICBbR1RLXSBEUlQgZG9lc24ndCBzdXBwb3J0IHNjaGVkdWxl
QXN5bmNocm9ub3VzS2V5RG93bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAyMDg2MzhmMDJmZDljMDQ2
NjIyODRhMWRjMzRhOGYzZGRkMGJkNjViLi43NGM1YWMyOTAwN2E4MmI2Y2VmYzEzZmUyZjk5Njhi
YWQxOTNiZDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMjIg
IFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNwZWxs
Q2hlY2tSZXF1ZXN0IG5lZWRzIHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUgdGhlIHNwZWxsY2hl
Y2sgaGFwcGVuZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03OTMyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojpy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTItMDItMjIgIEhhamltZSBNb3JyaXRhICA8
bW9ycml0YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTk9USUZJQ0FUSU9OUyBzaG91bGQgYmUg
aW1wbGVtZW50ZWQgYXMgUGFnZVN1cHBsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggZmZlOWM2NDNh
MjdlYWVlYTQ0M2IxMDM2YmE0MTEzM2VmOGNhNzUwMy4uMDRmZGYxZTg5YWY3NDFhYjVlMGNmY2Qz
MjJiOWNlZmM4ODEwNzZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0w
Mi0yMiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
U3BlbGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3Bl
bGxjaGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudFF0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudFF0OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6
CisKIDIwMTItMDItMjMgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29t
PgogCiAgICAgICAgIFtRdF0gQWRkIHN1cHBvcnQgZm9yIHRvdWNoIGNhbmNlbGxhdGlvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCmluZGV4IDg2MmE5YzM2YjhkZWM5MDkzN2YzZGM1ZDBhN2FiMGJlZTliNTJlZDUu
LjllMmRkMTYzOTY3ZWVjYjg5MzViZTEyMTkyZDNiM2FlZmFjY2M2ZjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wMi0yMiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlh
a0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlbGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25v
dyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcpOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50KToKKwogMjAxMi0wMi0yMSAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdGhlIHJlbWFp
bmluZyB1c2VzIG9mIENTU1N0eWxlRGVjbGFyYXRpb24gaW4gRWRpdG9yCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdl
TG9nCmluZGV4IGRjZGEwNjlhYjhiYTJmOGEzYTJkOTczZGNiZjExOGQyZWQ1YWZlNjguLjAzMmNh
ODBjNjlmZDZmYzg5ZTEwYmE1MTE5MzI3NDBlMzFmMThmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDItMjIgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFNwZWxsQ2hlY2tSZXF1ZXN0IG5lZWRzIHRvIGtub3cg
dGhlIGNvbnRleHQgd2hlcmUgdGhlIHNwZWxsY2hlY2sgaGFwcGVuZWQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTMyMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50V2luQ0UuaDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50V2luQ0U6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMi0wMi0yMyAgUGF0cmljayBHYW5zdGVyZXIgIDxw
YXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIFdpbkNFIGJ1aWxkIGZpeCBh
ZnRlciByMTA4NDYyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwppbmRleCAxMTYwZWVkMzM4YzFhNzUzMDY5ZDU4NmNj
ZWZkN2RhNDEyNmIwZGFjLi40NGM5NDA0YWM5ZTAzODIwNDVlYjZmNWJiZjQyZGU1MjExOTBhMjBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTIzICBTaGlueWEgS2F3
YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNrUmVxdWVz
dCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhhcHBlbmVk
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktp
dFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dFd4OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTItMDItMjEgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHRoZSByZW1haW5pbmcgdXNl
cyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGluIEVkaXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDBlNDBmYTRj
NjYxZWM4MTVjOTAyMTdmNjllYzE3YWVkODEyYmQ3OWMuLmEyYWZlZDQ1NGMzMTgzOTM0ZTJiNmVl
N2M2ZWM1ZGRjM2M5MTQ4MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wMi0y
MiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3Bl
bGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3BlbGxj
aGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6
CisKIDIwMTItMDItMjMgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdIFdyb25nIHNpZ25hbCBuYW1lIG9uIGVtaXNzaW9uIGluIFdlYktp
dFdpbmRvd1Byb3BlcnRpZXMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggMTNi
YjdlNzVmN2NjOTU1ODdkMThjNDQyMDVmYTY3ODhjODUxMWM1Yy4uMWNlMjRlNTM4ZDQzNTdmMWUz
ZTJkYmE4MGM0NGI0YTU4NGMyYTA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAt
NDE4LDcgKzQxOCw3IEBAIHZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50
KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsCiAgICAgICAgIHJldHVybjsK
IAogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2VUb0NoZWNrID0gUmFuZ2U6OmNyZWF0ZShtX2ZyYW1l
LT5kb2N1bWVudCgpLCBmaXJzdFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0NoZWNrKSwgbGFzdFBvc2l0
aW9uSW5Ob2RlKG5vZGVUb0NoZWNrKSk7Ci0gICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RDaGVj
a2luZ0ZvcihTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKHJlc29sdmVUZXh0Q2hlY2tpbmdUeXBl
TWFzayhUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciks
IHJhbmdlVG9DaGVjaywgcmFuZ2VUb0NoZWNrKSk7CisgICAgbV9zcGVsbENoZWNrZXItPnJlcXVl
c3RDaGVja2luZ0ZvcihTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKHJlc29sdmVUZXh0Q2hlY2tp
bmdUeXBlTWFzayhUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3Jh
bW1hciksIFRleHRDaGVja2luZ1Byb2Nlc3NCYXRjaCwgcmFuZ2VUb0NoZWNrLCByYW5nZVRvQ2hl
Y2spKTsKIH0KIAogdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChjb25zdCBT
dHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlKQpA
QCAtMTkzNSw3ICsxOTM1LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbGxNaXNzcGVsbGluZ3NBbmRC
YWRHcmFtbWFySW5SYW5nZXMoVGV4dENoZWNraW5nVHlwZU1hc2sgdGV4dEMKICAgICBib29sIGFz
eW5jaHJvbm91cyA9IG1fZnJhbWUgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKSAmJiBtX2ZyYW1lLT5z
ZXR0aW5ncygpLT5hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpICYmICFzaG91bGRT
aG93Q29ycmVjdGlvblBhbmVsOwogCiAgICAgLy8gSW4gYXN5bmNocm9ub3VzIG1vZGUsIHdlIGlu
dGVudGlvbmFsbHkgY2hlY2sgcGFyYWdyYXBoLXdpZGUgc2VudGVuY2UuCi0gICAgUmVmUHRyPFNw
ZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0ID0gU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShyZXNv
bHZlVGV4dENoZWNraW5nVHlwZU1hc2sodGV4dENoZWNraW5nT3B0aW9ucyksIGFzeW5jaHJvbm91
cyA/IHBhcmFncmFwaFJhbmdlIDogcmFuZ2VUb0NoZWNrLCBwYXJhZ3JhcGhSYW5nZSk7CisgICAg
UmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0ID0gU3BlbGxDaGVja1JlcXVlc3Q6OmNy
ZWF0ZShyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2sodGV4dENoZWNraW5nT3B0aW9ucyksIFRl
eHRDaGVja2luZ1Byb2Nlc3NJbmNyZW1lbnRhbCwgYXN5bmNocm9ub3VzID8gcGFyYWdyYXBoUmFu
Z2UgOiByYW5nZVRvQ2hlY2ssIHBhcmFncmFwaFJhbmdlKTsKIAogICAgIGlmIChhc3luY2hyb25v
dXMpIHsKICAgICAgICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2luZ0ZvcihyZXF1ZXN0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcAppbmRleCA2ODM2NDRjNmQw
MTVlYzkyOWY1MmY4NTlkMzM2ZGI3ZTgyZjEyYzk1Li5lMTI0M2IxNGQzMTgwNzdiMGJhODcwYTM3
MjFjN2Q3ZTJlMGM0ZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxs
Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3Bw
CkBAIC00NywxMiArNDcsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3Qg
aW50IHVucmVxdWVzdGVkU2VxdWVuY2UgPSAtMTsKIAotU3BlbGxDaGVja1JlcXVlc3Q6OlNwZWxs
Q2hlY2tSZXF1ZXN0KGludCBzZXF1ZW5jZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5n
ZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4dCwg
VGV4dENoZWNraW5nVHlwZU1hc2sgbWFzaykKK1NwZWxsQ2hlY2tSZXF1ZXN0OjpTcGVsbENoZWNr
UmVxdWVzdChpbnQgc2VxdWVuY2UsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBh
c3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIFRleHRD
aGVja2luZ1R5cGVNYXNrIG1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlIHByb2Nlc3NUeXBl
KQogICAgIDogbV9zZXF1ZW5jZShzZXF1ZW5jZSkKLSAgICAsIG1fY2hlY2tpbmdSYW5nZShjaGVj
a2luZ1JhbmdlKQotICAgICwgbV9wYXJhZ3JhcGhSYW5nZShwYXJhZ3JhcGhSYW5nZSkKICAgICAs
IG1fdGV4dCh0ZXh0KQogICAgICwgbV9tYXNrKG1hc2spCisgICAgLCBtX3Byb2Nlc3NUeXBlKHBy
b2Nlc3NUeXBlKQorICAgICwgbV9jaGVja2luZ1JhbmdlKGNoZWNraW5nUmFuZ2UpCisgICAgLCBt
X3BhcmFncmFwaFJhbmdlKHBhcmFncmFwaFJhbmdlKQogICAgICwgbV9yb290RWRpdGFibGVFbGVt
ZW50KG1fY2hlY2tpbmdSYW5nZS0+c3RhcnRDb250YWluZXIoKS0+cm9vdEVkaXRhYmxlRWxlbWVu
dCgpKQogewogfQpAQCAtNjIsNyArNjMsNyBAQCBTcGVsbENoZWNrUmVxdWVzdDo6flNwZWxsQ2hl
Y2tSZXF1ZXN0KCkKIH0KIAogLy8gc3RhdGljCi1QYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0
PiBTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrIHRleHRDaGVj
a2luZ09wdGlvbnMsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8
UmFuZ2U+IHBhcmFncmFwaFJhbmdlKQorUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gU3Bl
bGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlTWFzayB0ZXh0Q2hlY2tpbmdP
cHRpb25zLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSwgUGFzc1JlZlB0cjxS
YW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UpCiB7
CiAgICAgQVNTRVJUKGNoZWNraW5nUmFuZ2UpOwogICAgIEFTU0VSVChwYXJhZ3JhcGhSYW5nZSk7
CkBAIC03MSw3ICs3Miw3IEBAIFBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IFNwZWxsQ2hl
Y2tSZXF1ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlwZU1hc2sgdGV4CiAgICAgaWYgKCF0ZXh0
Lmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4o
KTsKIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlbGxDaGVja1JlcXVlc3QodW5yZXF1ZXN0
ZWRTZXF1ZW5jZSwgY2hlY2tpbmdSYW5nZSwgcGFyYWdyYXBoUmFuZ2UsIHRleHQsIHRleHRDaGVj
a2luZ09wdGlvbnMpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWxsQ2hlY2tSZXF1ZXN0
KHVucmVxdWVzdGVkU2VxdWVuY2UsIGNoZWNraW5nUmFuZ2UsIHBhcmFncmFwaFJhbmdlLCB0ZXh0
LCB0ZXh0Q2hlY2tpbmdPcHRpb25zLCBwcm9jZXNzVHlwZSkpOwogfQogCiAKQEAgLTE0NSw3ICsx
NDYsNyBAQCB2b2lkIFNwZWxsQ2hlY2tlcjo6aW52b2tlUmVxdWVzdChQYXNzUmVmUHRyPFNwZWxs
Q2hlY2tSZXF1ZXN0PiByZXF1ZXN0KQogICAgIEFTU0VSVCghbV9wcm9jZXNzaW5nUmVxdWVzdCk7
CiAKICAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0ID0gcmVxdWVzdDsKLSAgICBjbGllbnQoKS0+cmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcodGhpcywgbV9wcm9jZXNzaW5nUmVxdWVzdC0+c2VxdWVuY2Uo
KSwgbV9wcm9jZXNzaW5nUmVxdWVzdC0+bWFzaygpLCBtX3Byb2Nlc3NpbmdSZXF1ZXN0LT50ZXh0
KCkpOworICAgIGNsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyh0aGlzLCBtX3Byb2Nl
c3NpbmdSZXF1ZXN0LT50ZXh0Q2hlY2tpbmdSZXF1ZXN0KCkpOwogfQogCiB2b2lkIFNwZWxsQ2hl
Y2tlcjo6ZW5xdWV1ZVJlcXVlc3QoUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gcmVxdWVz
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCmluZGV4IDIwMzA2ZGExYTU5MzZl
MmZmNTRmOWJlMmIyYWYzZjI1ZTk4NzAyNWIuLjA3ZjUxZTQzMTgzZTIzYzhlZTU0MjJhMGE3NTlk
NWU1YzhhNjhmZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVj
a2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApAQCAtNDYs
MTAgKzQ2LDEyIEBAIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CiAKIGNsYXNzIFNwZWxsQ2hl
Y2tSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlbGxDaGVja1JlcXVlc3Q+IHsKIHB1Ymxp
YzoKLSAgICBTcGVsbENoZWNrUmVxdWVzdChpbnQgc2VxdWVuY2UsIFBhc3NSZWZQdHI8UmFuZ2U+
IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlLCBjb25zdCBT
dHJpbmcmLCBUZXh0Q2hlY2tpbmdUeXBlTWFzayk7CisgICAgU3BlbGxDaGVja1JlcXVlc3QoaW50
IHNlcXVlbmNlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJh
bmdlPiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3RyaW5nJiwgVGV4dENoZWNraW5nVHlwZU1hc2ss
IFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlKTsKICAgICB+U3BlbGxDaGVja1JlcXVlc3QoKTsKIAot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBjcmVhdGUoVGV4dENoZWNr
aW5nVHlwZU1hc2ssIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8
UmFuZ2U+IHBhcmFncmFwaFJhbmdlKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVsbENoZWNr
UmVxdWVzdD4gY3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrLCBUZXh0Q2hlY2tpbmdQcm9jZXNz
VHlwZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4g
cGFyYWdyYXBoUmFuZ2UpOworCisgICAgVGV4dENoZWNraW5nUmVxdWVzdCB0ZXh0Q2hlY2tpbmdS
ZXF1ZXN0KCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFNlcXVlbmNlKGludCBzZXF1ZW5jZSkgeyBt
X3NlcXVlbmNlID0gc2VxdWVuY2U7IH0KICAgICBpbnQgc2VxdWVuY2UoKSBjb25zdCB7IHJldHVy
biBtX3NlcXVlbmNlOyB9CkBAIC01NywxNCArNTksMTUgQEAgcHVibGljOgogICAgIFBhc3NSZWZQ
dHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhZ3JhcGhSYW5n
ZTsgfQogICAgIGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQog
ICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2soKSBjb25zdCB7IHJldHVybiBtX21hc2s7IH0K
KyAgICBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcHJvY2Vzc1R5cGU7IH0KICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IHJvb3RFZGl0YWJsZUVs
ZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RFZGl0YWJsZUVsZW1lbnQ7IH0KIHByaXZhdGU6
Ci0KICAgICBpbnQgbV9zZXF1ZW5jZTsKLSAgICBSZWZQdHI8UmFuZ2U+IG1fY2hlY2tpbmdSYW5n
ZTsKLSAgICBSZWZQdHI8UmFuZ2U+IG1fcGFyYWdyYXBoUmFuZ2U7CiAgICAgU3RyaW5nIG1fdGV4
dDsKICAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtX21hc2s7CisgICAgVGV4dENoZWNraW5nUHJv
Y2Vzc1R5cGUgbV9wcm9jZXNzVHlwZTsKKyAgICBSZWZQdHI8UmFuZ2U+IG1fY2hlY2tpbmdSYW5n
ZTsKKyAgICBSZWZQdHI8UmFuZ2U+IG1fcGFyYWdyYXBoUmFuZ2U7CiAgICAgUmVmUHRyPEVsZW1l
bnQ+IG1fcm9vdEVkaXRhYmxlRWxlbWVudDsKIH07CiAKQEAgLTEwOSw2ICsxMTIsMTEgQEAgcHJp
dmF0ZToKICAgICBSZXF1ZXN0UXVldWUgbV9yZXF1ZXN0UXVldWU7CiB9OwogCitpbmxpbmUgVGV4
dENoZWNraW5nUmVxdWVzdCBTcGVsbENoZWNrUmVxdWVzdDo6dGV4dENoZWNraW5nUmVxdWVzdCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIFRleHRDaGVja2luZ1JlcXVlc3QobV9zZXF1ZW5jZSwgbV90
ZXh0LCBtX21hc2ssIG1fcHJvY2Vzc1R5cGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBTcGVsbENoZWNrZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oCmluZGV4IDIzNTJjMjg3NmQyMTgxMzRkMGJlYTY0MjU0NzgxYmU4MWU2NjAwZTguLjhjNGYw
MGE1MjA1MjBhNjY3ZjhlNTc1NjVlYWU2MmJiMGNhM2ZhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgKQEAgLTQzMiw3ICs0MzIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAg
IHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmLCBWZWN0b3I8U3RyaW5nPiYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25z
dCBTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmco
U3BlbGxDaGVja2VyKiwgY29uc3QgVGV4dENoZWNraW5nUmVxdWVzdCYpIHsgfQogfTsKIAogY2xh
c3MgRW1wdHlFZGl0b3JDbGllbnQgOiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaAppbmRleCBkMTZhZGUx
NjQ2MGFkNzBmMzdlYjllOGQ0MTRkZjYxZjY3Y2ZjOGQzLi42YjBmYTgwNTM2MGVkYWI3OGNlZGQ1
ODNhMmJkMzM2OTIwNzFlNTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRDaGVja2VyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9UZXh0Q2hlY2tlckNsaWVudC5oCkBAIC0zNyw2ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFNwZWxsQ2hlY2tlcjsKK2NsYXNzIFRleHRDaGVja2luZ1JlcXVlc3Q7CiAK
IHN0cnVjdCBHcmFtbWFyRGV0YWlsIHsKICAgICBpbnQgbG9jYXRpb247CkBAIC03MSw3ICs3Miw3
IEBAIHB1YmxpYzoKICAgICAvLyBwcm92aWRlIG1vcmUgYWNjdXJhdGUgY29ycmVjdGlvbiBzdWdn
ZXN0aW9ucy4gQ2FsbGVyIGNhbiBwYXNzIGluIG1vcmUgdGV4dCBpbiAiY29udGV4dCIgdG8gYWlk
IHN1Y2ggc3BlbGxjaGVja2VycyBvbiBsYW5ndWFnZQogICAgIC8vIGlkZW50aWZpY2F0aW9uLiBO
b3JhbWxseSBpdCdzIHRoZSB0ZXh0IHN1cnJvdW5kaW5nIHRoZSAid29yZCIgZm9yIHdoaWNoIHdl
IGFyZSBnZXR0aW5nIGNvcnJlY3Rpb24gc3VnZ2VzdGlvbnMuCiAgICAgdmlydHVhbCB2b2lkIGdl
dEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0
LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNr
LCBjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09m
U3RyaW5nKFNwZWxsQ2hlY2tlciosIGNvbnN0IFRleHRDaGVja2luZ1JlcXVlc3QmKSA9IDA7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVj
a2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaAppbmRl
eCA5NjdlYWM1YjM2NTNiZmRiYjFiMTFmOGQ0NmI0M2ViYTljNTIyODEwLi5iZTllZDVmOWU4NWZj
ZGU4MDExNjhjMzM5M2VmZDQ5NTE4NzZkYzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dENoZWNraW5nLmgKQEAgLTMxLDYgKzMxLDggQEAKICNpZm5kZWYgVGV4dENoZWNr
aW5nX2gKICNkZWZpbmUgVGV4dENoZWNraW5nX2gKIAorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNkZWZpbmUgV1RGX1VTRV9HUkFNTUFS
X0NIRUNLSU5HIDEKQEAgLTYxLDYgKzYzLDM0IEBAIGVudW0gVGV4dENoZWNraW5nVHlwZSB7CiAK
IHR5cGVkZWYgdW5zaWduZWQgVGV4dENoZWNraW5nVHlwZU1hc2s7CiAKK2VudW0gVGV4dENoZWNr
aW5nUHJvY2Vzc1R5cGUgeworICAgIFRleHRDaGVja2luZ1Byb2Nlc3NCYXRjaCwKKyAgICBUZXh0
Q2hlY2tpbmdQcm9jZXNzSW5jcmVtZW50YWwKK307CisKK2NsYXNzIFRleHRDaGVja2luZ1JlcXVl
c3QgeworcHVibGljOgorICAgIFRleHRDaGVja2luZ1JlcXVlc3QoaW50IHNlcXVlbmNlLCBTdHJp
bmcgdGV4dCwgVGV4dENoZWNraW5nVHlwZU1hc2sgbWFzaywgVGV4dENoZWNraW5nUHJvY2Vzc1R5
cGUgcHJvY2Vzc1R5cGUpCisgICAgICAgIDogbV9zZXF1ZW5jZShzZXF1ZW5jZSkKKyAgICAgICAg
LCBtX3RleHQodGV4dCkKKyAgICAgICAgLCBtX21hc2sobWFzaykKKyAgICAgICAgLCBtX3Byb2Nl
c3NUeXBlKHByb2Nlc3NUeXBlKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIHNldFNlcXVlbmNl
KGludCBzZXF1ZW5jZSkgeyBtX3NlcXVlbmNlID0gc2VxdWVuY2U7IH0KKyAgICBpbnQgc2VxdWVu
Y2UoKSBjb25zdCB7IHJldHVybiBtX3NlcXVlbmNlOyB9CisgICAgU3RyaW5nIHRleHQoKSBjb25z
dCB7IHJldHVybiBtX3RleHQ7IH0KKyAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrKCkgY29u
c3QgeyByZXR1cm4gbV9tYXNrOyB9CisgICAgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vz
c1R5cGUoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NUeXBlOyB9CisKK3ByaXZhdGU6CisgICAg
aW50IG1fc2VxdWVuY2U7CisgICAgU3RyaW5nIG1fdGV4dDsKKyAgICBUZXh0Q2hlY2tpbmdUeXBl
TWFzayBtX21hc2s7CisgICAgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgbV9wcm9jZXNzVHlwZTsK
K307CisKIH0KIAogI2VuZGlmIC8vIFRleHRDaGVja2luZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
QmxhY2tCZXJyeS5jcHAKaW5kZXggZDNjMzdlZTk0NGM0YjdkODdjZjUyMjdlZTU5NGUxMGZkODZj
NTE3ZS4uMGU0NDQxZDgyNzZkYzY4NmM5OWIwOGE5OTI4MWFkYzNmNjc2NTQ5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJs
YWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtNTU4LDcgKzU1OCw3IEBAIHZvaWQgRWRp
dG9yQ2xpZW50QmxhY2tCZXJyeTo6Y2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBp
bnQsIFdURjo6VmVjdG9yCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBFZGl0b3JD
bGllbnRCbGFja0JlcnJ5OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBp
bnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmKQordm9pZCBFZGl0b3JDbGll
bnRCbGFja0JlcnJ5OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBjb25z
dCBUZXh0Q2hlY2tpbmdSZXF1ZXN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggYmZmYTg4MTgwNmQ2NDcxMTA0YjkyMWQ4
ZDFlODc2ZjQ3Y2U0ZTU2NS4uNTRhMzEwMDkwMDAyOThlODkxZjA3M2RkNzU3YzAyZWY1MWUwMTdl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oCkBAIC04NCw3ICs4NCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNz
cGVsbGVkV29yZChjb25zdCBTdHJpbmcmIG1pc3NwZWxsZWRXb3JkKTsKICAgICB2aXJ0dWFsIHZv
aWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQsIFZlY3RvcjxHcmFtbWFy
RGV0YWlsLCAwdT4mLCBpbnQqLCBpbnQqKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0Zv
cldvcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50
LCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGNvbnN0IFRleHRDaGVja2lu
Z1JlcXVlc3QmKTsKIAogICAgIHZpcnR1YWwgVGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2Vy
KCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhj
b25zdCBTdHJpbmcmLCBjb25zdCBHcmFtbWFyRGV0YWlsJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCmluZGV4IDAzM2Q0NmQ1OGMyZjc5NTQ3
OWUwYTA0MjllMzZkZjkxNzNkZDVlOTYuLjkzNDI4MWEyOTIxZDllZTY3OTJkNGJlN2E3Mzc3NWE0
ZjA3OWI2ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNs
aWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVu
dEltcGwuY3BwCkBAIC03MjksMTAgKzcyOSwxMCBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmNo
ZWNrU3BlbGxpbmdPZlN0cmluZyhjb25zdCBVQ2hhciogdGV4dCwgaW50IGxlbmd0aCwKICAgICAg
ICAgKm1pc3NwZWxsaW5nTGVuZ3RoID0gc3BlbGxMZW5ndGg7CiB9CiAKLXZvaWQgRWRpdG9yQ2xp
ZW50SW1wbDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiBzZW5kZXIsIGlu
dCBpZGVudGlmaWVyLCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgU3RyaW5nJiB0ZXh0KQor
dm9pZCBFZGl0b3JDbGllbnRJbXBsOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNr
ZXIqIHNlbmRlciwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdCYgcmVxdWVzdCkK
IHsKICAgICBpZiAobV93ZWJWaWV3LT5zcGVsbENoZWNrQ2xpZW50KCkpCi0gICAgICAgIG1fd2Vi
Vmlldy0+c3BlbGxDaGVja0NsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlRleHQodGV4dCwgbmV3
IFdlYlRleHRDaGVja2luZ0NvbXBsZXRpb25JbXBsKGlkZW50aWZpZXIsIHNlbmRlcikpOworICAg
ICAgICBtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZUZXh0
KHJlcXVlc3QudGV4dCgpLCBuZXcgV2ViVGV4dENoZWNraW5nQ29tcGxldGlvbkltcGwocmVxdWVz
dC5zZXF1ZW5jZSgpLCBzZW5kZXIpKTsKIH0KIAogU3RyaW5nIEVkaXRvckNsaWVudEltcGw6Omdl
dEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYgbWlz
c3BlbGxlZFdvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0
b3JDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJ
bXBsLmgKaW5kZXggOTk5ODYwYTAyNzI2OTQzMzYzMzA1MzQ2M2M0MjJiY2RhZTg5MGNkNy4uYjE2
N2I2YzJkNDY2YTRkZjJlZTBhYjNlMjQ5ZmU0MGMwOTMyZjE4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaApAQCAtMTA5LDcgKzEwOSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJp
bmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxXVEY6OlN0
cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0
ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7
Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxs
Q2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6
U3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNv
cmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3QmKTsK
IAogICAgIHZpcnR1YWwgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkg
eyByZXR1cm4gdGhpczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmNwcAppbmRleCAyMTcwNGQ5N2UwMTJjOTFjYWUwZTQ3OThmMzE0Y2ViNzI4Yjc3OTM1Li5h
ZGYyMDIzNzEwNTY5M2FlMTFhN2MyMTBlODA5ZmIzYjdjN2YyNzM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTEzMDEsNyArMTMwMSw3IEBAIHZv
aWQgV2ViRnJhbWVJbXBsOjpyZXF1ZXN0VGV4dENoZWNraW5nKGNvbnN0IFdlYkVsZW1lbnQmIHdl
YkVsZW0pCiAKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlVG9DaGVjayA9IHJhbmdlT2ZDb250ZW50
cyhjb25zdF9jYXN0PEVsZW1lbnQqPih3ZWJFbGVtLmNvbnN0VW53cmFwPEVsZW1lbnQ+KCkpKTsK
IAotICAgIGZyYW1lKCktPmVkaXRvcigpLT5zcGVsbENoZWNrZXIoKS0+cmVxdWVzdENoZWNraW5n
Rm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwg
VGV4dENoZWNraW5nVHlwZUdyYW1tYXIsIHJhbmdlVG9DaGVjaywgcmFuZ2VUb0NoZWNrKSk7Cisg
ICAgZnJhbWUoKS0+ZWRpdG9yKCktPnNwZWxsQ2hlY2tlcigpLT5yZXF1ZXN0Q2hlY2tpbmdGb3Io
U3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0
Q2hlY2tpbmdUeXBlR3JhbW1hciwgVGV4dENoZWNraW5nUHJvY2Vzc0JhdGNoLCByYW5nZVRvQ2hl
Y2ssIHJhbmdlVG9DaGVjaykpOwogfQogCiBib29sIFdlYkZyYW1lSW1wbDo6aGFzU2VsZWN0aW9u
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50RWZsLmgKaW5kZXggNDIxODllMWQ0MWU3NDA1MmNiMWM5N2ZhYmE3MzdkYWZmY2Y1MTIy
OC4uMmI1MmU5ZGRhZDIxYTJlZDE3Y2FjNmFhNDg3N2YxMTMwMGY3NTVhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKQEAgLTEy
MCw3ICsxMjAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3Jk
KGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxT
dHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3Rh
dGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQp
OwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVs
bENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6
OlN0cmluZyYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhX
ZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0
JikgeyB9CiAgICAgdmlydHVhbCBUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJl
dHVybiB0aGlzOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRHdGsuaAppbmRleCBlNTM5MGJjYzk3Mzk0
NzdhMjc2MDQ3OWM2ZTQxMTIzODI4NWUxMGU2Li5iM2ZhMDQ5OTQ5OWM5OGNjMTYzY2NjNjY2MDQ1
YTIxZTc2NGQzZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9UZXh0Q2hlY2tlckNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgVGV4
dENoZWNrZXJDbGllbnRHdGsgOiBwdWJsaWMgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQgewog
ICAgICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1p
c3NwZWxsZWRXb3JkKGNvbnN0IFdURjo6U3RyaW5nJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBj
aGVja0dyYW1tYXJPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCBsZW5ndGgsIFdURjo6VmVjdG9y
PFdlYkNvcmU6OkdyYW1tYXJEZXRhaWw+JiwgaW50KiBiYWRHcmFtbWFyTG9jYXRpb24sIGludCog
YmFkR3JhbW1hckxlbmd0aCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29y
ZChjb25zdCBXVEY6OlN0cmluZyYgd29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsIFdU
Rjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNv
cmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CisgICAgICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNr
ZXIqLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0JikgeyB9CiAKICAgICAgICAg
dm9pZCB1cGRhdGVTcGVsbENoZWNraW5nTGFuZ3VhZ2UoY29uc3QgY2hhciopOwogICAgIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oCmluZGV4IDVhOWI5MTcwYjVkNjIwNzFkZjQ4MWNjMzI5NDBkYTcyZmI1MWFhMWMuLmEx
OWUxNDhkYWYzYTVmYTk4OGFiZDI2ZDZhMzIyNWZhZTE3Njc4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xMzUsNyAr
MTM1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25z
dCBXVEY6OlN0cmluZyYgd29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsIFdURjo6VmVj
dG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3NlcykgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHdp
bGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldElu
cHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBXZWJD
b3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgV1RGOjpTdHJpbmcmKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxD
aGVja2VyKiwgY29uc3QgV2ViQ29yZTpUZXh0Q2hlY2tpbmdSZXF1ZXN0JikgT1ZFUlJJREU7CiAj
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNv
cmU6OkNvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRT
dHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncykgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2lu
Z0NvcnJlY3Rpb25QYW5lbCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggZjFjNTUxMGJmMTEwMmM4ZWY4
YWZlMzllMzA5YTgyNDlhMTdlMDU2Yy4uNDc4NTUzMDM0YTc4MjNiYjE4NTU3MDRlZGRjMjVhMzI5
MmY5ZTJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQpAQCAtOTcyLDE1ICs5NzIsMTUgQEAgdm9pZCBXZWJFZGl0b3JDbGll
bnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKIEBlbmQKICNlbmRpZgogCi12b2lkIFdlYkVk
aXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2Vy
KiBzZW5kZXIsIGludCBzZXF1ZW5jZSwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2sgY2hl
Y2tpbmdUeXBlcywgY29uc3QgU3RyaW5nJiB0ZXh0KQordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciogc2VuZGVyLCBjb25z
dCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0JiByZXF1ZXN0KQogewogI2lmbmRlZiBCVUlM
RElOR19PTl9MRU9QQVJECi0gICAgTlNSYW5nZSByYW5nZSA9IE5TTWFrZVJhbmdlKDAsIHRleHQu
bGVuZ3RoKCkpOworICAgIE5TUmFuZ2UgcmFuZ2UgPSBOU01ha2VSYW5nZSgwLCByZXF1ZXN0LnRl
eHQoKS5sZW5ndGgoKSk7CiAgICAgTlNSdW5Mb29wKiBjdXJyZW50TG9vcCA9IFtOU1J1bkxvb3Ag
Y3VycmVudFJ1bkxvb3BdOwotICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2Vy
XSByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzp0ZXh0IHJhbmdlOnJhbmdlIHR5cGVzOk5TVGV4dENo
ZWNraW5nQWxsU3lzdGVtVHlwZXMgb3B0aW9uczowIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6MCAK
KyAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVxdWVzdENoZWNraW5n
T2ZTdHJpbmc6cmVxdWVzdC50ZXh0KCkgcmFuZ2U6cmFuZ2UgdHlwZXM6TlNUZXh0Q2hlY2tpbmdB
bGxTeXN0ZW1UeXBlcyBvcHRpb25zOjAgaW5TcGVsbERvY3VtZW50V2l0aFRhZzowCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNJ
bnRlZ2VyLCBOU0FycmF5KiByZXN1bHRzLCBOU09ydGhvZ3JhcGh5KiwgTlNJbnRlZ2VyKSB7CiAg
ICAgICAgICAgICBbY3VycmVudExvb3AgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihwZXJmb3Jt
KSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6W1tbV2ViRWRpdG9y
U3BlbGxDaGVja1Jlc3BvbmRlciBhbGxvY10gaW5pdFdpdGhTZW5kZXI6c2VuZGVyIHNlcXVlbmNl
OnNlcXVlbmNlIHR5cGVzOmNoZWNraW5nVHlwZXMgcmVzdWx0czpyZXN1bHRzXSBhdXRvcmVsZWFz
ZV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6W1tbV2ViRWRpdG9y
U3BlbGxDaGVja1Jlc3BvbmRlciBhbGxvY10gaW5pdFdpdGhTZW5kZXI6c2VuZGVyIHNlcXVlbmNl
OnJlcXVlc3Quc2VxdWVuY2UoKSB0eXBlczpyZXF1ZXN0Lm1hc2soKSByZXN1bHRzOnJlc3VsdHNd
IGF1dG9yZWxlYXNlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudDpu
aWwgb3JkZXI6MCBtb2RlczpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6TlNEZWZhdWx0UnVuTG9v
cE1vZGVdXTsKICAgICAgICAgfV07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudFF0LmgKaW5kZXggZTc4Y2UxZDEwYzA1
ZDIzNWE2YTU0YjNiYmJlYTdlZWE5YWNlODQ4My4uYWU0MTliMjUwZjk3ZDEzOTIxNDRmNmEzZDZm
NDM3NDFkNzhjNDgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9UZXh0Q2hlY2tlckNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9UZXh0Q2hlY2tlckNsaWVudFF0LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgU3RyaW5nIGdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3Jk
KGNvbnN0IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpOwogICAgIHZpcnR1YWwgdm9pZCBjaGVja0dy
YW1tYXJPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCBsZW5ndGgsIFZlY3RvcjxHcmFtbWFyRGV0
YWlsPiYsIGludCogYmFkR3JhbW1hckxvY2F0aW9uLCBpbnQqIGJhZEdyYW1tYXJMZW5ndGgpOwog
ICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNv
bnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpOwotICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIFRleHRD
aGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgY29uc3QgVGV4dENoZWNraW5nUmVx
dWVzdCYpIHsgfQogCiAgICAgdmlydHVhbCBib29sIGlzQ29udGlub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ29udGlub3VzU3BlbGxDaGVja2luZygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaAppbmRleCAyOGE5MTA1ZWZiNjRlZTgxNTVhZDBkZTk3MmYxYzhmN2ExNTk5MzJhLi4wZjI5
ZTllMGY5NTlmNjE2N2UzODkwZjJiZDU0ZGZkMDFkNjIzY2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTEwLDcgKzEx
MCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0
ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpOwotICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIq
LCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0cmluZyYp
IHt9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNw
ZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3QmKSB7IH0KKwog
ICAgIHZpcnR1YWwgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgeyBy
ZXR1cm4gdGhpczsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5j
ZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oIGIvU291cmNlL1dlYktpdC93aW5j
ZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCmluZGV4IDcyZmFkM2Q3OTYyMDBj
MDBiZDhkNzAyZDBlNmY3MzY3ODBkYjEyYjAuLmZjOWNlMDIzZmE5YTcwYzBjOTlhYWQyZDYwMDE1
MDk2ZDVkM2MxZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50V2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3Jk
LCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBn
dWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKTsKLSAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBX
ZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQorICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNr
ZXIqLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0JikgeyB9CiAgICAgdmlydHVh
bCBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlz
OyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvRWRpdG9yQ2xpZW50V3guaCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0
b3JDbGllbnRXeC5oCmluZGV4IGQwYmZkMmFkMTVlZGRjMzMwYThhZDkxM2EzNDRmNDgyNzk5YzU3
ZTMuLmVjZTE1ZmE4NzE5YzI1ZTY5YzIwMmExNGZkNmY0MTAyZTMzZWM3ZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCkBAIC0xMTQsNyAr
MTE0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0
YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVk
KTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3Bl
bGxDaGVja2VyKiwgaW50LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgV1RG
OjpTdHJpbmcmKSB7fQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhX
ZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0
JikgeyB9CiAgICAgdmlydHVhbCBUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJl
dHVybiB0aGlzOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggMTll
ZjdkYzRmMjNhMzIwM2M3Zjk4ZjE1OTU1MTM5NWUwNDNhNGEwNy4uYzc0MjE2Nzg2NTRiZTdhMmM1
NDI0YmIwZjI5M2NlZWE1NWNiMmI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtNDQ3
LDcgKzQ0Nyw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJv
b2wpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29y
ZTo6VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJikKK3ZvaWQgV2ViRWRp
dG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIq
LCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0JikKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggMjYwMDIwZmYyNmRlZGQxNzAxNWVl
NmFiYTRiMjJkMDI5ZTMzODA4OS4uMmZiMzE1MGJkNzAyNDUwYmQxY2ZlNzUzN2JlMGNhNGFjZDY0
MDgyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xNDEsNyArMTQxLDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBj
b25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVs
bENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6
OlN0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdS
ZXF1ZXN0JikgT1ZFUlJJREU7CiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwo
V2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBs
YWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpSZWFzb25Gb3JEaXNt
aXNzaW5nQ29ycmVjdGlvblBhbmVsKSBPVkVSUklERTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128643</attachid>
            <date>2012-02-23 21:00:04 -0800</date>
            <delta_ts>2012-02-24 04:32:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79320-20120224140002.patch</filename>
            <type>text/plain</type>
            <size>34468</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZThmNDA3MzMyZTZhMGY4
ZjczMTc4Yjc4OWY2YzhkYmU4NjliZTcyNy4uMjJlMzMxODljMzAzODdlNGM4YTVjOGZjNjFjZTAy
YzAwYzRmZmU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTAyLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNr
UmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhh
cHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZWJLaXQgY2xpZW50cyBzaG91bGQgYmUgYWJsZSB0byBnZXQgdGhlIGNvbnRleHQgaG93IHRoZSBz
cGVsbGNoZWNrIGhhcHBlbmRlZC4KKyAgICAgICAgRm9yIGV4YW1wbGUsIFdlYktpdCBjbGllbnRz
IG1heSB3YW50IHRvIGNoYW5nZSB0aGUgYmVoYXZpb3IgYnkgYSBzcGVsbGNoZWNrIHJlcXVlc3Qg
aXMKKyAgICAgICAgaW52b2tlZCBpbiB0eXBpbmcgb3IgaW4gcGFzdGluZy4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZGVkIGFuIGVudW0gaW4gU3BlbGxDaGVja1JlcXVlc3Qgc28gdGhhdCBXZWJL
aXQgY2xpZW50cyBjYW4gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4KKworICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVwbGFjZVNlbGVjdGlv
bldpdGhGcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Om1hcmtBbGxNaXNzcGVs
bGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXMpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVj
a2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0OjpTcGVsbENoZWNr
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aW52b2tlUmVxdWVzdCk6CisgICAgICAg
ICogZWRpdGluZy9TcGVsbENoZWNrZXIuaDoKKyAgICAgICAgKFNwZWxsQ2hlY2tSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0Ojp0ZXh0Q2hlY2tpbmdSZXF1ZXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0Ojpwcm9jZXNzVHlwZSk6Cisg
ICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlU
ZXh0Q2hlY2tlckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIHBs
YXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoVGV4dENoZWNrZXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENo
ZWNraW5nLmg6CisgICAgICAgIChUZXh0Q2hlY2tpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRDaGVja2luZ1JlcXVlc3Q6OlRleHRDaGVja2luZ1JlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdDo6c2V0U2VxdWVuY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dENoZWNraW5nUmVxdWVzdDo6c2VxdWVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dENoZWNraW5nUmVxdWVzdDo6dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdSZXF1ZXN0OjptYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3Q6
OnByb2Nlc3NUeXBlKToKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTAyLTIzICBMZW8gWWFu
ZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KIAogICAgICAgICBbQmxhY2tCZXJyeV0g
VXBzdHJlYW0gdGhlIEJsYWNrQmVycnkgY2hhbmdlIHRvIHBsYXRmb3JtL2dyYXBoaWNzL0ludFBv
aW50LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IDAwODkxYjI2Y2NhMGY4MGRj
ZDE0OTIxNjM4OGZjNjc1MDY5NWRhOTIuLjYyZWQ1YzZkYjE5ZTU4MzM0NGE2YjM0OTMwMzJkNWUw
NzU3ZGVhMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDEyLTAyLTIyICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBTcGVsbENoZWNrUmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJl
IHRoZSBzcGVsbGNoZWNrIGhhcHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6cmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJs
YWNrQmVycnkuaDoKKyAgICAgICAgKEVkaXRvckNsaWVudEJsYWNrQmVycnkpOgorCiAyMDEyLTAy
LTIzICBKYWNreSBKaWFuZyAgPHpoYWppYW5nQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVy
cnldIFVwc3RyZWFtIEJsYWNrQmVycnkgQVBJIHdlYiBwYWdlIHJlbGF0ZWQgZmlsZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZDQ4ZjI1YjVjMGE5YjcyMTA0MWY0ZDM3M2U1ZjgxNjA5
ZDFiZmFiMC4uZDc2ZWZhZjY5NzBlMjU4NjAyZWI2NzhhMTJjYjc0YzcyOWZhNzE0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMi0yMiAgU2hpbnlh
IEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlbGxDaGVja1Jl
cXVlc3QgbmVlZHMgdG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBw
ZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5
MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBz
cmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudElt
cGw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50
SW1wbC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50SW1wbCk6CisgICAgICAgICogc3JjL1dlYkZy
YW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6cmVxdWVzdFRleHRD
aGVja2luZyk6CisKIDIwMTItMDItMjMgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIENsZWFuIHVwIEdyYXBoaWNzQ29udGV4dDNEIGlu
aXRpYWxpemF0aW9uIHBhdGhzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggOTJjMDFmZWQ1MjJhODQ4ZWE3
NTUyMzYyYmM4YmNmODNkYzZkY2MyYi4uM2FhODY1OGM4NzAxNmMyZWJiMDRkZjEyZDYyNDA1NmM4
NWQ5YTE2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTIzICBT
aGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENo
ZWNrUmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNr
IGhhcHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yQ2xpZW50RWZsOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTItMDItMjEg
IFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHRoZSBy
ZW1haW5pbmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGluIEVkaXRvcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCmluZGV4IDA2NzdhYTJkZDcxM2U1MjI3MTU0Y2Q2ZmRlMDA4Y2Q0NTJhZjA3OGQuLjhmYmYy
NzRhNjM2YTIwMzM5ODM4YjEwZmRjZDM3MzNjYmQ3NDkwZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxMi0wMi0yMiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgU3BlbGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25vdyB0aGUg
Y29udGV4dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tl
ckNsaWVudEd0ay5oOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlckNsaWVudEd0azo6cmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEyLTAyLTIzICBDaGFuZ1Nlb2sgT2ggIDxzaGl2
YW1pZG93QGdtYWlsLmNvbT4KIAogICAgICAgICBbR1RLXSBEUlQgZG9lc24ndCBzdXBwb3J0IHNj
aGVkdWxlQXN5bmNocm9ub3VzS2V5RG93bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAyMDg2MzhmMDJm
ZDljMDQ2NjIyODRhMWRjMzRhOGYzZGRkMGJkNjViLi43NGM1YWMyOTAwN2E4MmI2Y2VmYzEzZmUy
Zjk5NjhiYWQxOTNiZDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTIt
MDItMjIgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFNwZWxsQ2hlY2tSZXF1ZXN0IG5lZWRzIHRvIGtub3cgdGhlIGNvbnRleHQgd2hlcmUgdGhlIHNw
ZWxsY2hlY2sgaGFwcGVuZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03OTMyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xp
ZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTItMDItMjIgIEhhamltZSBNb3Jy
aXRhICA8bW9ycml0YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTk9USUZJQ0FUSU9OUyBzaG91
bGQgYmUgaW1wbGVtZW50ZWQgYXMgUGFnZVN1cHBsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggZmZl
OWM2NDNhMjdlYWVlYTQ0M2IxMDM2YmE0MTEzM2VmOGNhNzUwMy4uMDRmZGYxZTg5YWY3NDFhYjVl
MGNmY2QzMjJiOWNlZmM4ODEwNzZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMi0wMi0yMiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgU3BlbGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0
aGUgc3BlbGxjaGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudFF0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudFF0OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyk6CisKIDIwMTItMDItMjMgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9r
aWEuY29tPgogCiAgICAgICAgIFtRdF0gQWRkIHN1cHBvcnQgZm9yIHRvdWNoIGNhbmNlbGxhdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCmluZGV4IDg2MmE5YzM2YjhkZWM5MDkzN2YzZGM1ZDBhN2FiMGJlZTli
NTJlZDUuLjllMmRkMTYzOTY3ZWVjYjg5MzViZTEyMTkyZDNiM2FlZmFjY2M2ZjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wMi0yMiAgU2hpbnlhIEthd2FuYWthICA8
c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlbGxDaGVja1JlcXVlc3QgbmVlZHMg
dG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0aGUgc3BlbGxjaGVjayBoYXBwZW5lZC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzIwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50KToKKwogMjAxMi0wMi0y
MSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdGhl
IHJlbWFpbmluZyB1c2VzIG9mIENTU1N0eWxlRGVjbGFyYXRpb24gaW4gRWRpdG9yCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2Uv
Q2hhbmdlTG9nCmluZGV4IGRjZGEwNjlhYjhiYTJmOGEzYTJkOTczZGNiZjExOGQyZWQ1YWZlNjgu
LjAzMmNhODBjNjlmZDZmYzg5ZTEwYmE1MTE5MzI3NDBlMzFmMThmOTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDItMjIgIFNoaW55YSBLYXdhbmFrYSAgPHNo
aW55YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNwZWxsQ2hlY2tSZXF1ZXN0IG5lZWRzIHRv
IGtub3cgdGhlIGNvbnRleHQgd2hlcmUgdGhlIHNwZWxsY2hlY2sgaGFwcGVuZWQuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTMyMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50V2luQ0UuaDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50V2luQ0U6
OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMi0wMi0yMyAgUGF0cmljayBHYW5zdGVy
ZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIFdpbkNFIGJ1aWxk
IGZpeCBhZnRlciByMTA4NDYyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwppbmRleCAxMTYwZWVkMzM4YzFhNzUzMDY5
ZDU4NmNjZWZkN2RhNDEyNmIwZGFjLi40NGM5NDA0YWM5ZTAzODIwNDVlYjZmNWJiZjQyZGU1MjEx
OTBhMjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTIzICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVsbENoZWNr
UmVxdWVzdCBuZWVkcyB0byBrbm93IHRoZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhh
cHBlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzkzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
ckNsaWVudFd4OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTItMDItMjEgIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHRoZSByZW1haW5p
bmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGluIEVkaXRvcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDBl
NDBmYTRjNjYxZWM4MTVjOTAyMTdmNjllYzE3YWVkODEyYmQ3OWMuLmEyYWZlZDQ1NGMzMTgzOTM0
ZTJiNmVlN2M2ZWM1ZGRjM2M5MTQ4MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAx
Mi0wMi0yMiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgU3BlbGxDaGVja1JlcXVlc3QgbmVlZHMgdG8ga25vdyB0aGUgY29udGV4dCB3aGVyZSB0aGUg
c3BlbGxjaGVjayBoYXBwZW5lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTc5MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50Lmg6CisKIDIwMTItMDItMjMgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdyb25nIHNpZ25hbCBuYW1lIG9uIGVtaXNzaW9uIGlu
IFdlYktpdFdpbmRvd1Byb3BlcnRpZXMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5k
ZXggMTNiYjdlNzVmN2NjOTU1ODdkMThjNDQyMDVmYTY3ODhjODUxMWM1Yy4uMWNlMjRlNTM4ZDQz
NTdmMWUzZTJkYmE4MGM0NGI0YTU4NGMyYTA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cApAQCAtNDE4LDcgKzQxOCw3IEBAIHZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZy
YWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsCiAgICAgICAgIHJl
dHVybjsKIAogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2VUb0NoZWNrID0gUmFuZ2U6OmNyZWF0ZSht
X2ZyYW1lLT5kb2N1bWVudCgpLCBmaXJzdFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0NoZWNrKSwgbGFz
dFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0NoZWNrKSk7Ci0gICAgbV9zcGVsbENoZWNrZXItPnJlcXVl
c3RDaGVja2luZ0ZvcihTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKHJlc29sdmVUZXh0Q2hlY2tp
bmdUeXBlTWFzayhUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3Jh
bW1hciksIHJhbmdlVG9DaGVjaywgcmFuZ2VUb0NoZWNrKSk7CisgICAgbV9zcGVsbENoZWNrZXIt
PnJlcXVlc3RDaGVja2luZ0ZvcihTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKHJlc29sdmVUZXh0
Q2hlY2tpbmdUeXBlTWFzayhUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdU
eXBlR3JhbW1hciksIFRleHRDaGVja2luZ1Byb2Nlc3NCYXRjaCwgcmFuZ2VUb0NoZWNrLCByYW5n
ZVRvQ2hlY2spKTsKIH0KIAogdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChj
b25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBs
YWNlKQpAQCAtMTkzNSw3ICsxOTM1LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbGxNaXNzcGVsbGlu
Z3NBbmRCYWRHcmFtbWFySW5SYW5nZXMoVGV4dENoZWNraW5nVHlwZU1hc2sgdGV4dEMKICAgICBi
b29sIGFzeW5jaHJvbm91cyA9IG1fZnJhbWUgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKSAmJiBtX2Zy
YW1lLT5zZXR0aW5ncygpLT5hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpICYmICFz
aG91bGRTaG93Q29ycmVjdGlvblBhbmVsOwogCiAgICAgLy8gSW4gYXN5bmNocm9ub3VzIG1vZGUs
IHdlIGludGVudGlvbmFsbHkgY2hlY2sgcGFyYWdyYXBoLXdpZGUgc2VudGVuY2UuCi0gICAgUmVm
UHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0ID0gU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0
ZShyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2sodGV4dENoZWNraW5nT3B0aW9ucyksIGFzeW5j
aHJvbm91cyA/IHBhcmFncmFwaFJhbmdlIDogcmFuZ2VUb0NoZWNrLCBwYXJhZ3JhcGhSYW5nZSk7
CisgICAgUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0ID0gU3BlbGxDaGVja1JlcXVl
c3Q6OmNyZWF0ZShyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2sodGV4dENoZWNraW5nT3B0aW9u
cyksIFRleHRDaGVja2luZ1Byb2Nlc3NJbmNyZW1lbnRhbCwgYXN5bmNocm9ub3VzID8gcGFyYWdy
YXBoUmFuZ2UgOiByYW5nZVRvQ2hlY2ssIHBhcmFncmFwaFJhbmdlKTsKIAogICAgIGlmIChhc3lu
Y2hyb25vdXMpIHsKICAgICAgICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2luZ0Zvcihy
ZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcAppbmRleCA2ODM2
NDRjNmQwMTVlYzkyOWY1MmY4NTlkMzM2ZGI3ZTgyZjEyYzk1Li5lMTI0M2IxNGQzMTgwNzdiMGJh
ODcwYTM3MjFjN2Q3ZTJlMGM0ZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1NwZWxsQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNr
ZXIuY3BwCkBAIC00NywxMiArNDcsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMg
Y29uc3QgaW50IHVucmVxdWVzdGVkU2VxdWVuY2UgPSAtMTsKIAotU3BlbGxDaGVja1JlcXVlc3Q6
OlNwZWxsQ2hlY2tSZXF1ZXN0KGludCBzZXF1ZW5jZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tp
bmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UsIGNvbnN0IFN0cmluZyYg
dGV4dCwgVGV4dENoZWNraW5nVHlwZU1hc2sgbWFzaykKK1NwZWxsQ2hlY2tSZXF1ZXN0OjpTcGVs
bENoZWNrUmVxdWVzdChpbnQgc2VxdWVuY2UsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFu
Z2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQs
IFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlIHByb2Nl
c3NUeXBlKQogICAgIDogbV9zZXF1ZW5jZShzZXF1ZW5jZSkKLSAgICAsIG1fY2hlY2tpbmdSYW5n
ZShjaGVja2luZ1JhbmdlKQotICAgICwgbV9wYXJhZ3JhcGhSYW5nZShwYXJhZ3JhcGhSYW5nZSkK
ICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV9tYXNrKG1hc2spCisgICAgLCBtX3Byb2Nlc3NU
eXBlKHByb2Nlc3NUeXBlKQorICAgICwgbV9jaGVja2luZ1JhbmdlKGNoZWNraW5nUmFuZ2UpCisg
ICAgLCBtX3BhcmFncmFwaFJhbmdlKHBhcmFncmFwaFJhbmdlKQogICAgICwgbV9yb290RWRpdGFi
bGVFbGVtZW50KG1fY2hlY2tpbmdSYW5nZS0+c3RhcnRDb250YWluZXIoKS0+cm9vdEVkaXRhYmxl
RWxlbWVudCgpKQogewogfQpAQCAtNjIsNyArNjMsNyBAQCBTcGVsbENoZWNrUmVxdWVzdDo6flNw
ZWxsQ2hlY2tSZXF1ZXN0KCkKIH0KIAogLy8gc3RhdGljCi1QYXNzUmVmUHRyPFNwZWxsQ2hlY2tS
ZXF1ZXN0PiBTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrIHRl
eHRDaGVja2luZ09wdGlvbnMsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NS
ZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKQorUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVz
dD4gU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlTWFzayB0ZXh0Q2hl
Y2tpbmdPcHRpb25zLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSwgUGFzc1Jl
ZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFu
Z2UpCiB7CiAgICAgQVNTRVJUKGNoZWNraW5nUmFuZ2UpOwogICAgIEFTU0VSVChwYXJhZ3JhcGhS
YW5nZSk7CkBAIC03MSw3ICs3Miw3IEBAIFBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IFNw
ZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlwZU1hc2sgdGV4CiAgICAgaWYg
KCF0ZXh0Lmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVx
dWVzdD4oKTsKIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlbGxDaGVja1JlcXVlc3QodW5y
ZXF1ZXN0ZWRTZXF1ZW5jZSwgY2hlY2tpbmdSYW5nZSwgcGFyYWdyYXBoUmFuZ2UsIHRleHQsIHRl
eHRDaGVja2luZ09wdGlvbnMpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWxsQ2hlY2tS
ZXF1ZXN0KHVucmVxdWVzdGVkU2VxdWVuY2UsIGNoZWNraW5nUmFuZ2UsIHBhcmFncmFwaFJhbmdl
LCB0ZXh0LCB0ZXh0Q2hlY2tpbmdPcHRpb25zLCBwcm9jZXNzVHlwZSkpOwogfQogCiAKQEAgLTE0
NSw3ICsxNDYsNyBAQCB2b2lkIFNwZWxsQ2hlY2tlcjo6aW52b2tlUmVxdWVzdChQYXNzUmVmUHRy
PFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0KQogICAgIEFTU0VSVCghbV9wcm9jZXNzaW5nUmVx
dWVzdCk7CiAKICAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0ID0gcmVxdWVzdDsKLSAgICBjbGllbnQo
KS0+cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcodGhpcywgbV9wcm9jZXNzaW5nUmVxdWVzdC0+c2Vx
dWVuY2UoKSwgbV9wcm9jZXNzaW5nUmVxdWVzdC0+bWFzaygpLCBtX3Byb2Nlc3NpbmdSZXF1ZXN0
LT50ZXh0KCkpOworICAgIGNsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyh0aGlzLCBt
X3Byb2Nlc3NpbmdSZXF1ZXN0LT50ZXh0Q2hlY2tpbmdSZXF1ZXN0KCkpOwogfQogCiB2b2lkIFNw
ZWxsQ2hlY2tlcjo6ZW5xdWV1ZVJlcXVlc3QoUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4g
cmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCmluZGV4IDIwMzA2ZGEx
YTU5MzZlMmZmNTRmOWJlMmIyYWYzZjI1ZTk4NzAyNWIuLjA3ZjUxZTQzMTgzZTIzYzhlZTU0MjJh
MGE3NTlkNWU1YzhhNjhmZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3Bl
bGxDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApA
QCAtNDYsMTAgKzQ2LDEyIEBAIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CiAKIGNsYXNzIFNw
ZWxsQ2hlY2tSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlbGxDaGVja1JlcXVlc3Q+IHsK
IHB1YmxpYzoKLSAgICBTcGVsbENoZWNrUmVxdWVzdChpbnQgc2VxdWVuY2UsIFBhc3NSZWZQdHI8
UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlLCBj
b25zdCBTdHJpbmcmLCBUZXh0Q2hlY2tpbmdUeXBlTWFzayk7CisgICAgU3BlbGxDaGVja1JlcXVl
c3QoaW50IHNlcXVlbmNlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVm
UHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3RyaW5nJiwgVGV4dENoZWNraW5nVHlw
ZU1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlKTsKICAgICB+U3BlbGxDaGVja1JlcXVlc3Qo
KTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBjcmVhdGUoVGV4
dENoZWNraW5nVHlwZU1hc2ssIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NS
ZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVs
bENoZWNrUmVxdWVzdD4gY3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrLCBUZXh0Q2hlY2tpbmdQ
cm9jZXNzVHlwZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxS
YW5nZT4gcGFyYWdyYXBoUmFuZ2UpOworCisgICAgVGV4dENoZWNraW5nUmVxdWVzdCB0ZXh0Q2hl
Y2tpbmdSZXF1ZXN0KCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFNlcXVlbmNlKGludCBzZXF1ZW5j
ZSkgeyBtX3NlcXVlbmNlID0gc2VxdWVuY2U7IH0KICAgICBpbnQgc2VxdWVuY2UoKSBjb25zdCB7
IHJldHVybiBtX3NlcXVlbmNlOyB9CkBAIC01NywxNCArNTksMTUgQEAgcHVibGljOgogICAgIFBh
c3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhZ3Jh
cGhSYW5nZTsgfQogICAgIGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4
dDsgfQogICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2soKSBjb25zdCB7IHJldHVybiBtX21h
c2s7IH0KKyAgICBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvY2Vzc1R5cGU7IH0KICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IHJvb3RFZGl0
YWJsZUVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RFZGl0YWJsZUVsZW1lbnQ7IH0KIHBy
aXZhdGU6Ci0KICAgICBpbnQgbV9zZXF1ZW5jZTsKLSAgICBSZWZQdHI8UmFuZ2U+IG1fY2hlY2tp
bmdSYW5nZTsKLSAgICBSZWZQdHI8UmFuZ2U+IG1fcGFyYWdyYXBoUmFuZ2U7CiAgICAgU3RyaW5n
IG1fdGV4dDsKICAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtX21hc2s7CisgICAgVGV4dENoZWNr
aW5nUHJvY2Vzc1R5cGUgbV9wcm9jZXNzVHlwZTsKKyAgICBSZWZQdHI8UmFuZ2U+IG1fY2hlY2tp
bmdSYW5nZTsKKyAgICBSZWZQdHI8UmFuZ2U+IG1fcGFyYWdyYXBoUmFuZ2U7CiAgICAgUmVmUHRy
PEVsZW1lbnQ+IG1fcm9vdEVkaXRhYmxlRWxlbWVudDsKIH07CiAKQEAgLTEwOSw2ICsxMTIsMTEg
QEAgcHJpdmF0ZToKICAgICBSZXF1ZXN0UXVldWUgbV9yZXF1ZXN0UXVldWU7CiB9OwogCitpbmxp
bmUgVGV4dENoZWNraW5nUmVxdWVzdCBTcGVsbENoZWNrUmVxdWVzdDo6dGV4dENoZWNraW5nUmVx
dWVzdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFRleHRDaGVja2luZ1JlcXVlc3QobV9zZXF1ZW5j
ZSwgbV90ZXh0LCBtX21hc2ssIG1fcHJvY2Vzc1R5cGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBTcGVsbENoZWNrZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5oCmluZGV4IDIzNTJjMjg3NmQyMTgxMzRkMGJlYTY0MjU0NzgxYmU4MWU2NjAwZTgu
LjhjNGYwMGE1MjA1MjBhNjY3ZjhlNTc1NjVlYWU2MmJiMGNhM2ZhMGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTQzMiw3ICs0MzIsNyBAQCBwdWJsaWM6CiAjZW5kaWYK
IAogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNr
LCBjb25zdCBTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcoU3BlbGxDaGVja2VyKiwgY29uc3QgVGV4dENoZWNraW5nUmVxdWVzdCYpIHsgfQogfTsK
IAogY2xhc3MgRW1wdHlFZGl0b3JDbGllbnQgOiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaAppbmRleCBk
MTZhZGUxNjQ2MGFkNzBmMzdlYjllOGQ0MTRkZjYxZjY3Y2ZjOGQzLi42YjBmYTgwNTM2MGVkYWI3
OGNlZGQ1ODNhMmJkMzM2OTIwNzFlNTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oCkBAIC0zNyw2ICszNyw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFNwZWxsQ2hlY2tlcjsKK2NsYXNzIFRleHRDaGVja2luZ1JlcXVl
c3Q7CiAKIHN0cnVjdCBHcmFtbWFyRGV0YWlsIHsKICAgICBpbnQgbG9jYXRpb247CkBAIC03MSw3
ICs3Miw3IEBAIHB1YmxpYzoKICAgICAvLyBwcm92aWRlIG1vcmUgYWNjdXJhdGUgY29ycmVjdGlv
biBzdWdnZXN0aW9ucy4gQ2FsbGVyIGNhbiBwYXNzIGluIG1vcmUgdGV4dCBpbiAiY29udGV4dCIg
dG8gYWlkIHN1Y2ggc3BlbGxjaGVja2VycyBvbiBsYW5ndWFnZQogICAgIC8vIGlkZW50aWZpY2F0
aW9uLiBOb3JhbWxseSBpdCdzIHRoZSB0ZXh0IHN1cnJvdW5kaW5nIHRoZSAid29yZCIgZm9yIHdo
aWNoIHdlIGFyZSBnZXR0aW5nIGNvcnJlY3Rpb24gc3VnZ2VzdGlvbnMuCiAgICAgdmlydHVhbCB2
b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBj
b250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5
cGVNYXNrLCBjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGNvbnN0IFRleHRDaGVja2luZ1JlcXVlc3QmKSA9
IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Rl
eHRDaGVja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcu
aAppbmRleCA5NjdlYWM1YjM2NTNiZmRiYjFiMTFmOGQ0NmI0M2ViYTljNTIyODEwLi5iZTllZDVm
OWU4NWZjZGU4MDExNjhjMzM5M2VmZDQ5NTE4NzZkYzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmgKQEAgLTMxLDYgKzMxLDggQEAKICNpZm5kZWYgVGV4
dENoZWNraW5nX2gKICNkZWZpbmUgVGV4dENoZWNraW5nX2gKIAorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNkZWZpbmUgV1RGX1VTRV9H
UkFNTUFSX0NIRUNLSU5HIDEKQEAgLTYxLDYgKzYzLDM0IEBAIGVudW0gVGV4dENoZWNraW5nVHlw
ZSB7CiAKIHR5cGVkZWYgdW5zaWduZWQgVGV4dENoZWNraW5nVHlwZU1hc2s7CiAKK2VudW0gVGV4
dENoZWNraW5nUHJvY2Vzc1R5cGUgeworICAgIFRleHRDaGVja2luZ1Byb2Nlc3NCYXRjaCwKKyAg
ICBUZXh0Q2hlY2tpbmdQcm9jZXNzSW5jcmVtZW50YWwKK307CisKK2NsYXNzIFRleHRDaGVja2lu
Z1JlcXVlc3QgeworcHVibGljOgorICAgIFRleHRDaGVja2luZ1JlcXVlc3QoaW50IHNlcXVlbmNl
LCBTdHJpbmcgdGV4dCwgVGV4dENoZWNraW5nVHlwZU1hc2sgbWFzaywgVGV4dENoZWNraW5nUHJv
Y2Vzc1R5cGUgcHJvY2Vzc1R5cGUpCisgICAgICAgIDogbV9zZXF1ZW5jZShzZXF1ZW5jZSkKKyAg
ICAgICAgLCBtX3RleHQodGV4dCkKKyAgICAgICAgLCBtX21hc2sobWFzaykKKyAgICAgICAgLCBt
X3Byb2Nlc3NUeXBlKHByb2Nlc3NUeXBlKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIHNldFNl
cXVlbmNlKGludCBzZXF1ZW5jZSkgeyBtX3NlcXVlbmNlID0gc2VxdWVuY2U7IH0KKyAgICBpbnQg
c2VxdWVuY2UoKSBjb25zdCB7IHJldHVybiBtX3NlcXVlbmNlOyB9CisgICAgU3RyaW5nIHRleHQo
KSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KKyAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNr
KCkgY29uc3QgeyByZXR1cm4gbV9tYXNrOyB9CisgICAgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUg
cHJvY2Vzc1R5cGUoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NUeXBlOyB9CisKK3ByaXZhdGU6
CisgICAgaW50IG1fc2VxdWVuY2U7CisgICAgU3RyaW5nIG1fdGV4dDsKKyAgICBUZXh0Q2hlY2tp
bmdUeXBlTWFzayBtX21hc2s7CisgICAgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgbV9wcm9jZXNz
VHlwZTsKK307CisKIH0KIAogI2VuZGlmIC8vIFRleHRDaGVja2luZ19oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tC
ZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggZDNjMzdlZTk0NGM0YjdkODdjZjUyMjdlZTU5NGUx
MGZkODZjNTE3ZS4uMGU0NDQxZDgyNzZkYzY4NmM5OWIwOGE5OTI4MWFkYzNmNjc2NTQ5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtNTU4LDcgKzU1OCw3IEBAIHZv
aWQgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6Y2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNo
YXIqLCBpbnQsIFdURjo6VmVjdG9yCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBF
ZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNr
ZXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBTdHJpbmcmKQordm9pZCBFZGl0
b3JDbGllbnRCbGFja0JlcnJ5OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIq
LCBjb25zdCBUZXh0Q2hlY2tpbmdSZXF1ZXN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggYmZmYTg4MTgwNmQ2NDcxMTA0
YjkyMWQ4ZDFlODc2ZjQ3Y2U0ZTU2NS4uNTRhMzEwMDkwMDAyOThlODkxZjA3M2RkNzU3YzAyZWY1
MWUwMTdlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oCkBAIC04NCw3ICs4NCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25G
b3JNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmIG1pc3NwZWxsZWRXb3JkKTsKICAgICB2aXJ0
dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQsIFZlY3RvcjxH
cmFtbWFyRGV0YWlsLCAwdT4mLCBpbnQqLCBpbnQqKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vl
c3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4m
KTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2Vy
KiwgaW50LCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGNvbnN0IFRleHRD
aGVja2luZ1JlcXVlc3QmKTsKIAogICAgIHZpcnR1YWwgVGV4dENoZWNrZXJDbGllbnQqIHRleHRD
aGVja2VyKCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0
cmluZyhjb25zdCBTdHJpbmcmLCBjb25zdCBHcmFtbWFyRGV0YWlsJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCmluZGV4IDAzM2Q0NmQ1OGMy
Zjc5NTQ3OWUwYTA0MjllMzZkZjkxNzNkZDVlOTYuLjkzNDI4MWEyOTIxZDllZTY3OTJkNGJlN2E3
Mzc3NWE0ZjA3OWI2ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Vk
aXRvckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRv
ckNsaWVudEltcGwuY3BwCkBAIC03MjksMTAgKzcyOSwxMCBAQCB2b2lkIEVkaXRvckNsaWVudElt
cGw6OmNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25zdCBVQ2hhciogdGV4dCwgaW50IGxlbmd0aCwK
ICAgICAgICAgKm1pc3NwZWxsaW5nTGVuZ3RoID0gc3BlbGxMZW5ndGg7CiB9CiAKLXZvaWQgRWRp
dG9yQ2xpZW50SW1wbDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiBzZW5k
ZXIsIGludCBpZGVudGlmaWVyLCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgU3RyaW5nJiB0
ZXh0KQordm9pZCBFZGl0b3JDbGllbnRJbXBsOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVs
bENoZWNrZXIqIHNlbmRlciwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdCYgcmVx
dWVzdCkKIHsKICAgICBpZiAobV93ZWJWaWV3LT5zcGVsbENoZWNrQ2xpZW50KCkpCi0gICAgICAg
IG1fd2ViVmlldy0+c3BlbGxDaGVja0NsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlRleHQodGV4
dCwgbmV3IFdlYlRleHRDaGVja2luZ0NvbXBsZXRpb25JbXBsKGlkZW50aWZpZXIsIHNlbmRlcikp
OworICAgICAgICBtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGllbnQoKS0+cmVxdWVzdENoZWNraW5n
T2ZUZXh0KHJlcXVlc3QudGV4dCgpLCBuZXcgV2ViVGV4dENoZWNraW5nQ29tcGxldGlvbkltcGwo
cmVxdWVzdC5zZXF1ZW5jZSgpLCBzZW5kZXIpKTsKIH0KIAogU3RyaW5nIEVkaXRvckNsaWVudElt
cGw6OmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmlu
ZyYgbWlzc3BlbGxlZFdvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9FZGl0b3JDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JD
bGllbnRJbXBsLmgKaW5kZXggOTk5ODYwYTAyNzI2OTQzMzYzMzA1MzQ2M2M0MjJiY2RhZTg5MGNk
Ny4uYjE2N2I2YzJkNDY2YTRkZjJlZTBhYjNlMjQ5ZmU0MGMwOTMyZjE4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaApAQCAtMTA5LDcgKzEwOSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RG
OjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxX
VEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRo
b2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5h
YmxlZCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6
OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0
IFdURjo6U3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVl
c3QmKTsKIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVj
a2VyKCkgeyByZXR1cm4gdGhpczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RnJhbWVJbXBsLmNwcAppbmRleCAyMTcwNGQ5N2UwMTJjOTFjYWUwZTQ3OThmMzE0Y2ViNzI4Yjc3
OTM1Li5hZGYyMDIzNzEwNTY5M2FlMTFhN2MyMTBlODA5ZmIzYjdjN2YyNzM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTEzMDEsNyArMTMwMSw3
IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpyZXF1ZXN0VGV4dENoZWNraW5nKGNvbnN0IFdlYkVsZW1l
bnQmIHdlYkVsZW0pCiAKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlVG9DaGVjayA9IHJhbmdlT2ZD
b250ZW50cyhjb25zdF9jYXN0PEVsZW1lbnQqPih3ZWJFbGVtLmNvbnN0VW53cmFwPEVsZW1lbnQ+
KCkpKTsKIAotICAgIGZyYW1lKCktPmVkaXRvcigpLT5zcGVsbENoZWNrZXIoKS0+cmVxdWVzdENo
ZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlwZVNwZWxs
aW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIsIHJhbmdlVG9DaGVjaywgcmFuZ2VUb0NoZWNr
KSk7CisgICAgZnJhbWUoKS0+ZWRpdG9yKCktPnNwZWxsQ2hlY2tlcigpLT5yZXF1ZXN0Q2hlY2tp
bmdGb3IoU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcg
fCBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciwgVGV4dENoZWNraW5nUHJvY2Vzc0JhdGNoLCByYW5n
ZVRvQ2hlY2ssIHJhbmdlVG9DaGVjaykpOwogfQogCiBib29sIFdlYkZyYW1lSW1wbDo6aGFzU2Vs
ZWN0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50RWZsLmgKaW5kZXggNDIxODllMWQ0MWU3NDA1MmNiMWM5N2ZhYmE3MzdkYWZm
Y2Y1MTIyOC4uMmI1MmU5ZGRhZDIxYTJlZDE3Y2FjNmFhNDg3N2YxMTMwMGY3NTVhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgK
QEAgLTEyMCw3ICsxMjAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNG
b3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBXVEY6OlZl
Y3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0
aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVu
YWJsZWQpOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3Jl
OjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25z
dCBXVEY6OlN0cmluZyYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdS
ZXF1ZXN0JikgeyB9CiAgICAgdmlydHVhbCBUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIo
KSB7IHJldHVybiB0aGlzOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5oIGIvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRHdGsuaAppbmRleCBlNTM5MGJj
Yzk3Mzk0NzdhMjc2MDQ3OWM2ZTQxMTIzODI4NWUxMGU2Li5iM2ZhMDQ5OTQ5OWM5OGNjMTYzY2Nj
NjY2MDQ1YTIxZTc2NGQzZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xh
c3MgVGV4dENoZWNrZXJDbGllbnRHdGsgOiBwdWJsaWMgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGll
bnQgewogICAgICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGdldEF1dG9Db3JyZWN0U3VnZ2VzdGlv
bkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFdURjo6U3RyaW5nJik7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBjaGVja0dyYW1tYXJPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCBsZW5ndGgsIFdURjo6
VmVjdG9yPFdlYkNvcmU6OkdyYW1tYXJEZXRhaWw+JiwgaW50KiBiYWRHcmFtbWFyTG9jYXRpb24s
IGludCogYmFkR3JhbW1hckxlbmd0aCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2Vz
Rm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYgd29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRl
eHQsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7Ci0gICAgICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQs
IFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0cmluZyYpIHt9Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVs
bENoZWNrZXIqLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0JikgeyB9CiAKICAg
ICAgICAgdm9pZCB1cGRhdGVTcGVsbENoZWNraW5nTGFuZ3VhZ2UoY29uc3QgY2hhciopOwogICAg
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oCmluZGV4IDVhOWI5MTcwYjVkNjIwNzFkZjQ4MWNjMzI5NDBkYTcyZmI1MWFh
MWMuLmM3NWZlZTA5ZmI5MzI5ODIzMjc4YTVlNTY2YjU0Yzc1N2Y4YjE4MGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0x
MzUsNyArMTM1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29y
ZChjb25zdCBXVEY6OlN0cmluZyYgd29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsIFdU
Rjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3NlcykgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50
LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgV1RGOjpTdHJpbmcmKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6
U3BlbGxDaGVja2VyKiwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdCYpIE9WRVJS
SURFOwogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5l
bChXZWJDb3JlOjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJl
cGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OlJlYXNvbkZvckRp
c21pc3NpbmdDb3JyZWN0aW9uUGFuZWwpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IGYxYzU1MTBiZjEx
MDJjOGVmOGFmZTM5ZTMwOWE4MjQ5YTE3ZTA1NmMuLjQ3ODU1MzAzNGE3ODIzYmIxODU1NzA0ZWRk
YzI1YTMyOTJmOWUyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTk3MiwxNSArOTcyLDE1IEBAIHZvaWQgV2ViRWRp
dG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpCiBAZW5kCiAjZW5kaWYKIAotdm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxs
Q2hlY2tlciogc2VuZGVyLCBpbnQgc2VxdWVuY2UsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVN
YXNrIGNoZWNraW5nVHlwZXMsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3ZvaWQgV2ViRWRpdG9yQ2xp
ZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqIHNlbmRl
ciwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdCYgcmVxdWVzdCkKIHsKICNpZm5k
ZWYgQlVJTERJTkdfT05fTEVPUEFSRAotICAgIE5TUmFuZ2UgcmFuZ2UgPSBOU01ha2VSYW5nZSgw
LCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICBOU1JhbmdlIHJhbmdlID0gTlNNYWtlUmFuZ2UoMCwgcmVx
dWVzdC50ZXh0KCkubGVuZ3RoKCkpOwogICAgIE5TUnVuTG9vcCogY3VycmVudExvb3AgPSBbTlNS
dW5Mb29wIGN1cnJlbnRSdW5Mb29wXTsKLSAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxs
Q2hlY2tlcl0gcmVxdWVzdENoZWNraW5nT2ZTdHJpbmc6dGV4dCByYW5nZTpyYW5nZSB0eXBlczpO
U1RleHRDaGVja2luZ0FsbFN5c3RlbVR5cGVzIG9wdGlvbnM6MCBpblNwZWxsRG9jdW1lbnRXaXRo
VGFnOjAgCisgICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RD
aGVja2luZ09mU3RyaW5nOnJlcXVlc3QudGV4dCgpIHJhbmdlOnJhbmdlIHR5cGVzOk5TVGV4dENo
ZWNraW5nQWxsU3lzdGVtVHlwZXMgb3B0aW9uczowIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6MAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cjpeKE5TSW50ZWdlciwgTlNBcnJheSogcmVzdWx0cywgTlNPcnRob2dyYXBoeSosIE5TSW50ZWdl
cikgewogICAgICAgICAgICAgW2N1cnJlbnRMb29wIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3Io
cGVyZm9ybSkgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OltbW1dl
YkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgYWxsb2NdIGluaXRXaXRoU2VuZGVyOnNlbmRlciBz
ZXF1ZW5jZTpzZXF1ZW5jZSB0eXBlczpjaGVja2luZ1R5cGVzIHJlc3VsdHM6cmVzdWx0c10gYXV0
b3JlbGVhc2VdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OltbW1dl
YkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgYWxsb2NdIGluaXRXaXRoU2VuZGVyOnNlbmRlciBz
ZXF1ZW5jZTpyZXF1ZXN0LnNlcXVlbmNlKCkgdHlwZXM6cmVxdWVzdC5tYXNrKCkgcmVzdWx0czpy
ZXN1bHRzXSBhdXRvcmVsZWFzZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJn
dW1lbnQ6bmlsIG9yZGVyOjAgbW9kZXM6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0Ok5TRGVmYXVs
dFJ1bkxvb3BNb2RlXV07CiAgICAgICAgIH1dOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQuaCBiL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRRdC5oCmluZGV4IGU3OGNl
MWQxMGMwNWQyMzVhNmE1NGIzYmJiZWE3ZWVhOWFjZTg0ODMuLmFlNDE5YjI1MGY5N2QxMzkyMTQ0
ZjZhM2Q2ZjQzNzQxZDc4YzQ4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRRdC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVs
bGVkV29yZChjb25zdCBTdHJpbmcmIG1pc3NwZWxsZWRXb3JkKTsKICAgICB2aXJ0dWFsIHZvaWQg
Y2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBWZWN0b3I8R3Jh
bW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRHcmFtbWFyTGVu
Z3RoKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3
b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50
LCBUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGNvbnN0IFRleHRDaGVj
a2luZ1JlcXVlc3QmKSB7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRpbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUNvbnRpbm91c1NwZWxsQ2hl
Y2tpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgKaW5kZXggMjhhOTEwNWVmYjY0ZWU4MTU1YWQwZGU5NzJmMWM4ZjdhMTU5OTMy
YS4uMGYyOWU5ZTBmOTU5ZjYxNjdlMzg5MGYyYmQ1NGRmZDAxZDYyM2NmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTEx
MCw3ICsxMTAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0
aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKTsK
LSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxD
aGVja2VyKiwgaW50LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3QgV1RGOjpT
dHJpbmcmKSB7fQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJD
b3JlOjpTcGVsbENoZWNrZXIqLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0Jikg
eyB9CisKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tl
cigpIHsgcmV0dXJuIHRoaXM7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaCBiL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaAppbmRleCA3MmZhZDNk
Nzk2MjAwYzAwYmQ4ZDcwMmQwZTZmNzM2NzgwZGIxMmIwLi5mYzljZTAyM2ZhOWE3MGMwYzk5YWFk
MmQ2MDAxNTA5NmQ1ZDNjMWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCkBAIC0xMDEsNyArMTAxLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmlu
ZyYgd29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3Ry
aW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRl
KCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCk7Ci0gICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcios
IGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJikg
e30KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3Bl
bGxDaGVja2VyKiwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdCYpIHsgfQogICAg
IHZpcnR1YWwgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgeyByZXR1
cm4gdGhpczsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJL
aXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmggYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvRWRpdG9yQ2xpZW50V3guaAppbmRleCBkMGJmZDJhZDE1ZWRkYzMzMGE4YWQ5MTNhMzQ0ZjQ4
Mjc5OWM1N2UzLi5lY2UxNWZhODcxOWMyNWU2OWMyMDJhMTRmZDZmNDEwMmUzM2VjN2QxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaAor
KysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaApAQCAt
MTE0LDcgKzExNCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRN
ZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wg
ZW5hYmxlZCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNv
cmU6OlNwZWxsQ2hlY2tlciosIGludCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2ssIGNv
bnN0IFdURjo6U3RyaW5nJikge30KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5n
UmVxdWVzdCYpIHsgfQogICAgIHZpcnR1YWwgVGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2Vy
KCkgeyByZXR1cm4gdGhpczsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmlu
ZGV4IDE5ZWY3ZGM0ZjIzYTMyMDNjN2Y5OGYxNTk1NTEzOTVlMDQzYTRhMDcuLmM3NDIxNjc4NjU0
YmU3YTJjNTQyNGJiMGYyOTNjZWVhNTVjYjJiNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAK
QEAgLTQ0Nyw3ICs0NDcsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRob2RT
dGF0ZShib29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViRWRpdG9yQ2xp
ZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQs
IFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0cmluZyYpCit2b2lk
IFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxD
aGVja2VyKiwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdCYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDI2MDAyMGZmMjZkZWRk
MTcwMTVlZTZhYmE0YjIyZDAyOWUzMzgwODkuLjJmYjMxNTBiZDcwMjQ1MGJkMWNmZTc1MzdiZTBj
YTRhY2Q2NDA4MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTQxLDcgKzE0MSw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYg
d29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29y
ZTo6U3BlbGxDaGVja2VyKiwgaW50LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29u
c3QgV1RGOjpTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgY29uc3QgV2ViQ29yZTo6VGV4dENo
ZWNraW5nUmVxdWVzdCYpIE9WRVJSSURFOwogI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlv
blBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncykgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6UmVhc29u
Rm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCkgT1ZFUlJJREU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>