<?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>91631</bug_id>
          
          <creation_ts>2012-07-18 09:26:26 -0700</creation_ts>
          <short_desc>[Chromium] Call SQLiteFileSystem-related functions directly</short_desc>
          <delta_ts>2012-07-18 15:51:54 -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 Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>82948</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Pilgrim (Google)">pilgrim</reporter>
          <assigned_to name="Mark Pilgrim (Google)">pilgrim</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>haraken</cc>
    
    <cc>jamesr</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>672430</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-07-18 09:26:26 -0700</bug_when>
    <thetext>[Chromium] Call SQLiteFileSystem-related functions directly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672432</commentid>
    <comment_count>1</comment_count>
      <attachid>153028</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-07-18 09:27:46 -0700</bug_when>
    <thetext>Created attachment 153028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672434</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-18 09:29:24 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672444</commentid>
    <comment_count>3</comment_count>
      <attachid>153028</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-18 09:40:37 -0700</bug_when>
    <thetext>Comment on attachment 153028
Patch

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

&gt; Source/Platform/chromium/public/Platform.h:120
&gt; +    virtual FileHandle databaseOpenFile(
&gt; +                                        const WebString&amp; vfsFileName, int desiredFlags) { return FileHandle(); }

I would just merge these lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672588</commentid>
    <comment_count>4</comment_count>
      <attachid>153061</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-07-18 11:45:54 -0700</bug_when>
    <thetext>Created attachment 153061
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672590</commentid>
    <comment_count>5</comment_count>
      <attachid>153061</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-07-18 11:46:17 -0700</bug_when>
    <thetext>Comment on attachment 153061
Patch

Nits addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672719</commentid>
    <comment_count>6</comment_count>
      <attachid>153061</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-18 13:51:45 -0700</bug_when>
    <thetext>Comment on attachment 153061
Patch

Clearing flags on attachment: 153061

Committed r123014: &lt;http://trac.webkit.org/changeset/123014&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672721</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-18 13:51:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672790</commentid>
    <comment_count>8</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-18 14:52:38 -0700</bug_when>
    <thetext>This broke the windows compile:
11&gt;..\platform\sql\chromium\SQLiteFileSystemChromiumWin.cpp(85): error C2660: &apos;WebKit::Platform::databaseDeleteFile&apos; : function does not take 1 arguments

I tried to fix it in http://trac.webkit.org/changeset/123023 .  Please double check the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672802</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-18 15:02:49 -0700</bug_when>
    <thetext>&gt; I tried to fix it in http://trac.webkit.org/changeset/123023 .  Please double check the change.

Thanks for fixing the build!  Yes, that&apos;s the right fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672854</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-18 15:30:31 -0700</bug_when>
    <thetext>Still broken:
http://build.webkit.org/builders/Chromium%20Win%20Release/builds/46439/steps/compile-webkit/logs/stdio
7&gt;e:\google-windows-1\chromium-win-release\build\source\webkit\chromium\public\platform\../../../../Platform/chromium/public/Platform.h(74): error C2146: syntax error : missing &apos;;&apos; before identifier &apos;FileHandle&apos;
7&gt;e:\google-windows-1\chromium-win-release\build\source\webkit\chromium\public\platform\../../../../Platform/chromium/public/Platform.h(74): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

It&apos;s probably complaining that HANDLE isn&apos;t defined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672875</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-18 15:44:48 -0700</bug_when>
    <thetext>&gt; It&apos;s probably complaining that HANDLE isn&apos;t defined.

Maybe we should roll out the patch and try again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672889</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-18 15:51:54 -0700</bug_when>
    <thetext>Landed another build fix in http://trac.webkit.org/changeset/123034.

Please be more careful in the future. In particular, if you&apos;re creating a patch with #if-def for Windows, then please build it on Windows.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153028</attachid>
            <date>2012-07-18 09:27:46 -0700</date>
            <delta_ts>2012-07-18 11:45:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91631-20120718122724.patch</filename>
            <type>text/plain</type>
            <size>15566</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTIyOTc5KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA3LTE4ICBNYXJr
IFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIENh
bGwgU1FMaXRlRmlsZVN5c3RlbS1yZWxhdGVkIGZ1bmN0aW9ucyBkaXJlY3RseQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE2MzEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXJ0IG9mIGEgcmVmYWN0b3Jp
bmcgc2VyaWVzLiBTZWUgdHJhY2tpbmcgYnVnIDgyOTQ4LgorICAgICAgICAKKyAgICAgICAgKiBj
aHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaDoKKyAgICAgICAgKFBsYXRmb3JtKToKKyAgICAgICAg
KFdlYktpdDo6UGxhdGZvcm06OmRhdGFiYXNlT3BlbkZpbGUpOgorICAgICAgICAoV2ViS2l0OjpQ
bGF0Zm9ybTo6ZGF0YWJhc2VEZWxldGVGaWxlKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm06
OmRhdGFiYXNlR2V0RmlsZUF0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6
ZGF0YWJhc2VHZXRGaWxlU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtOjpkYXRhYmFz
ZUdldFNwYWNlQXZhaWxhYmxlRm9yT3JpZ2luKToKKwogMjAxMi0wNy0xMyAgVG9ueSBQYXluZSAg
PHRwYXluZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlIFdpZGdldCBmcm9tIHNjcmVl
bkNvbG9yUHJvZmlsZQpJbmRleDogU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0
Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxh
dGZvcm0uaAkocmV2aXNpb24gMTIyOTc2KQorKysgU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1
YmxpYy9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCwxNCBAQCBzdHJ1Y3Qg
V2ViTG9jYWxpemVkU3RyaW5nOwogCiBjbGFzcyBQbGF0Zm9ybSB7CiBwdWJsaWM6CisgICAgLy8g
SFRNTDUgRGF0YWJhc2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKyNpZmRlZiBXSU4zMgorICAgIHR5cGVkZWYgSEFORExFIEZpbGVIYW5k
bGU7CisjZWxzZQorICAgIHR5cGVkZWYgaW50IEZpbGVIYW5kbGU7CisjZW5kaWYKKwogICAgIFdF
QktJVF9FWFBPUlQgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZShQbGF0Zm9ybSopOwogICAgIFdFQktJ
VF9FWFBPUlQgc3RhdGljIHZvaWQgc2h1dGRvd24oKTsKICAgICBXRUJLSVRfRVhQT1JUIHN0YXRp
YyBQbGF0Zm9ybSogY3VycmVudCgpOwpAQCAtMTA0LDYgKzExMiwyNiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBXZWJCbG9iUmVnaXN0cnkqIGJsb2JSZWdpc3RyeSgpIHsgcmV0dXJuIDA7IH0KIAog
CisgICAgLy8gRGF0YWJhc2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBPcGVucyBhIGRhdGFiYXNlIGZpbGU7IGRp
ckhhbmRsZSBzaG91bGQgYmUgMCBpZiB0aGUgY2FsbGVyIGRvZXMgbm90IG5lZWQKKyAgICAvLyBh
IGhhbmRsZSB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhpcyBmaWxlCisgICAgdmlydHVh
bCBGaWxlSGFuZGxlIGRhdGFiYXNlT3BlbkZpbGUoCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiB2ZnNGaWxlTmFtZSwgaW50IGRlc2lyZWRG
bGFncykgeyByZXR1cm4gRmlsZUhhbmRsZSgpOyB9CisKKyAgICAvLyBEZWxldGVzIGEgZGF0YWJh
c2UgZmlsZSBhbmQgcmV0dXJucyB0aGUgZXJyb3IgY29kZQorICAgIHZpcnR1YWwgaW50IGRhdGFi
YXNlRGVsZXRlRmlsZShjb25zdCBXZWJTdHJpbmcmIHZmc0ZpbGVOYW1lLCBib29sIHN5bmNEaXIp
IHsgcmV0dXJuIDA7IH0KKworICAgIC8vIFJldHVybnMgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGdp
dmVuIGRhdGFiYXNlIGZpbGUKKyAgICB2aXJ0dWFsIGxvbmcgZGF0YWJhc2VHZXRGaWxlQXR0cmli
dXRlcyhjb25zdCBXZWJTdHJpbmcmIHZmc0ZpbGVOYW1lKSB7IHJldHVybiAwOyB9CisKKyAgICAv
LyBSZXR1cm5zIHRoZSBzaXplIG9mIHRoZSBnaXZlbiBkYXRhYmFzZSBmaWxlCisgICAgdmlydHVh
bCBsb25nIGxvbmcgZGF0YWJhc2VHZXRGaWxlU2l6ZShjb25zdCBXZWJTdHJpbmcmIHZmc0ZpbGVO
YW1lKSB7IHJldHVybiAwOyB9CisKKyAgICAvLyBSZXR1cm5zIHRoZSBzcGFjZSBhdmFpbGFibGUg
Zm9yIHRoZSBnaXZlbiBvcmlnaW4KKyAgICB2aXJ0dWFsIGxvbmcgbG9uZyBkYXRhYmFzZUdldFNw
YWNlQXZhaWxhYmxlRm9yT3JpZ2luKGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiBvcmlnaW5JZGVu
dGlmaWVyKSB7IHJldHVybiAwOyB9CisKKwogICAgIC8vIERPTSBTdG9yYWdlIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICAvLyBSZXR1cm4g
YSBMb2NhbFN0b3JhZ2UgbmFtZXNwYWNlIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIGZvbGxvd2lu
ZyBwYXRoLgpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTIyOTc5KQorKysgU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDctMTgg
IE1hcmsgUGlsZ3JpbSAgPHBpbGdyaW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1
bV0gQ2FsbCBTUUxpdGVGaWxlU3lzdGVtLXJlbGF0ZWQgZnVuY3Rpb25zIGRpcmVjdGx5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTYzMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhcnQgb2YgYSByZWZh
Y3RvcmluZyBzZXJpZXMuIFNlZSB0cmFja2luZyBidWcgODI5NDguCisKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmRhdGFiYXNlL2Nocm9taXVtL1F1b3RhVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpRdW90YVRyYWNrZXI6OmdldERhdGFiYXNlU2l6ZUFuZFNwYWNlQXZhaWxhYmxlVG9Pcmln
aW4pOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oOgorICAg
ICAgICAoUGxhdGZvcm1TdXBwb3J0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvY2hyb21pdW0v
U1FMaXRlRmlsZVN5c3RlbUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZUZp
bGVTeXN0ZW06OmRlbGV0ZURhdGFiYXNlRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVG
aWxlU3lzdGVtOjpnZXREYXRhYmFzZUZpbGVTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwv
Y2hyb21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtUG9zaXguY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL3NxbC9jaHJvbWl1bS9TUUxpdGVGaWxlU3lzdGVtQ2hyb21pdW1XaW4uY3BwOgorCiAy
MDEyLTA3LTE4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFtSZWdyZXNzaW9uXSBTYXZlIGFzIGZpbGUgaXMgbWlzc2luZyBp
biBOZXR3b3JrIHBhbmVsIHByZXZpZXcvcmVzcG9uc2UgdGFicy4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvY2hyb21pdW0vUXVvdGFUcmFja2VyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL2Nocm9taXVtL1F1b3Rh
VHJhY2tlci5jcHAJKHJldmlzaW9uIDEyMjk3NikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvY2hyb21pdW0vUXVvdGFUcmFja2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsMTAgKzMwLDEwIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJRdW90YVRy
YWNrZXIuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKIAogI2lmIEVOQUJMRShTUUxf
REFUQUJBU0UpCiAKKyNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDcgKzQ4LDcgQEAg
dm9pZCBRdW90YVRyYWNrZXI6OmdldERhdGFiYXNlU2l6ZUFuZFNwYQogICAgIGNvbnN0IFN0cmlu
ZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsCiAgICAgdW5z
aWduZWQgbG9uZyBsb25nKiBkYXRhYmFzZVNpemUsIHVuc2lnbmVkIGxvbmcgbG9uZyogc3BhY2VB
dmFpbGFibGUpCiB7Ci0gICAgLy8gRXh0cmEgc2NvcGUgdG8gdW5sb2NrIHByaW9yIHRvIHBvdGVu
dGlhbGx5IGNhbGxpbmcgUGxhdGZvcm1TdXBwb3J0LgorICAgIC8vIEV4dHJhIHNjb3BlIHRvIHVu
bG9jayBwcmlvciB0byBwb3RlbnRpYWxseSBjYWxsaW5nIFdlYktpdDo6UGxhdGZvcm0uCiAgICAg
ewogICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YShtX2RhdGFHdWFyZCk7CiAgICAgICAgIEFT
U0VSVChtX2RhdGFiYXNlU2l6ZXMuY29udGFpbnMob3JpZ2luSWRlbnRpZmllcikpOwpAQCAtNjMs
NyArNjMsNyBAQCB2b2lkIFF1b3RhVHJhY2tlcjo6Z2V0RGF0YWJhc2VTaXplQW5kU3BhCiAgICAg
fQogCiAgICAgLy8gVGhlIGVtYmVkZGVyIGhhc24ndCBwdXNoZWQgdGhpcyB2YWx1ZSB0byB1cywg
c28gd2UgcHVsbCBpdCBhcyBuZWVkZWQuCi0gICAgKnNwYWNlQXZhaWxhYmxlID0gUGxhdGZvcm1T
dXBwb3J0OjpkYXRhYmFzZUdldFNwYWNlQXZhaWxhYmxlRm9yT3JpZ2luKG9yaWdpbklkZW50aWZp
ZXIpOworICAgICpzcGFjZUF2YWlsYWJsZSA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+
ZGF0YWJhc2VHZXRTcGFjZUF2YWlsYWJsZUZvck9yaWdpbihvcmlnaW5JZGVudGlmaWVyKTsKIH0K
IAogdm9pZCBRdW90YVRyYWNrZXI6OnVwZGF0ZURhdGFiYXNlU2l6ZSgKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCShyZXZp
c2lvbiAxMjI5NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9y
bVN1cHBvcnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDE4ICsxMTcsNiBAQCBwdWJsaWM6CiAg
ICAgLy8gRm9ybXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KICAgICBzdGF0aWMgdm9pZCBub3RpZnlGb3JtU3RhdGVDaGFuZ2Vk
KGNvbnN0IERvY3VtZW50Kik7CiAKLSAgICAvLyBEYXRhYmFzZXMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIC8vIFJldHVybnMg
YSBoYW5kbGUgdG8gdGhlIERCIGZpbGUgYW5kIG9vcHRpb25hbGx5IGEgaGFuZGxlIHRvIGl0cyBj
b250YWluaW5nIGRpcmVjdG9yeQotICAgIHN0YXRpYyBQbGF0Zm9ybUZpbGVIYW5kbGUgZGF0YWJh
c2VPcGVuRmlsZShjb25zdCBTdHJpbmcmIHZmc0ZsZU5hbWUsIGludCBkZXNpcmVkRmxhZ3MpOwot
ICAgIC8vIFJldHVybnMgYSBTUUxpdGUgY29kZSAoU1FMSVRFX09LID0gMCwgb24gc3VjY2VzcykK
LSAgICBzdGF0aWMgaW50IGRhdGFiYXNlRGVsZXRlRmlsZShjb25zdCBTdHJpbmcmIHZmc0ZpbGVO
YW1lLCBib29sIHN5bmNEaXIgPSBmYWxzZSk7Ci0gICAgLy8gUmV0dXJucyB0aGUgYXR0cmlidXRl
cyBvZiB0aGUgREIgZmlsZQotICAgIHN0YXRpYyBsb25nIGRhdGFiYXNlR2V0RmlsZUF0dHJpYnV0
ZXMoY29uc3QgU3RyaW5nJiB2ZnNGaWxlTmFtZSk7Ci0gICAgLy8gUmV0dXJucyB0aGUgc2l6ZSBv
ZiB0aGUgREIgZmlsZQotICAgIHN0YXRpYyBsb25nIGxvbmcgZGF0YWJhc2VHZXRGaWxlU2l6ZShj
b25zdCBTdHJpbmcmIHZmc0ZpbGVOYW1lKTsKLSAgICAvLyBSZXR1cm5zIHRoZSBzcGFjZSBhdmFp
bGFibGUgZm9yIHRoZSBvcmlnaW4KLSAgICBzdGF0aWMgbG9uZyBsb25nIGRhdGFiYXNlR2V0U3Bh
Y2VBdmFpbGFibGVGb3JPcmlnaW4oY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKTsKLQog
ICAgIC8vIEluZGV4ZWREQiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCRmFjdG9yeUJhY2tl
bmRJbnRlcmZhY2U+IGlkYkZhY3RvcnkoKTsKICAgICAvLyBFeHRyYWN0cyBrZXlQYXRoIGZyb20g
dmFsdWVzIGFuZCByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIGtleXMuCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FM
aXRlRmlsZVN5c3RlbUNocm9taXVtLmNwcAkocmV2aXNpb24gMTIyOTc2KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3FsL2Nocm9taXVtL1NRTGl0ZUZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJTUUxpdGVGaWxlU3lzdGVtLmgiCiAKLSNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQu
aCIKICNpbmNsdWRlICJTUUxpdGVEYXRhYmFzZS5oIgorI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9y
bS5oPgogI2luY2x1ZGUgPHNxbGl0ZTMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKQEAgLTkyLDEyICs5MiwxMiBAQCBib29sIFNRTGl0ZUZpbGVTeXN0ZW06OmRlbGV0ZUVtcHR5
RGF0YWJhCiAKIGJvb2wgU1FMaXRlRmlsZVN5c3RlbTo6ZGVsZXRlRGF0YWJhc2VGaWxlKGNvbnN0
IFN0cmluZyYgZmlsZU5hbWUpCiB7Ci0gICAgcmV0dXJuIChQbGF0Zm9ybVN1cHBvcnQ6OmRhdGFi
YXNlRGVsZXRlRmlsZShmaWxlTmFtZSkgPT0gU1FMSVRFX09LKTsKKyAgICByZXR1cm4gKFdlYktp
dDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+ZGF0YWJhc2VEZWxldGVGaWxlKGZpbGVOYW1lLCBmYWxz
ZSkgPT0gU1FMSVRFX09LKTsKIH0KIAogbG9uZyBsb25nIFNRTGl0ZUZpbGVTeXN0ZW06OmdldERh
dGFiYXNlRmlsZVNpemUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSkKIHsKLSAgICByZXR1cm4gUGxh
dGZvcm1TdXBwb3J0OjpkYXRhYmFzZUdldEZpbGVTaXplKGZpbGVOYW1lKTsKKyAgICByZXR1cm4g
V2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5kYXRhYmFzZUdldEZpbGVTaXplKGZpbGVOYW1l
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3FsL2Nocm9taXVtL1NRTGl0ZUZpbGVTeXN0ZW1DaHJvbWl1bVBvc2l4LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRlRmls
ZVN5c3RlbUNocm9taXVtUG9zaXguY3BwCShyZXZpc2lvbiAxMjI5NzYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtUG9zaXgu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiU1FMaXRlRmlsZVN5c3RlbS5oIgogCi0jaW5jbHVkZSAiUGxhdGZvcm1TdXBw
b3J0LmgiCisjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8c3FsaXRlMy5o
PgogCiAjaW5jbHVkZSA8ZmNudGwuaD4KQEAgLTY5LDEwICs2OSwxMCBAQCBpbnQgY2hyb21pdW1P
cGVuKHNxbGl0ZTNfdmZzKiB2ZnMsIGNvbnN0CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKICAg
ICBpZiAoZmQgPCAwKSB7Ci0gICAgICAgIGZkID0gUGxhdGZvcm1TdXBwb3J0OjpkYXRhYmFzZU9w
ZW5GaWxlKGZpbGVOYW1lLCBkZXNpcmVkRmxhZ3MpOworICAgICAgICBmZCA9IFdlYktpdDo6UGxh
dGZvcm06OmN1cnJlbnQoKS0+ZGF0YWJhc2VPcGVuRmlsZShTdHJpbmcoZmlsZU5hbWUpLCBkZXNp
cmVkRmxhZ3MpOwogICAgICAgICBpZiAoKGZkIDwgMCkgJiYgKGRlc2lyZWRGbGFncyAmIFNRTElU
RV9PUEVOX1JFQURXUklURSkpIHsKICAgICAgICAgICAgIGludCBuZXdGbGFncyA9IChkZXNpcmVk
RmxhZ3MgJiB+KFNRTElURV9PUEVOX1JFQURXUklURSB8IFNRTElURV9PUEVOX0NSRUFURSkpIHwg
U1FMSVRFX09QRU5fUkVBRE9OTFk7Ci0gICAgICAgICAgICBmZCA9IFBsYXRmb3JtU3VwcG9ydDo6
ZGF0YWJhc2VPcGVuRmlsZShmaWxlTmFtZSwgbmV3RmxhZ3MpOworICAgICAgICAgICAgZmQgPSBX
ZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmRhdGFiYXNlT3BlbkZpbGUoU3RyaW5nKGZpbGVO
YW1lKSwgbmV3RmxhZ3MpOwogICAgICAgICB9CiAgICAgfQogICAgIGlmIChmZCA8IDApIHsKQEAg
LTEwMyw3ICsxMDMsNyBAQCBpbnQgY2hyb21pdW1PcGVuKHNxbGl0ZTNfdmZzKiB2ZnMsIGNvbnN0
CiAvLyAgICAgICAgICAgc2hvdWxkIGJlIHN5bmNoZWQgYWZ0ZXIgdGhlIGZpbGUgaXMgZGVsZXRl
ZC4KIGludCBjaHJvbWl1bURlbGV0ZShzcWxpdGUzX3ZmcyosIGNvbnN0IGNoYXIqIGZpbGVOYW1l
LCBpbnQgc3luY0RpcikKIHsKLSAgICByZXR1cm4gUGxhdGZvcm1TdXBwb3J0OjpkYXRhYmFzZURl
bGV0ZUZpbGUoZmlsZU5hbWUsIHN5bmNEaXIpOworICAgIHJldHVybiBXZWJLaXQ6OlBsYXRmb3Jt
OjpjdXJyZW50KCktPmRhdGFiYXNlRGVsZXRlRmlsZShTdHJpbmcoZmlsZU5hbWUpLCBzeW5jRGly
KTsKIH0KIAogLy8gQ2hlY2sgdGhlIGV4aXN0YW5jZSBhbmQgc3RhdHVzIG9mIHRoZSBnaXZlbiBm
aWxlLgpAQCAtMTE0LDcgKzExNCw3IEBAIGludCBjaHJvbWl1bURlbGV0ZShzcWxpdGUzX3Zmcyos
IGNvbnN0IGMKIC8vIHJlcyAtIHRoZSByZXN1bHQuCiBpbnQgY2hyb21pdW1BY2Nlc3Moc3FsaXRl
M192ZnMqLCBjb25zdCBjaGFyKiBmaWxlTmFtZSwgaW50IGZsYWcsIGludCogcmVzKQogewotICAg
IGludCBhdHRyID0gc3RhdGljX2Nhc3Q8aW50PihQbGF0Zm9ybVN1cHBvcnQ6OmRhdGFiYXNlR2V0
RmlsZUF0dHJpYnV0ZXMoZmlsZU5hbWUpKTsKKyAgICBpbnQgYXR0ciA9IHN0YXRpY19jYXN0PGlu
dD4oV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5kYXRhYmFzZUdldEZpbGVBdHRyaWJ1dGVz
KFN0cmluZyhmaWxlTmFtZSkpKTsKICAgICBpZiAoYXR0ciA8IDApIHsKICAgICAgICAgKnJlcyA9
IDA7CiAgICAgICAgIHJldHVybiBTUUxJVEVfT0s7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtV2luLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5
c3RlbUNocm9taXVtV2luLmNwcAkocmV2aXNpb24gMTIyOTc2KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3FsL2Nocm9taXVtL1NRTGl0ZUZpbGVTeXN0ZW1DaHJvbWl1bVdpbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJTUUxpdGVGaWxlU3lzdGVtLmgiCiAKLSNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIK
KyNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KICNpbmNsdWRlIDxzcWxpdGUzLmg+CiAjaW5j
bHVkZSA8d2luZG93cy5oPgogCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSB7CiBpbnQgY2hy
b21pdW1PcGVuKHNxbGl0ZTNfdmZzKiwgY29uc3QgY2hhciogZmlsZU5hbWUsCiAgICAgICAgICAg
ICAgICAgIHNxbGl0ZTNfZmlsZSogaWQsIGludCBkZXNpcmVkRmxhZ3MsIGludCogdXNlZEZsYWdz
KQogewotICAgIEhBTkRMRSBoID0gUGxhdGZvcm1TdXBwb3J0OjpkYXRhYmFzZU9wZW5GaWxlKGZp
bGVOYW1lLCBkZXNpcmVkRmxhZ3MpOworICAgIEhBTkRMRSBoID0gV2ViS2l0OjpQbGF0Zm9ybTo6
Y3VycmVudCgpLT5kYXRhYmFzZU9wZW5GaWxlKFN0cmluZyhmaWxlTmFtZSksIGRlc2lyZWRGbGFn
cyk7CiAgICAgaWYgKGggPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpIHsKICAgICAgICAgaWYgKGRl
c2lyZWRGbGFncyAmIFNRTElURV9PUEVOX1JFQURXUklURSkgewogICAgICAgICAgICAgaW50IG5l
d0ZsYWdzID0gKGRlc2lyZWRGbGFncyB8IFNRTElURV9PUEVOX1JFQURPTkxZKSAmIH5TUUxJVEVf
T1BFTl9SRUFEV1JJVEU7CkBAIC04Miw3ICs4Miw3IEBAIGludCBjaHJvbWl1bU9wZW4oc3FsaXRl
M192ZnMqLCBjb25zdCBjaGEKIC8vICAgICAgICAgICBzaG91bGQgYmUgc3luY2hlZCBhZnRlciB0
aGUgZmlsZSBpcyBkZWxldGVkLgogaW50IGNocm9taXVtRGVsZXRlKHNxbGl0ZTNfdmZzKiwgY29u
c3QgY2hhciogZmlsZU5hbWUsIGludCkKIHsKLSAgICByZXR1cm4gUGxhdGZvcm1TdXBwb3J0Ojpk
YXRhYmFzZURlbGV0ZUZpbGUoZmlsZU5hbWUpOworICAgIHJldHVybiBXZWJLaXQ6OlBsYXRmb3Jt
OjpjdXJyZW50KCktPmRhdGFiYXNlRGVsZXRlRmlsZShTdHJpbmcoZmlsZU5hbWUpKTsKIH0KIAog
Ly8gQ2hlY2sgdGhlIGV4aXN0YW5jZSBhbmQgc3RhdHVzIG9mIHRoZSBnaXZlbiBmaWxlLgpAQCAt
OTMsNyArOTMsNyBAQCBpbnQgY2hyb21pdW1EZWxldGUoc3FsaXRlM192ZnMqLCBjb25zdCBjCiAv
LyByZXMgLSB0aGUgcmVzdWx0LgogaW50IGNocm9taXVtQWNjZXNzKHNxbGl0ZTNfdmZzKiwgY29u
c3QgY2hhciogZmlsZU5hbWUsIGludCBmbGFnLCBpbnQqIHJlcykKIHsKLSAgICBEV09SRCBhdHRy
ID0gUGxhdGZvcm1TdXBwb3J0OjpkYXRhYmFzZUdldEZpbGVBdHRyaWJ1dGVzKGZpbGVOYW1lKTsK
KyAgICBEV09SRCBhdHRyID0gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5kYXRhYmFzZUdl
dEZpbGVBdHRyaWJ1dGVzKFN0cmluZyhmaWxlTmFtZSkpOwogICAgIHN3aXRjaCAoZmxhZykgewog
ICAgIGNhc2UgU1FMSVRFX0FDQ0VTU19SRUFEOgogICAgIGNhc2UgU1FMSVRFX0FDQ0VTU19FWElT
VFM6CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTIyOTc5KQorKysg
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMi0wNy0xOCAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgW0Nocm9taXVtXSBDYWxsIFNRTGl0ZUZpbGVTeXN0ZW0tcmVsYXRlZCBmdW5j
dGlvbnMgZGlyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTkxNjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUGFydCBvZiBhIHJlZmFjdG9yaW5nIHNlcmllcy4gU2VlIHRyYWNraW5nIGJ1ZyA4Mjk0
OC4KKworICAgICAgICAqIHB1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaDoK
KyAgICAgICAgKFdlYktpdFBsYXRmb3JtU3VwcG9ydCk6CisgICAgICAgICogc3JjL1BsYXRmb3Jt
U3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wNy0xOCAgWW9zaGlmdW1p
IElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIERlY2ltYWw6OnRvU3RyaW5n
IHNob3VsZCBub3Qgcm91bmQgaW50ZWdlciB2YWx1ZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3Jt
U3VwcG9ydC5oCShyZXZpc2lvbiAxMjI5NzYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaAkod29ya2luZyBjb3B5KQpAQCAt
NTcsMzEgKzU3LDYgQEAgY2xhc3MgV2ViU2hhcmVkV29ya2VyUmVwb3NpdG9yeTsgLy8gRklYTQog
Ly8gRklYTUU6IEV2ZW50dWFsbHkgYWxsIHRoZXNlIEFQSSB3aWxsIG5lZWQgdG8gbW92ZSB0byBX
ZWJLaXQ6OlBsYXRmb3JtLgogY2xhc3MgV2ViS2l0UGxhdGZvcm1TdXBwb3J0IDogcHVibGljIFBs
YXRmb3JtIHsKIHB1YmxpYzoKLSAgICAvLyBIVE1MNSBEYXRhYmFzZSAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotI2lmZGVmIFdJTjMyCi0g
ICAgdHlwZWRlZiBIQU5ETEUgRmlsZUhhbmRsZTsKLSNlbHNlCi0gICAgdHlwZWRlZiBpbnQgRmls
ZUhhbmRsZTsKLSNlbmRpZgotCi0gICAgLy8gT3BlbnMgYSBkYXRhYmFzZSBmaWxlOyBkaXJIYW5k
bGUgc2hvdWxkIGJlIDAgaWYgdGhlIGNhbGxlciBkb2VzIG5vdCBuZWVkCi0gICAgLy8gYSBoYW5k
bGUgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoaXMgZmlsZQotICAgIHZpcnR1YWwgRmls
ZUhhbmRsZSBkYXRhYmFzZU9wZW5GaWxlKAotICAgICAgICBjb25zdCBXZWJTdHJpbmcmIHZmc0Zp
bGVOYW1lLCBpbnQgZGVzaXJlZEZsYWdzKSB7IHJldHVybiBGaWxlSGFuZGxlKCk7IH0KLQotICAg
IC8vIERlbGV0ZXMgYSBkYXRhYmFzZSBmaWxlIGFuZCByZXR1cm5zIHRoZSBlcnJvciBjb2RlCi0g
ICAgdmlydHVhbCBpbnQgZGF0YWJhc2VEZWxldGVGaWxlKGNvbnN0IFdlYlN0cmluZyYgdmZzRmls
ZU5hbWUsIGJvb2wgc3luY0RpcikgeyByZXR1cm4gMDsgfQotCi0gICAgLy8gUmV0dXJucyB0aGUg
YXR0cmlidXRlcyBvZiB0aGUgZ2l2ZW4gZGF0YWJhc2UgZmlsZQotICAgIHZpcnR1YWwgbG9uZyBk
YXRhYmFzZUdldEZpbGVBdHRyaWJ1dGVzKGNvbnN0IFdlYlN0cmluZyYgdmZzRmlsZU5hbWUpIHsg
cmV0dXJuIDA7IH0KLQotICAgIC8vIFJldHVybnMgdGhlIHNpemUgb2YgdGhlIGdpdmVuIGRhdGFi
YXNlIGZpbGUKLSAgICB2aXJ0dWFsIGxvbmcgbG9uZyBkYXRhYmFzZUdldEZpbGVTaXplKGNvbnN0
IFdlYlN0cmluZyYgdmZzRmlsZU5hbWUpIHsgcmV0dXJuIDA7IH0KLQotICAgIC8vIFJldHVybnMg
dGhlIHNwYWNlIGF2YWlsYWJsZSBmb3IgdGhlIGdpdmVuIG9yaWdpbgotICAgIHZpcnR1YWwgbG9u
ZyBsb25nIGRhdGFiYXNlR2V0U3BhY2VBdmFpbGFibGVGb3JPcmlnaW4oY29uc3QgV2ViS2l0OjpX
ZWJTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpIHsgcmV0dXJuIDA7IH0KLQogICAgIC8vIEluZGV4
ZWQgRGF0YWJhc2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCiAgICAgdmlydHVhbCBXZWJJREJGYWN0b3J5KiBpZGJGYWN0b3J5KCkgeyByZXR1
cm4gMDsgfQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1
cHBvcnQuY3BwCShyZXZpc2lvbiAxMjI5NzYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9QbGF0Zm9ybVN1cHBvcnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzYsMzMgKzI3Niw2IEBA
IHZvaWQgUGxhdGZvcm1TdXBwb3J0OjpnZXRSZW5kZXJTdHlsZUZvclMKIH0KICNlbmRpZgogCi0v
LyBEYXRhYmFzZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVBsYXRmb3JtRmlsZUhhbmRsZSBQbGF0Zm9ybVN1cHBv
cnQ6OmRhdGFiYXNlT3BlbkZpbGUoY29uc3QgU3RyaW5nJiB2ZnNGaWxlTmFtZSwgaW50IGRlc2ly
ZWRGbGFncykKLXsKLSAgICByZXR1cm4gd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmRhdGFiYXNl
T3BlbkZpbGUoV2ViU3RyaW5nKHZmc0ZpbGVOYW1lKSwgZGVzaXJlZEZsYWdzKTsKLX0KLQotaW50
IFBsYXRmb3JtU3VwcG9ydDo6ZGF0YWJhc2VEZWxldGVGaWxlKGNvbnN0IFN0cmluZyYgdmZzRmls
ZU5hbWUsIGJvb2wgc3luY0RpcikKLXsKLSAgICByZXR1cm4gd2ViS2l0UGxhdGZvcm1TdXBwb3J0
KCktPmRhdGFiYXNlRGVsZXRlRmlsZShXZWJTdHJpbmcodmZzRmlsZU5hbWUpLCBzeW5jRGlyKTsK
LX0KLQotbG9uZyBQbGF0Zm9ybVN1cHBvcnQ6OmRhdGFiYXNlR2V0RmlsZUF0dHJpYnV0ZXMoY29u
c3QgU3RyaW5nJiB2ZnNGaWxlTmFtZSkKLXsKLSAgICByZXR1cm4gd2ViS2l0UGxhdGZvcm1TdXBw
b3J0KCktPmRhdGFiYXNlR2V0RmlsZUF0dHJpYnV0ZXMoV2ViU3RyaW5nKHZmc0ZpbGVOYW1lKSk7
Ci19Ci0KLWxvbmcgbG9uZyBQbGF0Zm9ybVN1cHBvcnQ6OmRhdGFiYXNlR2V0RmlsZVNpemUoY29u
c3QgU3RyaW5nJiB2ZnNGaWxlTmFtZSkKLXsKLSAgICByZXR1cm4gd2ViS2l0UGxhdGZvcm1TdXBw
b3J0KCktPmRhdGFiYXNlR2V0RmlsZVNpemUoV2ViU3RyaW5nKHZmc0ZpbGVOYW1lKSk7Ci19Ci0K
LWxvbmcgbG9uZyBQbGF0Zm9ybVN1cHBvcnQ6OmRhdGFiYXNlR2V0U3BhY2VBdmFpbGFibGVGb3JP
cmlnaW4oY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKQotewotICAgIHJldHVybiB3ZWJL
aXRQbGF0Zm9ybVN1cHBvcnQoKS0+ZGF0YWJhc2VHZXRTcGFjZUF2YWlsYWJsZUZvck9yaWdpbihv
cmlnaW5JZGVudGlmaWVyKTsKLX0KLQogLy8gSW5kZXhlZCBEYXRhYmFzZSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBQYXNzUmVm
UHRyPElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlPiBQbGF0Zm9ybVN1cHBvcnQ6OmlkYkZhY3Rv
cnkoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153061</attachid>
            <date>2012-07-18 11:45:54 -0700</date>
            <delta_ts>2012-07-18 13:51:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91631-20120718144531.patch</filename>
            <type>text/plain</type>
            <size>15524</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTIyOTc5KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA3LTE4ICBNYXJr
IFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIENh
bGwgU1FMaXRlRmlsZVN5c3RlbS1yZWxhdGVkIGZ1bmN0aW9ucyBkaXJlY3RseQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE2MzEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXJ0IG9mIGEgcmVmYWN0b3Jp
bmcgc2VyaWVzLiBTZWUgdHJhY2tpbmcgYnVnIDgyOTQ4LgorICAgICAgICAKKyAgICAgICAgKiBj
aHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaDoKKyAgICAgICAgKFBsYXRmb3JtKToKKyAgICAgICAg
KFdlYktpdDo6UGxhdGZvcm06OmRhdGFiYXNlT3BlbkZpbGUpOgorICAgICAgICAoV2ViS2l0OjpQ
bGF0Zm9ybTo6ZGF0YWJhc2VEZWxldGVGaWxlKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm06
OmRhdGFiYXNlR2V0RmlsZUF0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6
ZGF0YWJhc2VHZXRGaWxlU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtOjpkYXRhYmFz
ZUdldFNwYWNlQXZhaWxhYmxlRm9yT3JpZ2luKToKKwogMjAxMi0wNy0xMyAgVG9ueSBQYXluZSAg
PHRwYXluZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlIFdpZGdldCBmcm9tIHNjcmVl
bkNvbG9yUHJvZmlsZQpJbmRleDogU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0
Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxh
dGZvcm0uaAkocmV2aXNpb24gMTIyOTc2KQorKysgU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1
YmxpYy9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCwxNCBAQCBzdHJ1Y3Qg
V2ViTG9jYWxpemVkU3RyaW5nOwogCiBjbGFzcyBQbGF0Zm9ybSB7CiBwdWJsaWM6CisgICAgLy8g
SFRNTDUgRGF0YWJhc2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKyNpZmRlZiBXSU4zMgorICAgIHR5cGVkZWYgSEFORExFIEZpbGVIYW5k
bGU7CisjZWxzZQorICAgIHR5cGVkZWYgaW50IEZpbGVIYW5kbGU7CisjZW5kaWYKKwogICAgIFdF
QktJVF9FWFBPUlQgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZShQbGF0Zm9ybSopOwogICAgIFdFQktJ
VF9FWFBPUlQgc3RhdGljIHZvaWQgc2h1dGRvd24oKTsKICAgICBXRUJLSVRfRVhQT1JUIHN0YXRp
YyBQbGF0Zm9ybSogY3VycmVudCgpOwpAQCAtMTA0LDYgKzExMiwyNSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBXZWJCbG9iUmVnaXN0cnkqIGJsb2JSZWdpc3RyeSgpIHsgcmV0dXJuIDA7IH0KIAog
CisgICAgLy8gRGF0YWJhc2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBPcGVucyBhIGRhdGFiYXNlIGZpbGU7IGRp
ckhhbmRsZSBzaG91bGQgYmUgMCBpZiB0aGUgY2FsbGVyIGRvZXMgbm90IG5lZWQKKyAgICAvLyBh
IGhhbmRsZSB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhpcyBmaWxlCisgICAgdmlydHVh
bCBGaWxlSGFuZGxlIGRhdGFiYXNlT3BlbkZpbGUoY29uc3QgV2ViU3RyaW5nJiB2ZnNGaWxlTmFt
ZSwgaW50IGRlc2lyZWRGbGFncykgeyByZXR1cm4gRmlsZUhhbmRsZSgpOyB9CisKKyAgICAvLyBE
ZWxldGVzIGEgZGF0YWJhc2UgZmlsZSBhbmQgcmV0dXJucyB0aGUgZXJyb3IgY29kZQorICAgIHZp
cnR1YWwgaW50IGRhdGFiYXNlRGVsZXRlRmlsZShjb25zdCBXZWJTdHJpbmcmIHZmc0ZpbGVOYW1l
LCBib29sIHN5bmNEaXIpIHsgcmV0dXJuIDA7IH0KKworICAgIC8vIFJldHVybnMgdGhlIGF0dHJp
YnV0ZXMgb2YgdGhlIGdpdmVuIGRhdGFiYXNlIGZpbGUKKyAgICB2aXJ0dWFsIGxvbmcgZGF0YWJh
c2VHZXRGaWxlQXR0cmlidXRlcyhjb25zdCBXZWJTdHJpbmcmIHZmc0ZpbGVOYW1lKSB7IHJldHVy
biAwOyB9CisKKyAgICAvLyBSZXR1cm5zIHRoZSBzaXplIG9mIHRoZSBnaXZlbiBkYXRhYmFzZSBm
aWxlCisgICAgdmlydHVhbCBsb25nIGxvbmcgZGF0YWJhc2VHZXRGaWxlU2l6ZShjb25zdCBXZWJT
dHJpbmcmIHZmc0ZpbGVOYW1lKSB7IHJldHVybiAwOyB9CisKKyAgICAvLyBSZXR1cm5zIHRoZSBz
cGFjZSBhdmFpbGFibGUgZm9yIHRoZSBnaXZlbiBvcmlnaW4KKyAgICB2aXJ0dWFsIGxvbmcgbG9u
ZyBkYXRhYmFzZUdldFNwYWNlQXZhaWxhYmxlRm9yT3JpZ2luKGNvbnN0IFdlYktpdDo6V2ViU3Ry
aW5nJiBvcmlnaW5JZGVudGlmaWVyKSB7IHJldHVybiAwOyB9CisKKwogICAgIC8vIERPTSBTdG9y
YWdlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
ICAgICAvLyBSZXR1cm4gYSBMb2NhbFN0b3JhZ2UgbmFtZXNwYWNlIHRoYXQgY29ycmVzcG9uZHMg
dG8gdGhlIGZvbGxvd2luZyBwYXRoLgpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTIyOTc5KQor
KysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDctMTggIE1hcmsgUGlsZ3JpbSAgPHBpbGdyaW1AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFtDaHJvbWl1bV0gQ2FsbCBTUUxpdGVGaWxlU3lzdGVtLXJlbGF0ZWQgZnVuY3Rpb25z
IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05MTYzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFBhcnQgb2YgYSByZWZhY3RvcmluZyBzZXJpZXMuIFNlZSB0cmFja2luZyBidWcgODI5NDguCisK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL2Nocm9taXVtL1F1b3RhVHJhY2tlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpRdW90YVRyYWNrZXI6OmdldERhdGFiYXNlU2l6ZUFuZFNwYWNl
QXZhaWxhYmxlVG9PcmlnaW4pOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3Jt
U3VwcG9ydC5oOgorICAgICAgICAoUGxhdGZvcm1TdXBwb3J0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNRTGl0ZUZpbGVTeXN0ZW06OmRlbGV0ZURhdGFiYXNlRmlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTUUxpdGVGaWxlU3lzdGVtOjpnZXREYXRhYmFzZUZpbGVTaXplKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtUG9zaXguY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9jaHJvbWl1bS9TUUxpdGVGaWxlU3lzdGVtQ2hyb21p
dW1XaW4uY3BwOgorCiAyMDEyLTA3LTE4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtSZWdyZXNzaW9uXSBTYXZlIGFzIGZp
bGUgaXMgbWlzc2luZyBpbiBOZXR3b3JrIHBhbmVsIHByZXZpZXcvcmVzcG9uc2UgdGFicy4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvY2hyb21pdW0vUXVvdGFUcmFj
a2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L2Nocm9taXVtL1F1b3RhVHJhY2tlci5jcHAJKHJldmlzaW9uIDEyMjk3NikKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvY2hyb21pdW0vUXVvdGFUcmFja2VyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzAsMTAgKzMwLDEwIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJRdW90YVRyYWNrZXIuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKIAog
I2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAKKyNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4K
ICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQ4LDcgKzQ4LDcgQEAgdm9pZCBRdW90YVRyYWNrZXI6OmdldERhdGFiYXNlU2l6ZUFuZFNwYQog
ICAgIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFz
ZU5hbWUsCiAgICAgdW5zaWduZWQgbG9uZyBsb25nKiBkYXRhYmFzZVNpemUsIHVuc2lnbmVkIGxv
bmcgbG9uZyogc3BhY2VBdmFpbGFibGUpCiB7Ci0gICAgLy8gRXh0cmEgc2NvcGUgdG8gdW5sb2Nr
IHByaW9yIHRvIHBvdGVudGlhbGx5IGNhbGxpbmcgUGxhdGZvcm1TdXBwb3J0LgorICAgIC8vIEV4
dHJhIHNjb3BlIHRvIHVubG9jayBwcmlvciB0byBwb3RlbnRpYWxseSBjYWxsaW5nIFdlYktpdDo6
UGxhdGZvcm0uCiAgICAgewogICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YShtX2RhdGFHdWFy
ZCk7CiAgICAgICAgIEFTU0VSVChtX2RhdGFiYXNlU2l6ZXMuY29udGFpbnMob3JpZ2luSWRlbnRp
ZmllcikpOwpAQCAtNjMsNyArNjMsNyBAQCB2b2lkIFF1b3RhVHJhY2tlcjo6Z2V0RGF0YWJhc2VT
aXplQW5kU3BhCiAgICAgfQogCiAgICAgLy8gVGhlIGVtYmVkZGVyIGhhc24ndCBwdXNoZWQgdGhp
cyB2YWx1ZSB0byB1cywgc28gd2UgcHVsbCBpdCBhcyBuZWVkZWQuCi0gICAgKnNwYWNlQXZhaWxh
YmxlID0gUGxhdGZvcm1TdXBwb3J0OjpkYXRhYmFzZUdldFNwYWNlQXZhaWxhYmxlRm9yT3JpZ2lu
KG9yaWdpbklkZW50aWZpZXIpOworICAgICpzcGFjZUF2YWlsYWJsZSA9IFdlYktpdDo6UGxhdGZv
cm06OmN1cnJlbnQoKS0+ZGF0YWJhc2VHZXRTcGFjZUF2YWlsYWJsZUZvck9yaWdpbihvcmlnaW5J
ZGVudGlmaWVyKTsKIH0KIAogdm9pZCBRdW90YVRyYWNrZXI6OnVwZGF0ZURhdGFiYXNlU2l6ZSgK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3Jt
U3VwcG9ydC5oCShyZXZpc2lvbiAxMjI5NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDE4ICsxMTcs
NiBAQCBwdWJsaWM6CiAgICAgLy8gRm9ybXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBzdGF0aWMgdm9pZCBub3RpZnlG
b3JtU3RhdGVDaGFuZ2VkKGNvbnN0IERvY3VtZW50Kik7CiAKLSAgICAvLyBEYXRhYmFzZXMgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
ICAgIC8vIFJldHVybnMgYSBoYW5kbGUgdG8gdGhlIERCIGZpbGUgYW5kIG9vcHRpb25hbGx5IGEg
aGFuZGxlIHRvIGl0cyBjb250YWluaW5nIGRpcmVjdG9yeQotICAgIHN0YXRpYyBQbGF0Zm9ybUZp
bGVIYW5kbGUgZGF0YWJhc2VPcGVuRmlsZShjb25zdCBTdHJpbmcmIHZmc0ZsZU5hbWUsIGludCBk
ZXNpcmVkRmxhZ3MpOwotICAgIC8vIFJldHVybnMgYSBTUUxpdGUgY29kZSAoU1FMSVRFX09LID0g
MCwgb24gc3VjY2VzcykKLSAgICBzdGF0aWMgaW50IGRhdGFiYXNlRGVsZXRlRmlsZShjb25zdCBT
dHJpbmcmIHZmc0ZpbGVOYW1lLCBib29sIHN5bmNEaXIgPSBmYWxzZSk7Ci0gICAgLy8gUmV0dXJu
cyB0aGUgYXR0cmlidXRlcyBvZiB0aGUgREIgZmlsZQotICAgIHN0YXRpYyBsb25nIGRhdGFiYXNl
R2V0RmlsZUF0dHJpYnV0ZXMoY29uc3QgU3RyaW5nJiB2ZnNGaWxlTmFtZSk7Ci0gICAgLy8gUmV0
dXJucyB0aGUgc2l6ZSBvZiB0aGUgREIgZmlsZQotICAgIHN0YXRpYyBsb25nIGxvbmcgZGF0YWJh
c2VHZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcmIHZmc0ZpbGVOYW1lKTsKLSAgICAvLyBSZXR1cm5z
IHRoZSBzcGFjZSBhdmFpbGFibGUgZm9yIHRoZSBvcmlnaW4KLSAgICBzdGF0aWMgbG9uZyBsb25n
IGRhdGFiYXNlR2V0U3BhY2VBdmFpbGFibGVGb3JPcmlnaW4oY29uc3QgU3RyaW5nJiBvcmlnaW5J
ZGVudGlmaWVyKTsKLQogICAgIC8vIEluZGV4ZWREQiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IGlkYkZhY3RvcnkoKTsKICAgICAvLyBFeHRyYWN0
cyBrZXlQYXRoIGZyb20gdmFsdWVzIGFuZCByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIGtleXMu
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5
c3RlbUNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9z
cWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtLmNwcAkocmV2aXNpb24gMTIyOTc2
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL2Nocm9taXVtL1NRTGl0ZUZpbGVTeXN0
ZW1DaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDggQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJTUUxpdGVGaWxlU3lzdGVtLmgiCiAKLSNpbmNsdWRlICJQ
bGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJTUUxpdGVEYXRhYmFzZS5oIgorI2luY2x1ZGUg
PHB1YmxpYy9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHNxbGl0ZTMuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAKQEAgLTkyLDEyICs5MiwxMiBAQCBib29sIFNRTGl0ZUZpbGVTeXN0
ZW06OmRlbGV0ZUVtcHR5RGF0YWJhCiAKIGJvb2wgU1FMaXRlRmlsZVN5c3RlbTo6ZGVsZXRlRGF0
YWJhc2VGaWxlKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUpCiB7Ci0gICAgcmV0dXJuIChQbGF0Zm9y
bVN1cHBvcnQ6OmRhdGFiYXNlRGVsZXRlRmlsZShmaWxlTmFtZSkgPT0gU1FMSVRFX09LKTsKKyAg
ICByZXR1cm4gKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+ZGF0YWJhc2VEZWxldGVGaWxl
KGZpbGVOYW1lLCBmYWxzZSkgPT0gU1FMSVRFX09LKTsKIH0KIAogbG9uZyBsb25nIFNRTGl0ZUZp
bGVTeXN0ZW06OmdldERhdGFiYXNlRmlsZVNpemUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSkKIHsK
LSAgICByZXR1cm4gUGxhdGZvcm1TdXBwb3J0OjpkYXRhYmFzZUdldEZpbGVTaXplKGZpbGVOYW1l
KTsKKyAgICByZXR1cm4gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5kYXRhYmFzZUdldEZp
bGVTaXplKGZpbGVOYW1lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL2Nocm9taXVtL1NRTGl0ZUZpbGVTeXN0ZW1DaHJvbWl1
bVBvc2l4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvY2hy
b21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtUG9zaXguY3BwCShyZXZpc2lvbiAxMjI5NzYp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5c3Rl
bUNocm9taXVtUG9zaXguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU1FMaXRlRmlsZVN5c3RlbS5oIgogCi0jaW5jbHVk
ZSAiUGxhdGZvcm1TdXBwb3J0LmgiCisjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+CiAjaW5j
bHVkZSA8c3FsaXRlMy5oPgogCiAjaW5jbHVkZSA8ZmNudGwuaD4KQEAgLTY5LDEwICs2OSwxMCBA
QCBpbnQgY2hyb21pdW1PcGVuKHNxbGl0ZTNfdmZzKiB2ZnMsIGNvbnN0CiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAKICAgICBpZiAoZmQgPCAwKSB7Ci0gICAgICAgIGZkID0gUGxhdGZvcm1TdXBw
b3J0OjpkYXRhYmFzZU9wZW5GaWxlKGZpbGVOYW1lLCBkZXNpcmVkRmxhZ3MpOworICAgICAgICBm
ZCA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+ZGF0YWJhc2VPcGVuRmlsZShTdHJpbmco
ZmlsZU5hbWUpLCBkZXNpcmVkRmxhZ3MpOwogICAgICAgICBpZiAoKGZkIDwgMCkgJiYgKGRlc2ly
ZWRGbGFncyAmIFNRTElURV9PUEVOX1JFQURXUklURSkpIHsKICAgICAgICAgICAgIGludCBuZXdG
bGFncyA9IChkZXNpcmVkRmxhZ3MgJiB+KFNRTElURV9PUEVOX1JFQURXUklURSB8IFNRTElURV9P
UEVOX0NSRUFURSkpIHwgU1FMSVRFX09QRU5fUkVBRE9OTFk7Ci0gICAgICAgICAgICBmZCA9IFBs
YXRmb3JtU3VwcG9ydDo6ZGF0YWJhc2VPcGVuRmlsZShmaWxlTmFtZSwgbmV3RmxhZ3MpOworICAg
ICAgICAgICAgZmQgPSBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmRhdGFiYXNlT3BlbkZp
bGUoU3RyaW5nKGZpbGVOYW1lKSwgbmV3RmxhZ3MpOwogICAgICAgICB9CiAgICAgfQogICAgIGlm
IChmZCA8IDApIHsKQEAgLTEwMyw3ICsxMDMsNyBAQCBpbnQgY2hyb21pdW1PcGVuKHNxbGl0ZTNf
dmZzKiB2ZnMsIGNvbnN0CiAvLyAgICAgICAgICAgc2hvdWxkIGJlIHN5bmNoZWQgYWZ0ZXIgdGhl
IGZpbGUgaXMgZGVsZXRlZC4KIGludCBjaHJvbWl1bURlbGV0ZShzcWxpdGUzX3ZmcyosIGNvbnN0
IGNoYXIqIGZpbGVOYW1lLCBpbnQgc3luY0RpcikKIHsKLSAgICByZXR1cm4gUGxhdGZvcm1TdXBw
b3J0OjpkYXRhYmFzZURlbGV0ZUZpbGUoZmlsZU5hbWUsIHN5bmNEaXIpOworICAgIHJldHVybiBX
ZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmRhdGFiYXNlRGVsZXRlRmlsZShTdHJpbmcoZmls
ZU5hbWUpLCBzeW5jRGlyKTsKIH0KIAogLy8gQ2hlY2sgdGhlIGV4aXN0YW5jZSBhbmQgc3RhdHVz
IG9mIHRoZSBnaXZlbiBmaWxlLgpAQCAtMTE0LDcgKzExNCw3IEBAIGludCBjaHJvbWl1bURlbGV0
ZShzcWxpdGUzX3ZmcyosIGNvbnN0IGMKIC8vIHJlcyAtIHRoZSByZXN1bHQuCiBpbnQgY2hyb21p
dW1BY2Nlc3Moc3FsaXRlM192ZnMqLCBjb25zdCBjaGFyKiBmaWxlTmFtZSwgaW50IGZsYWcsIGlu
dCogcmVzKQogewotICAgIGludCBhdHRyID0gc3RhdGljX2Nhc3Q8aW50PihQbGF0Zm9ybVN1cHBv
cnQ6OmRhdGFiYXNlR2V0RmlsZUF0dHJpYnV0ZXMoZmlsZU5hbWUpKTsKKyAgICBpbnQgYXR0ciA9
IHN0YXRpY19jYXN0PGludD4oV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5kYXRhYmFzZUdl
dEZpbGVBdHRyaWJ1dGVzKFN0cmluZyhmaWxlTmFtZSkpKTsKICAgICBpZiAoYXR0ciA8IDApIHsK
ICAgICAgICAgKnJlcyA9IDA7CiAgICAgICAgIHJldHVybiBTUUxJVEVfT0s7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVt
V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvY2hyb21p
dW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtV2luLmNwcAkocmV2aXNpb24gMTIyOTc2KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL2Nocm9taXVtL1NRTGl0ZUZpbGVTeXN0ZW1DaHJv
bWl1bVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJTUUxpdGVGaWxlU3lzdGVtLmgiCiAKLSNpbmNsdWRlICJQbGF0
Zm9ybVN1cHBvcnQuaCIKKyNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KICNpbmNsdWRlIDxz
cWxpdGUzLmg+CiAjaW5jbHVkZSA8d2luZG93cy5oPgogCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVz
cGFjZSB7CiBpbnQgY2hyb21pdW1PcGVuKHNxbGl0ZTNfdmZzKiwgY29uc3QgY2hhciogZmlsZU5h
bWUsCiAgICAgICAgICAgICAgICAgIHNxbGl0ZTNfZmlsZSogaWQsIGludCBkZXNpcmVkRmxhZ3Ms
IGludCogdXNlZEZsYWdzKQogewotICAgIEhBTkRMRSBoID0gUGxhdGZvcm1TdXBwb3J0OjpkYXRh
YmFzZU9wZW5GaWxlKGZpbGVOYW1lLCBkZXNpcmVkRmxhZ3MpOworICAgIEhBTkRMRSBoID0gV2Vi
S2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5kYXRhYmFzZU9wZW5GaWxlKFN0cmluZyhmaWxlTmFt
ZSksIGRlc2lyZWRGbGFncyk7CiAgICAgaWYgKGggPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpIHsK
ICAgICAgICAgaWYgKGRlc2lyZWRGbGFncyAmIFNRTElURV9PUEVOX1JFQURXUklURSkgewogICAg
ICAgICAgICAgaW50IG5ld0ZsYWdzID0gKGRlc2lyZWRGbGFncyB8IFNRTElURV9PUEVOX1JFQURP
TkxZKSAmIH5TUUxJVEVfT1BFTl9SRUFEV1JJVEU7CkBAIC04Miw3ICs4Miw3IEBAIGludCBjaHJv
bWl1bU9wZW4oc3FsaXRlM192ZnMqLCBjb25zdCBjaGEKIC8vICAgICAgICAgICBzaG91bGQgYmUg
c3luY2hlZCBhZnRlciB0aGUgZmlsZSBpcyBkZWxldGVkLgogaW50IGNocm9taXVtRGVsZXRlKHNx
bGl0ZTNfdmZzKiwgY29uc3QgY2hhciogZmlsZU5hbWUsIGludCkKIHsKLSAgICByZXR1cm4gUGxh
dGZvcm1TdXBwb3J0OjpkYXRhYmFzZURlbGV0ZUZpbGUoZmlsZU5hbWUpOworICAgIHJldHVybiBX
ZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmRhdGFiYXNlRGVsZXRlRmlsZShTdHJpbmcoZmls
ZU5hbWUpKTsKIH0KIAogLy8gQ2hlY2sgdGhlIGV4aXN0YW5jZSBhbmQgc3RhdHVzIG9mIHRoZSBn
aXZlbiBmaWxlLgpAQCAtOTMsNyArOTMsNyBAQCBpbnQgY2hyb21pdW1EZWxldGUoc3FsaXRlM192
ZnMqLCBjb25zdCBjCiAvLyByZXMgLSB0aGUgcmVzdWx0LgogaW50IGNocm9taXVtQWNjZXNzKHNx
bGl0ZTNfdmZzKiwgY29uc3QgY2hhciogZmlsZU5hbWUsIGludCBmbGFnLCBpbnQqIHJlcykKIHsK
LSAgICBEV09SRCBhdHRyID0gUGxhdGZvcm1TdXBwb3J0OjpkYXRhYmFzZUdldEZpbGVBdHRyaWJ1
dGVzKGZpbGVOYW1lKTsKKyAgICBEV09SRCBhdHRyID0gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVu
dCgpLT5kYXRhYmFzZUdldEZpbGVBdHRyaWJ1dGVzKFN0cmluZyhmaWxlTmFtZSkpOwogICAgIHN3
aXRjaCAoZmxhZykgewogICAgIGNhc2UgU1FMSVRFX0FDQ0VTU19SRUFEOgogICAgIGNhc2UgU1FM
SVRFX0FDQ0VTU19FWElTVFM6CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNp
b24gMTIyOTc5KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNy0xOCAgTWFyayBQaWxncmltICA8cGlsZ3Jp
bUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBDYWxsIFNRTGl0ZUZpbGVTeXN0
ZW0tcmVsYXRlZCBmdW5jdGlvbnMgZGlyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUGFydCBvZiBhIHJlZmFjdG9yaW5nIHNlcmllcy4gU2VlIHRy
YWNraW5nIGJ1ZyA4Mjk0OC4KKworICAgICAgICAqIHB1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0
Zm9ybVN1cHBvcnQuaDoKKyAgICAgICAgKFdlYktpdFBsYXRmb3JtU3VwcG9ydCk6CisgICAgICAg
ICogc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0w
Ny0xOCAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIERl
Y2ltYWw6OnRvU3RyaW5nIHNob3VsZCBub3Qgcm91bmQgaW50ZWdlciB2YWx1ZS4KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9y
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3Jt
L1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oCShyZXZpc2lvbiAxMjI5NzYpCisrKyBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaAkod29y
a2luZyBjb3B5KQpAQCAtNTcsMzEgKzU3LDYgQEAgY2xhc3MgV2ViU2hhcmVkV29ya2VyUmVwb3Np
dG9yeTsgLy8gRklYTQogLy8gRklYTUU6IEV2ZW50dWFsbHkgYWxsIHRoZXNlIEFQSSB3aWxsIG5l
ZWQgdG8gbW92ZSB0byBXZWJLaXQ6OlBsYXRmb3JtLgogY2xhc3MgV2ViS2l0UGxhdGZvcm1TdXBw
b3J0IDogcHVibGljIFBsYXRmb3JtIHsKIHB1YmxpYzoKLSAgICAvLyBIVE1MNSBEYXRhYmFzZSAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQot
I2lmZGVmIFdJTjMyCi0gICAgdHlwZWRlZiBIQU5ETEUgRmlsZUhhbmRsZTsKLSNlbHNlCi0gICAg
dHlwZWRlZiBpbnQgRmlsZUhhbmRsZTsKLSNlbmRpZgotCi0gICAgLy8gT3BlbnMgYSBkYXRhYmFz
ZSBmaWxlOyBkaXJIYW5kbGUgc2hvdWxkIGJlIDAgaWYgdGhlIGNhbGxlciBkb2VzIG5vdCBuZWVk
Ci0gICAgLy8gYSBoYW5kbGUgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoaXMgZmlsZQot
ICAgIHZpcnR1YWwgRmlsZUhhbmRsZSBkYXRhYmFzZU9wZW5GaWxlKAotICAgICAgICBjb25zdCBX
ZWJTdHJpbmcmIHZmc0ZpbGVOYW1lLCBpbnQgZGVzaXJlZEZsYWdzKSB7IHJldHVybiBGaWxlSGFu
ZGxlKCk7IH0KLQotICAgIC8vIERlbGV0ZXMgYSBkYXRhYmFzZSBmaWxlIGFuZCByZXR1cm5zIHRo
ZSBlcnJvciBjb2RlCi0gICAgdmlydHVhbCBpbnQgZGF0YWJhc2VEZWxldGVGaWxlKGNvbnN0IFdl
YlN0cmluZyYgdmZzRmlsZU5hbWUsIGJvb2wgc3luY0RpcikgeyByZXR1cm4gMDsgfQotCi0gICAg
Ly8gUmV0dXJucyB0aGUgYXR0cmlidXRlcyBvZiB0aGUgZ2l2ZW4gZGF0YWJhc2UgZmlsZQotICAg
IHZpcnR1YWwgbG9uZyBkYXRhYmFzZUdldEZpbGVBdHRyaWJ1dGVzKGNvbnN0IFdlYlN0cmluZyYg
dmZzRmlsZU5hbWUpIHsgcmV0dXJuIDA7IH0KLQotICAgIC8vIFJldHVybnMgdGhlIHNpemUgb2Yg
dGhlIGdpdmVuIGRhdGFiYXNlIGZpbGUKLSAgICB2aXJ0dWFsIGxvbmcgbG9uZyBkYXRhYmFzZUdl
dEZpbGVTaXplKGNvbnN0IFdlYlN0cmluZyYgdmZzRmlsZU5hbWUpIHsgcmV0dXJuIDA7IH0KLQot
ICAgIC8vIFJldHVybnMgdGhlIHNwYWNlIGF2YWlsYWJsZSBmb3IgdGhlIGdpdmVuIG9yaWdpbgot
ICAgIHZpcnR1YWwgbG9uZyBsb25nIGRhdGFiYXNlR2V0U3BhY2VBdmFpbGFibGVGb3JPcmlnaW4o
Y29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpIHsgcmV0dXJuIDA7IH0K
LQogICAgIC8vIEluZGV4ZWQgRGF0YWJhc2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgICAgdmlydHVhbCBXZWJJREJGYWN0b3J5KiBpZGJG
YWN0b3J5KCkgeyByZXR1cm4gMDsgfQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
UGxhdGZvcm1TdXBwb3J0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCShyZXZpc2lvbiAxMjI5NzYpCisrKyBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NzYsMzMgKzI3Niw2IEBAIHZvaWQgUGxhdGZvcm1TdXBwb3J0OjpnZXRSZW5kZXJTdHlsZUZvclMK
IH0KICNlbmRpZgogCi0vLyBEYXRhYmFzZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVBsYXRmb3JtRmlsZUhhbmRs
ZSBQbGF0Zm9ybVN1cHBvcnQ6OmRhdGFiYXNlT3BlbkZpbGUoY29uc3QgU3RyaW5nJiB2ZnNGaWxl
TmFtZSwgaW50IGRlc2lyZWRGbGFncykKLXsKLSAgICByZXR1cm4gd2ViS2l0UGxhdGZvcm1TdXBw
b3J0KCktPmRhdGFiYXNlT3BlbkZpbGUoV2ViU3RyaW5nKHZmc0ZpbGVOYW1lKSwgZGVzaXJlZEZs
YWdzKTsKLX0KLQotaW50IFBsYXRmb3JtU3VwcG9ydDo6ZGF0YWJhc2VEZWxldGVGaWxlKGNvbnN0
IFN0cmluZyYgdmZzRmlsZU5hbWUsIGJvb2wgc3luY0RpcikKLXsKLSAgICByZXR1cm4gd2ViS2l0
UGxhdGZvcm1TdXBwb3J0KCktPmRhdGFiYXNlRGVsZXRlRmlsZShXZWJTdHJpbmcodmZzRmlsZU5h
bWUpLCBzeW5jRGlyKTsKLX0KLQotbG9uZyBQbGF0Zm9ybVN1cHBvcnQ6OmRhdGFiYXNlR2V0Rmls
ZUF0dHJpYnV0ZXMoY29uc3QgU3RyaW5nJiB2ZnNGaWxlTmFtZSkKLXsKLSAgICByZXR1cm4gd2Vi
S2l0UGxhdGZvcm1TdXBwb3J0KCktPmRhdGFiYXNlR2V0RmlsZUF0dHJpYnV0ZXMoV2ViU3RyaW5n
KHZmc0ZpbGVOYW1lKSk7Ci19Ci0KLWxvbmcgbG9uZyBQbGF0Zm9ybVN1cHBvcnQ6OmRhdGFiYXNl
R2V0RmlsZVNpemUoY29uc3QgU3RyaW5nJiB2ZnNGaWxlTmFtZSkKLXsKLSAgICByZXR1cm4gd2Vi
S2l0UGxhdGZvcm1TdXBwb3J0KCktPmRhdGFiYXNlR2V0RmlsZVNpemUoV2ViU3RyaW5nKHZmc0Zp
bGVOYW1lKSk7Ci19Ci0KLWxvbmcgbG9uZyBQbGF0Zm9ybVN1cHBvcnQ6OmRhdGFiYXNlR2V0U3Bh
Y2VBdmFpbGFibGVGb3JPcmlnaW4oY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKQotewot
ICAgIHJldHVybiB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+ZGF0YWJhc2VHZXRTcGFjZUF2YWls
YWJsZUZvck9yaWdpbihvcmlnaW5JZGVudGlmaWVyKTsKLX0KLQogLy8gSW5kZXhlZCBEYXRhYmFz
ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCiBQYXNzUmVmUHRyPElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlPiBQbGF0Zm9ybVN1
cHBvcnQ6OmlkYkZhY3RvcnkoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>