<?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>67984</bug_id>
          
          <creation_ts>2011-09-12 21:36:52 -0700</creation_ts>
          <short_desc>REGRESSION(r94975): crash in PrerenderBrowserTest.PrerenderHTML5VideoJs (Requested by ukai on #webkit).</short_desc>
          <delta_ts>2011-09-12 21:43:49 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>67440</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>jamesr</cc>
    
    <cc>kbr</cc>
    
    <cc>ukai</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>466112</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-12 21:36:52 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/94975 broke the build:
crash in PrerenderBrowserTest.PrerenderHTML5VideoJs (Requested by ukai on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466113</commentid>
    <comment_count>1</comment_count>
      <attachid>107140</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-12 21:37:19 -0700</bug_when>
    <thetext>Created attachment 107140
ROLLOUT of r94975

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466117</commentid>
    <comment_count>2</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2011-09-12 21:41:37 -0700</bug_when>
    <thetext>http://build.chromium.org/p/chromium/builders/Linux%20Tests%20%28Views%20dbg%29%282%29/builds/5603/steps/browser_tests/logs/PrerenderHTML5VideoJs

[7567:7567:465913624:ERROR:gl_surface_linux.cc(73)] GLSurfaceGLX::InitializeOneOff failed.
ASSERTION FAILED: m_ptr
third_party/WebKit/Source/JavaScriptCore/wtf/OwnPtr.h(63) : typename WTF::RemovePointer&lt;T&gt;::Type* WTF::OwnPtr&lt;T&gt;::operator-&gt;() const [with T = WebCore::TextureManager]
chrome/browser/prerender/prerender_browsertest.cc:124: Failure
Value of: final_status()
  Actual: 21
Expected: expected_final_status_
Which is: 19
 when testing URL /files/prerender/prerender_html5_video_script.html (Expected: HTML5 Media, Actual: Renderer Crashed)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466119</commentid>
    <comment_count>3</comment_count>
      <attachid>107140</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-12 21:43:44 -0700</bug_when>
    <thetext>Comment on attachment 107140
ROLLOUT of r94975

Clearing flags on attachment: 107140

Committed r95014: &lt;http://trac.webkit.org/changeset/95014&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466120</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-12 21:43:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107140</attachid>
            <date>2011-09-12 21:37:19 -0700</date>
            <delta_ts>2011-09-12 21:43:44 -0700</delta_ts>
            <desc>ROLLOUT of r94975</desc>
            <filename>bug-67984-20110913043608.patch</filename>
            <type>text/plain</type>
            <size>67872</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTUwMTIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MjFiYmJhMzkxZWE0NDFjMWE0Y2Ey
ZGVjOTJiMzM2MTIxNjkxZGJhLi44NTllZTUxZDJkODg2YTBjMmFlYjUyZjA4ODVmNTNhNWIwMjRh
ZjU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDktMTIgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHI5NDk3NS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvOTQ5
NzUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTg0
CisKKyAgICAgICAgY3Jhc2ggaW4gUHJlcmVuZGVyQnJvd3NlclRlc3QuUHJlcmVuZGVySFRNTDVW
aWRlb0pzIChSZXF1ZXN0ZWQKKyAgICAgICAgYnkgdWthaSBvbiAjd2Via2l0KS4KKworICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2xvc3QtY29tcG9zaXRvci1jb250ZXh0
LXdpdGgtcmVuZGVyc3VyZmFjZS1leHBlY3RlZC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvbG9zdC1jb21wb3NpdG9yLWNvbnRleHQtd2l0aC1y
ZW5kZXJzdXJmYWNlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9jb21wb3NpdGluZy9sb3N0LWNvbXBvc2l0b3ItY29udGV4dC13aXRoLXJlbmRlcnN1
cmZhY2UuaHRtbDogUmVtb3ZlZC4KKwogMjAxMS0wOS0xMiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIERvbid0IGFsbG93IHNldHRpbmcgX19wcm90b19fIHRvIGJlIGEg
Z2V0dGVyIG9yIHNldHRlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vY29tcG9zaXRpbmcvbG9zdC1jb21wb3NpdG9yLWNvbnRleHQtd2l0aC1yZW5kZXJzdXJmYWNl
LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5n
L2xvc3QtY29tcG9zaXRvci1jb250ZXh0LXdpdGgtcmVuZGVyc3VyZmFjZS1leHBlY3RlZC5wbmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5ZTQ5NWIyNmI5OWU1YzRhMTk3YzlkNjUy
YTc5MTlhYmJlNjM2MjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMjg2Ngp6Y21l
QVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkwKlopPWheaGxBJUBXcyRsSGBvazxtfT9v
VG42KSQKekc/VX4rM3Y8ZzxMJGVlVU9WZWE/R3Q8T1dpeGQrUlElajNQZ0goO3IlUlZxTGEyQGU8
YVNXLUxeWStGQC1hYCVvCnp1OHV0I1hPX2xobVRVYG9AVFFZRlRrWTxYY0tfLSNYUDZscCZKfS1X
VX0pR2E3e1MwYCp2UUh0QWRKRE5qK01QdQp6VTBabXBLS2w3QlRTa1QtaWdwLUVGZzE7ZVU9N1FH
NTA7SXxYPVY4ZzNfQz5TYnI+M0U5QUlNVDsyZFIpMkV1NGMKcjd8akt2eG5NTEdqT0sjVFRyZnkt
ITQzQStlN3ZnKiF8YzMpamJIeyhTM2ozXlA2PHJfMVhsTXcKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9sb3N0LWNvbXBvc2l0b3ItY29udGV4
dC13aXRoLXJlbmRlcnN1cmZhY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vY29tcG9zaXRpbmcvbG9zdC1jb21wb3NpdG9yLWNvbnRleHQtd2l0aC1yZW5kZXJz
dXJmYWNlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGIxMzc4
OTE3OTFmZTk2OTI3YWQ3OGU2NGIwYWFkN2JkZWQwOGJkYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9j
b21wb3NpdGluZy9sb3N0LWNvbXBvc2l0b3ItY29udGV4dC13aXRoLXJlbmRlcnN1cmZhY2UtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9sb3N0LWNvbXBvc2l0b3ItY29u
dGV4dC13aXRoLXJlbmRlcnN1cmZhY2UuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2NvbXBvc2l0aW5nL2xvc3QtY29tcG9zaXRvci1jb250ZXh0LXdpdGgtcmVuZGVyc3VyZmFj
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDRkYTEzODEwMTRjMGNlODYy
ZjgyMDM3N2FiZjkxOGE4ZGE2MTQ3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2xv
c3QtY29tcG9zaXRvci1jb250ZXh0LXdpdGgtcmVuZGVyc3VyZmFjZS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNDQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICA8
c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgotICAgIC5yZWQgewotICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Ci0gICAgfQotCi0gICAgLmdyZWVuIHsKLSAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ci0gICAgfQotCi0gICAgZGl2IHsKLSAgICAgIGhlaWdo
dDogMTAwcHg7Ci0gICAgICB3aWR0aDogMTAwcHg7Ci0gICAgfQotCi0gICAgLmNvbXBvc2l0ZWQg
ewotICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7Ci0gICAgfQotCi0gICAg
LnJlbmRlclN1cmZhY2UgewotICAgICAgb3BhY2l0eTogMC41OwotICAgIH0KLSAgPC9zdHlsZT4K
LTwvaGVhZD4KLTxib2R5PgotICA8IS0tIEluIHRoZSBwaXhlbCByZXN1bHRzLCBvbmUgZ3JlZW4g
c3F1YXJlcyBzaG91bGQgYmUgdmlzaWJsZS4gLS0+Ci0gIDxkaXYgY2xhc3M9InJlZCByZW5kZXJT
dXJmYWNlIj4KLSAgICA8ZGl2IGlkPSJ0YXJnZXQiIGNsYXNzPSJyZWQgY29tcG9zaXRlZCI+PC9k
aXY+Ci0gIDwvZGl2PgotICA8cD4KLSAgPHNjcmlwdD4KLSAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7
ICAvLyBUaGlzIGlzIG9ubHkgdXNlZnVsIGFzIGEgcGl4ZWwgdGVzdC4KLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kaXNwbGF5KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubG9zZUNvbXBv
c2l0b3JDb250ZXh0KDEpOwotICB9Ci0gIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0Iik7Ci0gIHRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCJyZWQiKTsKLSAgdGFy
Z2V0LmNsYXNzTGlzdC5hZGQoImdyZWVuIik7Ci0gIDwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGY2MjQ3ZTQ1YzJhMDJiZGViNTQ4MTFhZTU0NmQ3YWVjZWFhMGU2MmUu
LmE0NTA2ZGRmZjAxMzQ3MjQ0OGNmOWNlZjAxMWNkYmIzNDNkM2E5ODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMDggQEAKKzIwMTEtMDktMTIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5i
b3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5NDk3NS4K
KyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvOTQ5NzUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTg0CisKKyAgICAgICAg
Y3Jhc2ggaW4gUHJlcmVuZGVyQnJvd3NlclRlc3QuUHJlcmVuZGVySFRNTDVWaWRlb0pzIChSZXF1
ZXN0ZWQKKyAgICAgICAgYnkgdWthaSBvbiAjd2Via2l0KS4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhc0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhbnZhc0xheWVyQ2hyb21pdW06OmxheWVyVHlwZUFzU3RyaW5nKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGVudExheWVyQ2hyb21pdW06OmxheWVyVHlwZUFzU3RyaW5nKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uaDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlTGF5ZXJDaHJvbWl1bTo6bGF5ZXJUeXBlQXNTdHJpbmcp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6bGF5ZXJUcmVlQXNUZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6OndyaXRlSW5kZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hy
b21pdW06OmR1bXBMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpkdW1w
TGF5ZXJQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllckNocm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpsYXllclR5
cGVBc1N0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJS
ZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJv
bWl1bTo6dGV4dHVyZU1lbW9yeVJlY2xhaW1MaW1pdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXll
clJlbmRlcmVyQ2hyb21pdW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRl
cmVyQ2hyb21pdW06OkxheWVyUmVuZGVyZXJDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpM
YXllclJlbmRlcmVyQ2hyb21pdW06OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVu
ZGVyZXJDaHJvbWl1bTo6cmVsZWFzZVRleHR1cmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVy
UmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJl
bmRlcmVyQ2hyb21pdW06OmRyYXdMYXllcnNJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXllclJlbmRlcmVyQ2hyb21pdW06OmdldE9mZnNjcmVlbkxheWVyVGV4dHVyZSk6CisgICAgICAg
IChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmluaXRpYWxpemVTaGFyZWRPYmplY3Rz
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6Y2xlYW51cFNoYXJl
ZE9iamVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjpsYXll
clRyZWVBc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjpk
dW1wUmVuZGVyU3VyZmFjZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJl
ckNocm9taXVtOjpvd25lcik6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21p
dW06OnJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06
OnJvb3RMYXllckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVt
Ojp2aWV3cG9ydFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVt
Ojpjb250ZW50c1RleHR1cmVNYW5hZ2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9NYW5hZ2VkVGV4dHVyZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYW5hZ2VkVGV4
dHVyZTo6YmluZFRleHR1cmUpOgorICAgICAgICAoV2ViQ29yZTo6TWFuYWdlZFRleHR1cmU6OmZy
YW1lYnVmZmVyVGV4dHVyZTJEKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9QbHVnaW5MYXllckNocm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5MYXllckNo
cm9taXVtOjpsYXllclR5cGVBc1N0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclN1cmZhY2VDaHJvbWl1bTo6bmFtZSk6CisgICAgICAgIChXZWJDb3JlOjp3cml0ZUluZGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdXJmYWNlQ2hyb21pdW06OmR1bXBTdXJmYWNl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hy
b21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFuYWdlcjo6ZGVsZXRlRXZpY3Rl
ZFRleHR1cmVzKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYW5hZ2VyOjpyZW1vdmVUZXh0
dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYW5hZ2VyOjphbGxvY2F0ZVRleHR1cmUp
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hbmFnZXI6OnJlcXVlc3RUZXh0dXJlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdlci5oOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hbmFnZXI6OnNldEFzc29jaWF0ZWRDb250ZXh0RGVidWdP
bmx5KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYW5hZ2VyOjphc3NvY2lhdGVkQ29udGV4
dERlYnVnT25seSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRM
YXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndyaXRlSW5kZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlRpbGVkTGF5ZXJDaHJvbWl1bTo6ZHVtcExheWVyUHJvcGVydGllcyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVt
Lmg6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyQ2hyb21pdW06OmxheWVyVHlwZUFzU3Ry
aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExheWVyQ2hy
b21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMTGF5ZXJDaHJvbWl1bTo6bGF5ZXJUeXBl
QXNTdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQ2Fu
dmFzTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0NhbnZhc0xheWVySW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVySW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJl
ZUhvc3Q6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0Ojp+
Q0NMYXllclRyZWVIb3N0KToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6Y29t
bWl0VG8pOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpkaWRSZWNyZWF0ZUdy
YXBoaWNzQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnNldFZp
c2libGUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0Ojpjb250ZW50c1RleHR1
cmVNYW5hZ2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0xheWVyVHJlZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9z
dEltcGw6OmRyYXdMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1w
bDo6c2V0VmlzaWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpp
bml0aWFsaXplTGF5ZXJSZW5kZXJlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDUGx1Z2luTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1BsdWdpbkxheWVySW1wbC5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUHJveHkuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNDU2luZ2xlVGhyZWFkUHJveHk6OmluaXRpYWxpemVMYXllclJlbmRlcmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkNDU2luZ2xlVGhyZWFkUHJveHk6OnN0b3ApOgorICAgICAgICAo
V2ViQ29yZTo6Q0NTaW5nbGVUaHJlYWRQcm94eTo6Y29udGVudHNUZXh0dXJlTWFuYWdlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ1NpbmdsZVRocmVhZFByb3h5OjpyZWNyZWF0ZUNvbnRleHRJZk5l
ZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVU
aHJlYWRQcm94eS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6aW5pdGlh
bGl6ZUxheWVyUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6Y29u
dGVudHNUZXh0dXJlTWFuYWdlcik6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojpp
bml0aWFsaXplTGF5ZXJSZW5kZXJlck9uQ0NUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NU
aHJlYWRQcm94eTo6bGF5ZXJUcmVlSG9zdENsb3NlZE9uQ0NUaHJlYWQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNDVGlsZWRMYXllckltcGw6OmR1bXBMYXllclByb3BlcnRpZXMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBs
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5
ZXJJbXBsLmg6CisKIDIwMTEtMDktMTIgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgRml4IG91dC1vZi1ib3VuZHMgYWNjZXNzIGluIEdyYWRpZW50Ojpzb3J0U3Rv
cHNJZk5lY2Vzc2FyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDRjMmU0NDA4
NWY3NjQ0M2FiMTIxODBkNzc0MDljNDhiNWZkNzRhZTkuLmVhMjZkZmUxODdlNjJjNTc1NTg1N2Fm
MTE3YWMzNTc0M2U1Y2JkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0NhbnZhc0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNMYXllckNocm9taXVtLmgKQEAgLTUy
LDYgKzUyLDggQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IENhbnZhc0xheWVy
Q2hyb21pdW0oR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lcik7CiAKKyAgICB2aXJ0dWFsIGNv
bnN0IGNoYXIqIGxheWVyVHlwZUFzU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gIkNhbnZhc0xheWVy
IjsgfQorCiAgICAgYm9vbCBtX2hhc0FscGhhOwogICAgIGJvb2wgbV9wcmVtdWx0aXBsaWVkQWxw
aGE7CiAgICAgdW5zaWduZWQgbV90ZXh0dXJlSWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21p
dW0uaAppbmRleCA5NDA5YWUxMmU5ZjMyNjc1MjM1MGFlNjBmNGQzMGFmOTkyZmJjOTE2Li5iYWM0
MWY5Yzg4YTRmMDkxMzFhMTRiNjk0YTRmYWIwNDkyZDlmNTRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRM
YXllckNocm9taXVtLmgKQEAgLTU0LDYgKzU0LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBDb250ZW50TGF5ZXJDaHJvbWl1bShHcmFwaGljc0xheWVyQ2hyb21pdW0qIG93bmVy
KTsKIAorICAgIHZpcnR1YWwgY29uc3QgY2hhciogbGF5ZXJUeXBlQXNTdHJpbmcoKSBjb25zdCB7
IHJldHVybiAiQ29udGVudExheWVyIjsgfQorCiAgICAgdmlydHVhbCB2b2lkIGNsZWFudXBSZXNv
dXJjZXMoKTsKICAgICB2aXJ0dWFsIGJvb2wgZHJhd3NDb250ZW50KCkgY29uc3Q7CiAgICAgdmly
dHVhbCB2b2lkIGNyZWF0ZVRleHR1cmVVcGRhdGVyKGNvbnN0IENDTGF5ZXJUcmVlSG9zdCopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1h
Z2VMYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uaAppbmRleCA0YWZlMDVkMTUxZjhiMzYzNjI5NjMwNDMz
MTBhMjA5NDk0MTgyOTU2Li5kNjk3OTEzMWI1ODhkNTIyODMzOWFiNTNlYWYwYjAzYjk4MTM3ZmRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9J
bWFnZUxheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uaApAQCAtNTcsNiArNTcsOSBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHNldENvbnRlbnRzKEltYWdlKiBpbWFnZSk7CiAKK3Byb3RlY3RlZDoKKyAg
ICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGxheWVyVHlwZUFzU3RyaW5nKCkgY29uc3QgeyByZXR1cm4g
IkltYWdlTGF5ZXIiOyB9CisKIHByaXZhdGU6CiAgICAgSW1hZ2VMYXllckNocm9taXVtKEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bSogb3duZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IGEw
ZDM0NjU2ZThjMTVkNTJkMDVlNDAyZDI5MWY4NTQwNTIzOGY0N2QuLmJjZDRkNzc4OTliMmI5YjM1
ZTdiYzMzZGJmMjA2Y2Y4OGFiMWE5NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCkBAIC0zNzYs
NiArMzc2LDQ4IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6ZHJhd1RleHR1cmVkUXVhZChHcmFwaGlj
c0NvbnRleHQzRCogY29udGV4dCwgY29uc3QgVHJhbnNmb3JtCiAgICAgR0xDKGNvbnRleHQsIGNv
bnRleHQtPmRyYXdFbGVtZW50cyhHcmFwaGljc0NvbnRleHQzRDo6VFJJQU5HTEVTLCA2LCBHcmFw
aGljc0NvbnRleHQzRDo6VU5TSUdORURfU0hPUlQsIDApKTsKIH0KIAorU3RyaW5nIExheWVyQ2hy
b21pdW06OmxheWVyVHJlZUFzVGV4dCgpIGNvbnN0Cit7CisgICAgVGV4dFN0cmVhbSB0czsKKyAg
ICBkdW1wTGF5ZXIodHMsIDApOworICAgIHJldHVybiB0cy5yZWxlYXNlKCk7Cit9CisKK3N0YXRp
YyB2b2lkIHdyaXRlSW5kZW50KFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50KQoreworICAgIGZv
ciAoaW50IGkgPSAwOyBpICE9IGluZGVudDsgKytpKQorICAgICAgICB0cyA8PCAiICAiOworfQor
Cit2b2lkIExheWVyQ2hyb21pdW06OmR1bXBMYXllcihUZXh0U3RyZWFtJiB0cywgaW50IGluZGVu
dCkgY29uc3QKK3sKKyAgICB3cml0ZUluZGVudCh0cywgaW5kZW50KTsKKyAgICB0cyA8PCBsYXll
clR5cGVBc1N0cmluZygpIDw8ICIoIiA8PCBtX25hbWUgPDwgIilcbiI7CisgICAgZHVtcExheWVy
UHJvcGVydGllcyh0cywgaW5kZW50KzIpOworICAgIGlmIChtX3JlcGxpY2FMYXllcikgeworICAg
ICAgICB3cml0ZUluZGVudCh0cywgaW5kZW50KzIpOworICAgICAgICB0cyA8PCAiUmVwbGljYTpc
biI7CisgICAgICAgIG1fcmVwbGljYUxheWVyLT5kdW1wTGF5ZXIodHMsIGluZGVudCszKTsKKyAg
ICB9CisgICAgaWYgKG1fbWFza0xheWVyKSB7CisgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRl
bnQrMik7CisgICAgICAgIHRzIDw8ICJNYXNrOlxuIjsKKyAgICAgICAgbV9tYXNrTGF5ZXItPmR1
bXBMYXllcih0cywgaW5kZW50KzMpOworICAgIH0KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG1fY2hpbGRyZW4uc2l6ZSgpOyArK2kpCisgICAgICAgIG1fY2hpbGRyZW5baV0tPmR1bXBMYXll
cih0cywgaW5kZW50KzEpOworfQorCit2b2lkIExheWVyQ2hyb21pdW06OmR1bXBMYXllclByb3Bl
cnRpZXMoVGV4dFN0cmVhbSYgdHMsIGludCBpbmRlbnQpIGNvbnN0Cit7CisgICAgd3JpdGVJbmRl
bnQodHMsIGluZGVudCk7CisgICAgdHMgPDwgImlkOiAiIDw8IGlkKCkgPDwgIiBkcmF3c0NvbnRl
bnQ6ICIgPDwgZHJhd3NDb250ZW50KCkgPDwgIiBib3VuZHMgIiA8PCBtX2JvdW5kcy53aWR0aCgp
IDw8ICJ4IiA8PCBtX2JvdW5kcy5oZWlnaHQoKSA8PCAiIHVzZXNMYXllclNjaXNzb3I6ICIgPDwg
dXNlc0xheWVyU2Npc3NvcigpCisgICAgICAgIDw8ICIgc2Npc3NvclJlY3Q6ICgiIDw8IG1fc2Np
c3NvclJlY3QueCgpIDw8ICIsICIgPDwgbV9zY2lzc29yUmVjdC55KCkgPDwgIiwgIiA8PCBtX3Nj
aXNzb3JSZWN0LndpZHRoKCkgPDwgIiwgIiA8PCBtX3NjaXNzb3JSZWN0LmhlaWdodCgpIDw8ICIp
IgorICAgICAgICA8PCAiIHZpc2libGVMYXllclJlY3Q6ICgiIDw8IG1fdmlzaWJsZUxheWVyUmVj
dC54KCkgPDwgIiwgIiA8PCBtX3Zpc2libGVMYXllclJlY3QueSgpIDw8ICIsICIgPDwgbV92aXNp
YmxlTGF5ZXJSZWN0LndpZHRoKCkgPDwgIiwgIiA8PCBtX3Zpc2libGVMYXllclJlY3QuaGVpZ2h0
KCkgPDwgIikiCisgICAgICAgIDw8ICJcbiI7CisKK30KKwogUGFzc1JlZlB0cjxDQ0xheWVySW1w
bD4gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlQ0NMYXllckltcGwoKQogewogICAgIHJldHVybiBDQ0xh
eWVySW1wbDo6Y3JlYXRlKG1fbGF5ZXJJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKaW5kZXggN2Y2ZmZh
NzRjNWY2YjJmMWZlYTk3MjhkODczNzE2ZTQ1ZGVjNjk5ZS4uOGQzMGQ3ZDQ0NWExMWY0YTY2ZWU2
MTU0YmNhMzMwNTMzMmJkMzg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaApAQCAtMTcyLDYgKzE3Miw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEJvcmRlckNvbG9yKGNvbnN0IENvbG9yJik7CiAKICAg
ICB2b2lkIGRyYXdEZWJ1Z0JvcmRlcigpOworICAgIFN0cmluZyBsYXllclRyZWVBc1RleHQoKSBj
b25zdDsKIAogICAgIHZvaWQgc2V0Qm9yZGVyV2lkdGgoZmxvYXQpOwogCkBAIC0yMTksNiArMjIw
LDExIEBAIHByb3RlY3RlZDoKIAogICAgIHN0YXRpYyB2b2lkIHRvR0xNYXRyaXgoZmxvYXQqLCBj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwogCisgICAgdm9pZCBkdW1wTGF5ZXIoVGV4dFN0
cmVhbSYsIGludCBpbmRlbnQpIGNvbnN0OworCisgICAgdmlydHVhbCBjb25zdCBjaGFyKiBsYXll
clR5cGVBc1N0cmluZygpIGNvbnN0IHsgcmV0dXJuICJMYXllckNocm9taXVtIjsgfQorICAgIHZp
cnR1YWwgdm9pZCBkdW1wTGF5ZXJQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50KSBj
b25zdDsKKwogICAgIEZsb2F0UmVjdCBtX2RpcnR5UmVjdDsKICAgICBib29sIG1fY29udGVudHNE
aXJ0eTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5kZXggYzcyODE2
OTc1ZDIyNDQ4NzZlMTgxY2I5MDc0MDdiOWVlYTE1YWIxZi4uNWQ1ZTRjNThjYTJhMzhhMDcwNTdj
MGRkNmU5NzllNGNjOTI5YWYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0u
Y3BwCkBAIC03MCw2ICs3MCwyMCBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKKy8vIEZJWE1FOiBNYWtlIHRoaXMgbGltaXQgYWRqdXN0YWJsZSBhbmQgZ2l2
ZSBpdCBhIHVzZWZ1bCB2YWx1ZS4KKworLy8gQWJzb2x1dGUgbWF4aW11bSBsaW1pdCBmb3IgdGV4
dHVyZSBhbGxvY2F0aW9ucyBmb3IgdGhpcyBpbnN0YW5jZS4KK3N0YXRpYyBzaXplX3QgdGV4dHVy
ZU1lbW9yeUhpZ2hMaW1pdEJ5dGVzID0gMTI4ICogMTAyNCAqIDEwMjQ7CisvLyBQcmVmZXJyZWQg
dGV4dHVyZSBzaXplIGxpbWl0LiBDYW4gYmUgZXhjZWVkZWQgaWYgbmVlZGVkLgorc3RhdGljIHNp
emVfdCB0ZXh0dXJlTWVtb3J5UmVjbGFpbUxpbWl0Qnl0ZXMgPSA2NCAqIDEwMjQgKiAxMDI0Owor
Ly8gVGhlIG1heGltdW0gdGV4dHVyZSBtZW1vcnkgdXNhZ2Ugd2hlbiBhc2tlZCB0byByZWxlYXNl
IHRleHR1cmVzLgorc3RhdGljIHNpemVfdCB0ZXh0dXJlTWVtb3J5TG93TGltaXRCeXRlcyA9IDMg
KiAxMDI0ICogMTAyNDsKKworc2l6ZV90IExheWVyUmVuZGVyZXJDaHJvbWl1bTo6dGV4dHVyZU1l
bW9yeVJlY2xhaW1MaW1pdCgpCit7CisgICAgcmV0dXJuIHRleHR1cmVNZW1vcnlSZWNsYWltTGlt
aXRCeXRlczsKK30KKwogbmFtZXNwYWNlIHsKIAogc3RhdGljIFRyYW5zZm9ybWF0aW9uTWF0cml4
IG9ydGhvTWF0cml4KGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0
IHRvcCkKQEAgLTEyOSwyMiArMTQzLDI0IEBAIGJvb2wgY29udGV4dFN1cHBvcnRzQWNjZWxlcmF0
ZWRQYWludGluZyhHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKIAogfSAvLyBhbm9ueW1vdXMg
bmFtZXNwYWNlCiAKLVBhc3NSZWZQdHI8TGF5ZXJSZW5kZXJlckNocm9taXVtPiBMYXllclJlbmRl
cmVyQ2hyb21pdW06OmNyZWF0ZShDQ0xheWVyVHJlZUhvc3RJbXBsKiBvd25lciwgUGFzc1JlZlB0
cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCkKK1Bhc3NSZWZQdHI8TGF5ZXJSZW5kZXJlckNo
cm9taXVtPiBMYXllclJlbmRlcmVyQ2hyb21pdW06OmNyZWF0ZShDQ0xheWVyVHJlZUhvc3QqIG93
bmVyLCBDQ0xheWVyVHJlZUhvc3RJbXBsKiBvd25lckltcGwsIFBhc3NSZWZQdHI8R3JhcGhpY3ND
b250ZXh0M0Q+IGNvbnRleHQpCiB7CiAjaWYgVVNFKFNLSUEpCiAgICAgaWYgKG93bmVyLT5zZXR0
aW5ncygpLmFjY2VsZXJhdGVQYWludGluZyAmJiAhY29udGV4dFN1cHBvcnRzQWNjZWxlcmF0ZWRQ
YWludGluZyhjb250ZXh0LmdldCgpKSkKICAgICAgICAgcmV0dXJuIDA7CiAjZW5kaWYKLSAgICBS
ZWZQdHI8TGF5ZXJSZW5kZXJlckNocm9taXVtPiBsYXllclJlbmRlcmVyKGFkb3B0UmVmKG5ldyBM
YXllclJlbmRlcmVyQ2hyb21pdW0ob3duZXIsIGNvbnRleHQpKSk7CisgICAgUmVmUHRyPExheWVy
UmVuZGVyZXJDaHJvbWl1bT4gbGF5ZXJSZW5kZXJlcihhZG9wdFJlZihuZXcgTGF5ZXJSZW5kZXJl
ckNocm9taXVtKG93bmVyLCBvd25lckltcGwsIGNvbnRleHQpKSk7CiAgICAgaWYgKCFsYXllclJl
bmRlcmVyLT5pbml0aWFsaXplKCkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgcmV0dXJuIGxh
eWVyUmVuZGVyZXIucmVsZWFzZSgpOwogfQogCi1MYXllclJlbmRlcmVyQ2hyb21pdW06OkxheWVy
UmVuZGVyZXJDaHJvbWl1bShDQ0xheWVyVHJlZUhvc3RJbXBsKiBvd25lciwKK0xheWVyUmVuZGVy
ZXJDaHJvbWl1bTo6TGF5ZXJSZW5kZXJlckNocm9taXVtKENDTGF5ZXJUcmVlSG9zdCogb3duZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDQ0xheWVyVHJl
ZUhvc3RJbXBsKiBvd25lckltcGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0KQogICAgIDog
bV9vd25lcihvd25lcikKKyAgICAsIG1fb3duZXJJbXBsKG93bmVySW1wbCkKICAgICAsIG1fY3Vy
cmVudFJlbmRlclN1cmZhY2UoMCkKICAgICAsIG1fb2Zmc2NyZWVuRnJhbWVidWZmZXJJZCgwKQog
ICAgICwgbV96b29tQW5pbWF0b3JTY2FsZSgxKQpAQCAtMTk0LDggKzIxMCw4IEBAIHZvaWQgTGF5
ZXJSZW5kZXJlckNocm9taXVtOjpjbGVhclJlbmRlclN1cmZhY2VzT25DQ0xheWVySW1wbFJlY3Vy
c2l2ZShDQ0xheWVySW1wCiAKIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpjbG9zZSgpCiB7
Ci0gICAgaWYgKHJvb3RMYXllcigpKQotICAgICAgICBjbGVhclJlbmRlclN1cmZhY2VzT25DQ0xh
eWVySW1wbFJlY3Vyc2l2ZShyb290TGF5ZXIoKSk7CisgICAgaWYgKHJvb3RMYXllckltcGwoKSkK
KyAgICAgICAgY2xlYXJSZW5kZXJTdXJmYWNlc09uQ0NMYXllckltcGxSZWN1cnNpdmUocm9vdExh
eWVySW1wbCgpKTsKIH0KIAogR3JhcGhpY3NDb250ZXh0M0QqIExheWVyUmVuZGVyZXJDaHJvbWl1
bTo6Y29udGV4dCgpCkBAIC0yMTAsOSArMjI2LDE4IEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9t
aXVtOjpkZWJ1Z0dMQ2FsbChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgY29uc3QgY2hhcioK
ICAgICAgICAgTE9HX0VSUk9SKCJHTCBjb21tYW5kIGZhaWxlZDogRmlsZTogJXNcblx0TGluZSAl
ZFxuXHRjb21tYW5kOiAlcywgZXJyb3IgJXhcbiIsIGZpbGUsIGxpbmUsIGNvbW1hbmQsIHN0YXRp
Y19jYXN0PGludD4oZXJyb3IpKTsKIH0KIAotdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OnJl
bGVhc2VSZW5kZXJTdXJmYWNlVGV4dHVyZXMoKQordm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06
OnJlbGVhc2VUZXh0dXJlcygpCiB7Ci0gICAgbV9yZW5kZXJTdXJmYWNlVGV4dHVyZU1hbmFnZXIt
PmV2aWN0QW5kRGVsZXRlQWxsVGV4dHVyZXMobV9jb250ZXh0LmdldCgpKTsKKyAgICAvLyBSZWR1
Y2VzIHRleHR1cmUgbWVtb3J5IHVzYWdlIHRvIHRleHR1cmVNZW1vcnlMb3dMaW1pdEJ5dGVzIGJ5
IGRlbGV0aW5nIG5vbiByb290IGxheWVyCisgICAgLy8gdGV4dHVyZXMuCisgICAgbV9vd25lci0+
bm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0KCktPnByb3RlY3RWaXNpYmxlVGlsZVRleHR1cmVzKCk7
CisgICAgbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT5yZWR1Y2VNZW1vcnlUb0xpbWl0KHRleHR1
cmVNZW1vcnlMb3dMaW1pdEJ5dGVzKTsKKyAgICBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPnVu
cHJvdGVjdEFsbFRleHR1cmVzKCk7CisgICAgbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT5kZWxl
dGVFdmljdGVkVGV4dHVyZXMobV9jb250ZXh0LmdldCgpKTsKKyAgICAvLyBFdmljdCBhbGwgUmVu
ZGVyU3VyZmFjZSB0ZXh0dXJlcy4KKyAgICBtX3JlbmRlclN1cmZhY2VUZXh0dXJlTWFuYWdlci0+
dW5wcm90ZWN0QWxsVGV4dHVyZXMoKTsKKyAgICBtX3JlbmRlclN1cmZhY2VUZXh0dXJlTWFuYWdl
ci0+cmVkdWNlTWVtb3J5VG9MaW1pdCgwKTsKKyAgICBtX3JlbmRlclN1cmZhY2VUZXh0dXJlTWFu
YWdlci0+ZGVsZXRlRXZpY3RlZFRleHR1cmVzKG1fY29udGV4dC5nZXQoKSk7CiB9CiAKIHZvaWQg
TGF5ZXJSZW5kZXJlckNocm9taXVtOjp2aWV3cG9ydENoYW5nZWQoKQpAQCAtMjMyLDE2ICsyNTcs
MTggQEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdMYXllcnMoKQogICAgIC8vIFJl
bmRlcldpZGdldC4KICAgICBtX2hlYWRzVXBEaXNwbGF5LT5vbkZyYW1lQmVnaW4oY3VycmVudFRp
bWUoKSk7CiAKLSAgICBpZiAoIXJvb3RMYXllcigpKQorICAgIGlmICghcm9vdExheWVySW1wbCgp
KQogICAgICAgICByZXR1cm47CiAgICAgLy8gRklYTUU6IE5vIG5lZWQgdG8gd2FsayB0aGUgdHJl
ZSBoZXJlLiBUaGlzIGNvdWxkIGJlIHBhc3NlZCB2aWEgZHJhdy4KLSAgICByb290TGF5ZXIoKS0+
c2V0TGF5ZXJSZW5kZXJlclJlY3Vyc2l2ZSh0aGlzKTsKKyAgICByb290TGF5ZXJJbXBsKCktPnNl
dExheWVyUmVuZGVyZXJSZWN1cnNpdmUodGhpcyk7CiAKLSAgICBtX3JlbmRlclN1cmZhY2VUZXh0
dXJlTWFuYWdlci0+c2V0TWVtb3J5TGltaXRCeXRlcyhUZXh0dXJlTWFuYWdlcjo6aGlnaExpbWl0
Qnl0ZXMoKSAtIG1fY29udGVudHNUZXh0dXJlTWVtb3J5VXNlQnl0ZXMpOworICAgIG1fcmVuZGVy
U3VyZmFjZVRleHR1cmVNYW5hZ2VyLT5zZXRNZW1vcnlMaW1pdEJ5dGVzKHRleHR1cmVNZW1vcnlI
aWdoTGltaXRCeXRlcyAtIG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+Y3VycmVudE1lbW9yeVVz
ZUJ5dGVzKCkpOwogICAgIGRyYXdMYXllcnNJbnRlcm5hbCgpOwogCi0gICAgaWYgKFRleHR1cmVN
YW5hZ2VyOjpyZWNsYWltTGltaXRCeXRlcygpID4gbV9jb250ZW50c1RleHR1cmVNZW1vcnlVc2VC
eXRlcykKLSAgICAgICAgbV9yZW5kZXJTdXJmYWNlVGV4dHVyZU1hbmFnZXItPnJlZHVjZU1lbW9y
eVRvTGltaXQoVGV4dHVyZU1hbmFnZXI6OnJlY2xhaW1MaW1pdEJ5dGVzKCkgLSBtX2NvbnRlbnRz
VGV4dHVyZU1lbW9yeVVzZUJ5dGVzKTsKKyAgICBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPnVu
cHJvdGVjdEFsbFRleHR1cmVzKCk7CisKKyAgICBpZiAodGV4dHVyZU1lbW9yeVJlY2xhaW1MaW1p
dEJ5dGVzID4gbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT5jdXJyZW50TWVtb3J5VXNlQnl0ZXMo
KSkKKyAgICAgICAgbV9yZW5kZXJTdXJmYWNlVGV4dHVyZU1hbmFnZXItPnJlZHVjZU1lbW9yeVRv
TGltaXQodGV4dHVyZU1lbW9yeVJlY2xhaW1MaW1pdEJ5dGVzIC0gbV9jb250ZW50c1RleHR1cmVN
YW5hZ2VyLT5jdXJyZW50TWVtb3J5VXNlQnl0ZXMoKSk7CiAgICAgZWxzZQogICAgICAgICBtX3Jl
bmRlclN1cmZhY2VUZXh0dXJlTWFuYWdlci0+cmVkdWNlTWVtb3J5VG9MaW1pdCgwKTsKICAgICBt
X3JlbmRlclN1cmZhY2VUZXh0dXJlTWFuYWdlci0+ZGVsZXRlRXZpY3RlZFRleHR1cmVzKG1fY29u
dGV4dC5nZXQoKSk7CkBAIC0yNTYsNyArMjgzLDcgQEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21p
dW06OmRyYXdMYXllcnNJbnRlcm5hbCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIFRSQUNFX0VW
RU5UKCJMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdMYXllcnMiLCB0aGlzLCAwKTsKLSAgICBD
Q0xheWVySW1wbCogcm9vdERyYXdMYXllciA9IHJvb3RMYXllcigpOworICAgIENDTGF5ZXJJbXBs
KiByb290RHJhd0xheWVyID0gcm9vdExheWVySW1wbCgpOwogICAgIG1ha2VDb250ZXh0Q3VycmVu
dCgpOwogCiAgICAgaWYgKCFyb290RHJhd0xheWVyLT5yZW5kZXJTdXJmYWNlKCkpCkBAIC00MjAs
NyArNDQ3LDcgQEAgYm9vbCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmlzTGF5ZXJWaXNpYmxlKExh
eWVyQ2hyb21pdW0qIGxheWVyLCBjb25zdCBUcmFuc2Zvcm0KIAogTWFuYWdlZFRleHR1cmUqIExh
eWVyUmVuZGVyZXJDaHJvbWl1bTo6Z2V0T2Zmc2NyZWVuTGF5ZXJUZXh0dXJlKCkKIHsKLSAgICBy
ZXR1cm4gc2V0dGluZ3MoKS5jb21wb3NpdGVPZmZzY3JlZW4gJiYgcm9vdExheWVyKCkgPyByb290
TGF5ZXIoKS0+cmVuZGVyU3VyZmFjZSgpLT5jb250ZW50c1RleHR1cmUoKSA6IDA7CisgICAgcmV0
dXJuIHNldHRpbmdzKCkuY29tcG9zaXRlT2Zmc2NyZWVuICYmIHJvb3RMYXllckltcGwoKSA/IHJv
b3RMYXllckltcGwoKS0+cmVuZGVyU3VyZmFjZSgpLT5jb250ZW50c1RleHR1cmUoKSA6IDA7CiB9
CiAKIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpjb3B5T2Zmc2NyZWVuVGV4dHVyZVRvRGlz
cGxheSgpCkBAIC01NzYsNyArNjAzLDEyIEBAIGJvb2wgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpp
bml0aWFsaXplU2hhcmVkT2JqZWN0cygpCiAKICAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2Nv
bnRleHQtPmZsdXNoKCkpOwogCi0gICAgbV9yZW5kZXJTdXJmYWNlVGV4dHVyZU1hbmFnZXIgPSBU
ZXh0dXJlTWFuYWdlcjo6Y3JlYXRlKFRleHR1cmVNYW5hZ2VyOjpoaWdoTGltaXRCeXRlcygpLCBt
X2NhcGFiaWxpdGllcy5tYXhUZXh0dXJlU2l6ZSk7CisgICAgbV9jb250ZW50c1RleHR1cmVNYW5h
Z2VyID0gVGV4dHVyZU1hbmFnZXI6OmNyZWF0ZSh0ZXh0dXJlTWVtb3J5SGlnaExpbWl0Qnl0ZXMs
IG1fY2FwYWJpbGl0aWVzLm1heFRleHR1cmVTaXplKTsKKyAgICBtX3JlbmRlclN1cmZhY2VUZXh0
dXJlTWFuYWdlciA9IFRleHR1cmVNYW5hZ2VyOjpjcmVhdGUodGV4dHVyZU1lbW9yeUhpZ2hMaW1p
dEJ5dGVzLCBtX2NhcGFiaWxpdGllcy5tYXhUZXh0dXJlU2l6ZSk7CisjaWZuZGVmIE5ERUJVRwor
ICAgIG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+c2V0QXNzb2NpYXRlZENvbnRleHREZWJ1Z09u
bHkobV9jb250ZXh0LmdldCgpKTsKKyAgICBtX3JlbmRlclN1cmZhY2VUZXh0dXJlTWFuYWdlci0+
c2V0QXNzb2NpYXRlZENvbnRleHREZWJ1Z09ubHkobV9jb250ZXh0LmdldCgpKTsKKyNlbmRpZgog
ICAgIHJldHVybiB0cnVlOwogfQogCkBAIC03ODUsMjIgKzgxNywyOSBAQCB2b2lkIExheWVyUmVu
ZGVyZXJDaHJvbWl1bTo6Y2xlYW51cFNoYXJlZE9iamVjdHMoKQogICAgIGlmIChtX29mZnNjcmVl
bkZyYW1lYnVmZmVySWQpCiAgICAgICAgIEdMQyhtX2NvbnRleHQuZ2V0KCksIG1fY29udGV4dC0+
ZGVsZXRlRnJhbWVidWZmZXIobV9vZmZzY3JlZW5GcmFtZWJ1ZmZlcklkKSk7CiAKLSAgICBBU1NF
UlQoIW1fY29udGVudHNUZXh0dXJlTWVtb3J5VXNlQnl0ZXMpOwotICAgIHJlbGVhc2VSZW5kZXJT
dXJmYWNlVGV4dHVyZXMoKTsKKyAgICAvLyBDbGVhciB0aWxlcnMgYmVmb3JlIHRoZSB0ZXh0dXJl
IG1hbmFnZXIsIGFzIHRoZXkgaGF2ZSByZWZlcmVuY2VzIHRvIHRleHR1cmVzLgorICAgIG1fY29u
dGVudHNUZXh0dXJlTWFuYWdlci0+dW5wcm90ZWN0QWxsVGV4dHVyZXMoKTsKKyAgICBtX2NvbnRl
bnRzVGV4dHVyZU1hbmFnZXItPnJlZHVjZU1lbW9yeVRvTGltaXQoMCk7CisgICAgbV9jb250ZW50
c1RleHR1cmVNYW5hZ2VyLT5kZWxldGVFdmljdGVkVGV4dHVyZXMobV9jb250ZXh0LmdldCgpKTsK
KyAgICBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXIuY2xlYXIoKTsKKyAgICBtX3JlbmRlclN1cmZh
Y2VUZXh0dXJlTWFuYWdlci0+dW5wcm90ZWN0QWxsVGV4dHVyZXMoKTsKKyAgICBtX3JlbmRlclN1
cmZhY2VUZXh0dXJlTWFuYWdlci0+cmVkdWNlTWVtb3J5VG9MaW1pdCgwKTsKKyAgICBtX3JlbmRl
clN1cmZhY2VUZXh0dXJlTWFuYWdlci0+ZGVsZXRlRXZpY3RlZFRleHR1cmVzKG1fY29udGV4dC5n
ZXQoKSk7CisgICAgbV9yZW5kZXJTdXJmYWNlVGV4dHVyZU1hbmFnZXIuY2xlYXIoKTsKIH0KIAog
U3RyaW5nIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6bGF5ZXJUcmVlQXNUZXh0KCkgY29uc3QKIHsK
ICAgICBUZXh0U3RyZWFtIHRzOwogICAgIGlmIChyb290TGF5ZXIoKSkgewotICAgICAgICB0cyA8
PCByb290TGF5ZXIoKS0+bGF5ZXJUcmVlQXNUZXh0KCk7CisgICAgICAgIHRzIDw8IHJvb3RMYXll
cigpLT5wbGF0Zm9ybUxheWVyKCktPmxheWVyVHJlZUFzVGV4dCgpOwogICAgICAgICB0cyA8PCAi
UmVuZGVyU3VyZmFjZXM6XG4iOwotICAgICAgICBkdW1wUmVuZGVyU3VyZmFjZXModHMsIDEsIHJv
b3RMYXllcigpKTsKKyAgICAgICAgZHVtcFJlbmRlclN1cmZhY2VzKHRzLCAxLCByb290TGF5ZXIo
KS0+cGxhdGZvcm1MYXllcigpKTsKICAgICB9CiAgICAgcmV0dXJuIHRzLnJlbGVhc2UoKTsKIH0K
IAotdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmR1bXBSZW5kZXJTdXJmYWNlcyhUZXh0U3Ry
ZWFtJiB0cywgaW50IGluZGVudCwgY29uc3QgQ0NMYXllckltcGwqIGxheWVyKSBjb25zdAordm9p
ZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmR1bXBSZW5kZXJTdXJmYWNlcyhUZXh0U3RyZWFtJiB0
cywgaW50IGluZGVudCwgY29uc3QgTGF5ZXJDaHJvbWl1bSogbGF5ZXIpIGNvbnN0CiB7CiAgICAg
aWYgKGxheWVyLT5yZW5kZXJTdXJmYWNlKCkpCiAgICAgICAgIGxheWVyLT5yZW5kZXJTdXJmYWNl
KCktPmR1bXBTdXJmYWNlKHRzLCBpbmRlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21p
dW0uaAppbmRleCA1ZDgwNGFkMWYxNjIyMDg2ODc2ZmRjZDI0MWViNjdlY2IxMDBjNGQ3Li5hZmJl
MjJkODhlMGRlZmVjMWVmMGUxY2FhYTAxNGI5ZWI5YmI0NjhjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJl
bmRlcmVyQ2hyb21pdW0uaApAQCAtNzQsNyArNzQsNyBAQCBjbGFzcyBOb25Db21wb3NpdGVkQ29u
dGVudEhvc3Q7CiAvLyBDbGFzcyB0aGF0IGhhbmRsZXMgZHJhd2luZyBvZiBjb21wb3NpdGVkIHJl
bmRlciBsYXllcnMgdXNpbmcgR0wuCiBjbGFzcyBMYXllclJlbmRlcmVyQ2hyb21pdW0gOiBwdWJs
aWMgUmVmQ291bnRlZDxMYXllclJlbmRlcmVyQ2hyb21pdW0+IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxMYXllclJlbmRlcmVyQ2hyb21pdW0+IGNyZWF0ZShDQ0xheWVyVHJlZUhv
c3RJbXBsKiwgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4pOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPExheWVyUmVuZGVyZXJDaHJvbWl1bT4gY3JlYXRlKENDTGF5ZXJUcmVlSG9zdCosIEND
TGF5ZXJUcmVlSG9zdEltcGwqLCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPik7CiAKICAg
ICAvLyBNdXN0IGJlIGNhbGxlZCBpbiBvcmRlciB0byBhbGxvdyB0aGUgTGF5ZXJSZW5kZXJlckNo
cm9taXVtIHRvIGRlc3RydWN0CiAgICAgdm9pZCBjbG9zZSgpOwpAQCAtODQsMTMgKzg0LDE5IEBA
IHB1YmxpYzoKICAgICBjb25zdCBDQ1NldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IHsgcmV0dXJu
IG1fb3duZXItPnNldHRpbmdzKCk7IH0KICAgICBjb25zdCBMYXllclJlbmRlcmVyQ2FwYWJpbGl0
aWVzJiBjYXBhYmlsaXRpZXMoKSBjb25zdCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQogCi0g
ICAgQ0NMYXllckltcGwqIHJvb3RMYXllcigpIHsgcmV0dXJuIG1fb3duZXItPnJvb3RMYXllcigp
OyB9Ci0gICAgY29uc3QgQ0NMYXllckltcGwqIHJvb3RMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1f
b3duZXItPnJvb3RMYXllcigpOyB9CisgICAgQ0NMYXllclRyZWVIb3N0KiBvd25lcigpIHsgcmV0
dXJuIG1fb3duZXI7IH0KKyAgICBjb25zdCBDQ0xheWVyVHJlZUhvc3QqIG93bmVyKCkgY29uc3Qg
eyByZXR1cm4gbV9vd25lcjsgfQorCisgICAgR3JhcGhpY3NMYXllciogcm9vdExheWVyKCkgeyBy
ZXR1cm4gbV9vd25lci0+cm9vdExheWVyKCk7IH0KKyAgICBjb25zdCBHcmFwaGljc0xheWVyKiBy
b290TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX293bmVyLT5yb290TGF5ZXIoKTsgfQorCisgICAg
Q0NMYXllckltcGwqIHJvb3RMYXllckltcGwoKSB7IHJldHVybiBtX293bmVySW1wbC0+cm9vdExh
eWVyKCk7IH0KKyAgICBjb25zdCBDQ0xheWVySW1wbCogcm9vdExheWVySW1wbCgpIGNvbnN0IHsg
cmV0dXJuIG1fb3duZXJJbXBsLT5yb290TGF5ZXIoKTsgfQogCiAgICAgR3JhcGhpY3NDb250ZXh0
M0QqIGNvbnRleHQoKTsKICAgICBib29sIGNvbnRleHRTdXBwb3J0c01hcFN1YigpIGNvbnN0IHsg
cmV0dXJuIG1fY2FwYWJpbGl0aWVzLnVzaW5nTWFwU3ViOyB9CiAKLSAgICBjb25zdCBJbnRTaXpl
JiB2aWV3cG9ydFNpemUoKSB7IHJldHVybiBtX293bmVyLT52aWV3cG9ydFNpemUoKTsgfQorICAg
IGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSgpIHsgcmV0dXJuIG1fb3duZXJJbXBsLT52aWV3
cG9ydFNpemUoKTsgfQogICAgIGludCB2aWV3cG9ydFdpZHRoKCkgeyByZXR1cm4gdmlld3BvcnRT
aXplKCkud2lkdGgoKTsgfQogICAgIGludCB2aWV3cG9ydEhlaWdodCgpIHsgcmV0dXJuIHZpZXdw
b3J0U2l6ZSgpLmhlaWdodCgpOyB9CiAKQEAgLTEzMyw2ICsxMzksNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGdldEZyYW1lYnVmZmVyUGl4ZWxzKHZvaWQgKnBpeGVscywgY29uc3QgSW50UmVjdCYg
cmVjdCk7CiAKKyAgICBUZXh0dXJlTWFuYWdlciogY29udGVudHNUZXh0dXJlTWFuYWdlcigpIGNv
bnN0IHsgcmV0dXJuIG1fY29udGVudHNUZXh0dXJlTWFuYWdlci5nZXQoKTsgfQogICAgIFRleHR1
cmVNYW5hZ2VyKiByZW5kZXJTdXJmYWNlVGV4dHVyZU1hbmFnZXIoKSBjb25zdCB7IHJldHVybiBt
X3JlbmRlclN1cmZhY2VUZXh0dXJlTWFuYWdlci5nZXQoKTsgfQogCiAgICAgQ0NIZWFkc1VwRGlz
cGxheSogaGVhZHNVcERpc3BsYXkoKSB7IHJldHVybiBtX2hlYWRzVXBEaXNwbGF5LmdldCgpOyB9
CkBAIC0xNDMsMTYgKzE1MCwxNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQ29udGV4dExvc3Qo
KTsKIAotICAgIHZvaWQgcmVsZWFzZVJlbmRlclN1cmZhY2VUZXh0dXJlcygpOworICAgIHZvaWQg
cmVsZWFzZVRleHR1cmVzKCk7CiAKICAgICBHQzNEZW51bSBiZXN0VGV4dHVyZUZvcm1hdCgpOwog
CiAgICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPENDTGF5ZXJJbXBsPiA+IENDTGF5ZXJMaXN0Owog
Ci0gICAgdm9pZCBzZXRDb250ZW50c1RleHR1cmVNZW1vcnlVc2VCeXRlcyhzaXplX3QgY29udGVu
dHNUZXh0dXJlTWVtb3J5VXNlQnl0ZXMpIHsgbV9jb250ZW50c1RleHR1cmVNZW1vcnlVc2VCeXRl
cyA9IGNvbnRlbnRzVGV4dHVyZU1lbW9yeVVzZUJ5dGVzOyB9CisgICAgLy8gRklYTUU6IFJlbW92
ZSB0aGlzIHdoZW4gdGhlIGNvbnRlbnRzIHRleHR1cmUgbWFuYWdlciBoYXMgbW92ZWQgdG8gQ0NM
YXllclRyZWVIb3N0LgorICAgIHN0YXRpYyBzaXplX3QgdGV4dHVyZU1lbW9yeVJlY2xhaW1MaW1p
dCgpOwogCiBwcml2YXRlOgotICAgIExheWVyUmVuZGVyZXJDaHJvbWl1bShDQ0xheWVyVHJlZUhv
c3RJbXBsKiwgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4pOworICAgIExheWVyUmVuZGVy
ZXJDaHJvbWl1bShDQ0xheWVyVHJlZUhvc3QqLCBDQ0xheWVyVHJlZUhvc3RJbXBsKiwgUGFzc1Jl
ZlB0cjxHcmFwaGljc0NvbnRleHQzRD4pOwogICAgIGJvb2wgaW5pdGlhbGl6ZSgpOwogCiAgICAg
dm9pZCBkcmF3TGF5ZXJzSW50ZXJuYWwoKTsKQEAgLTE3MSwxNCArMTc5LDE3IEBAIHByaXZhdGU6
CiAKICAgICBzdGF0aWMgYm9vbCBjb21wYXJlTGF5ZXJaKGNvbnN0IFJlZlB0cjxDQ0xheWVySW1w
bD4mLCBjb25zdCBSZWZQdHI8Q0NMYXllckltcGw+Jik7CiAKLSAgICB2b2lkIGR1bXBSZW5kZXJT
dXJmYWNlcyhUZXh0U3RyZWFtJiwgaW50IGluZGVudCwgY29uc3QgQ0NMYXllckltcGwqKSBjb25z
dDsKKyAgICB2b2lkIGR1bXBSZW5kZXJTdXJmYWNlcyhUZXh0U3RyZWFtJiwgaW50IGluZGVudCwg
Y29uc3QgTGF5ZXJDaHJvbWl1bSopIGNvbnN0OwogCiAgICAgYm9vbCBpbml0aWFsaXplU2hhcmVk
T2JqZWN0cygpOwogICAgIHZvaWQgY2xlYW51cFNoYXJlZE9iamVjdHMoKTsKIAogICAgIHZvaWQg
Y2xlYXJSZW5kZXJTdXJmYWNlc09uQ0NMYXllckltcGxSZWN1cnNpdmUoQ0NMYXllckltcGwqKTsK
IAotICAgIENDTGF5ZXJUcmVlSG9zdEltcGwqIG1fb3duZXI7CisgICAgLy8gRklYTUU6IFJlbW92
ZSBDQ0xheWVyVHJlZUhvc3QgZmllbGQKKyAgICBDQ0xheWVyVHJlZUhvc3QqIG1fb3duZXI7CisK
KyAgICBDQ0xheWVyVHJlZUhvc3RJbXBsKiBtX293bmVySW1wbDsKIAogICAgIExheWVyUmVuZGVy
ZXJDYXBhYmlsaXRpZXMgbV9jYXBhYmlsaXRpZXM7CiAKQEAgLTIwOSw3ICsyMjAsNyBAQCBwcml2
YXRlOgogICAgIE93blB0cjxDQ1ZpZGVvTGF5ZXJJbXBsOjpSR0JBUHJvZ3JhbT4gbV92aWRlb0xh
eWVyUkdCQVByb2dyYW07CiAgICAgT3duUHRyPENDVmlkZW9MYXllckltcGw6OllVVlByb2dyYW0+
IG1fdmlkZW9MYXllcllVVlByb2dyYW07CiAKLSAgICBzaXplX3QgbV9jb250ZW50c1RleHR1cmVN
ZW1vcnlVc2VCeXRlczsKKyAgICBPd25QdHI8VGV4dHVyZU1hbmFnZXI+IG1fY29udGVudHNUZXh0
dXJlTWFuYWdlcjsKICAgICBPd25QdHI8VGV4dHVyZU1hbmFnZXI+IG1fcmVuZGVyU3VyZmFjZVRl
eHR1cmVNYW5hZ2VyOwogCiAgICAgT3duUHRyPENDSGVhZHNVcERpc3BsYXk+IG1faGVhZHNVcERp
c3BsYXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9NYW5hZ2VkVGV4dHVyZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9NYW5hZ2VkVGV4dHVyZS5jcHAKaW5kZXggZjFmODE4YjdlYzdlYTUwNmRkNTRh
Y2NkMjA5OWQ1NTNhYzdlZWRmMC4uNzkwYzcwZjAyN2FjYmExMzgxNTM0ZmVlY2FhN2Q3NDdiMTM3
ODUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTWFuYWdlZFRleHR1cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL01hbmFnZWRUZXh0dXJlLmNwcApAQCAtODMsNiArODMsNyBAQCB2b2lkIE1h
bmFnZWRUZXh0dXJlOjp1bnJlc2VydmUoKQogdm9pZCBNYW5hZ2VkVGV4dHVyZTo6YmluZFRleHR1
cmUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiB7CiAgICAgQVNTRVJUKG1fdGV4dHVyZU1h
bmFnZXItPmhhc1RleHR1cmUobV90b2tlbikpOworICAgIEFTU0VSVChjb250ZXh0ID09IG1fdGV4
dHVyZU1hbmFnZXItPmFzc29jaWF0ZWRDb250ZXh0RGVidWdPbmx5KCkpOwogICAgIGlmICghbV90
ZXh0dXJlSWQpCiAgICAgICAgIG1fdGV4dHVyZUlkID0gbV90ZXh0dXJlTWFuYWdlci0+YWxsb2Nh
dGVUZXh0dXJlKGNvbnRleHQsIG1fdG9rZW4pOwogICAgIGNvbnRleHQtPmJpbmRUZXh0dXJlKEdy
YXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBtX3RleHR1cmVJZCk7CkBAIC05MSw2ICs5Miw3
IEBAIHZvaWQgTWFuYWdlZFRleHR1cmU6OmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEKiBj
b250ZXh0KQogdm9pZCBNYW5hZ2VkVGV4dHVyZTo6ZnJhbWVidWZmZXJUZXh0dXJlMkQoR3JhcGhp
Y3NDb250ZXh0M0QqIGNvbnRleHQpCiB7CiAgICAgQVNTRVJUKG1fdGV4dHVyZU1hbmFnZXItPmhh
c1RleHR1cmUobV90b2tlbikpOworICAgIEFTU0VSVChjb250ZXh0ID09IG1fdGV4dHVyZU1hbmFn
ZXItPmFzc29jaWF0ZWRDb250ZXh0RGVidWdPbmx5KCkpOwogICAgIGlmICghbV90ZXh0dXJlSWQp
CiAgICAgICAgIG1fdGV4dHVyZUlkID0gbV90ZXh0dXJlTWFuYWdlci0+YWxsb2NhdGVUZXh0dXJl
KGNvbnRleHQsIG1fdG9rZW4pOwogICAgIGNvbnRleHQtPmZyYW1lYnVmZmVyVGV4dHVyZTJEKEdy
YXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FU
VEFDSE1FTlQwLCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgbV90ZXh0dXJlSWQsIDAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
UGx1Z2luTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vUGx1Z2luTGF5ZXJDaHJvbWl1bS5oCmluZGV4IGQxY2ZjODAyOWViMjFmNGYyNmMy
YjVjZTdlYjY4ZTA2NDNjMTkzYmIuLjg1MmRjMmVhNmZkMGQ3ZDg0MTU0Yjk0OTI0ODI3NDhiN2Fk
NmEyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1BsdWdpbkxheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9QbHVnaW5MYXllckNocm9taXVtLmgKQEAgLTQ2LDYgKzQ2LDkgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHB1c2hQcm9wZXJ0aWVzVG8oQ0NMYXllckltcGwq
KTsKIAorcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgY29uc3QgY2hhciogbGF5ZXJUeXBlQXNTdHJp
bmcoKSBjb25zdCB7IHJldHVybiAiUGx1Z2luTGF5ZXIiOyB9CisKIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgUGx1Z2luTGF5ZXJDaHJvbWl1bShHcmFwaGljc0xheWVyQ2hyb21pdW0qIG93bmVyKTsK
ICAgICB1bnNpZ25lZCBtX3RleHR1cmVJZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21p
dW0uY3BwCmluZGV4IDczZjNhYjI3YTlhNTkxYzJlNjBiNWQ1ZTI3ZTliYTIxOGRmMWYzMTYuLmE1
ZmQ3NGIxOTAyMGZmNDIxZDQ2NTdmN2VjZGU5N2MzZmIyYzE4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVu
ZGVyU3VyZmFjZUNocm9taXVtLmNwcApAQCAtNTksNSArNTksMjcgQEAgRmxvYXRSZWN0IFJlbmRl
clN1cmZhY2VDaHJvbWl1bTo6ZHJhd2FibGVDb250ZW50UmVjdCgpIGNvbnN0CiAgICAgcmV0dXJu
IGRyYXdhYmxlQ29udGVudFJlY3Q7CiB9CiAKK1N0cmluZyBSZW5kZXJTdXJmYWNlQ2hyb21pdW06
Om5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiUmVuZGVyU3VyZmFj
ZShpZD0lZCxvd25lcj0lcykiLCBtX293bmluZ0xheWVyLT5pZCgpLCBtX293bmluZ0xheWVyLT5u
YW1lKCkudXRmOCgpLmRhdGEoKSk7Cit9CisKK3N0YXRpYyB2b2lkIHdyaXRlSW5kZW50KFRleHRT
dHJlYW0mIHRzLCBpbnQgaW5kZW50KQoreworICAgIGZvciAoaW50IGkgPSAwOyBpICE9IGluZGVu
dDsgKytpKQorICAgICAgICB0cyA8PCAiICAiOworfQorCit2b2lkIFJlbmRlclN1cmZhY2VDaHJv
bWl1bTo6ZHVtcFN1cmZhY2UoVGV4dFN0cmVhbSYgdHMsIGludCBpbmRlbnQpIGNvbnN0Cit7Cisg
ICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCk7CisgICAgdHMgPDwgbmFtZSgpIDw8ICJcbiI7CisK
KyAgICB3cml0ZUluZGVudCh0cywgaW5kZW50KzEpOworICAgIHRzIDw8ICJjb250ZW50UmVjdDog
KCIgPDwgbV9jb250ZW50UmVjdC54KCkgPDwgIiwgIiA8PCBtX2NvbnRlbnRSZWN0LnkoKSA8PCAi
LCAiIDw8IG1fY29udGVudFJlY3Qud2lkdGgoKSA8PCAiLCAiIDw8IG1fY29udGVudFJlY3QuaGVp
Z2h0KCkKKyAgICAgICAgPDwgIiBzY2lzc29yUmVjdDogKCIgPDwgbV9zY2lzc29yUmVjdC54KCkg
PDwgIiwgIiA8PCBtX3NjaXNzb3JSZWN0LnkoKSA8PCAiLCAiIDw8IG1fc2Npc3NvclJlY3Qud2lk
dGgoKSA8PCAiLCAiIDw8IG1fc2Npc3NvclJlY3QuaGVpZ2h0KCkgPDwgIikiCisgICAgICAgIDw8
ICJcbiI7Cit9CisKIH0KICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SZW5k
ZXJTdXJmYWNlQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5oCmluZGV4IDhjMmZiNjk4YTQ1M2ZlZDliMTdk
M2FjMWZhZTM1YmYwN2EwNmQ5OGYuLjRhMDYyYzU2NDBmZDQ0OTE4ZDI5YjkzYzY2OWI5Mjc5NDY4
NDMzNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5oCkBAIC01NCw2ICs1NCw5
IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFudXBSZXNvdXJjZXMoKTsKICAgICB2b2lkIGRyYXco
Y29uc3QgSW50UmVjdCYgdGFyZ2V0U3VyZmFjZVJlY3QpOwogCisgICAgU3RyaW5nIG5hbWUoKSBj
b25zdDsKKyAgICB2b2lkIGR1bXBTdXJmYWNlKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50KSBjb25z
dDsKKwogICAgIC8vIFJldHVybnMgdGhlIHJlY3QgdGhhdCBlbmNsb3NlcyB0aGUgUmVuZGVyU3Vy
ZmFjZSBpbmNsdWRpbmcgYW55IHJlZmxlY3Rpb24uCiAgICAgRmxvYXRSZWN0IGRyYXdhYmxlQ29u
dGVudFJlY3QoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIuY3BwCmluZGV4IDlhMDY4ZGNj
NTc0MTMxOGI2YzVjNjEwOTlkYjBjMTI4MDc0ZjEzMzMuLjhmYTA2NTFiOTg1ZTlmOWM0OWRmYjM1
NTYwODE3YzYyOTNhNmMzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdlci5jcHAKQEAgLTQ0LDIxICs0
NCw2IEBAIHN0YXRpYyBzaXplX3QgbWVtb3J5VXNlQnl0ZXMoSW50U2l6ZSBzaXplLCBHQzNEZW51
bSB0ZXh0dXJlRm9ybWF0KQogICAgIHJldHVybiBzaXplLndpZHRoKCkgKiBzaXplLmhlaWdodCgp
ICogY29tcG9uZW50c1BlclBpeGVsICogYnl0ZXNQZXJDb21wb25lbnQ7CiB9CiAKLXNpemVfdCBU
ZXh0dXJlTWFuYWdlcjo6aGlnaExpbWl0Qnl0ZXMoKQotewotICAgIHJldHVybiAxMjggKiAxMDI0
ICogMTAyNDsKLX0KLQotc2l6ZV90IFRleHR1cmVNYW5hZ2VyOjpyZWNsYWltTGltaXRCeXRlcygp
Ci17Ci0gICAgcmV0dXJuIDY0ICogMTAyNCAqIDEwMjQ7Ci19Ci0KLXNpemVfdCBUZXh0dXJlTWFu
YWdlcjo6bG93TGltaXRCeXRlcygpCi17Ci0gICAgcmV0dXJuIDMgKiAxMDI0ICogMTAyNDsKLX0K
LQogVGV4dHVyZU1hbmFnZXI6OlRleHR1cmVNYW5hZ2VyKHNpemVfdCBtZW1vcnlMaW1pdEJ5dGVz
LCBpbnQgbWF4VGV4dHVyZVNpemUpCiAgICAgOiBtX21lbW9yeUxpbWl0Qnl0ZXMobWVtb3J5TGlt
aXRCeXRlcykKICAgICAsIG1fbWVtb3J5VXNlQnl0ZXMoMCkKQEAgLTE1NCwyNCArMTM5LDEyIEBA
IHZvaWQgVGV4dHVyZU1hbmFnZXI6OmFkZFRleHR1cmUoVGV4dHVyZVRva2VuIHRva2VuLCBUZXh0
dXJlSW5mbyBpbmZvKQogCiB2b2lkIFRleHR1cmVNYW5hZ2VyOjpkZWxldGVFdmljdGVkVGV4dHVy
ZXMoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiB7Ci0gICAgaWYgKGNvbnRleHQpIHsKLSAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2V2aWN0ZWRUZXh0dXJlcy5zaXplKCk7ICsr
aSkgewotICAgICAgICAgICAgaWYgKG1fZXZpY3RlZFRleHR1cmVzW2ldLnRleHR1cmVJZCkgewot
I2lmbmRlZiBOREVCVUcKLSAgICAgICAgICAgICAgICBBU1NFUlQobV9ldmljdGVkVGV4dHVyZXNb
aV0uYWxsb2NhdGluZ0NvbnRleHQgPT0gY29udGV4dCk7Ci0jZW5kaWYKLSAgICAgICAgICAgICAg
ICBHTEMoY29udGV4dCwgY29udGV4dC0+ZGVsZXRlVGV4dHVyZShtX2V2aWN0ZWRUZXh0dXJlc1tp
XS50ZXh0dXJlSWQpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgIEFTU0VSVChjb250
ZXh0ID09IG1fYXNzb2NpYXRlZENvbnRleHREZWJ1Z09ubHkpOworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbV9ldmljdGVkVGV4dHVyZUlkcy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAo
bV9ldmljdGVkVGV4dHVyZUlkc1tpXSkKKyAgICAgICAgICAgIEdMQyhjb250ZXh0LCBjb250ZXh0
LT5kZWxldGVUZXh0dXJlKG1fZXZpY3RlZFRleHR1cmVJZHNbaV0pKTsKICAgICB9Ci0gICAgbV9l
dmljdGVkVGV4dHVyZXMuY2xlYXIoKTsKLX0KLQotdm9pZCBUZXh0dXJlTWFuYWdlcjo6ZXZpY3RB
bmREZWxldGVBbGxUZXh0dXJlcyhHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKLXsKLSAgICB1
bnByb3RlY3RBbGxUZXh0dXJlcygpOwotICAgIHJlZHVjZU1lbW9yeVRvTGltaXQoMCk7Ci0gICAg
ZGVsZXRlRXZpY3RlZFRleHR1cmVzKGNvbnRleHQpOworICAgIG1fZXZpY3RlZFRleHR1cmVJZHMu
Y2xlYXIoKTsKIH0KIAogdm9pZCBUZXh0dXJlTWFuYWdlcjo6cmVtb3ZlVGV4dHVyZShUZXh0dXJl
VG9rZW4gdG9rZW4sIFRleHR1cmVJbmZvIGluZm8pCkBAIC0xODIsMTYgKzE1NSwxMiBAQCB2b2lk
IFRleHR1cmVNYW5hZ2VyOjpyZW1vdmVUZXh0dXJlKFRleHR1cmVUb2tlbiB0b2tlbiwgVGV4dHVy
ZUluZm8gaW5mbykKICAgICBtX3RleHR1cmVzLnJlbW92ZSh0b2tlbik7CiAgICAgQVNTRVJUKG1f
dGV4dHVyZUxSVVNldC5jb250YWlucyh0b2tlbikpOwogICAgIG1fdGV4dHVyZUxSVVNldC5yZW1v
dmUodG9rZW4pOwotICAgIEV2aWN0aW9uRW50cnkgZW50cnk7Ci0gICAgZW50cnkudGV4dHVyZUlk
ID0gaW5mby50ZXh0dXJlSWQ7Ci0jaWZuZGVmIE5ERUJVRwotICAgIGVudHJ5LmFsbG9jYXRpbmdD
b250ZXh0ID0gaW5mby5hbGxvY2F0aW5nQ29udGV4dDsKLSNlbmRpZgotICAgIG1fZXZpY3RlZFRl
eHR1cmVzLmFwcGVuZChlbnRyeSk7CisgICAgbV9ldmljdGVkVGV4dHVyZUlkcy5hcHBlbmQoaW5m
by50ZXh0dXJlSWQpOwogfQogCiB1bnNpZ25lZCBUZXh0dXJlTWFuYWdlcjo6YWxsb2NhdGVUZXh0
dXJlKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBUZXh0dXJlVG9rZW4gdG9rZW4pCiB7Cisg
ICAgQVNTRVJUKGNvbnRleHQgPT0gbV9hc3NvY2lhdGVkQ29udGV4dERlYnVnT25seSk7CiAgICAg
VGV4dHVyZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RleHR1cmVzLmZpbmQodG9rZW4pOwogICAgIEFT
U0VSVChpdCAhPSBtX3RleHR1cmVzLmVuZCgpKTsKICAgICBUZXh0dXJlSW5mbyogaW5mbyA9ICZp
dC5nZXQoKS0+c2Vjb25kOwpAQCAtMjA4LDkgKzE3Nyw2IEBAIHVuc2lnbmVkIFRleHR1cmVNYW5h
Z2VyOjphbGxvY2F0ZVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIFRleHR1cmVU
b2tlCiAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfVCwgR3Jh
cGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpKTsKICAgICBHTEMoY29udGV4dCwgY29udGV4
dC0+dGV4SW1hZ2UyRFJlc291cmNlU2FmZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwg
MCwgaW5mby0+Zm9ybWF0LCBpbmZvLT5zaXplLndpZHRoKCksIGluZm8tPnNpemUuaGVpZ2h0KCks
IDAsIGluZm8tPmZvcm1hdCwgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEUpKTsKICAg
ICBpbmZvLT50ZXh0dXJlSWQgPSB0ZXh0dXJlSWQ7Ci0jaWZuZGVmIE5ERUJVRwotICAgIGluZm8t
PmFsbG9jYXRpbmdDb250ZXh0ID0gY29udGV4dDsKLSNlbmRpZgogICAgIHJldHVybiB0ZXh0dXJl
SWQ7CiB9CiAKQEAgLTIzOCw5ICsyMDQsNiBAQCBib29sIFRleHR1cmVNYW5hZ2VyOjpyZXF1ZXN0
VGV4dHVyZShUZXh0dXJlVG9rZW4gdG9rZW4sIEludFNpemUgc2l6ZSwgdW5zaWduZWQgZgogICAg
IGluZm8uZm9ybWF0ID0gZm9ybWF0OwogICAgIGluZm8udGV4dHVyZUlkID0gMDsKICAgICBpbmZv
LmlzUHJvdGVjdGVkID0gdHJ1ZTsKLSNpZm5kZWYgTkRFQlVHCi0gICAgaW5mby5hbGxvY2F0aW5n
Q29udGV4dCA9IDA7Ci0jZW5kaWYKICAgICBhZGRUZXh0dXJlKHRva2VuLCBpbmZvKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdlci5oCmluZGV4IDIxMDVjNTdmZjk2YzBiY2M2
NGJjZTFkMzA0OWM1ZjNlZjU5NTBmZTAuLjEyYWQyMDgwMGI2Y2RjNmEyY2U3YTA0NGY5NmQwYWYw
NTUyMDA5MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1RleHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIuaApAQCAtNDUsMTMgKzQ1LDYgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRleHR1cmVNYW5hZ2VyKG1lbW9yeUxpbWl0
Qnl0ZXMsIG1heFRleHR1cmVTaXplKSk7CiAgICAgfQogCi0gICAgLy8gQWJzb2x1dGUgbWF4aW11
bSBsaW1pdCBmb3IgdGV4dHVyZSBhbGxvY2F0aW9ucyBmb3IgdGhpcyBpbnN0YW5jZS4KLSAgICBz
dGF0aWMgc2l6ZV90IGhpZ2hMaW1pdEJ5dGVzKCk7Ci0gICAgLy8gUHJlZmVycmVkIHRleHR1cmUg
c2l6ZSBsaW1pdC4gQ2FuIGJlIGV4Y2VlZGVkIGlmIG5lZWRlZC4KLSAgICBzdGF0aWMgc2l6ZV90
IHJlY2xhaW1MaW1pdEJ5dGVzKCk7Ci0gICAgLy8gVGhlIG1heGltdW0gdGV4dHVyZSBtZW1vcnkg
dXNhZ2Ugd2hlbiBhc2tlZCB0byByZWxlYXNlIHRleHR1cmVzLgotICAgIHN0YXRpYyBzaXplX3Qg
bG93TGltaXRCeXRlcygpOwotCiAgICAgdm9pZCBzZXRNZW1vcnlMaW1pdEJ5dGVzKHNpemVfdCk7
CiAKICAgICBUZXh0dXJlVG9rZW4gZ2V0VG9rZW4oKTsKQEAgLTY4LDExICs2MSwxNCBAQCBwdWJs
aWM6CiAgICAgdW5zaWduZWQgYWxsb2NhdGVUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEKiwgVGV4
dHVyZVRva2VuKTsKICAgICB2b2lkIGRlbGV0ZUV2aWN0ZWRUZXh0dXJlcyhHcmFwaGljc0NvbnRl
eHQzRCopOwogCi0gICAgdm9pZCBldmljdEFuZERlbGV0ZUFsbFRleHR1cmVzKEdyYXBoaWNzQ29u
dGV4dDNEKik7Ci0KICAgICB2b2lkIHJlZHVjZU1lbW9yeVRvTGltaXQoc2l6ZV90KTsKICAgICBz
aXplX3QgY3VycmVudE1lbW9yeVVzZUJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9tZW1vcnlVc2VC
eXRlczsgfQogCisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQgc2V0QXNzb2NpYXRlZENvbnRleHRE
ZWJ1Z09ubHkoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpIHsgbV9hc3NvY2lhdGVkQ29udGV4
dERlYnVnT25seSA9IGNvbnRleHQ7IH0KKyAgICBHcmFwaGljc0NvbnRleHQzRCogYXNzb2NpYXRl
ZENvbnRleHREZWJ1Z09ubHkoKSBjb25zdCB7IHJldHVybiBtX2Fzc29jaWF0ZWRDb250ZXh0RGVi
dWdPbmx5OyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBUZXh0dXJlTWFuYWdlcihzaXplX3Qg
bWVtb3J5TGltaXRCeXRlcywgaW50IG1heFRleHR1cmVTaXplKTsKIApAQCAtODEsOSArNzcsNiBA
QCBwcml2YXRlOgogICAgICAgICBHQzNEZW51bSBmb3JtYXQ7CiAgICAgICAgIHVuc2lnbmVkIHRl
eHR1cmVJZDsKICAgICAgICAgYm9vbCBpc1Byb3RlY3RlZDsKLSNpZm5kZWYgTkRFQlVHCi0gICAg
ICAgIEdyYXBoaWNzQ29udGV4dDNEKiBhbGxvY2F0aW5nQ29udGV4dDsKLSNlbmRpZgogICAgIH07
CiAKICAgICB2b2lkIGFkZFRleHR1cmUoVGV4dHVyZVRva2VuLCBUZXh0dXJlSW5mbyk7CkBAIC05
OCwxNCArOTEsMTEgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9tYXhUZXh0dXJlU2l6ZTsKICAgICBU
ZXh0dXJlVG9rZW4gbV9uZXh0VG9rZW47CiAKLSAgICBzdHJ1Y3QgRXZpY3Rpb25FbnRyeSB7Ci0g
ICAgICAgIHVuc2lnbmVkIHRleHR1cmVJZDsKICNpZm5kZWYgTkRFQlVHCi0gICAgICAgIEdyYXBo
aWNzQ29udGV4dDNEKiBhbGxvY2F0aW5nQ29udGV4dDsKKyAgICBHcmFwaGljc0NvbnRleHQzRCog
bV9hc3NvY2lhdGVkQ29udGV4dERlYnVnT25seTsKICNlbmRpZgotICAgIH07CiAKLSAgICBWZWN0
b3I8RXZpY3Rpb25FbnRyeT4gbV9ldmljdGVkVGV4dHVyZXM7CisgICAgVmVjdG9yPHVuc2lnbmVk
PiBtX2V2aWN0ZWRUZXh0dXJlSWRzOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1
bS5jcHAKaW5kZXggNmJkMjgyMWRjZjFkYjI5MWUzNDU1N2Q1MjJkZmViYjZkYjkxNDRmOS4uZGRl
ZmZlNzI4MjQyOTcxNTEyMzM2ODI0OTYxZDZiM2VkYTUyMjk4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExh
eWVyQ2hyb21pdW0uY3BwCkBAIC0yNjUsNiArMjY1LDE5IEBAIHZvaWQgVGlsZWRMYXllckNocm9t
aXVtOjpwdXNoUHJvcGVydGllc1RvKENDTGF5ZXJJbXBsKiBsYXllcikKICAgICB9CiB9CiAKK3N0
YXRpYyB2b2lkIHdyaXRlSW5kZW50KFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50KQoreworICAg
IGZvciAoaW50IGkgPSAwOyBpICE9IGluZGVudDsgKytpKQorICAgICAgICB0cyA8PCAiICAiOwor
fQorCit2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6ZHVtcExheWVyUHJvcGVydGllcyhUZXh0U3Ry
ZWFtJiB0cywgaW50IGluZGVudCkgY29uc3QKK3sKKyAgICBMYXllckNocm9taXVtOjpkdW1wTGF5
ZXJQcm9wZXJ0aWVzKHRzLCBpbmRlbnQpOworICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQpOwor
ICAgIHRzIDw8ICJza2lwc0RyYXc6ICIgPDwgKCFtX3RpbGVyIHx8IG1fc2tpcHNEcmF3KSA8PCAi
XG4iOworfQorCiBUZXh0dXJlTWFuYWdlciogVGlsZWRMYXllckNocm9taXVtOjp0ZXh0dXJlTWFu
YWdlcigpIGNvbnN0CiB7CiAgICAgaWYgKCFsYXllclRyZWVIb3N0KCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21p
dW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5
ZXJDaHJvbWl1bS5oCmluZGV4IDY5MjZlM2Q1M2MwODc0MjBkNGFmMTkzZWY2NWQwNzgxNTM0NGM4
NzYuLjU4NTY5MTgxNDQwNjkzZjYwZjZkZDZiMjk5Y2JiOWRjODlkMWE0NWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJv
bWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rp
bGVkTGF5ZXJDaHJvbWl1bS5oCkBAIC03NCw2ICs3NCw4IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPENDTGF5ZXJJbXBsPiBjcmVhdGVDQ0xheWVySW1wbCgp
OwogCisgICAgdmlydHVhbCB2b2lkIGR1bXBMYXllclByb3BlcnRpZXMoVGV4dFN0cmVhbSYsIGlu
dCBpbmRlbnQpIGNvbnN0OworCiAgICAgdmlydHVhbCB2b2lkIHNldExheWVyVHJlZUhvc3QoQ0NM
YXllclRyZWVIb3N0Kik7CiAKICAgICB2b2lkIGNyZWF0ZVRpbGVySWZOZWVkZWQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5
ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
VmlkZW9MYXllckNocm9taXVtLmgKaW5kZXggOWY3OTAzMjU2ZmJlODg2YWM0ZWU2YzlkZjZkYWIz
NjYwY2YzZTUxZi4uN2IxNTZmYjE0MGFiMDFkM2Q1ZDlmMTdmNGUzNGJlNzNmMjczYmUyNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9M
YXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVmlkZW9MYXllckNocm9taXVtLmgKQEAgLTYzLDYgKzYzLDcgQEAgcHVibGljOgogCiBw
cm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGNsZWFudXBSZXNvdXJjZXMoKTsKKyAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIqIGxheWVyVHlwZUFzU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gIlZpZGVv
TGF5ZXIiOyB9CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IFRleHR1cmUgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9t
aXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExh
eWVyQ2hyb21pdW0uaAppbmRleCAyMTU1MGRmYzE0MTNmMGI0NzZkNTBiMDYzMmFhOGY1Mjc5YmMx
YzA0Li44NjJmYTg4ZjNmYjA4OGU5Njg4OTI0OGY4MzI0YmM0NjIzZjA1YjExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExheWVyQ2hy
b21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9X
ZWJHTExheWVyQ2hyb21pdW0uaApAQCAtNTcsNiArNTcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRDb250ZXh0KGNvbnN0IEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KTsKICAgICBHcmFwaGlj
c0NvbnRleHQzRCogY29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dDsgfQogCitwcm90ZWN0ZWQ6
CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiBsYXllclR5cGVBc1N0cmluZygpIGNvbnN0IHsgcmV0
dXJuICJXZWJHTExheWVyIjsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYkdMTGF5ZXJD
aHJvbWl1bShHcmFwaGljc0xheWVyQ2hyb21pdW0qIG93bmVyKTsKICAgICBmcmllbmQgY2xhc3Mg
V2ViR0xMYXllckNocm9taXVtUmF0ZUxpbWl0VGFzazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQ2FudmFzTGF5ZXJJbXBsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQ2FudmFzTGF5
ZXJJbXBsLmNwcAppbmRleCBhYWIwMWQyZGJmYTNkMzA1Yjk3N2RiMWRjZTk4MDE0ZDNlZWI4MjRh
Li44Y2MyMjNlMmEyZjFlZGI1MjBjOWFiMjNiOWJhYWFiNDNhZmU3NTQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0NhbnZhc0xheWVy
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NDYW52YXNMYXllckltcGwuY3BwCkBAIC00OCwxMSArNDgsNiBAQCBDQ0NhbnZhc0xheWVy
SW1wbDo6fkNDQ2FudmFzTGF5ZXJJbXBsKCkKIHsKIH0KIAotY29uc3QgY2hhciogQ0NDYW52YXNM
YXllckltcGw6OmxheWVyVHlwZUFzU3RyaW5nKCkgY29uc3QKLXsKLSAgICByZXR1cm4gIkNhbnZh
c0xheWVyIjsKLX0KLQogdm9pZCBDQ0NhbnZhc0xheWVySW1wbDo6ZHJhdygpCiB7CiAgICAgQVNT
RVJUKENDUHJveHk6OmlzSW1wbFRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQ2FudmFzTGF5ZXJJbXBsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0NhbnZhc0xheWVySW1w
bC5oCmluZGV4IDVkNDVmNWU0ZGYxM2ZjOGE5MjU4Mjc3ZWQxZWFhZThjZTA0ZjEyZjMuLmQ4NWVi
YThkZTg4M2FiZTdlMGUwOWU1N2U0MDAxZmYwZjZjNGZhNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQ2FudmFzTGF5ZXJJbXBsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NDYW52
YXNMYXllckltcGwuaApAQCAtNTIsOCArNTIsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4
cGxpY2l0IENDQ2FudmFzTGF5ZXJJbXBsKGludCk7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIq
IGxheWVyVHlwZUFzU3RyaW5nKCkgY29uc3Q7Ci0KICAgICB1bnNpZ25lZCBtX3RleHR1cmVJZDsK
ICAgICBib29sIG1faGFzQWxwaGE7CiAgICAgYm9vbCBtX3ByZW11bHRpcGxpZWRBbHBoYTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJJbXBsLmNwcAppbmRleCAyY2UxMTI2NzE3ZTQyZmYzMjY3ZTMyMzk3YzMwNjJh
OGFiMjczYmFjLi4zMDBmNDcxMzNlYzhjMDQyMjZhMzRlZTFkMDUzMzEyNDM2NmViMmM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllckltcGwuY3BwCkBAIC04NSwxMSArODUsNiBAQCBDQ0xheWVySW1wbDo6fkND
TGF5ZXJJbXBsKCkKIHsKIH0KIAotY29uc3QgY2hhciogQ0NMYXllckltcGw6OmxheWVyVHlwZUFz
U3RyaW5nKCkgY29uc3QKLXsKLSAgICByZXR1cm4gIkxheWVyQ2hyb21pdW0iOwotfQotCiB2b2lk
IENDTGF5ZXJJbXBsOjphZGRDaGlsZChQYXNzUmVmUHRyPENDTGF5ZXJJbXBsPiBjaGlsZCkKIHsK
ICAgICBjaGlsZC0+c2V0UGFyZW50KHRoaXMpOwpAQCAtMjMyLDMzICsyMjcsNiBAQCB2b2lkIHNv
cnRMYXllcnMoVmVjdG9yPFJlZlB0cjxDQ0xheWVySW1wbD4gPjo6aXRlcmF0b3IgZmlyc3QsIFZl
Y3RvcjxSZWZQdHI8Q0NMYQogICAgIGxheWVyU29ydGVyLT5zb3J0KGZpcnN0LCBlbmQpOwogfQog
Ci1TdHJpbmcgQ0NMYXllckltcGw6OmxheWVyVHJlZUFzVGV4dCgpIGNvbnN0Ci17Ci0gICAgVGV4
dFN0cmVhbSB0czsKLSAgICBkdW1wTGF5ZXIodHMsIDApOwotICAgIHJldHVybiB0cy5yZWxlYXNl
KCk7CiB9CiAKLXZvaWQgQ0NMYXllckltcGw6OmR1bXBMYXllcihUZXh0U3RyZWFtJiB0cywgaW50
IGluZGVudCkgY29uc3QKLXsKLSAgICB3cml0ZUluZGVudCh0cywgaW5kZW50KTsKLSAgICB0cyA8
PCBsYXllclR5cGVBc1N0cmluZygpIDw8ICIoIiA8PCBtX25hbWUgPDwgIilcbiI7Ci0gICAgZHVt
cExheWVyUHJvcGVydGllcyh0cywgaW5kZW50KzIpOwotICAgIGlmIChtX3JlcGxpY2FMYXllcikg
ewotICAgICAgICB3cml0ZUluZGVudCh0cywgaW5kZW50KzIpOwotICAgICAgICB0cyA8PCAiUmVw
bGljYTpcbiI7Ci0gICAgICAgIG1fcmVwbGljYUxheWVyLT5kdW1wTGF5ZXIodHMsIGluZGVudCsz
KTsKLSAgICB9Ci0gICAgaWYgKG1fbWFza0xheWVyKSB7Ci0gICAgICAgIHdyaXRlSW5kZW50KHRz
LCBpbmRlbnQrMik7Ci0gICAgICAgIHRzIDw8ICJNYXNrOlxuIjsKLSAgICAgICAgbV9tYXNrTGF5
ZXItPmR1bXBMYXllcih0cywgaW5kZW50KzMpOwotICAgIH0KLSAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG1fY2hpbGRyZW4uc2l6ZSgpOyArK2kpCi0gICAgICAgIG1fY2hpbGRyZW5baV0tPmR1
bXBMYXllcih0cywgaW5kZW50KzEpOwotfQotCi19Ci0KLQogI2VuZGlmIC8vIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCmluZGV4IDkwOWUyZjc5NWE0ZTRm
Nzg0NTQyYzdkZGVmMWQ5YTlkMGQ1Mjc3N2UuLmM3ZGM0Njk1NDdmNWMxNWU3YTM3N2VmOTU3ZmU0
ZjM4OTc1ZmRjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaApAQCAtMTY1LDEyICsxNjUsMTEgQEAg
cHVibGljOgogICAgIGNvbnN0IEludFJlY3QmIGRyYXdhYmxlQ29udGVudFJlY3QoKSBjb25zdCB7
IHJldHVybiBtX2RyYXdhYmxlQ29udGVudFJlY3Q7IH0KICAgICB2b2lkIHNldERyYXdhYmxlQ29u
dGVudFJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkgeyBtX2RyYXdhYmxlQ29udGVudFJlY3QgPSBy
ZWN0OyB9CiAKLSAgICBTdHJpbmcgbGF5ZXJUcmVlQXNUZXh0KCkgY29uc3Q7CisgICAgdmlydHVh
bCB2b2lkIGR1bXBMYXllclByb3BlcnRpZXMoVGV4dFN0cmVhbSYsIGludCBpbmRlbnQpIGNvbnN0
OwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQ0NMYXllckltcGwoaW50KTsKIAotICAgIHZp
cnR1YWwgdm9pZCBkdW1wTGF5ZXJQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50KSBj
b25zdDsKICAgICBzdGF0aWMgdm9pZCB3cml0ZUluZGVudChUZXh0U3RyZWFtJiwgaW50IGluZGVu
dCk7CiAKIHByaXZhdGU6CkBAIC0xNzgsMTAgKzE3Nyw2IEBAIHByaXZhdGU6CiAgICAgZnJpZW5k
IGNsYXNzIFRyZWVTeW5jaHJvbml6ZXI7CiAgICAgdm9pZCBjbGVhckNoaWxkTGlzdCgpOyAvLyBX
YXJuaW5nOiBUaGlzIGRvZXMgbm90IHByZXNlcnZlIHRyZWUgc3RydWN0dXJlIGludmFyaWFudHMg
YW5kIHNvIGlzIG9ubHkgZXhwb3NlZCB0byB0aGUgdHJlZSBzeW5jaHJvbml6ZXIuCiAKLSAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIqIGxheWVyVHlwZUFzU3RyaW5nKCkgY29uc3Q7Ci0KLSAgICB2b2lk
IGR1bXBMYXllcihUZXh0U3RyZWFtJiwgaW50IGluZGVudCkgY29uc3Q7Ci0KICAgICAvLyBQcm9w
ZXJ0aWVzIGludGVybmFsIHRvIENDTGF5ZXJJbXBsCiAgICAgQ0NMYXllckltcGwqIG1fcGFyZW50
OwogICAgIFZlY3RvcjxSZWZQdHI8Q0NMYXllckltcGw+ID4gbV9jaGlsZHJlbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDdiOGNiNDFmNGRhZWUwNGJiNmY1MjJlNGQ2YzUy
OWQyNDkwNTVlMmMuLmVlMGRkNDM2ZjQ5YTQ0NWEyNDdkNWNiNjEzZDUyYjllYjQ5ZjJhZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcApAQCAtNjksNyArNjksNyBAQCBib29sIEND
TGF5ZXJUcmVlSG9zdDo6aW5pdGlhbGl6ZSgpCiAgICAgICAgIG1fcHJveHkgPSBDQ1NpbmdsZVRo
cmVhZFByb3h5OjpjcmVhdGUodGhpcyk7CiAgICAgbV9wcm94eS0+c3RhcnQoKTsKIAotICAgIGlm
ICghbV9wcm94eS0+aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIoKSkKKyAgICBpZiAoIW1fcHJveHkt
PmluaXRpYWxpemVMYXllclJlbmRlcmVyKHRoaXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICAvLyBVcGRhdGUgbV9zZXR0aW5ncyBiYXNlZCBvbiBjYXBhYmlsaXRpZXMgdGhhdCB3ZSBn
b3QgYmFjayBmcm9tIHRoZSByZW5kZXJlci4KQEAgLTg2LDI1ICs4NiwxNCBAQCBib29sIENDTGF5
ZXJUcmVlSG9zdDo6aW5pdGlhbGl6ZSgpCiAgICAgLy8gV2UgY2hhbmdlZCB0aGUgcm9vdCBsYXll
ci4gVGVsbCB0aGUgcHJveHkgYSBjb21taXQgaXMgbmVlZGVkLgogICAgIG1fcHJveHktPnNldE5l
ZWRzQ29tbWl0QW5kUmVkcmF3KCk7CiAKLSAgICBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXIgPSBU
ZXh0dXJlTWFuYWdlcjo6Y3JlYXRlKFRleHR1cmVNYW5hZ2VyOjpoaWdoTGltaXRCeXRlcygpLCBt
X3Byb3h5LT5sYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKCkubWF4VGV4dHVyZVNpemUpOwogICAg
IHJldHVybiB0cnVlOwogfQogCiBDQ0xheWVyVHJlZUhvc3Q6On5DQ0xheWVyVHJlZUhvc3QoKQog
ewotICAgIEFTU0VSVChDQ1Byb3h5Ojppc01haW5UaHJlYWQoKSk7CiAgICAgVFJBQ0VfRVZFTlQo
IkNDTGF5ZXJUcmVlSG9zdDo6fkNDTGF5ZXJUcmVlSG9zdCIsIHRoaXMsIDApOwogICAgIG1fcHJv
eHktPnN0b3AoKTsKICAgICBtX3Byb3h5LmNsZWFyKCk7Ci0gICAgbV91cGRhdGVMaXN0LmNsZWFy
KCk7Ci0gICAgQVNTRVJUKCFtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPmN1cnJlbnRNZW1vcnlV
c2VCeXRlcygpKTsKLSAgICBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXIuY2xlYXIoKTsKLX0KLQot
dm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmRlbGV0ZUNvbnRlbnRzVGV4dHVyZXMoR3JhcGhpY3NDb250
ZXh0M0QqIGNvbnRleHQpCi17Ci0gICAgQVNTRVJUKENDUHJveHk6OmlzSW1wbFRocmVhZCgpKTsK
LSAgICBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPmV2aWN0QW5kRGVsZXRlQWxsVGV4dHVyZXMo
Y29udGV4dCk7CiB9CiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0OjphbmltYXRlQW5kTGF5b3V0KGRv
dWJsZSBmcmFtZUJlZ2luVGltZSkKQEAgLTEyMCw3ICsxMDksNyBAQCB2b2lkIENDTGF5ZXJUcmVl
SG9zdDo6Y29tbWl0VG8oQ0NMYXllclRyZWVIb3N0SW1wbCogaG9zdEltcGwpCiAgICAgVFJBQ0Vf
RVZFTlQoIkNDTGF5ZXJUcmVlSG9zdDo6Y29tbWl0VG8iLCB0aGlzLCAwKTsKICAgICBob3N0SW1w
bC0+c2V0U291cmNlRnJhbWVOdW1iZXIoZnJhbWVOdW1iZXIoKSk7CiAKLSAgICBjb250ZW50c1Rl
eHR1cmVNYW5hZ2VyKCktPnJlZHVjZU1lbW9yeVRvTGltaXQoVGV4dHVyZU1hbmFnZXI6OnJlY2xh
aW1MaW1pdEJ5dGVzKCkpOworICAgIGNvbnRlbnRzVGV4dHVyZU1hbmFnZXIoKS0+cmVkdWNlTWVt
b3J5VG9MaW1pdChob3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlTWVtb3J5UmVjbGFp
bUxpbWl0KCkpOwogICAgIGNvbnRlbnRzVGV4dHVyZU1hbmFnZXIoKS0+ZGVsZXRlRXZpY3RlZFRl
eHR1cmVzKGhvc3RJbXBsLT5jb250ZXh0KCkpOwogCiAgICAgdXBkYXRlQ29tcG9zaXRvclJlc291
cmNlcyhtX3VwZGF0ZUxpc3QsIGhvc3RJbXBsLT5jb250ZXh0KCkpOwpAQCAtMTMwLDkgKzExOSw2
IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0Ojpjb21taXRUbyhDQ0xheWVyVHJlZUhvc3RJbXBsKiBo
b3N0SW1wbCkKICAgICBob3N0SW1wbC0+c2V0Wm9vbUFuaW1hdG9yU2NhbGUobV96b29tQW5pbWF0
b3JTY2FsZSk7CiAgICAgaG9zdEltcGwtPnNldFZpZXdwb3J0KHZpZXdwb3J0U2l6ZSgpKTsKIAot
ICAgIGhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPnNldENvbnRlbnRzVGV4dHVyZU1lbW9yeVVz
ZUJ5dGVzKG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+Y3VycmVudE1lbW9yeVVzZUJ5dGVzKCkp
OwotICAgIG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+dW5wcm90ZWN0QWxsVGV4dHVyZXMoKTsK
LQogICAgIC8vIFN5bmNocm9uaXplIHRyZWVzLCBpZiBvbmUgZXhpc3RzIGF0IGFsbC4uLgogICAg
IGlmIChyb290TGF5ZXIoKSkKICAgICAgICAgaG9zdEltcGwtPnNldFJvb3RMYXllcihUcmVlU3lu
Y2hyb25pemVyOjpzeW5jaHJvbml6ZVRyZWVzKHJvb3RMYXllcigpLT5wbGF0Zm9ybUxheWVyKCks
IGhvc3RJbXBsLT5yb290TGF5ZXIoKSkpOwpAQCAtMTU5LDggKzE0NSw2IEBAIFBhc3NPd25QdHI8
Q0NMYXllclRyZWVIb3N0SW1wbD4gQ0NMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllclRyZWVIb3N0
SW1wbCgpCiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpkaWRSZWNyZWF0ZUdyYXBoaWNzQ29udGV4
dChib29sIHN1Y2Nlc3MpCiB7Ci0gICAgbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT5ldmljdEFu
ZERlbGV0ZUFsbFRleHR1cmVzKDApOwotCiAgICAgaWYgKHJvb3RMYXllcigpKQogICAgICAgICBy
b290TGF5ZXIoKS0+cGxhdGZvcm1MYXllcigpLT5jbGVhbnVwUmVzb3VyY2VzUmVjdXJzaXZlKCk7
CiAgICAgbV9jbGllbnQtPmRpZFJlY3JlYXRlR3JhcGhpY3NDb250ZXh0KHN1Y2Nlc3MpOwpAQCAt
Mjc1LDE0ICsyNTksNyBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0Vmlld3BvcnQoY29uc3Qg
SW50U2l6ZSYgdmlld3BvcnRTaXplLCBjb25zdCBJbnRTaXplJiBjbwogdm9pZCBDQ0xheWVyVHJl
ZUhvc3Q6OnNldFZpc2libGUoYm9vbCB2aXNpYmxlKQogewogICAgIG1fdmlzaWJsZSA9IHZpc2li
bGU7Ci0gICAgaWYgKHZpc2libGUpCi0gICAgICAgIG1fcHJveHktPnNldE5lZWRzQ29tbWl0QW5k
UmVkcmF3KCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
LT5wcm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpOwotICAgICAgICBtX2NvbnRlbnRzVGV4dHVy
ZU1hbmFnZXItPnJlZHVjZU1lbW9yeVRvTGltaXQoVGV4dHVyZU1hbmFnZXI6Omxvd0xpbWl0Qnl0
ZXMoKSk7Ci0gICAgICAgIG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+dW5wcm90ZWN0QWxsVGV4
dHVyZXMoKTsKLSAgICAgICAgbV9wcm94eS0+c2V0TmVlZHNDb21taXQoKTsKLSAgICB9CisgICAg
bV9wcm94eS0+c2V0TmVlZHNDb21taXRBbmRSZWRyYXcoKTsKIH0KIAogdm9pZCBDQ0xheWVyVHJl
ZUhvc3Q6Omxvc2VDb21wb3NpdG9yQ29udGV4dChpbnQgbnVtVGltZXMpCkBAIC0yOTIsNyArMjY5
LDcgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6Omxvc2VDb21wb3NpdG9yQ29udGV4dChpbnQgbnVt
VGltZXMpCiAKIFRleHR1cmVNYW5hZ2VyKiBDQ0xheWVyVHJlZUhvc3Q6OmNvbnRlbnRzVGV4dHVy
ZU1hbmFnZXIoKSBjb25zdAogewotICAgIHJldHVybiBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXIu
Z2V0KCk7CisgICAgcmV0dXJuIG1fcHJveHktPmNvbnRlbnRzVGV4dHVyZU1hbmFnZXIoKTsKIH0K
IAogI2lmICFVU0UoVEhSRUFERURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dC5oCmluZGV4IGM3MTNmMDNlN2FkMjMxNzlhYzg3NzYzMGEyM2M5ZjQ3ODFiNzFjNTcuLmVkOThj
MmU5OGY0YWYwNTM5NGU3N2M5NDg0OTZhZGI5YTE4MGJjNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdC5oCkBAIC0xNTcsOCArMTU3LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCB1cGRhdGVM
YXllcnMoKTsKIAotICAgIHZvaWQgZGVsZXRlQ29udGVudHNUZXh0dXJlcyhHcmFwaGljc0NvbnRl
eHQzRCopOwotCiBwcm90ZWN0ZWQ6CiAgICAgQ0NMYXllclRyZWVIb3N0KENDTGF5ZXJUcmVlSG9z
dENsaWVudCosIGNvbnN0IENDU2V0dGluZ3MmKTsKIApAQCAtMTg2LDcgKzE4NCw2IEBAIHByaXZh
dGU6CiAKICAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7CiAgICAgT3duUHRy
PE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdD4gbV9ub25Db21wb3NpdGVkQ29udGVudEhvc3Q7Ci0g
ICAgT3duUHRyPFRleHR1cmVNYW5hZ2VyPiBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXI7CiAKICAg
ICBMYXllckxpc3QgbV91cGRhdGVMaXN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dEltcGwuY3BwCmluZGV4IGJlYzdjMDJkMjVlZTUxM2E5Mjg1Njc1Y2M3NGI5MDU0NDE5MzU5MmIu
LjcwODJkNjViM2I0YjU5ZjM2MjgxMmNiNzg3MTE4MDQ5NzU3NzM1MDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgQ0NMYXll
clRyZWVIb3N0SW1wbDo6ZHJhd0xheWVycygpCiB7CiAgICAgVFJBQ0VfRVZFTlQoIkNDTGF5ZXJU
cmVlSG9zdEltcGw6OmRyYXdMYXllcnMiLCB0aGlzLCAwKTsKICAgICBBU1NFUlQobV9sYXllclJl
bmRlcmVyKTsKLSAgICBpZiAobV9sYXllclJlbmRlcmVyLT5yb290TGF5ZXIoKSkKKyAgICBpZiAo
bV9sYXllclJlbmRlcmVyLT5vd25lcigpLT5yb290TGF5ZXIoKSkKICAgICAgICAgbV9sYXllclJl
bmRlcmVyLT5kcmF3TGF5ZXJzKCk7CiAKICAgICArK21fZnJhbWVOdW1iZXI7CkBAIC0xMTYsMjcg
KzExNiwzMSBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFJvb3RMYXllcihQYXNzUmVm
UHRyPENDTGF5ZXJJbXBsPiBsYXllcikKIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2V0Vmlz
aWJsZShib29sIHZpc2libGUpCiB7CiAgICAgaWYgKG1fbGF5ZXJSZW5kZXJlciAmJiAhdmlzaWJs
ZSkKLSAgICAgICAgbV9sYXllclJlbmRlcmVyLT5yZWxlYXNlUmVuZGVyU3VyZmFjZVRleHR1cmVz
KCk7CisgICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+cmVsZWFzZVRleHR1cmVzKCk7CiB9CiAKLWJv
b2wgQ0NMYXllclRyZWVIb3N0SW1wbDo6aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIoUGFzc1JlZlB0
cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCkKK2Jvb2wgQ0NMYXllclRyZWVIb3N0SW1wbDo6
aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIoQ0NMYXllclRyZWVIb3N0KiBpbXBsSGFjaywgUGFzc1Jl
ZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCkKIHsKKyAgICAvLyBJZiBtX2xheWVyUmVu
ZGVyZXIgZXhpc3RzLCB0aGVuIHdlIGFyZSByZWNvdmVyaW5nIGZyb20gYSBsb3N0IGNvbnRleHQK
KyAgICBib29sIHJlY3JlYXRpbmdSZW5kZXJlciA9IG1fbGF5ZXJSZW5kZXJlcjsKKworICAgIC8v
IEZpcnN0IHRpbWUgbGF5ZXJSZW5kZXJlciBjcmVhdGlvbgogICAgIFJlZlB0cjxMYXllclJlbmRl
cmVyQ2hyb21pdW0+IGxheWVyUmVuZGVyZXI7Ci0gICAgbGF5ZXJSZW5kZXJlciA9IExheWVyUmVu
ZGVyZXJDaHJvbWl1bTo6Y3JlYXRlKHRoaXMsIGNvbnRleHQpOworICAgIGlmICghcmVjcmVhdGlu
Z1JlbmRlcmVyKQorICAgICAgICBsYXllclJlbmRlcmVyID0gTGF5ZXJSZW5kZXJlckNocm9taXVt
OjpjcmVhdGUoaW1wbEhhY2ssIHRoaXMsIGNvbnRleHQpOworICAgIGVsc2UKKyAgICAgICAgbGF5
ZXJSZW5kZXJlciA9IExheWVyUmVuZGVyZXJDaHJvbWl1bTo6Y3JlYXRlKG1fbGF5ZXJSZW5kZXJl
ci0+b3duZXIoKSwgdGhpcywgY29udGV4dCk7CisKIAogICAgIC8vIElmIGNyZWF0aW9uIGZhaWxl
ZCwgYW5kIHdlIGhhZCBhc2tlZCBmb3IgYWNjZWxlcmF0ZWQgcGFpbnRpbmcsIGRpc2FibGUgYWNj
ZWxlcmF0ZWQgcGFpbnRpbmcKICAgICAvLyBhbmQgdHJ5IGNyZWF0aW5nIHRoZSByZW5kZXJlciBh
Z2Fpbi4KICAgICBpZiAoIWxheWVyUmVuZGVyZXIgJiYgbV9zZXR0aW5ncy5hY2NlbGVyYXRlUGFp
bnRpbmcpIHsKICAgICAgICAgbV9zZXR0aW5ncy5hY2NlbGVyYXRlUGFpbnRpbmcgPSBmYWxzZTsK
IAotICAgICAgICBsYXllclJlbmRlcmVyID0gTGF5ZXJSZW5kZXJlckNocm9taXVtOjpjcmVhdGUo
dGhpcywgY29udGV4dCk7Ci0gICAgfQotCi0gICAgLy8gSWYgd2UgaGFkIGEgcHJldmlvdXMgbGF5
ZXIgcmVuZGVyZXIsIHRoZW4gaXRzIGNvbnRleHQgbXVzdCBoYXZlIGJlZW4gbG9zdCBhbG9uZyB3
aXRoIGFsbCBvZiBpdHMgcmVzb3VyY2VzLgotICAgIC8vIExldCB0aGUgb2xkIGxheWVyIHJlbmRl
cmVyIGtub3duIGl0cyByZXNvdXJjZXMgYXJlIGdvbmUuCi0gICAgaWYgKG1fbGF5ZXJSZW5kZXJl
cikgewotICAgICAgICBtX2xheWVyUmVuZGVyZXItPnNldENvbnRlbnRzVGV4dHVyZU1lbW9yeVVz
ZUJ5dGVzKDApOwotICAgICAgICBtX2xheWVyUmVuZGVyZXItPmNsb3NlKCk7CisgICAgICAgIGlm
ICghcmVjcmVhdGluZ1JlbmRlcmVyKQorICAgICAgICAgICAgbGF5ZXJSZW5kZXJlciA9IExheWVy
UmVuZGVyZXJDaHJvbWl1bTo6Y3JlYXRlKGltcGxIYWNrLCB0aGlzLCBjb250ZXh0KTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgbGF5ZXJSZW5kZXJlciA9IExheWVyUmVuZGVyZXJDaHJvbWl1
bTo6Y3JlYXRlKG1fbGF5ZXJSZW5kZXJlci0+b3duZXIoKSwgdGhpcywgY29udGV4dCk7CiAgICAg
fQogCiAgICAgbV9sYXllclJlbmRlcmVyID0gbGF5ZXJSZW5kZXJlcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdEltcGwuaAppbmRleCBkZmY5NjgwNmQ4NWYyMGIxOGMwZjQ0ODFjYTE0ZjAy
OTVjZWM4YzZlLi4wNTJmMjYwOWJiNDQzMGQwY2ViMTI0YTM4ZTBkNjY3ZmI5YWNhMTBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3RJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGZpbmlzaEFsbFJlbmRlcmluZygpOwogICAgIGludCBmcmFtZU51bWJlcigp
IGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVOdW1iZXI7IH0KIAotICAgIGJvb2wgaW5pdGlhbGl6ZUxh
eWVyUmVuZGVyZXIoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4pOworICAgIGJvb2wgaW5p
dGlhbGl6ZUxheWVyUmVuZGVyZXIoQ0NMYXllclRyZWVIb3N0KiBvd25lckhhY2ssIFBhc3NSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+KTsKICAgICBib29sIGlzQ29udGV4dExvc3QoKTsKICAgICBM
YXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIoKSB7IHJldHVybiBtX2xheWVyUmVu
ZGVyZXIuZ2V0KCk7IH0KICAgICBjb25zdCBMYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzJiBsYXll
clJlbmRlcmVyQ2FwYWJpbGl0aWVzKCkgY29uc3Q7CkBAIC03Nyw3ICs3Nyw2IEBAIHB1YmxpYzoK
ICAgICBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdw
b3J0U2l6ZTsgfQogICAgIHZvaWQgc2V0Wm9vbUFuaW1hdG9yU2NhbGUoZG91YmxlKTsKIAotICAg
IGNvbnN0IENDU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgeyByZXR1cm4gbV9zZXR0aW5nczsg
fQogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IENDTGF5ZXJUcmVlSG9zdEltcGwoY29uc3QgQ0NT
ZXR0aW5ncyYpOwogICAgIGludCBtX3NvdXJjZUZyYW1lTnVtYmVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQbHVnaW5MYXllcklt
cGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQ
bHVnaW5MYXllckltcGwuY3BwCmluZGV4IDAyNTAwMTA1ZGMzYWNjYzBlYzA5MGRmYzNhOGYzYWM3
YTJiZDQ4MjMuLjBmMTY1YmUyYTFmOTk4ZDg5ZDJiYjU4NzIyNjRiZDIzZGVkMDJiOWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUGx1
Z2luTGF5ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1BsdWdpbkxheWVySW1wbC5jcHAKQEAgLTQ2LDExICs0Niw2IEBAIENDUGx1
Z2luTGF5ZXJJbXBsOjp+Q0NQbHVnaW5MYXllckltcGwoKQogewogfQogCi1jb25zdCBjaGFyKiBD
Q1BsdWdpbkxheWVySW1wbDo6bGF5ZXJUeXBlQXNTdHJpbmcoKSBjb25zdAotewotICAgIHJldHVy
biAiUGx1Z2luTGF5ZXIiOwotfQotCiB2b2lkIENDUGx1Z2luTGF5ZXJJbXBsOjpkcmF3KCkKIHsK
ICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQbHVnaW5MYXllckltcGwu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUGx1Z2lu
TGF5ZXJJbXBsLmgKaW5kZXggY2FjYzIyZjRiNDMxMWExYTRhMDU4YjRmZjUwMWE1N2JiMjZjMGVk
ZS4uOWI0YzUzNjcyM2QyYWIxNmRkZDQyOTA2M2RjN2ZmNWI0ZjFkMTI3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQbHVnaW5MYXll
ckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1BsdWdpbkxheWVySW1wbC5oCkBAIC01MSw4ICs1MSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgQ0NQbHVnaW5MYXllckltcGwoaW50KTsKIAotICAgIHZpcnR1YWwgY29u
c3QgY2hhciogbGF5ZXJUeXBlQXNTdHJpbmcoKSBjb25zdDsKLQogICAgIHVuc2lnbmVkIG1fdGV4
dHVyZUlkOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NQcm94eS5oCmluZGV4IGY1ZTQxOGIwZTgzZGM2N2FjMmMzNmU2ZmE1
YWJhOWE2OWRmYWM2YzIuLmFhZTY2OTQ0YjA1MzdkYjZiMzA1N2Y1YjExZGM1ZWIwZWU2MTNkOTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1Byb3h5LmgKQEAgLTU4LDExICs1OCwxMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNTdGFydGVkKCkgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCBib29sIGluaXRpYWxp
emVMYXllclJlbmRlcmVyKCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpbml0aWFsaXplTGF5ZXJS
ZW5kZXJlcihDQ0xheWVyVHJlZUhvc3QqIG93bmVySGFjaykgPSAwOwogCiAgICAgdmlydHVhbCBj
b25zdCBMYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzJiBsYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVz
KCkgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHNldE5lZWRzQ29tbWl0KCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0NvbW1pdEFuZFJlZHJhdygpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0TmVlZHNSZWRyYXcoKSA9IDA7CiAKQEAgLTgxLDYgKzgwLDkgQEAgcHVibGlj
OgogICAgIC8vIFRlbXBvcmFyeSBoYWNrIHdoaWxlIHJlbmRlcl93aWRnZXQgc3RpbGwgZG9lcyBz
Y2hlZHVsaW5nIGZvciBDQ0xheWVyVHJlZUhvc3RNYWluVGhyZWFkSQogICAgIHZpcnR1YWwgR3Jh
cGhpY3NDb250ZXh0M0QqIGNvbnRleHQoKSA9IDA7CiAKKyAgICAvLyBUZW1wb3JhcnkgaGFjayB3
aGlsZSBMYXllckNocm9taXVtcyBob2xkIHJlZmVyZW5jZXMgdG8gTGF5ZXJSZW5kZXJlckNocm9t
aXVtcworICAgIHZpcnR1YWwgVGV4dHVyZU1hbmFnZXIqIGNvbnRlbnRzVGV4dHVyZU1hbmFnZXIo
KSA9IDA7CisKIHByb3RlY3RlZDoKICAgICBDQ1Byb3h5KCkgeyB9CiAgICAgZnJpZW5kIGNsYXNz
IFNjb3BlZFNldEltcGxUaHJlYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHku
Y3BwCmluZGV4IDJkMjdkNzI5YjM4MjExMzlmMDgxN2NlZGI0N2VhZWVmYWYzODU4ODcuLjBhZjMz
MGRiZDhmNDY3ZmRhZmQ3ZGE0MDM2ZjA0YmM4NDUxNjNkZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
U2luZ2xlVGhyZWFkUHJveHkuY3BwCkBAIC0xMjEsOSArMTIxLDggQEAgYm9vbCBDQ1NpbmdsZVRo
cmVhZFByb3h5Ojppc1N0YXJ0ZWQoKSBjb25zdAogICAgIHJldHVybiBtX2xheWVyVHJlZUhvc3RJ
bXBsOwogfQogCi1ib29sIENDU2luZ2xlVGhyZWFkUHJveHk6OmluaXRpYWxpemVMYXllclJlbmRl
cmVyKCkKK2Jvb2wgQ0NTaW5nbGVUaHJlYWRQcm94eTo6aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIo
Q0NMYXllclRyZWVIb3N0KiBvd25lckhhY2spCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBtX2xheWVyVHJlZUhv
c3QtPmNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKTsKICAgICBpZiAoIWNvbnRleHQpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMSw3ICsxMzAsNyBAQCBib29sIENDU2luZ2xlVGhy
ZWFkUHJveHk6OmluaXRpYWxpemVMYXllclJlbmRlcmVyKCkKIAogICAgIHsKICAgICAgICAgU2Nv
cGVkU2V0SW1wbFRocmVhZCBpbXBsOwotICAgICAgICByZXR1cm4gbV9sYXllclRyZWVIb3N0SW1w
bC0+aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIoY29udGV4dCk7CisgICAgICAgIHJldHVybiBtX2xh
eWVyVHJlZUhvc3RJbXBsLT5pbml0aWFsaXplTGF5ZXJSZW5kZXJlcihvd25lckhhY2ssIGNvbnRl
eHQpOwogICAgIH0KIH0KIApAQCAtMTQ3LDE4ICsxNDYsNiBAQCB2b2lkIENDU2luZ2xlVGhyZWFk
UHJveHk6Omxvc2VDb21wb3NpdG9yQ29udGV4dChpbnQgbnVtVGltZXMpCiAgICAgbV90aW1lc1Jl
Y3JlYXRlU2hvdWxkRmFpbCA9IG51bVRpbWVzIC0gMTsKIH0KIAotdm9pZCBDQ1NpbmdsZVRocmVh
ZFByb3h5OjpzZXROZWVkc0NvbW1pdCgpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
LSAgICAvLyBDb21taXQgaW1tZWRpYXRlbHkKLSAgICB7Ci0gICAgICAgIFNjb3BlZFNldEltcGxU
aHJlYWQgaW1wbDsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0SW1wbC0+YmVnaW5Db21taXQoKTsK
LSAgICAgICAgbV9sYXllclRyZWVIb3N0LT5jb21taXRUbyhtX2xheWVyVHJlZUhvc3RJbXBsLmdl
dCgpKTsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0SW1wbC0+Y29tbWl0Q29tcGxldGUoKTsKLSAg
ICB9Ci19Ci0KIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXRBbmRSZWRy
YXcoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC0xODMsMTIgKzE3MCwxNiBA
QCB2b2lkIENDU2luZ2xlVGhyZWFkUHJveHk6OnN0b3AoKQogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAgICAgewogICAgICAgICBTY29wZWRTZXRJbXBsVGhyZWFkIGltcGw7Ci0gICAgICAg
IG1fbGF5ZXJUcmVlSG9zdC0+ZGVsZXRlQ29udGVudHNUZXh0dXJlcyhtX2xheWVyVHJlZUhvc3RJ
bXBsLT5jb250ZXh0KCkpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3RJbXBsLmNsZWFyKCk7CiAg
ICAgfQogICAgIG1fbGF5ZXJUcmVlSG9zdCA9IDA7CiB9CiAKK1RleHR1cmVNYW5hZ2VyKiBDQ1Np
bmdsZVRocmVhZFByb3h5Ojpjb250ZW50c1RleHR1cmVNYW5hZ2VyKCkKK3sKKyAgICByZXR1cm4g
bV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT5jb250ZW50c1RleHR1cmVNYW5h
Z2VyKCk7Cit9CisKICNpZiAhVVNFKFRIUkVBREVEX0NPTVBPU0lUSU5HKQogLy8gQ2FsbGVkIGJ5
IHRoZSBsZWdhY3kgc2NoZWR1bGluZyBwYXRoIChlLmcuIHdoZXJlIHJlbmRlcl93aWRnZXQgZG9l
cyB0aGUgc2NoZWR1bGluZykKIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6Y29tcG9zaXRlSW1t
ZWRpYXRlbHkoKQpAQCAtMjA2LDcgKzE5Nyw2IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6
Y29tcG9zaXRlSW1tZWRpYXRlbHkoKQogCiBib29sIENDU2luZ2xlVGhyZWFkUHJveHk6OnJlY3Jl
YXRlQ29udGV4dElmTmVlZGVkKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAg
IGlmICghbV9ncmFwaGljc0NvbnRleHRMb3N0KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQ7CkBAIC0yMTcsNyArMjA3LDcgQEAgYm9v
bCBDQ1NpbmdsZVRocmVhZFByb3h5OjpyZWNyZWF0ZUNvbnRleHRJZk5lZWRlZCgpCiAKICAgICBp
ZiAoY29udGV4dCkgewogICAgICAgICBBU1NFUlQoY29udGV4dC0+aGFzT25lUmVmKCkpOwotICAg
ICAgICBpZiAobV9sYXllclRyZWVIb3N0SW1wbC0+aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIoY29u
dGV4dCkpIHsKKyAgICAgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdEltcGwtPmluaXRpYWxpemVMYXll
clJlbmRlcmVyKDAsIGNvbnRleHQpKSB7CiAgICAgICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmRp
ZFJlY3JlYXRlR3JhcGhpY3NDb250ZXh0KHRydWUpOwogICAgICAgICAgICAgbV9ncmFwaGljc0Nv
bnRleHRMb3N0ID0gZmFsc2U7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhy
ZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDU2luZ2xlVGhyZWFkUHJveHkuaAppbmRleCBiYmJlNWY1OTA3NjJiZTE4YTI4NzRhNTg4ZWM0
MzcwYTY1OTdmOTAwLi43NjViODU5Zjk1MTUwMjZlOWQ3ODc1MjFkNDk5ZDUxYTk4MGY4Zjk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1NpbmdsZVRocmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oCkBAIC00NCwxNSArNDQsMTcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQoKTsKICAgICB2
aXJ0dWFsIHZvaWQgZmluaXNoQWxsUmVuZGVyaW5nKCk7CiAgICAgdmlydHVhbCBib29sIGlzU3Rh
cnRlZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpbml0aWFsaXplTGF5ZXJSZW5kZXJlcigp
OworICAgIHZpcnR1YWwgYm9vbCBpbml0aWFsaXplTGF5ZXJSZW5kZXJlcihDQ0xheWVyVHJlZUhv
c3QqIG93bmVySGFjayk7CiAgICAgdmlydHVhbCBjb25zdCBMYXllclJlbmRlcmVyQ2FwYWJpbGl0
aWVzJiBsYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lk
IGxvc2VDb21wb3NpdG9yQ29udGV4dChpbnQgbnVtVGltZXMpOwotICAgIHZpcnR1YWwgdm9pZCBz
ZXROZWVkc0NvbW1pdCgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0NvbW1pdEFuZFJlZHJh
dygpOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1JlZHJhdygpOwogICAgIHZpcnR1YWwgdm9p
ZCBzdGFydCgpOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCk7CiAKKyAgICAvLyBUZW1wb3Jhcnkg
aGFjayB3aGlsZSBMYXllckNocm9taXVtcyBob2xkIHJlZmVyZW5jZXMgdG8gTGF5ZXJSZW5kZXJl
ckNocm9taXVtcworICAgIHZpcnR1YWwgVGV4dHVyZU1hbmFnZXIqIGNvbnRlbnRzVGV4dHVyZU1h
bmFnZXIoKTsKKwogICAgIC8vIFNwZWNpYWwgY2FzZSBmdW5jdGlvbnMuCiAjaWYgIVVTRShUSFJF
QURFRF9DT01QT1NJVElORykKICAgICB2b2lkIGNvbXBvc2l0ZUltbWVkaWF0ZWx5KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IDEyYjViMzYxYTdiNWMyNmUwZDAwNmI3NzNmMDA4
NjcwOTVjODczNjcuLjFhODgzODRmZWEyYmFmNWI0NjMyMmYwNGJlOGFiYmM5OTE1YTk5NDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC05OCw3ICs5OCw3IEBAIGJvb2wgQ0NUaHJl
YWRQcm94eTo6aXNTdGFydGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9sYXllclRyZWVIb3N0SW1w
bDsKIH0KIAotYm9vbCBDQ1RocmVhZFByb3h5Ojppbml0aWFsaXplTGF5ZXJSZW5kZXJlcigpCiti
b29sIENDVGhyZWFkUHJveHk6OmluaXRpYWxpemVMYXllclJlbmRlcmVyKENDTGF5ZXJUcmVlSG9z
dCogb3duZXJIYWNrKQogewogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCA9
IG1fbGF5ZXJUcmVlSG9zdC0+Y3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpOwogICAgIGlm
ICghY29udGV4dCkKQEAgLTExNSw3ICsxMTUsOCBAQCBib29sIENDVGhyZWFkUHJveHk6OmluaXRp
YWxpemVMYXllclJlbmRlcmVyKCkKICAgICBib29sIGluaXRpYWxpemVTdWNjZWVkZWQ7CiAgICAg
TGF5ZXJSZW5kZXJlckNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7CiAgICAgY2NUaHJlYWQtPnBv
c3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6aW5pdGlhbGl6
ZUxheWVyUmVuZGVyZXJPbkNDVGhyZWFkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQWxsb3dDcm9zc1RocmVhZEFjY2Vzcyhjb250ZXh0UHRyKSwgQWxsb3dDcm9z
c1RocmVhZEFjY2VzcygmY29tcGxldGlvbiksIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJmluaXRp
YWxpemVTdWNjZWVkZWQpLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKCZjYXBhYmlsaXRpZXMpKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGxvd0Nyb3NzVGhy
ZWFkQWNjZXNzKG93bmVySGFjayksIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoY29udGV4dFB0ciks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGxvd0Nyb3NzVGhy
ZWFkQWNjZXNzKCZjb21wbGV0aW9uKSwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcygmaW5pdGlhbGl6
ZVN1Y2NlZWRlZCksIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNhcGFiaWxpdGllcykpKTsKICAg
ICBjb21wbGV0aW9uLndhaXQoKTsKIAogICAgIGlmIChpbml0aWFsaXplU3VjY2VlZGVkKQpAQCAt
MTMzLDE3ICsxMzQsNiBAQCB2b2lkIENDVGhyZWFkUHJveHk6Omxvc2VDb21wb3NpdG9yQ29udGV4
dChpbnQgbnVtVGltZXMpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgQ0NU
aHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXQoKQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7Ci0gICAgaWYgKG1fY29tbWl0UGVuZGluZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgVFJB
Q0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OnNldE5lZWRzQ29tbWl0IiwgdGhpcywgMCk7Ci0gICAg
bV9jb21taXRQZW5kaW5nID0gdHJ1ZTsKLSAgICBjY1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NU
aHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5OjpzZXROZWVkc0NvbW1pdE9uQ0NUaHJlYWQp
KTsKLX0KLQogdm9pZCBDQ1RocmVhZFByb3h5OjpzZXROZWVkc0NvbW1pdEFuZFJlZHJhdygpCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTE4Miw2ICsxNzIsMTIgQEAgdm9pZCBD
Q1RocmVhZFByb3h5OjpzdG9wKCkKICAgICBtX2xheWVyVHJlZUhvc3QgPSAwOwogfQogCitUZXh0
dXJlTWFuYWdlciogQ0NUaHJlYWRQcm94eTo6Y29udGVudHNUZXh0dXJlTWFuYWdlcigpCit7Cisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgQ0NUaHJl
YWRQcm94eTo6YmVnaW5GcmFtZUFuZENvbW1pdE9uQ0NUaHJlYWQoKQogewogICAgIFRSQUNFX0VW
RU5UKCJDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQW5kQ29tbWl0T25DQ1RocmVhZCIsIHRoaXMs
IDApOwpAQCAtMjMzLDE1ICsyMjksNiBAQCB2b2lkIENDVGhyZWFkUHJveHk6OmRyYXdMYXllcnNP
bkNDVGhyZWFkKCkKICAgICAgICAgbV9sYXllclRyZWVIb3N0SW1wbC0+ZHJhd0xheWVycygpOwog
fQogCi12b2lkIENDVGhyZWFkUHJveHk6OnNldE5lZWRzQ29tbWl0T25DQ1RocmVhZCgpCi17Ci0g
ICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OnNldE5lZWRzQ29tbWl0T25DQ1RocmVhZCIs
IHRoaXMsIDApOwotICAgIEFTU0VSVChpc0ltcGxUaHJlYWQoKSk7Ci0gICAgQVNTRVJUKG1fbGF5
ZXJUcmVlSG9zdEltcGwpOwotICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkLCBzZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDE3Ci0gICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci19Ci0KIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXRB
bmRSZWRyYXdPbkNDVGhyZWFkKCkKIHsKICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94eTo6
c2V0TmVlZHNDb21taXRBbmRSZWRyYXdPbkNDVGhyZWFkIiwgdGhpcywgMCk7CkBAIC0yNjQsMTIg
KzI1MSwxMiBAQCB2b2lkIENDVGhyZWFkUHJveHk6OmluaXRpYWxpemVJbXBsT25DQ1RocmVhZChD
Q0NvbXBsZXRpb25FdmVudCogY29tcGxldGlvbikKICAgICBjb21wbGV0aW9uLT5zaWduYWwoKTsK
IH0KIAotdm9pZCBDQ1RocmVhZFByb3h5Ojppbml0aWFsaXplTGF5ZXJSZW5kZXJlck9uQ0NUaHJl
YWQoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHRQdHIsIENDQ29tcGxldGlvbkV2ZW50KiBjb21w
bGV0aW9uLCBib29sKiBpbml0aWFsaXplU3VjY2VlZGVkLCBMYXllclJlbmRlcmVyQ2FwYWJpbGl0
aWVzKiBjYXBhYmlsaXRpZXMpCit2b2lkIENDVGhyZWFkUHJveHk6OmluaXRpYWxpemVMYXllclJl
bmRlcmVyT25DQ1RocmVhZChDQ0xheWVyVHJlZUhvc3QqIG93bmVySGFjaywgR3JhcGhpY3NDb250
ZXh0M0QqIGNvbnRleHRQdHIsIENDQ29tcGxldGlvbkV2ZW50KiBjb21wbGV0aW9uLCBib29sKiBp
bml0aWFsaXplU3VjY2VlZGVkLCBMYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKiBjYXBhYmlsaXRp
ZXMpCiB7CiAgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OmluaXRpYWxpemVMYXllclJl
bmRlcmVyT25DQ1RocmVhZCIsIHRoaXMsIDApOwogICAgIEFTU0VSVChpc0ltcGxUaHJlYWQoKSk7
CiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0KGFkb3B0UmVmKGNvbnRleHRQ
dHIpKTsKLSAgICAqaW5pdGlhbGl6ZVN1Y2NlZWRlZCA9IG1fbGF5ZXJUcmVlSG9zdEltcGwtPmlu
aXRpYWxpemVMYXllclJlbmRlcmVyKGNvbnRleHQpOworICAgICppbml0aWFsaXplU3VjY2VlZGVk
ID0gbV9sYXllclRyZWVIb3N0SW1wbC0+aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIob3duZXJIYWNr
LCBjb250ZXh0KTsKICAgICBpZiAoKmluaXRpYWxpemVTdWNjZWVkZWQpCiAgICAgICAgICpjYXBh
YmlsaXRpZXMgPSBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVz
KCk7CiAgICAgY29tcGxldGlvbi0+c2lnbmFsKCk7CkBAIC0yNzksNyArMjY2LDYgQEAgdm9pZCBD
Q1RocmVhZFByb3h5OjpsYXllclRyZWVIb3N0Q2xvc2VkT25DQ1RocmVhZChDQ0NvbXBsZXRpb25F
dmVudCogY29tcGxldGlvbikKIHsKICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94eTo6bGF5
ZXJUcmVlSG9zdENsb3NlZE9uQ0NUaHJlYWQiLCB0aGlzLCAwKTsKICAgICBBU1NFUlQoaXNJbXBs
VGhyZWFkKCkpOwotICAgIG1fbGF5ZXJUcmVlSG9zdC0+ZGVsZXRlQ29udGVudHNUZXh0dXJlcyht
X2xheWVyVHJlZUhvc3RJbXBsLT5jb250ZXh0KCkpOwogICAgIG1fbGF5ZXJUcmVlSG9zdEltcGwu
Y2xlYXIoKTsKICAgICBjb21wbGV0aW9uLT5zaWduYWwoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJv
eHkuaAppbmRleCAyNDY3NzI0MGNhYWE2OTEyNjc2ZDdlZGZlMGZhYjJjYzIxMjYyZWMyLi4yNGUx
ZmUxM2U3MTk3NDc2NDZjY2Y1NTJiMzhmYThiM2IzYmMwNTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQ
cm94eS5oCkBAIC00NSwxNSArNDUsMTcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgR3JhcGhpY3ND
b250ZXh0M0QqIGNvbnRleHQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoQWxsUmVuZGVyaW5n
KCk7CiAgICAgdmlydHVhbCBib29sIGlzU3RhcnRlZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9v
bCBpbml0aWFsaXplTGF5ZXJSZW5kZXJlcigpOworICAgIHZpcnR1YWwgYm9vbCBpbml0aWFsaXpl
TGF5ZXJSZW5kZXJlcihDQ0xheWVyVHJlZUhvc3QqIG93bmVySGFjayk7CiAgICAgdmlydHVhbCBj
b25zdCBMYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzJiBsYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVz
KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGxvc2VDb21wb3NpdG9yQ29udGV4dChpbnQgbnVt
VGltZXMpOwotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0NvbW1pdCgpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXROZWVkc0NvbW1pdEFuZFJlZHJhdygpOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVk
c1JlZHJhdygpOwogICAgIHZpcnR1YWwgdm9pZCBzdGFydCgpOwogICAgIHZpcnR1YWwgdm9pZCBz
dG9wKCk7CiAKKyAgICAvLyBUZW1wb3JhcnkgaGFjayB3aGlsZSBMYXllckNocm9taXVtcyBob2xk
IHJlZmVyZW5jZXMgdG8gTGF5ZXJSZW5kZXJlckNocm9taXVtcworICAgIHZpcnR1YWwgVGV4dHVy
ZU1hbmFnZXIqIGNvbnRlbnRzVGV4dHVyZU1hbmFnZXIoKTsKKwogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBDQ1RocmVhZFByb3h5KENDTGF5ZXJUcmVlSG9zdCopOwogCkBAIC02NSw4ICs2Nyw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBjb21taXRPbkNDVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50Kik7
CiAgICAgdm9pZCBkcmF3TGF5ZXJzT25DQ1RocmVhZCgpOwogICAgIHZvaWQgaW5pdGlhbGl6ZUlt
cGxPbkNDVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50Kik7Ci0gICAgdm9pZCBpbml0aWFsaXplTGF5
ZXJSZW5kZXJlck9uQ0NUaHJlYWQoR3JhcGhpY3NDb250ZXh0M0QqLCBDQ0NvbXBsZXRpb25FdmVu
dCosIGJvb2wqIGluaXRpYWxpemVTdWNjZWVkZWQsIExheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMq
KTsKLSAgICB2b2lkIHNldE5lZWRzQ29tbWl0T25DQ1RocmVhZCgpOworICAgIHZvaWQgaW5pdGlh
bGl6ZUxheWVyUmVuZGVyZXJPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdCosIEdyYXBoaWNzQ29u
dGV4dDNEKiwgQ0NDb21wbGV0aW9uRXZlbnQqLCBib29sKiBpbml0aWFsaXplU3VjY2VlZGVkLCBM
YXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKik7CiAgICAgdm9pZCBzZXROZWVkc0NvbW1pdEFuZFJl
ZHJhd09uQ0NUaHJlYWQoKTsKICAgICB2b2lkIHNldE5lZWRzUmVkcmF3T25DQ1RocmVhZCgpOwog
ICAgIHZvaWQgbGF5ZXJUcmVlSG9zdENsb3NlZE9uQ0NUaHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGlsZWRMYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKaW5kZXggZDQ2NmM4NzlhMWM2NGRi
Y2I1ZDA1MDQyODNiODExMmJiMDU3NzBmOC4uMWE3NTgzNDRlYzU4MzM3OWU2YjY0ZGYwMTE0ZjEw
MmIwNDkwMjk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKQEAgLTYwLDEx
ICs2MCw2IEBAIENDVGlsZWRMYXllckltcGw6On5DQ1RpbGVkTGF5ZXJJbXBsKCkKIHsKIH0KIAot
Y29uc3QgY2hhciogQ0NUaWxlZExheWVySW1wbDo6bGF5ZXJUeXBlQXNTdHJpbmcoKSBjb25zdAot
ewotICAgIHJldHVybiAiVGlsZWRMYXllciI7Ci19Ci0KIHZvaWQgQ0NUaWxlZExheWVySW1wbDo6
YmluZENvbnRlbnRzVGV4dHVyZSgpCiB7CiAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IHZh
bGlkIGZvciBzaW5nbGUgdGV4dHVyZSBsYXllcnMsIGUuZy4gbWFza3MuCkBAIC04MCw5ICs3NSw4
IEBAIHZvaWQgQ0NUaWxlZExheWVySW1wbDo6YmluZENvbnRlbnRzVGV4dHVyZSgpCiAKIHZvaWQg
Q0NUaWxlZExheWVySW1wbDo6ZHVtcExheWVyUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgaW50
IGluZGVudCkgY29uc3QKIHsKLSAgICBDQ0xheWVySW1wbDo6ZHVtcExheWVyUHJvcGVydGllcyh0
cywgaW5kZW50KTsKICAgICB3cml0ZUluZGVudCh0cywgaW5kZW50KTsKLSAgICB0cyA8PCAic2tp
cHNEcmF3OiAiIDw8ICghbV90aWxlciB8fCBtX3NraXBzRHJhdykgPDwgIlxuIjsKKyAgICBDQ0xh
eWVySW1wbDo6ZHVtcExheWVyUHJvcGVydGllcyh0cywgaW5kZW50KTsKIH0KIAogRHJhd2FibGVU
aWxlKiBDQ1RpbGVkTGF5ZXJJbXBsOjp0aWxlQXQoaW50IGksIGludCBqKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxl
ZExheWVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaWxlZExheWVySW1wbC5oCmluZGV4IDhiNmU4YzUwNzYzMTRlYjdiZWU3N2Q5YTMyOTE4
ZWI0MDJkN2UyZWMuLmNlZWM1ZjI1MzM5YzJmY2VkMzE1MjhlZGY4OTFhMzYyOWI2MzIwMjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGlsZWRMYXllckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmgKQEAgLTY3LDggKzY3LDYgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBDQ1RpbGVkTGF5ZXJJbXBsKGludCBpZCk7CiAKLSAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIqIGxheWVyVHlwZUFzU3RyaW5nKCkgY29uc3Q7Ci0KICAgICAvLyBE
cmF3IGFsbCB0aWxlcyB0aGF0IGludGVyc2VjdCB3aXRoIHRoZSBjb250ZW50IHJlY3QuCiAgICAg
dm9pZCBkcmF3KExheWVyUmVuZGVyZXJDaHJvbWl1bSosIGNvbnN0IEludFJlY3QmIGNvbnRlbnRS
ZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0IG9wYWNpdHkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Zp
ZGVvTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCmluZGV4IGQxNjkxNGQxODlhYzJiNDRiMzMxNjQz
OTk3OWQ3YTI2ODMwZjkwYzcuLjI5M2RiNDJkMTA0ZDA2MjgxNTdhNTk4OGYyY2MxZWE1YTA3YzQ0
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVmlkZW9MYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCkBAIC02OSwxMSArNjksNiBA
QCBDQ1ZpZGVvTGF5ZXJJbXBsOjp+Q0NWaWRlb0xheWVySW1wbCgpCiAgICAgY2xlYW51cFJlc291
cmNlcygpOwogfQogCi1jb25zdCBjaGFyKiBDQ1ZpZGVvTGF5ZXJJbXBsOjpsYXllclR5cGVBc1N0
cmluZygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICJWaWRlb0xheWVyIjsKLX0KLQogdm9pZCBDQ1Zp
ZGVvTGF5ZXJJbXBsOjpzZXRUZXh0dXJlKHNpemVfdCBpbmRleCwgUGxhdGZvcm0zRE9iamVjdCB0
ZXh0dXJlSWQsIGNvbnN0IEludFNpemUmIHNpemUsIGNvbnN0IEludFNpemUmIHZpc2libGVTaXpl
KQogewogICAgIEFTU0VSVChpbmRleCA8IDMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5o
CmluZGV4IGI2YzExYzJkOTcwNzM2YzM2ZjZjYWU2YTkxODg4MGZiZWRmNjMyMDUuLmJkMTYzNzZi
YjVmNDcyNjA5ZWM0MTBlMGRlZjMyOTc1NzY3ZGYwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5
ZXJJbXBsLmgKQEAgLTU4LDggKzU4LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBDQ1ZpZGVvTGF5ZXJJbXBsKGludCk7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGxheWVy
VHlwZUFzU3RyaW5nKCkgY29uc3Q7Ci0KICAgICBzdHJ1Y3QgVGV4dHVyZSB7CiAgICAgICAgIFBs
YXRmb3JtM0RPYmplY3QgaWQ7CiAgICAgICAgIEludFNpemUgc2l6ZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>