<?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>80401</bug_id>
          
          <creation_ts>2012-03-06 02:09:50 -0800</creation_ts>
          <short_desc>[BlackBerry] Credential save and autofill implemetation</short_desc>
          <delta_ts>2012-03-21 08:23:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit BlackBerry</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>0</everconfirmed>
          <reporter name="Jonathan Dong">jonathan.dong.webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>charles.wei</cc>
    
    <cc>joenotcharles</cc>
    
    <cc>leo.yang</cc>
    
    <cc>liachen</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>571673</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Dong">jonathan.dong.webkit</who>
    <bug_when>2012-03-06 02:09:50 -0800</bug_when>
    <thetext>Implement credential autofill feature for blackberry porting.

Including http authentication dialog save and autofill, as well as in-form authentication save and autofill.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571687</commentid>
    <comment_count>1</comment_count>
      <attachid>130343</attachid>
    <who name="Jonathan Dong">jonathan.dong.webkit</who>
    <bug_when>2012-03-06 02:44:31 -0800</bug_when>
    <thetext>Created attachment 130343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575592</commentid>
    <comment_count>2</comment_count>
      <attachid>130343</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-03-10 17:06:27 -0800</bug_when>
    <thetext>Comment on attachment 130343
Patch

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

I will like we are missing an abstraction layer here :( ... the layering violation and the &apos;friend&apos; class declaration makes me kinda of sad.

&gt; Source/WebCore/platform/network/blackberry/NetworkJob.cpp:841
&gt; +            Credential inputCredential = static_cast&lt;FrameLoaderClientBlackBerry*&gt;(m_frame-&gt;loader()-&gt;client())-&gt;authenticationChallenge(newURL, protectionSpace);

That is a layering violation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580044</commentid>
    <comment_count>3</comment_count>
      <attachid>132177</attachid>
    <who name="Jonathan Dong">jonathan.dong.webkit</who>
    <bug_when>2012-03-15 19:35:27 -0700</bug_when>
    <thetext>Created attachment 132177
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583274</commentid>
    <comment_count>4</comment_count>
      <attachid>132177</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-03-20 11:25:28 -0700</bug_when>
    <thetext>Comment on attachment 132177
Patch

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

Looks good, see if you can fix before landing, and Leo or Charles can help cq+ or commit for you.

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:2024
&gt; +    WebCore::Credential inputCredential(username, password, WebCore::CredentialPersistenceNone);

You dont need WebCore:: prefix in this file.

&gt; Source/WebKit/blackberry/Api/WebPage_p.h:180
&gt; +    virtual PageClientBlackBerry::SaveCredentialType notifyShouldSaveCredential(bool);

PageClientBlackBerry:: prefix might be not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583707</commentid>
    <comment_count>5</comment_count>
      <attachid>132948</attachid>
    <who name="Jonathan Dong">jonathan.dong.webkit</who>
    <bug_when>2012-03-20 19:19:52 -0700</bug_when>
    <thetext>Created attachment 132948
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583708</commentid>
    <comment_count>6</comment_count>
      <attachid>132948</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-03-20 19:24:35 -0700</bug_when>
    <thetext>Comment on attachment 132948
Patch

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

Looks good.

&gt; Source/WebCore/ChangeLog:6
&gt; +        Reviewed by Rob Buis.

You probably mean internally reviewed here. Since I am doing both the internal and external review this is fine, but better keep it blank (i.e. NOBODY).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583709</commentid>
    <comment_count>7</comment_count>
      <attachid>132948</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-03-20 19:27:35 -0700</bug_when>
    <thetext>Comment on attachment 132948
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        As this class is our platform independent interface,

should be &quot;platform specific interface&quot;.

&gt; Source/WebCore/ChangeLog:12
&gt; +        FrameLoaderClient cause which might be intrusion.

&quot;cause which might be intrusion&quot; ==&gt;which is a platform independent interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583710</commentid>
    <comment_count>8</comment_count>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2012-03-20 19:29:20 -0700</bug_when>
    <thetext>You also need to address comment #4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583712</commentid>
    <comment_count>9</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-03-20 19:34:13 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; You also need to address comment #4

Ah, good catch...
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583750</commentid>
    <comment_count>10</comment_count>
      <attachid>132956</attachid>
    <who name="Jonathan Dong">jonathan.dong.webkit</who>
    <bug_when>2012-03-20 20:43:50 -0700</bug_when>
    <thetext>Created attachment 132956
Patch

Sorry for the carelessness and thanks for the help</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583984</commentid>
    <comment_count>11</comment_count>
      <attachid>132956</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-03-21 04:26:09 -0700</bug_when>
    <thetext>Comment on attachment 132956
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583987</commentid>
    <comment_count>12</comment_count>
      <attachid>132956</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-21 04:27:51 -0700</bug_when>
    <thetext>Comment on attachment 132956
Patch

Rejecting attachment 132956 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

ERROR: /mnt/git/webkit-commit-queue/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/12035387</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583990</commentid>
    <comment_count>13</comment_count>
      <attachid>132956</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-03-21 04:31:24 -0700</bug_when>
    <thetext>Comment on attachment 132956
Patch

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

&gt; Source/WebCore/ChangeLog:6
&gt; +        Reviewed by NOBODY (OPPS!).

Typo!

&gt; Source/WebKit/blackberry/ChangeLog:6
&gt; +        Reviewed by NOBODY (OPPS!).

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584098</commentid>
    <comment_count>14</comment_count>
      <attachid>133036</attachid>
    <who name="Jonathan Dong">jonathan.dong.webkit</who>
    <bug_when>2012-03-21 06:59:43 -0700</bug_when>
    <thetext>Created attachment 133036
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584141</commentid>
    <comment_count>15</comment_count>
      <attachid>133036</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-03-21 08:15:56 -0700</bug_when>
    <thetext>Comment on attachment 133036
Patch

Lets retry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584150</commentid>
    <comment_count>16</comment_count>
      <attachid>133036</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-21 08:23:50 -0700</bug_when>
    <thetext>Comment on attachment 133036
Patch

Clearing flags on attachment: 133036

Committed r111546: &lt;http://trac.webkit.org/changeset/111546&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584151</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-21 08:23:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130343</attachid>
            <date>2012-03-06 02:44:31 -0800</date>
            <delta_ts>2012-03-15 19:35:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80401-20120306184429.patch</filename>
            <type>text/plain</type>
            <size>11789</size>
            <attacher name="Jonathan Dong">jonathan.dong.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5ODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjRkYzZhMzgyNTY2ODRk
ZTcyOWUzODFlOWM2OWM0N2U0NTY4YjJjZi4uZjZlNWJkNzlmZGI0YjVjYzIxMWY3M2JlZmZiMGE2
MGNlNWVjMDYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAzLTA2ICBKb25h
dGhhbiBEb25nICA8am9uYXRoYW4uZG9uZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAg
W0JsYWNrQmVycnldIENyZWRlbnRpYWwgc2F2ZSBhbmQgYXV0b2ZpbGwgaW1wbGVtZXRhdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA0MDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnZva2UgdGhl
IGNoYW5nZWQgZnVuY3Rpb24KKyAgICAgICAgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojph
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpCisgICAgICAgIGRpcmVjdGx5LCB0aGlzIGNhbiByZW1v
dmUgdGhlIGludGVyZmFjZSBmdW5jdGlvbgorICAgICAgICBGcmFtZUxvYWRlckNsaWVudDo6YXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoKSBmcm9tCisgICAgICAgIG91ciBpbnRlcm5hbCByZXBvc2l0
b3J5LCB3aXRob3V0IGFkZCBhIG5ldyBpbnRlcmZhY2UKKyAgICAgICAgaW4gdXBzdHJlYW0gY29k
ZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pv
Yjo6c2VuZFJlcXVlc3RXaXRoQ3JlZGVudGlhbHMpOgorCiAyMDEyLTAzLTA1ICBLZW50IFRhbXVy
YSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBEbyBub3QgcmVmb3JtYXQgc3RyaW5n
cyBpbiA8aW5wdXQgdHlwZT1udW1iZXI+IG9uIHBsYXRmb3JtcyB1c2luZyBMb2NhbGl6ZWROdW1i
ZXJJQ1UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCAzNGQ3ZDViODA1MmU1OGYw
MTYzNWE0OTQ0MTg2Njg2NDQ4ZDMwNDUyLi4yNGNjYzMwNjU2OThkMDc1MWZiY2M4OTc5ZWI3YjZh
MTA4Zjg1MTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBA
QAorMjAxMi0wMy0wNiAgSm9uYXRoYW4gRG9uZyAgPGpvbmF0aGFuLmRvbmdAdG9yY2htb2JpbGUu
Y29tLmNuPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBDcmVkZW50aWFsIHNhdmUgYW5kIGF1dG9m
aWxsIGltcGxlbWV0YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgwNDAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkZWQgYSBuZXcgaW50ZXJmYWNlIFdlYlBhZ2VDbGllbnQ6Om5vdGlmeVNob3Vs
ZFNhdmVDcmVkZW50aWFsKCkKKyAgICAgICAgYW5kIGFzc29jaWF0ZWQgcmV0dXJuIHR5cGUgU2F2
ZUNyZWRlbnRpYWxUeXBlIHRvIG5vdGlmeQorICAgICAgICB1c2VyIHRvIHNhdmUgY3JlZGVudGlh
bCBvciBub3Q7CisgICAgICAgIEFkZGVkIGEgQ3JlZGVudGlhbE1hbmFnZXIgaW5zdGFuY2UgaW50
byBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkKKyAgICAgICAgY2xhc3M7CisgICAgICAgIEZv
ciB0aGUgaHR0cCBhdXRoZW50aWNhdGlvbiwgYXV0b2ZpbGwgdGhlIGlucHV0IGRpYWxvZyBpbgor
ICAgICAgICBmdW5jdGlvbiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpIGFuZCBzYXZlIHRoZSBj
cmVkZW50aWFsCisgICAgICAgIGluZm9ybWF0aW9uIGluIHRoZSBzYW1lIGZ1bmN0aW9uOworICAg
ICAgICBGb3IgdGhlIGluLWZvcm0gYXV0aGVudGljYXRpb24sIGF1dG9maWxsIHRoZSB1c2VybmFt
ZSBhbmQKKyAgICAgICAgcGFzc3dvcmQgaW5wdXQgZmllbGRzIGluIGZ1bmN0aW9uIGRpc3BhdGNo
RGlkRmluaXNoTG9hZCgpLAorICAgICAgICBhbmQgc2F2ZSB0aGUgY3JlZGVudGlhbCBpbmZvcm1h
dGlvbiBpbiBmdW5jdGlvbgorICAgICAgICBkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKCkgb3IgZGlz
cGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KCkuCisKKyAgICAgICAgKiBBcGkvV2ViUGFnZUNsaWVu
dC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJy
eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OkZy
YW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkRmluaXNoTG9hZCk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkRmluaXNoRG9jdW1l
bnRMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6
ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6
YXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChG
cmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkpOgorCiAyMDEyLTAzLTA1ICBFbGkgRmlkbGVyICA8
ZWZpZGxlckByaW0uY29tPgogCiAgICAgICAgIFRoZSBtaW5pbXVtIGZvbnQgc2l6ZSBXZWJTZXR0
aW5nIHNob3VsZCBhY3R1YWxseSBjaGFuZ2UgdGhlIExPR0lDQUwgZm9udCBzaXplIGluIFdlYkNv
cmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvTmV0d29ya0pvYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNr
YmVycnkvTmV0d29ya0pvYi5jcHAKaW5kZXggNWNkOTUyN2Y3ZGMwOWMzYzBiYTliYzNmMjA1YTY2
ZjkwMWMwN2E3My4uOTE3N2Y2MzY4ZmU4OWY1MzI0Mzc0OWE2MjYxZjI3OTYxMGNmZmIyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdv
cmtKb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJy
eS9OZXR3b3JrSm9iLmNwcApAQCAtODM3LDggKzgzNywxMSBAQCBib29sIE5ldHdvcmtKb2I6OnNl
bmRSZXF1ZXN0V2l0aENyZWRlbnRpYWxzKFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgdHlwZSwg
UHJvdAogICAgICAgICAgICAgLy8gSWYgdGhleSBhcmUgY29ycmVjdCwgdGhleSB3aWxsIHRoZSBw
dXQgaW50byBDcmVkZW50aWFsU3RvcmFnZS4KICAgICAgICAgICAgIG1faGFuZGxlLT5nZXRJbnRl
cm5hbCgpLT5tX3VzZXIgPSAiIjsKICAgICAgICAgICAgIG1faGFuZGxlLT5nZXRJbnRlcm5hbCgp
LT5tX3Bhc3MgPSAiIjsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2ZyYW1lLT5sb2Fk
ZXIoKS0+Y2xpZW50KCktPmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHJlYWxtLCB1c2VybmFtZSwg
cGFzc3dvcmQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQ3JlZGVudGlhbCBpbnB1
dENyZWRlbnRpYWwgPSBzdGF0aWNfY2FzdDxGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkqPiht
X2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZShuZXdV
UkwsIHByb3RlY3Rpb25TcGFjZSk7CisgICAgICAgICAgICB1c2VybmFtZSA9IGlucHV0Q3JlZGVu
dGlhbC51c2VyKCk7CisgICAgICAgICAgICBwYXNzd29yZCA9IGlucHV0Q3JlZGVudGlhbC5wYXNz
d29yZCgpOworICAgICAgICB9CiAKICAgICAgICAgaWYgKHVzZXJuYW1lLmlzRW1wdHkoKSAmJiBw
YXNzd29yZC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oCmluZGV4IDRlN2RhY2QzM2RiNGFi
MGM4MzRhZjk0NWE5NTUwZGM1N2RkNDMyM2MuLmMzYmFiZmMyZjVhNGUxZDdhMmEzYjU3N2ZjNDBh
NTFhMWI3YmM5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2Vi
UGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNs
aWVudC5oCkBAIC03Nyw2ICs3NywxMiBAQCBwdWJsaWM6CiAgICAgICAgIE1lZGlhSW52YWxpZEVy
cm9yLAogICAgIH07CiAKKyAgICBlbnVtIFNhdmVDcmVkZW50aWFsVHlwZSB7CisgICAgICAgIFNh
dmVDcmVkZW50aWFsTmV2ZXJGb3JUaGlzU2l0ZSA9IDAsCisgICAgICAgIFNhdmVDcmVkZW50aWFs
Tm90Tm93LAorICAgICAgICBTYXZlQ3JlZGVudGlhbFllcworICAgIH07CisKICAgICB2aXJ0dWFs
IGludCBnZXRJbnN0YW5jZUlkKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUxvYWRTdGFydGVkKCkgPSAwOwpAQCAtMjA2LDYgKzIxMiw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBzZXRQcmV2ZW50c1NjcmVlbklkbGVEaW1taW5nKGJvb2wgbm9EaW1taW5nKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IHVuc2ln
bmVkIHNob3J0KiByZWFsbSwgdW5zaWduZWQgaW50IHJlYWxtTGVuZ3RoLCBXZWJTdHJpbmcmIHVz
ZXJuYW1lLCBXZWJTdHJpbmcmIHBhc3N3b3JkKSA9IDA7CisgICAgdmlydHVhbCBTYXZlQ3JlZGVu
dGlhbFR5cGUgbm90aWZ5U2hvdWxkU2F2ZUNyZWRlbnRpYWwoYm9vbCBpc05ldykgPSAwOwogCiAg
ICAgdmlydHVhbCBib29sIHNob3VsZFBsdWdpbkVudGVyRnVsbFNjcmVlbigpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUGx1Z2luRW50ZXJGdWxsU2NyZWVuKCkgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCA3YWIxZTcxYjdlZjEzNDEwOWQz
ODAyMmJmZmRlMWZkNmE5ZTdjMjE3Li4wNTkyOTgyOGM3NjkzY2M2NmVhNzZmMGFiYzhkZjI2NjI2
ZmRmZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcApA
QCAtMjksNiArMjksOSBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudEJsYWNrQmVycnkuaCIKICNp
bmNsdWRlICJDbGllbnRFeHRlbnNpb24uaCIKICNpbmNsdWRlICJDb29raWVNYW5hZ2VyLmgiCisj
aW5jbHVkZSAiQ3JlZGVudGlhbEJhY2tpbmdTdG9yZS5oIgorI2luY2x1ZGUgIkNyZWRlbnRpYWxN
YW5hZ2VyLmgiCisjaW5jbHVkZSAiQ3JlZGVudGlhbFRyYW5zZm9ybURhdGEuaCIKICNpbmNsdWRl
ICJEdW1wUmVuZGVyVHJlZUNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRl
eHRCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC01Miw2ICs1NSw3IEBA
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNpbmNsdWRlICJQ
cm9ncmVzc1RyYWNrZXIuaCIKKyNpbmNsdWRlICJQcm90ZWN0aW9uU3BhY2UuaCIKICNpbmNsdWRl
ICJTY29wZVBvaW50ZXIuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJU
ZXh0RW5jb2RpbmcuaCIKQEAgLTk2LDYgKzEwMCw5IEBAIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tC
ZXJyeTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5KCkKICAgICAsIG1fcGx1Z2luVmlldygw
KQogICAgICwgbV9oYXNTZW50UmVzcG9uc2VUb1BsdWdpbihmYWxzZSkKICAgICAsIG1fY2FuY2Vs
TG9hZE9uTmV4dERhdGEoZmFsc2UpCisjaWYgRU5BQkxFKEJMQUNLQkVSUllfQ1JFREVOVElBTF9Q
RVJTSVNUKQorICAgICwgbV9jcmVkZW50aWFsTWFuYWdlcihhZG9wdFB0cihuZXcgQ3JlZGVudGlh
bE1hbmFnZXIodGhpcykpKQorI2VuZGlmCiB7CiAgICAgbV9kZWZlcnJlZEpvYnNUaW1lciA9IG5l
dyBUaW1lcjxGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk+KHRoaXMsICZGcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnk6OmRlZmVycmVkSm9ic1RpbWVyRmlyZWQpOwogfQpAQCAtNjIwLDYgKzYy
NywxMSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEaWRGaW5p
c2hMb2FkKCkKICAgICAgICAgICAgICAgICBtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+c2V0
QWx0ZXJuYXRlRmVlZERldGFpbHModGl0bGUudXRmOCgpLmRhdGEoKSwgaHJlZi51dGY4KCkuZGF0
YSgpKTsKICAgICAgICAgfQogICAgIH0KKworI2lmIEVOQUJMRShCTEFDS0JFUlJZX0NSRURFTlRJ
QUxfUEVSU0lTVCkKKyAgICBpZiAoIW1fd2ViUGFnZVByaXZhdGUtPm1fd2ViU2V0dGluZ3MtPmlz
UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQorICAgICAgICBtX2NyZWRlbnRpYWxNYW5hZ2VyLT5h
dXRvZmlsbFBhc3N3b3JkRm9ybXMobV9mcmFtZS0+ZG9jdW1lbnQoKS0+Zm9ybXMoKSk7CisjZW5k
aWYKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkRmlu
aXNoRG9jdW1lbnRMb2FkKCkKQEAgLTcxMiwxMiArNzI0LDI3IEBAIHZvaWQgRnJhbWVMb2FkZXJD
bGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVz
b3VyY2VFCiAgICAgfQogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlz
cGF0Y2hXaWxsU3VibWl0Rm9ybShGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLCBQYXNzUmVm
UHRyPEZvcm1TdGF0ZT4pCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0
Y2hXaWxsU3VibWl0Rm9ybShGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLCBQYXNzUmVmUHRy
PEZvcm1TdGF0ZT4gZm9ybVN0YXRlKQogeworI2lmIEVOQUJMRShCTEFDS0JFUlJZX0NSRURFTlRJ
QUxfUEVSU0lTVCkKKyAgICBpZiAoIW1fd2ViUGFnZVByaXZhdGUtPm1fd2ViU2V0dGluZ3MtPmlz
UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQorICAgICAgICBtX2NyZWRlbnRpYWxNYW5hZ2VyLT5z
YXZlQ3JlZGVudGlhbElmQ29uZmlybWVkKENyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhKGZvcm1TdGF0
ZS0+Zm9ybSgpKSk7CisjZW5kaWYKKwogICAgIC8vIEZJWE1FOiBTdHViLgogICAgIChtX2ZyYW1l
LT5sb2FkZXIoKS0+cG9saWN5Q2hlY2tlcigpLT4qZnVuY3Rpb24pKFBvbGljeVVzZSk7CiB9CiAK
K3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxTZW5kU3VibWl0
RXZlbnQoSFRNTEZvcm1FbGVtZW50KiBmb3JtKQoreworI2lmIEVOQUJMRShCTEFDS0JFUlJZX0NS
RURFTlRJQUxfUEVSU0lTVCkKKyAgICBpZiAoIW1fd2ViUGFnZVByaXZhdGUtPm1fd2ViU2V0dGlu
Z3MtPmlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQorICAgICAgICBtX2NyZWRlbnRpYWxNYW5h
Z2VyLT5zYXZlQ3JlZGVudGlhbElmQ29uZmlybWVkKENyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhKGZv
cm0pKTsKKyNlbHNlCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbmRpZgorfQorCiBQYXNzUmVm
UHRyPEZyYW1lPiBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmNyZWF0ZUZyYW1lKGNvbnN0
IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lCiAgICAgLCBIVE1MRnJhbWVPd25lckVsZW1l
bnQqIG93bmVyRWxlbWVudCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3Jv
bGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCkKIHsKQEAgLTExNjEsMTUg
KzExODgsMjYgQEAgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBGcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnk6OmNyZWF0ZU5ldHdvcmtpbmcKICAgICByZXR1cm4gRnJhbWVOZXR3
b3JraW5nQ29udGV4dEJsYWNrQmVycnk6OmNyZWF0ZShtX2ZyYW1lKTsKIH0KIAotdm9pZCBGcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IFN0
cmluZyYgcmVhbG0sIFN0cmluZyYgdXNlcm5hbWUsIFN0cmluZyYgcGFzc3dvcmQpCitDcmVkZW50
aWFsIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6YXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
Y29uc3QgS1VSTCYgdXJsLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSkK
IHsKLSAgICBXZWJTdHJpbmcgd2ViUGFnZVVzZXJuYW1lOwotICAgIFdlYlN0cmluZyB3ZWJQYWdl
UGFzc3dvcmQ7CisgICAgV2ViU3RyaW5nIHVzZXJuYW1lOworICAgIFdlYlN0cmluZyBwYXNzd29y
ZDsKIAotICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5hdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShyZWFsbS5jaGFyYWN0ZXJzKCksIHJlYWxtLmxlbmd0aCgpLCB3ZWJQYWdlVXNlcm5hbWUs
IHdlYlBhZ2VQYXNzd29yZCk7CisjaWYgRU5BQkxFKEJMQUNLQkVSUllfQ1JFREVOVElBTF9QRVJT
SVNUKQorICAgIGlmICghbV93ZWJQYWdlUHJpdmF0ZS0+bV93ZWJTZXR0aW5ncy0+aXNQcml2YXRl
QnJvd3NpbmdFbmFibGVkKCkpCisgICAgICAgIG1fY3JlZGVudGlhbE1hbmFnZXItPmF1dG9maWxs
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UocHJvdGVjdGlvblNwYWNlLCB1c2VybmFtZSwgcGFzc3dv
cmQpOworI2VuZGlmCisKKyAgICBtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+YXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UocHJvdGVjdGlvblNwYWNlLnJlYWxtKCkuY2hhcmFjdGVycygpLCBwcm90
ZWN0aW9uU3BhY2UucmVhbG0oKS5sZW5ndGgoKSwgdXNlcm5hbWUsIHBhc3N3b3JkKTsKIAotICAg
IHVzZXJuYW1lID0gd2ViUGFnZVVzZXJuYW1lOwotICAgIHBhc3N3b3JkID0gd2ViUGFnZVBhc3N3
b3JkOworI2lmIEVOQUJMRShCTEFDS0JFUlJZX0NSRURFTlRJQUxfUEVSU0lTVCkKKyAgICBDcmVk
ZW50aWFsIGlucHV0Q3JlZGVudGlhbCh1c2VybmFtZSwgcGFzc3dvcmQsIENyZWRlbnRpYWxQZXJz
aXN0ZW5jZVBlcm1hbmVudCk7CisgICAgaWYgKCFtX3dlYlBhZ2VQcml2YXRlLT5tX3dlYlNldHRp
bmdzLT5pc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKKyAgICAgICAgbV9jcmVkZW50aWFsTWFu
YWdlci0+c2F2ZUNyZWRlbnRpYWxJZkNvbmZpcm1lZChDcmVkZW50aWFsVHJhbnNmb3JtRGF0YSh1
cmwsIHByb3RlY3Rpb25TcGFjZSwgaW5wdXRDcmVkZW50aWFsKSk7CisjZWxzZQorICAgIENyZWRl
bnRpYWwgaW5wdXRDcmVkZW50aWFsKHVzZXJuYW1lLCBwYXNzd29yZCwgQ3JlZGVudGlhbFBlcnNp
c3RlbmNlTm9uZSk7CisjZW5kaWYKKyAgICByZXR1cm4gaW5wdXRDcmVkZW50aWFsOwogfQogCiB2
b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6c3RhcnREb3dubG9hZChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgLypzdWdnZXN0ZWROYW1lKi8pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggMjk4M2QwMWVlODhh
NTgzNzU2OGMwMGZlZWI1ODQ0OGI0YTJlYzA0My4uOTdjM2RlZTgxZDk2NTIxNGE2MDU2ZDhiZmZl
ODEzZjcxZGMyYmIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnku
aApAQCAtMzMsOCArMzMsMTAgQEAgY2xhc3MgV2ViUGFnZVByaXZhdGU7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorY2xhc3MgQ3JlZGVudGlhbE1hbmFnZXI7CiBjbGFzcyBGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OwogY2xhc3MgR2VvbG9jYXRpb247CitjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CiAK
IGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSA6IHB1YmxpYyBGcmFtZUxvYWRlckNs
aWVudCB7CiBwdWJsaWM6CkBAIC0xNjcsMTEgKzE2OSwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UoUmVzb3VyY2VMb2FkZXIqLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYWdlKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFRyYW5z
ZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoKSB7IG5vdEltcGxlbWVudGVkKCk7IH07CiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMoSWNvblR5cGUpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgfTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50
KEhUTUxGb3JtRWxlbWVudCopIHsgbm90SW1wbGVtZW50ZWQoKTsgfTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KEhUTUxGb3JtRWxlbWVudCopOwogCiAgICAg
dmlydHVhbCB2b2lkIHdpbGxEZWZlckxvYWRpbmcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVz
dW1lTG9hZGluZygpOwotICAgIHZpcnR1YWwgdm9pZCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZShj
b25zdCBTdHJpbmcmIHJlYWxtLCBTdHJpbmcmIHVzZXJuYW1lLCBTdHJpbmcmIHBhc3N3b3JkKTsK
KyAgICB2aXJ0dWFsIENyZWRlbnRpYWwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgS1VS
TCYsIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYpOwogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZy
YW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiAKQEAgLTIy
OCw2ICsyMzAsMTEgQEAgcHJpdmF0ZToKIAogICAgIC8vIFVzZWQgdG8gc3RvcCBtZWRpYSBmaWxl
cyBmcm9tIGxvYWRpbmcgYmVjYXVzZSB3ZSBkb24ndCBuZWVkIHRvIGhhdmUgdGhlIGVudGlyZSBm
aWxlIGxvYWRlZCBieSBXZWJLaXQuCiAgICAgYm9vbCBtX2NhbmNlbExvYWRPbk5leHREYXRhOwor
CisjaWYgRU5BQkxFKEJMQUNLQkVSUllfQ1JFREVOVElBTF9QRVJTSVNUKQorICAgIGZyaWVuZCBj
bGFzcyBDcmVkZW50aWFsTWFuYWdlcjsKKyAgICBPd25QdHI8Q3JlZGVudGlhbE1hbmFnZXI+IG1f
Y3JlZGVudGlhbE1hbmFnZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132177</attachid>
            <date>2012-03-15 19:35:27 -0700</date>
            <delta_ts>2012-03-20 20:43:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80401-20120316103525.patch</filename>
            <type>text/plain</type>
            <size>19710</size>
            <attacher name="Jonathan Dong">jonathan.dong.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwOTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDIzYjJjNWRlOTVlMTMw
MGExMDg5YjkyY2U2ZDRkNjJiYWY3MDUxZS4uYzQ2ZTg1MzA0ZjAzYmViZDY1OGZjZmY5MzlhNWM2
MWY0MGNiNjBhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAzLTE1ICBKb25h
dGhhbiBEb25nICA8am9uYXRoYW4uZG9uZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAg
W0JsYWNrQmVycnldIENyZWRlbnRpYWwgc2F2ZSBhbmQgYXV0b2ZpbGwgaW1wbGVtZXRhdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA0MDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBpbnRl
cmZhY2UgZnVuY3Rpb24gYXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKSBhbmQKKyAgICAgICAgbm90
aWZ5U2hvdWxkU2F2ZUNyZWRlbnRpYWwoKSBpbnRvIFBhZ2VDbGllbnRCbGFja0JlcnJ5LgorICAg
ICAgICBBcyB0aGlzIGNsYXNzIGlzIG91ciBwbGF0Zm9ybSBpbmRlcGVuZGVudCBpbnRlcmZhY2Us
CisgICAgICAgIGJ5IGRvaW5nIHRoaXMgd2UgZG9uJ3QgbmVlZCB0byBhZGQgaW50ZXJmYWNlIGlu
IGNsYXNzCisgICAgICAgIEZyYW1lTG9hZGVyQ2xpZW50IGNhdXNlIHdoaWNoIG1pZ2h0IGJlIGlu
dHJ1c2lvbi4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9i
bGFja2JlcnJ5L1BhZ2VDbGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpOZXR3b3JrSm9iOjpzZW5kUmVxdWVzdFdpdGhDcmVkZW50aWFscyk6CisK
IDIwMTItMDMtMTUgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbRm9ybXNdIFRoZSAibWV0ZXIiIGVsZW1lbnQgc2hvdWxkIG5vdCBiZSBhIGZvcm0tYXNz
b2NpYXRlZCBlbGVtZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggMTE1YjVk
YTQ1N2M3NTVlZGRiYjYzMjljYjIwZjNjMGZlMGRhMjIyOS4uYjA1OWU1YzAwMDZiNzVjMGMxYTli
ZTIzNDFkNzM4YWU5OWY5Nzg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTMgQEAKKzIwMTItMDMtMTUgIEpvbmF0aGFuIERvbmcgIDxqb25hdGhhbi5kb25nQHRv
cmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBbQmxhY2tCZXJyeV0gQ3JlZGVudGlhbCBzYXZl
IGFuZCBhdXRvZmlsbCBpbXBsZW1ldGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04MDQwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgaW50ZW5kZWQgdG8gaW1wbGVtZW50IHRo
ZSBjcmVkZW50aWFsIHBlcnNpc3QKKyAgICAgICAgYW5kIGF1dG9maWxsIGZlYXR1cmUgZm9yIEJs
YWNrQmVycnkgcG9ydGluZy4KKworICAgICAgICBNb3ZlZCBpbnRlcmZhY2UgYXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoKSBmcm9tIGNsYXNzCisgICAgICAgIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tC
ZXJyeSB0byBXZWJQYWdlUHJpdmF0ZSAoZGVyaXZlZCBmcm9tCisgICAgICAgIFBhZ2VDbGllbnRC
bGFja0JlcnJ5IGFzIGNoYW5nZXMgbWFkZSBpbiBpdHMgcGFyZW50IGludGVyZmFjZSBjbGFzcyk7
CisgICAgICAgIEltcGxlbWVudGVkIG5vdGlmeVNob3VsZFNhdmVDcmVkZW50aWFsKCkgaW4gV2Vi
UGFnZVByaXZhdGUKKyAgICAgICAgYW5kIFdlYlBhZ2VDbGllbnQgYXMgd2VsbC4KKyAgICAgICAg
QWRkZWQgY3JlZGVudGlhbE1hbmFnZXIoKSB0byByZXRyaXZlIENyZWRlbnRpYWxNYW5hZ2VyIGlu
c3RhbmNlCisgICAgICAgIGFzIGEgZ2xvYmFsIHNpbmdsZXRvbjsgcmVtb3ZlZCBpdHMgbV9mcmFt
ZUxvYWRlckNsaWVudCB3aGljaCBpcworICAgICAgICByZXBsYWNlZCB3aXRoIGEgcGFzc2VkIGlu
IFBhZ2VDbGllbnRCbGFja0JlcnJ5IHBvaW50ZXIsIGFuZCBtb2RpZmllZAorICAgICAgICB0aGUg
aW50ZXJmYWNlIGZ1bmN0aW9uIGFjY29yZGluZ2x5LgorCisgICAgICAgIEZvciB0aGUgaHR0cCBh
dXRoZW50aWNhdGlvbiwgYXV0b2ZpbGwgdGhlIGlucHV0IGRpYWxvZyBpbgorICAgICAgICBmdW5j
dGlvbiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpIGFuZCBzYXZlIHRoZSBjcmVkZW50aWFsCisg
ICAgICAgIGluZm9ybWF0aW9uIGluIHRoZSBzYW1lIGZ1bmN0aW9uOworICAgICAgICBGb3IgdGhl
IGluLWZvcm0gYXV0aGVudGljYXRpb24sIGF1dG9maWxsIHRoZSB1c2VybmFtZSBhbmQKKyAgICAg
ICAgcGFzc3dvcmQgaW5wdXQgZmllbGRzIGluIGZ1bmN0aW9uIGRpc3BhdGNoRGlkRmluaXNoTG9h
ZCgpLAorICAgICAgICBhbmQgc2F2ZSB0aGUgY3JlZGVudGlhbCBpbmZvcm1hdGlvbiBpbiBmdW5j
dGlvbgorICAgICAgICBkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKCkgb3IgZGlzcGF0Y2hXaWxsU2Vu
ZFN1Ym1pdEV2ZW50KCkuCisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChC
bGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjphdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQ
YWdlUHJpdmF0ZTo6bm90aWZ5U2hvdWxkU2F2ZUNyZWRlbnRpYWwpOgorICAgICAgICAqIEFwaS9X
ZWJQYWdlQ2xpZW50Lmg6CisgICAgICAgICogQXBpL1dlYlBhZ2VfcC5oOgorICAgICAgICAoV2Vi
UGFnZVByaXZhdGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NyZWRlbnRpYWxNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWRlbnRpYWxNYW5hZ2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OkNyZWRlbnRpYWxNYW5hZ2VyOjpzYXZlQ3JlZGVudGlhbElmQ29uZmlybWVkKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsTWFuYWdlci5oOgorICAgICAgICAoQ3Jl
ZGVudGlhbE1hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbE1hbmFnZXI6OkNy
ZWRlbnRpYWxNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkRmluaXNoTG9hZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2ls
bFN1Ym1pdEZvcm0pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0Jl
cnJ5OjpkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Lmg6Cisg
ICAgICAgIChGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkpOgorCiAyMDEyLTAzLTE0ICBBcnZp
ZCBOaWxzc29uICA8YW5pbHNzb25AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gTWFr
ZSBzdXJlIFdlYlBhZ2UgYW5kIEJhY2tpbmdTdG9yZSBkb24ndCBjcmFzaCB3aXRob3V0IGEgV2lu
ZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VD
bGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1Bh
Z2VDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggMmZhYjBmZTIxNjE0OGQ4YmY4ZGZmODgwYTI0NGVh
Y2NkNWJmMzcwNC4uY2RiNmM4ODM0NTgwNDliNDk4MDViNjA0NWUwOTc1YWIwZjNiZGY5YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9QYWdlQ2xpZW50Qmxh
Y2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUGFnZUNs
aWVudEJsYWNrQmVycnkuaApAQCAtMTksNiArMTksNyBAQAogI2lmbmRlZiBQYWdlQ2xpZW50Qmxh
Y2tCZXJyeV9oCiAjZGVmaW5lIFBhZ2VDbGllbnRCbGFja0JlcnJ5X2gKIAorI2luY2x1ZGUgIkNy
ZWRlbnRpYWwuaCIKICNpbmNsdWRlICJDdXJzb3IuaCIKICNpbmNsdWRlICJXZWJQYWdlQ2xpZW50
LmgiCiAKQEAgLTM0LDExICszNSwxOSBAQCBuYW1lc3BhY2UgQmxhY2tCZXJyeSB7CiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSW50UmVjdDsKICAgICBjbGFzcyBJbnRTaXplOworICAg
IGNsYXNzIEtVUkw7CiAgICAgY2xhc3MgUGx1Z2luVmlldzsKKyAgICBjbGFzcyBQcm90ZWN0aW9u
U3BhY2U7CiB9CiAKIGNsYXNzIFBhZ2VDbGllbnRCbGFja0JlcnJ5IHsKIHB1YmxpYzoKKyAgICBl
bnVtIFNhdmVDcmVkZW50aWFsVHlwZSB7CisgICAgICAgIFNhdmVDcmVkZW50aWFsTmV2ZXJGb3JU
aGlzU2l0ZSA9IDAsCisgICAgICAgIFNhdmVDcmVkZW50aWFsTm90Tm93LAorICAgICAgICBTYXZl
Q3JlZGVudGlhbFllcworICAgIH07CisKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKFdlYkNv
cmU6OlBsYXRmb3JtQ3Vyc29yKSA9IDA7CiAgICAgdmlydHVhbCBCbGFja0JlcnJ5OjpQbGF0Zm9y
bTo6TmV0d29ya1N0cmVhbUZhY3RvcnkqIG5ldHdvcmtTdHJlYW1GYWN0b3J5KCkgPSAwOwogICAg
IHZpcnR1YWwgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkdyYXBoaWNzOjpXaW5kb3cqIHBsYXRmb3Jt
V2luZG93KCkgY29uc3QgPSAwOwpAQCAtNjAsNiArNjksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBXZWJDb3JlOjpJbnRTaXplIHZpZXdwb3J0U2l6ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IGludCBzaG93QWxlcnREaWFsb2coQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlQ2xpZW50OjpB
bGVydFR5cGUpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCBXZWJDb3JlOjpDcmVkZW50aWFsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNv
bnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmKSA9IDA7
CisgICAgdmlydHVhbCBTYXZlQ3JlZGVudGlhbFR5cGUgbm90aWZ5U2hvdWxkU2F2ZUNyZWRlbnRp
YWwoYm9vbCkgPSAwOwogfTsKIAogI2VuZGlmIC8vIFBhZ2VDbGllbnRCbGFja0JlcnJ5X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3
b3JrSm9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9O
ZXR3b3JrSm9iLmNwcAppbmRleCA5MTJiN2U5OTY5NWY2MTJiMGJhMzQ1MjYxNmZiYjExZTRkMmY4
YjliLi5lNDdmYWIxZDg1ZmJjYTI2NGNhZGFlZTNiOTljNWQxOTIxNTg2ZmM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdv
cmtKb2IuY3BwCkBAIC0yMSw2ICsyMSw4IEBACiAKICNpbmNsdWRlICJBYm91dERhdGEuaCIKICNp
bmNsdWRlICJCYXNlNjQuaCIKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVD
bGllbnQuaCIKICNpbmNsdWRlICJDb29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiQ3JlZGVudGlh
bFN0b3JhZ2UuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtMzAsNiArMzIsNyBAQAogI2luY2x1
ZGUgIk1JTUVTbmlmZmluZy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNs
dWRlICJOZXR3b3JrTWFuYWdlci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZXNv
dXJjZUhhbmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKQEAgLTg2NSw4ICs4NjgsMTEgQEAgYm9vbCBO
ZXR3b3JrSm9iOjpzZW5kUmVxdWVzdFdpdGhDcmVkZW50aWFscyhQcm90ZWN0aW9uU3BhY2VTZXJ2
ZXJUeXBlIHR5cGUsIFByb3QKICAgICAgICAgICAgIC8vIElmIHRoZXkgYXJlIGNvcnJlY3QsIHRo
ZXkgd2lsbCB0aGUgcHV0IGludG8gQ3JlZGVudGlhbFN0b3JhZ2UuCiAgICAgICAgICAgICBtX2hh
bmRsZS0+Z2V0SW50ZXJuYWwoKS0+bV91c2VyID0gIiI7CiAgICAgICAgICAgICBtX2hhbmRsZS0+
Z2V0SW50ZXJuYWwoKS0+bV9wYXNzID0gIiI7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
bV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZShyZWFs
bSwgdXNlcm5hbWUsIHBhc3N3b3JkKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIENy
ZWRlbnRpYWwgaW5wdXRDcmVkZW50aWFsID0gbV9mcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xp
ZW50KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpLT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZShuZXdV
UkwsIHByb3RlY3Rpb25TcGFjZSk7CisgICAgICAgICAgICB1c2VybmFtZSA9IGlucHV0Q3JlZGVu
dGlhbC51c2VyKCk7CisgICAgICAgICAgICBwYXNzd29yZCA9IGlucHV0Q3JlZGVudGlhbC5wYXNz
d29yZCgpOworICAgICAgICB9CiAKICAgICAgICAgaWYgKHVzZXJuYW1lLmlzRW1wdHkoKSAmJiBw
YXNzd29yZC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAppbmRleCA4N2YwOTliNzg5ZjVhMmE2OGFiYWQx
ZDEyZDZjZDVlOTUxM2VmMDNkLi41ZDQ5MzNhNmVjY2QwNjM0YzliYzY3YjIwMGM0ZDk5ZDE2Mzgz
NzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTMxLDYg
KzMxLDggQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAi
Q29udGV4dE1lbnVDbGllbnRCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAiQ29va2llTWFuYWdlci5o
IgorI2luY2x1ZGUgIkNyZWRlbnRpYWxNYW5hZ2VyLmgiCisjaW5jbHVkZSAiQ3JlZGVudGlhbFRy
YW5zZm9ybURhdGEuaCIKICNpbmNsdWRlICJET01TdXBwb3J0LmgiCiAjaW5jbHVkZSAiRGF0YWJh
c2UuaCIKICNpbmNsdWRlICJEYXRhYmFzZVN5bmMuaCIKQEAgLTIwMDIsNiArMjAwNCwzMyBAQCBi
b29sIFdlYlBhZ2VQcml2YXRlOjppc0FjdGl2ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2xpZW50
LT5pc0FjdGl2ZSgpOwogfQogCitXZWJDb3JlOjpDcmVkZW50aWFsIFdlYlBhZ2VQcml2YXRlOjph
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpLVVJMJiB1cmwsIGNvbnN0IFdl
YkNvcmU6OlByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlKQoreworICAgIFdlYlN0cmlu
ZyB1c2VybmFtZTsKKyAgICBXZWJTdHJpbmcgcGFzc3dvcmQ7CisKKyNpZiBFTkFCTEUoQkxBQ0tC
RVJSWV9DUkVERU5USUFMX1BFUlNJU1QpCisgICAgaWYgKCFtX3dlYlNldHRpbmdzLT5pc1ByaXZh
dGVCcm93c2luZ0VuYWJsZWQoKSkKKyAgICAgICAgY3JlZGVudGlhbE1hbmFnZXIoKS5hdXRvZmls
bEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHByb3RlY3Rpb25TcGFjZSwgdXNlcm5hbWUsIHBhc3N3
b3JkKTsKKyNlbmRpZgorCisgICAgbV9jbGllbnQtPmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHBy
b3RlY3Rpb25TcGFjZS5yZWFsbSgpLmNoYXJhY3RlcnMoKSwgcHJvdGVjdGlvblNwYWNlLnJlYWxt
KCkubGVuZ3RoKCksIHVzZXJuYW1lLCBwYXNzd29yZCk7CisKKyNpZiBFTkFCTEUoQkxBQ0tCRVJS
WV9DUkVERU5USUFMX1BFUlNJU1QpCisgICAgV2ViQ29yZTo6Q3JlZGVudGlhbCBpbnB1dENyZWRl
bnRpYWwodXNlcm5hbWUsIHBhc3N3b3JkLCBXZWJDb3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VQ
ZXJtYW5lbnQpOworICAgIGlmICghbV93ZWJTZXR0aW5ncy0+aXNQcml2YXRlQnJvd3NpbmdFbmFi
bGVkKCkpCisgICAgICAgIGNyZWRlbnRpYWxNYW5hZ2VyKCkuc2F2ZUNyZWRlbnRpYWxJZkNvbmZp
cm1lZCh0aGlzLCBXZWJDb3JlOjpDcmVkZW50aWFsVHJhbnNmb3JtRGF0YSh1cmwsIHByb3RlY3Rp
b25TcGFjZSwgaW5wdXRDcmVkZW50aWFsKSk7CisjZWxzZQorICAgIFdlYkNvcmU6OkNyZWRlbnRp
YWwgaW5wdXRDcmVkZW50aWFsKHVzZXJuYW1lLCBwYXNzd29yZCwgV2ViQ29yZTo6Q3JlZGVudGlh
bFBlcnNpc3RlbmNlTm9uZSk7CisjZW5kaWYKKyAgICByZXR1cm4gaW5wdXRDcmVkZW50aWFsOwor
fQorCitQYWdlQ2xpZW50QmxhY2tCZXJyeTo6U2F2ZUNyZWRlbnRpYWxUeXBlIFdlYlBhZ2VQcml2
YXRlOjpub3RpZnlTaG91bGRTYXZlQ3JlZGVudGlhbChib29sIGlzTmV3KQoreworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50QmxhY2tCZXJyeTo6U2F2ZUNyZWRlbnRpYWxUeXBlPiht
X2NsaWVudC0+bm90aWZ5U2hvdWxkU2F2ZUNyZWRlbnRpYWwoaXNOZXcpKTsKK30KKwogYm9vbCBX
ZWJQYWdlUHJpdmF0ZTo6dXNlRml4ZWRMYXlvdXQoKSBjb25zdAogewogICAgIHJldHVybiB0cnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VDbGllbnQuaAppbmRleCBj
MjBmZTk1MGMyMGE2Y2I0NDYwOTYwNmNjMzk5MmQ3MWE4MjAyZjJhLi4zMGQxZmRlYjNlZTY0NTFj
NDdhMTc2NTUzYWYyNmY5YWE4OTY5ZjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
QXBpL1dlYlBhZ2VDbGllbnQuaApAQCAtNzcsNiArNzcsMTIgQEAgcHVibGljOgogICAgICAgICBN
ZWRpYUludmFsaWRFcnJvciwKICAgICB9OwogCisgICAgZW51bSBTYXZlQ3JlZGVudGlhbFR5cGUg
eworICAgICAgICBTYXZlQ3JlZGVudGlhbE5ldmVyRm9yVGhpc1NpdGUgPSAwLAorICAgICAgICBT
YXZlQ3JlZGVudGlhbE5vdE5vdywKKyAgICAgICAgU2F2ZUNyZWRlbnRpYWxZZXMKKyAgICB9Owor
CiAgICAgdmlydHVhbCBpbnQgZ2V0SW5zdGFuY2VJZCgpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlMb2FkU3RhcnRlZCgpID0gMDsKQEAgLTIwNiw2ICsyMTIsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0UHJldmVudHNTY3JlZW5JZGxlRGltbWluZyhib29s
IG5vRGltbWluZykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShjb25zdCB1bnNpZ25lZCBzaG9ydCogcmVhbG0sIHVuc2lnbmVkIGludCByZWFsbUxlbmd0aCwg
V2ViU3RyaW5nJiB1c2VybmFtZSwgV2ViU3RyaW5nJiBwYXNzd29yZCkgPSAwOworICAgIHZpcnR1
YWwgU2F2ZUNyZWRlbnRpYWxUeXBlIG5vdGlmeVNob3VsZFNhdmVDcmVkZW50aWFsKGJvb2wgaXNO
ZXcpID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQbHVnaW5FbnRlckZ1bGxTY3JlZW4o
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFBsdWdpbkVudGVyRnVsbFNjcmVlbigpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmggYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCmluZGV4IDNlN2Q0ZjhjMTNh
NGYxMjY4NmI0ODVkZjcyZDg3ZjgwMGViNzUyOGMuLjQwNTBlMDhjZjk0OGQ1ZWI5ZDNhZDc3ZWNi
Y2M5MTRhZTNkMDFiNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkv
V2ViUGFnZV9wLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3Au
aApAQCAtMTc2LDYgKzE3Niw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGRvdWJsZSBjdXJyZW50
Wm9vbUZhY3RvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IHNob3dBbGVydERpYWxvZyhXZWJQ
YWdlQ2xpZW50OjpBbGVydFR5cGUgYXR5cGUpOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgp
IGNvbnN0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6Q3JlZGVudGlhbCBhdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3QgV2ViQ29yZTo6UHJvdGVjdGlvblNw
YWNlJik7CisgICAgdmlydHVhbCBQYWdlQ2xpZW50QmxhY2tCZXJyeTo6U2F2ZUNyZWRlbnRpYWxU
eXBlIG5vdGlmeVNob3VsZFNhdmVDcmVkZW50aWFsKGJvb2wpOwogCiAgICAgLy8gQ2FsbGVkIGZy
b20gd2l0aGluIFdlYktpdCB2aWEgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS4KICAgICB2b2lkIGVu
dGVyRnVsbHNjcmVlbkZvck5vZGUoV2ViQ29yZTo6Tm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0NyZWRlbnRpYWxNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsTWFuYWdl
ci5jcHAKaW5kZXggOTdlN2RlNmY4YmYwZjg3OThjNzhiMzM0MjMzOGJiMTUzNzJkZTBjNy4uNjgz
ZTNjM2JiYzhmODc5NjE2OWI3ZjQ0ZGYzYmY5NTRlNWVlZmFlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0NyZWRlbnRpYWxNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ3JlZGVudGlhbE1h
bmFnZXIuY3BwCkBAIC0yMywyMyArMjMsMjIgQEAKIAogI2luY2x1ZGUgIkNyZWRlbnRpYWxCYWNr
aW5nU3RvcmUuaCIKICNpbmNsdWRlICJDcmVkZW50aWFsVHJhbnNmb3JtRGF0YS5oIgotI2luY2x1
ZGUgIkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxl
bWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVk
ZSAiV2ViUGFnZUNsaWVudC5oIgotI2luY2x1ZGUgIldlYlBhZ2VfcC5oIgorI2luY2x1ZGUgIlBh
Z2VDbGllbnRCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAKLXVzaW5nIEJs
YWNrQmVycnk6OldlYktpdDo6V2ViUGFnZUNsaWVudDsKIHVzaW5nIEJsYWNrQmVycnk6OldlYktp
dDo6V2ViU3RyaW5nOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNyZWRlbnRpYWxNYW5hZ2Vy
OjpDcmVkZW50aWFsTWFuYWdlcihGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkqIGZyYW1lTG9h
ZGVyQ2xpZW50KQotICAgIDogbV9mcmFtZUxvYWRlckNsaWVudChmcmFtZUxvYWRlckNsaWVudCkK
K0NyZWRlbnRpYWxNYW5hZ2VyJiBjcmVkZW50aWFsTWFuYWdlcigpCiB7Ci0gICAgQVNTRVJUKG1f
ZnJhbWVMb2FkZXJDbGllbnQpOworICAgIHN0YXRpYyBDcmVkZW50aWFsTWFuYWdlciAqY3JlZGVu
dGlhbE1hbmFnZXIgPSAwOworICAgIGlmICghY3JlZGVudGlhbE1hbmFnZXIpCisgICAgICAgIGNy
ZWRlbnRpYWxNYW5hZ2VyID0gbmV3IENyZWRlbnRpYWxNYW5hZ2VyKCk7CisgICAgcmV0dXJuICpj
cmVkZW50aWFsTWFuYWdlcjsKIH0KIAogdm9pZCBDcmVkZW50aWFsTWFuYWdlcjo6YXV0b2ZpbGxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25T
cGFjZSwgV2ViU3RyaW5nJiB1c2VybmFtZSwgV2ViU3RyaW5nJiBwYXNzd29yZCkKQEAgLTcwLDgg
KzY5LDEwIEBAIHZvaWQgQ3JlZGVudGlhbE1hbmFnZXI6OmF1dG9maWxsUGFzc3dvcmRGb3JtcyhQ
YXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBkb2NGb3JtCiAgICAgfQogfQogCi12b2lkIENyZWRl
bnRpYWxNYW5hZ2VyOjpzYXZlQ3JlZGVudGlhbElmQ29uZmlybWVkKGNvbnN0IENyZWRlbnRpYWxU
cmFuc2Zvcm1EYXRhJiBkYXRhKQordm9pZCBDcmVkZW50aWFsTWFuYWdlcjo6c2F2ZUNyZWRlbnRp
YWxJZkNvbmZpcm1lZChQYWdlQ2xpZW50QmxhY2tCZXJyeSogcGFnZUNsaWVudCwgY29uc3QgQ3Jl
ZGVudGlhbFRyYW5zZm9ybURhdGEmIGRhdGEpCiB7CisgICAgQVNTRVJUKHBhZ2VDbGllbnQpOwor
CiAgICAgaWYgKCFkYXRhLmlzVmFsaWQoKSB8fCBkYXRhLmNyZWRlbnRpYWwoKS5pc0VtcHR5KCkg
fHwgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6aW5zdGFuY2UoKS0+aGFzTmV2ZXJSZW1lbWJlcihk
YXRhLnByb3RlY3Rpb25TcGFjZSgpKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC03OSwxMyArODAs
MTMgQEAgdm9pZCBDcmVkZW50aWFsTWFuYWdlcjo6c2F2ZUNyZWRlbnRpYWxJZkNvbmZpcm1lZChj
b25zdCBDcmVkZW50aWFsVHJhbnNmb3JtRGF0YSYKICAgICBpZiAoc2F2ZWRDcmVkZW50aWFsID09
IGRhdGEuY3JlZGVudGlhbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJQYWdlQ2xpZW50
OjpTYXZlQ3JlZGVudGlhbFR5cGUgdHlwZSA9IG1fZnJhbWVMb2FkZXJDbGllbnQtPm1fd2ViUGFn
ZVByaXZhdGUtPm1fY2xpZW50LT5ub3RpZnlTaG91bGRTYXZlQ3JlZGVudGlhbChzYXZlZENyZWRl
bnRpYWwuaXNFbXB0eSgpKTsKLSAgICBpZiAodHlwZSA9PSBXZWJQYWdlQ2xpZW50OjpTYXZlQ3Jl
ZGVudGlhbFllcykgeworICAgIFBhZ2VDbGllbnRCbGFja0JlcnJ5OjpTYXZlQ3JlZGVudGlhbFR5
cGUgdHlwZSA9IHBhZ2VDbGllbnQtPm5vdGlmeVNob3VsZFNhdmVDcmVkZW50aWFsKHNhdmVkQ3Jl
ZGVudGlhbC5pc0VtcHR5KCkpOworICAgIGlmICh0eXBlID09IFBhZ2VDbGllbnRCbGFja0JlcnJ5
OjpTYXZlQ3JlZGVudGlhbFllcykgewogICAgICAgICBpZiAoc2F2ZWRDcmVkZW50aWFsLmlzRW1w
dHkoKSkKICAgICAgICAgICAgIENyZWRlbnRpYWxCYWNraW5nU3RvcmU6Omluc3RhbmNlKCktPmFk
ZExvZ2luKGRhdGEudXJsKCksIGRhdGEucHJvdGVjdGlvblNwYWNlKCksIGRhdGEuY3JlZGVudGlh
bCgpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6
aW5zdGFuY2UoKS0+dXBkYXRlTG9naW4oZGF0YS51cmwoKSwgZGF0YS5wcm90ZWN0aW9uU3BhY2Uo
KSwgZGF0YS5jcmVkZW50aWFsKCkpOwotICAgIH0gZWxzZSBpZiAodHlwZSA9PSBXZWJQYWdlQ2xp
ZW50OjpTYXZlQ3JlZGVudGlhbE5ldmVyRm9yVGhpc1NpdGUpIHsKKyAgICB9IGVsc2UgaWYgKHR5
cGUgPT0gUGFnZUNsaWVudEJsYWNrQmVycnk6OlNhdmVDcmVkZW50aWFsTmV2ZXJGb3JUaGlzU2l0
ZSkgewogICAgICAgICBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjppbnN0YW5jZSgpLT5hZGROZXZl
clJlbWVtYmVyKGRhdGEudXJsKCksIGRhdGEucHJvdGVjdGlvblNwYWNlKCkpOwogICAgICAgICBD
cmVkZW50aWFsQmFja2luZ1N0b3JlOjppbnN0YW5jZSgpLT5yZW1vdmVMb2dpbihkYXRhLnVybCgp
LCBkYXRhLnByb3RlY3Rpb25TcGFjZSgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ3JlZGVudGlhbE1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsTWFuYWdlci5oCmlu
ZGV4IDFkMzlmMTBjMGQ5YmJmOTVjMTU0MGRlNzFlYmJkNjY3YjNiN2ZmNTkuLjJmMTllOGFjMDk1
YzFhNTU1NTY3YjE3ZTEwYTg5ZTk0NjI4ODBhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsTWFuYWdlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsTWFuYWdlci5oCkBA
IC0yNCw2ICsyNCw4IEBACiAjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogCitjbGFzcyBQYWdlQ2xpZW50QmxhY2tCZXJyeTsKKwogbmFtZXNw
YWNlIEJsYWNrQmVycnkgewogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJTdHJpbmc7CkBA
IC0zMSwyMyArMzMsMjMgQEAgY2xhc3MgV2ViU3RyaW5nOwogfQogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7Ci1jbGFzcyBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk7CiBjbGFzcyBLVVJMOwogY2xh
c3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgQ3JlZGVudGlhbFRyYW5zZm9ybURhdGE7CiAKIGNs
YXNzIENyZWRlbnRpYWxNYW5hZ2VyIHsKIHB1YmxpYzoKLSAgICBDcmVkZW50aWFsTWFuYWdlcihG
cmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkqKTsKLQogICAgIHZvaWQgYXV0b2ZpbGxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShjb25zdCBQcm90ZWN0aW9uU3BhY2UmLCBCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlN0cmluZyYgdXNlcm5hbWUsIEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nJiBw
YXNzd29yZCk7CiAgICAgdm9pZCBhdXRvZmlsbFBhc3N3b3JkRm9ybXMoUGFzc1JlZlB0cjxIVE1M
Q29sbGVjdGlvbj4gZG9jRm9ybXMpOwotICAgIHZvaWQgc2F2ZUNyZWRlbnRpYWxJZkNvbmZpcm1l
ZChjb25zdCBDcmVkZW50aWFsVHJhbnNmb3JtRGF0YSYpOworICAgIHZvaWQgc2F2ZUNyZWRlbnRp
YWxJZkNvbmZpcm1lZChQYWdlQ2xpZW50QmxhY2tCZXJyeSosIGNvbnN0IENyZWRlbnRpYWxUcmFu
c2Zvcm1EYXRhJik7CiAKLXByaXZhdGU6Ci0gICAgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5
KiBtX2ZyYW1lTG9hZGVyQ2xpZW50OworIHByaXZhdGU6CisgICAgZnJpZW5kIENyZWRlbnRpYWxN
YW5hZ2VyJiBjcmVkZW50aWFsTWFuYWdlcigpOworICAgIENyZWRlbnRpYWxNYW5hZ2VyKCkgeyB9
CiB9OwogCitDcmVkZW50aWFsTWFuYWdlciYgY3JlZGVudGlhbE1hbmFnZXIoKTsKKwogfSAvLyBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQkxBQ0tCRVJSWV9DUkVERU5USUFMX1BFUlNJU1Qp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IDBlZWYx
ZjNkYWY3OGVjMmZiZTliZWI3YmY4NjU3MzQ1N2Q4MjE4MzEuLjNlNDFjMzdlY2IyYWUyYWRlNTgw
NjMwNzllNjJjNDUxNTk5OWJjYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJs
YWNrQmVycnkuY3BwCkBAIC0yOSw2ICsyOSw5IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50Qmxh
Y2tCZXJyeS5oIgogI2luY2x1ZGUgIkNsaWVudEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIkNvb2tp
ZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJDcmVkZW50aWFsQmFja2luZ1N0b3JlLmgiCisjaW5jbHVk
ZSAiQ3JlZGVudGlhbE1hbmFnZXIuaCIKKyNpbmNsdWRlICJDcmVkZW50aWFsVHJhbnNmb3JtRGF0
YS5oIgogI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVO
ZXR3b3JraW5nQ29udGV4dEJsYWNrQmVycnkuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAg
LTUyLDYgKzU1LDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGx1Z2luVmlldy5o
IgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgorI2luY2x1ZGUgIlByb3RlY3Rpb25TcGFj
ZS5oIgogI2luY2x1ZGUgIlNjb3BlUG9pbnRlci5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgpAQCAtNjIwLDYgKzYyNCwxMSBAQCB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkKICAgICAg
ICAgICAgICAgICBtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+c2V0QWx0ZXJuYXRlRmVlZERl
dGFpbHModGl0bGUudXRmOCgpLmRhdGEoKSwgaHJlZi51dGY4KCkuZGF0YSgpKTsKICAgICAgICAg
fQogICAgIH0KKworI2lmIEVOQUJMRShCTEFDS0JFUlJZX0NSRURFTlRJQUxfUEVSU0lTVCkKKyAg
ICBpZiAoIW1fd2ViUGFnZVByaXZhdGUtPm1fd2ViU2V0dGluZ3MtPmlzUHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCgpKQorICAgICAgICBjcmVkZW50aWFsTWFuYWdlcigpLmF1dG9maWxsUGFzc3dvcmRG
b3JtcyhtX2ZyYW1lLT5kb2N1bWVudCgpLT5mb3JtcygpKTsKKyNlbmRpZgogfQogCiB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEaWRGaW5pc2hEb2N1bWVudExvYWQo
KQpAQCAtNzEyLDEyICs3MjEsMjcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6
OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUUKICAgICB9CiB9
CiAKLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxTdWJtaXRG
b3JtKEZyYW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rpb24sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPikK
K3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxTdWJtaXRGb3Jt
KEZyYW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rpb24sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3Jt
U3RhdGUpCiB7CisjaWYgRU5BQkxFKEJMQUNLQkVSUllfQ1JFREVOVElBTF9QRVJTSVNUKQorICAg
IGlmICghbV93ZWJQYWdlUHJpdmF0ZS0+bV93ZWJTZXR0aW5ncy0+aXNQcml2YXRlQnJvd3NpbmdF
bmFibGVkKCkpCisgICAgICAgIGNyZWRlbnRpYWxNYW5hZ2VyKCkuc2F2ZUNyZWRlbnRpYWxJZkNv
bmZpcm1lZChtX3dlYlBhZ2VQcml2YXRlLCBDcmVkZW50aWFsVHJhbnNmb3JtRGF0YShmb3JtU3Rh
dGUtPmZvcm0oKSkpOworI2VuZGlmCisKICAgICAvLyBGSVhNRTogU3R1Yi4KICAgICAobV9mcmFt
ZS0+bG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKS0+KmZ1bmN0aW9uKShQb2xpY3lVc2UpOwogfQog
Cit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hXaWxsU2VuZFN1Ym1p
dEV2ZW50KEhUTUxGb3JtRWxlbWVudCogZm9ybSkKK3sKKyNpZiBFTkFCTEUoQkxBQ0tCRVJSWV9D
UkVERU5USUFMX1BFUlNJU1QpCisgICAgaWYgKCFtX3dlYlBhZ2VQcml2YXRlLT5tX3dlYlNldHRp
bmdzLT5pc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKKyAgICAgICAgY3JlZGVudGlhbE1hbmFn
ZXIoKS5zYXZlQ3JlZGVudGlhbElmQ29uZmlybWVkKG1fd2ViUGFnZVByaXZhdGUsIENyZWRlbnRp
YWxUcmFuc2Zvcm1EYXRhKGZvcm0pKTsKKyNlbHNlCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyNl
bmRpZgorfQorCiBQYXNzUmVmUHRyPEZyYW1lPiBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6
OmNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lCiAgICAgLCBI
VE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgY29uc3QgU3RyaW5nJiByZWZlcnJl
ciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdo
dCkKIHsKQEAgLTExNTUsMTcgKzExNzksNiBAQCBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6Y3JlYXRlTmV0d29ya2luZwogICAg
IHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0QmxhY2tCZXJyeTo6Y3JlYXRlKG1fZnJhbWUp
OwogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6YXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoY29uc3QgU3RyaW5nJiByZWFsbSwgU3RyaW5nJiB1c2VybmFtZSwgU3RyaW5nJiBw
YXNzd29yZCkKLXsKLSAgICBXZWJTdHJpbmcgd2ViUGFnZVVzZXJuYW1lOwotICAgIFdlYlN0cmlu
ZyB3ZWJQYWdlUGFzc3dvcmQ7Ci0KLSAgICBtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+YXV0
aGVudGljYXRpb25DaGFsbGVuZ2UocmVhbG0uY2hhcmFjdGVycygpLCByZWFsbS5sZW5ndGgoKSwg
d2ViUGFnZVVzZXJuYW1lLCB3ZWJQYWdlUGFzc3dvcmQpOwotCi0gICAgdXNlcm5hbWUgPSB3ZWJQ
YWdlVXNlcm5hbWU7Ci0gICAgcGFzc3dvcmQgPSB3ZWJQYWdlUGFzc3dvcmQ7Ci19Ci0KIHZvaWQg
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpzdGFydERvd25sb2FkKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiAvKnN1Z2dlc3RlZE5hbWUqLykKIHsKICAg
ICAvLyBGSVhNRTogdXNlIHRoZSBzdWdnZXN0ZWROYW1lPwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJy
eS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeS5oCmluZGV4IDI5ODNkMDFlZTg4YTU4Mzc1NjhjMDBmZWViNTg0NDhi
NGEyZWMwNDMuLmVhMDQ2ZmQ3YzBlNzhkZGYxNmIyNDMyMmFjOGU0YTJlOWMzZDhjMDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgKQEAgLTE2NywxMSArMTY3LDEw
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VGcm9t
UGFnZShSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhZ2UqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCgpIHsgbm90
SW1wbGVtZW50ZWQoKTsgfTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VJY29u
cyhJY29uVHlwZSkgeyBub3RJbXBsZW1lbnRlZCgpOyB9OwotICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaFdpbGxTZW5kU3VibWl0RXZlbnQoSFRNTEZvcm1FbGVtZW50KikgeyBub3RJbXBsZW1lbnRl
ZCgpOyB9OworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQoSFRN
TEZvcm1FbGVtZW50Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbERlZmVyTG9hZGluZygpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN1bWVMb2FkaW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIGF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IFN0cmluZyYgcmVhbG0sIFN0cmluZyYgdXNlcm5h
bWUsIFN0cmluZyYgcGFzc3dvcmQpOwogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZyYW1lTmV0
d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132948</attachid>
            <date>2012-03-20 19:19:52 -0700</date>
            <delta_ts>2012-03-20 20:43:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80401-20120321101949.patch</filename>
            <type>text/plain</type>
            <size>19598</size>
            <attacher name="Jonathan Dong">jonathan.dong.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWVkNGIxMzY5NzI5Yzc0
MjE3MzE1YmM4NWI0NWQ2ZDU3NWUwZTA0NC4uOGUxMTQ2NDdlOWEwZmZlOTg2YjQ4OGMyNzdhOTc0
YTdkOWFiY2JjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAzLTIwICBKb25h
dGhhbiBEb25nICA8am9uYXRoYW4uZG9uZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAg
W0JsYWNrQmVycnldIENyZWRlbnRpYWwgc2F2ZSBhbmQgYXV0b2ZpbGwgaW1wbGVtZXRhdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA0MDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBSb2IgQnVpcy4KKworICAgICAgICBBZGRlZCBpbnRlcmZhY2Ug
ZnVuY3Rpb24gYXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKSBhbmQKKyAgICAgICAgbm90aWZ5U2hv
dWxkU2F2ZUNyZWRlbnRpYWwoKSBpbnRvIFBhZ2VDbGllbnRCbGFja0JlcnJ5LgorICAgICAgICBB
cyB0aGlzIGNsYXNzIGlzIG91ciBwbGF0Zm9ybSBpbmRlcGVuZGVudCBpbnRlcmZhY2UsCisgICAg
ICAgIGJ5IGRvaW5nIHRoaXMgd2UgZG9uJ3QgbmVlZCB0byBhZGQgaW50ZXJmYWNlIGluIGNsYXNz
CisgICAgICAgIEZyYW1lTG9hZGVyQ2xpZW50IGNhdXNlIHdoaWNoIG1pZ2h0IGJlIGludHJ1c2lv
bi4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2Jl
cnJ5L1BhZ2VDbGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOZXR3b3JrSm9iOjpzZW5kUmVxdWVzdFdpdGhDcmVkZW50aWFscyk6CisKIDIwMTIt
MDMtMjAgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtjaHJvbWl1bV0gQ29udmVydCBUb3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUgdG8g
YSAyLUQgQmV6aWVyIGZvciBiZXR0ZXIgY29udHJvbCBvZiBjdXJ2ZSBzaGFwZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IGY3YzY5YTY2NDJiNzcyZjBjNzY5NmE1ZThkMTcyNjZj
OTE5NDg5NzcuLjFlMmJhNTQyNTI1NDQ5ZDc2ZmJhYzU5MzQ5YmFkZGVhZWU4YWVmOWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTAzLTIwICBK
b25hdGhhbiBEb25nICA8am9uYXRoYW4uZG9uZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAg
ICAgW0JsYWNrQmVycnldIENyZWRlbnRpYWwgc2F2ZSBhbmQgYXV0b2ZpbGwgaW1wbGVtZXRhdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA0MDEK
KworICAgICAgICBSZXZpZXdlZCBieSBSb2IgQnVpcy4KKworICAgICAgICBUaGlzIHBhdGNoIGlz
IGludGVuZGVkIHRvIGltcGxlbWVudCB0aGUgY3JlZGVudGlhbCBwZXJzaXN0CisgICAgICAgIGFu
ZCBhdXRvZmlsbCBmZWF0dXJlIGZvciBCbGFja0JlcnJ5IHBvcnRpbmcuCisKKyAgICAgICAgTW92
ZWQgaW50ZXJmYWNlIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkgZnJvbSBjbGFzcworICAgICAg
ICBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkgdG8gV2ViUGFnZVByaXZhdGUgKGRlcml2ZWQg
ZnJvbQorICAgICAgICBQYWdlQ2xpZW50QmxhY2tCZXJyeSBhcyBjaGFuZ2VzIG1hZGUgaW4gaXRz
IHBhcmVudCBpbnRlcmZhY2UgY2xhc3MpOworICAgICAgICBJbXBsZW1lbnRlZCBub3RpZnlTaG91
bGRTYXZlQ3JlZGVudGlhbCgpIGluIFdlYlBhZ2VQcml2YXRlCisgICAgICAgIGFuZCBXZWJQYWdl
Q2xpZW50IGFzIHdlbGwuCisgICAgICAgIEFkZGVkIGNyZWRlbnRpYWxNYW5hZ2VyKCkgdG8gcmV0
cml2ZSBDcmVkZW50aWFsTWFuYWdlciBpbnN0YW5jZQorICAgICAgICBhcyBhIGdsb2JhbCBzaW5n
bGV0b247IHJlbW92ZWQgaXRzIG1fZnJhbWVMb2FkZXJDbGllbnQgd2hpY2ggaXMKKyAgICAgICAg
cmVwbGFjZWQgd2l0aCBhIHBhc3NlZCBpbiBQYWdlQ2xpZW50QmxhY2tCZXJyeSBwb2ludGVyLCBh
bmQgbW9kaWZpZWQKKyAgICAgICAgdGhlIGludGVyZmFjZSBmdW5jdGlvbiBhY2NvcmRpbmdseS4K
KworICAgICAgICBGb3IgdGhlIGh0dHAgYXV0aGVudGljYXRpb24sIGF1dG9maWxsIHRoZSBpbnB1
dCBkaWFsb2cgaW4KKyAgICAgICAgZnVuY3Rpb24gYXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKSBh
bmQgc2F2ZSB0aGUgY3JlZGVudGlhbAorICAgICAgICBpbmZvcm1hdGlvbiBpbiB0aGUgc2FtZSBm
dW5jdGlvbjsKKyAgICAgICAgRm9yIHRoZSBpbi1mb3JtIGF1dGhlbnRpY2F0aW9uLCBhdXRvZmls
bCB0aGUgdXNlcm5hbWUgYW5kCisgICAgICAgIHBhc3N3b3JkIGlucHV0IGZpZWxkcyBpbiBmdW5j
dGlvbiBkaXNwYXRjaERpZEZpbmlzaExvYWQoKSwKKyAgICAgICAgYW5kIHNhdmUgdGhlIGNyZWRl
bnRpYWwgaW5mb3JtYXRpb24gaW4gZnVuY3Rpb24KKyAgICAgICAgZGlzcGF0Y2hXaWxsU3VibWl0
Rm9ybSgpIG9yIGRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudCgpLgorCisgICAgICAgICogQXBp
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0
ZTo6YXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6Om5vdGlmeVNob3VsZFNhdmVDcmVk
ZW50aWFsKToKKyAgICAgICAgKiBBcGkvV2ViUGFnZUNsaWVudC5oOgorICAgICAgICAqIEFwaS9X
ZWJQYWdlX3AuaDoKKyAgICAgICAgKFdlYlBhZ2VQcml2YXRlKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9DcmVkZW50aWFsTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVkZW50
aWFsTWFuYWdlcik6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsTWFuYWdlcjo6c2F2ZUNy
ZWRlbnRpYWxJZkNvbmZpcm1lZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ3JlZGVudGlh
bE1hbmFnZXIuaDoKKyAgICAgICAgKENyZWRlbnRpYWxNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNv
cmU6OkNyZWRlbnRpYWxNYW5hZ2VyOjpDcmVkZW50aWFsTWFuYWdlcik6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVy
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojpk
aXNwYXRjaERpZEZpbmlzaExvYWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50QmxhY2tCZXJyeS5oOgorICAgICAgICAoRnJhbWVMb2FkZXJDbGllbnRCbGFja0Jl
cnJ5KToKKwogMjAxMi0wMy0yMCAgSmFja3kgSmlhbmcgIDx6aGFqaWFuZ0ByaW0uY29tPgogCiAg
ICAgICAgIFtCbGFja0JlcnJ5XSBEaWppdCBjcmFzaCBXZWJDb3JlOjpDb29raWVNYW5hZ2VyOjpn
ZXRSYXdDb29raWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2Jl
cnJ5L1BhZ2VDbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFj
a2JlcnJ5L1BhZ2VDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggMmZhYjBmZTIxNjE0OGQ4YmY4ZGZm
ODgwYTI0NGVhY2NkNWJmMzcwNC4uY2RiNmM4ODM0NTgwNDliNDk4MDViNjA0NWUwOTc1YWIwZjNi
ZGY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9QYWdl
Q2xpZW50QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVy
cnkvUGFnZUNsaWVudEJsYWNrQmVycnkuaApAQCAtMTksNiArMTksNyBAQAogI2lmbmRlZiBQYWdl
Q2xpZW50QmxhY2tCZXJyeV9oCiAjZGVmaW5lIFBhZ2VDbGllbnRCbGFja0JlcnJ5X2gKIAorI2lu
Y2x1ZGUgIkNyZWRlbnRpYWwuaCIKICNpbmNsdWRlICJDdXJzb3IuaCIKICNpbmNsdWRlICJXZWJQ
YWdlQ2xpZW50LmgiCiAKQEAgLTM0LDExICszNSwxOSBAQCBuYW1lc3BhY2UgQmxhY2tCZXJyeSB7
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSW50UmVjdDsKICAgICBjbGFzcyBJbnRT
aXplOworICAgIGNsYXNzIEtVUkw7CiAgICAgY2xhc3MgUGx1Z2luVmlldzsKKyAgICBjbGFzcyBQ
cm90ZWN0aW9uU3BhY2U7CiB9CiAKIGNsYXNzIFBhZ2VDbGllbnRCbGFja0JlcnJ5IHsKIHB1Ymxp
YzoKKyAgICBlbnVtIFNhdmVDcmVkZW50aWFsVHlwZSB7CisgICAgICAgIFNhdmVDcmVkZW50aWFs
TmV2ZXJGb3JUaGlzU2l0ZSA9IDAsCisgICAgICAgIFNhdmVDcmVkZW50aWFsTm90Tm93LAorICAg
ICAgICBTYXZlQ3JlZGVudGlhbFllcworICAgIH07CisKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vy
c29yKFdlYkNvcmU6OlBsYXRmb3JtQ3Vyc29yKSA9IDA7CiAgICAgdmlydHVhbCBCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6TmV0d29ya1N0cmVhbUZhY3RvcnkqIG5ldHdvcmtTdHJlYW1GYWN0b3J5KCkg
PSAwOwogICAgIHZpcnR1YWwgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkdyYXBoaWNzOjpXaW5kb3cq
IHBsYXRmb3JtV2luZG93KCkgY29uc3QgPSAwOwpAQCAtNjAsNiArNjksOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpJbnRTaXplIHZpZXdwb3J0U2l6ZSgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIGludCBzaG93QWxlcnREaWFsb2coQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdl
Q2xpZW50OjpBbGVydFR5cGUpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCBXZWJDb3JlOjpDcmVkZW50aWFsIGF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKGNvbnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2UmKSA9IDA7CisgICAgdmlydHVhbCBTYXZlQ3JlZGVudGlhbFR5cGUgbm90aWZ5U2hvdWxkU2F2
ZUNyZWRlbnRpYWwoYm9vbCkgPSAwOwogfTsKIAogI2VuZGlmIC8vIFBhZ2VDbGllbnRCbGFja0Jl
cnJ5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2ti
ZXJyeS9OZXR3b3JrSm9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrSm9iLmNwcAppbmRleCA2MGNjODZjM2YyMDllNTdiNWEyNWEyNmY4ZmJl
OTNhNzBjMjVjMmQ4Li5jNzM3MDgxM2YxM2QzZGJiY2QwNTA3YzkyMDVhM2E1YzAwMmZhYjQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0
d29ya0pvYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2Jl
cnJ5L05ldHdvcmtKb2IuY3BwCkBAIC0yMSw2ICsyMSw4IEBACiAKICNpbmNsdWRlICJBYm91dERh
dGEuaCIKICNpbmNsdWRlICJCYXNlNjQuaCIKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRl
ICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDb29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
Q3JlZGVudGlhbFN0b3JhZ2UuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtMzAsNiArMzIsNyBA
QAogI2luY2x1ZGUgIk1JTUVTbmlmZmluZy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnku
aCIKICNpbmNsdWRlICJOZXR3b3JrTWFuYWdlci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50
ZXJuYWwuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKQEAgLTg2OCw4ICs4NzEsMTEg
QEAgYm9vbCBOZXR3b3JrSm9iOjpzZW5kUmVxdWVzdFdpdGhDcmVkZW50aWFscyhQcm90ZWN0aW9u
U3BhY2VTZXJ2ZXJUeXBlIHR5cGUsIFByb3QKICAgICAgICAgICAgIC8vIElmIHRoZXkgYXJlIGNv
cnJlY3QsIHRoZXkgd2lsbCB0aGUgcHV0IGludG8gQ3JlZGVudGlhbFN0b3JhZ2UuCiAgICAgICAg
ICAgICBtX2hhbmRsZS0+Z2V0SW50ZXJuYWwoKS0+bV91c2VyID0gIiI7CiAgICAgICAgICAgICBt
X2hhbmRsZS0+Z2V0SW50ZXJuYWwoKS0+bV9wYXNzID0gIiI7Ci0gICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5hdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShyZWFsbSwgdXNlcm5hbWUsIHBhc3N3b3JkKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIENyZWRlbnRpYWwgaW5wdXRDcmVkZW50aWFsID0gbV9mcmFtZS0+cGFnZSgpLT5jaHJv
bWUoKS0+Y2xpZW50KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpLT5hdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShuZXdVUkwsIHByb3RlY3Rpb25TcGFjZSk7CisgICAgICAgICAgICB1c2VybmFtZSA9IGlu
cHV0Q3JlZGVudGlhbC51c2VyKCk7CisgICAgICAgICAgICBwYXNzd29yZCA9IGlucHV0Q3JlZGVu
dGlhbC5wYXNzd29yZCgpOworICAgICAgICB9CiAKICAgICAgICAgaWYgKHVzZXJuYW1lLmlzRW1w
dHkoKSAmJiBwYXNzd29yZC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAppbmRleCBjMmVmMmNmODdjNmQ5
M2JkZTYzYWRlMzY4Yjk4ZmJkN2Q2YTY1NWM0Li45ODY2ZTdiMzVlMjk3OThiOGU4NDMyNmY5ZTlm
MmZiNTQxNmE4MmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAK
QEAgLTMxLDYgKzMxLDggQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgiCiAj
aW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnRCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAiQ29va2ll
TWFuYWdlci5oIgorI2luY2x1ZGUgIkNyZWRlbnRpYWxNYW5hZ2VyLmgiCisjaW5jbHVkZSAiQ3Jl
ZGVudGlhbFRyYW5zZm9ybURhdGEuaCIKICNpbmNsdWRlICJET01TdXBwb3J0LmgiCiAjaW5jbHVk
ZSAiRGF0YWJhc2UuaCIKICNpbmNsdWRlICJEYXRhYmFzZVN5bmMuaCIKQEAgLTIwMTcsNiArMjAx
OSwzMyBAQCBib29sIFdlYlBhZ2VQcml2YXRlOjppc0FjdGl2ZSgpIGNvbnN0CiAgICAgcmV0dXJu
IG1fY2xpZW50LT5pc0FjdGl2ZSgpOwogfQogCitXZWJDb3JlOjpDcmVkZW50aWFsIFdlYlBhZ2VQ
cml2YXRlOjphdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpLVVJMJiB1cmws
IGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlKQoreworICAg
IFdlYlN0cmluZyB1c2VybmFtZTsKKyAgICBXZWJTdHJpbmcgcGFzc3dvcmQ7CisKKyNpZiBFTkFC
TEUoQkxBQ0tCRVJSWV9DUkVERU5USUFMX1BFUlNJU1QpCisgICAgaWYgKCFtX3dlYlNldHRpbmdz
LT5pc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKKyAgICAgICAgY3JlZGVudGlhbE1hbmFnZXIo
KS5hdXRvZmlsbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHByb3RlY3Rpb25TcGFjZSwgdXNlcm5h
bWUsIHBhc3N3b3JkKTsKKyNlbmRpZgorCisgICAgbV9jbGllbnQtPmF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKHByb3RlY3Rpb25TcGFjZS5yZWFsbSgpLmNoYXJhY3RlcnMoKSwgcHJvdGVjdGlvblNw
YWNlLnJlYWxtKCkubGVuZ3RoKCksIHVzZXJuYW1lLCBwYXNzd29yZCk7CisKKyNpZiBFTkFCTEUo
QkxBQ0tCRVJSWV9DUkVERU5USUFMX1BFUlNJU1QpCisgICAgV2ViQ29yZTo6Q3JlZGVudGlhbCBp
bnB1dENyZWRlbnRpYWwodXNlcm5hbWUsIHBhc3N3b3JkLCBXZWJDb3JlOjpDcmVkZW50aWFsUGVy
c2lzdGVuY2VQZXJtYW5lbnQpOworICAgIGlmICghbV93ZWJTZXR0aW5ncy0+aXNQcml2YXRlQnJv
d3NpbmdFbmFibGVkKCkpCisgICAgICAgIGNyZWRlbnRpYWxNYW5hZ2VyKCkuc2F2ZUNyZWRlbnRp
YWxJZkNvbmZpcm1lZCh0aGlzLCBXZWJDb3JlOjpDcmVkZW50aWFsVHJhbnNmb3JtRGF0YSh1cmws
IHByb3RlY3Rpb25TcGFjZSwgaW5wdXRDcmVkZW50aWFsKSk7CisjZWxzZQorICAgIFdlYkNvcmU6
OkNyZWRlbnRpYWwgaW5wdXRDcmVkZW50aWFsKHVzZXJuYW1lLCBwYXNzd29yZCwgV2ViQ29yZTo6
Q3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZSk7CisjZW5kaWYKKyAgICByZXR1cm4gaW5wdXRDcmVk
ZW50aWFsOworfQorCitQYWdlQ2xpZW50QmxhY2tCZXJyeTo6U2F2ZUNyZWRlbnRpYWxUeXBlIFdl
YlBhZ2VQcml2YXRlOjpub3RpZnlTaG91bGRTYXZlQ3JlZGVudGlhbChib29sIGlzTmV3KQorewor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50QmxhY2tCZXJyeTo6U2F2ZUNyZWRlbnRp
YWxUeXBlPihtX2NsaWVudC0+bm90aWZ5U2hvdWxkU2F2ZUNyZWRlbnRpYWwoaXNOZXcpKTsKK30K
KwogYm9vbCBXZWJQYWdlUHJpdmF0ZTo6dXNlRml4ZWRMYXlvdXQoKSBjb25zdAogewogICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQ
YWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VDbGllbnQu
aAppbmRleCBjMjBmZTk1MGMyMGE2Y2I0NDYwOTYwNmNjMzk5MmQ3MWE4MjAyZjJhLi4zMGQxZmRl
YjNlZTY0NTFjNDdhMTc2NTUzYWYyNmY5YWE4OTY5ZjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlBhZ2VDbGllbnQuaApAQCAtNzcsNiArNzcsMTIgQEAgcHVibGljOgog
ICAgICAgICBNZWRpYUludmFsaWRFcnJvciwKICAgICB9OwogCisgICAgZW51bSBTYXZlQ3JlZGVu
dGlhbFR5cGUgeworICAgICAgICBTYXZlQ3JlZGVudGlhbE5ldmVyRm9yVGhpc1NpdGUgPSAwLAor
ICAgICAgICBTYXZlQ3JlZGVudGlhbE5vdE5vdywKKyAgICAgICAgU2F2ZUNyZWRlbnRpYWxZZXMK
KyAgICB9OworCiAgICAgdmlydHVhbCBpbnQgZ2V0SW5zdGFuY2VJZCgpIGNvbnN0ID0gMDsKIAog
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlMb2FkU3RhcnRlZCgpID0gMDsKQEAgLTIwNiw2ICsyMTIs
NyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0UHJldmVudHNTY3JlZW5JZGxlRGlt
bWluZyhib29sIG5vRGltbWluZykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShjb25zdCB1bnNpZ25lZCBzaG9ydCogcmVhbG0sIHVuc2lnbmVkIGludCByZWFs
bUxlbmd0aCwgV2ViU3RyaW5nJiB1c2VybmFtZSwgV2ViU3RyaW5nJiBwYXNzd29yZCkgPSAwOwor
ICAgIHZpcnR1YWwgU2F2ZUNyZWRlbnRpYWxUeXBlIG5vdGlmeVNob3VsZFNhdmVDcmVkZW50aWFs
KGJvb2wgaXNOZXcpID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQbHVnaW5FbnRlckZ1
bGxTY3JlZW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFBsdWdpbkVudGVyRnVsbFNjcmVl
bigpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFn
ZV9wLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCmluZGV4IGQx
NTY1MzM3ODY0ODA5YmM0OTQ3NzNkNGVkNzcyM2QyMGE4NWUwYjIuLmMzODRiNWE5MTcyNDIyMTUx
MTg2ZjBmMDgxYzdmZjVhNjFmNmE5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZV9wLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9X
ZWJQYWdlX3AuaApAQCAtMTc2LDYgKzE3Niw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGRvdWJs
ZSBjdXJyZW50Wm9vbUZhY3RvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IHNob3dBbGVydERp
YWxvZyhXZWJQYWdlQ2xpZW50OjpBbGVydFR5cGUgYXR5cGUpOwogICAgIHZpcnR1YWwgYm9vbCBp
c0FjdGl2ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6Q3JlZGVudGlhbCBhdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3QgV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlJik7CisgICAgdmlydHVhbCBQYWdlQ2xpZW50QmxhY2tCZXJyeTo6U2F2ZUNy
ZWRlbnRpYWxUeXBlIG5vdGlmeVNob3VsZFNhdmVDcmVkZW50aWFsKGJvb2wpOwogCiAgICAgLy8g
Q2FsbGVkIGZyb20gd2l0aGluIFdlYktpdCB2aWEgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS4KICAg
ICB2b2lkIGVudGVyRnVsbHNjcmVlbkZvck5vZGUoV2ViQ29yZTo6Tm9kZSopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0NyZWRlbnRpYWxNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DcmVkZW50
aWFsTWFuYWdlci5jcHAKaW5kZXggOTdlN2RlNmY4YmYwZjg3OThjNzhiMzM0MjMzOGJiMTUzNzJk
ZTBjNy4uNjgzZTNjM2JiYzhmODc5NjE2OWI3ZjQ0ZGYzYmY5NTRlNWVlZmFlMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0NyZWRlbnRpYWxNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ3Jl
ZGVudGlhbE1hbmFnZXIuY3BwCkBAIC0yMywyMyArMjMsMjIgQEAKIAogI2luY2x1ZGUgIkNyZWRl
bnRpYWxCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJDcmVkZW50aWFsVHJhbnNmb3JtRGF0YS5o
IgotI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oIgogI2luY2x1ZGUgIkhU
TUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
Ci0jaW5jbHVkZSAiV2ViUGFnZUNsaWVudC5oIgotI2luY2x1ZGUgIldlYlBhZ2VfcC5oIgorI2lu
Y2x1ZGUgIlBhZ2VDbGllbnRCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAK
LXVzaW5nIEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZUNsaWVudDsKIHVzaW5nIEJsYWNrQmVy
cnk6OldlYktpdDo6V2ViU3RyaW5nOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNyZWRlbnRp
YWxNYW5hZ2VyOjpDcmVkZW50aWFsTWFuYWdlcihGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkq
IGZyYW1lTG9hZGVyQ2xpZW50KQotICAgIDogbV9mcmFtZUxvYWRlckNsaWVudChmcmFtZUxvYWRl
ckNsaWVudCkKK0NyZWRlbnRpYWxNYW5hZ2VyJiBjcmVkZW50aWFsTWFuYWdlcigpCiB7Ci0gICAg
QVNTRVJUKG1fZnJhbWVMb2FkZXJDbGllbnQpOworICAgIHN0YXRpYyBDcmVkZW50aWFsTWFuYWdl
ciAqY3JlZGVudGlhbE1hbmFnZXIgPSAwOworICAgIGlmICghY3JlZGVudGlhbE1hbmFnZXIpCisg
ICAgICAgIGNyZWRlbnRpYWxNYW5hZ2VyID0gbmV3IENyZWRlbnRpYWxNYW5hZ2VyKCk7CisgICAg
cmV0dXJuICpjcmVkZW50aWFsTWFuYWdlcjsKIH0KIAogdm9pZCBDcmVkZW50aWFsTWFuYWdlcjo6
YXV0b2ZpbGxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHBy
b3RlY3Rpb25TcGFjZSwgV2ViU3RyaW5nJiB1c2VybmFtZSwgV2ViU3RyaW5nJiBwYXNzd29yZCkK
QEAgLTcwLDggKzY5LDEwIEBAIHZvaWQgQ3JlZGVudGlhbE1hbmFnZXI6OmF1dG9maWxsUGFzc3dv
cmRGb3JtcyhQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBkb2NGb3JtCiAgICAgfQogfQogCi12
b2lkIENyZWRlbnRpYWxNYW5hZ2VyOjpzYXZlQ3JlZGVudGlhbElmQ29uZmlybWVkKGNvbnN0IENy
ZWRlbnRpYWxUcmFuc2Zvcm1EYXRhJiBkYXRhKQordm9pZCBDcmVkZW50aWFsTWFuYWdlcjo6c2F2
ZUNyZWRlbnRpYWxJZkNvbmZpcm1lZChQYWdlQ2xpZW50QmxhY2tCZXJyeSogcGFnZUNsaWVudCwg
Y29uc3QgQ3JlZGVudGlhbFRyYW5zZm9ybURhdGEmIGRhdGEpCiB7CisgICAgQVNTRVJUKHBhZ2VD
bGllbnQpOworCiAgICAgaWYgKCFkYXRhLmlzVmFsaWQoKSB8fCBkYXRhLmNyZWRlbnRpYWwoKS5p
c0VtcHR5KCkgfHwgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6aW5zdGFuY2UoKS0+aGFzTmV2ZXJS
ZW1lbWJlcihkYXRhLnByb3RlY3Rpb25TcGFjZSgpKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC03
OSwxMyArODAsMTMgQEAgdm9pZCBDcmVkZW50aWFsTWFuYWdlcjo6c2F2ZUNyZWRlbnRpYWxJZkNv
bmZpcm1lZChjb25zdCBDcmVkZW50aWFsVHJhbnNmb3JtRGF0YSYKICAgICBpZiAoc2F2ZWRDcmVk
ZW50aWFsID09IGRhdGEuY3JlZGVudGlhbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJQ
YWdlQ2xpZW50OjpTYXZlQ3JlZGVudGlhbFR5cGUgdHlwZSA9IG1fZnJhbWVMb2FkZXJDbGllbnQt
Pm1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5ub3RpZnlTaG91bGRTYXZlQ3JlZGVudGlhbChz
YXZlZENyZWRlbnRpYWwuaXNFbXB0eSgpKTsKLSAgICBpZiAodHlwZSA9PSBXZWJQYWdlQ2xpZW50
OjpTYXZlQ3JlZGVudGlhbFllcykgeworICAgIFBhZ2VDbGllbnRCbGFja0JlcnJ5OjpTYXZlQ3Jl
ZGVudGlhbFR5cGUgdHlwZSA9IHBhZ2VDbGllbnQtPm5vdGlmeVNob3VsZFNhdmVDcmVkZW50aWFs
KHNhdmVkQ3JlZGVudGlhbC5pc0VtcHR5KCkpOworICAgIGlmICh0eXBlID09IFBhZ2VDbGllbnRC
bGFja0JlcnJ5OjpTYXZlQ3JlZGVudGlhbFllcykgewogICAgICAgICBpZiAoc2F2ZWRDcmVkZW50
aWFsLmlzRW1wdHkoKSkKICAgICAgICAgICAgIENyZWRlbnRpYWxCYWNraW5nU3RvcmU6Omluc3Rh
bmNlKCktPmFkZExvZ2luKGRhdGEudXJsKCksIGRhdGEucHJvdGVjdGlvblNwYWNlKCksIGRhdGEu
Y3JlZGVudGlhbCgpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgQ3JlZGVudGlhbEJhY2tp
bmdTdG9yZTo6aW5zdGFuY2UoKS0+dXBkYXRlTG9naW4oZGF0YS51cmwoKSwgZGF0YS5wcm90ZWN0
aW9uU3BhY2UoKSwgZGF0YS5jcmVkZW50aWFsKCkpOwotICAgIH0gZWxzZSBpZiAodHlwZSA9PSBX
ZWJQYWdlQ2xpZW50OjpTYXZlQ3JlZGVudGlhbE5ldmVyRm9yVGhpc1NpdGUpIHsKKyAgICB9IGVs
c2UgaWYgKHR5cGUgPT0gUGFnZUNsaWVudEJsYWNrQmVycnk6OlNhdmVDcmVkZW50aWFsTmV2ZXJG
b3JUaGlzU2l0ZSkgewogICAgICAgICBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjppbnN0YW5jZSgp
LT5hZGROZXZlclJlbWVtYmVyKGRhdGEudXJsKCksIGRhdGEucHJvdGVjdGlvblNwYWNlKCkpOwog
ICAgICAgICBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjppbnN0YW5jZSgpLT5yZW1vdmVMb2dpbihk
YXRhLnVybCgpLCBkYXRhLnByb3RlY3Rpb25TcGFjZSgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ3JlZGVudGlhbE1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsTWFu
YWdlci5oCmluZGV4IDFkMzlmMTBjMGQ5YmJmOTVjMTU0MGRlNzFlYmJkNjY3YjNiN2ZmNTkuLjJm
MTllOGFjMDk1YzFhNTU1NTY3YjE3ZTEwYTg5ZTk0NjI4ODBhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsTWFu
YWdlci5oCkBAIC0yNCw2ICsyNCw4IEBACiAjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKICNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCitjbGFzcyBQYWdlQ2xpZW50QmxhY2tCZXJyeTsK
KwogbmFtZXNwYWNlIEJsYWNrQmVycnkgewogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJT
dHJpbmc7CkBAIC0zMSwyMyArMzMsMjMgQEAgY2xhc3MgV2ViU3RyaW5nOwogfQogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci1jbGFzcyBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk7CiBjbGFzcyBL
VVJMOwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgQ3JlZGVudGlhbFRyYW5zZm9ybURh
dGE7CiAKIGNsYXNzIENyZWRlbnRpYWxNYW5hZ2VyIHsKIHB1YmxpYzoKLSAgICBDcmVkZW50aWFs
TWFuYWdlcihGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkqKTsKLQogICAgIHZvaWQgYXV0b2Zp
bGxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBQcm90ZWN0aW9uU3BhY2UmLCBCbGFja0Jl
cnJ5OjpXZWJLaXQ6OldlYlN0cmluZyYgdXNlcm5hbWUsIEJsYWNrQmVycnk6OldlYktpdDo6V2Vi
U3RyaW5nJiBwYXNzd29yZCk7CiAgICAgdm9pZCBhdXRvZmlsbFBhc3N3b3JkRm9ybXMoUGFzc1Jl
ZlB0cjxIVE1MQ29sbGVjdGlvbj4gZG9jRm9ybXMpOwotICAgIHZvaWQgc2F2ZUNyZWRlbnRpYWxJ
ZkNvbmZpcm1lZChjb25zdCBDcmVkZW50aWFsVHJhbnNmb3JtRGF0YSYpOworICAgIHZvaWQgc2F2
ZUNyZWRlbnRpYWxJZkNvbmZpcm1lZChQYWdlQ2xpZW50QmxhY2tCZXJyeSosIGNvbnN0IENyZWRl
bnRpYWxUcmFuc2Zvcm1EYXRhJik7CiAKLXByaXZhdGU6Ci0gICAgRnJhbWVMb2FkZXJDbGllbnRC
bGFja0JlcnJ5KiBtX2ZyYW1lTG9hZGVyQ2xpZW50OworIHByaXZhdGU6CisgICAgZnJpZW5kIENy
ZWRlbnRpYWxNYW5hZ2VyJiBjcmVkZW50aWFsTWFuYWdlcigpOworICAgIENyZWRlbnRpYWxNYW5h
Z2VyKCkgeyB9CiB9OwogCitDcmVkZW50aWFsTWFuYWdlciYgY3JlZGVudGlhbE1hbmFnZXIoKTsK
KwogfSAvLyBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQkxBQ0tCRVJSWV9DUkVERU5USUFM
X1BFUlNJU1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCmlu
ZGV4IDA4NGY5MWI5NTAxOWFmZjM1MjU4OTE2ODU4NTIyZDgxYmU1MjcyYTkuLjZlNDI5YTM4ZDMy
ZTI4OTc2NDNkZDA3MDA2M2JlODdjY2U0YmNjYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0yOCw2ICsyOCw5IEBACiAjaW5jbHVkZSAiQ2hyb21l
Q2xpZW50QmxhY2tCZXJyeS5oIgogI2luY2x1ZGUgIkNsaWVudEV4dGVuc2lvbi5oIgogI2luY2x1
ZGUgIkNvb2tpZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJDcmVkZW50aWFsQmFja2luZ1N0b3JlLmgi
CisjaW5jbHVkZSAiQ3JlZGVudGlhbE1hbmFnZXIuaCIKKyNpbmNsdWRlICJDcmVkZW50aWFsVHJh
bnNmb3JtRGF0YS5oIgogI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dEJsYWNrQmVycnkuaCIKICNpbmNsdWRlICJGcmFtZVZp
ZXcuaCIKQEAgLTUwLDYgKzUzLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGx1
Z2luVmlldy5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgorI2luY2x1ZGUgIlByb3Rl
Y3Rpb25TcGFjZS5oIgogI2luY2x1ZGUgIlNjb3BlUG9pbnRlci5oIgogI2luY2x1ZGUgIlNoYXJl
ZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgpAQCAtNjAyLDYgKzYwNiwxMSBA
QCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2Fk
KCkKICAgICAgICAgICAgICAgICBtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+c2V0QWx0ZXJu
YXRlRmVlZERldGFpbHModGl0bGUudXRmOCgpLmRhdGEoKSwgaHJlZi51dGY4KCkuZGF0YSgpKTsK
ICAgICAgICAgfQogICAgIH0KKworI2lmIEVOQUJMRShCTEFDS0JFUlJZX0NSRURFTlRJQUxfUEVS
U0lTVCkKKyAgICBpZiAoIW1fd2ViUGFnZVByaXZhdGUtPm1fd2ViU2V0dGluZ3MtPmlzUHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZCgpKQorICAgICAgICBjcmVkZW50aWFsTWFuYWdlcigpLmF1dG9maWxs
UGFzc3dvcmRGb3JtcyhtX2ZyYW1lLT5kb2N1bWVudCgpLT5mb3JtcygpKTsKKyNlbmRpZgogfQog
CiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEaWRGaW5pc2hEb2N1
bWVudExvYWQoKQpAQCAtNjk0LDEyICs3MDMsMjcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEJs
YWNrQmVycnk6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUUK
ICAgICB9CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdp
bGxTdWJtaXRGb3JtKEZyYW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rpb24sIFBhc3NSZWZQdHI8Rm9y
bVN0YXRlPikKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxT
dWJtaXRGb3JtKEZyYW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rpb24sIFBhc3NSZWZQdHI8Rm9ybVN0
YXRlPiBmb3JtU3RhdGUpCiB7CisjaWYgRU5BQkxFKEJMQUNLQkVSUllfQ1JFREVOVElBTF9QRVJT
SVNUKQorICAgIGlmICghbV93ZWJQYWdlUHJpdmF0ZS0+bV93ZWJTZXR0aW5ncy0+aXNQcml2YXRl
QnJvd3NpbmdFbmFibGVkKCkpCisgICAgICAgIGNyZWRlbnRpYWxNYW5hZ2VyKCkuc2F2ZUNyZWRl
bnRpYWxJZkNvbmZpcm1lZChtX3dlYlBhZ2VQcml2YXRlLCBDcmVkZW50aWFsVHJhbnNmb3JtRGF0
YShmb3JtU3RhdGUtPmZvcm0oKSkpOworI2VuZGlmCisKICAgICAvLyBGSVhNRTogU3R1Yi4KICAg
ICAobV9mcmFtZS0+bG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKS0+KmZ1bmN0aW9uKShQb2xpY3lV
c2UpOwogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hXaWxs
U2VuZFN1Ym1pdEV2ZW50KEhUTUxGb3JtRWxlbWVudCogZm9ybSkKK3sKKyNpZiBFTkFCTEUoQkxB
Q0tCRVJSWV9DUkVERU5USUFMX1BFUlNJU1QpCisgICAgaWYgKCFtX3dlYlBhZ2VQcml2YXRlLT5t
X3dlYlNldHRpbmdzLT5pc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKKyAgICAgICAgY3JlZGVu
dGlhbE1hbmFnZXIoKS5zYXZlQ3JlZGVudGlhbElmQ29uZmlybWVkKG1fd2ViUGFnZVByaXZhdGUs
IENyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhKGZvcm0pKTsKKyNlbHNlCisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyNlbmRpZgorfQorCiBQYXNzUmVmUHRyPEZyYW1lPiBGcmFtZUxvYWRlckNsaWVudEJs
YWNrQmVycnk6OmNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1l
CiAgICAgLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgY29uc3QgU3RyaW5n
JiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1h
cmdpbkhlaWdodCkKIHsKQEAgLTExMjUsMTcgKzExNDksNiBAQCBQYXNzUmVmUHRyPEZyYW1lTmV0
d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6Y3JlYXRlTmV0d29y
a2luZwogICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0QmxhY2tCZXJyeTo6Y3JlYXRl
KG1fZnJhbWUpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6YXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoY29uc3QgU3RyaW5nJiByZWFsbSwgU3RyaW5nJiB1c2VybmFtZSwg
U3RyaW5nJiBwYXNzd29yZCkKLXsKLSAgICBXZWJTdHJpbmcgd2ViUGFnZVVzZXJuYW1lOwotICAg
IFdlYlN0cmluZyB3ZWJQYWdlUGFzc3dvcmQ7Ci0KLSAgICBtX3dlYlBhZ2VQcml2YXRlLT5tX2Ns
aWVudC0+YXV0aGVudGljYXRpb25DaGFsbGVuZ2UocmVhbG0uY2hhcmFjdGVycygpLCByZWFsbS5s
ZW5ndGgoKSwgd2ViUGFnZVVzZXJuYW1lLCB3ZWJQYWdlUGFzc3dvcmQpOwotCi0gICAgdXNlcm5h
bWUgPSB3ZWJQYWdlVXNlcm5hbWU7Ci0gICAgcGFzc3dvcmQgPSB3ZWJQYWdlUGFzc3dvcmQ7Ci19
Ci0KIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpzdGFydERvd25sb2FkKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiAvKnN1Z2dlc3RlZE5hbWUq
LykKIHsKICAgICAvLyBGSVhNRTogdXNlIHRoZSBzdWdnZXN0ZWROYW1lPwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oCmluZGV4IGE2ZDcwMWE0YzJhYWM4NWQzYmEyZjg0
ZDY3YmEzOWFmYmE2YzNjYzIuLmMxNmFjZTlkZGViNmY4YmQxYTY4M2I5ZWZmNDg2ZWIxZjBhMDY4
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgKQEAgLTE2NCwx
MSArMTY0LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWREZXRlY3RYU1MoY29u
c3QgS1VSTCYsIGJvb2wpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENoYW5nZUlj
b25zKEljb25UeXBlKSB7IG5vdEltcGxlbWVudGVkKCk7IH07Ci0gICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudChIVE1MRm9ybUVsZW1lbnQqKSB7IG5vdEltcGxlbWVu
dGVkKCk7IH07CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudChI
VE1MRm9ybUVsZW1lbnQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVmZXJMb2FkaW5nKCk7
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlc3VtZUxvYWRpbmcoKTsKLSAgICB2aXJ0dWFsIHZvaWQg
YXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgU3RyaW5nJiByZWFsbSwgU3RyaW5nJiB1c2Vy
bmFtZSwgU3RyaW5nJiBwYXNzd29yZCk7CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RnJhbWVO
ZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132956</attachid>
            <date>2012-03-20 20:43:50 -0700</date>
            <delta_ts>2012-03-21 06:59:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80401-20120321114348.patch</filename>
            <type>text/plain</type>
            <size>19872</size>
            <attacher name="Jonathan Dong">jonathan.dong.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWVkNGIxMzY5NzI5Yzc0
MjE3MzE1YmM4NWI0NWQ2ZDU3NWUwZTA0NC4uMmE4NGViMDhlZGJjNDJhYzk1OGRlMmYxYmJmYWI0
YmFiZGI1OWQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAzLTIwICBKb25h
dGhhbiBEb25nICA8am9uYXRoYW4uZG9uZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAg
W0JsYWNrQmVycnldIENyZWRlbnRpYWwgc2F2ZSBhbmQgYXV0b2ZpbGwgaW1wbGVtZXRhdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA0MDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9QUFMhKS4KKworICAgICAgICBBZGRlZCBpbnRl
cmZhY2UgZnVuY3Rpb24gYXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKSBhbmQKKyAgICAgICAgbm90
aWZ5U2hvdWxkU2F2ZUNyZWRlbnRpYWwoKSBpbnRvIFBhZ2VDbGllbnRCbGFja0JlcnJ5LgorICAg
ICAgICBBcyB0aGlzIGNsYXNzIGlzIG91ciBwbGF0Zm9ybSBzcGVjaWZpYyBpbnRlcmZhY2UsCisg
ICAgICAgIGJ5IGRvaW5nIHRoaXMgd2UgZG9uJ3QgbmVlZCB0byBhZGQgYW4gaW50ZXJmYWNlIGZ1
bmN0aW9uCisgICAgICAgIGluIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50IHdoaWNoIGlzIGEgcGxh
dGZvcm0KKyAgICAgICAgaW5kZXBlbmRlbnQgaW50ZXJmYWNlLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2JsYWNrYmVycnkvUGFnZUNsaWVudEJsYWNrQmVy
cnkuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrSm9iLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6OnNl
bmRSZXF1ZXN0V2l0aENyZWRlbnRpYWxzKToKKwogMjAxMi0wMy0yMCAgVy4gSmFtZXMgTWFjTGVh
biAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBDb252ZXJ0
IFRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZSB0byBhIDItRCBCZXppZXIgZm9yIGJldHRl
ciBjb250cm9sIG9mIGN1cnZlIHNoYXBlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5k
ZXggZjdjNjlhNjY0MmI3NzJmMGM3Njk2YTVlOGQxNzI2NmM5MTk0ODk3Ny4uYTRmYzA0NmRjM2Fh
ZWVmOGViZWI3ZmI3NTg0ODUxOTlkNzVlZDZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMTItMDMtMjAgIEpvbmF0aGFuIERvbmcgIDxqb25hdGhh
bi5kb25nQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBbQmxhY2tCZXJyeV0gQ3JlZGVu
dGlhbCBzYXZlIGFuZCBhdXRvZmlsbCBpbXBsZW1ldGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDQwMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT1BQUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgaW50ZW5kZWQgdG8gaW1w
bGVtZW50IHRoZSBjcmVkZW50aWFsIHBlcnNpc3QKKyAgICAgICAgYW5kIGF1dG9maWxsIGZlYXR1
cmUgZm9yIEJsYWNrQmVycnkgcG9ydGluZy4KKworICAgICAgICBNb3ZlZCBpbnRlcmZhY2UgYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoKSBmcm9tIGNsYXNzCisgICAgICAgIEZyYW1lTG9hZGVyQ2xp
ZW50QmxhY2tCZXJyeSB0byBXZWJQYWdlUHJpdmF0ZSAoZGVyaXZlZCBmcm9tCisgICAgICAgIFBh
Z2VDbGllbnRCbGFja0JlcnJ5IGFzIGNoYW5nZXMgbWFkZSBpbiBpdHMgcGFyZW50IGludGVyZmFj
ZSBjbGFzcyk7CisgICAgICAgIEltcGxlbWVudGVkIG5vdGlmeVNob3VsZFNhdmVDcmVkZW50aWFs
KCkgaW4gV2ViUGFnZVByaXZhdGUKKyAgICAgICAgYW5kIFdlYlBhZ2VDbGllbnQgYXMgd2VsbC4K
KyAgICAgICAgQWRkZWQgY3JlZGVudGlhbE1hbmFnZXIoKSB0byByZXRyaXZlIENyZWRlbnRpYWxN
YW5hZ2VyIGluc3RhbmNlCisgICAgICAgIGFzIGEgZ2xvYmFsIHNpbmdsZXRvbjsgcmVtb3ZlZCBp
dHMgbV9mcmFtZUxvYWRlckNsaWVudCB3aGljaCBpcworICAgICAgICByZXBsYWNlZCB3aXRoIGEg
cGFzc2VkIGluIFBhZ2VDbGllbnRCbGFja0JlcnJ5IHBvaW50ZXIsIGFuZCBtb2RpZmllZAorICAg
ICAgICB0aGUgaW50ZXJmYWNlIGZ1bmN0aW9uIGFjY29yZGluZ2x5LgorCisgICAgICAgIEZvciB0
aGUgaHR0cCBhdXRoZW50aWNhdGlvbiwgYXV0b2ZpbGwgdGhlIGlucHV0IGRpYWxvZyBpbgorICAg
ICAgICBmdW5jdGlvbiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpIGFuZCBzYXZlIHRoZSBjcmVk
ZW50aWFsCisgICAgICAgIGluZm9ybWF0aW9uIGluIHRoZSBzYW1lIGZ1bmN0aW9uOworICAgICAg
ICBGb3IgdGhlIGluLWZvcm0gYXV0aGVudGljYXRpb24sIGF1dG9maWxsIHRoZSB1c2VybmFtZSBh
bmQKKyAgICAgICAgcGFzc3dvcmQgaW5wdXQgZmllbGRzIGluIGZ1bmN0aW9uIGRpc3BhdGNoRGlk
RmluaXNoTG9hZCgpLAorICAgICAgICBhbmQgc2F2ZSB0aGUgY3JlZGVudGlhbCBpbmZvcm1hdGlv
biBpbiBmdW5jdGlvbgorICAgICAgICBkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKCkgb3IgZGlzcGF0
Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KCkuCisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6Cisg
ICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjphdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpXZWJQYWdlUHJpdmF0ZTo6bm90aWZ5U2hvdWxkU2F2ZUNyZWRlbnRpYWwpOgorICAgICAg
ICAqIEFwaS9XZWJQYWdlQ2xpZW50Lmg6CisgICAgICAgICogQXBpL1dlYlBhZ2VfcC5oOgorICAg
ICAgICAoV2ViUGFnZVByaXZhdGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NyZWRlbnRp
YWxNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWRlbnRpYWxNYW5hZ2VyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxNYW5hZ2VyOjpzYXZlQ3JlZGVudGlhbElmQ29uZmly
bWVkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsTWFuYWdlci5oOgorICAg
ICAgICAoQ3JlZGVudGlhbE1hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbE1h
bmFnZXI6OkNyZWRlbnRpYWxNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkRmluaXNo
TG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRp
c3BhdGNoV2lsbFN1Ym1pdEZvcm0pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0Jl
cnJ5Lmg6CisgICAgICAgIChGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkpOgorCiAyMDEyLTAz
LTIwICBKYWNreSBKaWFuZyAgPHpoYWppYW5nQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVy
cnldIERpaml0IGNyYXNoIFdlYkNvcmU6OkNvb2tpZU1hbmFnZXI6OmdldFJhd0Nvb2tpZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUGFnZUNsaWVudEJs
YWNrQmVycnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUGFnZUNsaWVu
dEJsYWNrQmVycnkuaAppbmRleCAyZmFiMGZlMjE2MTQ4ZDhiZjhkZmY4ODBhMjQ0ZWFjY2Q1YmYz
NzA0Li40NzRlM2Q1Y2ZiNjNlOGM1MDQ3MzdhYzk5NTc0MTNiODhhZTg0MGFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VDbGllbnRCbGFja0JlcnJ5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9QYWdlQ2xpZW50Qmxh
Y2tCZXJyeS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAx
MCwgMjAxMSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCwgMjAxMSwgMjAxMiBSZXNlYXJjaCBJbiBNb3Rp
b24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0x
OSw2ICsxOSw3IEBACiAjaWZuZGVmIFBhZ2VDbGllbnRCbGFja0JlcnJ5X2gKICNkZWZpbmUgUGFn
ZUNsaWVudEJsYWNrQmVycnlfaAogCisjaW5jbHVkZSAiQ3JlZGVudGlhbC5oIgogI2luY2x1ZGUg
IkN1cnNvci5oIgogI2luY2x1ZGUgIldlYlBhZ2VDbGllbnQuaCIKIApAQCAtMzQsMTEgKzM1LDE5
IEBAIG5hbWVzcGFjZSBCbGFja0JlcnJ5IHsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFz
cyBJbnRSZWN0OwogICAgIGNsYXNzIEludFNpemU7CisgICAgY2xhc3MgS1VSTDsKICAgICBjbGFz
cyBQbHVnaW5WaWV3OworICAgIGNsYXNzIFByb3RlY3Rpb25TcGFjZTsKIH0KIAogY2xhc3MgUGFn
ZUNsaWVudEJsYWNrQmVycnkgewogcHVibGljOgorICAgIGVudW0gU2F2ZUNyZWRlbnRpYWxUeXBl
IHsKKyAgICAgICAgU2F2ZUNyZWRlbnRpYWxOZXZlckZvclRoaXNTaXRlID0gMCwKKyAgICAgICAg
U2F2ZUNyZWRlbnRpYWxOb3ROb3csCisgICAgICAgIFNhdmVDcmVkZW50aWFsWWVzCisgICAgfTsK
KwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoV2ViQ29yZTo6UGxhdGZvcm1DdXJzb3IpID0g
MDsKICAgICB2aXJ0dWFsIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrU3RyZWFtRmFjdG9y
eSogbmV0d29ya1N0cmVhbUZhY3RvcnkoKSA9IDA7CiAgICAgdmlydHVhbCBCbGFja0JlcnJ5OjpQ
bGF0Zm9ybTo6R3JhcGhpY3M6OldpbmRvdyogcGxhdGZvcm1XaW5kb3coKSBjb25zdCA9IDA7CkBA
IC02MCw2ICs2OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFNpemUgdmll
d3BvcnRTaXplKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgaW50IHNob3dBbGVydERpYWxvZyhC
bGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VDbGllbnQ6OkFsZXJ0VHlwZSkgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkNy
ZWRlbnRpYWwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNv
bnN0IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYpID0gMDsKKyAgICB2aXJ0dWFsIFNhdmVDcmVk
ZW50aWFsVHlwZSBub3RpZnlTaG91bGRTYXZlQ3JlZGVudGlhbChib29sKSA9IDA7CiB9OwogCiAj
ZW5kaWYgLy8gUGFnZUNsaWVudEJsYWNrQmVycnlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwCmluZGV4IDYw
Y2M4NmMzZjIwOWU1N2I1YTI1YTI2ZjhmYmU5M2E3MGMyNWMyZDguLmM3MzcwODEzZjEzZDNkYmJj
ZDA1MDdjOTIwNWEzYTVjMDAyZmFiNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5jcHAKQEAgLTIxLDYgKzIx
LDggQEAKIAogI2luY2x1ZGUgIkFib3V0RGF0YS5oIgogI2luY2x1ZGUgIkJhc2U2NC5oIgorI2lu
Y2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkNv
b2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlICJDcmVkZW50aWFsU3RvcmFnZS5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCkBAIC0zMCw2ICszMiw3IEBACiAjaW5jbHVkZSAiTUlNRVNuaWZmaW5nLmgiCiAj
aW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk5ldHdvcmtNYW5hZ2VyLmgi
CisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVx
dWVzdC5oIgpAQCAtODY4LDggKzg3MSwxMSBAQCBib29sIE5ldHdvcmtKb2I6OnNlbmRSZXF1ZXN0
V2l0aENyZWRlbnRpYWxzKFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgdHlwZSwgUHJvdAogICAg
ICAgICAgICAgLy8gSWYgdGhleSBhcmUgY29ycmVjdCwgdGhleSB3aWxsIHRoZSBwdXQgaW50byBD
cmVkZW50aWFsU3RvcmFnZS4KICAgICAgICAgICAgIG1faGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5t
X3VzZXIgPSAiIjsKICAgICAgICAgICAgIG1faGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX3Bhc3Mg
PSAiIjsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xp
ZW50KCktPmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHJlYWxtLCB1c2VybmFtZSwgcGFzc3dvcmQp
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQ3JlZGVudGlhbCBpbnB1dENyZWRlbnRp
YWwgPSBtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKS0+cGxhdGZvcm1QYWdlQ2xp
ZW50KCktPmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG5ld1VSTCwgcHJvdGVjdGlvblNwYWNlKTsK
KyAgICAgICAgICAgIHVzZXJuYW1lID0gaW5wdXRDcmVkZW50aWFsLnVzZXIoKTsKKyAgICAgICAg
ICAgIHBhc3N3b3JkID0gaW5wdXRDcmVkZW50aWFsLnBhc3N3b3JkKCk7CisgICAgICAgIH0KIAog
ICAgICAgICBpZiAodXNlcm5hbWUuaXNFbXB0eSgpICYmIHBhc3N3b3JkLmlzRW1wdHkoKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBh
Z2UuY3BwCmluZGV4IGMyZWYyY2Y4N2M2ZDkzYmRlNjNhZGUzNjhiOThmYmQ3ZDZhNjU1YzQuLjk1
MTUyZDNkZjI3ZDM2NDUxNmJmMTUxYzRlYzA5YzJiNzZkMTNlYWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgIkNo
cm9tZUNsaWVudEJsYWNrQmVycnkuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudEJsYWNr
QmVycnkuaCIKICNpbmNsdWRlICJDb29raWVNYW5hZ2VyLmgiCisjaW5jbHVkZSAiQ3JlZGVudGlh
bE1hbmFnZXIuaCIKKyNpbmNsdWRlICJDcmVkZW50aWFsVHJhbnNmb3JtRGF0YS5oIgogI2luY2x1
ZGUgIkRPTVN1cHBvcnQuaCIKICNpbmNsdWRlICJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIkRhdGFi
YXNlU3luYy5oIgpAQCAtMjAxNyw2ICsyMDE5LDMzIEBAIGJvb2wgV2ViUGFnZVByaXZhdGU6Omlz
QWN0aXZlKCkgY29uc3QKICAgICByZXR1cm4gbV9jbGllbnQtPmlzQWN0aXZlKCk7CiB9CiAKK0Ny
ZWRlbnRpYWwgV2ViUGFnZVByaXZhdGU6OmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEtV
UkwmIHVybCwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UpCit7CisgICAg
V2ViU3RyaW5nIHVzZXJuYW1lOworICAgIFdlYlN0cmluZyBwYXNzd29yZDsKKworI2lmIEVOQUJM
RShCTEFDS0JFUlJZX0NSRURFTlRJQUxfUEVSU0lTVCkKKyAgICBpZiAoIW1fd2ViU2V0dGluZ3Mt
PmlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQorICAgICAgICBjcmVkZW50aWFsTWFuYWdlcigp
LmF1dG9maWxsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UocHJvdGVjdGlvblNwYWNlLCB1c2VybmFt
ZSwgcGFzc3dvcmQpOworI2VuZGlmCisKKyAgICBtX2NsaWVudC0+YXV0aGVudGljYXRpb25DaGFs
bGVuZ2UocHJvdGVjdGlvblNwYWNlLnJlYWxtKCkuY2hhcmFjdGVycygpLCBwcm90ZWN0aW9uU3Bh
Y2UucmVhbG0oKS5sZW5ndGgoKSwgdXNlcm5hbWUsIHBhc3N3b3JkKTsKKworI2lmIEVOQUJMRShC
TEFDS0JFUlJZX0NSRURFTlRJQUxfUEVSU0lTVCkKKyAgICBDcmVkZW50aWFsIGlucHV0Q3JlZGVu
dGlhbCh1c2VybmFtZSwgcGFzc3dvcmQsIENyZWRlbnRpYWxQZXJzaXN0ZW5jZVBlcm1hbmVudCk7
CisgICAgaWYgKCFtX3dlYlNldHRpbmdzLT5pc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKKyAg
ICAgICAgY3JlZGVudGlhbE1hbmFnZXIoKS5zYXZlQ3JlZGVudGlhbElmQ29uZmlybWVkKHRoaXMs
IENyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhKHVybCwgcHJvdGVjdGlvblNwYWNlLCBpbnB1dENyZWRl
bnRpYWwpKTsKKyNlbHNlCisgICAgQ3JlZGVudGlhbCBpbnB1dENyZWRlbnRpYWwodXNlcm5hbWUs
IHBhc3N3b3JkLCBDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lKTsKKyNlbmRpZgorICAgIHJldHVy
biBpbnB1dENyZWRlbnRpYWw7Cit9CisKK1BhZ2VDbGllbnRCbGFja0JlcnJ5OjpTYXZlQ3JlZGVu
dGlhbFR5cGUgV2ViUGFnZVByaXZhdGU6Om5vdGlmeVNob3VsZFNhdmVDcmVkZW50aWFsKGJvb2wg
aXNOZXcpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFBhZ2VDbGllbnRCbGFja0JlcnJ5OjpT
YXZlQ3JlZGVudGlhbFR5cGU+KG1fY2xpZW50LT5ub3RpZnlTaG91bGRTYXZlQ3JlZGVudGlhbChp
c05ldykpOworfQorCiBib29sIFdlYlBhZ2VQcml2YXRlOjp1c2VGaXhlZExheW91dCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQXBpL1dlYlBhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2Vi
UGFnZUNsaWVudC5oCmluZGV4IGMyMGZlOTUwYzIwYTZjYjQ0NjA5NjA2Y2MzOTkyZDcxYTgyMDJm
MmEuLjMwZDFmZGViM2VlNjQ1MWM0N2ExNzY1NTNhZjI2ZjlhYTg5NjlmNmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oCkBAIC03Nyw2ICs3NywxMiBA
QCBwdWJsaWM6CiAgICAgICAgIE1lZGlhSW52YWxpZEVycm9yLAogICAgIH07CiAKKyAgICBlbnVt
IFNhdmVDcmVkZW50aWFsVHlwZSB7CisgICAgICAgIFNhdmVDcmVkZW50aWFsTmV2ZXJGb3JUaGlz
U2l0ZSA9IDAsCisgICAgICAgIFNhdmVDcmVkZW50aWFsTm90Tm93LAorICAgICAgICBTYXZlQ3Jl
ZGVudGlhbFllcworICAgIH07CisKICAgICB2aXJ0dWFsIGludCBnZXRJbnN0YW5jZUlkKCkgY29u
c3QgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUxvYWRTdGFydGVkKCkgPSAwOwpAQCAt
MjA2LDYgKzIxMiw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRQcmV2ZW50c1Nj
cmVlbklkbGVEaW1taW5nKGJvb2wgbm9EaW1taW5nKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IHVuc2lnbmVkIHNob3J0KiByZWFsbSwgdW5zaWdu
ZWQgaW50IHJlYWxtTGVuZ3RoLCBXZWJTdHJpbmcmIHVzZXJuYW1lLCBXZWJTdHJpbmcmIHBhc3N3
b3JkKSA9IDA7CisgICAgdmlydHVhbCBTYXZlQ3JlZGVudGlhbFR5cGUgbm90aWZ5U2hvdWxkU2F2
ZUNyZWRlbnRpYWwoYm9vbCBpc05ldykgPSAwOwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFBs
dWdpbkVudGVyRnVsbFNjcmVlbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGx1Z2luRW50
ZXJGdWxsU2NyZWVuKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0FwaS9XZWJQYWdlX3AuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9w
LmgKaW5kZXggZDE1NjUzMzc4NjQ4MDliYzQ5NDc3M2Q0ZWQ3NzIzZDIwYTg1ZTBiMi4uZDc2YjVh
ZDRlMmFiNzliM2Y3NjhhN2Y4ZTdkYjRiNGZjYWU5MGQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2VfcC5oCkBAIC0xNzYsNiArMTc2LDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgZG91YmxlIGN1cnJlbnRab29tRmFjdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQg
c2hvd0FsZXJ0RGlhbG9nKFdlYlBhZ2VDbGllbnQ6OkFsZXJ0VHlwZSBhdHlwZSk7CiAgICAgdmly
dHVhbCBib29sIGlzQWN0aXZlKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpDcmVkZW50
aWFsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBX
ZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmKTsKKyAgICB2aXJ0dWFsIFNhdmVDcmVkZW50aWFsVHlw
ZSBub3RpZnlTaG91bGRTYXZlQ3JlZGVudGlhbChib29sKTsKIAogICAgIC8vIENhbGxlZCBmcm9t
IHdpdGhpbiBXZWJLaXQgdmlhIENocm9tZUNsaWVudEJsYWNrQmVycnkuCiAgICAgdm9pZCBlbnRl
ckZ1bGxzY3JlZW5Gb3JOb2RlKFdlYkNvcmU6Ok5vZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ3JlZGVudGlhbE1hbmFnZXIu
Y3BwCmluZGV4IDk3ZTdkZTZmOGJmMGY4Nzk4Yzc4YjMzNDIzMzhiYjE1MzcyZGUwYzcuLjY4M2Uz
YzNiYmM4Zjg3OTYxNjliN2Y0NGRmM2JmOTU0ZTVlZWZhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0NyZWRlbnRpYWxNYW5h
Z2VyLmNwcApAQCAtMjMsMjMgKzIzLDIyIEBACiAKICNpbmNsdWRlICJDcmVkZW50aWFsQmFja2lu
Z1N0b3JlLmgiCiAjaW5jbHVkZSAiQ3JlZGVudGlhbFRyYW5zZm9ybURhdGEuaCIKLSNpbmNsdWRl
ICJGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1l
bnQuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUg
IldlYlBhZ2VDbGllbnQuaCIKLSNpbmNsdWRlICJXZWJQYWdlX3AuaCIKKyNpbmNsdWRlICJQYWdl
Q2xpZW50QmxhY2tCZXJyeS5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogCi11c2luZyBCbGFj
a0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VDbGllbnQ7CiB1c2luZyBCbGFja0JlcnJ5OjpXZWJLaXQ6
OldlYlN0cmluZzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DcmVkZW50aWFsTWFuYWdlcjo6
Q3JlZGVudGlhbE1hbmFnZXIoRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5KiBmcmFtZUxvYWRl
ckNsaWVudCkKLSAgICA6IG1fZnJhbWVMb2FkZXJDbGllbnQoZnJhbWVMb2FkZXJDbGllbnQpCitD
cmVkZW50aWFsTWFuYWdlciYgY3JlZGVudGlhbE1hbmFnZXIoKQogewotICAgIEFTU0VSVChtX2Zy
YW1lTG9hZGVyQ2xpZW50KTsKKyAgICBzdGF0aWMgQ3JlZGVudGlhbE1hbmFnZXIgKmNyZWRlbnRp
YWxNYW5hZ2VyID0gMDsKKyAgICBpZiAoIWNyZWRlbnRpYWxNYW5hZ2VyKQorICAgICAgICBjcmVk
ZW50aWFsTWFuYWdlciA9IG5ldyBDcmVkZW50aWFsTWFuYWdlcigpOworICAgIHJldHVybiAqY3Jl
ZGVudGlhbE1hbmFnZXI7CiB9CiAKIHZvaWQgQ3JlZGVudGlhbE1hbmFnZXI6OmF1dG9maWxsQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3Bh
Y2UsIFdlYlN0cmluZyYgdXNlcm5hbWUsIFdlYlN0cmluZyYgcGFzc3dvcmQpCkBAIC03MCw4ICs2
OSwxMCBAQCB2b2lkIENyZWRlbnRpYWxNYW5hZ2VyOjphdXRvZmlsbFBhc3N3b3JkRm9ybXMoUGFz
c1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gZG9jRm9ybQogICAgIH0KIH0KIAotdm9pZCBDcmVkZW50
aWFsTWFuYWdlcjo6c2F2ZUNyZWRlbnRpYWxJZkNvbmZpcm1lZChjb25zdCBDcmVkZW50aWFsVHJh
bnNmb3JtRGF0YSYgZGF0YSkKK3ZvaWQgQ3JlZGVudGlhbE1hbmFnZXI6OnNhdmVDcmVkZW50aWFs
SWZDb25maXJtZWQoUGFnZUNsaWVudEJsYWNrQmVycnkqIHBhZ2VDbGllbnQsIGNvbnN0IENyZWRl
bnRpYWxUcmFuc2Zvcm1EYXRhJiBkYXRhKQogeworICAgIEFTU0VSVChwYWdlQ2xpZW50KTsKKwog
ICAgIGlmICghZGF0YS5pc1ZhbGlkKCkgfHwgZGF0YS5jcmVkZW50aWFsKCkuaXNFbXB0eSgpIHx8
IENyZWRlbnRpYWxCYWNraW5nU3RvcmU6Omluc3RhbmNlKCktPmhhc05ldmVyUmVtZW1iZXIoZGF0
YS5wcm90ZWN0aW9uU3BhY2UoKSkpCiAgICAgICAgIHJldHVybjsKIApAQCAtNzksMTMgKzgwLDEz
IEBAIHZvaWQgQ3JlZGVudGlhbE1hbmFnZXI6OnNhdmVDcmVkZW50aWFsSWZDb25maXJtZWQoY29u
c3QgQ3JlZGVudGlhbFRyYW5zZm9ybURhdGEmCiAgICAgaWYgKHNhdmVkQ3JlZGVudGlhbCA9PSBk
YXRhLmNyZWRlbnRpYWwoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViUGFnZUNsaWVudDo6
U2F2ZUNyZWRlbnRpYWxUeXBlIHR5cGUgPSBtX2ZyYW1lTG9hZGVyQ2xpZW50LT5tX3dlYlBhZ2VQ
cml2YXRlLT5tX2NsaWVudC0+bm90aWZ5U2hvdWxkU2F2ZUNyZWRlbnRpYWwoc2F2ZWRDcmVkZW50
aWFsLmlzRW1wdHkoKSk7Ci0gICAgaWYgKHR5cGUgPT0gV2ViUGFnZUNsaWVudDo6U2F2ZUNyZWRl
bnRpYWxZZXMpIHsKKyAgICBQYWdlQ2xpZW50QmxhY2tCZXJyeTo6U2F2ZUNyZWRlbnRpYWxUeXBl
IHR5cGUgPSBwYWdlQ2xpZW50LT5ub3RpZnlTaG91bGRTYXZlQ3JlZGVudGlhbChzYXZlZENyZWRl
bnRpYWwuaXNFbXB0eSgpKTsKKyAgICBpZiAodHlwZSA9PSBQYWdlQ2xpZW50QmxhY2tCZXJyeTo6
U2F2ZUNyZWRlbnRpYWxZZXMpIHsKICAgICAgICAgaWYgKHNhdmVkQ3JlZGVudGlhbC5pc0VtcHR5
KCkpCiAgICAgICAgICAgICBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjppbnN0YW5jZSgpLT5hZGRM
b2dpbihkYXRhLnVybCgpLCBkYXRhLnByb3RlY3Rpb25TcGFjZSgpLCBkYXRhLmNyZWRlbnRpYWwo
KSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIENyZWRlbnRpYWxCYWNraW5nU3RvcmU6Omlu
c3RhbmNlKCktPnVwZGF0ZUxvZ2luKGRhdGEudXJsKCksIGRhdGEucHJvdGVjdGlvblNwYWNlKCks
IGRhdGEuY3JlZGVudGlhbCgpKTsKLSAgICB9IGVsc2UgaWYgKHR5cGUgPT0gV2ViUGFnZUNsaWVu
dDo6U2F2ZUNyZWRlbnRpYWxOZXZlckZvclRoaXNTaXRlKSB7CisgICAgfSBlbHNlIGlmICh0eXBl
ID09IFBhZ2VDbGllbnRCbGFja0JlcnJ5OjpTYXZlQ3JlZGVudGlhbE5ldmVyRm9yVGhpc1NpdGUp
IHsKICAgICAgICAgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6aW5zdGFuY2UoKS0+YWRkTmV2ZXJS
ZW1lbWJlcihkYXRhLnVybCgpLCBkYXRhLnByb3RlY3Rpb25TcGFjZSgpKTsKICAgICAgICAgQ3Jl
ZGVudGlhbEJhY2tpbmdTdG9yZTo6aW5zdGFuY2UoKS0+cmVtb3ZlTG9naW4oZGF0YS51cmwoKSwg
ZGF0YS5wcm90ZWN0aW9uU3BhY2UoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0NyZWRlbnRpYWxNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ3JlZGVudGlhbE1hbmFnZXIuaAppbmRl
eCAxZDM5ZjEwYzBkOWJiZjk1YzE1NDBkZTcxZWJiZDY2N2IzYjdmZjU5Li4yZjE5ZThhYzA5NWMx
YTU1NTU2N2IxN2UxMGE4OWU5NDYyODgwYTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ3JlZGVudGlhbE1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ3JlZGVudGlhbE1hbmFnZXIuaApAQCAt
MjQsNiArMjQsOCBAQAogI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KIAorY2xhc3MgUGFnZUNsaWVudEJsYWNrQmVycnk7CisKIG5hbWVzcGFj
ZSBCbGFja0JlcnJ5IHsKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViU3RyaW5nOwpAQCAt
MzEsMjMgKzMzLDIzIEBAIGNsYXNzIFdlYlN0cmluZzsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewotY2xhc3MgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OwogY2xhc3MgS1VSTDsKIGNsYXNz
IFByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIENyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhOwogCiBjbGFz
cyBDcmVkZW50aWFsTWFuYWdlciB7CiBwdWJsaWM6Ci0gICAgQ3JlZGVudGlhbE1hbmFnZXIoRnJh
bWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Kik7Ci0KICAgICB2b2lkIGF1dG9maWxsQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgQmxhY2tCZXJyeTo6V2ViS2l0
OjpXZWJTdHJpbmcmIHVzZXJuYW1lLCBCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlN0cmluZyYgcGFz
c3dvcmQpOwogICAgIHZvaWQgYXV0b2ZpbGxQYXNzd29yZEZvcm1zKFBhc3NSZWZQdHI8SFRNTENv
bGxlY3Rpb24+IGRvY0Zvcm1zKTsKLSAgICB2b2lkIHNhdmVDcmVkZW50aWFsSWZDb25maXJtZWQo
Y29uc3QgQ3JlZGVudGlhbFRyYW5zZm9ybURhdGEmKTsKKyAgICB2b2lkIHNhdmVDcmVkZW50aWFs
SWZDb25maXJtZWQoUGFnZUNsaWVudEJsYWNrQmVycnkqLCBjb25zdCBDcmVkZW50aWFsVHJhbnNm
b3JtRGF0YSYpOwogCi1wcml2YXRlOgotICAgIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSog
bV9mcmFtZUxvYWRlckNsaWVudDsKKyBwcml2YXRlOgorICAgIGZyaWVuZCBDcmVkZW50aWFsTWFu
YWdlciYgY3JlZGVudGlhbE1hbmFnZXIoKTsKKyAgICBDcmVkZW50aWFsTWFuYWdlcigpIHsgfQog
fTsKIAorQ3JlZGVudGlhbE1hbmFnZXImIGNyZWRlbnRpYWxNYW5hZ2VyKCk7CisKIH0gLy8gV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEJMQUNLQkVSUllfQ1JFREVOVElBTF9QRVJTSVNUKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCAwODRmOTFi
OTUwMTlhZmYzNTI1ODkxNjg1ODUyMmQ4MWJlNTI3MmE5Li42ZTQyOWEzOGQzMmUyODk3NjQzZGQw
NzAwNjNiZTg3Y2NlNGJjY2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFj
a0JlcnJ5LmNwcApAQCAtMjgsNiArMjgsOSBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudEJsYWNr
QmVycnkuaCIKICNpbmNsdWRlICJDbGllbnRFeHRlbnNpb24uaCIKICNpbmNsdWRlICJDb29raWVN
YW5hZ2VyLmgiCisjaW5jbHVkZSAiQ3JlZGVudGlhbEJhY2tpbmdTdG9yZS5oIgorI2luY2x1ZGUg
IkNyZWRlbnRpYWxNYW5hZ2VyLmgiCisjaW5jbHVkZSAiQ3JlZGVudGlhbFRyYW5zZm9ybURhdGEu
aCIKICNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZUNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lTmV0
d29ya2luZ0NvbnRleHRCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC01
MCw2ICs1Myw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIK
ICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKKyNpbmNsdWRlICJQcm90ZWN0aW9uU3BhY2Uu
aCIKICNpbmNsdWRlICJTY29wZVBvaW50ZXIuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIK
ICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKQEAgLTYwMiw2ICs2MDYsMTEgQEAgdm9pZCBGcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkRmluaXNoTG9hZCgpCiAgICAgICAg
ICAgICAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPnNldEFsdGVybmF0ZUZlZWREZXRh
aWxzKHRpdGxlLnV0ZjgoKS5kYXRhKCksIGhyZWYudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIH0K
ICAgICB9CisKKyNpZiBFTkFCTEUoQkxBQ0tCRVJSWV9DUkVERU5USUFMX1BFUlNJU1QpCisgICAg
aWYgKCFtX3dlYlBhZ2VQcml2YXRlLT5tX3dlYlNldHRpbmdzLT5pc1ByaXZhdGVCcm93c2luZ0Vu
YWJsZWQoKSkKKyAgICAgICAgY3JlZGVudGlhbE1hbmFnZXIoKS5hdXRvZmlsbFBhc3N3b3JkRm9y
bXMobV9mcmFtZS0+ZG9jdW1lbnQoKS0+Zm9ybXMoKSk7CisjZW5kaWYKIH0KIAogdm9pZCBGcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkRmluaXNoRG9jdW1lbnRMb2FkKCkK
QEAgLTY5NCwxMiArNzAzLDI3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojpk
aXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFCiAgICAgfQogfQog
Ci12b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9y
bShGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4pCit2
b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShG
cmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0
YXRlKQogeworI2lmIEVOQUJMRShCTEFDS0JFUlJZX0NSRURFTlRJQUxfUEVSU0lTVCkKKyAgICBp
ZiAoIW1fd2ViUGFnZVByaXZhdGUtPm1fd2ViU2V0dGluZ3MtPmlzUHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCgpKQorICAgICAgICBjcmVkZW50aWFsTWFuYWdlcigpLnNhdmVDcmVkZW50aWFsSWZDb25m
aXJtZWQobV93ZWJQYWdlUHJpdmF0ZSwgQ3JlZGVudGlhbFRyYW5zZm9ybURhdGEoZm9ybVN0YXRl
LT5mb3JtKCkpKTsKKyNlbmRpZgorCiAgICAgLy8gRklYTUU6IFN0dWIuCiAgICAgKG1fZnJhbWUt
PmxvYWRlcigpLT5wb2xpY3lDaGVja2VyKCktPipmdW5jdGlvbikoUG9saWN5VXNlKTsKIH0KIAor
dm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFNlbmRTdWJtaXRF
dmVudChIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCit7CisjaWYgRU5BQkxFKEJMQUNLQkVSUllfQ1JF
REVOVElBTF9QRVJTSVNUKQorICAgIGlmICghbV93ZWJQYWdlUHJpdmF0ZS0+bV93ZWJTZXR0aW5n
cy0+aXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCisgICAgICAgIGNyZWRlbnRpYWxNYW5hZ2Vy
KCkuc2F2ZUNyZWRlbnRpYWxJZkNvbmZpcm1lZChtX3dlYlBhZ2VQcml2YXRlLCBDcmVkZW50aWFs
VHJhbnNmb3JtRGF0YShmb3JtKSk7CisjZWxzZQorICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5k
aWYKK30KKwogUGFzc1JlZlB0cjxGcmFtZT4gRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojpj
cmVhdGVGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmFtZQogICAgICwgSFRN
TEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIs
IGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQp
CiB7CkBAIC0xMTI1LDE3ICsxMTQ5LDYgQEAgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250
ZXh0PiBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmNyZWF0ZU5ldHdvcmtpbmcKICAgICBy
ZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEJsYWNrQmVycnk6OmNyZWF0ZShtX2ZyYW1lKTsK
IH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKGNvbnN0IFN0cmluZyYgcmVhbG0sIFN0cmluZyYgdXNlcm5hbWUsIFN0cmluZyYgcGFz
c3dvcmQpCi17Ci0gICAgV2ViU3RyaW5nIHdlYlBhZ2VVc2VybmFtZTsKLSAgICBXZWJTdHJpbmcg
d2ViUGFnZVBhc3N3b3JkOwotCi0gICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPmF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKHJlYWxtLmNoYXJhY3RlcnMoKSwgcmVhbG0ubGVuZ3RoKCksIHdl
YlBhZ2VVc2VybmFtZSwgd2ViUGFnZVBhc3N3b3JkKTsKLQotICAgIHVzZXJuYW1lID0gd2ViUGFn
ZVVzZXJuYW1lOwotICAgIHBhc3N3b3JkID0gd2ViUGFnZVBhc3N3b3JkOwotfQotCiB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6c3RhcnREb3dubG9hZChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgLypzdWdnZXN0ZWROYW1lKi8pCiB7CiAgICAg
Ly8gRklYTUU6IHVzZSB0aGUgc3VnZ2VzdGVkTmFtZT8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnku
aCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnkuaAppbmRleCBhNmQ3MDFhNGMyYWFjODVkM2JhMmY4NGQ2N2JhMzlhZmJh
NmMzY2MyLi5jMTZhY2U5ZGRlYjZmOGJkMWE2ODNiOWVmZjQ4NmViMWYwYTA2ODJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oCkBAIC0xNjQsMTEgKzE2NCwxMCBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkRGV0ZWN0WFNTKGNvbnN0IEtVUkwmLCBi
b29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VJY29ucyhJY29uVHlw
ZSkgeyBub3RJbXBsZW1lbnRlZCgpOyB9OwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxT
ZW5kU3VibWl0RXZlbnQoSFRNTEZvcm1FbGVtZW50KikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Owor
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQoSFRNTEZvcm1FbGVt
ZW50Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbERlZmVyTG9hZGluZygpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZXN1bWVMb2FkaW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIGF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKGNvbnN0IFN0cmluZyYgcmVhbG0sIFN0cmluZyYgdXNlcm5hbWUsIFN0cmlu
ZyYgcGFzc3dvcmQpOwogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133036</attachid>
            <date>2012-03-21 06:59:43 -0700</date>
            <delta_ts>2012-03-21 08:23:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80401-20120321215940.patch</filename>
            <type>text/plain</type>
            <size>19800</size>
            <attacher name="Jonathan Dong">jonathan.dong.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTFlYTAwYmI0Mjg1MmRj
NTc2OTZmMDYwMWI4YmI1ZTE5N2Q0Y2RkMS4uMjU4MDQzMDY5ZWQ2YTdmNDUzYWQzZGQ5MDNkZDQ0
NmQ4YmMyYmFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAzLTIxICBKb25h
dGhhbiBEb25nICA8am9uYXRoYW4uZG9uZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAg
W0JsYWNrQmVycnldIENyZWRlbnRpYWwgc2F2ZSBhbmQgYXV0b2ZpbGwgaW1wbGVtZXRhdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA0MDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBpbnRl
cmZhY2UgZnVuY3Rpb24gYXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKSBhbmQKKyAgICAgICAgbm90
aWZ5U2hvdWxkU2F2ZUNyZWRlbnRpYWwoKSBpbnRvIFBhZ2VDbGllbnRCbGFja0JlcnJ5LgorICAg
ICAgICBBcyB0aGlzIGNsYXNzIGlzIG91ciBwbGF0Zm9ybSBzcGVjaWZpYyBpbnRlcmZhY2UsCisg
ICAgICAgIGJ5IGRvaW5nIHRoaXMgd2UgZG9uJ3QgbmVlZCB0byBhZGQgYW4gaW50ZXJmYWNlIGZ1
bmN0aW9uCisgICAgICAgIGluIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50IHdoaWNoIGlzIGEgcGxh
dGZvcm0KKyAgICAgICAgaW5kZXBlbmRlbnQgaW50ZXJmYWNlLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2JsYWNrYmVycnkvUGFnZUNsaWVudEJsYWNrQmVy
cnkuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrSm9iLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6OnNl
bmRSZXF1ZXN0V2l0aENyZWRlbnRpYWxzKToKKwogMjAxMi0wMy0yMSAgQW5kcmV5IEtvc3lha292
ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGZv
ciByMTExNTI5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggZjdjNjlhNjY0MmI3
NzJmMGM3Njk2YTVlOGQxNzI2NmM5MTk0ODk3Ny4uOTBjMzBiNTA0MTExM2E0NTYyNjQ1MGIzMGU1
MDE5ZDdkYzgyZTU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTMgQEAKKzIwMTItMDMtMjEgIEpvbmF0aGFuIERvbmcgIDxqb25hdGhhbi5kb25nQHRvcmNobW9i
aWxlLmNvbS5jbj4KKworICAgICAgICBbQmxhY2tCZXJyeV0gQ3JlZGVudGlhbCBzYXZlIGFuZCBh
dXRvZmlsbCBpbXBsZW1ldGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MDQwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgaW50ZW5kZWQgdG8gaW1wbGVtZW50IHRoZSBjcmVk
ZW50aWFsIHBlcnNpc3QKKyAgICAgICAgYW5kIGF1dG9maWxsIGZlYXR1cmUgZm9yIEJsYWNrQmVy
cnkgcG9ydGluZy4KKworICAgICAgICBNb3ZlZCBpbnRlcmZhY2UgYXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoKSBmcm9tIGNsYXNzCisgICAgICAgIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSB0
byBXZWJQYWdlUHJpdmF0ZSAoZGVyaXZlZCBmcm9tCisgICAgICAgIFBhZ2VDbGllbnRCbGFja0Jl
cnJ5IGFzIGNoYW5nZXMgbWFkZSBpbiBpdHMgcGFyZW50IGludGVyZmFjZSBjbGFzcyk7CisgICAg
ICAgIEltcGxlbWVudGVkIG5vdGlmeVNob3VsZFNhdmVDcmVkZW50aWFsKCkgaW4gV2ViUGFnZVBy
aXZhdGUKKyAgICAgICAgYW5kIFdlYlBhZ2VDbGllbnQgYXMgd2VsbC4KKyAgICAgICAgQWRkZWQg
Y3JlZGVudGlhbE1hbmFnZXIoKSB0byByZXRyaXZlIENyZWRlbnRpYWxNYW5hZ2VyIGluc3RhbmNl
CisgICAgICAgIGFzIGEgZ2xvYmFsIHNpbmdsZXRvbjsgcmVtb3ZlZCBpdHMgbV9mcmFtZUxvYWRl
ckNsaWVudCB3aGljaCBpcworICAgICAgICByZXBsYWNlZCB3aXRoIGEgcGFzc2VkIGluIFBhZ2VD
bGllbnRCbGFja0JlcnJ5IHBvaW50ZXIsIGFuZCBtb2RpZmllZAorICAgICAgICB0aGUgaW50ZXJm
YWNlIGZ1bmN0aW9uIGFjY29yZGluZ2x5LgorCisgICAgICAgIEZvciB0aGUgaHR0cCBhdXRoZW50
aWNhdGlvbiwgYXV0b2ZpbGwgdGhlIGlucHV0IGRpYWxvZyBpbgorICAgICAgICBmdW5jdGlvbiBh
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpIGFuZCBzYXZlIHRoZSBjcmVkZW50aWFsCisgICAgICAg
IGluZm9ybWF0aW9uIGluIHRoZSBzYW1lIGZ1bmN0aW9uOworICAgICAgICBGb3IgdGhlIGluLWZv
cm0gYXV0aGVudGljYXRpb24sIGF1dG9maWxsIHRoZSB1c2VybmFtZSBhbmQKKyAgICAgICAgcGFz
c3dvcmQgaW5wdXQgZmllbGRzIGluIGZ1bmN0aW9uIGRpc3BhdGNoRGlkRmluaXNoTG9hZCgpLAor
ICAgICAgICBhbmQgc2F2ZSB0aGUgY3JlZGVudGlhbCBpbmZvcm1hdGlvbiBpbiBmdW5jdGlvbgor
ICAgICAgICBkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKCkgb3IgZGlzcGF0Y2hXaWxsU2VuZFN1Ym1p
dEV2ZW50KCkuCisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFja0Jl
cnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjphdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6Cisg
ICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJp
dmF0ZTo6bm90aWZ5U2hvdWxkU2F2ZUNyZWRlbnRpYWwpOgorICAgICAgICAqIEFwaS9XZWJQYWdl
Q2xpZW50Lmg6CisgICAgICAgICogQXBpL1dlYlBhZ2VfcC5oOgorICAgICAgICAoV2ViUGFnZVBy
aXZhdGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NyZWRlbnRpYWxNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNyZWRlbnRpYWxNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6
OkNyZWRlbnRpYWxNYW5hZ2VyOjpzYXZlQ3JlZGVudGlhbElmQ29uZmlybWVkKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsTWFuYWdlci5oOgorICAgICAgICAoQ3JlZGVudGlh
bE1hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbE1hbmFnZXI6OkNyZWRlbnRp
YWxNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkRmluaXNoTG9hZCk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFN1Ym1p
dEZvcm0pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojpk
aXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAg
IChGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkpOgorCiAyMDEyLTAzLTIwICBKYWNreSBKaWFu
ZyAgPHpoYWppYW5nQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIERpaml0IGNyYXNo
IFdlYkNvcmU6OkNvb2tpZU1hbmFnZXI6OmdldFJhd0Nvb2tpZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUGFnZUNsaWVudEJsYWNrQmVycnkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUGFnZUNsaWVudEJsYWNrQmVycnkuaApp
bmRleCAyZmFiMGZlMjE2MTQ4ZDhiZjhkZmY4ODBhMjQ0ZWFjY2Q1YmYzNzA0Li40NzRlM2Q1Y2Zi
NjNlOGM1MDQ3MzdhYzk5NTc0MTNiODhhZTg0MGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VDbGllbnRCbGFja0JlcnJ5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9QYWdlQ2xpZW50QmxhY2tCZXJyeS5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCwgMjAxMSBSZXNlYXJj
aCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOSwgMjAxMCwgMjAxMSwgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0xOSw2ICsxOSw3IEBACiAj
aWZuZGVmIFBhZ2VDbGllbnRCbGFja0JlcnJ5X2gKICNkZWZpbmUgUGFnZUNsaWVudEJsYWNrQmVy
cnlfaAogCisjaW5jbHVkZSAiQ3JlZGVudGlhbC5oIgogI2luY2x1ZGUgIkN1cnNvci5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VDbGllbnQuaCIKIApAQCAtMzQsMTEgKzM1LDE5IEBAIG5hbWVzcGFjZSBC
bGFja0JlcnJ5IHsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJbnRSZWN0OwogICAg
IGNsYXNzIEludFNpemU7CisgICAgY2xhc3MgS1VSTDsKICAgICBjbGFzcyBQbHVnaW5WaWV3Owor
ICAgIGNsYXNzIFByb3RlY3Rpb25TcGFjZTsKIH0KIAogY2xhc3MgUGFnZUNsaWVudEJsYWNrQmVy
cnkgewogcHVibGljOgorICAgIGVudW0gU2F2ZUNyZWRlbnRpYWxUeXBlIHsKKyAgICAgICAgU2F2
ZUNyZWRlbnRpYWxOZXZlckZvclRoaXNTaXRlID0gMCwKKyAgICAgICAgU2F2ZUNyZWRlbnRpYWxO
b3ROb3csCisgICAgICAgIFNhdmVDcmVkZW50aWFsWWVzCisgICAgfTsKKwogICAgIHZpcnR1YWwg
dm9pZCBzZXRDdXJzb3IoV2ViQ29yZTo6UGxhdGZvcm1DdXJzb3IpID0gMDsKICAgICB2aXJ0dWFs
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrU3RyZWFtRmFjdG9yeSogbmV0d29ya1N0cmVh
bUZhY3RvcnkoKSA9IDA7CiAgICAgdmlydHVhbCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6R3JhcGhp
Y3M6OldpbmRvdyogcGxhdGZvcm1XaW5kb3coKSBjb25zdCA9IDA7CkBAIC02MCw2ICs2OSw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFNpemUgdmlld3BvcnRTaXplKCkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgaW50IHNob3dBbGVydERpYWxvZyhCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlBhZ2VDbGllbnQ6OkFsZXJ0VHlwZSkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0Fj
dGl2ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkNyZWRlbnRpYWwgYXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFdlYkNvcmU6OlBy
b3RlY3Rpb25TcGFjZSYpID0gMDsKKyAgICB2aXJ0dWFsIFNhdmVDcmVkZW50aWFsVHlwZSBub3Rp
ZnlTaG91bGRTYXZlQ3JlZGVudGlhbChib29sKSA9IDA7CiB9OwogCiAjZW5kaWYgLy8gUGFnZUNs
aWVudEJsYWNrQmVycnlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwCmluZGV4IDYwY2M4NmMzZjIwOWU1N2I1
YTI1YTI2ZjhmYmU5M2E3MGMyNWMyZDguLmM3MzcwODEzZjEzZDNkYmJjZDA1MDdjOTIwNWEzYTVj
MDAyZmFiNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrSm9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5jcHAKQEAgLTIxLDYgKzIxLDggQEAKIAogI2luY2x1
ZGUgIkFib3V0RGF0YS5oIgogI2luY2x1ZGUgIkJhc2U2NC5oIgorI2luY2x1ZGUgIkNocm9tZS5o
IgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkNvb2tpZU1hbmFnZXIuaCIK
ICNpbmNsdWRlICJDcmVkZW50aWFsU3RvcmFnZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC0z
MCw2ICszMiw3IEBACiAjaW5jbHVkZSAiTUlNRVNuaWZmaW5nLmgiCiAjaW5jbHVkZSAiTUlNRVR5
cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk5ldHdvcmtNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgpAQCAtODY4
LDggKzg3MSwxMSBAQCBib29sIE5ldHdvcmtKb2I6OnNlbmRSZXF1ZXN0V2l0aENyZWRlbnRpYWxz
KFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgdHlwZSwgUHJvdAogICAgICAgICAgICAgLy8gSWYg
dGhleSBhcmUgY29ycmVjdCwgdGhleSB3aWxsIHRoZSBwdXQgaW50byBDcmVkZW50aWFsU3RvcmFn
ZS4KICAgICAgICAgICAgIG1faGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX3VzZXIgPSAiIjsKICAg
ICAgICAgICAgIG1faGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX3Bhc3MgPSAiIjsKLSAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKHJlYWxtLCB1c2VybmFtZSwgcGFzc3dvcmQpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgQ3JlZGVudGlhbCBpbnB1dENyZWRlbnRpYWwgPSBtX2ZyYW1lLT5w
YWdlKCktPmNocm9tZSgpLT5jbGllbnQoKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCktPmF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKG5ld1VSTCwgcHJvdGVjdGlvblNwYWNlKTsKKyAgICAgICAgICAgIHVz
ZXJuYW1lID0gaW5wdXRDcmVkZW50aWFsLnVzZXIoKTsKKyAgICAgICAgICAgIHBhc3N3b3JkID0g
aW5wdXRDcmVkZW50aWFsLnBhc3N3b3JkKCk7CisgICAgICAgIH0KIAogICAgICAgICBpZiAodXNl
cm5hbWUuaXNFbXB0eSgpICYmIHBhc3N3b3JkLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IGMy
ZWYyY2Y4N2M2ZDkzYmRlNjNhZGUzNjhiOThmYmQ3ZDZhNjU1YzQuLjk1MTUyZDNkZjI3ZDM2NDUx
NmJmMTUxYzRlYzA5YzJiNzZkMTNlYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9X
ZWJQYWdlLmNwcApAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudEJsYWNr
QmVycnkuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudEJsYWNrQmVycnkuaCIKICNpbmNs
dWRlICJDb29raWVNYW5hZ2VyLmgiCisjaW5jbHVkZSAiQ3JlZGVudGlhbE1hbmFnZXIuaCIKKyNp
bmNsdWRlICJDcmVkZW50aWFsVHJhbnNmb3JtRGF0YS5oIgogI2luY2x1ZGUgIkRPTVN1cHBvcnQu
aCIKICNpbmNsdWRlICJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIkRhdGFiYXNlU3luYy5oIgpAQCAt
MjAxNyw2ICsyMDE5LDMzIEBAIGJvb2wgV2ViUGFnZVByaXZhdGU6OmlzQWN0aXZlKCkgY29uc3QK
ICAgICByZXR1cm4gbV9jbGllbnQtPmlzQWN0aXZlKCk7CiB9CiAKK0NyZWRlbnRpYWwgV2ViUGFn
ZVByaXZhdGU6OmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEtVUkwmIHVybCwgY29uc3Qg
UHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UpCit7CisgICAgV2ViU3RyaW5nIHVzZXJu
YW1lOworICAgIFdlYlN0cmluZyBwYXNzd29yZDsKKworI2lmIEVOQUJMRShCTEFDS0JFUlJZX0NS
RURFTlRJQUxfUEVSU0lTVCkKKyAgICBpZiAoIW1fd2ViU2V0dGluZ3MtPmlzUHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZCgpKQorICAgICAgICBjcmVkZW50aWFsTWFuYWdlcigpLmF1dG9maWxsQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UocHJvdGVjdGlvblNwYWNlLCB1c2VybmFtZSwgcGFzc3dvcmQpOwor
I2VuZGlmCisKKyAgICBtX2NsaWVudC0+YXV0aGVudGljYXRpb25DaGFsbGVuZ2UocHJvdGVjdGlv
blNwYWNlLnJlYWxtKCkuY2hhcmFjdGVycygpLCBwcm90ZWN0aW9uU3BhY2UucmVhbG0oKS5sZW5n
dGgoKSwgdXNlcm5hbWUsIHBhc3N3b3JkKTsKKworI2lmIEVOQUJMRShCTEFDS0JFUlJZX0NSRURF
TlRJQUxfUEVSU0lTVCkKKyAgICBDcmVkZW50aWFsIGlucHV0Q3JlZGVudGlhbCh1c2VybmFtZSwg
cGFzc3dvcmQsIENyZWRlbnRpYWxQZXJzaXN0ZW5jZVBlcm1hbmVudCk7CisgICAgaWYgKCFtX3dl
YlNldHRpbmdzLT5pc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKKyAgICAgICAgY3JlZGVudGlh
bE1hbmFnZXIoKS5zYXZlQ3JlZGVudGlhbElmQ29uZmlybWVkKHRoaXMsIENyZWRlbnRpYWxUcmFu
c2Zvcm1EYXRhKHVybCwgcHJvdGVjdGlvblNwYWNlLCBpbnB1dENyZWRlbnRpYWwpKTsKKyNlbHNl
CisgICAgQ3JlZGVudGlhbCBpbnB1dENyZWRlbnRpYWwodXNlcm5hbWUsIHBhc3N3b3JkLCBDcmVk
ZW50aWFsUGVyc2lzdGVuY2VOb25lKTsKKyNlbmRpZgorICAgIHJldHVybiBpbnB1dENyZWRlbnRp
YWw7Cit9CisKK1BhZ2VDbGllbnRCbGFja0JlcnJ5OjpTYXZlQ3JlZGVudGlhbFR5cGUgV2ViUGFn
ZVByaXZhdGU6Om5vdGlmeVNob3VsZFNhdmVDcmVkZW50aWFsKGJvb2wgaXNOZXcpCit7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFBhZ2VDbGllbnRCbGFja0JlcnJ5OjpTYXZlQ3JlZGVudGlhbFR5
cGU+KG1fY2xpZW50LT5ub3RpZnlTaG91bGRTYXZlQ3JlZGVudGlhbChpc05ldykpOworfQorCiBi
b29sIFdlYlBhZ2VQcml2YXRlOjp1c2VGaXhlZExheW91dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oCmlu
ZGV4IGMyMGZlOTUwYzIwYTZjYjQ0NjA5NjA2Y2MzOTkyZDcxYTgyMDJmMmEuLjMwZDFmZGViM2Vl
NjQ1MWM0N2ExNzY1NTNhZjI2ZjlhYTg5NjlmNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oCkBAIC03Nyw2ICs3NywxMiBAQCBwdWJsaWM6CiAgICAg
ICAgIE1lZGlhSW52YWxpZEVycm9yLAogICAgIH07CiAKKyAgICBlbnVtIFNhdmVDcmVkZW50aWFs
VHlwZSB7CisgICAgICAgIFNhdmVDcmVkZW50aWFsTmV2ZXJGb3JUaGlzU2l0ZSA9IDAsCisgICAg
ICAgIFNhdmVDcmVkZW50aWFsTm90Tm93LAorICAgICAgICBTYXZlQ3JlZGVudGlhbFllcworICAg
IH07CisKICAgICB2aXJ0dWFsIGludCBnZXRJbnN0YW5jZUlkKCkgY29uc3QgPSAwOwogCiAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUxvYWRTdGFydGVkKCkgPSAwOwpAQCAtMjA2LDYgKzIxMiw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRQcmV2ZW50c1NjcmVlbklkbGVEaW1taW5n
KGJvb2wgbm9EaW1taW5nKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKGNvbnN0IHVuc2lnbmVkIHNob3J0KiByZWFsbSwgdW5zaWduZWQgaW50IHJlYWxtTGVu
Z3RoLCBXZWJTdHJpbmcmIHVzZXJuYW1lLCBXZWJTdHJpbmcmIHBhc3N3b3JkKSA9IDA7CisgICAg
dmlydHVhbCBTYXZlQ3JlZGVudGlhbFR5cGUgbm90aWZ5U2hvdWxkU2F2ZUNyZWRlbnRpYWwoYm9v
bCBpc05ldykgPSAwOwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFBsdWdpbkVudGVyRnVsbFNj
cmVlbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGx1Z2luRW50ZXJGdWxsU2NyZWVuKCkg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3Au
aCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKaW5kZXggZDE1NjUz
Mzc4NjQ4MDliYzQ5NDc3M2Q0ZWQ3NzIzZDIwYTg1ZTBiMi4uZDc2YjVhZDRlMmFiNzliM2Y3Njhh
N2Y4ZTdkYjRiNGZjYWU5MGQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0FwaS9XZWJQYWdlX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBh
Z2VfcC5oCkBAIC0xNzYsNiArMTc2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgZG91YmxlIGN1
cnJlbnRab29tRmFjdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgc2hvd0FsZXJ0RGlhbG9n
KFdlYlBhZ2VDbGllbnQ6OkFsZXJ0VHlwZSBhdHlwZSk7CiAgICAgdmlydHVhbCBib29sIGlzQWN0
aXZlKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpDcmVkZW50aWFsIGF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2UmKTsKKyAgICB2aXJ0dWFsIFNhdmVDcmVkZW50aWFsVHlwZSBub3RpZnlTaG91bGRT
YXZlQ3JlZGVudGlhbChib29sKTsKIAogICAgIC8vIENhbGxlZCBmcm9tIHdpdGhpbiBXZWJLaXQg
dmlhIENocm9tZUNsaWVudEJsYWNrQmVycnkuCiAgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW5Gb3JO
b2RlKFdlYkNvcmU6Ok5vZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ3JlZGVudGlhbE1hbmFnZXIuY3BwCmluZGV4IDk3ZTdk
ZTZmOGJmMGY4Nzk4Yzc4YjMzNDIzMzhiYjE1MzcyZGUwYzcuLjY4M2UzYzNiYmM4Zjg3OTYxNjli
N2Y0NGRmM2JmOTU0ZTVlZWZhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0NyZWRlbnRpYWxNYW5hZ2VyLmNwcApAQCAtMjMs
MjMgKzIzLDIyIEBACiAKICNpbmNsdWRlICJDcmVkZW50aWFsQmFja2luZ1N0b3JlLmgiCiAjaW5j
bHVkZSAiQ3JlZGVudGlhbFRyYW5zZm9ybURhdGEuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnkuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJLVVJMLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIldlYlBhZ2VDbGllbnQu
aCIKLSNpbmNsdWRlICJXZWJQYWdlX3AuaCIKKyNpbmNsdWRlICJQYWdlQ2xpZW50QmxhY2tCZXJy
eS5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogCi11c2luZyBCbGFja0JlcnJ5OjpXZWJLaXQ6
OldlYlBhZ2VDbGllbnQ7CiB1c2luZyBCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlN0cmluZzsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1DcmVkZW50aWFsTWFuYWdlcjo6Q3JlZGVudGlhbE1hbmFn
ZXIoRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5KiBmcmFtZUxvYWRlckNsaWVudCkKLSAgICA6
IG1fZnJhbWVMb2FkZXJDbGllbnQoZnJhbWVMb2FkZXJDbGllbnQpCitDcmVkZW50aWFsTWFuYWdl
ciYgY3JlZGVudGlhbE1hbmFnZXIoKQogewotICAgIEFTU0VSVChtX2ZyYW1lTG9hZGVyQ2xpZW50
KTsKKyAgICBzdGF0aWMgQ3JlZGVudGlhbE1hbmFnZXIgKmNyZWRlbnRpYWxNYW5hZ2VyID0gMDsK
KyAgICBpZiAoIWNyZWRlbnRpYWxNYW5hZ2VyKQorICAgICAgICBjcmVkZW50aWFsTWFuYWdlciA9
IG5ldyBDcmVkZW50aWFsTWFuYWdlcigpOworICAgIHJldHVybiAqY3JlZGVudGlhbE1hbmFnZXI7
CiB9CiAKIHZvaWQgQ3JlZGVudGlhbE1hbmFnZXI6OmF1dG9maWxsQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UsIFdlYlN0cmluZyYg
dXNlcm5hbWUsIFdlYlN0cmluZyYgcGFzc3dvcmQpCkBAIC03MCw4ICs2OSwxMCBAQCB2b2lkIENy
ZWRlbnRpYWxNYW5hZ2VyOjphdXRvZmlsbFBhc3N3b3JkRm9ybXMoUGFzc1JlZlB0cjxIVE1MQ29s
bGVjdGlvbj4gZG9jRm9ybQogICAgIH0KIH0KIAotdm9pZCBDcmVkZW50aWFsTWFuYWdlcjo6c2F2
ZUNyZWRlbnRpYWxJZkNvbmZpcm1lZChjb25zdCBDcmVkZW50aWFsVHJhbnNmb3JtRGF0YSYgZGF0
YSkKK3ZvaWQgQ3JlZGVudGlhbE1hbmFnZXI6OnNhdmVDcmVkZW50aWFsSWZDb25maXJtZWQoUGFn
ZUNsaWVudEJsYWNrQmVycnkqIHBhZ2VDbGllbnQsIGNvbnN0IENyZWRlbnRpYWxUcmFuc2Zvcm1E
YXRhJiBkYXRhKQogeworICAgIEFTU0VSVChwYWdlQ2xpZW50KTsKKwogICAgIGlmICghZGF0YS5p
c1ZhbGlkKCkgfHwgZGF0YS5jcmVkZW50aWFsKCkuaXNFbXB0eSgpIHx8IENyZWRlbnRpYWxCYWNr
aW5nU3RvcmU6Omluc3RhbmNlKCktPmhhc05ldmVyUmVtZW1iZXIoZGF0YS5wcm90ZWN0aW9uU3Bh
Y2UoKSkpCiAgICAgICAgIHJldHVybjsKIApAQCAtNzksMTMgKzgwLDEzIEBAIHZvaWQgQ3JlZGVu
dGlhbE1hbmFnZXI6OnNhdmVDcmVkZW50aWFsSWZDb25maXJtZWQoY29uc3QgQ3JlZGVudGlhbFRy
YW5zZm9ybURhdGEmCiAgICAgaWYgKHNhdmVkQ3JlZGVudGlhbCA9PSBkYXRhLmNyZWRlbnRpYWwo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViUGFnZUNsaWVudDo6U2F2ZUNyZWRlbnRpYWxU
eXBlIHR5cGUgPSBtX2ZyYW1lTG9hZGVyQ2xpZW50LT5tX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVu
dC0+bm90aWZ5U2hvdWxkU2F2ZUNyZWRlbnRpYWwoc2F2ZWRDcmVkZW50aWFsLmlzRW1wdHkoKSk7
Ci0gICAgaWYgKHR5cGUgPT0gV2ViUGFnZUNsaWVudDo6U2F2ZUNyZWRlbnRpYWxZZXMpIHsKKyAg
ICBQYWdlQ2xpZW50QmxhY2tCZXJyeTo6U2F2ZUNyZWRlbnRpYWxUeXBlIHR5cGUgPSBwYWdlQ2xp
ZW50LT5ub3RpZnlTaG91bGRTYXZlQ3JlZGVudGlhbChzYXZlZENyZWRlbnRpYWwuaXNFbXB0eSgp
KTsKKyAgICBpZiAodHlwZSA9PSBQYWdlQ2xpZW50QmxhY2tCZXJyeTo6U2F2ZUNyZWRlbnRpYWxZ
ZXMpIHsKICAgICAgICAgaWYgKHNhdmVkQ3JlZGVudGlhbC5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjppbnN0YW5jZSgpLT5hZGRMb2dpbihkYXRhLnVybCgp
LCBkYXRhLnByb3RlY3Rpb25TcGFjZSgpLCBkYXRhLmNyZWRlbnRpYWwoKSk7CiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIENyZWRlbnRpYWxCYWNraW5nU3RvcmU6Omluc3RhbmNlKCktPnVwZGF0
ZUxvZ2luKGRhdGEudXJsKCksIGRhdGEucHJvdGVjdGlvblNwYWNlKCksIGRhdGEuY3JlZGVudGlh
bCgpKTsKLSAgICB9IGVsc2UgaWYgKHR5cGUgPT0gV2ViUGFnZUNsaWVudDo6U2F2ZUNyZWRlbnRp
YWxOZXZlckZvclRoaXNTaXRlKSB7CisgICAgfSBlbHNlIGlmICh0eXBlID09IFBhZ2VDbGllbnRC
bGFja0JlcnJ5OjpTYXZlQ3JlZGVudGlhbE5ldmVyRm9yVGhpc1NpdGUpIHsKICAgICAgICAgQ3Jl
ZGVudGlhbEJhY2tpbmdTdG9yZTo6aW5zdGFuY2UoKS0+YWRkTmV2ZXJSZW1lbWJlcihkYXRhLnVy
bCgpLCBkYXRhLnByb3RlY3Rpb25TcGFjZSgpKTsKICAgICAgICAgQ3JlZGVudGlhbEJhY2tpbmdT
dG9yZTo6aW5zdGFuY2UoKS0+cmVtb3ZlTG9naW4oZGF0YS51cmwoKSwgZGF0YS5wcm90ZWN0aW9u
U3BhY2UoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0NyZWRlbnRpYWxNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvQ3JlZGVudGlhbE1hbmFnZXIuaAppbmRleCAxZDM5ZjEwYzBkOWJi
Zjk1YzE1NDBkZTcxZWJiZDY2N2IzYjdmZjU5Li4yZjE5ZThhYzA5NWMxYTU1NTU2N2IxN2UxMGE4
OWU5NDYyODgwYTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvQ3JlZGVudGlhbE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvQ3JlZGVudGlhbE1hbmFnZXIuaApAQCAtMjQsNiArMjQsOCBAQAog
I2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
IAorY2xhc3MgUGFnZUNsaWVudEJsYWNrQmVycnk7CisKIG5hbWVzcGFjZSBCbGFja0JlcnJ5IHsK
IG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViU3RyaW5nOwpAQCAtMzEsMjMgKzMzLDIzIEBA
IGNsYXNzIFdlYlN0cmluZzsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgRnJhbWVM
b2FkZXJDbGllbnRCbGFja0JlcnJ5OwogY2xhc3MgS1VSTDsKIGNsYXNzIFByb3RlY3Rpb25TcGFj
ZTsKIGNsYXNzIENyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhOwogCiBjbGFzcyBDcmVkZW50aWFsTWFu
YWdlciB7CiBwdWJsaWM6Ci0gICAgQ3JlZGVudGlhbE1hbmFnZXIoRnJhbWVMb2FkZXJDbGllbnRC
bGFja0JlcnJ5Kik7Ci0KICAgICB2b2lkIGF1dG9maWxsQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
Y29uc3QgUHJvdGVjdGlvblNwYWNlJiwgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmcmIHVz
ZXJuYW1lLCBCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlN0cmluZyYgcGFzc3dvcmQpOwogICAgIHZv
aWQgYXV0b2ZpbGxQYXNzd29yZEZvcm1zKFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGRvY0Zv
cm1zKTsKLSAgICB2b2lkIHNhdmVDcmVkZW50aWFsSWZDb25maXJtZWQoY29uc3QgQ3JlZGVudGlh
bFRyYW5zZm9ybURhdGEmKTsKKyAgICB2b2lkIHNhdmVDcmVkZW50aWFsSWZDb25maXJtZWQoUGFn
ZUNsaWVudEJsYWNrQmVycnkqLCBjb25zdCBDcmVkZW50aWFsVHJhbnNmb3JtRGF0YSYpOwogCi1w
cml2YXRlOgotICAgIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSogbV9mcmFtZUxvYWRlckNs
aWVudDsKKyBwcml2YXRlOgorICAgIGZyaWVuZCBDcmVkZW50aWFsTWFuYWdlciYgY3JlZGVudGlh
bE1hbmFnZXIoKTsKKyAgICBDcmVkZW50aWFsTWFuYWdlcigpIHsgfQogfTsKIAorQ3JlZGVudGlh
bE1hbmFnZXImIGNyZWRlbnRpYWxNYW5hZ2VyKCk7CisKIH0gLy8gV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKEJMQUNLQkVSUllfQ1JFREVOVElBTF9QRVJTSVNUKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCAwODRmOTFiOTUwMTlhZmYzNTI1ODkx
Njg1ODUyMmQ4MWJlNTI3MmE5Li42ZTQyOWEzOGQzMmUyODk3NjQzZGQwNzAwNjNiZTg3Y2NlNGJj
Y2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAt
MjgsNiArMjgsOSBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudEJsYWNrQmVycnkuaCIKICNpbmNs
dWRlICJDbGllbnRFeHRlbnNpb24uaCIKICNpbmNsdWRlICJDb29raWVNYW5hZ2VyLmgiCisjaW5j
bHVkZSAiQ3JlZGVudGlhbEJhY2tpbmdTdG9yZS5oIgorI2luY2x1ZGUgIkNyZWRlbnRpYWxNYW5h
Z2VyLmgiCisjaW5jbHVkZSAiQ3JlZGVudGlhbFRyYW5zZm9ybURhdGEuaCIKICNpbmNsdWRlICJE
dW1wUmVuZGVyVHJlZUNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHRC
bGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC01MCw2ICs1Myw3IEBACiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNpbmNsdWRlICJQcm9n
cmVzc1RyYWNrZXIuaCIKKyNpbmNsdWRlICJQcm90ZWN0aW9uU3BhY2UuaCIKICNpbmNsdWRlICJT
Y29wZVBvaW50ZXIuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0
RW5jb2RpbmcuaCIKQEAgLTYwMiw2ICs2MDYsMTEgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEJs
YWNrQmVycnk6OmRpc3BhdGNoRGlkRmluaXNoTG9hZCgpCiAgICAgICAgICAgICAgICAgbV93ZWJQ
YWdlUHJpdmF0ZS0+bV9jbGllbnQtPnNldEFsdGVybmF0ZUZlZWREZXRhaWxzKHRpdGxlLnV0Zjgo
KS5kYXRhKCksIGhyZWYudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIH0KICAgICB9CisKKyNpZiBF
TkFCTEUoQkxBQ0tCRVJSWV9DUkVERU5USUFMX1BFUlNJU1QpCisgICAgaWYgKCFtX3dlYlBhZ2VQ
cml2YXRlLT5tX3dlYlNldHRpbmdzLT5pc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKKyAgICAg
ICAgY3JlZGVudGlhbE1hbmFnZXIoKS5hdXRvZmlsbFBhc3N3b3JkRm9ybXMobV9mcmFtZS0+ZG9j
dW1lbnQoKS0+Zm9ybXMoKSk7CisjZW5kaWYKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEJs
YWNrQmVycnk6OmRpc3BhdGNoRGlkRmluaXNoRG9jdW1lbnRMb2FkKCkKQEAgLTY5NCwxMiArNzAz
LDI3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERpZEZhaWxQ
cm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFCiAgICAgfQogfQogCi12b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShGcmFtZVBvbGljeUZ1
bmN0aW9uIGZ1bmN0aW9uLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4pCit2b2lkIEZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShGcmFtZVBvbGljeUZ1bmN0
aW9uIGZ1bmN0aW9uLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlKQogeworI2lmIEVO
QUJMRShCTEFDS0JFUlJZX0NSRURFTlRJQUxfUEVSU0lTVCkKKyAgICBpZiAoIW1fd2ViUGFnZVBy
aXZhdGUtPm1fd2ViU2V0dGluZ3MtPmlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQorICAgICAg
ICBjcmVkZW50aWFsTWFuYWdlcigpLnNhdmVDcmVkZW50aWFsSWZDb25maXJtZWQobV93ZWJQYWdl
UHJpdmF0ZSwgQ3JlZGVudGlhbFRyYW5zZm9ybURhdGEoZm9ybVN0YXRlLT5mb3JtKCkpKTsKKyNl
bmRpZgorCiAgICAgLy8gRklYTUU6IFN0dWIuCiAgICAgKG1fZnJhbWUtPmxvYWRlcigpLT5wb2xp
Y3lDaGVja2VyKCktPipmdW5jdGlvbikoUG9saWN5VXNlKTsKIH0KIAordm9pZCBGcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudChIVE1MRm9ybUVs
ZW1lbnQqIGZvcm0pCit7CisjaWYgRU5BQkxFKEJMQUNLQkVSUllfQ1JFREVOVElBTF9QRVJTSVNU
KQorICAgIGlmICghbV93ZWJQYWdlUHJpdmF0ZS0+bV93ZWJTZXR0aW5ncy0+aXNQcml2YXRlQnJv
d3NpbmdFbmFibGVkKCkpCisgICAgICAgIGNyZWRlbnRpYWxNYW5hZ2VyKCkuc2F2ZUNyZWRlbnRp
YWxJZkNvbmZpcm1lZChtX3dlYlBhZ2VQcml2YXRlLCBDcmVkZW50aWFsVHJhbnNmb3JtRGF0YShm
b3JtKSk7CisjZWxzZQorICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYKK30KKwogUGFzc1Jl
ZlB0cjxGcmFtZT4gRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpjcmVhdGVGcmFtZShjb25z
dCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmFtZQogICAgICwgSFRNTEZyYW1lT3duZXJFbGVt
ZW50KiBvd25lckVsZW1lbnQsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Ny
b2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQpCiB7CkBAIC0xMTI1LDE3
ICsxMTQ5LDYgQEAgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBGcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnk6OmNyZWF0ZU5ldHdvcmtpbmcKICAgICByZXR1cm4gRnJhbWVOZXR3
b3JraW5nQ29udGV4dEJsYWNrQmVycnk6OmNyZWF0ZShtX2ZyYW1lKTsKIH0KIAotdm9pZCBGcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IFN0
cmluZyYgcmVhbG0sIFN0cmluZyYgdXNlcm5hbWUsIFN0cmluZyYgcGFzc3dvcmQpCi17Ci0gICAg
V2ViU3RyaW5nIHdlYlBhZ2VVc2VybmFtZTsKLSAgICBXZWJTdHJpbmcgd2ViUGFnZVBhc3N3b3Jk
OwotCi0gICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPmF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKHJlYWxtLmNoYXJhY3RlcnMoKSwgcmVhbG0ubGVuZ3RoKCksIHdlYlBhZ2VVc2VybmFtZSwg
d2ViUGFnZVBhc3N3b3JkKTsKLQotICAgIHVzZXJuYW1lID0gd2ViUGFnZVVzZXJuYW1lOwotICAg
IHBhc3N3b3JkID0gd2ViUGFnZVBhc3N3b3JkOwotfQotCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
QmxhY2tCZXJyeTo6c3RhcnREb3dubG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IFN0cmluZyYgLypzdWdnZXN0ZWROYW1lKi8pCiB7CiAgICAgLy8gRklYTUU6IHVzZSB0
aGUgc3VnZ2VzdGVkTmFtZT8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnku
aAppbmRleCBhNmQ3MDFhNGMyYWFjODVkM2JhMmY4NGQ2N2JhMzlhZmJhNmMzY2MyLi5jMTZhY2U5
ZGRlYjZmOGJkMWE2ODNiOWVmZjQ4NmViMWYwYTA2ODJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5
LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50QmxhY2tCZXJyeS5oCkBAIC0xNjQsMTEgKzE2NCwxMCBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkRGV0ZWN0WFNTKGNvbnN0IEtVUkwmLCBib29sKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VJY29ucyhJY29uVHlwZSkgeyBub3RJbXBsZW1l
bnRlZCgpOyB9OwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQo
SFRNTEZvcm1FbGVtZW50KikgeyBub3RJbXBsZW1lbnRlZCgpOyB9OworICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQoSFRNTEZvcm1FbGVtZW50Kik7CiAKICAgICB2
aXJ0dWFsIHZvaWQgd2lsbERlZmVyTG9hZGluZygpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN1
bWVMb2FkaW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNv
bnN0IFN0cmluZyYgcmVhbG0sIFN0cmluZyYgdXNlcm5hbWUsIFN0cmluZyYgcGFzc3dvcmQpOwog
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5l
dHdvcmtpbmdDb250ZXh0KCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>