<?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>186288</bug_id>
          
          <creation_ts>2018-06-04 15:36:21 -0700</creation_ts>
          <short_desc>Selection color is dark when using Safari in dark mode</short_desc>
          <delta_ts>2018-06-04 19:04:29 -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>Layout and Rendering</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=186296</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          <cc>bdakin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fujii</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1429929</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2018-06-04 15:36:21 -0700</bug_when>
    <thetext>The selection color should be light, since Safari does not use system appearance for web content.

&lt;rdar://problem/38438625&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429934</commentid>
    <comment_count>1</comment_count>
      <attachid>341926</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2018-06-04 15:46:37 -0700</bug_when>
    <thetext>Created attachment 341926
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429944</commentid>
    <comment_count>2</comment_count>
      <attachid>341931</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2018-06-04 15:54:51 -0700</bug_when>
    <thetext>Created attachment 341931
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429955</commentid>
    <comment_count>3</comment_count>
      <attachid>341931</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2018-06-04 16:22:39 -0700</bug_when>
    <thetext>Comment on attachment 341931
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429959</commentid>
    <comment_count>4</comment_count>
      <attachid>341931</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-04 16:38:31 -0700</bug_when>
    <thetext>Comment on attachment 341931
Patch

Clearing flags on attachment: 341931

Committed r232486: &lt;https://trac.webkit.org/changeset/232486&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429960</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-04 16:38:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429992</commentid>
    <comment_count>6</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-06-04 19:04:04 -0700</bug_when>
    <thetext>Windows ports can&apos;t compile.
Filed Bug 186296</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341926</attachid>
            <date>2018-06-04 15:46:37 -0700</date>
            <delta_ts>2018-06-04 15:54:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186288-20180604154637.patch</filename>
            <type>text/plain</type>
            <size>34328</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFhMjYzMmY0NzM4ZGEw
ZTE4ZTRjZTY3MzkzNjFlMmEwN2ZhZDM3YS4uOTg1ZTViODhjNWY0YTI1ZTZmOTI4Yjk5MDYzZWM0
N2VjYWI3Y2E5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDE4LTA2LTA0ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBTZWxlY3Rpb24gY29s
b3IgaXMgZGFyayB3aGVuIHVzaW5nIFNhZmFyaSBpbiBkYXJrIG1vZGUuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjI4OAorICAgICAgICByZGFy
Oi8vcHJvYmxlbS8zODQzODYyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFBhc3MgU3R5bGVDb2xvcjo6T3B0aW9ucyB0byBhbGwgb2YgdGhlIHNlbGVj
dGlvbiBjb2xvciBmdW5jdGlvbnMuCisgICAgICAgIFJlbW92ZWQgc3VwcG9ydHNTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3JzKCkgZnJvbSBSZW5kZXJUaGVtZU1hYywKKyAgICAgICAgdG8gZ2V0IHRo
ZSBkZWZhdWx0IG9mIHRydWUsIHNpbmNlIHRoZSBmb3Jncm91bmQgY29sb3JzIGluIGRhcmsgbW9k
ZQorICAgICAgICBjYW4gYmUgZGlmZmVyZW50IG5vdy4gVXNlIG5ldyBzZW1hbnRpYyBjb2xvciBt
ZXRob2RzIG9uIE5TQ29sb3IuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzZWxlY3Rpb25Db2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnBhaW50SXRlbUZvcmVncm91bmQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6cGFpbnRJdGVtQmFja2dyb3VuZCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lOjphY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OmluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmluYWN0
aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjppbmFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZVNl
bGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZv
cmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxh
dGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBs
YXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGxhdGZv
cm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtSW5h
Y3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1B
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZv
cmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lR3Rr
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJ
T1M6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5h
Y3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Ig
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3Rp
dmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBsYXRm
b3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVXaW46OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lV2luOjpwbGF0Zm9ybUluYWN0aXZlU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lV2luOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1l
V2luLmg6CisKIDIwMTgtMDUtMzEgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBPcGVuR0wgZGlzcGxheSBtYXNrIHRvIFdlYlBhZ2UgY3JlYXRpb24g
cGFyYW1ldGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApp
bmRleCAzMTMzY2E2ZmIwMjVkN2I4NjI4Nzk4OTBkZjdiYzc1MjQ0ZDYyYzUwLi41OTgzYjBkYWQ5
M2E2ODE3MmM4MjAzZWY1NmRmNDQwYTI3MTU2MTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC0xMzcyLDggKzEzNzIsOCBAQCBDb2xvciBSZW5kZXJF
bGVtZW50OjpzZWxlY3Rpb25Db2xvcihDU1NQcm9wZXJ0eUlEIGNvbG9yUHJvcGVydHkpIGNvbnN0
CiAgICAgfQogCiAgICAgaWYgKGZyYW1lKCkuc2VsZWN0aW9uKCkuaXNGb2N1c2VkQW5kQWN0aXZl
KCkpCi0gICAgICAgIHJldHVybiB0aGVtZSgpLmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cigpOwotICAgIHJldHVybiB0aGVtZSgpLmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KCk7CisgICAgICAgIHJldHVybiB0aGVtZSgpLmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihkb2N1bWVudCgpLnN0eWxlQ29sb3JPcHRpb25zKCkpOworICAgIHJldHVybiB0aGVtZSgpLmlu
YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKGRvY3VtZW50KCkuc3R5bGVDb2xvck9wdGlv
bnMoKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gUmVuZGVyRWxlbWVudDo6
c2VsZWN0aW9uUHNldWRvU3R5bGUoKSBjb25zdApAQCAtMTQxNCw4ICsxNDE0LDggQEAgQ29sb3Ig
UmVuZGVyRWxlbWVudDo6c2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKICAgICAgICAg
cmV0dXJuIHBzZXVkb1N0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3JXaXRoQ29sb3JGaWx0ZXIo
Q1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLmJsZW5kV2l0aFdoaXRlKCk7CiAKICAgICBpZiAo
ZnJhbWUoKS5zZWxlY3Rpb24oKS5pc0ZvY3VzZWRBbmRBY3RpdmUoKSkKLSAgICAgICAgcmV0dXJu
IHRoZW1lKCkuYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7Ci0gICAgcmV0dXJuIHRo
ZW1lKCkuaW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKTsKKyAgICAgICAgcmV0dXJu
IHRoZW1lKCkuYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGRvY3VtZW50KCkuc3R5bGVD
b2xvck9wdGlvbnMoKSk7CisgICAgcmV0dXJuIHRoZW1lKCkuaW5hY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygpKTsKIH0KIAogYm9vbCBS
ZW5kZXJFbGVtZW50OjpnZXRMZWFkaW5nQ29ybmVyKEZsb2F0UG9pbnQmIHBvaW50LCBib29sJiBp
bnNpZGVGaXhlZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmNwcAppbmRleCBiYjAxZDZiZWUwNDU0MzRjNzEzOTE2MDFmOWQ2ZjlkZjhkMjFmNTg2Li40YTMx
MjAyODYzN2I3MTA3ZmI0YjBiYTc1NWYzMGNkYjI5MmJmZDY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCkBAIC00MjUsMTAgKzQyNSwxMCBAQCB2b2lkIFJl
bmRlckxpc3RCb3g6OnBhaW50SXRlbUZvcmVncm91bmQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
bnN0IExheW91dFBvaW50JgogICAgIENvbG9yIHRleHRDb2xvciA9IGl0ZW1TdHlsZS52aXNpdGVk
RGVwZW5kZW50Q29sb3JXaXRoQ29sb3JGaWx0ZXIoQ1NTUHJvcGVydHlDb2xvcik7CiAgICAgaWYg
KGlzT3B0aW9uRWxlbWVudCAmJiBkb3duY2FzdDxIVE1MT3B0aW9uRWxlbWVudD4oKmxpc3RJdGVt
RWxlbWVudCkuc2VsZWN0ZWQoKSkgewogICAgICAgICBpZiAoZnJhbWUoKS5zZWxlY3Rpb24oKS5p
c0ZvY3VzZWRBbmRBY3RpdmUoKSAmJiBkb2N1bWVudCgpLmZvY3VzZWRFbGVtZW50KCkgPT0gJnNl
bGVjdEVsZW1lbnQoKSkKLSAgICAgICAgICAgIHRleHRDb2xvciA9IHRoZW1lKCkuYWN0aXZlTGlz
dEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpOworICAgICAgICAgICAgdGV4dENvbG9yID0g
dGhlbWUoKS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKGRvY3VtZW50KCku
c3R5bGVDb2xvck9wdGlvbnMoKSk7CiAgICAgICAgIC8vIEhvbm9yIHRoZSBmb3JlZ3JvdW5kIGNv
bG9yIGZvciBkaXNhYmxlZCBpdGVtcwogICAgICAgICBlbHNlIGlmICghbGlzdEl0ZW1FbGVtZW50
LT5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKSAmJiAhc2VsZWN0RWxlbWVudCgpLmlzRGlzYWJsZWRG
b3JtQ29udHJvbCgpKQotICAgICAgICAgICAgdGV4dENvbG9yID0gdGhlbWUoKS5pbmFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsKKyAgICAgICAgICAgIHRleHRDb2xvciA9
IHRoZW1lKCkuaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKGRvY3VtZW50
KCkuc3R5bGVDb2xvck9wdGlvbnMoKSk7CiAgICAgfQogCiAgICAgcGFpbnRJbmZvLmNvbnRleHQo
KS5zZXRGaWxsQ29sb3IodGV4dENvbG9yKTsKQEAgLTQ1OCw3ICs0NTgsNyBAQCB2b2lkIFJlbmRl
ckxpc3RCb3g6OnBhaW50SXRlbUJhY2tncm91bmQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0
IExheW91dFBvaW50JgogICAgIENvbG9yIGJhY2tDb2xvcjsKICAgICBpZiAoaXM8SFRNTE9wdGlv
bkVsZW1lbnQ+KCpsaXN0SXRlbUVsZW1lbnQpICYmIGRvd25jYXN0PEhUTUxPcHRpb25FbGVtZW50
PigqbGlzdEl0ZW1FbGVtZW50KS5zZWxlY3RlZCgpKSB7CiAgICAgICAgIGlmIChmcmFtZSgpLnNl
bGVjdGlvbigpLmlzRm9jdXNlZEFuZEFjdGl2ZSgpICYmIGRvY3VtZW50KCkuZm9jdXNlZEVsZW1l
bnQoKSA9PSAmc2VsZWN0RWxlbWVudCgpKQotICAgICAgICAgICAgYmFja0NvbG9yID0gdGhlbWUo
KS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7CisgICAgICAgICAgICBi
YWNrQ29sb3IgPSB0aGVtZSgpLmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
ZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygpKTsKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgYmFja0NvbG9yID0gdGhlbWUoKS5pbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygpKTsKICAgICB9IGVsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4IGQ2N2UyN2EzNDIwOWM1NTNl
NGM0MWYwZmYxMGExZDNmOWQwZWRiNDcuLjA5ODhhYmJiNTkzYTMwZjc2YjEyNDc2NmExODNkOTM2
ZTA3NTgyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAt
NTc5LDM4ICs1NzksMzggQEAgTGF5b3V0UG9pbnQgUmVuZGVyVGhlbWU6OnZvbHVtZVNsaWRlck9m
ZnNldEZyb21NdXRlQnV0dG9uKGNvbnN0IFJlbmRlckJveCYgbXV0ZUIKIAogI2VuZGlmCiAKLUNv
bG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBpZiAoIW1fYWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKLSAgICAgICAgbV9hY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgPSBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcigpLmJsZW5kV2l0aFdoaXRlKCk7CisgICAgICAgIG1fYWN0aXZlU2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yID0gcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Iob3B0
aW9ucykuYmxlbmRXaXRoV2hpdGUoKTsKICAgICByZXR1cm4gbV9hY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcigpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CiB7CiAgICAgaWYgKCFtX2luYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yLmlz
VmFsaWQoKSkKLSAgICAgICAgbV9pbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciA9IHBs
YXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKS5ibGVuZFdpdGhXaGl0ZSgp
OworICAgICAgICBtX2luYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yID0gcGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihvcHRpb25zKS5ibGVuZFdpdGhXaGl0ZSgp
OwogICAgIHJldHVybiBtX2luYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOwogfQogCi1D
b2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QK
K0NvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2Fj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvci5pc1ZhbGlkKCkgJiYgc3VwcG9ydHNTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3JzKCkpCi0gICAgICAgIG1fYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yID0gcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsKKyAgICAg
ICAgbV9hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgPSBwbGF0Zm9ybUFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcihvcHRpb25zKTsKICAgICByZXR1cm4gbV9hY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2luYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yLmlzVmFsaWQoKSAmJiBzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoKSkKLSAg
ICAgICAgbV9pbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciA9IHBsYXRmb3JtSW5hY3Rp
dmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsKKyAgICAgICAgbV9pbmFjdGl2ZVNlbGVjdGlv
bkZvcmVncm91bmRDb2xvciA9IHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3Iob3B0aW9ucyk7CiAgICAgcmV0dXJuIG1faW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25z
KSBjb25zdAogewogICAgIGlmICghbV9hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yLmlzVmFsaWQoKSkKLSAgICAgICAgbV9hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yID0gcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7
CisgICAgICAgIG1fYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciA9IHBsYXRm
b3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihvcHRpb25zKTsKICAgICBy
ZXR1cm4gbV9hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOwogfQogCkBAIC02
MjEsNjMgKzYyMSw2MyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOgogICAgIHJldHVybiBtX2lu
YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29s
b3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgaWYgKCFt
X2FjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IuaXNWYWxpZCgpICYmIHN1cHBv
cnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoKSkKLSAgICAgICAgbV9hY3RpdmVM
aXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yID0gcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKCk7CisgICAgICAgIG1fYWN0aXZlTGlzdEJveFNlbGVjdGlv
bkZvcmVncm91bmRDb2xvciA9IHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcihvcHRpb25zKTsKICAgICByZXR1cm4gbV9hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2luYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkZvcmVncm91bmRDb2xvci5pc1ZhbGlkKCkgJiYgc3VwcG9ydHNMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9ycygpKQotICAgICAgICBtX2luYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZv
cmVncm91bmRDb2xvciA9IHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKCk7CisgICAgICAgIG1faW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yID0gcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Iob3B0
aW9ucyk7CiAgICAgcmV0dXJuIG1faW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29u
c3QKIHsKICAgICAvLyBVc2UgYSBibHVlIGNvbG9yIGJ5IGRlZmF1bHQgaWYgdGhlIHBsYXRmb3Jt
IHRoZW1lIGRvZXNuJ3QgZGVmaW5lIGFueXRoaW5nLgogICAgIHJldHVybiBDb2xvcigwLCAwLCAy
NTUpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29u
c3QKIHsKICAgICAvLyBVc2UgYSB3aGl0ZSBjb2xvciBieSBkZWZhdWx0IGlmIHRoZSBwbGF0Zm9y
bSB0aGVtZSBkb2Vzbid0IGRlZmluZSBhbnl0aGluZy4KICAgICByZXR1cm4gQ29sb3I6OndoaXRl
OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcigpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0CiB7CiAgICAgLy8gVXNlIGEgZ3JleSBjb2xvciBieSBkZWZhdWx0IGlmIHRoZSBwbGF0Zm9y
bSB0aGVtZSBkb2Vzbid0IGRlZmluZSBhbnl0aGluZy4KICAgICAvLyBUaGlzIGNvbG9yIG1hdGNo
ZXMgRmlyZWZveCdzIGluYWN0aXZlIGNvbG9yLgogICAgIHJldHVybiBDb2xvcigxNzYsIDE3Niwg
MTc2KTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3Rp
dmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdAogewogICAgIC8vIFVzZSBhIGJsYWNrIGNvbG9yIGJ5IGRlZmF1bHQuCiAgICAgcmV0
dXJuIENvbG9yOjpibGFjazsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVt
ZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIHJldHVybiBwbGF0
Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpOworICAgIHJldHVybiBwbGF0Zm9y
bUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihvcHRpb25zKTsKIH0KIAotQ29sb3IgUmVu
ZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigp
IGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBj
b25zdAogewotICAgIHJldHVybiBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cigpOworICAgIHJldHVybiBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihv
cHRpb25zKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKIHsKLSAgICByZXR1cm4gcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcigpOworICAgIHJldHVybiBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKG9wdGlvbnMpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6
OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIHJldHVybiBwbGF0
Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCk7CisgICAgcmV0dXJuIHBsYXRm
b3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Iob3B0aW9ucyk7CiB9CiAKIGludCBS
ZW5kZXJUaGVtZTo6YmFzZWxpbmVQb3NpdGlvbihjb25zdCBSZW5kZXJCb3gmIGJveCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggN2RhYWVjYzY0NmE5Y2Ni
NTdiZGJkMDY1ZTBlYzIxYjY4NTM5MjVhZS4uNGFkM2I1OTkxNTRiYjU1OWNmZGFlZjMxZjNmOWQx
NGJmMGYxMWYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTEz
MywxNiArMTMzLDE2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNEYXRhTGlz
dFVJKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAv
LyBUZXh0IHNlbGVjdGlvbiBjb2xvcnMuCi0gICAgQ29sb3IgYWN0aXZlU2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKCkgY29uc3Q7Ci0gICAgQ29sb3IgaW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoKSBjb25zdDsKLSAgICBDb2xvciBhY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
KSBjb25zdDsKLSAgICBDb2xvciBpbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNv
bnN0OworICAgIENvbG9yIGFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGluYWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Cisg
ICAgQ29sb3IgYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3IgaW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKIAogICAgIC8v
IExpc3QgYm94IHNlbGVjdGlvbiBjb2xvcnMKLSAgICBDb2xvciBhY3RpdmVMaXN0Qm94U2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Q7Ci0gICAgQ29sb3IgYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0OworICAgIENvbG9yIGFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dDsKKyAgICBDb2xvciBhY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CiAgICAgQ29sb3IgaW5hY3RpdmVMaXN0
Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3Q7Ci0gICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKCkgY29uc3Q7CisgICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CiAKICAgICAvLyBI
aWdobGlnaHRpbmcgY29sb3JzIGZvciBUZXh0TWF0Y2hlcy4KICAgICB2aXJ0dWFsIENvbG9yIHBs
YXRmb3JtQWN0aXZlVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKCkgY29uc3Q7CkBAIC0yNTUsMTUg
KzI1NSwxNSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNhY2hlZFN5c3Rl
bUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlEIHN5c3RlbUZvbnRJRCwgRm9udENhc2NhZGVEZXNj
cmlwdGlvbiYpIGNvbnN0ID0gMDsKIAogICAgIC8vIFRoZSBwbGF0Zm9ybSBzZWxlY3Rpb24gY29s
b3IuCi0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcigpIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcigpIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3Rp
dmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHBs
YXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9y
bUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0Owor
ICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwogCi0gICAgdmlydHVhbCBD
b2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwogICAgIHZp
cnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2aXJ0dWFsIENv
bG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0
OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoKSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlz
dEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dDsKIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcAppbmRleCA2ZjM1MTlkMDdk
NWQxMTU4OGRiNTA4MDUyNzVmNjRlMjY1MWVjODFiLi4wMWFiMjY1YTAzN2ZmYzEzNTkwYjhmZGJh
YWU0NmFmYjIyNmMxZjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUd0ay5jcHAKQEAgLTE3MjksMjcgKzE3MjksMjcgQEAgU2Vjb25kcyBSZW5kZXJUaGVtZUd0azo6
Y2FyZXRCbGlua0ludGVydmFsKCkgY29uc3QKICAgICByZXR1cm4gNTAwX3VzICogdGltZTsKIH0K
IAotQ29sb3IgUmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lR3RrOjpwbGF0Zm9ybUFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
CiB7CiAgICAgcmV0dXJuIHN0eWxlQ29sb3IoRW50cnlTZWxlY3Rpb24sIHN0YXRpY19jYXN0PEd0
a1N0YXRlRmxhZ3M+KEdUS19TVEFURV9GTEFHX1NFTEVDVEVEIHwgR1RLX1NUQVRFX0ZMQUdfRk9D
VVNFRCksIFN0eWxlQ29sb3JCYWNrZ3JvdW5kKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVHdGs6
OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3Ig
UmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBzdHls
ZUNvbG9yKEVudHJ5U2VsZWN0aW9uLCBHVEtfU1RBVEVfRkxBR19TRUxFQ1RFRCwgU3R5bGVDb2xv
ckJhY2tncm91bmQpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1BY3RpdmVT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVHdGs6OnBs
YXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gc3R5bGVDb2xvcihFbnRyeVNlbGVjdGlv
biwgc3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4oR1RLX1NUQVRFX0ZMQUdfU0VMRUNURUQgfCBH
VEtfU1RBVEVfRkxBR19GT0NVU0VEKSwgU3R5bGVDb2xvckZvcmVncm91bmQpOwogfQogCi1Db2xv
ciBSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cigpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CiB7
CiAgICAgcmV0dXJuIHN0eWxlQ29sb3IoRW50cnlTZWxlY3Rpb24sIEdUS19TVEFURV9GTEFHX1NF
TEVDVEVELCBTdHlsZUNvbG9yRm9yZWdyb3VuZCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lR3Rr
OjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CiB7CiAgICAg
cmV0dXJuIHN0eWxlQ29sb3IoTGlzdEJveCwgc3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4oR1RL
X1NUQVRFX0ZMQUdfU0VMRUNURUQgfCBHVEtfU1RBVEVfRkxBR19GT0NVU0VEKSwgU3R5bGVDb2xv
ckJhY2tncm91bmQpOwogfQpAQCAtMTc1OSwxMiArMTc1OSwxMiBAQCBDb2xvciBSZW5kZXJUaGVt
ZUd0azo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PAogICAgIHJldHVybiBzdHlsZUNvbG9yKExpc3RCb3gsIEdUS19TVEFURV9GTEFHX1NF
TEVDVEVELCBTdHlsZUNvbG9yQmFja2dyb3VuZCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lR3Rr
OjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CiB7CiAgICAg
cmV0dXJuIHN0eWxlQ29sb3IoTGlzdEJveCwgc3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4oR1RL
X1NUQVRFX0ZMQUdfU0VMRUNURUQgfCBHVEtfU1RBVEVfRkxBR19GT0NVU0VEKSwgU3R5bGVDb2xv
ckZvcmVncm91bmQpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1JbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWVHdGs6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gc3R5bGVD
b2xvcihMaXN0Qm94LCBHVEtfU1RBVEVfRkxBR19TRUxFQ1RFRCwgU3R5bGVDb2xvckZvcmVncm91
bmQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
R3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuaAppbmRleCBh
ZWY4ZmVkNzI2NDc0MzE3NjFhYjUzYTI5MWFhMDM1NjliNWQ5MDliLi4zZGRmMGJmM2RkODhhM2Fm
ZDYxZThhYjdkNDE2ZTNhN2FjM2Y5OTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVHdGsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVHdGsuaApAQCAtNzAsMTYgKzcwLDE2IEBAIHB1YmxpYzoKICAgICBpbnQgYmFzZWxp
bmVQb3NpdGlvbihjb25zdCBSZW5kZXJCb3gmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIFRo
ZSBwbGF0Zm9ybSBzZWxlY3Rpb24gY29sb3IuCi0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCBvdmVycmlkZTsKLSAgICBDb2xvciBwbGF0Zm9y
bUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
Q29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdCBvdmVy
cmlkZTsKLSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlk
ZTsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3Ig
cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBMaXN0IEJveCBzZWxlY3Rpb24gY29sb3IKLSAgICBD
b2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25z
dCBvdmVycmlkZTsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoKSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dCBvdmVycmlkZTsKICAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJy
aWRlOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIFNlY29uZHMgY2FyZXRCbGlua0ludGVydmFsKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgK
aW5kZXggN2I3Y2VlZjc0NDhlOTIwNWJkMTg3MGE0NGMzMGZhOTg0ZTQxZGQxZS4uMjA5ZDI4MTM3
OGQyMmM0ZjYwZGZkMWVmOWZkOGUzYjI2MjJhMDlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLmgKQEAgLTEwOSw4ICsxMDksOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCBhZGp1c3RTZWFyY2hGaWVsZFN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYs
IGNvbnN0IEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHBhaW50U2VhcmNoRmll
bGREZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcigpIGNvbnN0IG92ZXJyaWRlOwotICAgIENvbG9yIHBsYXRmb3JtSW5h
Y3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xv
ciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdCBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgQ29sb3Ig
cGxhdGZvcm1UYXBIaWdobGlnaHRDb2xvcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDB4NEQx
QTFBMUE7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQppbmRl
eCAyZWZiZDBjNWRiZTAxNDA2ZmFhZTNmNjg2Y2Y1YTkyMWE0MGM4ZDVjLi5lZjQ5ZGFmMWM5NThi
MGVmZDQyYjNlZTNlNWZhYzljMjQ4MTRlODBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xMTAxLDEyICsxMTAxLDEyIEBAIGJvb2wgUmVuZGVyVGhl
bWVJT1M6OnBhaW50RmlsZVVwbG9hZEljb25EZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3Qm
LCBjb25zdCBSCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6
cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWVJT1M6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gQ29sb3I6OnRy
YW5zcGFyZW50OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUlPUzo6cGxh
dGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIENvbG9yOjp0cmFuc3BhcmVudDsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKaW5kZXggNTFmY2RjMmZk
M2MwN2FiNDA0YzM4YmMxY2VmMDU3ZTI4N2Q2NTEyNy4uMDU3NTliMzJiOWU0NmYyMDQ2OTM1NGEy
YWJiMTJmOTY4ZjJmM2QyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLmgKQEAgLTUzLDEyICs1MywxNCBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQ29udHJvbFN0
eWxlZChjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEJvcmRlckRhdGEmLCBjb25zdCBGaWxsTGF5
ZXImLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yKSBjb25zdCBmaW5hbDsKIAotICAgIENv
bG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QgZmluYWw7
Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNv
bnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcigpIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRm
b3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5h
bDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxh
dGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4p
IGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFs
OwogICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29s
b3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25z
dCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwog
ICAgIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdCBmaW5hbDsKIAogICAgIFNjcm9sbGJhckNvbnRyb2xTaXplIHNjcm9sbGJh
ckNvbnRyb2xTaXplRm9yUGFydChDb250cm9sUGFydCkgZmluYWwgeyByZXR1cm4gU21hbGxTY3Jv
bGxiYXI7IH0KQEAgLTExNCw4ICsxMTYsNiBAQCBwcml2YXRlOgogICAgIFN0cmluZyBpbWFnZUNv
bnRyb2xzU3R5bGVTaGVldCgpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKLSAgICBib29sIHN1cHBv
cnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNl
OyB9Ci0KICAgICBib29sIHBhaW50VGV4dEZpZWxkKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0
IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOwogICAgIHZvaWQgYWRqdXN0VGV4
dEZpZWxkU3R5bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCop
IGNvbnN0IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW0KaW5kZXggN2I4YTc5ZjYyMmFmZDQ3MmRiOWViMThjMmUxZDY2MzdhNTUwYjA0Ny4uMDAxZjg3
NDNiNzBjNTRkZjg0MGFiYjBkYmQyN2UzZWY4N2YyMWQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMjkxLDI5ICsyOTEsNzIgQEAgU3RyaW5nIFJl
bmRlclRoZW1lTWFjOjppbWFnZUNvbnRyb2xzU3R5bGVTaGVldCgpIGNvbnN0CiAKICNlbmRpZgog
Ci1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25z
KSBjb25zdAogeworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJh
bmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFy
YW5jZSksIG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGVmYXVsdEFw
cGVhcmFuY2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBzZWxlY3Rl
ZFRleHRCYWNrZ3JvdW5kQ29sb3JdKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRm
b3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1B
cHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9w
dGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpLCBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6
Ok9wdGlvbnM6OlVzZURlZmF1bHRBcHBlYXJhbmNlKSk7CisgICAgcmV0dXJuIGNvbG9yRnJvbU5T
Q29sb3IoW05TQ29sb3IgdW5lbXBoYXNpemVkU2VsZWN0ZWRUZXh0QmFja2dyb3VuZENvbG9yXSk7
CisjZWxzZQogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHNlY29uZGFyeVNl
bGVjdGVkQ29udHJvbENvbG9yXSk7CisjZW5kaWYKK30KKworQ29sb3IgUmVuZGVyVGhlbWVNYWM6
OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAoreworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFw
cGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0
aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSksIG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6
T3B0aW9uczo6VXNlRGVmYXVsdEFwcGVhcmFuY2UpKTsKKyAgICByZXR1cm4gY29sb3JGcm9tTlND
b2xvcihbTlNDb2xvciBzZWxlY3RlZFRleHRDb2xvcl0pOworfQorCitDb2xvciBSZW5kZXJUaGVt
ZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK3sKKyNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMAorICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVh
cmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9u
czo6VXNlU3lzdGVtQXBwZWFyYW5jZSksIG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0
aW9uczo6VXNlRGVmYXVsdEFwcGVhcmFuY2UpKTsKKyAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xv
cihbTlNDb2xvciB1bmVtcGhhc2l6ZWRTZWxlY3RlZFRleHRDb2xvcl0pOworI2Vsc2UKKyAgICBy
ZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciB0ZXh0Q29sb3JdKTsKKyNlbmRpZgogfQog
Ci1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDE0MDAKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBw
ZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFw
cGVhcmFuY2UpLCBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURlZmF1
bHRBcHBlYXJhbmNlKSk7CisgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3Igc2Vs
ZWN0ZWRDb250ZW50QmFja2dyb3VuZENvbG9yXSk7CisjZWxzZQogICAgIHJldHVybiBjb2xvckZy
b21OU0NvbG9yKFtOU0NvbG9yIGFsdGVybmF0ZVNlbGVjdGVkQ29udHJvbENvbG9yXSk7CisjZW5k
aWYKK30KKworQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRp
b25zKSBjb25zdAoreworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
NDAwCisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0
aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKSwg
b3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEZWZhdWx0QXBwZWFyYW5j
ZSkpOworICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHVuZW1waGFzaXplZFNl
bGVjdGVkQ29udGVudEJhY2tncm91bmRDb2xvcl0pOworI2Vsc2UKKyAgICByZXR1cm4gY29sb3JG
cm9tTlNDb2xvcihbTlNDb2xvciBzZWNvbmRhcnlTZWxlY3RlZENvbnRyb2xDb2xvcl0pOworI2Vu
ZGlmCiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRm
b3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICByZXR1cm4gQ29sb3I6OndoaXRl
OworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlv
bnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSksIG9w
dGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGVmYXVsdEFwcGVhcmFuY2Up
KTsKKyAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBhbHRlcm5hdGVTZWxlY3Rl
ZENvbnRyb2xUZXh0Q29sb3JdKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3Jt
SW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKK0NvbG9yIFJl
bmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAg
ICByZXR1cm4gQ29sb3I6OmJsYWNrOworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxNDAwCisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVh
cmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBl
YXJhbmNlKSwgb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEZWZhdWx0
QXBwZWFyYW5jZSkpOworICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHVuZW1w
aGFzaXplZFNlbGVjdGVkVGV4dENvbG9yXSk7CisjZWxzZQorICAgIHJldHVybiBjb2xvckZyb21O
U0NvbG9yKFtOU0NvbG9yIHNlbGVjdGVkQ29udHJvbFRleHRDb2xvcl0pOworI2VuZGlmCiB9CiAK
IENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdApAQCAtMzIzLDE0ICszNjYsNiBAQCBD
b2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4gb3B0aQogICAgIHJldHVybiBzeXN0ZW1Db2xvcihDU1NWYWx1ZVdl
YmtpdEZvY3VzUmluZ0NvbG9yLCBvcHRpb25zKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6
OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAotewotICAgIGNvbnN0IGJvb2wg
dXNlU3lzdGVtQXBwZWFyYW5jZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9u
czo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7Ci0gICAgY29uc3QgYm9vbCB1c2VEZWZhdWx0QXBwZWFy
YW5jZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGVmYXVsdEFw
cGVhcmFuY2UpOwotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJh
bmNlKHVzZVN5c3RlbUFwcGVhcmFuY2UsIHVzZURlZmF1bHRBcHBlYXJhbmNlKTsKLSAgICByZXR1
cm4gcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpOwotfQotCiBzdGF0
aWMgRm9udFNlbGVjdGlvblZhbHVlIHRvRm9udFdlaWdodChOU0ludGVnZXIgYXBwS2l0Rm9udFdl
aWdodCkKIHsKICAgICBBU1NFUlQoYXBwS2l0Rm9udFdlaWdodCA+IDAgJiYgYXBwS2l0Rm9udFdl
aWdodCA8IDE1KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3Bw
CmluZGV4IGUxNDQ0ODBjN2NhY2U3MGY1NjZkN2UwMjM5ZmIzYTg5ZmI0ZGQ3MGMuLmYxNGEzOGUx
NDdiODMwMmRkMGIzYzE2ODllOTZhMzRhZDE3MjgyNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcApAQCAtMjkzLDI1ICsyOTMsMjUgQEAgYm9vbCBSZW5k
ZXJUaGVtZVdpbjo6c3VwcG9ydHNIb3Zlcihjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0CiAgICAg
cmV0dXJuIGhhdmVUaGVtZTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtQWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lV2lu
OjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgQ09MT1JSRUYgY29sb3IgPSBHZXRTeXNDb2xv
cihDT0xPUl9ISUdITElHSFQpOwogICAgIHJldHVybiBDb2xvcihHZXRSVmFsdWUoY29sb3IpLCBH
ZXRHVmFsdWUoY29sb3IpLCBHZXRCVmFsdWUoY29sb3IpKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhl
bWVXaW46OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIFRo
aXMgY29sb3IgbWF0Y2hlcyBGaXJlZm94LgogICAgIHJldHVybiBDb2xvcigxNzYsIDE3NiwgMTc2
KTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lV2luOjpwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4p
IGNvbnN0CiB7CiAgICAgQ09MT1JSRUYgY29sb3IgPSBHZXRTeXNDb2xvcihDT0xPUl9ISUdITElH
SFRURVhUKTsKICAgICByZXR1cm4gQ29sb3IoR2V0UlZhbHVlKGNvbG9yKSwgR2V0R1ZhbHVlKGNv
bG9yKSwgR2V0QlZhbHVlKGNvbG9yKSk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lV2luOjpwbGF0
Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKK0NvbG9yIFJlbmRl
clRoZW1lV2luOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gcGxhdGZvcm1B
Y3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lV2luLmgKaW5kZXggZDNmMWJlMWYxZGFjYmEyODUxYjg4OGM5YzFiODQ1
NDFjNjVmOWZmMC4uZmVlMjRiNmQ5NDhiYTQ2M2NjNDIzMjQ4MTM1NWZkNjMwMWM2NjUyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmgKQEAgLTU0LDEwICs1NCwx
MCBAQCBwdWJsaWM6CiAgICAgLy8gQSBtZXRob2QgYXNraW5nIGlmIHRoZSB0aGVtZSdzIGNvbnRy
b2xzIGFjdHVhbGx5IGNhcmUgYWJvdXQgcmVkcmF3aW5nIHdoZW4gaG92ZXJlZC4KICAgICBib29s
IHN1cHBvcnRzSG92ZXIoY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBvdmVycmlkZTsKIAotICAg
IENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cigpIGNvbnN0IG92ZXJyaWRlOwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2
ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBs
YXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgQ29sb3Igc3lz
dGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dCBvdmVycmlkZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341931</attachid>
            <date>2018-06-04 15:54:51 -0700</date>
            <delta_ts>2018-06-04 16:38:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186288-20180604155450.patch</filename>
            <type>text/plain</type>
            <size>34468</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFhMjYzMmY0NzM4ZGEw
ZTE4ZTRjZTY3MzkzNjFlMmEwN2ZhZDM3YS4uOTg1ZTViODhjNWY0YTI1ZTZmOTI4Yjk5MDYzZWM0
N2VjYWI3Y2E5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDE4LTA2LTA0ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBTZWxlY3Rpb24gY29s
b3IgaXMgZGFyayB3aGVuIHVzaW5nIFNhZmFyaSBpbiBkYXJrIG1vZGUuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjI4OAorICAgICAgICByZGFy
Oi8vcHJvYmxlbS8zODQzODYyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFBhc3MgU3R5bGVDb2xvcjo6T3B0aW9ucyB0byBhbGwgb2YgdGhlIHNlbGVj
dGlvbiBjb2xvciBmdW5jdGlvbnMuCisgICAgICAgIFJlbW92ZWQgc3VwcG9ydHNTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3JzKCkgZnJvbSBSZW5kZXJUaGVtZU1hYywKKyAgICAgICAgdG8gZ2V0IHRo
ZSBkZWZhdWx0IG9mIHRydWUsIHNpbmNlIHRoZSBmb3Jncm91bmQgY29sb3JzIGluIGRhcmsgbW9k
ZQorICAgICAgICBjYW4gYmUgZGlmZmVyZW50IG5vdy4gVXNlIG5ldyBzZW1hbnRpYyBjb2xvciBt
ZXRob2RzIG9uIE5TQ29sb3IuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzZWxlY3Rpb25Db2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnBhaW50SXRlbUZvcmVncm91bmQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6cGFpbnRJdGVtQmFja2dyb3VuZCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lOjphY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OmluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmluYWN0
aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjppbmFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZVNl
bGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZv
cmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxh
dGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBs
YXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGxhdGZv
cm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtSW5h
Y3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1B
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZv
cmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lR3Rr
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJ
T1M6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5h
Y3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Ig
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3Rp
dmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBsYXRm
b3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVXaW46OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lV2luOjpwbGF0Zm9ybUluYWN0aXZlU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lV2luOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1l
V2luLmg6CisKIDIwMTgtMDUtMzEgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBPcGVuR0wgZGlzcGxheSBtYXNrIHRvIFdlYlBhZ2UgY3JlYXRpb24g
cGFyYW1ldGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApp
bmRleCAzMTMzY2E2ZmIwMjVkN2I4NjI4Nzk4OTBkZjdiYzc1MjQ0ZDYyYzUwLi41OTgzYjBkYWQ5
M2E2ODE3MmM4MjAzZWY1NmRmNDQwYTI3MTU2MTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC0xMzcyLDggKzEzNzIsOCBAQCBDb2xvciBSZW5kZXJF
bGVtZW50OjpzZWxlY3Rpb25Db2xvcihDU1NQcm9wZXJ0eUlEIGNvbG9yUHJvcGVydHkpIGNvbnN0
CiAgICAgfQogCiAgICAgaWYgKGZyYW1lKCkuc2VsZWN0aW9uKCkuaXNGb2N1c2VkQW5kQWN0aXZl
KCkpCi0gICAgICAgIHJldHVybiB0aGVtZSgpLmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cigpOwotICAgIHJldHVybiB0aGVtZSgpLmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KCk7CisgICAgICAgIHJldHVybiB0aGVtZSgpLmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihkb2N1bWVudCgpLnN0eWxlQ29sb3JPcHRpb25zKCkpOworICAgIHJldHVybiB0aGVtZSgpLmlu
YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKGRvY3VtZW50KCkuc3R5bGVDb2xvck9wdGlv
bnMoKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gUmVuZGVyRWxlbWVudDo6
c2VsZWN0aW9uUHNldWRvU3R5bGUoKSBjb25zdApAQCAtMTQxNCw4ICsxNDE0LDggQEAgQ29sb3Ig
UmVuZGVyRWxlbWVudDo6c2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKICAgICAgICAg
cmV0dXJuIHBzZXVkb1N0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3JXaXRoQ29sb3JGaWx0ZXIo
Q1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLmJsZW5kV2l0aFdoaXRlKCk7CiAKICAgICBpZiAo
ZnJhbWUoKS5zZWxlY3Rpb24oKS5pc0ZvY3VzZWRBbmRBY3RpdmUoKSkKLSAgICAgICAgcmV0dXJu
IHRoZW1lKCkuYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7Ci0gICAgcmV0dXJuIHRo
ZW1lKCkuaW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKTsKKyAgICAgICAgcmV0dXJu
IHRoZW1lKCkuYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGRvY3VtZW50KCkuc3R5bGVD
b2xvck9wdGlvbnMoKSk7CisgICAgcmV0dXJuIHRoZW1lKCkuaW5hY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygpKTsKIH0KIAogYm9vbCBS
ZW5kZXJFbGVtZW50OjpnZXRMZWFkaW5nQ29ybmVyKEZsb2F0UG9pbnQmIHBvaW50LCBib29sJiBp
bnNpZGVGaXhlZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmNwcAppbmRleCBiYjAxZDZiZWUwNDU0MzRjNzEzOTE2MDFmOWQ2ZjlkZjhkMjFmNTg2Li40YTMx
MjAyODYzN2I3MTA3ZmI0YjBiYTc1NWYzMGNkYjI5MmJmZDY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCkBAIC00MjUsMTAgKzQyNSwxMCBAQCB2b2lkIFJl
bmRlckxpc3RCb3g6OnBhaW50SXRlbUZvcmVncm91bmQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
bnN0IExheW91dFBvaW50JgogICAgIENvbG9yIHRleHRDb2xvciA9IGl0ZW1TdHlsZS52aXNpdGVk
RGVwZW5kZW50Q29sb3JXaXRoQ29sb3JGaWx0ZXIoQ1NTUHJvcGVydHlDb2xvcik7CiAgICAgaWYg
KGlzT3B0aW9uRWxlbWVudCAmJiBkb3duY2FzdDxIVE1MT3B0aW9uRWxlbWVudD4oKmxpc3RJdGVt
RWxlbWVudCkuc2VsZWN0ZWQoKSkgewogICAgICAgICBpZiAoZnJhbWUoKS5zZWxlY3Rpb24oKS5p
c0ZvY3VzZWRBbmRBY3RpdmUoKSAmJiBkb2N1bWVudCgpLmZvY3VzZWRFbGVtZW50KCkgPT0gJnNl
bGVjdEVsZW1lbnQoKSkKLSAgICAgICAgICAgIHRleHRDb2xvciA9IHRoZW1lKCkuYWN0aXZlTGlz
dEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpOworICAgICAgICAgICAgdGV4dENvbG9yID0g
dGhlbWUoKS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKGRvY3VtZW50KCku
c3R5bGVDb2xvck9wdGlvbnMoKSk7CiAgICAgICAgIC8vIEhvbm9yIHRoZSBmb3JlZ3JvdW5kIGNv
bG9yIGZvciBkaXNhYmxlZCBpdGVtcwogICAgICAgICBlbHNlIGlmICghbGlzdEl0ZW1FbGVtZW50
LT5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKSAmJiAhc2VsZWN0RWxlbWVudCgpLmlzRGlzYWJsZWRG
b3JtQ29udHJvbCgpKQotICAgICAgICAgICAgdGV4dENvbG9yID0gdGhlbWUoKS5pbmFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsKKyAgICAgICAgICAgIHRleHRDb2xvciA9
IHRoZW1lKCkuaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKGRvY3VtZW50
KCkuc3R5bGVDb2xvck9wdGlvbnMoKSk7CiAgICAgfQogCiAgICAgcGFpbnRJbmZvLmNvbnRleHQo
KS5zZXRGaWxsQ29sb3IodGV4dENvbG9yKTsKQEAgLTQ1OCw3ICs0NTgsNyBAQCB2b2lkIFJlbmRl
ckxpc3RCb3g6OnBhaW50SXRlbUJhY2tncm91bmQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0
IExheW91dFBvaW50JgogICAgIENvbG9yIGJhY2tDb2xvcjsKICAgICBpZiAoaXM8SFRNTE9wdGlv
bkVsZW1lbnQ+KCpsaXN0SXRlbUVsZW1lbnQpICYmIGRvd25jYXN0PEhUTUxPcHRpb25FbGVtZW50
PigqbGlzdEl0ZW1FbGVtZW50KS5zZWxlY3RlZCgpKSB7CiAgICAgICAgIGlmIChmcmFtZSgpLnNl
bGVjdGlvbigpLmlzRm9jdXNlZEFuZEFjdGl2ZSgpICYmIGRvY3VtZW50KCkuZm9jdXNlZEVsZW1l
bnQoKSA9PSAmc2VsZWN0RWxlbWVudCgpKQotICAgICAgICAgICAgYmFja0NvbG9yID0gdGhlbWUo
KS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7CisgICAgICAgICAgICBi
YWNrQ29sb3IgPSB0aGVtZSgpLmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
ZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygpKTsKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgYmFja0NvbG9yID0gdGhlbWUoKS5pbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygpKTsKICAgICB9IGVsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4IGQ2N2UyN2EzNDIwOWM1NTNl
NGM0MWYwZmYxMGExZDNmOWQwZWRiNDcuLjA5ODhhYmJiNTkzYTMwZjc2YjEyNDc2NmExODNkOTM2
ZTA3NTgyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAt
NTc5LDM4ICs1NzksMzggQEAgTGF5b3V0UG9pbnQgUmVuZGVyVGhlbWU6OnZvbHVtZVNsaWRlck9m
ZnNldEZyb21NdXRlQnV0dG9uKGNvbnN0IFJlbmRlckJveCYgbXV0ZUIKIAogI2VuZGlmCiAKLUNv
bG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBpZiAoIW1fYWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKLSAgICAgICAgbV9hY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgPSBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcigpLmJsZW5kV2l0aFdoaXRlKCk7CisgICAgICAgIG1fYWN0aXZlU2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yID0gcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Iob3B0
aW9ucykuYmxlbmRXaXRoV2hpdGUoKTsKICAgICByZXR1cm4gbV9hY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcigpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CiB7CiAgICAgaWYgKCFtX2luYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yLmlz
VmFsaWQoKSkKLSAgICAgICAgbV9pbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciA9IHBs
YXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKS5ibGVuZFdpdGhXaGl0ZSgp
OworICAgICAgICBtX2luYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yID0gcGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihvcHRpb25zKS5ibGVuZFdpdGhXaGl0ZSgp
OwogICAgIHJldHVybiBtX2luYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOwogfQogCi1D
b2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QK
K0NvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2Fj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvci5pc1ZhbGlkKCkgJiYgc3VwcG9ydHNTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3JzKCkpCi0gICAgICAgIG1fYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yID0gcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsKKyAgICAg
ICAgbV9hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgPSBwbGF0Zm9ybUFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcihvcHRpb25zKTsKICAgICByZXR1cm4gbV9hY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2luYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yLmlzVmFsaWQoKSAmJiBzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoKSkKLSAg
ICAgICAgbV9pbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciA9IHBsYXRmb3JtSW5hY3Rp
dmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsKKyAgICAgICAgbV9pbmFjdGl2ZVNlbGVjdGlv
bkZvcmVncm91bmRDb2xvciA9IHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3Iob3B0aW9ucyk7CiAgICAgcmV0dXJuIG1faW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25z
KSBjb25zdAogewogICAgIGlmICghbV9hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yLmlzVmFsaWQoKSkKLSAgICAgICAgbV9hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yID0gcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7
CisgICAgICAgIG1fYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciA9IHBsYXRm
b3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihvcHRpb25zKTsKICAgICBy
ZXR1cm4gbV9hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOwogfQogCkBAIC02
MjEsNjMgKzYyMSw2MyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOgogICAgIHJldHVybiBtX2lu
YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29s
b3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgaWYgKCFt
X2FjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IuaXNWYWxpZCgpICYmIHN1cHBv
cnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoKSkKLSAgICAgICAgbV9hY3RpdmVM
aXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yID0gcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKCk7CisgICAgICAgIG1fYWN0aXZlTGlzdEJveFNlbGVjdGlv
bkZvcmVncm91bmRDb2xvciA9IHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcihvcHRpb25zKTsKICAgICByZXR1cm4gbV9hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2luYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkZvcmVncm91bmRDb2xvci5pc1ZhbGlkKCkgJiYgc3VwcG9ydHNMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9ycygpKQotICAgICAgICBtX2luYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZv
cmVncm91bmRDb2xvciA9IHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKCk7CisgICAgICAgIG1faW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yID0gcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Iob3B0
aW9ucyk7CiAgICAgcmV0dXJuIG1faW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29u
c3QKIHsKICAgICAvLyBVc2UgYSBibHVlIGNvbG9yIGJ5IGRlZmF1bHQgaWYgdGhlIHBsYXRmb3Jt
IHRoZW1lIGRvZXNuJ3QgZGVmaW5lIGFueXRoaW5nLgogICAgIHJldHVybiBDb2xvcigwLCAwLCAy
NTUpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29u
c3QKIHsKICAgICAvLyBVc2UgYSB3aGl0ZSBjb2xvciBieSBkZWZhdWx0IGlmIHRoZSBwbGF0Zm9y
bSB0aGVtZSBkb2Vzbid0IGRlZmluZSBhbnl0aGluZy4KICAgICByZXR1cm4gQ29sb3I6OndoaXRl
OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcigpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0CiB7CiAgICAgLy8gVXNlIGEgZ3JleSBjb2xvciBieSBkZWZhdWx0IGlmIHRoZSBwbGF0Zm9y
bSB0aGVtZSBkb2Vzbid0IGRlZmluZSBhbnl0aGluZy4KICAgICAvLyBUaGlzIGNvbG9yIG1hdGNo
ZXMgRmlyZWZveCdzIGluYWN0aXZlIGNvbG9yLgogICAgIHJldHVybiBDb2xvcigxNzYsIDE3Niwg
MTc2KTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3Rp
dmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdAogewogICAgIC8vIFVzZSBhIGJsYWNrIGNvbG9yIGJ5IGRlZmF1bHQuCiAgICAgcmV0
dXJuIENvbG9yOjpibGFjazsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVt
ZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIHJldHVybiBwbGF0
Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpOworICAgIHJldHVybiBwbGF0Zm9y
bUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihvcHRpb25zKTsKIH0KIAotQ29sb3IgUmVu
ZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigp
IGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBj
b25zdAogewotICAgIHJldHVybiBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cigpOworICAgIHJldHVybiBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihv
cHRpb25zKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKIHsKLSAgICByZXR1cm4gcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcigpOworICAgIHJldHVybiBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKG9wdGlvbnMpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6
OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIHJldHVybiBwbGF0
Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCk7CisgICAgcmV0dXJuIHBsYXRm
b3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Iob3B0aW9ucyk7CiB9CiAKIGludCBS
ZW5kZXJUaGVtZTo6YmFzZWxpbmVQb3NpdGlvbihjb25zdCBSZW5kZXJCb3gmIGJveCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggN2RhYWVjYzY0NmE5Y2Ni
NTdiZGJkMDY1ZTBlYzIxYjY4NTM5MjVhZS4uNGFkM2I1OTkxNTRiYjU1OWNmZGFlZjMxZjNmOWQx
NGJmMGYxMWYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTEz
MywxNiArMTMzLDE2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNEYXRhTGlz
dFVJKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAv
LyBUZXh0IHNlbGVjdGlvbiBjb2xvcnMuCi0gICAgQ29sb3IgYWN0aXZlU2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKCkgY29uc3Q7Ci0gICAgQ29sb3IgaW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoKSBjb25zdDsKLSAgICBDb2xvciBhY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
KSBjb25zdDsKLSAgICBDb2xvciBpbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNv
bnN0OworICAgIENvbG9yIGFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGluYWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Cisg
ICAgQ29sb3IgYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3IgaW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKIAogICAgIC8v
IExpc3QgYm94IHNlbGVjdGlvbiBjb2xvcnMKLSAgICBDb2xvciBhY3RpdmVMaXN0Qm94U2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Q7Ci0gICAgQ29sb3IgYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0OworICAgIENvbG9yIGFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dDsKKyAgICBDb2xvciBhY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CiAgICAgQ29sb3IgaW5hY3RpdmVMaXN0
Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3Q7Ci0gICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKCkgY29uc3Q7CisgICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CiAKICAgICAvLyBI
aWdobGlnaHRpbmcgY29sb3JzIGZvciBUZXh0TWF0Y2hlcy4KICAgICB2aXJ0dWFsIENvbG9yIHBs
YXRmb3JtQWN0aXZlVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKCkgY29uc3Q7CkBAIC0yNTUsMTUg
KzI1NSwxNSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNhY2hlZFN5c3Rl
bUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlEIHN5c3RlbUZvbnRJRCwgRm9udENhc2NhZGVEZXNj
cmlwdGlvbiYpIGNvbnN0ID0gMDsKIAogICAgIC8vIFRoZSBwbGF0Zm9ybSBzZWxlY3Rpb24gY29s
b3IuCi0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcigpIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcigpIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3Rp
dmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHBs
YXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9y
bUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0Owor
ICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwogCi0gICAgdmlydHVhbCBD
b2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwogICAgIHZp
cnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2aXJ0dWFsIENv
bG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0
OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoKSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlz
dEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dDsKIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcAppbmRleCA2ZjM1MTlkMDdk
NWQxMTU4OGRiNTA4MDUyNzVmNjRlMjY1MWVjODFiLi4wMWFiMjY1YTAzN2ZmYzEzNTkwYjhmZGJh
YWU0NmFmYjIyNmMxZjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUd0ay5jcHAKQEAgLTE3MjksMjcgKzE3MjksMjcgQEAgU2Vjb25kcyBSZW5kZXJUaGVtZUd0azo6
Y2FyZXRCbGlua0ludGVydmFsKCkgY29uc3QKICAgICByZXR1cm4gNTAwX3VzICogdGltZTsKIH0K
IAotQ29sb3IgUmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lR3RrOjpwbGF0Zm9ybUFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
CiB7CiAgICAgcmV0dXJuIHN0eWxlQ29sb3IoRW50cnlTZWxlY3Rpb24sIHN0YXRpY19jYXN0PEd0
a1N0YXRlRmxhZ3M+KEdUS19TVEFURV9GTEFHX1NFTEVDVEVEIHwgR1RLX1NUQVRFX0ZMQUdfRk9D
VVNFRCksIFN0eWxlQ29sb3JCYWNrZ3JvdW5kKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVHdGs6
OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3Ig
UmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBzdHls
ZUNvbG9yKEVudHJ5U2VsZWN0aW9uLCBHVEtfU1RBVEVfRkxBR19TRUxFQ1RFRCwgU3R5bGVDb2xv
ckJhY2tncm91bmQpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1BY3RpdmVT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVHdGs6OnBs
YXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gc3R5bGVDb2xvcihFbnRyeVNlbGVjdGlv
biwgc3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4oR1RLX1NUQVRFX0ZMQUdfU0VMRUNURUQgfCBH
VEtfU1RBVEVfRkxBR19GT0NVU0VEKSwgU3R5bGVDb2xvckZvcmVncm91bmQpOwogfQogCi1Db2xv
ciBSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cigpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CiB7
CiAgICAgcmV0dXJuIHN0eWxlQ29sb3IoRW50cnlTZWxlY3Rpb24sIEdUS19TVEFURV9GTEFHX1NF
TEVDVEVELCBTdHlsZUNvbG9yRm9yZWdyb3VuZCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lR3Rr
OjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CiB7CiAgICAg
cmV0dXJuIHN0eWxlQ29sb3IoTGlzdEJveCwgc3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4oR1RL
X1NUQVRFX0ZMQUdfU0VMRUNURUQgfCBHVEtfU1RBVEVfRkxBR19GT0NVU0VEKSwgU3R5bGVDb2xv
ckJhY2tncm91bmQpOwogfQpAQCAtMTc1OSwxMiArMTc1OSwxMiBAQCBDb2xvciBSZW5kZXJUaGVt
ZUd0azo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PAogICAgIHJldHVybiBzdHlsZUNvbG9yKExpc3RCb3gsIEdUS19TVEFURV9GTEFHX1NF
TEVDVEVELCBTdHlsZUNvbG9yQmFja2dyb3VuZCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lR3Rr
OjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CiB7CiAgICAg
cmV0dXJuIHN0eWxlQ29sb3IoTGlzdEJveCwgc3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4oR1RL
X1NUQVRFX0ZMQUdfU0VMRUNURUQgfCBHVEtfU1RBVEVfRkxBR19GT0NVU0VEKSwgU3R5bGVDb2xv
ckZvcmVncm91bmQpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1JbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWVHdGs6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gc3R5bGVD
b2xvcihMaXN0Qm94LCBHVEtfU1RBVEVfRkxBR19TRUxFQ1RFRCwgU3R5bGVDb2xvckZvcmVncm91
bmQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
R3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuaAppbmRleCBh
ZWY4ZmVkNzI2NDc0MzE3NjFhYjUzYTI5MWFhMDM1NjliNWQ5MDliLi4zZGRmMGJmM2RkODhhM2Fm
ZDYxZThhYjdkNDE2ZTNhN2FjM2Y5OTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVHdGsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVHdGsuaApAQCAtNzAsMTYgKzcwLDE2IEBAIHB1YmxpYzoKICAgICBpbnQgYmFzZWxp
bmVQb3NpdGlvbihjb25zdCBSZW5kZXJCb3gmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIFRo
ZSBwbGF0Zm9ybSBzZWxlY3Rpb24gY29sb3IuCi0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCBvdmVycmlkZTsKLSAgICBDb2xvciBwbGF0Zm9y
bUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
Q29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdCBvdmVy
cmlkZTsKLSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlk
ZTsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3Ig
cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBMaXN0IEJveCBzZWxlY3Rpb24gY29sb3IKLSAgICBD
b2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25z
dCBvdmVycmlkZTsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoKSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dCBvdmVycmlkZTsKICAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJy
aWRlOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIFNlY29uZHMgY2FyZXRCbGlua0ludGVydmFsKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgK
aW5kZXggN2I3Y2VlZjc0NDhlOTIwNWJkMTg3MGE0NGMzMGZhOTg0ZTQxZGQxZS4uMjA5ZDI4MTM3
OGQyMmM0ZjYwZGZkMWVmOWZkOGUzYjI2MjJhMDlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLmgKQEAgLTEwOSw4ICsxMDksOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCBhZGp1c3RTZWFyY2hGaWVsZFN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYs
IGNvbnN0IEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHBhaW50U2VhcmNoRmll
bGREZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcigpIGNvbnN0IG92ZXJyaWRlOwotICAgIENvbG9yIHBsYXRmb3JtSW5h
Y3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xv
ciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdCBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgQ29sb3Ig
cGxhdGZvcm1UYXBIaWdobGlnaHRDb2xvcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDB4NEQx
QTFBMUE7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQppbmRl
eCAyZWZiZDBjNWRiZTAxNDA2ZmFhZTNmNjg2Y2Y1YTkyMWE0MGM4ZDVjLi5lZjQ5ZGFmMWM5NThi
MGVmZDQyYjNlZTNlNWZhYzljMjQ4MTRlODBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xMTAxLDEyICsxMTAxLDEyIEBAIGJvb2wgUmVuZGVyVGhl
bWVJT1M6OnBhaW50RmlsZVVwbG9hZEljb25EZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3Qm
LCBjb25zdCBSCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6
cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWVJT1M6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gQ29sb3I6OnRy
YW5zcGFyZW50OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUlPUzo6cGxh
dGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIENvbG9yOjp0cmFuc3BhcmVudDsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKaW5kZXggNTFmY2RjMmZk
M2MwN2FiNDA0YzM4YmMxY2VmMDU3ZTI4N2Q2NTEyNy4uMDU3NTliMzJiOWU0NmYyMDQ2OTM1NGEy
YWJiMTJmOTY4ZjJmM2QyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLmgKQEAgLTUzLDEyICs1MywxNCBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQ29udHJvbFN0
eWxlZChjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEJvcmRlckRhdGEmLCBjb25zdCBGaWxsTGF5
ZXImLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yKSBjb25zdCBmaW5hbDsKIAotICAgIENv
bG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QgZmluYWw7
Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNv
bnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcigpIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRm
b3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5h
bDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxh
dGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4p
IGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFs
OwogICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29s
b3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25z
dCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwog
ICAgIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdCBmaW5hbDsKIAogICAgIFNjcm9sbGJhckNvbnRyb2xTaXplIHNjcm9sbGJh
ckNvbnRyb2xTaXplRm9yUGFydChDb250cm9sUGFydCkgZmluYWwgeyByZXR1cm4gU21hbGxTY3Jv
bGxiYXI7IH0KQEAgLTExNCw4ICsxMTYsNiBAQCBwcml2YXRlOgogICAgIFN0cmluZyBpbWFnZUNv
bnRyb2xzU3R5bGVTaGVldCgpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKLSAgICBib29sIHN1cHBv
cnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNl
OyB9Ci0KICAgICBib29sIHBhaW50VGV4dEZpZWxkKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0
IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOwogICAgIHZvaWQgYWRqdXN0VGV4
dEZpZWxkU3R5bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCop
IGNvbnN0IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW0KaW5kZXggN2I4YTc5ZjYyMmFmZDQ3MmRiOWViMThjMmUxZDY2MzdhNTUwYjA0Ny4uNGEzZGQ0
NjFiOTAzMGQ0MzUzZGFiYjQzMzdiOWQ1N2UwYTgwMGY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMjkxLDI5ICsyOTEsNzcgQEAgU3RyaW5nIFJl
bmRlclRoZW1lTWFjOjppbWFnZUNvbnRyb2xzU3R5bGVTaGVldCgpIGNvbnN0CiAKICNlbmRpZgog
Ci1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25z
KSBjb25zdAogeworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJh
bmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFy
YW5jZSksIG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGVmYXVsdEFw
cGVhcmFuY2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBzZWxlY3Rl
ZFRleHRCYWNrZ3JvdW5kQ29sb3JdKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRm
b3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1B
cHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9w
dGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpLCBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6
Ok9wdGlvbnM6OlVzZURlZmF1bHRBcHBlYXJhbmNlKSk7CisgICAgcmV0dXJuIGNvbG9yRnJvbU5T
Q29sb3IoW05TQ29sb3IgdW5lbXBoYXNpemVkU2VsZWN0ZWRUZXh0QmFja2dyb3VuZENvbG9yXSk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKICAgICByZXR1cm4gY29sb3JGcm9t
TlNDb2xvcihbTlNDb2xvciBzZWNvbmRhcnlTZWxlY3RlZENvbnRyb2xDb2xvcl0pOworI2VuZGlm
Cit9CisKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QK
K3sKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRp
b25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpLCBv
cHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURlZmF1bHRBcHBlYXJhbmNl
KSk7CisgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3Igc2VsZWN0ZWRUZXh0Q29s
b3JdKTsKK30KKworQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0Cit7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAK
KyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25z
LmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpLCBvcHRp
b25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURlZmF1bHRBcHBlYXJhbmNlKSk7
CisgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3IgdW5lbXBoYXNpemVkU2VsZWN0
ZWRUZXh0Q29sb3JdKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOworICAgIHJl
dHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHRleHRDb2xvcl0pOworI2VuZGlmCiB9CiAK
LUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTQwMAorICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBl
YXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBw
ZWFyYW5jZSksIG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGVmYXVs
dEFwcGVhcmFuY2UpKTsKKyAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBzZWxl
Y3RlZENvbnRlbnRCYWNrZ3JvdW5kQ29sb3JdKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG9w
dGlvbnMpOwogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIGFsdGVybmF0ZVNl
bGVjdGVkQ29udHJvbENvbG9yXSk7CisjZW5kaWYKK30KKworQ29sb3IgUmVuZGVyVGhlbWVNYWM6
OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAoreworI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwCisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRp
b25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKSwgb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpP
cHRpb25zOjpVc2VEZWZhdWx0QXBwZWFyYW5jZSkpOworICAgIHJldHVybiBjb2xvckZyb21OU0Nv
bG9yKFtOU0NvbG9yIHVuZW1waGFzaXplZFNlbGVjdGVkQ29udGVudEJhY2tncm91bmRDb2xvcl0p
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7CisgICAgcmV0dXJuIGNvbG9yRnJv
bU5TQ29sb3IoW05TQ29sb3Igc2Vjb25kYXJ5U2VsZWN0ZWRDb250cm9sQ29sb3JdKTsKKyNlbmRp
ZgogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9y
bUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIENvbG9yOjp3aGl0ZTsK
KyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25z
LmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpLCBvcHRp
b25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURlZmF1bHRBcHBlYXJhbmNlKSk7
CisgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3IgYWx0ZXJuYXRlU2VsZWN0ZWRD
b250cm9sVGV4dENvbG9yXSk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUlu
YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0CitDb2xvciBSZW5k
ZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIENvbG9yOjpibGFjazsKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTQwMAorICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJh
bmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFy
YW5jZSksIG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGVmYXVsdEFw
cGVhcmFuY2UpKTsKKyAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciB1bmVtcGhh
c2l6ZWRTZWxlY3RlZFRleHRDb2xvcl0pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ob3B0aW9u
cyk7CisgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3Igc2VsZWN0ZWRDb250cm9s
VGV4dENvbG9yXSk7CisjZW5kaWYKIH0KIAogQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3Jt
Rm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNv
bnN0CkBAIC0zMjMsMTQgKzM3MSw2IEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUZv
Y3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpCiAgICAgcmV0
dXJuIHN5c3RlbUNvbG9yKENTU1ZhbHVlV2Via2l0Rm9jdXNSaW5nQ29sb3IsIG9wdGlvbnMpOwog
fQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0Ci17Ci0gICAgY29uc3QgYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlID0gb3B0aW9ucy5j
b250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKLSAgICBj
b25zdCBib29sIHVzZURlZmF1bHRBcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNv
bG9yOjpPcHRpb25zOjpVc2VEZWZhdWx0QXBwZWFyYW5jZSk7Ci0gICAgTG9jYWxEZWZhdWx0U3lz
dGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2UodXNlU3lzdGVtQXBwZWFyYW5jZSwgdXNlRGVm
YXVsdEFwcGVhcmFuY2UpOwotICAgIHJldHVybiBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKCk7Ci19Ci0KIHN0YXRpYyBGb250U2VsZWN0aW9uVmFsdWUgdG9Gb250V2Vp
Z2h0KE5TSW50ZWdlciBhcHBLaXRGb250V2VpZ2h0KQogewogICAgIEFTU0VSVChhcHBLaXRGb250
V2VpZ2h0ID4gMCAmJiBhcHBLaXRGb250V2VpZ2h0IDwgMTUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKaW5kZXggZTE0NDQ4MGM3Y2FjZTcwZjU2NmQ3ZTAy
MzlmYjNhODlmYjRkZDcwYy4uZjE0YTM4ZTE0N2I4MzAyZGQwYjNjMTY4OWU5NmEzNGFkMTcyODI2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCkBAIC0y
OTMsMjUgKzI5MywyNSBAQCBib29sIFJlbmRlclRoZW1lV2luOjpzdXBwb3J0c0hvdmVyKGNvbnN0
IFJlbmRlclN0eWxlJikgY29uc3QKICAgICByZXR1cm4gaGF2ZVRoZW1lOwogfQogCi1Db2xvciBS
ZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBj
b25zdAorQ29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKIHsKICAgICBD
T0xPUlJFRiBjb2xvciA9IEdldFN5c0NvbG9yKENPTE9SX0hJR0hMSUdIVCk7CiAgICAgcmV0dXJu
IENvbG9yKEdldFJWYWx1ZShjb2xvciksIEdldEdWYWx1ZShjb2xvciksIEdldEJWYWx1ZShjb2xv
cikpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcigpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0CiB7CiAgICAgLy8gVGhpcyBjb2xvciBtYXRjaGVzIEZpcmVmb3guCiAgICAg
cmV0dXJuIENvbG9yKDE3NiwgMTc2LCAxNzYpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZVdpbjo6
cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWVXaW46OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKIHsKICAgICBDT0xPUlJFRiBjb2xvciA9
IEdldFN5c0NvbG9yKENPTE9SX0hJR0hMSUdIVFRFWFQpOwogICAgIHJldHVybiBDb2xvcihHZXRS
VmFsdWUoY29sb3IpLCBHZXRHVmFsdWUoY29sb3IpLCBHZXRCVmFsdWUoY29sb3IpKTsKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtSW5hY3RpdmVTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dAogewogICAgIHJldHVybiBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2lu
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uaAppbmRleCBkM2Yx
YmUxZjFkYWNiYTI4NTFiODg4YzljMWI4NDU0MWM2NWY5ZmYwLi5mZWUyNGI2ZDk0OGJhNDYzY2M0
MjMyNDgxMzU1ZmQ2MzAxYzY2NTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVXaW4uaApAQCAtNTQsMTAgKzU0LDEwIEBAIHB1YmxpYzoKICAgICAvLyBBIG1ldGhvZCBh
c2tpbmcgaWYgdGhlIHRoZW1lJ3MgY29udHJvbHMgYWN0dWFsbHkgY2FyZSBhYm91dCByZWRyYXdp
bmcgd2hlbiBob3ZlcmVkLgogICAgIGJvb2wgc3VwcG9ydHNIb3Zlcihjb25zdCBSZW5kZXJTdHls
ZSYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoKSBjb25zdCBvdmVycmlkZTsKLSAgICBDb2xvciBwbGF0Zm9ybUluYWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3Ig
cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdCBvdmVycmlkZTsK
LSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAg
ICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZv
cm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qg
b3ZlcnJpZGU7CiAKICAgICBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>