<?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>85738</bug_id>
          
          <creation_ts>2012-05-06 10:28:56 -0700</creation_ts>
          <short_desc>Cleanup: Move FileSystem API type definitions into a separate header file</short_desc>
          <delta_ts>2012-05-07 21:13:25 -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>WebCore 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kinuko Yasuda">kinuko</reporter>
          <assigned_to name="Kinuko Yasuda">kinuko</assigned_to>
          <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>617121</commentid>
    <comment_count>0</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-05-06 10:28:56 -0700</bug_when>
    <thetext>Cleanup: Move FileSystem API type definitions into a separate header file.

Currently they are defined in AsyncFileSystem.h (and AsyncFileSystemChromium.cpp for chromium), but by moving them into a separate header file we can:
- make it clearer that all FileSystem API types can be found in the single separate header file
- save including entire AsyncFileSystem definition just for referring type enum values</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617122</commentid>
    <comment_count>1</comment_count>
      <attachid>140424</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-05-06 10:40:52 -0700</bug_when>
    <thetext>Created attachment 140424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617123</commentid>
    <comment_count>2</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-05-06 10:41:53 -0700</bug_when>
    <thetext>Another patch separated out from http://webkit.org/b/84135 (for cross-filesystem support).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617135</commentid>
    <comment_count>3</comment_count>
      <attachid>140429</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-05-06 11:21:18 -0700</bug_when>
    <thetext>Created attachment 140429
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617139</commentid>
    <comment_count>4</comment_count>
      <attachid>140429</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-05-06 11:35:33 -0700</bug_when>
    <thetext>Comment on attachment 140429
Patch

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

&gt; Source/WebKit/chromium/src/AsyncFileSystemChromium.cpp:59
&gt;  const size_t externalPathPrefixLength = sizeof(externalPathPrefix) - 1;

I think the one place in the code that used this went away. Feel free to delete it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617140</commentid>
    <comment_count>5</comment_count>
      <attachid>140429</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-05-06 11:39:26 -0700</bug_when>
    <thetext>Comment on attachment 140429
Patch

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

&gt; Source/WebCore/platform/FileSystemType.h:1
&gt; +/*

I&apos;m surprised that there aren&apos;t some build file changes to go along with this.

it would be nice to include it in build files. (As long as this not being the those files doesn&apos;t break anything and it doesn&apos;t seem to, I would be fine with that as a follow up patch.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617361</commentid>
    <comment_count>6</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-05-06 21:18:56 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 140429 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=140429&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/FileSystemType.h:1
&gt; &gt; +/*
&gt; 
&gt; I&apos;m surprised that there aren&apos;t some build file changes to go along with this.
&gt; 
&gt; it would be nice to include it in build files. (As long as this not being the those files doesn&apos;t break anything and it doesn&apos;t seem to, I would be fine with that as a follow up patch.)

Yes I should have added the new header to the build files.  I&apos;m going to make a follow up patch (unless this breaks other builds on waterfall).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617436</commentid>
    <comment_count>7</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-05-07 00:38:59 -0700</bug_when>
    <thetext>Committed r116280: &lt;http://trac.webkit.org/changeset/116280&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617849</commentid>
    <comment_count>8</comment_count>
      <attachid>140429</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2012-05-07 12:57:50 -0700</bug_when>
    <thetext>Comment on attachment 140429
Patch

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

&gt; Source/WebKit/chromium/src/AsyncFileSystemChromium.cpp:124
&gt;      return true;

This cleanup didn&apos;t make it through your CL-splitting quite right.  Now if we get an invalid URL that has no inner_url, we&apos;ll return true; it should be false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617859</commentid>
    <comment_count>9</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-05-07 13:11:57 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 140429 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=140429&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/AsyncFileSystemChromium.cpp:124
&gt; &gt;      return true;
&gt; 
&gt; This cleanup didn&apos;t make it through your CL-splitting quite right.  Now if we get an invalid URL that has no inner_url, we&apos;ll return true; it should be false.

Thanks for looking it over again Eric!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618258</commentid>
    <comment_count>10</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-05-07 20:36:00 -0700</bug_when>
    <thetext>Thanks Eric, I&apos;m uploading a follow-up fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618278</commentid>
    <comment_count>11</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-05-07 21:13:25 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Thanks Eric, I&apos;m uploading a follow-up fix.

Looks like the new patch (which is implementing crackFileSystemURL in DOMFileSystemChromium) seems to be handling this part correctly.  (Returning earlier if url.innerURL() is null)
Closing this again... thanks for the catch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140424</attachid>
            <date>2012-05-06 10:40:52 -0700</date>
            <delta_ts>2012-05-06 11:21:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85738-20120507024050.patch</filename>
            <type>text/plain</type>
            <size>44462</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZmZGJhMWEwMzUxOWYy
OTFjNjMxOGJlYTVjMGNlY2NlZjJjNjdhYi4uNWU1YWFiODhhZmVjZDhiZDcxYWE3NzBmMTBjZjZm
OTRjMGM2YTExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTA1LTA2ICBLaW51
a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KKworICAgICAgICBDbGVhbnVwOiBNb3Zl
IEZpbGVTeXN0ZW0gQVBJIHR5cGUgZGVmaW5pdGlvbnMgaW50byBhIHNlcGFyYXRlIGhlYWRlciBm
aWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTcz
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUg
RmlsZVN5c3RlbSBBUEkgdHlwZSBkZWZpbml0aW9ucyBmcm9tIEFzeW5jRmlsZVN5c3RlbS5oIGFu
ZAorICAgICAgICBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAgZm9yIGNocm9taXVtIHBvcnQg
aW50byBhIHNpbmdsZSBzZXBhcmF0ZQorICAgICAgICBoZWFkZXIgZmlsZTogRmlsZVN5c3RlbVR5
cGUuaAorCisgICAgICAgIEJ5IGRvaW5nIHRoaXMgd2UgbWFrZSBpdCBjbGVhcmVyIHRoYXQgZXZl
cnkgZmlsZXN5c3RlbSB0eXBlIGNhbiBiZQorICAgICAgICBmb3VuZCBpbiB0aGUgaGVhZGVyIGZp
bGUgYW5kIGFsc28gY2FuIHNhdmUgaW5jbHVkaW5nIGVudGlyZQorICAgICAgICBBc3luY0ZpbGVT
eXN0ZW0gZGVmaW5pdGlvbiBqdXN0IGZvciByZWZlcnJpbmcgdHlwZSBlbnVtIHZhbHVlLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBhcyB0aGlzIGNoYW5nZSBoYXMgbm8gdmlzaWJsZSBvciBmdW5j
dGlvbmFsIGNoYW5nZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmlsZVN5
c3RlbUJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGF0aFRvQWJzb2x1dGVQYXRoKToKKyAg
ICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NV2luZG93RmlsZVN5c3RlbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3dGaWxlU3lzdGVtOjp3ZWJraXRSZXF1ZXN0RmlsZVN5c3Rl
bSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dGaWxlU3lzdGVtOjp3ZWJraXRSZXNvbHZl
TG9jYWxGaWxlU3lzdGVtVVJMKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbS9ET01XaW5kb3dGaWxlU3lzdGVtLmg6CisgICAgICAgICogTW9kdWxlcy9m
aWxlc3lzdGVtL0xvY2FsRmlsZVN5c3RlbS5oOgorICAgICAgICAoTG9jYWxGaWxlU3lzdGVtKToK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vV29ya2VyQ29udGV4dEZpbGVTeXN0ZW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dEZpbGVTeXN0ZW06OndlYmtpdFJlcXVl
c3RGaWxlU3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHRGaWxlU3lzdGVt
Ojp3ZWJraXRSZXF1ZXN0RmlsZVN5c3RlbVN5bmMpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
Q29udGV4dEZpbGVTeXN0ZW06OndlYmtpdFJlc29sdmVMb2NhbEZpbGVTeXN0ZW1VUkwpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dEZpbGVTeXN0ZW06OndlYmtpdFJlc29sdmVMb2Nh
bEZpbGVTeXN0ZW1TeW5jVVJMKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbS9Xb3JrZXJDb250ZXh0RmlsZVN5c3RlbS5oOgorICAgICAgICAqIHBsYXRm
b3JtL0FzeW5jRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0ZpbGVTeXN0
ZW06OmlzVmFsaWRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5c3RlbTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5c3RlbTo6b3BlbkZpbGVTeXN0ZW0p
OgorICAgICAgICAqIHBsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5oOgorICAgICAgICAoQXN5bmNG
aWxlU3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5c3RlbTo6dHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBc3luY0ZpbGVTeXN0ZW06OkFzeW5jRmlsZVN5c3RlbSk6CisgICAg
ICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbVR5cGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L0FzeW5jRmlsZVN5c3RlbUJsYWNrQmVy
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtOjppc1ZhbGlkVHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpBc3luY0ZpbGVTeXN0ZW06OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBc3luY0ZpbGVTeXN0ZW06Om9wZW5GaWxlU3lzdGVtKToKKyAgICAgICAgKFdlYkNv
cmU6OkFzeW5jRmlsZVN5c3RlbTo6Y3JhY2tGaWxlU3lzdGVtVVJMKToKKyAgICAgICAgKFdlYkNv
cmU6OkFzeW5jRmlsZVN5c3RlbUJsYWNrQmVycnk6OkFzeW5jRmlsZVN5c3RlbUJsYWNrQmVycnkp
OgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtQmxhY2tCZXJyeTo6dG9VUkwpOgor
ICAgICAgICAqIHBsYXRmb3JtL2JsYWNrYmVycnkvQXN5bmNGaWxlU3lzdGVtQmxhY2tCZXJyeS5o
OgorICAgICAgICAoQXN5bmNGaWxlU3lzdGVtQmxhY2tCZXJyeSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL0FzeW5jRmlsZVN5c3RlbUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0Zp
bGVTeXN0ZW06OmlzVmFsaWRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5c3Rl
bTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5c3RlbTo6b3BlbkZpbGVT
eXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtOjpjcmFja0ZpbGVTeXN0
ZW1VUkwpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtR3RrOjpBc3luY0ZpbGVT
eXN0ZW1HdGspOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtR3RrOjp0b1VSTCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0FzeW5jRmlsZVN5c3RlbUd0ay5oOgorICAgICAgICAo
QXN5bmNGaWxlU3lzdGVtR3RrKToKKwogMjAxMi0wNS0wNCAgTGV2aSBXZWludHJhdWIgIDxsZXZp
d0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ29ycmVjdCBwaXhlbCBzbmFwcGluZyBpbiBSZW5k
ZXJTVkdSb290OjpwYWludFJlcGxhY2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGVl
OWE0MWVmMzBjNGIxODJkYzYzN2YxMjM5NThiZjY2MjhiMWQyOGUuLmRiOGI1MzFhZDAxNjI0ODVk
NzJiMGUxNjgyMWI4YjE3N2JhYzM4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDUgQEAKKzIwMTItMDUtMDYgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIENsZWFudXA6IE1vdmUgRmlsZVN5c3RlbSBBUEkgdHlwZSBkZWZpbml0
aW9ucyBpbnRvIGEgc2VwYXJhdGUgaGVhZGVyIGZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBGaWxlU3lzdGVtIEFQSSB0eXBlIGRlZmluaXRp
b25zIGZyb20gQXN5bmNGaWxlU3lzdGVtLmggYW5kCisgICAgICAgIEFzeW5jRmlsZVN5c3RlbUNo
cm9taXVtLmNwcCBmb3IgY2hyb21pdW0gcG9ydCBpbnRvIGEgc2luZ2xlIHNlcGFyYXRlCisgICAg
ICAgIGhlYWRlciBmaWxlOiBGaWxlU3lzdGVtVHlwZS5oCisKKyAgICAgICAgQnkgZG9pbmcgdGhp
cyB3ZSBtYWtlIGl0IGNsZWFyZXIgdGhhdCBldmVyeSBmaWxlc3lzdGVtIHR5cGUgY2FuIGJlCisg
ICAgICAgIGZvdW5kIGluIHRoZSBoZWFkZXIgZmlsZSBhbmQgYWxzbyBjYW4gc2F2ZSBpbmNsdWRp
bmcgZW50aXJlCisgICAgICAgIEFzeW5jRmlsZVN5c3RlbSBkZWZpbml0aW9uIGp1c3QgZm9yIHJl
ZmVycmluZyB0eXBlIGVudW0gdmFsdWUuCisKKyAgICAgICAgKiBzcmMvQXNzZXJ0TWF0Y2hpbmdF
bnVtcy5jcHA6CisgICAgICAgICogc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5c3RlbTo6Y3JhY2tGaWxlU3lzdGVtVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5c3RlbTo6aXNWYWxpZFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OkFzeW5jRmlsZVN5c3RlbUNocm9taXVt
KToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpjcmVhdGVJc29s
YXRlZEZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtQ2hyb21p
dW06OnRvVVJMKToKKyAgICAgICAgKiBzcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpjcmVhdGUpOgorICAgICAg
ICAoQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0pOgorICAgICAgICAqIHNyYy9Mb2NhbEZpbGVTeXN0
ZW1DaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVuRmlsZVN5c3RlbUhlbHBlcik6
CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEZpbGVTeXN0ZW06OnJlYWRGaWxlU3lzdGVtKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxvY2FsRmlsZVN5c3RlbTo6cmVxdWVzdEZpbGVTeXN0ZW0pOgorICAg
ICAgICAqIHNyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsOjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1w
bCk6CisgICAgICAgICogc3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmg6CisgICAgICAg
IChXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbCk6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6Y3JlYXRlRmlsZVN5c3RlbSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6Y3JlYXRlRmlsZUVudHJ5KToKKyAgICAg
ICAgKiBzcmMvV29ya2VyQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OldvcmtlckFzeW5jRmlsZVN5c3Rl
bUNocm9taXVtKToKKyAgICAgICAgKiBzcmMvV29ya2VyQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0u
aDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpjcmVh
dGUpOgorICAgICAgICAoV29ya2VyQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0pOgorCiAyMDEyLTA1
LTA0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVmYWN0b3Ig
Q1NQIHN0YXRlIHRvIHByZXBhcmUgZm9yIGhhdmluZyBib3RoIGEgUmVwb3J0T25seSBhbmQgYW4g
RW5mb3JjZWQgcG9saWN5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW0vRE9NRmlsZVN5c3RlbUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtL0RPTUZpbGVTeXN0ZW1CYXNlLmNwcAppbmRleCAyMTM1ZjJiYmM0MjBlNTliZjdjYjQ4
YzkxOTQ5ZGE0MDEwODMwOGVhLi40MzM1YWI5MDRlYjNjMWQ3YjRlNWQxZjBlMmFlMzgxYzY5Y2Nk
ZDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmls
ZVN5c3RlbUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9E
T01GaWxlU3lzdGVtQmFzZS5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgc3RhdGljIGJvb2wgdmVyaWZ5
QW5kR2V0RGVzdGluYXRpb25QYXRoRm9yQ29weU9yTW92ZShjb25zdCBFbnRyeUJhc2UqIHNvdXJj
ZSwgRW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgcGF0aFRvQWJzb2x1dGVQ
YXRoKEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBjb25zdCBFbnRyeUJhc2UqIGJhc2UsIFN0
cmluZyBwYXRoLCBTdHJpbmcmIGFic29sdXRlUGF0aCkKK3N0YXRpYyBib29sIHBhdGhUb0Fic29s
dXRlUGF0aChGaWxlU3lzdGVtVHlwZSB0eXBlLCBjb25zdCBFbnRyeUJhc2UqIGJhc2UsIFN0cmlu
ZyBwYXRoLCBTdHJpbmcmIGFic29sdXRlUGF0aCkKIHsKICAgICBBU1NFUlQoYmFzZSk7CiAKQEAg
LTEwNyw3ICsxMDcsNyBAQCBzdGF0aWMgYm9vbCBwYXRoVG9BYnNvbHV0ZVBhdGgoQXN5bmNGaWxl
U3lzdGVtOjpUeXBlIHR5cGUsIGNvbnN0IEVudHJ5QmFzZSogYmFzZQogICAgICAgICBwYXRoID0g
RE9NRmlsZVBhdGg6OmFwcGVuZChiYXNlLT5mdWxsUGF0aCgpLCBwYXRoKTsKICAgICBhYnNvbHV0
ZVBhdGggPSBET01GaWxlUGF0aDo6cmVtb3ZlRXh0cmFQYXJlbnRSZWZlcmVuY2VzKHBhdGgpOwog
Ci0gICAgaWYgKCh0eXBlID09IEFzeW5jRmlsZVN5c3RlbTo6VGVtcG9yYXJ5IHx8IHR5cGUgPT0g
QXN5bmNGaWxlU3lzdGVtOjpQZXJzaXN0ZW50KSAmJiAhRE9NRmlsZVBhdGg6OmlzVmFsaWRQYXRo
KGFic29sdXRlUGF0aCkpCisgICAgaWYgKCh0eXBlID09IEZpbGVTeXN0ZW1UeXBlVGVtcG9yYXJ5
IHx8IHR5cGUgPT0gRmlsZVN5c3RlbVR5cGVQZXJzaXN0ZW50KSAmJiAhRE9NRmlsZVBhdGg6Omlz
VmFsaWRQYXRoKGFic29sdXRlUGF0aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bS9ET01XaW5kb3dGaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbS9ET01XaW5kb3dGaWxlU3lzdGVtLmNwcAppbmRleCA1NzBjMzlkYjI0NWNmMzczZTAzMjRk
OWFmZjhlNjUzNzM0MWEyMTAyLi40NTNjNjIyYTAzMTIzZjE3M2JkODY3NmEyODQzOWJmMjlkNzE5
MjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NV2lu
ZG93RmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
L0RPTVdpbmRvd0ZpbGVTeXN0ZW0uY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgRE9NV2luZG93
RmlsZVN5c3RlbTo6d2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0oRE9NV2luZG93KiB3aW5kb3csIGlu
dCB0eXBlLCBsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBc3luY0ZpbGVTeXN0ZW06
OlR5cGUgZmlsZVN5c3RlbVR5cGUgPSBzdGF0aWNfY2FzdDxBc3luY0ZpbGVTeXN0ZW06OlR5cGU+
KHR5cGUpOworICAgIEZpbGVTeXN0ZW1UeXBlIGZpbGVTeXN0ZW1UeXBlID0gc3RhdGljX2Nhc3Q8
RmlsZVN5c3RlbVR5cGU+KHR5cGUpOwogICAgIGlmICghQXN5bmNGaWxlU3lzdGVtOjppc1ZhbGlk
VHlwZShmaWxlU3lzdGVtVHlwZSkpIHsKICAgICAgICAgRE9NRmlsZVN5c3RlbTo6c2NoZWR1bGVD
YWxsYmFjayhkb2N1bWVudCwgZXJyb3JDYWxsYmFjaywgRmlsZUVycm9yOjpjcmVhdGUoRmlsZUVy
cm9yOjpJTlZBTElEX01PRElGSUNBVElPTl9FUlIpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtODks
NyArODksNyBAQCB2b2lkIERPTVdpbmRvd0ZpbGVTeXN0ZW06OndlYmtpdFJlc29sdmVMb2NhbEZp
bGVTeXN0ZW1VUkwoRE9NV2luZG93KiB3aW5kb3csIGNvbgogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGU7CisgICAgRmlsZVN5c3RlbVR5cGUg
dHlwZTsKICAgICBTdHJpbmcgZmlsZVBhdGg7CiAgICAgaWYgKCFjb21wbGV0ZWRVUkwuaXNWYWxp
ZCgpIHx8ICFBc3luY0ZpbGVTeXN0ZW06OmNyYWNrRmlsZVN5c3RlbVVSTChjb21wbGV0ZWRVUkws
IHR5cGUsIGZpbGVQYXRoKSkgewogICAgICAgICBET01GaWxlU3lzdGVtOjpzY2hlZHVsZUNhbGxi
YWNrKGRvY3VtZW50LCBlcnJvckNhbGxiYWNrLCBGaWxlRXJyb3I6OmNyZWF0ZShGaWxlRXJyb3I6
OkVOQ09ESU5HX0VSUikpOwpAQCAtOTksOCArOTksOCBAQCB2b2lkIERPTVdpbmRvd0ZpbGVTeXN0
ZW06OndlYmtpdFJlc29sdmVMb2NhbEZpbGVTeXN0ZW1VUkwoRE9NV2luZG93KiB3aW5kb3csIGNv
bgogICAgIExvY2FsRmlsZVN5c3RlbTo6bG9jYWxGaWxlU3lzdGVtKCkucmVhZEZpbGVTeXN0ZW0o
ZG9jdW1lbnQsIHR5cGUsIFJlc29sdmVVUklDYWxsYmFja3M6OmNyZWF0ZShzdWNjZXNzQ2FsbGJh
Y2ssIGVycm9yQ2FsbGJhY2ssIGRvY3VtZW50LCBmaWxlUGF0aCkpOwogfQogCi1DT01QSUxFX0FT
U0VSVChzdGF0aWNfY2FzdDxpbnQ+KERPTVdpbmRvd0ZpbGVTeXN0ZW06OlRFTVBPUkFSWSkgPT0g
c3RhdGljX2Nhc3Q8aW50PihBc3luY0ZpbGVTeXN0ZW06OlRlbXBvcmFyeSksIGVudW1fbWlzbWF0
Y2gpOwotQ09NUElMRV9BU1NFUlQoc3RhdGljX2Nhc3Q8aW50PihET01XaW5kb3dGaWxlU3lzdGVt
OjpQRVJTSVNURU5UKSA9PSBzdGF0aWNfY2FzdDxpbnQ+KEFzeW5jRmlsZVN5c3RlbTo6UGVyc2lz
dGVudCksIGVudW1fbWlzbWF0Y2gpOworQ09NUElMRV9BU1NFUlQoc3RhdGljX2Nhc3Q8aW50PihE
T01XaW5kb3dGaWxlU3lzdGVtOjpURU1QT1JBUlkpID09IHN0YXRpY19jYXN0PGludD4oRmlsZVN5
c3RlbVR5cGVUZW1wb3JhcnkpLCBlbnVtX21pc21hdGNoKTsKK0NPTVBJTEVfQVNTRVJUKHN0YXRp
Y19jYXN0PGludD4oRE9NV2luZG93RmlsZVN5c3RlbTo6UEVSU0lTVEVOVCkgPT0gc3RhdGljX2Nh
c3Q8aW50PihGaWxlU3lzdGVtVHlwZVBlcnNpc3RlbnQpLCBlbnVtX21pc21hdGNoKTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW0vRE9NV2luZG93RmlsZVN5c3RlbS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtL0RPTVdpbmRvd0ZpbGVTeXN0ZW0uaAppbmRleCAyNzgzNTUzYTFiOTczMGNh
YzliNzM4NDI5NDk0OWI4NDcyYWMzMmVkLi5mYjViOTIyMzZhMWFiN2JjNzYxNTUwODhjMmUxMzdj
ZjQ5YWZlMjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0v
RE9NV2luZG93RmlsZVN5c3RlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbS9ET01XaW5kb3dGaWxlU3lzdGVtLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogCiAg
ICAgLy8gVGhleSBhcmUgcGxhY2VkIGhlcmUgYW5kIGluIGFsbCBjYXBpdGFsIGxldHRlcnMgc28g
dGhleSBjYW4gYmUgY2hlY2tlZCBhZ2FpbnN0IHRoZSBjb25zdGFudHMgaW4gdGhlCiAgICAgLy8g
SURMIGF0IGNvbXBpbGUgdGltZS4KLSAgICBlbnVtIEZpbGVTeXN0ZW1UeXBlIHsKKyAgICBlbnVt
IHsKICAgICAgICAgVEVNUE9SQVJZLAogICAgICAgICBQRVJTSVNURU5ULAogICAgIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vTG9jYWxGaWxlU3lzdGVt
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vTG9jYWxGaWxlU3lzdGVtLmgK
aW5kZXggODBjZmEyOTQ1MWUzOTliZDJhODEwNDhmZTU0NTQwYzQ0ZDg3YTQ0ZC4uZmMzYzNmYzc1
ZDExMmViMjk0MjNmYTgyNTBlZTU0ODhmOGNlMDlmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtL0xvY2FsRmlsZVN5c3RlbS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbS9Mb2NhbEZpbGVTeXN0ZW0uaApAQCAtMzMsNyArMzMsOCBA
QAogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogCi0jaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVt
LmgiCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiRmls
ZVN5c3RlbVR5cGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTU0LDkgKzU1
LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBMb2NhbEZpbGVTeXN0ZW0mIGxvY2FsRmlsZVN5c3Rl
bSgpOwogCiAgICAgLy8gRG9lcyBub3QgY3JlYXRlIHRoZSByb290IHBhdGggZm9yIGZpbGUgc3lz
dGVtLCBqdXN0IHJlYWRzIGl0IGlmIGF2YWlsYWJsZS4KLSAgICB2b2lkIHJlYWRGaWxlU3lzdGVt
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUsIFBhc3NPd25Q
dHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiwgYm9vbCBzeW5jaHJvbm91cyA9IGZhbHNlKTsK
KyAgICB2b2lkIHJlYWRGaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBGaWxlU3lz
dGVtVHlwZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+LCBib29sIHN5bmNo
cm9ub3VzID0gZmFsc2UpOwogCi0gICAgdm9pZCByZXF1ZXN0RmlsZVN5c3RlbShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlLCBsb25nIGxvbmcgc2l6ZSwgUGFz
c093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+LCBib29sIHN5bmNocm9ub3VzID0gZmFs
c2UpOworICAgIHZvaWQgcmVxdWVzdEZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IEZpbGVTeXN0ZW1UeXBlLCBsb25nIGxvbmcgc2l6ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0
ZW1DYWxsYmFja3M+LCBib29sIHN5bmNocm9ub3VzID0gZmFsc2UpOwogCiAjaWYgIVBMQVRGT1JN
KENIUk9NSVVNKQogICAgIC8vIFRoaXMgY2FsbCBpcyBub3QgdGhyZWFkLXNhZmU7IG11c3QgYmUg
Y2FsbGVkIGJlZm9yZSBhbnkgd29ya2VyIHRocmVhZHMgYXJlIGNyZWF0ZWQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vV29ya2VyQ29udGV4dEZpbGVTeXN0
ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL1dvcmtlckNvbnRleHRG
aWxlU3lzdGVtLmNwcAppbmRleCA5NjUxZWY0Mjc3YTcwZTRmZjk4YThlMWRkZTIxOThkNTI2YjM3
YmZiLi41OGViNjI0MjMxOTlkMmFlNjcyYjY3NjY5ZmE1OGUxMDk3ZWU4ZTlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vV29ya2VyQ29udGV4dEZpbGVTeXN0
ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9Xb3JrZXJDb250
ZXh0RmlsZVN5c3RlbS5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBXb3JrZXJDb250ZXh0Rmls
ZVN5c3RlbTo6d2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0oV29ya2VyQ29udGV4dCogd29ya2VyLCBp
bnQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSBm
aWxlU3lzdGVtVHlwZSA9IHN0YXRpY19jYXN0PEFzeW5jRmlsZVN5c3RlbTo6VHlwZT4odHlwZSk7
CisgICAgRmlsZVN5c3RlbVR5cGUgZmlsZVN5c3RlbVR5cGUgPSBzdGF0aWNfY2FzdDxGaWxlU3lz
dGVtVHlwZT4odHlwZSk7CiAgICAgaWYgKCFBc3luY0ZpbGVTeXN0ZW06OmlzVmFsaWRUeXBlKGZp
bGVTeXN0ZW1UeXBlKSkgewogICAgICAgICBET01GaWxlU3lzdGVtOjpzY2hlZHVsZUNhbGxiYWNr
KHdvcmtlciwgZXJyb3JDYWxsYmFjaywgRmlsZUVycm9yOjpjcmVhdGUoRmlsZUVycm9yOjpJTlZB
TElEX01PRElGSUNBVElPTl9FUlIpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNzQsNyArNzQsNyBA
QCBQYXNzUmVmUHRyPERPTUZpbGVTeXN0ZW1TeW5jPiBXb3JrZXJDb250ZXh0RmlsZVN5c3RlbTo6
d2Via2l0UmVxdWVzdEZpbGVTeXN0ZW1TeQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAg
ICBBc3luY0ZpbGVTeXN0ZW06OlR5cGUgZmlsZVN5c3RlbVR5cGUgPSBzdGF0aWNfY2FzdDxBc3lu
Y0ZpbGVTeXN0ZW06OlR5cGU+KHR5cGUpOworICAgIEZpbGVTeXN0ZW1UeXBlIGZpbGVTeXN0ZW1U
eXBlID0gc3RhdGljX2Nhc3Q8RmlsZVN5c3RlbVR5cGU+KHR5cGUpOwogICAgIGlmICghQXN5bmNG
aWxlU3lzdGVtOjppc1ZhbGlkVHlwZShmaWxlU3lzdGVtVHlwZSkpIHsKICAgICAgICAgZWMgPSBG
aWxlRXhjZXB0aW9uOjpJTlZBTElEX01PRElGSUNBVElPTl9FUlI7CiAgICAgICAgIHJldHVybiAw
OwpAQCAtOTQsNyArOTQsNyBAQCB2b2lkIFdvcmtlckNvbnRleHRGaWxlU3lzdGVtOjp3ZWJraXRS
ZXNvbHZlTG9jYWxGaWxlU3lzdGVtVVJMKFdvcmtlckNvbnRleHQqIHdvcgogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGU7CisgICAgRmlsZVN5
c3RlbVR5cGUgdHlwZTsKICAgICBTdHJpbmcgZmlsZVBhdGg7CiAgICAgaWYgKCFjb21wbGV0ZWRV
UkwuaXNWYWxpZCgpIHx8ICFBc3luY0ZpbGVTeXN0ZW06OmNyYWNrRmlsZVN5c3RlbVVSTChjb21w
bGV0ZWRVUkwsIHR5cGUsIGZpbGVQYXRoKSkgewogICAgICAgICBET01GaWxlU3lzdGVtOjpzY2hl
ZHVsZUNhbGxiYWNrKHdvcmtlciwgZXJyb3JDYWxsYmFjaywgRmlsZUVycm9yOjpjcmVhdGUoRmls
ZUVycm9yOjpFTkNPRElOR19FUlIpKTsKQEAgLTExNCw3ICsxMTQsNyBAQCBQYXNzUmVmUHRyPEVu
dHJ5U3luYz4gV29ya2VyQ29udGV4dEZpbGVTeXN0ZW06OndlYmtpdFJlc29sdmVMb2NhbEZpbGVT
eXN0ZW1TeW5jVQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBBc3luY0ZpbGVTeXN0
ZW06OlR5cGUgdHlwZTsKKyAgICBGaWxlU3lzdGVtVHlwZSB0eXBlOwogICAgIFN0cmluZyBmaWxl
UGF0aDsKICAgICBpZiAoIWNvbXBsZXRlZFVSTC5pc1ZhbGlkKCkgfHwgIUFzeW5jRmlsZVN5c3Rl
bTo6Y3JhY2tGaWxlU3lzdGVtVVJMKGNvbXBsZXRlZFVSTCwgdHlwZSwgZmlsZVBhdGgpKSB7CiAg
ICAgICAgIGVjID0gRmlsZUV4Y2VwdGlvbjo6RU5DT0RJTkdfRVJSOwpAQCAtMTM0LDggKzEzNCw4
IEBAIFBhc3NSZWZQdHI8RW50cnlTeW5jPiBXb3JrZXJDb250ZXh0RmlsZVN5c3RlbTo6d2Via2l0
UmVzb2x2ZUxvY2FsRmlsZVN5c3RlbVN5bmNVCiAgICAgcmV0dXJuIGVudHJ5LnJlbGVhc2UoKTsK
IH0KIAotQ09NUElMRV9BU1NFUlQoc3RhdGljX2Nhc3Q8aW50PihXb3JrZXJDb250ZXh0RmlsZVN5
c3RlbTo6VEVNUE9SQVJZKSA9PSBzdGF0aWNfY2FzdDxpbnQ+KEFzeW5jRmlsZVN5c3RlbTo6VGVt
cG9yYXJ5KSwgZW51bV9taXNtYXRjaCk7Ci1DT01QSUxFX0FTU0VSVChzdGF0aWNfY2FzdDxpbnQ+
KFdvcmtlckNvbnRleHRGaWxlU3lzdGVtOjpQRVJTSVNURU5UKSA9PSBzdGF0aWNfY2FzdDxpbnQ+
KEFzeW5jRmlsZVN5c3RlbTo6UGVyc2lzdGVudCksIGVudW1fbWlzbWF0Y2gpOworQ09NUElMRV9B
U1NFUlQoc3RhdGljX2Nhc3Q8aW50PihXb3JrZXJDb250ZXh0RmlsZVN5c3RlbTo6VEVNUE9SQVJZ
KSA9PSBzdGF0aWNfY2FzdDxpbnQ+KEZpbGVTeXN0ZW1UeXBlVGVtcG9yYXJ5KSwgZW51bV9taXNt
YXRjaCk7CitDT01QSUxFX0FTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KFdvcmtlckNvbnRleHRGaWxl
U3lzdGVtOjpQRVJTSVNURU5UKSA9PSBzdGF0aWNfY2FzdDxpbnQ+KEZpbGVTeXN0ZW1UeXBlUGVy
c2lzdGVudCksIGVudW1fbWlzbWF0Y2gpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9Xb3JrZXJDb250ZXh0
RmlsZVN5c3RlbS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL1dvcmtlckNv
bnRleHRGaWxlU3lzdGVtLmgKaW5kZXggYzUwMGY1ZTJlZWY0YzE0ZjNhNDhiOTc1NDU3ZTlhMzk2
ZmUyNGRiYS4uMTk5ZTI4Mzc1ZDQ0YWRiMDUxZDRlNmY2ZmI4YjE4Yzg5NzFkMzQ2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL1dvcmtlckNvbnRleHRGaWxl
U3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL1dvcmtlckNv
bnRleHRGaWxlU3lzdGVtLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgV29ya2VyQ29udGV4dDsK
IAogY2xhc3MgV29ya2VyQ29udGV4dEZpbGVTeXN0ZW0gewogcHVibGljOgotICAgIGVudW0gRmls
ZVN5c3RlbVR5cGUgeworICAgIGVudW0gewogICAgICAgICBURU1QT1JBUlksCiAgICAgICAgIFBF
UlNJU1RFTlQsCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Fz
eW5jRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0
ZW0uY3BwCmluZGV4IDg4YWQ5OGE0ZjEyMzU4OWY2NjQ5NDg4NmEwNmUyZDFkMzJhZmEyYTkuLjEz
YzI4MmUyMDZkZGMxZjU3MGFkZjBmYTRkNTQ0YjAzNDAyOTkzZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcApAQCAtNTIsMTggKzUyLDE4IEBAIGJvb2wg
QXN5bmNGaWxlU3lzdGVtOjppc0F2YWlsYWJsZSgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1i
b29sIEFzeW5jRmlsZVN5c3RlbTo6aXNWYWxpZFR5cGUoVHlwZSB0eXBlKQorYm9vbCBBc3luY0Zp
bGVTeXN0ZW06OmlzVmFsaWRUeXBlKEZpbGVTeXN0ZW1UeXBlIHR5cGUpCiB7Ci0gICAgcmV0dXJu
IHR5cGUgPT0gVGVtcG9yYXJ5IHx8IHR5cGUgPT0gUGVyc2lzdGVudDsKKyAgICByZXR1cm4gdHlw
ZSA9PSBGaWxlU3lzdGVtVHlwZVRlbXBvcmFyeSB8fCB0eXBlID09IEZpbGVTeXN0ZW1UeXBlUGVy
c2lzdGVudDsKIH0KIAotUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+IEFzeW5jRmlsZVN5c3Rl
bTo6Y3JlYXRlKFR5cGUpCitQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gQXN5bmNGaWxlU3lz
dGVtOjpjcmVhdGUoRmlsZVN5c3RlbVR5cGUpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBBc3luY0ZpbGVTeXN0ZW06Om9wZW5GaWxlU3lz
dGVtKGNvbnN0IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkZW50aWZp
ZXIsIFR5cGUgdHlwZSwgYm9vbCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+
IGNhbGxiYWNrcykKK3ZvaWQgQXN5bmNGaWxlU3lzdGVtOjpvcGVuRmlsZVN5c3RlbShjb25zdCBT
dHJpbmcmIGJhc2VQYXRoLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZGVudGlmaWVyLCBGaWxlU3lz
dGVtVHlwZSwgYm9vbCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxi
YWNrcykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIGNhbGxiYWNrcy0+ZGlkRmFpbChO
T1RfU1VQUE9SVEVEX0VSUik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9B
c3luY0ZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3Rl
bS5oCmluZGV4IDc3OTIxMDFjNTMwYTIxYzI2NWNmYzRiNDZhMzQ2ZmI5MjBjNDEyNTMuLjcwNDk4
Y2ExZmU4OGMyMmY3NzZmZmRmMmEzZjRhMjZlNGY1NDhkYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5oCkBAIC0zMyw2ICszMyw3IEBACiAKICNpZiBFTkFCTEUo
RklMRV9TWVNURU0pCiAKKyNpbmNsdWRlICJGaWxlU3lzdGVtVHlwZS5oIgogI2luY2x1ZGUgIktV
UkwuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBA
IC01MCwxMiArNTEsNiBAQCBjbGFzcyBBc3luY0ZpbGVTeXN0ZW0gewogcHVibGljOgogICAgIHZp
cnR1YWwgfkFzeW5jRmlsZVN5c3RlbSgpIHsgfQogCi0gICAgLy8gRmlsZVN5c3RlbSB0eXBlCi0g
ICAgZW51bSBUeXBlIHsKLSAgICAgICAgVGVtcG9yYXJ5LAotICAgICAgICBQZXJzaXN0ZW50LAot
ICAgIH07Ci0KICAgICAvLyBQYXRoIHByZWZpeGVzIHRoYXQgYXJlIHVzZWQgaW4gdGhlIGZpbGVz
eXN0ZW0gVVJMcyAodGhhdCBjYW4gYmUgb2J0YWluZWQgYnkgdG9VUkwoKSkuCiAgICAgLy8gaHR0
cDovL3d3dy53My5vcmcvVFIvZmlsZS1zeXN0ZW0tYXBpLyN3aWRsLUVudHJ5LXRvVVJMCiAgICAg
c3RhdGljIGNvbnN0IGNoYXIgcGVyc2lzdGVudFBhdGhQcmVmaXhbXTsKQEAgLTY4LDkgKzYzLDkg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKIAotICAgIHN0YXRp
YyBib29sIGlzVmFsaWRUeXBlKFR5cGUpOworICAgIHN0YXRpYyBib29sIGlzVmFsaWRUeXBlKEZp
bGVTeXN0ZW1UeXBlKTsKIAotICAgIHN0YXRpYyBib29sIGNyYWNrRmlsZVN5c3RlbVVSTChjb25z
dCBLVVJMJiwgVHlwZSYsIFN0cmluZyYgZmlsZVBhdGgpOworICAgIHN0YXRpYyBib29sIGNyYWNr
RmlsZVN5c3RlbVVSTChjb25zdCBLVVJMJiwgRmlsZVN5c3RlbVR5cGUmLCBTdHJpbmcmIGZpbGVQ
YXRoKTsKIAogICAgIHZpcnR1YWwgU3RyaW5nIHRvVVJMKGNvbnN0IFN0cmluZyYgb3JpZ2luU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGZ1bGxQYXRoKSA9IDA7CiAKQEAgLTc5LDEwICs3NCwxMCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIHdhaXRGb3JPcGVyYXRpb25Ub0NvbXBsZXRlKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIENyZWF0ZXMgYW5kIHJldHVybnMgYSBuZXcgcGxhdGZv
cm0tc3BlY2lmaWMgQXN5bmNGaWxlU3lzdGVtIGluc3RhbmNlIGlmIHRoZSBwbGF0Zm9ybSBoYXMg
aXRzIG93biBpbXBsZW1lbnRhdGlvbi4KLSAgICBzdGF0aWMgUGFzc093blB0cjxBc3luY0ZpbGVT
eXN0ZW0+IGNyZWF0ZShUeXBlKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0
ZW0+IGNyZWF0ZShGaWxlU3lzdGVtVHlwZSk7CiAKICAgICAvLyBPcGVucyBhIG5ldyBmaWxlIHN5
c3RlbS4gVGhlIGNyZWF0ZSBwYXJhbWV0ZXIgc3BlY2lmaWVzIHdoZXRoZXIgb3Igbm90IHRvIGNy
ZWF0ZSB0aGUgcGF0aCBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0cy4KLSAgICBzdGF0aWMg
dm9pZCBvcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIGJhc2VQYXRoLCBjb25zdCBTdHJpbmcm
IHN0b3JhZ2VJZGVudGlmaWVyLCBUeXBlLCBib29sIGNyZWF0ZSwgUGFzc093blB0cjxBc3luY0Zp
bGVTeXN0ZW1DYWxsYmFja3M+KTsKKyAgICBzdGF0aWMgdm9pZCBvcGVuRmlsZVN5c3RlbShjb25z
dCBTdHJpbmcmIGJhc2VQYXRoLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZGVudGlmaWVyLCBGaWxl
U3lzdGVtVHlwZSwgYm9vbCBjcmVhdGUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJh
Y2tzPik7CiAKICAgICAvLyBNb3ZlcyBhIGZpbGUgb3IgZGlyZWN0b3J5IGZyb20gc3JjUGF0aCB0
byBkZXN0UGF0aC4KICAgICAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZFN1Y2NlZWQo
KSBpcyBjYWxsZWQgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHku
CkBAIC0xNDcsMTUgKzE0MiwxNSBAQCBwdWJsaWM6CiAgICAgLy8gQXN5bmNGaWxlU3lzdGVtQ2Fs
bGJhY2tzOjpkaWRGYWlsKCkgaXMgY2FsbGVkIG90aGVyd2lzZS4KICAgICB2aXJ0dWFsIHZvaWQg
Y3JlYXRlU25hcHNob3RGaWxlQW5kUmVhZE1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFz
c093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KSA9IDA7CiAKLSAgICBUeXBlIHR5cGUo
KSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBGaWxlU3lzdGVtVHlwZSB0eXBlKCkgY29u
c3QgeyByZXR1cm4gbV90eXBlOyB9CiAKIHByb3RlY3RlZDoKLSAgICBBc3luY0ZpbGVTeXN0ZW0o
VHlwZSB0eXBlKQorICAgIEFzeW5jRmlsZVN5c3RlbShGaWxlU3lzdGVtVHlwZSB0eXBlKQogICAg
ICAgICA6IG1fdHlwZSh0eXBlKQogICAgIHsKICAgICB9CiAKLSAgICBUeXBlIG1fdHlwZTsKKyAg
ICBGaWxlU3lzdGVtVHlwZSBtX3R5cGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtVHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbVR5cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yY2IyZTdk
YjgyNzVjNWQ3MGJlNjg5ODZjNTdhZGU3NTBkMzVkMGU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbVR5cGUuaApAQCAtMCwwICsxLDYxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBGaWxlU3lzdGVtVHlwZV9oCisjZGVmaW5lIEZpbGVTeXN0ZW1UeXBlX2gKKworI2lmIEVO
QUJMRShGSUxFX1NZU1RFTSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBGb3IgZmlsZSBz
eXN0ZW0gdHlwZXMgdXNlZCBpbiBGaWxlU3lzdGVtIEFQSS4KK2VudW0gRmlsZVN5c3RlbVR5cGUg
eworICAgIEZpbGVTeXN0ZW1UeXBlVGVtcG9yYXJ5LAorICAgIEZpbGVTeXN0ZW1UeXBlUGVyc2lz
dGVudCwKKworI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorICAgIC8vIFRlbXBvcmFyeSBpc29sYXRl
ZCBub24tc2FuZGJveCBmaWxlc3lzdGVtLgorICAgIEZpbGVTeXN0ZW1UeXBlSXNvbGF0ZWQsCisK
KyAgICAvLyBOb24tc2FuZGJveCBmaWxlc3lzdGVtLgorICAgIEZpbGVTeXN0ZW1UeXBlRXh0ZXJu
YWwsCisjZW5kaWYKK307CisKK2VudW0gRmlsZVN5c3RlbVN5bmNocm9ub3VzTW9kZSB7CisgICAg
QXN5bmNocm9ub3VzRmlsZVN5c3RlbSwKKyAgICBTeW5jaHJvbm91c0ZpbGVTeXN0ZW0sCit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9TWVNURU0p
CisKKyNlbmRpZiAvLyBGaWxlU3lzdGVtVHlwZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0FzeW5jRmlsZVN5c3RlbUJsYWNrQmVycnkuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9Bc3luY0ZpbGVTeXN0ZW1CbGFja0JlcnJ5
LmNwcAppbmRleCA1ZmUyOTdlYjI0ZGQzOWNlZTQzN2I3MjEwZmUyNjZmZmEzNjJjYzMzLi5kYzI2
YmI1ZGM2YzE0MTc4YTlhNmFkZGU1ODk0NGQ5MzY0OTk4ZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0FzeW5jRmlsZVN5c3RlbUJsYWNrQmVycnkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvQXN5bmNGaWxlU3lzdGVt
QmxhY2tCZXJyeS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgYm9vbCBBc3luY0ZpbGVTeXN0ZW06Omlz
QXZhaWxhYmxlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgQXN5bmNGaWxlU3lzdGVt
Ojppc1ZhbGlkVHlwZShUeXBlIHR5cGUpCitib29sIEFzeW5jRmlsZVN5c3RlbTo6aXNWYWxpZFR5
cGUoRmlsZVN5c3RlbVR5cGUgdHlwZSkKIHsKICAgICBVTlVTRURfUEFSQU0odHlwZSk7CiAKQEAg
LTQzLDEyICs0MywxMiBAQCBib29sIEFzeW5jRmlsZVN5c3RlbTo6aXNWYWxpZFR5cGUoVHlwZSB0
eXBlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+
IEFzeW5jRmlsZVN5c3RlbTo6Y3JlYXRlKFR5cGUgdHlwZSkKK1Bhc3NPd25QdHI8QXN5bmNGaWxl
U3lzdGVtPiBBc3luY0ZpbGVTeXN0ZW06OmNyZWF0ZShGaWxlU3lzdGVtVHlwZSB0eXBlKQogewog
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgQXN5bmNGaWxlU3lzdGVtQmxhY2tCZXJyeSh0eXBlKSk7
CiB9CiAKLXZvaWQgQXN5bmNGaWxlU3lzdGVtOjpvcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcm
IGJhc2VQYXRoLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZGVudGlmaWVyLCBUeXBlIHR5cGUsIGJv
b2wsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit2b2lk
IEFzeW5jRmlsZVN5c3RlbTo6b3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCwg
Y29uc3QgU3RyaW5nJiBzdG9yYWdlSWRlbnRpZmllciwgRmlsZVN5c3RlbVR5cGUgdHlwZSwgYm9v
bCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKIHsKICAg
ICBVTlVTRURfUEFSQU0oYmFzZVBhdGgpOwogICAgIFVOVVNFRF9QQVJBTShzdG9yYWdlSWRlbnRp
Zmllcik7CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgQXN5bmNGaWxlU3lzdGVtOjpvcGVuRmlsZVN5
c3RlbShjb25zdCBTdHJpbmcmIGJhc2VQYXRoLCBjb25zdCBTdHJpbmcmIHN0b3JhCiAgICAgY2Fs
bGJhY2tzLT5kaWRGYWlsKE5PVF9TVVBQT1JURURfRVJSKTsKIH0KIAotYm9vbCBBc3luY0ZpbGVT
eXN0ZW06OmNyYWNrRmlsZVN5c3RlbVVSTChjb25zdCBLVVJMJiB1cmwsIEFzeW5jRmlsZVN5c3Rl
bTo6VHlwZSYgdHlwZSwgU3RyaW5nJiBmaWxlUGF0aCkKK2Jvb2wgQXN5bmNGaWxlU3lzdGVtOjpj
cmFja0ZpbGVTeXN0ZW1VUkwoY29uc3QgS1VSTCYgdXJsLCBGaWxlU3lzdGVtVHlwZSYgdHlwZSwg
U3RyaW5nJiBmaWxlUGF0aCkKIHsKICAgICBVTlVTRURfUEFSQU0odXJsKTsKICAgICBVTlVTRURf
UEFSQU0odHlwZSk7CkBAIC02OSw3ICs2OSw3IEBAIGJvb2wgQXN5bmNGaWxlU3lzdGVtOjpjcmFj
a0ZpbGVTeXN0ZW1VUkwoY29uc3QgS1VSTCYgdXJsLCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUmCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi1Bc3luY0ZpbGVTeXN0ZW1CbGFja0JlcnJ5OjpBc3luY0Zp
bGVTeXN0ZW1CbGFja0JlcnJ5KEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlKQorQXN5bmNGaWxl
U3lzdGVtQmxhY2tCZXJyeTo6QXN5bmNGaWxlU3lzdGVtQmxhY2tCZXJyeShGaWxlU3lzdGVtVHlw
ZSB0eXBlKQogICAgIDogQXN5bmNGaWxlU3lzdGVtKHR5cGUpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKQEAgLTgwLDEzICs4MCwxMyBAQCBBc3luY0ZpbGVTeXN0ZW1CbGFja0JlcnJ5Ojp+QXN5
bmNGaWxlU3lzdGVtQmxhY2tCZXJyeSgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotU3Ry
aW5nIEFzeW5jRmlsZVN5c3RlbUJsYWNrQmVycnk6OnRvVVJMKGNvbnN0IFN0cmluZyYgb3JpZ2lu
U3RyaW5nLCBjb25zdCBTdHJpbmcmIGZ1bGxQYXRoKQorS1VSTCBBc3luY0ZpbGVTeXN0ZW1CbGFj
a0JlcnJ5Ojp0b1VSTChjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgY29uc3QgU3RyaW5nJiBm
dWxsUGF0aCkgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0ob3JpZ2luU3RyaW5nKTsKICAgICBV
TlVTRURfUEFSQU0oZnVsbFBhdGgpOwogCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gU3RyaW5nKCk7CisgICAgcmV0dXJuIEtVUkwoKTsKIH0KIAogdm9pZCBBc3luY0ZpbGVTeXN0
ZW1CbGFja0JlcnJ5Ojptb3ZlKGNvbnN0IFN0cmluZyYgc291cmNlUGF0aCwgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvblBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBj
YWxsYmFja3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5
L0FzeW5jRmlsZVN5c3RlbUJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Js
YWNrYmVycnkvQXN5bmNGaWxlU3lzdGVtQmxhY2tCZXJyeS5oCmluZGV4IDhmYTlhMTk5YjU3Y2U1
ZTgwNGYxZDc1N2QwZDFmZDU5OGU3MjUzYTQuLjM4YjE3YzcwZjRiZDlkZWVlYzZkODBiOTM4MzI0
YWYwNTAwODY0ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVy
cnkvQXN5bmNGaWxlU3lzdGVtQmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2JsYWNrYmVycnkvQXN5bmNGaWxlU3lzdGVtQmxhY2tCZXJyeS5oCkBAIC0yNyw5ICsyNyw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXN5bmNGaWxlU3lzdGVtQmxhY2tCZXJy
eSA6IHB1YmxpYyBBc3luY0ZpbGVTeXN0ZW0gewogcHVibGljOgotICAgIEFzeW5jRmlsZVN5c3Rl
bUJsYWNrQmVycnkoQXN5bmNGaWxlU3lzdGVtOjpUeXBlKTsKKyAgICBBc3luY0ZpbGVTeXN0ZW1C
bGFja0JlcnJ5KEZpbGVTeXN0ZW1UeXBlKTsKICAgICB2aXJ0dWFsIH5Bc3luY0ZpbGVTeXN0ZW1C
bGFja0JlcnJ5KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgdG9VUkwoY29uc3QgU3RyaW5nJiBvcmln
aW5TdHJpbmcsIGNvbnN0IFN0cmluZyYgZnVsbFBhdGgpOworICAgIHZpcnR1YWwgS1VSTCB0b1VS
TChjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgY29uc3QgU3RyaW5nJiBmdWxsUGF0aCkgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIG1vdmUoY29uc3QgU3RyaW5nJiBzb3VyY2VQYXRoLCBjb25z
dCBTdHJpbmcmIGRlc3RpbmF0aW9uUGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3M+KTsKICAgICB2aXJ0dWFsIHZvaWQgY29weShjb25zdCBTdHJpbmcmIHNvdXJjZVBhdGgs
IGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25QYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrcz4pOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoY29uc3QgU3RyaW5nJiBwYXRo
LCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0FzeW5jRmlsZVN5c3RlbUd0ay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvQXN5bmNGaWxlU3lzdGVtR3RrLmNwcAppbmRleCBjMWRiMDA2
YTg0OGYzOTI2ZGQ5ZmVjMzFmOTY0YTBmZGJkYWY2OWZjLi42YjAxODg0M2YzNWE2ZTA2YjZkODg4
NjE0MWExMjEwY2MzNzFjMmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvQXN5bmNGaWxlU3lzdGVtR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvQXN5bmNGaWxlU3lzdGVtR3RrLmNwcApAQCAtMzUsMzAgKzM1LDMwIEBAIGJvb2wgQXN5bmNG
aWxlU3lzdGVtOjppc0F2YWlsYWJsZSgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEFz
eW5jRmlsZVN5c3RlbTo6aXNWYWxpZFR5cGUoVHlwZSB0eXBlKQorYm9vbCBBc3luY0ZpbGVTeXN0
ZW06OmlzVmFsaWRUeXBlKEZpbGVTeXN0ZW1UeXBlIHR5cGUpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVt
PiBBc3luY0ZpbGVTeXN0ZW06OmNyZWF0ZShUeXBlIHR5cGUpCitQYXNzT3duUHRyPEFzeW5jRmls
ZVN5c3RlbT4gQXN5bmNGaWxlU3lzdGVtOjpjcmVhdGUoRmlsZVN5c3RlbVR5cGUgdHlwZSkKIHsK
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEFzeW5jRmlsZVN5c3RlbUd0ayh0eXBlKSk7CiB9CiAK
LXZvaWQgQXN5bmNGaWxlU3lzdGVtOjpvcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIGJhc2VQ
YXRoLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZGVudGlmaWVyLCBUeXBlIHR5cGUsIGJvb2wsIFBh
c3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit2b2lkIEFzeW5j
RmlsZVN5c3RlbTo6b3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCwgY29uc3Qg
U3RyaW5nJiBzdG9yYWdlSWRlbnRpZmllciwgRmlsZVN5c3RlbVR5cGUgdHlwZSwgYm9vbCwgUGFz
c093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogICAgIGNhbGxiYWNrcy0+ZGlkRmFpbChOT1RfU1VQUE9SVEVEX0VSUik7
CiB9CiAKLWJvb2wgQXN5bmNGaWxlU3lzdGVtOjpjcmFja0ZpbGVTeXN0ZW1VUkwoY29uc3QgS1VS
TCYgdXJsLCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUmIHR5cGUsIFN0cmluZyYgZmlsZVBhdGgpCiti
b29sIEFzeW5jRmlsZVN5c3RlbTo6Y3JhY2tGaWxlU3lzdGVtVVJMKGNvbnN0IEtVUkwmIHVybCwg
RmlsZVN5c3RlbVR5cGUmIHR5cGUsIFN0cmluZyYgZmlsZVBhdGgpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUFzeW5jRmlsZVN5c3RlbUd0azo6QXN5
bmNGaWxlU3lzdGVtR3RrKEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlKQorQXN5bmNGaWxlU3lz
dGVtR3RrOjpBc3luY0ZpbGVTeXN0ZW1HdGsoRmlsZVN5c3RlbVR5cGUgdHlwZSkKICAgICA6IEFz
eW5jRmlsZVN5c3RlbSh0eXBlKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC02OSwxMCAr
NjksMTAgQEAgQXN5bmNGaWxlU3lzdGVtR3RrOjp+QXN5bmNGaWxlU3lzdGVtR3RrKCkKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCi1TdHJpbmcgQXN5bmNGaWxlU3lzdGVtR3RrOjp0b1VSTChj
b25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgY29uc3QgU3RyaW5nJiBmdWxsUGF0aCkKK0tVUkwg
QXN5bmNGaWxlU3lzdGVtR3RrOjp0b1VSTChjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgY29u
c3QgU3RyaW5nJiBmdWxsUGF0aCkgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBTdHJpbmcoKTsKKyAgICByZXR1cm4gS1VSTCgpOwogfQogCiB2b2lkIEFzeW5jRmls
ZVN5c3RlbUd0azo6bW92ZShjb25zdCBTdHJpbmcmIHNvdXJjZVBhdGgsIGNvbnN0IFN0cmluZyYg
ZGVzdGluYXRpb25QYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2Fs
bGJhY2tzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0FzeW5jRmls
ZVN5c3RlbUd0ay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0FzeW5jRmlsZVN5c3Rl
bUd0ay5oCmluZGV4IGNiNDViNmVhNGJjMjAyMGU4ZWI0YzhlYjVhMTk4ZjA3NmY1YTY5N2IuLjBi
ZGEzNjc0ZjEwZTU0Yjk3OTQwNzZjNTg0YzFiMzk1OTY1ZDhjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Bc3luY0ZpbGVTeXN0ZW1HdGsuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvQXN5bmNGaWxlU3lzdGVtR3RrLmgKQEAgLTMxLDEwICszMSwx
MCBAQCBjbGFzcyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M7CiAKIGNsYXNzIEFzeW5jRmlsZVN5
c3RlbUd0ayA6IHB1YmxpYyBBc3luY0ZpbGVTeXN0ZW0gewogcHVibGljOgotICAgIEFzeW5jRmls
ZVN5c3RlbUd0ayhBc3luY0ZpbGVTeXN0ZW06OlR5cGUpOworICAgIEFzeW5jRmlsZVN5c3RlbUd0
ayhGaWxlU3lzdGVtVHlwZSk7CiAgICAgdmlydHVhbCB+QXN5bmNGaWxlU3lzdGVtR3RrKCk7CiAK
LSAgICB2aXJ0dWFsIFN0cmluZyB0b1VSTChjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgY29u
c3QgU3RyaW5nJiBmdWxsUGF0aCk7CisgICAgdmlydHVhbCBLVVJMIHRvVVJMKGNvbnN0IFN0cmlu
ZyYgb3JpZ2luU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZ1bGxQYXRoKSBjb25zdDsKICAgICB2aXJ0
dWFsIHZvaWQgbW92ZShjb25zdCBTdHJpbmcmIHNvdXJjZVBhdGgsIGNvbnN0IFN0cmluZyYgZGVz
dGluYXRpb25QYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOwogICAg
IHZpcnR1YWwgdm9pZCBjb3B5KGNvbnN0IFN0cmluZyYgc291cmNlUGF0aCwgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvblBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7
CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZShjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8
QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCmluZGV4IDU3NTI3ZDQ2OGIzNDE2NjY2ODNj
ZmNkN2ViZjZjMzNlMDZmNWMzNWUuLjlmMzlmYzM3MmI1NTIyMWE2NWM2ZTcyODk5MzMxNTVkZTk2
N2NmYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNo
aW5nRW51bXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNo
aW5nRW51bXMuY3BwCkBAIC0zNiwxMyArMzYsMTMgQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hl
LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdC5oIgogI2luY2x1ZGUgIkFwcGxpY2F0
aW9uQ2FjaGVIb3N0LmgiCi0jaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAi
Q29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXIuaCIKICNp
bmNsdWRlICJFZGl0b3JJbnNlcnRBY3Rpb24uaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CiAjaW5jbHVkZSAiRmlsZUVycm9yLmgiCiAjaW5jbHVkZSAiRmlsZU1ldGFkYXRhLmgiCisjaW5j
bHVkZSAiRmlsZVN5c3RlbVR5cGUuaCIKICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb24uaCIKICNp
bmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250U21vb3RoaW5nTW9kZS5o
IgpAQCAtNDcwLDggKzQ3MCwxMCBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklE
QktleTo6RGF0ZVR5cGUsIElEQktleTo6RGF0ZVR5cGUpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXZWJJREJLZXk6Ok51bWJlclR5cGUsIElEQktleTo6TnVtYmVyVHlwZSk7CiAKICNp
ZiBFTkFCTEUoRklMRV9TWVNURU0pCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkZp
bGVTeXN0ZW06OlR5cGVUZW1wb3JhcnksIEFzeW5jRmlsZVN5c3RlbTo6VGVtcG9yYXJ5KTsKLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViRmlsZVN5c3RlbTo6VHlwZVBlcnNpc3RlbnQs
IEFzeW5jRmlsZVN5c3RlbTo6UGVyc2lzdGVudCk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdlYkZpbGVTeXN0ZW06OlR5cGVUZW1wb3JhcnksIEZpbGVTeXN0ZW1UeXBlVGVtcG9yYXJ5
KTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViRmlsZVN5c3RlbTo6VHlwZVBlcnNp
c3RlbnQsIEZpbGVTeXN0ZW1UeXBlUGVyc2lzdGVudCk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElO
R19FTlVNKFdlYkZpbGVTeXN0ZW06OlR5cGVFeHRlcm5hbCwgRmlsZVN5c3RlbVR5cGVFeHRlcm5h
bCk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkZpbGVTeXN0ZW06OlR5cGVJc29s
YXRlZCwgRmlsZVN5c3RlbVR5cGVJc29sYXRlZCk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdlYkZpbGVJbmZvOjpUeXBlVW5rbm93biwgRmlsZU1ldGFkYXRhOjpUeXBlVW5rbm93bik7
CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkZpbGVJbmZvOjpUeXBlRmlsZSwgRmls
ZU1ldGFkYXRhOjpUeXBlRmlsZSk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkZp
bGVJbmZvOjpUeXBlRGlyZWN0b3J5LCBGaWxlTWV0YWRhdGE6OlR5cGVEaXJlY3RvcnkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21p
dW0uY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21p
dW0uY3BwCmluZGV4IDZmMzU5ODM3MDMwYTU3ZTg0OWFhN2FlZTA2ZGY5MTA0Njk5MDEzOTcuLjFl
MGZlZGJkNmY5ZmNkMWRlZTYxNzA2ZmVhNjcxNjEzNTM2MTc4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKQEAg
LTUyLDExICs1Miw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSB7CiAKIC8vIEZv
ciBpc29sYXRlZCBmaWxlc3lzdGVtLgotY29uc3QgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIGlzb2xh
dGVkVHlwZSA9IHN0YXRpY19jYXN0PEFzeW5jRmlsZVN5c3RlbTo6VHlwZT4oV2ViS2l0OjpXZWJG
aWxlU3lzdGVtOjpUeXBlSXNvbGF0ZWQpOwogY29uc3QgY2hhciBpc29sYXRlZFBhdGhQcmVmaXhb
XSA9ICJpc29sYXRlZCI7CiAKIC8vIEZvciBleHRlcm5hbCBmaWxlc3lzdGVtLgotY29uc3QgQXN5
bmNGaWxlU3lzdGVtOjpUeXBlIGV4dGVybmFsVHlwZSA9IHN0YXRpY19jYXN0PEFzeW5jRmlsZVN5
c3RlbTo6VHlwZT4oV2ViS2l0OjpXZWJGaWxlU3lzdGVtOjpUeXBlRXh0ZXJuYWwpOwogY29uc3Qg
Y2hhciBleHRlcm5hbFBhdGhQcmVmaXhbXSA9ICJleHRlcm5hbCI7CiBjb25zdCBzaXplX3QgZXh0
ZXJuYWxQYXRoUHJlZml4TGVuZ3RoID0gc2l6ZW9mKGV4dGVybmFsUGF0aFByZWZpeCkgLSAxOwog
CkBAIC0xMDUsNyArMTAzLDcgQEAgYm9vbCBBc3luY0ZpbGVTeXN0ZW06OmlzQXZhaWxhYmxlKCkK
IH0KIAogLy8gc3RhdGljCi1ib29sIEFzeW5jRmlsZVN5c3RlbTo6Y3JhY2tGaWxlU3lzdGVtVVJM
KGNvbnN0IEtVUkwmIHVybCwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlJiB0eXBlLCBTdHJpbmcmIGZp
bGVQYXRoKQorYm9vbCBBc3luY0ZpbGVTeXN0ZW06OmNyYWNrRmlsZVN5c3RlbVVSTChjb25zdCBL
VVJMJiB1cmwsIEZpbGVTeXN0ZW1UeXBlJiB0eXBlLCBTdHJpbmcmIGZpbGVQYXRoKQogewogICAg
IGlmICghdXJsLnByb3RvY29sSXMoImZpbGVzeXN0ZW0iKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMTEzLDUxICsxMTEsMjYgQEAgYm9vbCBBc3luY0ZpbGVTeXN0ZW06OmNyYWNrRmlsZVN5
c3RlbVVSTChjb25zdCBLVVJMJiB1cmwsIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSYKICAgICBpZiAo
dXJsLmlubmVyVVJMKCkpIHsKICAgICAgICAgU3RyaW5nIHR5cGVTdHJpbmcgPSB1cmwuaW5uZXJV
UkwoKS0+cGF0aCgpLnN1YnN0cmluZygxKTsKICAgICAgICAgaWYgKHR5cGVTdHJpbmcgPT0gdGVt
cG9yYXJ5UGF0aFByZWZpeCkKLSAgICAgICAgICAgIHR5cGUgPSBUZW1wb3Jhcnk7CisgICAgICAg
ICAgICB0eXBlID0gRmlsZVN5c3RlbVR5cGVUZW1wb3Jhcnk7CiAgICAgICAgIGVsc2UgaWYgKHR5
cGVTdHJpbmcgPT0gcGVyc2lzdGVudFBhdGhQcmVmaXgpCi0gICAgICAgICAgICB0eXBlID0gUGVy
c2lzdGVudDsKKyAgICAgICAgICAgIHR5cGUgPSBGaWxlU3lzdGVtVHlwZVBlcnNpc3RlbnQ7CiAg
ICAgICAgIGVsc2UgaWYgKHR5cGVTdHJpbmcgPT0gZXh0ZXJuYWxQYXRoUHJlZml4KQotICAgICAg
ICAgICAgdHlwZSA9IGV4dGVybmFsVHlwZTsKKyAgICAgICAgICAgIHR5cGUgPSBGaWxlU3lzdGVt
VHlwZUV4dGVybmFsOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICAgICAgZmlsZVBhdGggPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXModXJsLnBhdGgoKSk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGNsYXVzZSBvbmNl
IGh0dHA6Ly9jb2RlcmV2aWV3LmNocm9taXVtLm9yZy83ODExMDA2Ci0gICAgICAgIC8vIGxhbmRz
LCB3aGljaCBtYWtlcyB0aGlzIGRlYWQgY29kZS4KLSAgICAgICAgS1VSTCBvcmlnaW5VUkwoUGFy
c2VkVVJMU3RyaW5nLCB1cmwucGF0aCgpKTsKLSAgICAgICAgU3RyaW5nIHBhdGggPSBkZWNvZGVV
UkxFc2NhcGVTZXF1ZW5jZXMob3JpZ2luVVJMLnBhdGgoKSk7Ci0gICAgICAgIGlmIChwYXRoLmlz
RW1wdHkoKSB8fCBwYXRoWzBdICE9ICcvJykKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDEpOwotCi0gICAgICAgIGlmIChwYXRoLnN0YXJ0
c1dpdGgodGVtcG9yYXJ5UGF0aFByZWZpeCkpIHsKLSAgICAgICAgICAgIHR5cGUgPSBUZW1wb3Jh
cnk7Ci0gICAgICAgICAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcodGVtcG9yYXJ5UGF0aFByZWZp
eExlbmd0aCk7Ci0gICAgICAgIH0gZWxzZSBpZiAocGF0aC5zdGFydHNXaXRoKHBlcnNpc3RlbnRQ
YXRoUHJlZml4KSkgewotICAgICAgICAgICAgdHlwZSA9IFBlcnNpc3RlbnQ7Ci0gICAgICAgICAg
ICBwYXRoID0gcGF0aC5zdWJzdHJpbmcocGVyc2lzdGVudFBhdGhQcmVmaXhMZW5ndGgpOwotICAg
ICAgICB9IGVsc2UgaWYgKHBhdGguc3RhcnRzV2l0aChleHRlcm5hbFBhdGhQcmVmaXgpKSB7Ci0g
ICAgICAgICAgICB0eXBlID0gZXh0ZXJuYWxUeXBlOwotICAgICAgICAgICAgcGF0aCA9IHBhdGgu
c3Vic3RyaW5nKGV4dGVybmFsUGF0aFByZWZpeExlbmd0aCk7Ci0gICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIGlmIChwYXRoLmlzRW1wdHkoKSB8fCBw
YXRoWzBdICE9ICcvJykKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBmaWxl
UGF0aC5zd2FwKHBhdGgpOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogLy8gc3RhdGlj
Ci1ib29sIEFzeW5jRmlsZVN5c3RlbTo6aXNWYWxpZFR5cGUoVHlwZSB0eXBlKQorYm9vbCBBc3lu
Y0ZpbGVTeXN0ZW06OmlzVmFsaWRUeXBlKEZpbGVTeXN0ZW1UeXBlIHR5cGUpCiB7Ci0gICAgcmV0
dXJuIHR5cGUgPT0gVGVtcG9yYXJ5IHx8IHR5cGUgPT0gUGVyc2lzdGVudCB8fCB0eXBlID09IHN0
YXRpY19jYXN0PFR5cGU+KFdlYktpdDo6V2ViRmlsZVN5c3RlbTo6VHlwZUV4dGVybmFsKTsKKyAg
ICByZXR1cm4gdHlwZSA9PSBGaWxlU3lzdGVtVHlwZVRlbXBvcmFyeSB8fCB0eXBlID09IEZpbGVT
eXN0ZW1UeXBlUGVyc2lzdGVudCB8fCB0eXBlID09IEZpbGVTeXN0ZW1UeXBlRXh0ZXJuYWw7CiB9
CiAKLUFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bShBc3lu
Y0ZpbGVTeXN0ZW06OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYgcm9vdFVSTCkKK0FzeW5jRmlsZVN5
c3RlbUNocm9taXVtOjpBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bShGaWxlU3lzdGVtVHlwZSB0eXBl
LCBjb25zdCBLVVJMJiByb290VVJMKQogICAgIDogQXN5bmNGaWxlU3lzdGVtKHR5cGUpCiAgICAg
LCBtX3dlYkZpbGVTeXN0ZW0oV2ViS2l0Ojp3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+ZmlsZVN5
c3RlbSgpKQogICAgICwgbV9maWxlc3lzdGVtUm9vdFVSTChyb290VVJMKQpAQCAtMTkxLDcgKzE2
NCw3IEBAIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1
bTo6Y3JlYXRlSXNvbGF0ZWRGaWxlU3lzdGVtKGNvCiAgICAgcm9vdFVSTC5hcHBlbmQoZmlsZXN5
c3RlbUlkKTsKICAgICByb290VVJMLmFwcGVuZCgiLyIpOwogCi0gICAgcmV0dXJuIEFzeW5jRmls
ZVN5c3RlbUNocm9taXVtOjpjcmVhdGUoaXNvbGF0ZWRUeXBlLCBLVVJMKFBhcnNlZFVSTFN0cmlu
Zywgcm9vdFVSTC50b1N0cmluZygpKSk7CisgICAgcmV0dXJuIEFzeW5jRmlsZVN5c3RlbUNocm9t
aXVtOjpjcmVhdGUoRmlsZVN5c3RlbVR5cGVJc29sYXRlZCwgS1VSTChQYXJzZWRVUkxTdHJpbmcs
IHJvb3RVUkwudG9TdHJpbmcoKSkpOwogfQogCiBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6fkFz
eW5jRmlsZVN5c3RlbUNocm9taXVtKCkKQEAgLTIwNSwxMCArMTc4LDEwIEBAIFN0cmluZyBBc3lu
Y0ZpbGVTeXN0ZW1DaHJvbWl1bTo6dG9VUkwoY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIGNv
bnN0IFN0cmluZyYKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCiAgICAgLy8gRm9yIG5vdyB3
ZSBkb24ndCBzdXBwb3J0IHRvVVJMIGZvciBpc29sYXRlZCBmaWxlc3lzdGVtICh1bnRpbCB3ZSBy
ZXNvbHZlIHRoZSBpc29sYXRlZCBmaWxlc3lzdGVtIGxpZmV0aW1lIGlzc3VlKS4KLSAgICBpZiAo
dHlwZSgpID09IGlzb2xhdGVkVHlwZSkKKyAgICBpZiAodHlwZSgpID09IEZpbGVTeXN0ZW1UeXBl
SXNvbGF0ZWQpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIGlmICh0eXBlKCkgPT0g
ZXh0ZXJuYWxUeXBlKSB7CisgICAgaWYgKHR5cGUoKSA9PSBGaWxlU3lzdGVtVHlwZUV4dGVybmFs
KSB7CiAgICAgICAgIC8vIEZvciBleHRlcm5hbCBmaWxlc3lzdGVtIG9yaWdpblN0cmluZyBjb3Vs
ZCBiZSBkaWZmZXJlbnQgZnJvbSB3aGF0IHdlIGhhdmUgaW4gbV9maWxlc3lzdGVtUm9vdFVSTC4K
ICAgICAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoImZp
bGVzeXN0ZW06Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3lu
Y0ZpbGVTeXN0ZW1DaHJvbWl1bS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXN5bmNG
aWxlU3lzdGVtQ2hyb21pdW0uaAppbmRleCBmNTY1YjMzNGQwZmFjYzk5MjZiMTMyZjMyMmIwYmRi
NmFkYWVmMTg0Li5hNDgwOWY0NWZkNzljODI5ODE4MWU0OTVjYjY2MjBlNTg4YzY5YzYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1
bS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9t
aXVtLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgS1VSTDsKIAogY2xhc3MgQXN5bmNGaWxlU3lz
dGVtQ2hyb21pdW0gOiBwdWJsaWMgQXN5bmNGaWxlU3lzdGVtIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+IGNyZWF0ZShBc3luY0ZpbGVTeXN0ZW06OlR5
cGUgdHlwZSwgY29uc3QgS1VSTCYgcm9vdFVSTCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxBc3lu
Y0ZpbGVTeXN0ZW0+IGNyZWF0ZShGaWxlU3lzdGVtVHlwZSB0eXBlLCBjb25zdCBLVVJMJiByb290
VVJMKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBBc3luY0ZpbGVTeXN0ZW1D
aHJvbWl1bSh0eXBlLCByb290VVJMKSk7CiAgICAgfQpAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVNuYXBzaG90RmlsZUFuZFJlYWRNZXRhZGF0YShjb25z
dCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CiAK
IHByb3RlY3RlZDoKLSAgICBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bShBc3luY0ZpbGVTeXN0ZW06
OlR5cGUsIGNvbnN0IEtVUkwmIHJvb3RVUkwpOworICAgIEFzeW5jRmlsZVN5c3RlbUNocm9taXVt
KEZpbGVTeXN0ZW1UeXBlLCBjb25zdCBLVVJMJiByb290VVJMKTsKIAogICAgIFBhc3NPd25QdHI8
QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjcmVhdGVTbmFwc2hvdEZpbGVDYWxsYmFjayhjb25z
dCBLVVJMJiBpbnRlcm5hbEJsb2JVUkwsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJh
Y2tzPikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xv
Y2FsRmlsZVN5c3RlbUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xv
Y2FsRmlsZVN5c3RlbUNocm9taXVtLmNwcAppbmRleCAyOTcxYjk5MThhNjMzNmNkNmRjYTFlMmRi
ZGNhNjQ1OWFmNTNjYjE1Li44MjJkMTZiNmM1MjA4NjdmMTgwM2Y1OGMyNzYzMDlhMjRlNzZhZmUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbEZpbGVTeXN0ZW1D
aHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lz
dGVtQ2hyb21pdW0uY3BwCkBAIC0zMywxMiArMzMsMTIgQEAKIAogI2lmIEVOQUJMRShGSUxFX1NZ
U1RFTSkKIAotI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkNyb3NzVGhy
ZWFkVGFzay5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXJyb3JDYWxsYmFj
ay5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1DYWxsYmFjay5oIgogI2luY2x1ZGUgIkZpbGVTeXN0
ZW1DYWxsYmFja3MuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtVHlwZS5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViRmlsZUVycm9yLmgiCiAjaW5jbHVkZSAicGxh
dGZvcm0vV2ViRmlsZVN5c3RlbS5oIgpAQCAtMTgzLDcgKzE4Myw3IEBAIHN0YXRpYyB2b2lkIG9w
ZW5GaWxlU3lzdGVtTm90QWxsb3dlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc093blB0
cjxBc3luY0ZpCiAgICAgY2FsbGJhY2tzLT5kaWRGYWlsKFdlYktpdDo6V2ViRmlsZUVycm9yQWJv
cnQpOwogfQogCi1zdGF0aWMgdm9pZCBvcGVuRmlsZVN5c3RlbUhlbHBlcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUgdHlwZSwgUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcywgYm9vbCBzeW5jaHJvbm91cywg
bG9uZyBsb25nIHNpemUsIENyZWF0aW9uRmxhZyBjcmVhdGUpCitzdGF0aWMgdm9pZCBvcGVuRmls
ZVN5c3RlbUhlbHBlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBGaWxlU3lzdGVt
VHlwZSB0eXBlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tz
LCBib29sIHN5bmNocm9ub3VzLCBsb25nIGxvbmcgc2l6ZSwgQ3JlYXRpb25GbGFnIGNyZWF0ZSkK
IHsKICAgICBib29sIGFsbG93ZWQgPSB0cnVlOwogICAgIEFTU0VSVChjb250ZXh0KTsKQEAgLTIx
NiwxMiArMjE2LDEyIEBAIHN0YXRpYyB2b2lkIG9wZW5GaWxlU3lzdGVtSGVscGVyKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFzeW5jRmlsZVN5c3RlCiAgICAgfQogfQogCi12b2lk
IExvY2FsRmlsZVN5c3RlbTo6cmVhZEZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIFBhc3NPd25QdHI8QXN5bmNGaWxl
U3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGJvb2wgc3luY2hyb25vdXMpCit2b2lkIExvY2Fs
RmlsZVN5c3RlbTo6cmVhZEZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgRmlsZVN5c3RlbVR5cGUgdHlwZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFj
a3M+IGNhbGxiYWNrcywgYm9vbCBzeW5jaHJvbm91cykKIHsKICAgICBvcGVuRmlsZVN5c3RlbUhl
bHBlcihjb250ZXh0LCB0eXBlLCBjYWxsYmFja3MsIHN5bmNocm9ub3VzLCAwLCBPcGVuRXhpc3Rp
bmcpOwogfQogCi12b2lkIExvY2FsRmlsZVN5c3RlbTo6cmVxdWVzdEZpbGVTeXN0ZW0oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIGxv
bmcgbG9uZyBzaXplLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJh
Y2tzLCBib29sIHN5bmNocm9ub3VzKQordm9pZCBMb2NhbEZpbGVTeXN0ZW06OnJlcXVlc3RGaWxl
U3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEZpbGVTeXN0ZW1UeXBlIHR5
cGUsIGxvbmcgbG9uZyBzaXplLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4g
Y2FsbGJhY2tzLCBib29sIHN5bmNocm9ub3VzKQogewogICAgIG9wZW5GaWxlU3lzdGVtSGVscGVy
KGNvbnRleHQsIHR5cGUsIGNhbGxiYWNrcywgc3luY2hyb25vdXMsIHNpemUsIENyZWF0ZUlmTm90
UHJlc2VudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJG
aWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggOTg0Y2ViZmRjZjhiMDc0NWIyNzUx
ZWZmZDMyY2IwYmZlODIzZjQyMy4uZTU4NzhiNWFjMTc5NjQ4MDA0NjdkMWFiMDc1ZTY0ZWJiMmNk
MDUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRmlsZVN5c3Rl
bUNhbGxiYWNrc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZp
bGVTeXN0ZW1DYWxsYmFja3NJbXBsLmNwcApAQCAtNDcsNyArNDcsNyBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYkZpbGVTeXN0ZW1DYWxsYmFj
a3NJbXBsOjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChQYXNzT3duUHRyPEFzeW5jRmlsZVN5
c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUgdHlwZSwgV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgYm9vbCBzeW5jaHJvbm91cykK
K1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsOjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChQ
YXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBGaWxlU3lzdGVt
VHlwZSB0eXBlLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBib29s
IHN5bmNocm9ub3VzKQogICAgIDogbV9jYWxsYmFja3MoY2FsbGJhY2tzKQogICAgICwgbV90eXBl
KHR5cGUpCiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5oCmluZGV4IGQyYmU1
NzQzNDU1YjVkMjYxZDg4YzFlZmU3ZGY5OGU4Y2FlYzVlOWEuLmI4ZWUzNGUzMjUzM2IzYjJlOGJk
Y2UyNTMxOGQwZWQ1ZDk4NTcyYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuaApAQCAtMzEsOSArMzEsOSBAQAog
I2lmbmRlZiBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbF9oCiAjZGVmaW5lIFdlYkZpbGVTeXN0
ZW1DYWxsYmFja3NJbXBsX2gKIAotI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgotI2luY2x1
ZGUgInBsYXRmb3JtL1dlYkZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtVHlwZS5o
IgogI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW1DYWxsYmFja3MuaCIKKyNpbmNsdWRlICJwbGF0Zm9y
bS9XZWJGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViVmVjdG9yLmgiCiAjaW5j
bHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CkBAIC01Miw3
ICs1Miw3IEBAIGNsYXNzIFdlYlVSTDsKIAogY2xhc3MgV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0lt
cGwgOiBwdWJsaWMgV2ViRmlsZVN5c3RlbUNhbGxiYWNrcyB7CiBwdWJsaWM6Ci0gICAgV2ViRmls
ZVN5c3RlbUNhbGxiYWNrc0ltcGwoUGFzc093blB0cjxXZWJDb3JlOjpBc3luY0ZpbGVTeXN0ZW1D
YWxsYmFja3M+LCBXZWJDb3JlOjpBc3luY0ZpbGVTeXN0ZW06OlR5cGUgPSBXZWJDb3JlOjpBc3lu
Y0ZpbGVTeXN0ZW06OlRlbXBvcmFyeSwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
PSAwLCBib29sIHN5bmNocm9ub3VzID0gZmFsc2UpOworICAgIFdlYkZpbGVTeXN0ZW1DYWxsYmFj
a3NJbXBsKFBhc3NPd25QdHI8V2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiwgV2Vi
Q29yZTo6RmlsZVN5c3RlbVR5cGUgPSBXZWJDb3JlOjpGaWxlU3lzdGVtVHlwZVRlbXBvcmFyeSwg
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogPSAwLCBib29sIHN5bmNocm9ub3VzID0g
ZmFsc2UpOwogICAgIHZpcnR1YWwgfldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKCk7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkU3VjY2VlZCgpOwpAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgog
ICAgIE93blB0cjxXZWJDb3JlOjpBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IG1fY2FsbGJhY2tz
OwogCiAgICAgLy8gVXNlZCBmb3Igb3BlbkZpbGVTeXN0ZW0gY2FsbGJhY2tzLgotICAgIFdlYkNv
cmU6OkFzeW5jRmlsZVN5c3RlbTo6VHlwZSBtX3R5cGU7CisgICAgV2ViQ29yZTo6RmlsZVN5c3Rl
bVR5cGUgbV90eXBlOwogCiAgICAgLy8gVXNlZCBmb3Igd29ya2VyJ3Mgb3BlbkZpbGVTeXN0ZW0g
Y2FsbGJhY2tzLgogICAgIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fY29udGV4
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCmluZGV4IGM2
YjA0MzUyZmE0OTUyOWVlYzBmZTBjOGQxYTkwMWUzZmJlMDVmMTMuLmQwZTZmZTIzOGEwMWY5OGIx
ZjYxYmIyNGZmYzllODE5Y2QyZDdiYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRnJhbWVJbXBsLmNwcApAQCAtODUsNiArODUsNyBAQAogI2luY2x1ZGUgIkVkaXRvci5oIgog
I2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJXcmFwcGVy
LmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVR5cGUuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKQEAg
LTkzOCw3ICs5MzksNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gV2ViRnJhbWVJbXBsOjpjcmVh
dGVGaWxlU3lzdGVtKFdlYkZpbGVTeXN0ZW06OlR5cGUgdHlwZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiBuYW1l
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBXZWJTdHJpbmcmIHBhdGgpCiB7Ci0gICAgcmV0dXJuIHRvVjgoRE9NRmlsZVN5c3RlbTo6
Y3JlYXRlKGZyYW1lKCktPmRvY3VtZW50KCksIG5hbWUsIEFzeW5jRmlsZVN5c3RlbUNocm9taXVt
OjpjcmVhdGUoc3RhdGljX2Nhc3Q8QXN5bmNGaWxlU3lzdGVtOjpUeXBlPih0eXBlKSwgS1VSTChQ
YXJzZWRVUkxTdHJpbmcsIHBhdGgudXRmOCgpLmRhdGEoKSkpKSk7CisgICAgcmV0dXJuIHRvVjgo
RE9NRmlsZVN5c3RlbTo6Y3JlYXRlKGZyYW1lKCktPmRvY3VtZW50KCksIG5hbWUsIEFzeW5jRmls
ZVN5c3RlbUNocm9taXVtOjpjcmVhdGUoc3RhdGljX2Nhc3Q8RmlsZVN5c3RlbVR5cGU+KHR5cGUp
LCBLVVJMKFBhcnNlZFVSTFN0cmluZywgcGF0aC51dGY4KCkuZGF0YSgpKSkpKTsKIH0KIAogdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFdlYkZyYW1lSW1wbDo6Y3JlYXRlRmlsZUVudHJ5KFdlYkZpbGVT
eXN0ZW06OlR5cGUgdHlwZSwKQEAgLTk0Nyw3ICs5NDgsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gV2ViRnJhbWVJbXBsOjpjcmVhdGVGaWxlRW50cnkoV2ViRmlsZVN5c3RlbTo6VHlwZSB0eXBl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFdlYlN0cmluZyYgZmlsZVBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc0RpcmVjdG9yeSkKIHsKLSAgICBSZWZQdHI8RE9N
RmlsZVN5c3RlbUJhc2U+IGZpbGVTeXN0ZW0gPSBET01GaWxlU3lzdGVtOjpjcmVhdGUoZnJhbWUo
KS0+ZG9jdW1lbnQoKSwgZmlsZVN5c3RlbU5hbWUsIEFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpj
cmVhdGUoc3RhdGljX2Nhc3Q8QXN5bmNGaWxlU3lzdGVtOjpUeXBlPih0eXBlKSwgS1VSTChQYXJz
ZWRVUkxTdHJpbmcsIGZpbGVTeXN0ZW1QYXRoLnV0ZjgoKS5kYXRhKCkpKSk7CisgICAgUmVmUHRy
PERPTUZpbGVTeXN0ZW1CYXNlPiBmaWxlU3lzdGVtID0gRE9NRmlsZVN5c3RlbTo6Y3JlYXRlKGZy
YW1lKCktPmRvY3VtZW50KCksIGZpbGVTeXN0ZW1OYW1lLCBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1
bTo6Y3JlYXRlKHN0YXRpY19jYXN0PEZpbGVTeXN0ZW1UeXBlPih0eXBlKSwgS1VSTChQYXJzZWRV
UkxTdHJpbmcsIGZpbGVTeXN0ZW1QYXRoLnV0ZjgoKS5kYXRhKCkpKSk7CiAgICAgaWYgKGlzRGly
ZWN0b3J5KQogICAgICAgICByZXR1cm4gdG9WOChEaXJlY3RvcnlFbnRyeTo6Y3JlYXRlKGZpbGVT
eXN0ZW0sIGZpbGVQYXRoKSk7CiAgICAgcmV0dXJuIHRvVjgoRmlsZUVudHJ5OjpjcmVhdGUoZmls
ZVN5c3RlbSwgZmlsZVBhdGgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dvcmtlckFzeW5jRmlsZVN5c3RlbUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dvcmtlckFzeW5jRmlsZVN5c3RlbUNocm9taXVtLmNwcAppbmRleCA4MGEyNmZm
MDNmZDIwNGI1OTZkNjQwNTI3NjllNzg1OWUzYmY2NTc5Li5hOTU3MWVhNTU4YzgwZjhiODlkMWFk
OGY2MTUxY2Q0NzMxZjVlNzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Xb3JrZXJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV29ya2VyQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCkBAIC01Nyw3ICs1
Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IGNoYXIgZmlsZVN5c3Rl
bU9wZXJhdGlvbnNNb2RlW10gPSAiZmlsZVN5c3RlbU9wZXJhdGlvbnNNb2RlIjsKIAotV29ya2Vy
QXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OldvcmtlckFzeW5jRmlsZVN5c3RlbUNocm9taXVtKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBl
LCBjb25zdCBXZWJLaXQ6OldlYlVSTCYgcm9vdFVSTCwgYm9vbCBzeW5jaHJvbm91cykKK1dvcmtl
ckFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpXb3JrZXJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBGaWxlU3lzdGVtVHlwZSB0eXBlLCBjb25z
dCBXZWJLaXQ6OldlYlVSTCYgcm9vdFVSTCwgYm9vbCBzeW5jaHJvbm91cykKICAgICA6IEFzeW5j
RmlsZVN5c3RlbUNocm9taXVtKHR5cGUsIHJvb3RVUkwpCiAgICAgLCBtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoY29udGV4dCkKICAgICAsIG1fd29ya2VyQ29udGV4dChzdGF0aWNfY2FzdDxXb3Jr
ZXJDb250ZXh0Kj4oY29udGV4dCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9Xb3JrZXJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV29ya2VyQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaAppbmRleCAwODkxODUxOGE1
ZTM2ODJmMzBkMDRlYzA1YjE2ZWVjOGFmMzU4ZDEzLi4zNTM5Yjk0MDhmMzcxZDU2NzI5OTBiZDlk
ODlmMzFkNWM4N2FjZTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
b3JrZXJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dvcmtlckFzeW5jRmlsZVN5c3RlbUNocm9taXVtLmgKQEAgLTM0LDcgKzM0LDYgQEAK
ICNpZiBFTkFCTEUoRklMRV9TWVNURU0pICYmIEVOQUJMRShXT1JLRVJTKQogCiAjaW5jbHVkZSAi
QXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgog
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCkBA
IC01Myw3ICs1Miw3IEBAIGNsYXNzIFdvcmtlckNvbnRleHQ7CiAKIGNsYXNzIFdvcmtlckFzeW5j
RmlsZVN5c3RlbUNocm9taXVtIDogcHVibGljIEFzeW5jRmlsZVN5c3RlbUNocm9taXVtIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUgdHlwZSwg
Y29uc3QgV2ViS2l0OjpXZWJVUkwmIHJvb3RVUkwsIGJvb2wgc3luY2hyb25vdXMpCisgICAgc3Rh
dGljIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgRmlsZVN5c3RlbVR5cGUgdHlwZSwgY29uc3QgV2ViS2l0OjpXZWJVUkwm
IHJvb3RVUkwsIGJvb2wgc3luY2hyb25vdXMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFdvcmtlckFzeW5jRmlsZVN5c3RlbUNocm9taXVtKGNvbnRleHQsIHR5cGUsIHJvb3RV
UkwsIHN5bmNocm9ub3VzKSk7CiAgICAgfQpAQCAtNzcsNyArNzYsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGNyZWF0ZVNuYXBzaG90RmlsZUFuZFJlYWRNZXRhZGF0YShjb25zdCBTdHJp
bmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CiAKIHByaXZh
dGU6Ci0gICAgV29ya2VyQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSwgY29uc3QgV2ViS2l0OjpXZWJVUkwmIHJvb3RV
UkwsIGJvb2wgc3luY2hyb25vdXMpOworICAgIFdvcmtlckFzeW5jRmlsZVN5c3RlbUNocm9taXVt
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBGaWxlU3lzdGVtVHlwZSwgY29uc3QgV2ViS2l0OjpX
ZWJVUkwmIHJvb3RVUkwsIGJvb2wgc3luY2hyb25vdXMpOwogCiAgICAgUGFzc1JlZlB0cjxXZWJL
aXQ6OldvcmtlckZpbGVTeXN0ZW1DYWxsYmFja3NCcmlkZ2U+IGNyZWF0ZVdvcmtlckZpbGVTeXN0
ZW1DYWxsYmFja3NCcmlkZ2UoUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140429</attachid>
            <date>2012-05-06 11:21:18 -0700</date>
            <delta_ts>2012-05-07 12:57:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85738-20120507032115.patch</filename>
            <type>text/plain</type>
            <size>42522</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZmZGJhMWEwMzUxOWYy
OTFjNjMxOGJlYTVjMGNlY2NlZjJjNjdhYi4uYjNiOTAxMWM3YmVlNWFlYzJmNDU3ZGQxNGUzNzhj
YmE0MjI2ZjY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEyLTA1LTA2ICBLaW51
a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KKworICAgICAgICBDbGVhbnVwOiBNb3Zl
IEZpbGVTeXN0ZW0gQVBJIHR5cGUgZGVmaW5pdGlvbnMgaW50byBhIHNlcGFyYXRlIGhlYWRlciBm
aWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTcz
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUg
RmlsZVN5c3RlbSBBUEkgdHlwZSBkZWZpbml0aW9ucyBmcm9tIEFzeW5jRmlsZVN5c3RlbS5oIGFu
ZAorICAgICAgICBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAgZm9yIGNocm9taXVtIHBvcnQg
aW50byBhIHNpbmdsZSBzZXBhcmF0ZQorICAgICAgICBoZWFkZXIgZmlsZTogRmlsZVN5c3RlbVR5
cGUuaAorCisgICAgICAgIEJ5IGRvaW5nIHRoaXMgd2UgbWFrZSBpdCBjbGVhcmVyIHRoYXQgZXZl
cnkgZmlsZXN5c3RlbSB0eXBlIGNhbiBiZQorICAgICAgICBmb3VuZCBpbiB0aGUgaGVhZGVyIGZp
bGUgYW5kIGFsc28gY2FuIHNhdmUgaW5jbHVkaW5nIGVudGlyZQorICAgICAgICBBc3luY0ZpbGVT
eXN0ZW0gZGVmaW5pdGlvbiBqdXN0IGZvciByZWZlcnJpbmcgdHlwZSBlbnVtIHZhbHVlLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBhcyB0aGlzIGNoYW5nZSBoYXMgbm8gdmlzaWJsZSBvciBmdW5j
dGlvbmFsIGNoYW5nZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmlsZVN5
c3RlbUJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGF0aFRvQWJzb2x1dGVQYXRoKToKKyAg
ICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NV2luZG93RmlsZVN5c3RlbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3dGaWxlU3lzdGVtOjp3ZWJraXRSZXF1ZXN0RmlsZVN5c3Rl
bSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dGaWxlU3lzdGVtOjp3ZWJraXRSZXNvbHZl
TG9jYWxGaWxlU3lzdGVtVVJMKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbS9ET01XaW5kb3dGaWxlU3lzdGVtLmg6CisgICAgICAgICogTW9kdWxlcy9m
aWxlc3lzdGVtL0xvY2FsRmlsZVN5c3RlbS5oOgorICAgICAgICAoTG9jYWxGaWxlU3lzdGVtKToK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vV29ya2VyQ29udGV4dEZpbGVTeXN0ZW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dEZpbGVTeXN0ZW06OndlYmtpdFJlcXVl
c3RGaWxlU3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHRGaWxlU3lzdGVt
Ojp3ZWJraXRSZXF1ZXN0RmlsZVN5c3RlbVN5bmMpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
Q29udGV4dEZpbGVTeXN0ZW06OndlYmtpdFJlc29sdmVMb2NhbEZpbGVTeXN0ZW1VUkwpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dEZpbGVTeXN0ZW06OndlYmtpdFJlc29sdmVMb2Nh
bEZpbGVTeXN0ZW1TeW5jVVJMKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbS9Xb3JrZXJDb250ZXh0RmlsZVN5c3RlbS5oOgorICAgICAgICAqIHBsYXRm
b3JtL0FzeW5jRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0ZpbGVTeXN0
ZW06OmlzVmFsaWRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5c3RlbTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5c3RlbTo6b3BlbkZpbGVTeXN0ZW0p
OgorICAgICAgICAqIHBsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5oOgorICAgICAgICAoQXN5bmNG
aWxlU3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5c3RlbTo6dHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBc3luY0ZpbGVTeXN0ZW06OkFzeW5jRmlsZVN5c3RlbSk6CisgICAg
ICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbVR5cGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L0FzeW5jRmlsZVN5c3RlbUJsYWNrQmVy
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtOjppc1ZhbGlkVHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpBc3luY0ZpbGVTeXN0ZW06OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBc3luY0ZpbGVTeXN0ZW06Om9wZW5GaWxlU3lzdGVtKToKKyAgICAgICAgKFdlYkNv
cmU6OkFzeW5jRmlsZVN5c3RlbTo6Y3JhY2tGaWxlU3lzdGVtVVJMKToKKyAgICAgICAgKFdlYkNv
cmU6OkFzeW5jRmlsZVN5c3RlbUJsYWNrQmVycnk6OkFzeW5jRmlsZVN5c3RlbUJsYWNrQmVycnkp
OgorICAgICAgICAqIHBsYXRmb3JtL2JsYWNrYmVycnkvQXN5bmNGaWxlU3lzdGVtQmxhY2tCZXJy
eS5oOgorICAgICAgICAoQXN5bmNGaWxlU3lzdGVtQmxhY2tCZXJyeSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3RrL0FzeW5jRmlsZVN5c3RlbUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3lu
Y0ZpbGVTeXN0ZW06OmlzVmFsaWRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5
c3RlbTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5c3RlbTo6b3BlbkZp
bGVTeXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtOjpjcmFja0ZpbGVT
eXN0ZW1VUkwpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtR3RrOjpBc3luY0Zp
bGVTeXN0ZW1HdGspOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Bc3luY0ZpbGVTeXN0ZW1HdGsu
aDoKKyAgICAgICAgKEFzeW5jRmlsZVN5c3RlbUd0ayk6CisKIDIwMTItMDUtMDQgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENvcnJlY3QgcGl4ZWwgc25h
cHBpbmcgaW4gUmVuZGVyU1ZHUm9vdDo6cGFpbnRSZXBsYWNlZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCBlZTlhNDFlZjMwYzRiMTgyZGM2MzdmMTIzOTU4YmY2NjI4YjFkMjhlLi5kYjhi
NTMxYWQwMTYyNDg1ZDcyYjBlMTY4MjFiOGIxNzdiYWMzOGFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA1LTA2ICBLaW51a28gWWFzdWRhICA8a2lu
dWtvQGNocm9taXVtLm9yZz4KKworICAgICAgICBDbGVhbnVwOiBNb3ZlIEZpbGVTeXN0ZW0gQVBJ
IHR5cGUgZGVmaW5pdGlvbnMgaW50byBhIHNlcGFyYXRlIGhlYWRlciBmaWxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTczOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgRmlsZVN5c3RlbSBBUEkg
dHlwZSBkZWZpbml0aW9ucyBmcm9tIEFzeW5jRmlsZVN5c3RlbS5oIGFuZAorICAgICAgICBBc3lu
Y0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAgZm9yIGNocm9taXVtIHBvcnQgaW50byBhIHNpbmdsZSBz
ZXBhcmF0ZQorICAgICAgICBoZWFkZXIgZmlsZTogRmlsZVN5c3RlbVR5cGUuaAorCisgICAgICAg
IEJ5IGRvaW5nIHRoaXMgd2UgbWFrZSBpdCBjbGVhcmVyIHRoYXQgZXZlcnkgZmlsZXN5c3RlbSB0
eXBlIGNhbiBiZQorICAgICAgICBmb3VuZCBpbiB0aGUgaGVhZGVyIGZpbGUgYW5kIGFsc28gY2Fu
IHNhdmUgaW5jbHVkaW5nIGVudGlyZQorICAgICAgICBBc3luY0ZpbGVTeXN0ZW0gZGVmaW5pdGlv
biBqdXN0IGZvciByZWZlcnJpbmcgdHlwZSBlbnVtIHZhbHVlLgorCisgICAgICAgICogc3JjL0Fz
c2VydE1hdGNoaW5nRW51bXMuY3BwOgorICAgICAgICAqIHNyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJv
bWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0ZpbGVTeXN0ZW06OmNyYWNrRmlsZVN5
c3RlbVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0ZpbGVTeXN0ZW06OmlzVmFsaWRUeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpBc3luY0ZpbGVT
eXN0ZW1DaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1
bTo6Y3JlYXRlSXNvbGF0ZWRGaWxlU3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmls
ZVN5c3RlbUNocm9taXVtOjp0b1VSTCk6CisgICAgICAgICogc3JjL0FzeW5jRmlsZVN5c3RlbUNo
cm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6Y3Jl
YXRlKToKKyAgICAgICAgKEFzeW5jRmlsZVN5c3RlbUNocm9taXVtKToKKyAgICAgICAgKiBzcmMv
TG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlbkZpbGVT
eXN0ZW1IZWxwZXIpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxGaWxlU3lzdGVtOjpyZWFkRmls
ZVN5c3RlbSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEZpbGVTeXN0ZW06OnJlcXVlc3RGaWxl
U3lzdGVtKToKKyAgICAgICAgKiBzcmMvV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbDo6V2ViRmlsZVN5c3Rl
bUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1w
bC5oOgorICAgICAgICAoV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNy
Yy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OmNyZWF0
ZUZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OmNyZWF0ZUZpbGVF
bnRyeSk6CisgICAgICAgICogc3JjL1dvcmtlckFzeW5jRmlsZVN5c3RlbUNocm9taXVtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlckFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpXb3JrZXJB
c3luY0ZpbGVTeXN0ZW1DaHJvbWl1bSk6CisgICAgICAgICogc3JjL1dvcmtlckFzeW5jRmlsZVN5
c3RlbUNocm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJBc3luY0ZpbGVTeXN0ZW1D
aHJvbWl1bTo6Y3JlYXRlKToKKyAgICAgICAgKFdvcmtlckFzeW5jRmlsZVN5c3RlbUNocm9taXVt
KToKKwogMjAxMi0wNS0wNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlZmFjdG9yIENTUCBzdGF0ZSB0byBwcmVwYXJlIGZvciBoYXZpbmcgYm90aCBhIFJlcG9y
dE9ubHkgYW5kIGFuIEVuZm9yY2VkIHBvbGljeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1CYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtQmFzZS5jcHAKaW5kZXggMjEzNWYyYmJj
NDIwZTU5YmY3Y2I0OGM5MTk0OWRhNDAxMDgzMDhlYS4uNDMzNWFiOTA0ZWIzYzFkN2I0ZTVkMWYw
ZTJhZTM4MWM2OWNjZGQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtL0RPTUZpbGVTeXN0ZW1CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3RlbUJhc2UuY3BwCkBAIC05OSw3ICs5OSw3IEBAIHN0YXRp
YyBib29sIHZlcmlmeUFuZEdldERlc3RpbmF0aW9uUGF0aEZvckNvcHlPck1vdmUoY29uc3QgRW50
cnlCYXNlKiBzb3VyY2UsIEVuCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIHBh
dGhUb0Fic29sdXRlUGF0aChBc3luY0ZpbGVTeXN0ZW06OlR5cGUgdHlwZSwgY29uc3QgRW50cnlC
YXNlKiBiYXNlLCBTdHJpbmcgcGF0aCwgU3RyaW5nJiBhYnNvbHV0ZVBhdGgpCitzdGF0aWMgYm9v
bCBwYXRoVG9BYnNvbHV0ZVBhdGgoRmlsZVN5c3RlbVR5cGUgdHlwZSwgY29uc3QgRW50cnlCYXNl
KiBiYXNlLCBTdHJpbmcgcGF0aCwgU3RyaW5nJiBhYnNvbHV0ZVBhdGgpCiB7CiAgICAgQVNTRVJU
KGJhc2UpOwogCkBAIC0xMDcsNyArMTA3LDcgQEAgc3RhdGljIGJvb2wgcGF0aFRvQWJzb2x1dGVQ
YXRoKEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBjb25zdCBFbnRyeUJhc2UqIGJhc2UKICAg
ICAgICAgcGF0aCA9IERPTUZpbGVQYXRoOjphcHBlbmQoYmFzZS0+ZnVsbFBhdGgoKSwgcGF0aCk7
CiAgICAgYWJzb2x1dGVQYXRoID0gRE9NRmlsZVBhdGg6OnJlbW92ZUV4dHJhUGFyZW50UmVmZXJl
bmNlcyhwYXRoKTsKIAotICAgIGlmICgodHlwZSA9PSBBc3luY0ZpbGVTeXN0ZW06OlRlbXBvcmFy
eSB8fCB0eXBlID09IEFzeW5jRmlsZVN5c3RlbTo6UGVyc2lzdGVudCkgJiYgIURPTUZpbGVQYXRo
Ojppc1ZhbGlkUGF0aChhYnNvbHV0ZVBhdGgpKQorICAgIGlmICgodHlwZSA9PSBGaWxlU3lzdGVt
VHlwZVRlbXBvcmFyeSB8fCB0eXBlID09IEZpbGVTeXN0ZW1UeXBlUGVyc2lzdGVudCkgJiYgIURP
TUZpbGVQYXRoOjppc1ZhbGlkUGF0aChhYnNvbHV0ZVBhdGgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW0vRE9NV2luZG93RmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW0vRE9NV2luZG93RmlsZVN5c3RlbS5jcHAKaW5kZXggNTcwYzM5ZGIy
NDVjZjM3M2UwMzI0ZDlhZmY4ZTY1MzczNDFhMjEwMi4uNDUzYzYyMmEwMzEyM2YxNzNiZDg2NzZh
Mjg0MzliZjI5ZDcxOTI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtL0RPTVdpbmRvd0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbS9ET01XaW5kb3dGaWxlU3lzdGVtLmNwcApAQCAtNjQsNyArNjQsNyBAQCB2
b2lkIERPTVdpbmRvd0ZpbGVTeXN0ZW06OndlYmtpdFJlcXVlc3RGaWxlU3lzdGVtKERPTVdpbmRv
dyogd2luZG93LCBpbnQgdHlwZSwgbAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQXN5
bmNGaWxlU3lzdGVtOjpUeXBlIGZpbGVTeXN0ZW1UeXBlID0gc3RhdGljX2Nhc3Q8QXN5bmNGaWxl
U3lzdGVtOjpUeXBlPih0eXBlKTsKKyAgICBGaWxlU3lzdGVtVHlwZSBmaWxlU3lzdGVtVHlwZSA9
IHN0YXRpY19jYXN0PEZpbGVTeXN0ZW1UeXBlPih0eXBlKTsKICAgICBpZiAoIUFzeW5jRmlsZVN5
c3RlbTo6aXNWYWxpZFR5cGUoZmlsZVN5c3RlbVR5cGUpKSB7CiAgICAgICAgIERPTUZpbGVTeXN0
ZW06OnNjaGVkdWxlQ2FsbGJhY2soZG9jdW1lbnQsIGVycm9yQ2FsbGJhY2ssIEZpbGVFcnJvcjo6
Y3JlYXRlKEZpbGVFcnJvcjo6SU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKSk7CiAgICAgICAgIHJl
dHVybjsKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBET01XaW5kb3dGaWxlU3lzdGVtOjp3ZWJraXRS
ZXNvbHZlTG9jYWxGaWxlU3lzdGVtVVJMKERPTVdpbmRvdyogd2luZG93LCBjb24KICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlOworICAgIEZp
bGVTeXN0ZW1UeXBlIHR5cGU7CiAgICAgU3RyaW5nIGZpbGVQYXRoOwogICAgIGlmICghY29tcGxl
dGVkVVJMLmlzVmFsaWQoKSB8fCAhQXN5bmNGaWxlU3lzdGVtOjpjcmFja0ZpbGVTeXN0ZW1VUkwo
Y29tcGxldGVkVVJMLCB0eXBlLCBmaWxlUGF0aCkpIHsKICAgICAgICAgRE9NRmlsZVN5c3RlbTo6
c2NoZWR1bGVDYWxsYmFjayhkb2N1bWVudCwgZXJyb3JDYWxsYmFjaywgRmlsZUVycm9yOjpjcmVh
dGUoRmlsZUVycm9yOjpFTkNPRElOR19FUlIpKTsKQEAgLTk5LDggKzk5LDggQEAgdm9pZCBET01X
aW5kb3dGaWxlU3lzdGVtOjp3ZWJraXRSZXNvbHZlTG9jYWxGaWxlU3lzdGVtVVJMKERPTVdpbmRv
dyogd2luZG93LCBjb24KICAgICBMb2NhbEZpbGVTeXN0ZW06OmxvY2FsRmlsZVN5c3RlbSgpLnJl
YWRGaWxlU3lzdGVtKGRvY3VtZW50LCB0eXBlLCBSZXNvbHZlVVJJQ2FsbGJhY2tzOjpjcmVhdGUo
c3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCBkb2N1bWVudCwgZmlsZVBhdGgpKTsKIH0K
IAotQ09NUElMRV9BU1NFUlQoc3RhdGljX2Nhc3Q8aW50PihET01XaW5kb3dGaWxlU3lzdGVtOjpU
RU1QT1JBUlkpID09IHN0YXRpY19jYXN0PGludD4oQXN5bmNGaWxlU3lzdGVtOjpUZW1wb3Jhcnkp
LCBlbnVtX21pc21hdGNoKTsKLUNPTVBJTEVfQVNTRVJUKHN0YXRpY19jYXN0PGludD4oRE9NV2lu
ZG93RmlsZVN5c3RlbTo6UEVSU0lTVEVOVCkgPT0gc3RhdGljX2Nhc3Q8aW50PihBc3luY0ZpbGVT
eXN0ZW06OlBlcnNpc3RlbnQpLCBlbnVtX21pc21hdGNoKTsKK0NPTVBJTEVfQVNTRVJUKHN0YXRp
Y19jYXN0PGludD4oRE9NV2luZG93RmlsZVN5c3RlbTo6VEVNUE9SQVJZKSA9PSBzdGF0aWNfY2Fz
dDxpbnQ+KEZpbGVTeXN0ZW1UeXBlVGVtcG9yYXJ5KSwgZW51bV9taXNtYXRjaCk7CitDT01QSUxF
X0FTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KERPTVdpbmRvd0ZpbGVTeXN0ZW06OlBFUlNJU1RFTlQp
ID09IHN0YXRpY19jYXN0PGludD4oRmlsZVN5c3RlbVR5cGVQZXJzaXN0ZW50KSwgZW51bV9taXNt
YXRjaCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTVdpbmRvd0ZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01XaW5kb3dGaWxlU3lzdGVtLmgKaW5kZXggMjc4
MzU1M2ExYjk3MzBjYWM5YjczODQyOTQ5NDliODQ3MmFjMzJlZC4uZmI1YjkyMjM2YTFhYjdiYzc2
MTU1MDg4YzJlMTM3Y2Y0OWFmZTIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtL0RPTVdpbmRvd0ZpbGVTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW0vRE9NV2luZG93RmlsZVN5c3RlbS5oCkBAIC00Niw3ICs0Niw3IEBA
IHB1YmxpYzoKIAogICAgIC8vIFRoZXkgYXJlIHBsYWNlZCBoZXJlIGFuZCBpbiBhbGwgY2FwaXRh
bCBsZXR0ZXJzIHNvIHRoZXkgY2FuIGJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgY29uc3RhbnRzIGlu
IHRoZQogICAgIC8vIElETCBhdCBjb21waWxlIHRpbWUuCi0gICAgZW51bSBGaWxlU3lzdGVtVHlw
ZSB7CisgICAgZW51bSB7CiAgICAgICAgIFRFTVBPUkFSWSwKICAgICAgICAgUEVSU0lTVEVOVCwK
ICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0xv
Y2FsRmlsZVN5c3RlbS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0xvY2Fs
RmlsZVN5c3RlbS5oCmluZGV4IDgwY2ZhMjk0NTFlMzk5YmQyYTgxMDQ4ZmU1NDU0MGM0NGQ4N2E0
NGQuLmZjM2MzZmM3NWQxMTJlYjI5NDIzZmE4MjUwZWU1NDg4ZjhjZTA5ZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9Mb2NhbEZpbGVTeXN0ZW0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vTG9jYWxGaWxlU3lzdGVtLmgKQEAg
LTMzLDcgKzMzLDggQEAKIAogI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKIAotI2luY2x1ZGUgIkFz
eW5jRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oIgor
I2luY2x1ZGUgIkZpbGVTeXN0ZW1UeXBlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
ICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CkBAIC01NCw5ICs1NSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgTG9jYWxGaWxlU3lzdGVtJiBs
b2NhbEZpbGVTeXN0ZW0oKTsKIAogICAgIC8vIERvZXMgbm90IGNyZWF0ZSB0aGUgcm9vdCBwYXRo
IGZvciBmaWxlIHN5c3RlbSwganVzdCByZWFkcyBpdCBpZiBhdmFpbGFibGUuCi0gICAgdm9pZCBy
ZWFkRmlsZVN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgQXN5bmNGaWxlU3lzdGVtOjpU
eXBlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4sIGJvb2wgc3luY2hyb25v
dXMgPSBmYWxzZSk7CisgICAgdm9pZCByZWFkRmlsZVN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgRmlsZVN5c3RlbVR5cGUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
PiwgYm9vbCBzeW5jaHJvbm91cyA9IGZhbHNlKTsKIAotICAgIHZvaWQgcmVxdWVzdEZpbGVTeXN0
ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSwgbG9uZyBs
b25nIHNpemUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiwgYm9vbCBzeW5j
aHJvbm91cyA9IGZhbHNlKTsKKyAgICB2b2lkIHJlcXVlc3RGaWxlU3lzdGVtKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBGaWxlU3lzdGVtVHlwZSwgbG9uZyBsb25nIHNpemUsIFBhc3NPd25QdHI8
QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiwgYm9vbCBzeW5jaHJvbm91cyA9IGZhbHNlKTsKIAog
I2lmICFQTEFURk9STShDSFJPTUlVTSkKICAgICAvLyBUaGlzIGNhbGwgaXMgbm90IHRocmVhZC1z
YWZlOyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYW55IHdvcmtlciB0aHJlYWRzIGFyZSBjcmVhdGVk
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL1dvcmtlckNv
bnRleHRGaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9X
b3JrZXJDb250ZXh0RmlsZVN5c3RlbS5jcHAKaW5kZXggOTY1MWVmNDI3N2E3MGU0ZmY5OGE4ZTFk
ZGUyMTk4ZDUyNmIzN2JmYi4uNThlYjYyNDIzMTk5ZDJhZTY3MmI2NzY2OWZhNThlMTA5N2VlOGU5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL1dvcmtlckNv
bnRleHRGaWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW0vV29ya2VyQ29udGV4dEZpbGVTeXN0ZW0uY3BwCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgV29y
a2VyQ29udGV4dEZpbGVTeXN0ZW06OndlYmtpdFJlcXVlc3RGaWxlU3lzdGVtKFdvcmtlckNvbnRl
eHQqIHdvcmtlciwgaW50CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBc3luY0ZpbGVT
eXN0ZW06OlR5cGUgZmlsZVN5c3RlbVR5cGUgPSBzdGF0aWNfY2FzdDxBc3luY0ZpbGVTeXN0ZW06
OlR5cGU+KHR5cGUpOworICAgIEZpbGVTeXN0ZW1UeXBlIGZpbGVTeXN0ZW1UeXBlID0gc3RhdGlj
X2Nhc3Q8RmlsZVN5c3RlbVR5cGU+KHR5cGUpOwogICAgIGlmICghQXN5bmNGaWxlU3lzdGVtOjpp
c1ZhbGlkVHlwZShmaWxlU3lzdGVtVHlwZSkpIHsKICAgICAgICAgRE9NRmlsZVN5c3RlbTo6c2No
ZWR1bGVDYWxsYmFjayh3b3JrZXIsIGVycm9yQ2FsbGJhY2ssIEZpbGVFcnJvcjo6Y3JlYXRlKEZp
bGVFcnJvcjo6SU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKSk7CiAgICAgICAgIHJldHVybjsKQEAg
LTc0LDcgKzc0LDcgQEAgUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtU3luYz4gV29ya2VyQ29udGV4
dEZpbGVTeXN0ZW06OndlYmtpdFJlcXVlc3RGaWxlU3lzdGVtU3kKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgfQogCi0gICAgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIGZpbGVTeXN0ZW1UeXBlID0gc3Rh
dGljX2Nhc3Q8QXN5bmNGaWxlU3lzdGVtOjpUeXBlPih0eXBlKTsKKyAgICBGaWxlU3lzdGVtVHlw
ZSBmaWxlU3lzdGVtVHlwZSA9IHN0YXRpY19jYXN0PEZpbGVTeXN0ZW1UeXBlPih0eXBlKTsKICAg
ICBpZiAoIUFzeW5jRmlsZVN5c3RlbTo6aXNWYWxpZFR5cGUoZmlsZVN5c3RlbVR5cGUpKSB7CiAg
ICAgICAgIGVjID0gRmlsZUV4Y2VwdGlvbjo6SU5WQUxJRF9NT0RJRklDQVRJT05fRVJSOwogICAg
ICAgICByZXR1cm4gMDsKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBXb3JrZXJDb250ZXh0RmlsZVN5
c3RlbTo6d2Via2l0UmVzb2x2ZUxvY2FsRmlsZVN5c3RlbVVSTChXb3JrZXJDb250ZXh0KiB3b3IK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBl
OworICAgIEZpbGVTeXN0ZW1UeXBlIHR5cGU7CiAgICAgU3RyaW5nIGZpbGVQYXRoOwogICAgIGlm
ICghY29tcGxldGVkVVJMLmlzVmFsaWQoKSB8fCAhQXN5bmNGaWxlU3lzdGVtOjpjcmFja0ZpbGVT
eXN0ZW1VUkwoY29tcGxldGVkVVJMLCB0eXBlLCBmaWxlUGF0aCkpIHsKICAgICAgICAgRE9NRmls
ZVN5c3RlbTo6c2NoZWR1bGVDYWxsYmFjayh3b3JrZXIsIGVycm9yQ2FsbGJhY2ssIEZpbGVFcnJv
cjo6Y3JlYXRlKEZpbGVFcnJvcjo6RU5DT0RJTkdfRVJSKSk7CkBAIC0xMTQsNyArMTE0LDcgQEAg
UGFzc1JlZlB0cjxFbnRyeVN5bmM+IFdvcmtlckNvbnRleHRGaWxlU3lzdGVtOjp3ZWJraXRSZXNv
bHZlTG9jYWxGaWxlU3lzdGVtU3luY1UKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAg
QXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGU7CisgICAgRmlsZVN5c3RlbVR5cGUgdHlwZTsKICAg
ICBTdHJpbmcgZmlsZVBhdGg7CiAgICAgaWYgKCFjb21wbGV0ZWRVUkwuaXNWYWxpZCgpIHx8ICFB
c3luY0ZpbGVTeXN0ZW06OmNyYWNrRmlsZVN5c3RlbVVSTChjb21wbGV0ZWRVUkwsIHR5cGUsIGZp
bGVQYXRoKSkgewogICAgICAgICBlYyA9IEZpbGVFeGNlcHRpb246OkVOQ09ESU5HX0VSUjsKQEAg
LTEzNCw4ICsxMzQsOCBAQCBQYXNzUmVmUHRyPEVudHJ5U3luYz4gV29ya2VyQ29udGV4dEZpbGVT
eXN0ZW06OndlYmtpdFJlc29sdmVMb2NhbEZpbGVTeXN0ZW1TeW5jVQogICAgIHJldHVybiBlbnRy
eS5yZWxlYXNlKCk7CiB9CiAKLUNPTVBJTEVfQVNTRVJUKHN0YXRpY19jYXN0PGludD4oV29ya2Vy
Q29udGV4dEZpbGVTeXN0ZW06OlRFTVBPUkFSWSkgPT0gc3RhdGljX2Nhc3Q8aW50PihBc3luY0Zp
bGVTeXN0ZW06OlRlbXBvcmFyeSksIGVudW1fbWlzbWF0Y2gpOwotQ09NUElMRV9BU1NFUlQoc3Rh
dGljX2Nhc3Q8aW50PihXb3JrZXJDb250ZXh0RmlsZVN5c3RlbTo6UEVSU0lTVEVOVCkgPT0gc3Rh
dGljX2Nhc3Q8aW50PihBc3luY0ZpbGVTeXN0ZW06OlBlcnNpc3RlbnQpLCBlbnVtX21pc21hdGNo
KTsKK0NPTVBJTEVfQVNTRVJUKHN0YXRpY19jYXN0PGludD4oV29ya2VyQ29udGV4dEZpbGVTeXN0
ZW06OlRFTVBPUkFSWSkgPT0gc3RhdGljX2Nhc3Q8aW50PihGaWxlU3lzdGVtVHlwZVRlbXBvcmFy
eSksIGVudW1fbWlzbWF0Y2gpOworQ09NUElMRV9BU1NFUlQoc3RhdGljX2Nhc3Q8aW50PihXb3Jr
ZXJDb250ZXh0RmlsZVN5c3RlbTo6UEVSU0lTVEVOVCkgPT0gc3RhdGljX2Nhc3Q8aW50PihGaWxl
U3lzdGVtVHlwZVBlcnNpc3RlbnQpLCBlbnVtX21pc21hdGNoKTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0v
V29ya2VyQ29udGV4dEZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbS9Xb3JrZXJDb250ZXh0RmlsZVN5c3RlbS5oCmluZGV4IGM1MDBmNWUyZWVmNGMxNGYzYTQ4
Yjk3NTQ1N2U5YTM5NmZlMjRkYmEuLjE5OWUyODM3NWQ0NGFkYjA1MWQ0ZTZmNmZiOGIxOGM4OTcx
ZDM0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9Xb3Jr
ZXJDb250ZXh0RmlsZVN5c3RlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbS9Xb3JrZXJDb250ZXh0RmlsZVN5c3RlbS5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIFdv
cmtlckNvbnRleHQ7CiAKIGNsYXNzIFdvcmtlckNvbnRleHRGaWxlU3lzdGVtIHsKIHB1YmxpYzoK
LSAgICBlbnVtIEZpbGVTeXN0ZW1UeXBlIHsKKyAgICBlbnVtIHsKICAgICAgICAgVEVNUE9SQVJZ
LAogICAgICAgICBQRVJTSVNURU5ULAogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
QXN5bmNGaWxlU3lzdGVtLmNwcAppbmRleCA4OGFkOThhNGYxMjM1ODlmNjY0OTQ4ODZhMDZlMmQx
ZDMyYWZhMmE5Li4xM2MyODJlMjA2ZGRjMWY1NzBhZGYwZmE0ZDU0NGIwMzQwMjk5M2QwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHAKQEAgLTUyLDE4ICs1
MiwxOCBAQCBib29sIEFzeW5jRmlsZVN5c3RlbTo6aXNBdmFpbGFibGUoKQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotYm9vbCBBc3luY0ZpbGVTeXN0ZW06OmlzVmFsaWRUeXBlKFR5cGUgdHlwZSkK
K2Jvb2wgQXN5bmNGaWxlU3lzdGVtOjppc1ZhbGlkVHlwZShGaWxlU3lzdGVtVHlwZSB0eXBlKQog
ewotICAgIHJldHVybiB0eXBlID09IFRlbXBvcmFyeSB8fCB0eXBlID09IFBlcnNpc3RlbnQ7Cisg
ICAgcmV0dXJuIHR5cGUgPT0gRmlsZVN5c3RlbVR5cGVUZW1wb3JhcnkgfHwgdHlwZSA9PSBGaWxl
U3lzdGVtVHlwZVBlcnNpc3RlbnQ7CiB9CiAKLVBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBB
c3luY0ZpbGVTeXN0ZW06OmNyZWF0ZShUeXBlKQorUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+
IEFzeW5jRmlsZVN5c3RlbTo6Y3JlYXRlKEZpbGVTeXN0ZW1UeXBlKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgQXN5bmNGaWxlU3lzdGVt
OjpvcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIGJhc2VQYXRoLCBjb25zdCBTdHJpbmcmIHN0
b3JhZ2VJZGVudGlmaWVyLCBUeXBlIHR5cGUsIGJvb2wsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lz
dGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit2b2lkIEFzeW5jRmlsZVN5c3RlbTo6b3BlbkZpbGVT
eXN0ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlSWRlbnRp
ZmllciwgRmlsZVN5c3RlbVR5cGUsIGJvb2wsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2Fs
bGJhY2tzPiBjYWxsYmFja3MpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBjYWxsYmFj
a3MtPmRpZEZhaWwoTk9UX1NVUFBPUlRFRF9FUlIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9B
c3luY0ZpbGVTeXN0ZW0uaAppbmRleCA3NzkyMTAxYzUzMGEyMWMyNjVjZmM0YjQ2YTM0NmZiOTIw
YzQxMjUzLi43MDQ5OGNhMWZlODhjMjJmNzc2ZmZkZjJhM2Y0YTI2ZTRmNTQ4ZGM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaApAQCAtMzMsNiArMzMsNyBAQAog
CiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogCisjaW5jbHVkZSAiRmlsZVN5c3RlbVR5cGUuaCIK
ICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRl
ICJUaW1lci5oIgpAQCAtNTAsMTIgKzUxLDYgQEAgY2xhc3MgQXN5bmNGaWxlU3lzdGVtIHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5Bc3luY0ZpbGVTeXN0ZW0oKSB7IH0KIAotICAgIC8vIEZpbGVT
eXN0ZW0gdHlwZQotICAgIGVudW0gVHlwZSB7Ci0gICAgICAgIFRlbXBvcmFyeSwKLSAgICAgICAg
UGVyc2lzdGVudCwKLSAgICB9OwotCiAgICAgLy8gUGF0aCBwcmVmaXhlcyB0aGF0IGFyZSB1c2Vk
IGluIHRoZSBmaWxlc3lzdGVtIFVSTHMgKHRoYXQgY2FuIGJlIG9idGFpbmVkIGJ5IHRvVVJMKCkp
LgogICAgIC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2ZpbGUtc3lzdGVtLWFwaS8jd2lkbC1FbnRy
eS10b1VSTAogICAgIHN0YXRpYyBjb25zdCBjaGFyIHBlcnNpc3RlbnRQYXRoUHJlZml4W107CkBA
IC02OCw5ICs2Myw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7
CiAKLSAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkVHlwZShUeXBlKTsKKyAgICBzdGF0aWMgYm9vbCBp
c1ZhbGlkVHlwZShGaWxlU3lzdGVtVHlwZSk7CiAKLSAgICBzdGF0aWMgYm9vbCBjcmFja0ZpbGVT
eXN0ZW1VUkwoY29uc3QgS1VSTCYsIFR5cGUmLCBTdHJpbmcmIGZpbGVQYXRoKTsKKyAgICBzdGF0
aWMgYm9vbCBjcmFja0ZpbGVTeXN0ZW1VUkwoY29uc3QgS1VSTCYsIEZpbGVTeXN0ZW1UeXBlJiwg
U3RyaW5nJiBmaWxlUGF0aCk7CiAKICAgICB2aXJ0dWFsIFN0cmluZyB0b1VSTChjb25zdCBTdHJp
bmcmIG9yaWdpblN0cmluZywgY29uc3QgU3RyaW5nJiBmdWxsUGF0aCkgPSAwOwogCkBAIC03OSwx
MCArNzQsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCB3YWl0Rm9yT3BlcmF0aW9uVG9D
b21wbGV0ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBDcmVhdGVzIGFuZCByZXR1cm5z
IGEgbmV3IHBsYXRmb3JtLXNwZWNpZmljIEFzeW5jRmlsZVN5c3RlbSBpbnN0YW5jZSBpZiB0aGUg
cGxhdGZvcm0gaGFzIGl0cyBvd24gaW1wbGVtZW50YXRpb24uCi0gICAgc3RhdGljIFBhc3NPd25Q
dHI8QXN5bmNGaWxlU3lzdGVtPiBjcmVhdGUoVHlwZSk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8
QXN5bmNGaWxlU3lzdGVtPiBjcmVhdGUoRmlsZVN5c3RlbVR5cGUpOwogCiAgICAgLy8gT3BlbnMg
YSBuZXcgZmlsZSBzeXN0ZW0uIFRoZSBjcmVhdGUgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGV0aGVy
IG9yIG5vdCB0byBjcmVhdGUgdGhlIHBhdGggaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdHMu
Ci0gICAgc3RhdGljIHZvaWQgb3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCwg
Y29uc3QgU3RyaW5nJiBzdG9yYWdlSWRlbnRpZmllciwgVHlwZSwgYm9vbCBjcmVhdGUsIFBhc3NP
d25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CisgICAgc3RhdGljIHZvaWQgb3BlbkZp
bGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVR5cGUsIGJvb2wgY3JlYXRlLCBQYXNzT3duUHRyPEFzeW5jRmls
ZVN5c3RlbUNhbGxiYWNrcz4pOwogCiAgICAgLy8gTW92ZXMgYSBmaWxlIG9yIGRpcmVjdG9yeSBm
cm9tIHNyY1BhdGggdG8gZGVzdFBhdGguCiAgICAgLy8gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
OjpkaWRTdWNjZWVkKCkgaXMgY2FsbGVkIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZWQg
c3VjY2Vzc2Z1bGx5LgpAQCAtMTQ3LDE1ICsxNDIsMTUgQEAgcHVibGljOgogICAgIC8vIEFzeW5j
RmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkRmFpbCgpIGlzIGNhbGxlZCBvdGhlcndpc2UuCiAgICAg
dmlydHVhbCB2b2lkIGNyZWF0ZVNuYXBzaG90RmlsZUFuZFJlYWRNZXRhZGF0YShjb25zdCBTdHJp
bmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikgPSAwOwogCi0g
ICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgRmlsZVN5c3RlbVR5
cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgQXN5
bmNGaWxlU3lzdGVtKFR5cGUgdHlwZSkKKyAgICBBc3luY0ZpbGVTeXN0ZW0oRmlsZVN5c3RlbVR5
cGUgdHlwZSkKICAgICAgICAgOiBtX3R5cGUodHlwZSkKICAgICB7CiAgICAgfQogCi0gICAgVHlw
ZSBtX3R5cGU7CisgICAgRmlsZVN5c3RlbVR5cGUgbV90eXBlOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3Rl
bVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW1UeXBlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjgzOTljNWQ3MTY4NzM0NWI3MjE4YjM2NzRiZGVjZTk3MWFiY2YzZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW1UeXBlLmgKQEAgLTAs
MCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgRmlsZVN5c3RlbVR5cGVfaAorI2RlZmluZSBGaWxlU3lzdGVtVHlw
ZV9oCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Ly8gRm9yIGZpbGUgc3lzdGVtIHR5cGVzIHVzZWQgaW4gRmlsZVN5c3RlbSBBUEkuCitlbnVtIEZp
bGVTeXN0ZW1UeXBlIHsKKyAgICBGaWxlU3lzdGVtVHlwZVRlbXBvcmFyeSwKKyAgICBGaWxlU3lz
dGVtVHlwZVBlcnNpc3RlbnQsCisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICAvLyBUZW1w
b3JhcnkgaXNvbGF0ZWQgbm9uLXNhbmRib3ggZmlsZXN5c3RlbS4KKyAgICBGaWxlU3lzdGVtVHlw
ZUlzb2xhdGVkLAorCisgICAgLy8gTm9uLXNhbmRib3ggZmlsZXN5c3RlbS4KKyAgICBGaWxlU3lz
dGVtVHlwZUV4dGVybmFsLAorI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNlbmRpZiAvLyBGaWxlU3lzdGVtVHlw
ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0FzeW5j
RmlsZVN5c3RlbUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2ti
ZXJyeS9Bc3luY0ZpbGVTeXN0ZW1CbGFja0JlcnJ5LmNwcAppbmRleCA1ZmUyOTdlYjI0ZGQzOWNl
ZTQzN2I3MjEwZmUyNjZmZmEzNjJjYzMzLi44OGY4NmU4YTcwOGMxZDU5ZjNmMzEyZDIzMGQwNDZm
M2U3NGE4YmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5
L0FzeW5jRmlsZVN5c3RlbUJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2JsYWNrYmVycnkvQXN5bmNGaWxlU3lzdGVtQmxhY2tCZXJyeS5jcHAKQEAgLTM1LDcgKzM1
LDcgQEAgYm9vbCBBc3luY0ZpbGVTeXN0ZW06OmlzQXZhaWxhYmxlKCkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLWJvb2wgQXN5bmNGaWxlU3lzdGVtOjppc1ZhbGlkVHlwZShUeXBlIHR5cGUpCiti
b29sIEFzeW5jRmlsZVN5c3RlbTo6aXNWYWxpZFR5cGUoRmlsZVN5c3RlbVR5cGUgdHlwZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0odHlwZSk7CiAKQEAgLTQzLDEyICs0MywxMiBAQCBib29sIEFzeW5j
RmlsZVN5c3RlbTo6aXNWYWxpZFR5cGUoVHlwZSB0eXBlKQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+IEFzeW5jRmlsZVN5c3RlbTo6Y3JlYXRlKFR5
cGUgdHlwZSkKK1Bhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBBc3luY0ZpbGVTeXN0ZW06OmNy
ZWF0ZShGaWxlU3lzdGVtVHlwZSB0eXBlKQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgQXN5
bmNGaWxlU3lzdGVtQmxhY2tCZXJyeSh0eXBlKSk7CiB9CiAKLXZvaWQgQXN5bmNGaWxlU3lzdGVt
OjpvcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIGJhc2VQYXRoLCBjb25zdCBTdHJpbmcmIHN0
b3JhZ2VJZGVudGlmaWVyLCBUeXBlIHR5cGUsIGJvb2wsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lz
dGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit2b2lkIEFzeW5jRmlsZVN5c3RlbTo6b3BlbkZpbGVT
eXN0ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlSWRlbnRp
ZmllciwgRmlsZVN5c3RlbVR5cGUgdHlwZSwgYm9vbCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0
ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKIHsKICAgICBVTlVTRURfUEFSQU0oYmFzZVBhdGgpOwog
ICAgIFVOVVNFRF9QQVJBTShzdG9yYWdlSWRlbnRpZmllcik7CkBAIC01OSw3ICs1OSw3IEBAIHZv
aWQgQXN5bmNGaWxlU3lzdGVtOjpvcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIGJhc2VQYXRo
LCBjb25zdCBTdHJpbmcmIHN0b3JhCiAgICAgY2FsbGJhY2tzLT5kaWRGYWlsKE5PVF9TVVBQT1JU
RURfRVJSKTsKIH0KIAotYm9vbCBBc3luY0ZpbGVTeXN0ZW06OmNyYWNrRmlsZVN5c3RlbVVSTChj
b25zdCBLVVJMJiB1cmwsIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSYgdHlwZSwgU3RyaW5nJiBmaWxl
UGF0aCkKK2Jvb2wgQXN5bmNGaWxlU3lzdGVtOjpjcmFja0ZpbGVTeXN0ZW1VUkwoY29uc3QgS1VS
TCYgdXJsLCBGaWxlU3lzdGVtVHlwZSYgdHlwZSwgU3RyaW5nJiBmaWxlUGF0aCkKIHsKICAgICBV
TlVTRURfUEFSQU0odXJsKTsKICAgICBVTlVTRURfUEFSQU0odHlwZSk7CkBAIC02OSw3ICs2OSw3
IEBAIGJvb2wgQXN5bmNGaWxlU3lzdGVtOjpjcmFja0ZpbGVTeXN0ZW1VUkwoY29uc3QgS1VSTCYg
dXJsLCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUmCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1Bc3lu
Y0ZpbGVTeXN0ZW1CbGFja0JlcnJ5OjpBc3luY0ZpbGVTeXN0ZW1CbGFja0JlcnJ5KEFzeW5jRmls
ZVN5c3RlbTo6VHlwZSB0eXBlKQorQXN5bmNGaWxlU3lzdGVtQmxhY2tCZXJyeTo6QXN5bmNGaWxl
U3lzdGVtQmxhY2tCZXJyeShGaWxlU3lzdGVtVHlwZSB0eXBlKQogICAgIDogQXN5bmNGaWxlU3lz
dGVtKHR5cGUpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvQXN5bmNGaWxlU3lzdGVtQmxhY2tCZXJyeS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9Bc3luY0ZpbGVTeXN0ZW1CbGFja0Jl
cnJ5LmgKaW5kZXggOGZhOWExOTliNTdjZTVlODA0ZjFkNzU3ZDBkMWZkNTk4ZTcyNTNhNC4uNDk3
OTNhMDg4MjY3YWRmMWNjZDY0OGFkYjhhZDNjNzQxMjBkZTM2MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9Bc3luY0ZpbGVTeXN0ZW1CbGFja0JlcnJ5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9Bc3luY0ZpbGVTeXN0ZW1C
bGFja0JlcnJ5LmgKQEAgLTI3LDcgKzI3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBBc3luY0ZpbGVTeXN0ZW1CbGFja0JlcnJ5IDogcHVibGljIEFzeW5jRmlsZVN5c3RlbSB7CiBw
dWJsaWM6Ci0gICAgQXN5bmNGaWxlU3lzdGVtQmxhY2tCZXJyeShBc3luY0ZpbGVTeXN0ZW06OlR5
cGUpOworICAgIEFzeW5jRmlsZVN5c3RlbUJsYWNrQmVycnkoRmlsZVN5c3RlbVR5cGUpOwogICAg
IHZpcnR1YWwgfkFzeW5jRmlsZVN5c3RlbUJsYWNrQmVycnkoKTsKICAgICB2aXJ0dWFsIFN0cmlu
ZyB0b1VSTChjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgY29uc3QgU3RyaW5nJiBmdWxsUGF0
aCk7CiAgICAgdmlydHVhbCB2b2lkIG1vdmUoY29uc3QgU3RyaW5nJiBzb3VyY2VQYXRoLCBjb25z
dCBTdHJpbmcmIGRlc3RpbmF0aW9uUGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3M+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Bc3luY0Zp
bGVTeXN0ZW1HdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0FzeW5jRmlsZVN5
c3RlbUd0ay5jcHAKaW5kZXggYzFkYjAwNmE4NDhmMzkyNmRkOWZlYzMxZjk2NGEwZmRiZGFmNjlm
Yy4uYzFkMDliNDQxOTk4ZTQwMmQ4ZmI1NTE3ZWU0NDgwNDAzZDhlMWU1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0FzeW5jRmlsZVN5c3RlbUd0ay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0FzeW5jRmlsZVN5c3RlbUd0ay5jcHAKQEAgLTM1
LDMwICszNSwzMCBAQCBib29sIEFzeW5jRmlsZVN5c3RlbTo6aXNBdmFpbGFibGUoKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotYm9vbCBBc3luY0ZpbGVTeXN0ZW06OmlzVmFsaWRUeXBlKFR5cGUg
dHlwZSkKK2Jvb2wgQXN5bmNGaWxlU3lzdGVtOjppc1ZhbGlkVHlwZShGaWxlU3lzdGVtVHlwZSB0
eXBlKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1Q
YXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gQXN5bmNGaWxlU3lzdGVtOjpjcmVhdGUoVHlwZSB0
eXBlKQorUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+IEFzeW5jRmlsZVN5c3RlbTo6Y3JlYXRl
KEZpbGVTeXN0ZW1UeXBlIHR5cGUpCiB7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBBc3luY0Zp
bGVTeXN0ZW1HdGsodHlwZSkpOwogfQogCi12b2lkIEFzeW5jRmlsZVN5c3RlbTo6b3BlbkZpbGVT
eXN0ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlSWRlbnRp
ZmllciwgVHlwZSB0eXBlLCBib29sLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNr
cz4gY2FsbGJhY2tzKQordm9pZCBBc3luY0ZpbGVTeXN0ZW06Om9wZW5GaWxlU3lzdGVtKGNvbnN0
IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1UeXBlIHR5cGUsIGJvb2wsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
PiBjYWxsYmFja3MpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBjYWxsYmFja3MtPmRp
ZEZhaWwoTk9UX1NVUFBPUlRFRF9FUlIpOwogfQogCi1ib29sIEFzeW5jRmlsZVN5c3RlbTo6Y3Jh
Y2tGaWxlU3lzdGVtVVJMKGNvbnN0IEtVUkwmIHVybCwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlJiB0
eXBlLCBTdHJpbmcmIGZpbGVQYXRoKQorYm9vbCBBc3luY0ZpbGVTeXN0ZW06OmNyYWNrRmlsZVN5
c3RlbVVSTChjb25zdCBLVVJMJiB1cmwsIEZpbGVTeXN0ZW1UeXBlJiB0eXBlLCBTdHJpbmcmIGZp
bGVQYXRoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1Bc3luY0ZpbGVTeXN0ZW1HdGs6OkFzeW5jRmlsZVN5c3RlbUd0ayhBc3luY0ZpbGVTeXN0ZW06
OlR5cGUgdHlwZSkKK0FzeW5jRmlsZVN5c3RlbUd0azo6QXN5bmNGaWxlU3lzdGVtR3RrKEZpbGVT
eXN0ZW1UeXBlIHR5cGUpCiAgICAgOiBBc3luY0ZpbGVTeXN0ZW0odHlwZSkKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Fz
eW5jRmlsZVN5c3RlbUd0ay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0FzeW5jRmls
ZVN5c3RlbUd0ay5oCmluZGV4IGNiNDViNmVhNGJjMjAyMGU4ZWI0YzhlYjVhMTk4ZjA3NmY1YTY5
N2IuLjMyMDE4YzRlY2MwYTdiZDgwYTgyYjNlYjgxN2Y3ZTQwZmE0ZWVkNzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Bc3luY0ZpbGVTeXN0ZW1HdGsuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQXN5bmNGaWxlU3lzdGVtR3RrLmgKQEAgLTMxLDcg
KzMxLDcgQEAgY2xhc3MgQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOwogCiBjbGFzcyBBc3luY0Zp
bGVTeXN0ZW1HdGsgOiBwdWJsaWMgQXN5bmNGaWxlU3lzdGVtIHsKIHB1YmxpYzoKLSAgICBBc3lu
Y0ZpbGVTeXN0ZW1HdGsoQXN5bmNGaWxlU3lzdGVtOjpUeXBlKTsKKyAgICBBc3luY0ZpbGVTeXN0
ZW1HdGsoRmlsZVN5c3RlbVR5cGUpOwogICAgIHZpcnR1YWwgfkFzeW5jRmlsZVN5c3RlbUd0aygp
OwogCiAgICAgdmlydHVhbCBTdHJpbmcgdG9VUkwoY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcs
IGNvbnN0IFN0cmluZyYgZnVsbFBhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRleCA1NzUyN2Q0NjhiMzQxNjY2NjgzY2Zj
ZDdlYmY2YzMzZTA2ZjVjMzVlLi45ZjM5ZmMzNzJiNTUyMjFhNjVjNmU3Mjg5OTMzMTU1ZGU5Njdj
ZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGlu
Z0VudW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGlu
Z0VudW1zLmNwcApAQCAtMzYsMTMgKzM2LDEzIEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlv
bkNhY2hlSG9zdC5oIgotI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkNv
bnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyLmgiCiAjaW5j
bHVkZSAiRWRpdG9ySW5zZXJ0QWN0aW9uLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgog
I2luY2x1ZGUgIkZpbGVFcnJvci5oIgogI2luY2x1ZGUgIkZpbGVNZXRhZGF0YS5oIgorI2luY2x1
ZGUgIkZpbGVTeXN0ZW1UeXBlLmgiCiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9uLmgiCiAjaW5j
bHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFNtb290aGluZ01vZGUuaCIK
QEAgLTQ3MCw4ICs0NzAsMTAgQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJREJL
ZXk6OkRhdGVUeXBlLCBJREJLZXk6OkRhdGVUeXBlKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV2ViSURCS2V5OjpOdW1iZXJUeXBlLCBJREJLZXk6Ok51bWJlclR5cGUpOwogCiAjaWYg
RU5BQkxFKEZJTEVfU1lTVEVNKQotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJGaWxl
U3lzdGVtOjpUeXBlVGVtcG9yYXJ5LCBBc3luY0ZpbGVTeXN0ZW06OlRlbXBvcmFyeSk7Ci1DT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkZpbGVTeXN0ZW06OlR5cGVQZXJzaXN0ZW50LCBB
c3luY0ZpbGVTeXN0ZW06OlBlcnNpc3RlbnQpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXZWJGaWxlU3lzdGVtOjpUeXBlVGVtcG9yYXJ5LCBGaWxlU3lzdGVtVHlwZVRlbXBvcmFyeSk7
CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkZpbGVTeXN0ZW06OlR5cGVQZXJzaXN0
ZW50LCBGaWxlU3lzdGVtVHlwZVBlcnNpc3RlbnQpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXZWJGaWxlU3lzdGVtOjpUeXBlRXh0ZXJuYWwsIEZpbGVTeXN0ZW1UeXBlRXh0ZXJuYWwp
OworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJGaWxlU3lzdGVtOjpUeXBlSXNvbGF0
ZWQsIEZpbGVTeXN0ZW1UeXBlSXNvbGF0ZWQpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXZWJGaWxlSW5mbzo6VHlwZVVua25vd24sIEZpbGVNZXRhZGF0YTo6VHlwZVVua25vd24pOwog
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJGaWxlSW5mbzo6VHlwZUZpbGUsIEZpbGVN
ZXRhZGF0YTo6VHlwZUZpbGUpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJGaWxl
SW5mbzo6VHlwZURpcmVjdG9yeSwgRmlsZU1ldGFkYXRhOjpUeXBlRGlyZWN0b3J5KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVt
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVt
LmNwcAppbmRleCA2ZjM1OTgzNzAzMGE1N2U4NDlhYTdhZWUwNmRmOTEwNDY5OTAxMzk3Li4xZTBm
ZWRiZDZmOWZjZDFkZWU2MTcwNmZlYTY3MTYxMzUzNjE3OGZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCkBAIC01
MiwxMSArNTIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgewogCiAvLyBGb3Ig
aXNvbGF0ZWQgZmlsZXN5c3RlbS4KLWNvbnN0IEFzeW5jRmlsZVN5c3RlbTo6VHlwZSBpc29sYXRl
ZFR5cGUgPSBzdGF0aWNfY2FzdDxBc3luY0ZpbGVTeXN0ZW06OlR5cGU+KFdlYktpdDo6V2ViRmls
ZVN5c3RlbTo6VHlwZUlzb2xhdGVkKTsKIGNvbnN0IGNoYXIgaXNvbGF0ZWRQYXRoUHJlZml4W10g
PSAiaXNvbGF0ZWQiOwogCiAvLyBGb3IgZXh0ZXJuYWwgZmlsZXN5c3RlbS4KLWNvbnN0IEFzeW5j
RmlsZVN5c3RlbTo6VHlwZSBleHRlcm5hbFR5cGUgPSBzdGF0aWNfY2FzdDxBc3luY0ZpbGVTeXN0
ZW06OlR5cGU+KFdlYktpdDo6V2ViRmlsZVN5c3RlbTo6VHlwZUV4dGVybmFsKTsKIGNvbnN0IGNo
YXIgZXh0ZXJuYWxQYXRoUHJlZml4W10gPSAiZXh0ZXJuYWwiOwogY29uc3Qgc2l6ZV90IGV4dGVy
bmFsUGF0aFByZWZpeExlbmd0aCA9IHNpemVvZihleHRlcm5hbFBhdGhQcmVmaXgpIC0gMTsKIApA
QCAtMTA1LDcgKzEwMyw3IEBAIGJvb2wgQXN5bmNGaWxlU3lzdGVtOjppc0F2YWlsYWJsZSgpCiB9
CiAKIC8vIHN0YXRpYwotYm9vbCBBc3luY0ZpbGVTeXN0ZW06OmNyYWNrRmlsZVN5c3RlbVVSTChj
b25zdCBLVVJMJiB1cmwsIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSYgdHlwZSwgU3RyaW5nJiBmaWxl
UGF0aCkKK2Jvb2wgQXN5bmNGaWxlU3lzdGVtOjpjcmFja0ZpbGVTeXN0ZW1VUkwoY29uc3QgS1VS
TCYgdXJsLCBGaWxlU3lzdGVtVHlwZSYgdHlwZSwgU3RyaW5nJiBmaWxlUGF0aCkKIHsKICAgICBp
ZiAoIXVybC5wcm90b2NvbElzKCJmaWxlc3lzdGVtIikpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTExMyw1MSArMTExLDI2IEBAIGJvb2wgQXN5bmNGaWxlU3lzdGVtOjpjcmFja0ZpbGVTeXN0
ZW1VUkwoY29uc3QgS1VSTCYgdXJsLCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUmCiAgICAgaWYgKHVy
bC5pbm5lclVSTCgpKSB7CiAgICAgICAgIFN0cmluZyB0eXBlU3RyaW5nID0gdXJsLmlubmVyVVJM
KCktPnBhdGgoKS5zdWJzdHJpbmcoMSk7CiAgICAgICAgIGlmICh0eXBlU3RyaW5nID09IHRlbXBv
cmFyeVBhdGhQcmVmaXgpCi0gICAgICAgICAgICB0eXBlID0gVGVtcG9yYXJ5OworICAgICAgICAg
ICAgdHlwZSA9IEZpbGVTeXN0ZW1UeXBlVGVtcG9yYXJ5OwogICAgICAgICBlbHNlIGlmICh0eXBl
U3RyaW5nID09IHBlcnNpc3RlbnRQYXRoUHJlZml4KQotICAgICAgICAgICAgdHlwZSA9IFBlcnNp
c3RlbnQ7CisgICAgICAgICAgICB0eXBlID0gRmlsZVN5c3RlbVR5cGVQZXJzaXN0ZW50OwogICAg
ICAgICBlbHNlIGlmICh0eXBlU3RyaW5nID09IGV4dGVybmFsUGF0aFByZWZpeCkKLSAgICAgICAg
ICAgIHR5cGUgPSBleHRlcm5hbFR5cGU7CisgICAgICAgICAgICB0eXBlID0gRmlsZVN5c3RlbVR5
cGVFeHRlcm5hbDsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgICAgIGZpbGVQYXRoID0gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHVybC5wYXRoKCkpOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBjbGF1c2Ugb25jZSBo
dHRwOi8vY29kZXJldmlldy5jaHJvbWl1bS5vcmcvNzgxMTAwNgotICAgICAgICAvLyBsYW5kcywg
d2hpY2ggbWFrZXMgdGhpcyBkZWFkIGNvZGUuCi0gICAgICAgIEtVUkwgb3JpZ2luVVJMKFBhcnNl
ZFVSTFN0cmluZywgdXJsLnBhdGgoKSk7Ci0gICAgICAgIFN0cmluZyBwYXRoID0gZGVjb2RlVVJM
RXNjYXBlU2VxdWVuY2VzKG9yaWdpblVSTC5wYXRoKCkpOwotICAgICAgICBpZiAocGF0aC5pc0Vt
cHR5KCkgfHwgcGF0aFswXSAhPSAnLycpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIHBhdGggPSBwYXRoLnN1YnN0cmluZygxKTsKLQotICAgICAgICBpZiAocGF0aC5zdGFydHNX
aXRoKHRlbXBvcmFyeVBhdGhQcmVmaXgpKSB7Ci0gICAgICAgICAgICB0eXBlID0gVGVtcG9yYXJ5
OwotICAgICAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKHRlbXBvcmFyeVBhdGhQcmVmaXhM
ZW5ndGgpOwotICAgICAgICB9IGVsc2UgaWYgKHBhdGguc3RhcnRzV2l0aChwZXJzaXN0ZW50UGF0
aFByZWZpeCkpIHsKLSAgICAgICAgICAgIHR5cGUgPSBQZXJzaXN0ZW50OwotICAgICAgICAgICAg
cGF0aCA9IHBhdGguc3Vic3RyaW5nKHBlcnNpc3RlbnRQYXRoUHJlZml4TGVuZ3RoKTsKLSAgICAg
ICAgfSBlbHNlIGlmIChwYXRoLnN0YXJ0c1dpdGgoZXh0ZXJuYWxQYXRoUHJlZml4KSkgewotICAg
ICAgICAgICAgdHlwZSA9IGV4dGVybmFsVHlwZTsKLSAgICAgICAgICAgIHBhdGggPSBwYXRoLnN1
YnN0cmluZyhleHRlcm5hbFBhdGhQcmVmaXhMZW5ndGgpOwotICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBpZiAocGF0aC5pc0VtcHR5KCkgfHwgcGF0
aFswXSAhPSAnLycpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgZmlsZVBh
dGguc3dhcChwYXRoKTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIC8vIHN0YXRpYwot
Ym9vbCBBc3luY0ZpbGVTeXN0ZW06OmlzVmFsaWRUeXBlKFR5cGUgdHlwZSkKK2Jvb2wgQXN5bmNG
aWxlU3lzdGVtOjppc1ZhbGlkVHlwZShGaWxlU3lzdGVtVHlwZSB0eXBlKQogewotICAgIHJldHVy
biB0eXBlID09IFRlbXBvcmFyeSB8fCB0eXBlID09IFBlcnNpc3RlbnQgfHwgdHlwZSA9PSBzdGF0
aWNfY2FzdDxUeXBlPihXZWJLaXQ6OldlYkZpbGVTeXN0ZW06OlR5cGVFeHRlcm5hbCk7CisgICAg
cmV0dXJuIHR5cGUgPT0gRmlsZVN5c3RlbVR5cGVUZW1wb3JhcnkgfHwgdHlwZSA9PSBGaWxlU3lz
dGVtVHlwZVBlcnNpc3RlbnQgfHwgdHlwZSA9PSBGaWxlU3lzdGVtVHlwZUV4dGVybmFsOwogfQog
Ci1Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6QXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0oQXN5bmNG
aWxlU3lzdGVtOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHJvb3RVUkwpCitBc3luY0ZpbGVTeXN0
ZW1DaHJvbWl1bTo6QXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0oRmlsZVN5c3RlbVR5cGUgdHlwZSwg
Y29uc3QgS1VSTCYgcm9vdFVSTCkKICAgICA6IEFzeW5jRmlsZVN5c3RlbSh0eXBlKQogICAgICwg
bV93ZWJGaWxlU3lzdGVtKFdlYktpdDo6d2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmZpbGVTeXN0
ZW0oKSkKICAgICAsIG1fZmlsZXN5c3RlbVJvb3RVUkwocm9vdFVSTCkKQEAgLTE5MSw3ICsxNjQs
NyBAQCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06
OmNyZWF0ZUlzb2xhdGVkRmlsZVN5c3RlbShjbwogICAgIHJvb3RVUkwuYXBwZW5kKGZpbGVzeXN0
ZW1JZCk7CiAgICAgcm9vdFVSTC5hcHBlbmQoIi8iKTsKIAotICAgIHJldHVybiBBc3luY0ZpbGVT
eXN0ZW1DaHJvbWl1bTo6Y3JlYXRlKGlzb2xhdGVkVHlwZSwgS1VSTChQYXJzZWRVUkxTdHJpbmcs
IHJvb3RVUkwudG9TdHJpbmcoKSkpOworICAgIHJldHVybiBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1
bTo6Y3JlYXRlKEZpbGVTeXN0ZW1UeXBlSXNvbGF0ZWQsIEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBy
b290VVJMLnRvU3RyaW5nKCkpKTsKIH0KIAogQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06On5Bc3lu
Y0ZpbGVTeXN0ZW1DaHJvbWl1bSgpCkBAIC0yMDUsMTAgKzE3OCwxMCBAQCBTdHJpbmcgQXN5bmNG
aWxlU3lzdGVtQ2hyb21pdW06OnRvVVJMKGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCBjb25z
dCBTdHJpbmcmCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAogICAgIC8vIEZvciBub3cgd2Ug
ZG9uJ3Qgc3VwcG9ydCB0b1VSTCBmb3IgaXNvbGF0ZWQgZmlsZXN5c3RlbSAodW50aWwgd2UgcmVz
b2x2ZSB0aGUgaXNvbGF0ZWQgZmlsZXN5c3RlbSBsaWZldGltZSBpc3N1ZSkuCi0gICAgaWYgKHR5
cGUoKSA9PSBpc29sYXRlZFR5cGUpCisgICAgaWYgKHR5cGUoKSA9PSBGaWxlU3lzdGVtVHlwZUlz
b2xhdGVkKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICBpZiAodHlwZSgpID09IGV4
dGVybmFsVHlwZSkgeworICAgIGlmICh0eXBlKCkgPT0gRmlsZVN5c3RlbVR5cGVFeHRlcm5hbCkg
ewogICAgICAgICAvLyBGb3IgZXh0ZXJuYWwgZmlsZXN5c3RlbSBvcmlnaW5TdHJpbmcgY291bGQg
YmUgZGlmZmVyZW50IGZyb20gd2hhdCB3ZSBoYXZlIGluIG1fZmlsZXN5c3RlbVJvb3RVUkwuCiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgICAgICByZXN1bHQuYXBwZW5kKCJmaWxl
c3lzdGVtOiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXN5bmNG
aWxlU3lzdGVtQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmls
ZVN5c3RlbUNocm9taXVtLmgKaW5kZXggZjU2NWIzMzRkMGZhY2M5OTI2YjEzMmYzMjJiMGJkYjZh
ZGFlZjE4NC4uYTQ4MDlmNDVmZDc5YzgyOTgxODFlNDk1Y2I2NjIwZTU4OGM2OWM2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1
bS5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIEtVUkw7CiAKIGNsYXNzIEFzeW5jRmlsZVN5c3Rl
bUNocm9taXVtIDogcHVibGljIEFzeW5jRmlsZVN5c3RlbSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBjcmVhdGUoQXN5bmNGaWxlU3lzdGVtOjpUeXBl
IHR5cGUsIGNvbnN0IEtVUkwmIHJvb3RVUkwpCisgICAgc3RhdGljIFBhc3NPd25QdHI8QXN5bmNG
aWxlU3lzdGVtPiBjcmVhdGUoRmlsZVN5c3RlbVR5cGUgdHlwZSwgY29uc3QgS1VSTCYgcm9vdFVS
TCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQXN5bmNGaWxlU3lzdGVtQ2hy
b21pdW0odHlwZSwgcm9vdFVSTCkpOwogICAgIH0KQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTbmFwc2hvdEZpbGVBbmRSZWFkTWV0YWRhdGEoY29uc3Qg
U3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0oQXN5bmNGaWxlU3lzdGVtOjpU
eXBlLCBjb25zdCBLVVJMJiByb290VVJMKTsKKyAgICBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bShG
aWxlU3lzdGVtVHlwZSwgY29uc3QgS1VSTCYgcm9vdFVSTCk7CiAKICAgICBQYXNzT3duUHRyPEFz
eW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY3JlYXRlU25hcHNob3RGaWxlQ2FsbGJhY2soY29uc3Qg
S1VSTCYgaW50ZXJuYWxCbG9iVVJMLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNr
cz4pIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2Nh
bEZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2Nh
bEZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKaW5kZXggMjk3MWI5OTE4YTYzMzZjZDZkY2ExZTJkYmRj
YTY0NTlhZjUzY2IxNS4uODIyZDE2YjZjNTIwODY3ZjE4MDNmNThjMjc2MzA5YTI0ZTc2YWZlMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lzdGVtQ2hy
b21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsRmlsZVN5c3Rl
bUNocm9taXVtLmNwcApAQCAtMzMsMTIgKzMzLDEyIEBACiAKICNpZiBFTkFCTEUoRklMRV9TWVNU
RU0pCiAKLSNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJDcm9zc1RocmVh
ZFRhc2suaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVycm9yQ2FsbGJhY2su
aCIKICNpbmNsdWRlICJGaWxlU3lzdGVtQ2FsbGJhY2suaCIKICNpbmNsdWRlICJGaWxlU3lzdGVt
Q2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVR5cGUuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIldlYkZpbGVFcnJvci5oIgogI2luY2x1ZGUgInBsYXRm
b3JtL1dlYkZpbGVTeXN0ZW0uaCIKQEAgLTE4Myw3ICsxODMsNyBAQCBzdGF0aWMgdm9pZCBvcGVu
RmlsZVN5c3RlbU5vdEFsbG93ZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NPd25QdHI8
QXN5bmNGaQogICAgIGNhbGxiYWNrcy0+ZGlkRmFpbChXZWJLaXQ6OldlYkZpbGVFcnJvckFib3J0
KTsKIH0KIAotc3RhdGljIHZvaWQgb3BlbkZpbGVTeXN0ZW1IZWxwZXIoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIFBhc3NPd25QdHI8
QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGJvb2wgc3luY2hyb25vdXMsIGxv
bmcgbG9uZyBzaXplLCBDcmVhdGlvbkZsYWcgY3JlYXRlKQorc3RhdGljIHZvaWQgb3BlbkZpbGVT
eXN0ZW1IZWxwZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRmlsZVN5c3RlbVR5
cGUgdHlwZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcywg
Ym9vbCBzeW5jaHJvbm91cywgbG9uZyBsb25nIHNpemUsIENyZWF0aW9uRmxhZyBjcmVhdGUpCiB7
CiAgICAgYm9vbCBhbGxvd2VkID0gdHJ1ZTsKICAgICBBU1NFUlQoY29udGV4dCk7CkBAIC0yMTYs
MTIgKzIxNiwxMiBAQCBzdGF0aWMgdm9pZCBvcGVuRmlsZVN5c3RlbUhlbHBlcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBBc3luY0ZpbGVTeXN0ZQogICAgIH0KIH0KIAotdm9pZCBM
b2NhbEZpbGVTeXN0ZW06OnJlYWRGaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5
c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBib29sIHN5bmNocm9ub3VzKQordm9pZCBMb2NhbEZp
bGVTeXN0ZW06OnJlYWRGaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IEZpbGVTeXN0ZW1UeXBlIHR5cGUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
PiBjYWxsYmFja3MsIGJvb2wgc3luY2hyb25vdXMpCiB7CiAgICAgb3BlbkZpbGVTeXN0ZW1IZWxw
ZXIoY29udGV4dCwgdHlwZSwgY2FsbGJhY2tzLCBzeW5jaHJvbm91cywgMCwgT3BlbkV4aXN0aW5n
KTsKIH0KIAotdm9pZCBMb2NhbEZpbGVTeXN0ZW06OnJlcXVlc3RGaWxlU3lzdGVtKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBsb25n
IGxvbmcgc2l6ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNr
cywgYm9vbCBzeW5jaHJvbm91cykKK3ZvaWQgTG9jYWxGaWxlU3lzdGVtOjpyZXF1ZXN0RmlsZVN5
c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBGaWxlU3lzdGVtVHlwZSB0eXBl
LCBsb25nIGxvbmcgc2l6ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNh
bGxiYWNrcywgYm9vbCBzeW5jaHJvbm91cykKIHsKICAgICBvcGVuRmlsZVN5c3RlbUhlbHBlcihj
b250ZXh0LCB0eXBlLCBjYWxsYmFja3MsIHN5bmNocm9ub3VzLCBzaXplLCBDcmVhdGVJZk5vdFBy
ZXNlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRmls
ZVN5c3RlbUNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuY3BwCmluZGV4IDk4NGNlYmZkY2Y4YjA3NDViMjc1MWVm
ZmQzMmNiMGJmZTgyM2Y0MjMuLmU1ODc4YjVhYzE3OTY0ODAwNDY3ZDFhYjA3NWU2NGViYjJjZDA1
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZpbGVTeXN0ZW1D
YWxsYmFja3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGaWxl
U3lzdGVtQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1XZWJGaWxlU3lzdGVtQ2FsbGJhY2tz
SW1wbDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoUGFzc093blB0cjxBc3luY0ZpbGVTeXN0
ZW1DYWxsYmFja3M+IGNhbGxiYWNrcywgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGJvb2wgc3luY2hyb25vdXMpCitX
ZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoUGFz
c093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcywgRmlsZVN5c3RlbVR5
cGUgdHlwZSwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgYm9vbCBz
eW5jaHJvbm91cykKICAgICA6IG1fY2FsbGJhY2tzKGNhbGxiYWNrcykKICAgICAsIG1fdHlwZSh0
eXBlKQogICAgICwgbV9jb250ZXh0KGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuaAppbmRleCBkMmJlNTc0
MzQ1NWI1ZDI2MWQ4OGMxZWZlN2RmOThlOGNhZWM1ZTlhLi5iOGVlMzRlMzI1MzNiM2IyZThiZGNl
MjUzMThkMGVkNWQ5ODU3MmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmgKQEAgLTMxLDkgKzMxLDkgQEAKICNp
Zm5kZWYgV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGxfaAogI2RlZmluZSBXZWJGaWxlU3lzdGVt
Q2FsbGJhY2tzSW1wbF9oCiAKLSNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW0uaCIKLSNpbmNsdWRl
ICJwbGF0Zm9ybS9XZWJGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVR5cGUuaCIK
ICNpbmNsdWRlICJXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAicGxhdGZvcm0v
V2ViRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlZlY3Rvci5oIgogI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgpAQCAtNTIsNyAr
NTIsNyBAQCBjbGFzcyBXZWJVUkw7CiAKIGNsYXNzIFdlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBs
IDogcHVibGljIFdlYkZpbGVTeXN0ZW1DYWxsYmFja3MgewogcHVibGljOgotICAgIFdlYkZpbGVT
eXN0ZW1DYWxsYmFja3NJbXBsKFBhc3NPd25QdHI8V2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtQ2Fs
bGJhY2tzPiwgV2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtOjpUeXBlID0gV2ViQ29yZTo6QXN5bmNG
aWxlU3lzdGVtOjpUZW1wb3JhcnksIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqID0g
MCwgYm9vbCBzeW5jaHJvbm91cyA9IGZhbHNlKTsKKyAgICBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tz
SW1wbChQYXNzT3duUHRyPFdlYkNvcmU6OkFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4sIFdlYkNv
cmU6OkZpbGVTeXN0ZW1UeXBlID0gV2ViQ29yZTo6RmlsZVN5c3RlbVR5cGVUZW1wb3JhcnksIFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqID0gMCwgYm9vbCBzeW5jaHJvbm91cyA9IGZh
bHNlKTsKICAgICB2aXJ0dWFsIH5XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbCgpOwogCiAgICAg
dmlydHVhbCB2b2lkIGRpZFN1Y2NlZWQoKTsKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToKICAg
ICBPd25QdHI8V2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsK
IAogICAgIC8vIFVzZWQgZm9yIG9wZW5GaWxlU3lzdGVtIGNhbGxiYWNrcy4KLSAgICBXZWJDb3Jl
OjpBc3luY0ZpbGVTeXN0ZW06OlR5cGUgbV90eXBlOworICAgIFdlYkNvcmU6OkZpbGVTeXN0ZW1U
eXBlIG1fdHlwZTsKIAogICAgIC8vIFVzZWQgZm9yIHdvcmtlcidzIG9wZW5GaWxlU3lzdGVtIGNh
bGxiYWNrcy4KICAgICBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX2NvbnRleHQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCBjNmIw
NDM1MmZhNDk1MjllZWMwZmUwYzhkMWE5MDFlM2ZiZTA1ZjEzLi5kMGU2ZmUyMzhhMDFmOThiMWY2
MWJiMjRmZmM5ZTgxOWNkMmQ3YmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5jcHAKQEAgLTg1LDYgKzg1LDcgQEAKICNpbmNsdWRlICJFZGl0b3IuaCIKICNp
bmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJFdmVudExpc3RlbmVyV3JhcHBlci5o
IgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1UeXBlLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCkBAIC05
MzgsNyArOTM5LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFdlYkZyYW1lSW1wbDo6Y3JlYXRl
RmlsZVN5c3RlbShXZWJGaWxlU3lzdGVtOjpUeXBlIHR5cGUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlN0cmluZyYgbmFtZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgV2ViU3RyaW5nJiBwYXRoKQogewotICAgIHJldHVybiB0b1Y4KERPTUZpbGVTeXN0ZW06OmNy
ZWF0ZShmcmFtZSgpLT5kb2N1bWVudCgpLCBuYW1lLCBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6
Y3JlYXRlKHN0YXRpY19jYXN0PEFzeW5jRmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIEtVUkwoUGFy
c2VkVVJMU3RyaW5nLCBwYXRoLnV0ZjgoKS5kYXRhKCkpKSkpOworICAgIHJldHVybiB0b1Y4KERP
TUZpbGVTeXN0ZW06OmNyZWF0ZShmcmFtZSgpLT5kb2N1bWVudCgpLCBuYW1lLCBBc3luY0ZpbGVT
eXN0ZW1DaHJvbWl1bTo6Y3JlYXRlKHN0YXRpY19jYXN0PEZpbGVTeXN0ZW1UeXBlPih0eXBlKSwg
S1VSTChQYXJzZWRVUkxTdHJpbmcsIHBhdGgudXRmOCgpLmRhdGEoKSkpKSk7CiB9CiAKIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBXZWJGcmFtZUltcGw6OmNyZWF0ZUZpbGVFbnRyeShXZWJGaWxlU3lz
dGVtOjpUeXBlIHR5cGUsCkBAIC05NDcsNyArOTQ4LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFdlYkZyYW1lSW1wbDo6Y3JlYXRlRmlsZUVudHJ5KFdlYkZpbGVTeXN0ZW06OlR5cGUgdHlwZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBXZWJTdHJpbmcmIGZpbGVQYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgaXNEaXJlY3RvcnkpCiB7Ci0gICAgUmVmUHRyPERPTUZp
bGVTeXN0ZW1CYXNlPiBmaWxlU3lzdGVtID0gRE9NRmlsZVN5c3RlbTo6Y3JlYXRlKGZyYW1lKCkt
PmRvY3VtZW50KCksIGZpbGVTeXN0ZW1OYW1lLCBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6Y3Jl
YXRlKHN0YXRpY19jYXN0PEFzeW5jRmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIEtVUkwoUGFyc2Vk
VVJMU3RyaW5nLCBmaWxlU3lzdGVtUGF0aC51dGY4KCkuZGF0YSgpKSkpOworICAgIFJlZlB0cjxE
T01GaWxlU3lzdGVtQmFzZT4gZmlsZVN5c3RlbSA9IERPTUZpbGVTeXN0ZW06OmNyZWF0ZShmcmFt
ZSgpLT5kb2N1bWVudCgpLCBmaWxlU3lzdGVtTmFtZSwgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06
OmNyZWF0ZShzdGF0aWNfY2FzdDxGaWxlU3lzdGVtVHlwZT4odHlwZSksIEtVUkwoUGFyc2VkVVJM
U3RyaW5nLCBmaWxlU3lzdGVtUGF0aC51dGY4KCkuZGF0YSgpKSkpOwogICAgIGlmIChpc0RpcmVj
dG9yeSkKICAgICAgICAgcmV0dXJuIHRvVjgoRGlyZWN0b3J5RW50cnk6OmNyZWF0ZShmaWxlU3lz
dGVtLCBmaWxlUGF0aCkpOwogICAgIHJldHVybiB0b1Y4KEZpbGVFbnRyeTo6Y3JlYXRlKGZpbGVT
eXN0ZW0sIGZpbGVQYXRoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Xb3JrZXJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Xb3JrZXJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKaW5kZXggODBhMjZmZjAz
ZmQyMDRiNTk2ZDY0MDUyNzY5ZTc4NTllM2JmNjU3OS4uYTk1NzFlYTU1OGM4MGY4Yjg5ZDFhZDhm
NjE1MWNkNDczMWY1ZTc3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V29ya2VyQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dvcmtlckFzeW5jRmlsZVN5c3RlbUNocm9taXVtLmNwcApAQCAtNTcsNyArNTcs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBjaGFyIGZpbGVTeXN0ZW1P
cGVyYXRpb25zTW9kZVtdID0gImZpbGVTeXN0ZW1PcGVyYXRpb25zTW9kZSI7CiAKLVdvcmtlckFz
eW5jRmlsZVN5c3RlbUNocm9taXVtOjpXb3JrZXJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUgdHlwZSwg
Y29uc3QgV2ViS2l0OjpXZWJVUkwmIHJvb3RVUkwsIGJvb2wgc3luY2hyb25vdXMpCitXb3JrZXJB
c3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6V29ya2VyQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRmlsZVN5c3RlbVR5cGUgdHlwZSwgY29uc3Qg
V2ViS2l0OjpXZWJVUkwmIHJvb3RVUkwsIGJvb2wgc3luY2hyb25vdXMpCiAgICAgOiBBc3luY0Zp
bGVTeXN0ZW1DaHJvbWl1bSh0eXBlLCByb290VVJMKQogICAgICwgbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KGNvbnRleHQpCiAgICAgLCBtX3dvcmtlckNvbnRleHQoc3RhdGljX2Nhc3Q8V29ya2Vy
Q29udGV4dCo+KGNvbnRleHQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV29ya2VyQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dvcmtlckFzeW5jRmlsZVN5c3RlbUNocm9taXVtLmgKaW5kZXggMDg5MTg1MThhNWUz
NjgyZjMwZDA0ZWMwNWIxNmVlYzhhZjM1OGQxMy4uMzUzOWI5NDA4ZjM3MWQ1NjcyOTkwYmQ5ZDg5
ZjMxZDVjODdhY2U0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV29y
a2VyQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9Xb3JrZXJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5oCkBAIC0zNCw3ICszNCw2IEBACiAj
aWYgRU5BQkxFKEZJTEVfU1lTVEVNKSAmJiBFTkFCTEUoV09SS0VSUykKIAogI2luY2x1ZGUgIkFz
eW5jRmlsZVN5c3RlbUNocm9taXVtLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIApAQCAt
NTMsNyArNTIsNyBAQCBjbGFzcyBXb3JrZXJDb250ZXh0OwogCiBjbGFzcyBXb3JrZXJBc3luY0Zp
bGVTeXN0ZW1DaHJvbWl1bSA6IHB1YmxpYyBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIGNv
bnN0IFdlYktpdDo6V2ViVVJMJiByb290VVJMLCBib29sIHN5bmNocm9ub3VzKQorICAgIHN0YXRp
YyBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIEZpbGVTeXN0ZW1UeXBlIHR5cGUsIGNvbnN0IFdlYktpdDo6V2ViVVJMJiBy
b290VVJMLCBib29sIHN5bmNocm9ub3VzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBXb3JrZXJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bShjb250ZXh0LCB0eXBlLCByb290VVJM
LCBzeW5jaHJvbm91cykpOwogICAgIH0KQEAgLTc3LDcgKzc2LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBjcmVhdGVTbmFwc2hvdEZpbGVBbmRSZWFkTWV0YWRhdGEoY29uc3QgU3RyaW5n
JiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOwogCiBwcml2YXRl
OgotICAgIFdvcmtlckFzeW5jRmlsZVN5c3RlbUNocm9taXVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUsIGNvbnN0IFdlYktpdDo6V2ViVVJMJiByb290VVJM
LCBib29sIHN5bmNocm9ub3VzKTsKKyAgICBXb3JrZXJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRmlsZVN5c3RlbVR5cGUsIGNvbnN0IFdlYktpdDo6V2Vi
VVJMJiByb290VVJMLCBib29sIHN5bmNocm9ub3VzKTsKIAogICAgIFBhc3NSZWZQdHI8V2ViS2l0
OjpXb3JrZXJGaWxlU3lzdGVtQ2FsbGJhY2tzQnJpZGdlPiBjcmVhdGVXb3JrZXJGaWxlU3lzdGVt
Q2FsbGJhY2tzQnJpZGdlKFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CiAK
</data>
<flag name="review"
          id="146273"
          type_id="1"
          status="+"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>