<?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>225922</bug_id>
          
          <creation_ts>2021-05-18 09:42:11 -0700</creation_ts>
          <short_desc>[WPE] Spatial navigation tests fail with async overflow scrolling enabled</short_desc>
          <delta_ts>2021-05-20 17:25:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>226007</dependson>
          <blocked>224596</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Lord">clord</reporter>
          <assigned_to name="Chris Lord">clord</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>alex</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>samuel_white</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1761187</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-05-18 09:42:11 -0700</bug_when>
    <thetext>These spatial navigation tests fail since enabling async overflow scrolling in tests in WPE:

fast/spatial-navigation/snav-clipped-overflowed-content.html
fast/spatial-navigation/snav-only-clipped-overflow-content.html
fast/spatial-navigation/snav-simple-content-overflow.html

Debugging with alexg, we discovered that this was because of clipping being disabled when async compositing is used at the RenderBox level. This leads us to believe that this issue may not be WPE-specific. Patch incoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761189</commentid>
    <comment_count>1</comment_count>
      <attachid>428949</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-05-18 09:54:33 -0700</bug_when>
    <thetext>Created attachment 428949
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761191</commentid>
    <comment_count>2</comment_count>
      <attachid>428949</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-18 10:04:50 -0700</bug_when>
    <thetext>Comment on attachment 428949
Patch

I would prefer this happen in two stages: the first should just bet the clippedOverflowRect changes, and the second, smaller patch would fix spatial navigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762051</commentid>
    <comment_count>3</comment_count>
      <attachid>429194</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-05-20 11:12:40 -0700</bug_when>
    <thetext>Created attachment 429194
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762236</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-20 17:24:41 -0700</bug_when>
    <thetext>Committed r277840 (237984@main): &lt;https://commits.webkit.org/237984@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429194.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762237</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-20 17:25:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/78285532&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428949</attachid>
            <date>2021-05-18 09:54:33 -0700</date>
            <delta_ts>2021-05-20 11:12:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225922-20210518175431.patch</filename>
            <type>text/plain</type>
            <size>49765</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZlMjI4Mjc0YjgzNDNk
MTk0ODc5ZGRmNWFhYTM0ZTBmNWIxNGQ4MS4uOTZjNDc2NWRkM2Y2MjhhZjZmMGU1MjY2NzA2OGM4
OTJlZjA5OTc2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDIxLTA1LTE4ICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXSBTcGF0aWFsIG5hdmln
YXRpb24gdGVzdHMgZmFpbCB3aXRoIGFzeW5jIG92ZXJmbG93IHNjcm9sbGluZyBlbmFibGVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU5MjIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZXBhcmF0ZSBS
ZW5kZXJPYmplY3Q6OmFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdCBpbnRvIHNlcGFyYXRlCisg
ICAgICAgIHZlcnNpb25zIGZvciByZXBhaW50aW5nIGFuZCBmb3Igc3BhdGlhbCBuYXZpZ2F0aW9u
LiBVc2luZyB0aGUgbGF0dGVyCisgICAgICAgIGZpeGVzIHNwYXRpYWwgbmF2aWdhdGlvbiB0ZXN0
cyB3aGVuIGFzeW5jIG92ZXJmbG93IHNjcm9sbGluZyBpcyBlbmFibGVkLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc09mZlNjcmVlbiBjb25zdCk6CisgICAgICAg
ICogZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OnJlbmRlcmVkUmVjdHNGb3JNYXJrZXJzKToKKyAgICAg
ICAgKiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omhhc09m
ZnNjcmVlblJlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94OjpjbGlwcGVkT3ZlcmZsb3dSZWN0IGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6bWF5Q2F1c2VSZXBh
aW50SW5zaWRlVmlld3BvcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVu
dDo6aXNWaXNpYmxlSW5Eb2N1bWVudFJlY3QgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpjbGlwcGVk
T3ZlcmZsb3dSZWN0IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpw
aXhlbFNuYXBwZWRBYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3QgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29tcHV0ZVJlY3QgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6YWJzb2x1dGVSZWN0c0ZvclJhbmdlSW5UZXh0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmFic29s
dXRlQ2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0OjphYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3RGb3JTcGF0aWFsTmF2
aWdhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmNsaXBwZWRP
dmVyZmxvd1JlY3RGb3JSZXBhaW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9i
amVjdDo6b3V0bGluZUJvdW5kc0ZvclJlcGFpbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWJzb2x1dGVSZXBhaW50UmVjdCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnZpc2libGVSZWN0Q29udGV4dEZvclNwYXRp
YWxOYXZpZ2F0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNsaXBwZWRPdmVyZmxvd1JlY3QgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFi
bGVDZWxsOjpjbGlwcGVkT3ZlcmZsb3dSZWN0IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGFibGVDZWxsLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ29sOjpjbGlwcGVkT3ZlcmZsb3dSZWN0
IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGFibGVSb3c6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVJvdzo6Y2xp
cHBlZE92ZXJmbG93UmVjdCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxl
Um93Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGV4dDo6Y2xpcHBlZE92ZXJmbG93UmVjdCBjb25zdCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRleHQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3Ojp1cGRhdGVWaXNpYmxlVmlld3BvcnRS
ZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6Y2xpcHBlZE92ZXJm
bG93UmVjdCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWdu
T2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdHcmFkaWVudFN0b3Au
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclNWR0lubGluZTo6Y2xpcHBlZE92ZXJmbG93UmVjdCBjb25zdCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNWR01vZGVsT2JqZWN0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0IGNvbnN0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6
OmNsaXBwZWRPdmVyZmxvd1JlY3QgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0IGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwOgorCiAyMDIxLTA1LTEwICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVh
bWVyXSBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtdmlkZW8tdHJh
Y2tzLWRpc2FibGVkLmh0bWwgZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGQ3NzViYzVk
YWUzNTUzODJhNDE4NTdlMGExYWU2MWJhMzY4YjE4YjQuLjZmYTY2NzU3M2MxMGUxODE4YzM0OTI2
YjE1MTAyNmQ1MjhlMTM2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNTUwLDcgKzU1MCw3
IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNPZmZTY3JlZW4oKSBjb25zdAog
ICAgIGlmICghbV9yZW5kZXJlcikKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBJbnRSZWN0
IGNvbnRlbnRSZWN0ID0gc25hcHBlZEludFJlY3QobV9yZW5kZXJlci0+YWJzb2x1dGVDbGlwcGVk
T3ZlcmZsb3dSZWN0KCkpOworICAgIEludFJlY3QgY29udGVudFJlY3QgPSBzbmFwcGVkSW50UmVj
dChtX3JlbmRlcmVyLT5hYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3RGb3JTcGF0aWFsTmF2aWdh
dGlvbigpKTsKICAgICAvLyBGSVhNRTogdW5jbGVhciBpZiB3ZSBuZWVkIExlZ2FjeUlPU0RvY3Vt
ZW50VmlzaWJsZVJlY3QuCiAgICAgSW50UmVjdCB2aWV3UmVjdCA9IG1fcmVuZGVyZXItPnZpZXco
KS5mcmFtZVZpZXcoKS52aXNpYmxlQ29udGVudFJlY3QoU2Nyb2xsYWJsZUFyZWE6OkxlZ2FjeUlP
U0RvY3VtZW50VmlzaWJsZVJlY3QpOwogICAgIHZpZXdSZWN0LmludGVyc2VjdChjb250ZW50UmVj
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3Bw
CmluZGV4IGJiMGE0ZmUwMDkzMWEzMmJlNzRlZWMxNjljM2YwN2M3NTIzNDdlYTIuLmNlZDcxMzE5
MTJhYjk2NWEyYzQ4ZWQ1ZDFhN2NmOWJlOTA0MWQ4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgVmVj
dG9yPEZsb2F0UmVjdD4gRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpyZW5kZXJlZFJlY3RzRm9y
TWFya2VycyhEb2N1bWVudE1hcmsKICAgICAgICAgYXV0byByZW5kZXJlciA9IG5vZGVNYXJrZXJz
LmtleS0+cmVuZGVyZXIoKTsKICAgICAgICAgRmxvYXRSZWN0IG92ZXJmbG93Q2xpcFJlY3Q7CiAg
ICAgICAgIGlmIChyZW5kZXJlcikKLSAgICAgICAgICAgIG92ZXJmbG93Q2xpcFJlY3QgPSByZW5k
ZXJlci0+YWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCk7CisgICAgICAgICAgICBvdmVyZmxv
d0NsaXBSZWN0ID0gcmVuZGVyZXItPmFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFp
bnQoKTsKICAgICAgICAgZm9yIChhdXRvJiBtYXJrZXIgOiAqbm9kZU1hcmtlcnMudmFsdWUpIHsK
ICAgICAgICAgICAgIGlmIChtYXJrZXIudHlwZSgpICE9IHR5cGUpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCmluZGV4
IDQ5ZjhhYjdkOTVjMzBiZDYwZDA4YjVlYjk0NjdlOGIzYThkZDEwNmEuLjk4Mjc1YzU2ZWEyMjY4
ZjIzYzlmNTkxZDRkODc2NmIzZDg5YjA4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlh
bE5hdmlnYXRpb24uY3BwCkBAIC0zMjUsNyArMzI1LDcgQEAgYm9vbCBoYXNPZmZzY3JlZW5SZWN0
KE5vZGUqIG5vZGUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKICAgICBpZiAoIXJlbmRlcikK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBMYXlvdXRSZWN0IHJlY3QocmVuZGVyLT5hYnNv
bHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3QoKSk7CisgICAgTGF5b3V0UmVjdCByZWN0KHJlbmRlci0+
YWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yU3BhdGlhbE5hdmlnYXRpb24oKSk7CiAgICAg
aWYgKHJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA2YmEzMTBmMGVjMjgxODU0MDRlOGQ4ODhhN2Q1
OGUxOTAyY2U1N2QxLi4wNmYyZTBiNmI0OTMwNzI3MjE1NjY4YzYyZjcxZjI1ODJlMTVjNTNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMjMwNCw3ICsyMzA0LDcg
QEAgdm9pZCBSZW5kZXJCb3g6OmRlbGV0ZUxpbmVCb3hXcmFwcGVyKCkKICAgICBtX2lubGluZUJv
eFdyYXBwZXIgPSBudWxscHRyOwogfQogCi1MYXlvdXRSZWN0IFJlbmRlckJveDo6Y2xpcHBlZE92
ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lcikgY29uc3QKK0xheW91dFJlY3QgUmVuZGVyQm94OjpjbGlwcGVkT3ZlcmZsb3dS
ZWN0KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFZpc2li
bGVSZWN0Q29udGV4dCBjb250ZXh0KSBjb25zdAogewogICAgIGlmIChzdHlsZSgpLnZpc2liaWxp
dHkoKSAhPSBWaXNpYmlsaXR5OjpWaXNpYmxlICYmICFlbmNsb3NpbmdMYXllcigpLT5oYXNWaXNp
YmxlQ29udGVudCgpKQogICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwpAQCAtMjMxMiw3ICsy
MzEyLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJCb3g6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBh
aW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QKICAgICAvLyBGSVhNRTogbGF5b3V0RGVs
dGEgbmVlZHMgdG8gYmUgYXBwbGllZCBpbiBwYXJ0cyBiZWZvcmUvYWZ0ZXIgdHJhbnNmb3JtcyBh
bmQKICAgICAvLyByZXBhaW50IGNvbnRhaW5lcnMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzMwOAogICAgIHIubW92ZSh2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0
Q29udGV4dCgpLmxheW91dERlbHRhKCkpOwotICAgIHJldHVybiBjb21wdXRlUmVjdEZvclJlcGFp
bnQociwgcmVwYWludENvbnRhaW5lcik7CisgICAgcmV0dXJuIGNvbXB1dGVSZWN0KHIsIHJlcGFp
bnRDb250YWluZXIsIGNvbnRleHQpOwogfQogCiBMYXlvdXRSZWN0IFJlbmRlckJveDo6Y29tcHV0
ZVZpc2libGVSZWN0VXNpbmdQYWludE9mZnNldChjb25zdCBMYXlvdXRSZWN0JiByZWN0KSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IDQ2ZDhmNGNmMjU5NzU3ZTBh
MjQ0ZWEyNDc4ODdiZDA2ZjVlNTk1MjkuLmRmYWMwMDliYmE0NjQwYTBkMjBmZGRmZGJmZGFmNWY3
MDdlZDJiYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTM4OSw3ICsz
ODksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJbmxpbmVCb3hXcmFwcGVyKElubGluZUVsZW1l
bnRCb3gqKTsKICAgICB2b2lkIGRlbGV0ZUxpbmVCb3hXcmFwcGVyKCk7CiAKLSAgICBMYXlvdXRS
ZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFJlY3Qg
Y2xpcHBlZE92ZXJmbG93UmVjdChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBWaXNpYmxlUmVjdENvbnRleHQpIGNvbnN0IG92ZXJyaWRlOwogICAgIE9wdGlv
bmFsPExheW91dFJlY3Q+IGNvbXB1dGVWaXNpYmxlUmVjdEluQ29udGFpbmVyKGNvbnN0IExheW91
dFJlY3QmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBjb250YWluZXIsIFZpc2libGVS
ZWN0Q29udGV4dCkgY29uc3QKIG92ZXJyaWRlOwogICAgIHZvaWQgcmVwYWludER1cmluZ0xheW91
dElmTW92ZWQoY29uc3QgTGF5b3V0UmVjdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnQuY3BwCmluZGV4IGU1YmQ5YTUwMzllOTAyMTYxMGRiOWMzYzRmODQwNDE4ZDJh
NzY3NDguLjcyNzYxNWZiOGUzZDhkZDNkMmMxZTI5MTgyMmFkNzZmMDQ2ZDYxNGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTEzNDQsNyArMTM0NCw3
IEBAIGJvb2wgUmVuZGVyRWxlbWVudDo6bWF5Q2F1c2VSZXBhaW50SW5zaWRlVmlld3BvcnQoY29u
c3QgSW50UmVjdCogb3B0aW9uYWxWaWV3cG9yCiAKICAgICAvLyBDb21wdXRlIHZpZXdwb3J0IHJl
Y3QgaWYgaXQgd2FzIG5vdCBwcm92aWRlZC4KICAgICBjb25zdCBJbnRSZWN0JiB2aXNpYmxlUmVj
dCA9IG9wdGlvbmFsVmlld3BvcnRSZWN0ID8gKm9wdGlvbmFsVmlld3BvcnRSZWN0IDogZnJhbWVW
aWV3LndpbmRvd1RvQ29udGVudHMoZnJhbWVWaWV3LndpbmRvd0NsaXBSZWN0KCkpOwotICAgIHJl
dHVybiB2aXNpYmxlUmVjdC5pbnRlcnNlY3RzKGVuY2xvc2luZ0ludFJlY3QoYWJzb2x1dGVDbGlw
cGVkT3ZlcmZsb3dSZWN0KCkpKTsKKyAgICByZXR1cm4gdmlzaWJsZVJlY3QuaW50ZXJzZWN0cyhl
bmNsb3NpbmdJbnRSZWN0KGFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoKSkp
OwogfQogCiBib29sIFJlbmRlckVsZW1lbnQ6OmlzVmlzaWJsZUlnbm9yaW5nR2VvbWV0cnkoKSBj
b25zdApAQCAtMTM3Nyw3ICsxMzc3LDcgQEAgYm9vbCBSZW5kZXJFbGVtZW50Ojppc1Zpc2libGVJ
bkRvY3VtZW50UmVjdChjb25zdCBJbnRSZWN0JiBkb2N1bWVudFJlY3QpIGNvbnN0CiAgICAgICAg
IGJhY2tncm91bmRJc1BhaW50ZWRCeVJvb3QgPSAhcm9vdFJlbmRlcmVyLmhhc0JhY2tncm91bmQo
KTsKICAgICB9CiAKLSAgICBMYXlvdXRSZWN0IGJhY2tncm91bmRQYWludGluZ1JlY3QgPSBiYWNr
Z3JvdW5kSXNQYWludGVkQnlSb290ID8gdmlldygpLmJhY2tncm91bmRSZWN0KCkgOiBhYnNvbHV0
ZUNsaXBwZWRPdmVyZmxvd1JlY3QoKTsKKyAgICBMYXlvdXRSZWN0IGJhY2tncm91bmRQYWludGlu
Z1JlY3QgPSBiYWNrZ3JvdW5kSXNQYWludGVkQnlSb290ID8gdmlldygpLmJhY2tncm91bmRSZWN0
KCkgOiBhYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KCk7CiAgICAgaWYgKCFk
b2N1bWVudFJlY3QuaW50ZXJzZWN0cyhlbmNsb3NpbmdJbnRSZWN0KGJhY2tncm91bmRQYWludGlu
Z1JlY3QpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IDU4MTM3YzBkNTFkMWZlZjIxN2Q1MzY4MzE5YzM2NDRi
YzdhMzc1MWYuLmU3YTBhMjdhNWJjYTcyODk5OTIwMmE2NWMzZTI5ZDJhNjY5NjY2ZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCkBAIC04NDksNyArODQ5LDcg
QEAgTGF5b3V0UmVjdCBSZW5kZXJJbmxpbmU6OmxpbmVzVmlzdWFsT3ZlcmZsb3dCb3VuZGluZ0Jv
eEluRnJhZ21lbnQoY29uc3QgUmVuZGVyRnIKICAgICByZXR1cm4gcmVjdDsKIH0KIAotTGF5b3V0
UmVjdCBSZW5kZXJJbmxpbmU6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0CitMYXlvdXRSZWN0
IFJlbmRlcklubGluZTo6Y2xpcHBlZE92ZXJmbG93UmVjdChjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBWaXNpYmxlUmVjdENvbnRleHQgY29udGV4dCkgY29u
c3QKIHsKICAgICAvLyBPbmx5IGZpcnN0LWxldHRlciByZW5kZXJlcnMgYXJlIGFsbG93ZWQgaW4g
aGVyZSBkdXJpbmcgbGF5b3V0LiBUaGV5IG11dGF0ZSB0aGUgdHJlZSB0cmlnZ2VyaW5nIHJlcGFp
bnRzLgogICAgIEFTU0VSVCghdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5pc1Bh
aW50T2Zmc2V0Q2FjaGVFbmFibGVkKCkgfHwgc3R5bGUoKS5zdHlsZVR5cGUoKSA9PSBQc2V1ZG9J
ZDo6Rmlyc3RMZXR0ZXIgfHwgaGFzU2VsZlBhaW50aW5nTGF5ZXIoKSk7CkBAIC04OTIsOSArODky
LDkgQEAgTGF5b3V0UmVjdCBSZW5kZXJJbmxpbmU6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBh
aW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmoKICAgICAgICAgcmV0dXJuIHJlcGFpbnRSZWN0
OwogCiAgICAgaWYgKGNvbnRhaW5pbmdCbG9jay0+aGFzT3ZlcmZsb3dDbGlwKCkpCi0gICAgICAg
IGNvbnRhaW5pbmdCbG9jay0+YXBwbHlDYWNoZWRDbGlwQW5kU2Nyb2xsUG9zaXRpb24ocmVwYWlu
dFJlY3QsIHJlcGFpbnRDb250YWluZXIsIHZpc2libGVSZWN0Q29udGV4dEZvclJlcGFpbnQoKSk7
CisgICAgICAgIGNvbnRhaW5pbmdCbG9jay0+YXBwbHlDYWNoZWRDbGlwQW5kU2Nyb2xsUG9zaXRp
b24ocmVwYWludFJlY3QsIHJlcGFpbnRDb250YWluZXIsIGNvbnRleHQpOwogCi0gICAgcmVwYWlu
dFJlY3QgPSBjb250YWluaW5nQmxvY2stPmNvbXB1dGVSZWN0Rm9yUmVwYWludChyZXBhaW50UmVj
dCwgcmVwYWludENvbnRhaW5lcik7CisgICAgcmVwYWludFJlY3QgPSBjb250YWluaW5nQmxvY2st
PmNvbXB1dGVSZWN0KHJlcGFpbnRSZWN0LCByZXBhaW50Q29udGFpbmVyLCBjb250ZXh0KTsKIAog
ICAgIGlmIChvdXRsaW5lU2l6ZSkgewogICAgICAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRy
ZW5PZlR5cGU8UmVuZGVyRWxlbWVudD4oKnRoaXMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5oCmluZGV4IDJkNGU3NjI0Y2FlYjhiYTU0MGIxYTExY2MxNjc3YTM5MTVkMTVj
MWQuLmEyZmM4MTNhM2Q3YWM5ZTg3NDc4OGY5YmVhYTEyZjRjNDUxYTdjMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKQEAgLTEyNiw3ICsxMjYsNyBAQCBwcml2YXRl
OgogICAgIExheW91dFVuaXQgb2Zmc2V0V2lkdGgoKSBjb25zdCBmaW5hbCB7IHJldHVybiBsaW5l
c0JvdW5kaW5nQm94KCkud2lkdGgoKTsgfQogICAgIExheW91dFVuaXQgb2Zmc2V0SGVpZ2h0KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbGluZXNCb3VuZGluZ0JveCgpLmhlaWdodCgpOyB9CiAKLSAg
ICBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IG92ZXJyaWRlOworICAgIExh
eW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBWaXNpYmxlUmVjdENvbnRleHQpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIExheW91dFJlY3QgcmVjdFdpdGhPdXRsaW5lRm9yUmVwYWludChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRVbml0IG91dGxpbmVXaWR0aCkg
Y29uc3QgZmluYWw7CiAKICAgICBPcHRpb25hbDxMYXlvdXRSZWN0PiBjb21wdXRlVmlzaWJsZVJl
Y3RJbkNvbnRhaW5lcihjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogY29udGFpbmVyLCBWaXNpYmxlUmVjdENvbnRleHQpIGNvbnN0IGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oCmluZGV4IGIzYTg2ZWVjZjY0OWM3
MGI3MjJiZmY1ZmNiOGNlZWI3ODdkNTUwNTguLmI4ZDcyMWEwNjBlNGI1OTJmNDllNjE5YmVlOWIw
OTg2MWQzNWQxMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aW5lQnJlYWsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFr
LmgKQEAgLTgxLDcgKzgxLDcgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IG9mZnNldEhlaWdo
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGxpbmVzQm91bmRpbmdCb3goKS5oZWlnaHQoKTsgfQog
ICAgIExheW91dFJlY3QgYm9yZGVyQm91bmRpbmdCb3goKSBjb25zdCBmaW5hbCB7IHJldHVybiBM
YXlvdXRSZWN0KExheW91dFBvaW50KCksIGxpbmVzQm91bmRpbmdCb3goKS5zaXplKCkpOyB9CiAg
ICAgTGF5b3V0UmVjdCBmcmFtZVJlY3RGb3JTdGlja3lQb3NpdGlvbmluZygpIGNvbnN0IGZpbmFs
IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBMYXlvdXRSZWN0KCk7IH0KLSAgICBMYXlv
dXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqKSBjb25zdCBmaW5hbCB7IHJldHVybiBMYXlvdXRSZWN0KCk7IH0KKyAgICBMYXlv
dXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3QoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCos
IFZpc2libGVSZWN0Q29udGV4dCkgY29uc3QgZmluYWwgeyByZXR1cm4gTGF5b3V0UmVjdCgpOyB9
CiAKICAgICB2b2lkIHVwZGF0ZUZyb21TdHlsZSgpIGZpbmFsOwogICAgIGJvb2wgcmVxdWlyZXNM
YXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGU1NGVkOWYzYWIzN2ZmMWJkMzc5ZmE4NTdmZjQ0
YThhZTNhZGMzODQuLjg5ZmViOGU4Nzg4ODc1NTAxZDE5ZTI1MzgxMzFkMGY4NmM0OWUyNzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC05NjgsNyArOTY4
LDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRTbG93UmVwYWludE9iamVjdCgpIGNvbnN0
CiAKIEludFJlY3QgUmVuZGVyT2JqZWN0OjpwaXhlbFNuYXBwZWRBYnNvbHV0ZUNsaXBwZWRPdmVy
Zmxvd1JlY3QoKSBjb25zdAogewotICAgIHJldHVybiBzbmFwcGVkSW50UmVjdChhYnNvbHV0ZUNs
aXBwZWRPdmVyZmxvd1JlY3QoKSk7CisgICAgcmV0dXJuIHNuYXBwZWRJbnRSZWN0KGFic29sdXRl
Q2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoKSk7CiB9CiAgICAgCiBMYXlvdXRSZWN0IFJl
bmRlck9iamVjdDo6cmVjdFdpdGhPdXRsaW5lRm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRVbml0IG91dGxpbmVXaWR0aCkgY29u
c3QKQEAgLTk3OCwxNSArOTc4LDE1IEBAIExheW91dFJlY3QgUmVuZGVyT2JqZWN0OjpyZWN0V2l0
aE91dGxpbmVGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqCiAgICAgcmV0
dXJuIHI7CiB9CiAKLUxheW91dFJlY3QgUmVuZGVyT2JqZWN0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0
Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KikgY29uc3QKK0xheW91dFJl
Y3QgUmVuZGVyT2JqZWN0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0KGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqLCBWaXNpYmxlUmVjdENvbnRleHQpIGNvbnN0CiB7CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKIH0KIAotTGF5b3V0UmVjdCBSZW5k
ZXJPYmplY3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBMYXlvdXRSZWN0JiByZWN0LCBj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdAorTGF5
b3V0UmVjdCBSZW5kZXJPYmplY3Q6OmNvbXB1dGVSZWN0KGNvbnN0IExheW91dFJlY3QmIHJlY3Qs
IGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFZpc2libGVS
ZWN0Q29udGV4dCBjb250ZXh0KSBjb25zdAogewotICAgIHJldHVybiAqY29tcHV0ZVZpc2libGVS
ZWN0SW5Db250YWluZXIocmVjdCwgcmVwYWludENvbnRhaW5lciwgdmlzaWJsZVJlY3RDb250ZXh0
Rm9yUmVwYWludCgpKTsKKyAgICByZXR1cm4gKmNvbXB1dGVWaXNpYmxlUmVjdEluQ29udGFpbmVy
KHJlY3QsIHJlcGFpbnRDb250YWluZXIsIGNvbnRleHQpOwogfQogCiBGbG9hdFJlY3QgUmVuZGVy
T2JqZWN0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBGbG9hdFJlY3QmIHJlY3Qs
IGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0CkBA
IC0xOTc0LDcgKzE5NzQsNyBAQCBzdGF0aWMgVmVjdG9yPEZsb2F0UmVjdD4gYWJzb2x1dGVSZWN0
c0ZvclJhbmdlSW5UZXh0KGNvbnN0IFNpbXBsZVJhbmdlJiByYW5nZSwgVAogICAgIGF1dG8gdGV4
dFF1YWRzID0gcmVuZGVyZXItPmFic29sdXRlUXVhZHNGb3JSYW5nZShvZmZzZXRSYW5nZS5zdGFy
dCwgb2Zmc2V0UmFuZ2UuZW5kLCBiZWhhdmlvci5jb250YWlucyhSZW5kZXJPYmplY3Q6OkJvdW5k
aW5nUmVjdEJlaGF2aW9yOjpVc2VTZWxlY3Rpb25IZWlnaHQpLCBiZWhhdmlvci5jb250YWlucyhS
ZW5kZXJPYmplY3Q6OkJvdW5kaW5nUmVjdEJlaGF2aW9yOjpJZ25vcmVFbXB0eVRleHRTZWxlY3Rp
b25zKSk7CiAKICAgICBpZiAoYmVoYXZpb3IuY29udGFpbnMoUmVuZGVyT2JqZWN0OjpCb3VuZGlu
Z1JlY3RCZWhhdmlvcjo6UmVzcGVjdENsaXBwaW5nKSkgewotICAgICAgICBhdXRvIGFic29sdXRl
Q2xpcHBlZE92ZXJmbG93UmVjdCA9IHJlbmRlcmVyLT5hYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1Jl
Y3QoKTsKKyAgICAgICAgYXV0byBhYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3QgPSByZW5kZXJl
ci0+YWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCgpOwogICAgICAgICBWZWN0
b3I8RmxvYXRSZWN0PiBjbGlwcGVkUmVjdHM7CiAgICAgICAgIGNsaXBwZWRSZWN0cy5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHRleHRRdWFkcy5zaXplKCkpOwogICAgICAgICBmb3IgKGF1dG8mIHF1
YWQgOiB0ZXh0UXVhZHMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApp
bmRleCAzMWYwZjA3ZDU0NzI3ZThjNTQ2YzU0N2M1N2QzMDQ1MWUxOTIzMmM2Li41MDdmNDA5ZWYz
ODVjNmRhNzA2MjY3YzVkYmNlN2UzMWQwYzA2NGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCkBAIC02MDUsMjUgKzYwNSw2IEBAIHB1YmxpYzoKICAgICAvLyBSZXBh
aW50IGEgc2xvdyByZXBhaW50IG9iamVjdCwgd2hpY2gsIGF0IHRoaXMgdGltZSwgbWVhbnMgd2Ug
YXJlIHJlcGFpbnRpbmcgYW4gb2JqZWN0IHdpdGggYmFja2dyb3VuZC1hdHRhY2htZW50OmZpeGVk
LgogICAgIHZvaWQgcmVwYWludFNsb3dSZXBhaW50T2JqZWN0KCkgY29uc3Q7CiAKLSAgICAvLyBS
ZXR1cm5zIHRoZSByZWN0IHRoYXQgc2hvdWxkIGJlIHJlcGFpbnRlZCB3aGVuZXZlciB0aGlzIG9i
amVjdCBjaGFuZ2VzLiAgVGhlIHJlY3QgaXMgaW4gdGhlIHZpZXcncwotICAgIC8vIGNvb3JkaW5h
dGUgc3BhY2UuICBUaGlzIG1ldGhvZCBkZWFscyB3aXRoIG91dGxpbmVzIGFuZCBvdmVyZmxvdy4K
LSAgICBMYXlvdXRSZWN0IGFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdCgpIGNvbnN0IHsgcmV0
dXJuIGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KG51bGxwdHIpOyB9Ci0gICAgV0VCQ09S
RV9FWFBPUlQgSW50UmVjdCBwaXhlbFNuYXBwZWRBYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3Qo
KSBjb25zdDsKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJl
cGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29u
c3Q7Ci0gICAgdmlydHVhbCBMYXlvdXRSZWN0IHJlY3RXaXRoT3V0bGluZUZvclJlcGFpbnQoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0VW5pdCBv
dXRsaW5lV2lkdGgpIGNvbnN0OwotICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBvdXRsaW5lQm91bmRz
Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiAvKnJlcGFpbnRDb250YWlu
ZXIqLywgY29uc3QgUmVuZGVyR2VvbWV0cnlNYXAqID0gbnVsbHB0cikgY29uc3QgeyByZXR1cm4g
TGF5b3V0UmVjdCgpOyB9Ci0KLSAgICAvLyBHaXZlbiBhIHJlY3QgaW4gdGhlIG9iamVjdCdzIGNv
b3JkaW5hdGUgc3BhY2UsIGNvbXB1dGUgYSByZWN0IHN1aXRhYmxlIGZvciByZXBhaW50aW5nCi0g
ICAgLy8gdGhhdCByZWN0IGluIHZpZXcgY29vcmRpbmF0ZXMuCi0gICAgTGF5b3V0UmVjdCBjb21w
dXRlQWJzb2x1dGVSZXBhaW50UmVjdChjb25zdCBMYXlvdXRSZWN0JiByZWN0KSBjb25zdCB7IHJl
dHVybiBjb21wdXRlUmVjdEZvclJlcGFpbnQocmVjdCwgbnVsbHB0cik7IH0KLSAgICAvLyBHaXZl
biBhIHJlY3QgaW4gdGhlIG9iamVjdCdzIGNvb3JkaW5hdGUgc3BhY2UsIGNvbXB1dGUgYSByZWN0
IHN1aXRhYmxlIGZvciByZXBhaW50aW5nCi0gICAgLy8gdGhhdCByZWN0IGluIHRoZSBjb29yZGlu
YXRlIHNwYWNlIG9mIHJlcGFpbnRDb250YWluZXIuCi0gICAgTGF5b3V0UmVjdCBjb21wdXRlUmVj
dEZvclJlcGFpbnQoY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0OwotICAgIEZsb2F0UmVjdCBjb21wdXRlRmxvYXRS
ZWN0Rm9yUmVwYWludChjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdDsKLQotICAgIC8vIEdpdmVuIGEgcmVjdCBpbiB0
aGUgb2JqZWN0J3MgY29vcmRpbmF0ZSBzcGFjZSwgY29tcHV0ZSB0aGUgbG9jYXRpb24gaW4gY29u
dGFpbmVyIHNwYWNlIHdoZXJlIHRoaXMgcmVjdCBpcyB2aXNpYmxlLAotICAgIC8vIHdoZW4gY2xp
cHBpbmcgYW5kIHNjcm9sbGluZyBhcyBzcGVjaWZpZWQgYnkgdGhlIGNvbnRleHQuIFdoZW4gdXNp
bmcgZWRnZS1pbmNsdXNpdmUgaW50ZXJzZWN0aW9uLCByZXR1cm4gV1RGOjpudWxsb3B0Ci0gICAg
Ly8gcmF0aGVyIHRoYW4gYW4gZW1wdHkgcmVjdCBpZiB0aGUgcmVjdCBpcyBjb21wbGV0ZWx5IGNs
aXBwZWQgb3V0IGluIGNvbnRhaW5lciBzcGFjZS4KICAgICBlbnVtIGNsYXNzIFZpc2libGVSZWN0
Q29udGV4dE9wdGlvbiB7CiAgICAgICAgIFVzZUVkZ2VJbmNsdXNpdmVJbnRlcnNlY3Rpb24gPSAx
IDw8IDAsCiAgICAgICAgIEFwcGx5Q29tcG9zaXRlZENsaXBzID0gMSA8PCAxLApAQCAtNjQyLDYg
KzYyMywyOSBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgZGVzY2VuZGFudE5lZWRzRW5jbG9zaW5n
SW50UmVjdCB7IGZhbHNlIH07CiAgICAgICAgIE9wdGlvblNldDxWaXNpYmxlUmVjdENvbnRleHRP
cHRpb24+IG9wdGlvbnM7CiAgICAgfTsKKworICAgIC8vIFJldHVybnMgdGhlIHJlY3QgdGhhdCBz
aG91bGQgYmUgcmVwYWludGVkIHdoZW5ldmVyIHRoaXMgb2JqZWN0IGNoYW5nZXMuIFRoZSByZWN0
IGlzIGluIHRoZSB2aWV3J3MKKyAgICAvLyBjb29yZGluYXRlIHNwYWNlLiBUaGlzIG1ldGhvZCBk
ZWFscyB3aXRoIG91dGxpbmVzIGFuZCBvdmVyZmxvdy4KKyAgICBMYXlvdXRSZWN0IGFic29sdXRl
Q2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoKSBjb25zdCB7IHJldHVybiBjbGlwcGVkT3Zl
cmZsb3dSZWN0KG51bGxwdHIsIHZpc2libGVSZWN0Q29udGV4dEZvclJlcGFpbnQoKSk7IH0KKyAg
ICBMYXlvdXRSZWN0IGFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdEZvclNwYXRpYWxOYXZpZ2F0
aW9uKCkgY29uc3QgeyByZXR1cm4gY2xpcHBlZE92ZXJmbG93UmVjdChudWxscHRyLCB2aXNpYmxl
UmVjdENvbnRleHRGb3JTcGF0aWFsTmF2aWdhdGlvbigpKTsgfQorICAgIFdFQkNPUkVfRVhQT1JU
IEludFJlY3QgcGl4ZWxTbmFwcGVkQWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCkgY29uc3Q7
CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3QoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVmlzaWJsZVJlY3RDb250ZXh0KSBj
b25zdDsKKyAgICBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IHsgcmV0dXJu
IGNsaXBwZWRPdmVyZmxvd1JlY3QocmVwYWludENvbnRhaW5lciwgdmlzaWJsZVJlY3RDb250ZXh0
Rm9yUmVwYWludCgpKTsgfQorICAgIHZpcnR1YWwgTGF5b3V0UmVjdCByZWN0V2l0aE91dGxpbmVG
b3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IExheW91dFVuaXQgb3V0bGluZVdpZHRoKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFJlY3Qg
b3V0bGluZUJvdW5kc0ZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogLypy
ZXBhaW50Q29udGFpbmVyKi8sIGNvbnN0IFJlbmRlckdlb21ldHJ5TWFwKiA9IG51bGxwdHIpIGNv
bnN0IHsgcmV0dXJuIExheW91dFJlY3QoKTsgfQorCisgICAgLy8gR2l2ZW4gYSByZWN0IGluIHRo
ZSBvYmplY3QncyBjb29yZGluYXRlIHNwYWNlLCBjb21wdXRlIGEgcmVjdCBzdWl0YWJsZSBmb3Ig
cmVwYWludGluZworICAgIC8vIHRoYXQgcmVjdCBpbiB2aWV3IGNvb3JkaW5hdGVzLgorICAgIExh
eW91dFJlY3QgY29tcHV0ZUFic29sdXRlUmVwYWludFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgcmVj
dCkgY29uc3QgeyByZXR1cm4gY29tcHV0ZVJlY3QocmVjdCwgbnVsbHB0ciwgdmlzaWJsZVJlY3RD
b250ZXh0Rm9yUmVwYWludCgpKTsgfQorICAgIC8vIEdpdmVuIGEgcmVjdCBpbiB0aGUgb2JqZWN0
J3MgY29vcmRpbmF0ZSBzcGFjZSwgY29tcHV0ZSBhIHJlY3QgIGluIHRoZSBjb29yZGluYXRlIHNw
YWNlCisgICAgLy8gb2YgcmVwYWludENvbnRhaW5lciBzdWl0YWJsZSBmb3IgdGhlIGdpdmVuIFZp
c2libGVSZWN0Q29udGV4dC4KKyAgICBMYXlvdXRSZWN0IGNvbXB1dGVSZWN0KGNvbnN0IExheW91
dFJlY3QmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBW
aXNpYmxlUmVjdENvbnRleHQpIGNvbnN0OworICAgIExheW91dFJlY3QgY29tcHV0ZVJlY3RGb3JS
ZXBhaW50KGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IHsgcmV0dXJuIGNvbXB1dGVSZWN0KHJlY3QsIHJl
cGFpbnRDb250YWluZXIsIHZpc2libGVSZWN0Q29udGV4dEZvclJlcGFpbnQoKSk7IH0KKyAgICBG
bG9hdFJlY3QgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgRmxvYXRSZWN0JiwgY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3Q7CisKKyAg
ICAvLyBHaXZlbiBhIHJlY3QgaW4gdGhlIG9iamVjdCdzIGNvb3JkaW5hdGUgc3BhY2UsIGNvbXB1
dGUgdGhlIGxvY2F0aW9uIGluIGNvbnRhaW5lciBzcGFjZSB3aGVyZSB0aGlzIHJlY3QgaXMgdmlz
aWJsZSwKKyAgICAvLyB3aGVuIGNsaXBwaW5nIGFuZCBzY3JvbGxpbmcgYXMgc3BlY2lmaWVkIGJ5
IHRoZSBjb250ZXh0LiBXaGVuIHVzaW5nIGVkZ2UtaW5jbHVzaXZlIGludGVyc2VjdGlvbiwgcmV0
dXJuIFdURjo6bnVsbG9wdAorICAgIC8vIHJhdGhlciB0aGFuIGFuIGVtcHR5IHJlY3QgaWYgdGhl
IHJlY3QgaXMgY29tcGxldGVseSBjbGlwcGVkIG91dCBpbiBjb250YWluZXIgc3BhY2UuCiAgICAg
dmlydHVhbCBPcHRpb25hbDxMYXlvdXRSZWN0PiBjb21wdXRlVmlzaWJsZVJlY3RJbkNvbnRhaW5l
cihjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgVmlzaWJsZVJlY3RDb250ZXh0KSBjb25zdDsKICAgICB2aXJ0dWFsIE9wdGlv
bmFsPEZsb2F0UmVjdD4gY29tcHV0ZUZsb2F0VmlzaWJsZVJlY3RJbkNvbnRhaW5lcihjb25zdCBG
bG9hdFJlY3QmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBWaXNpYmxlUmVjdENvbnRleHQpIGNvbnN0OwogCkBAIC03NTQsOSArNzU4LDggQEAgcHJvdGVj
dGVkOgogCiAgICAgc3RhdGljIEZyYWdtZW50ZWRGbG93U3RhdGUgY29tcHV0ZWRGcmFnbWVudGVk
Rmxvd1N0YXRlKGNvbnN0IFJlbmRlck9iamVjdCYpOwogCi0gICAgc3RhdGljIGJvb2wgc2hvdWxk
QXBwbHlDb21wb3NpdGVkQ29udGFpbmVyU2Nyb2xsc0ZvclJlcGFpbnQoKTsKLQogICAgIHN0YXRp
YyBWaXNpYmxlUmVjdENvbnRleHQgdmlzaWJsZVJlY3RDb250ZXh0Rm9yUmVwYWludCgpOworICAg
IHN0YXRpYyBWaXNpYmxlUmVjdENvbnRleHQgdmlzaWJsZVJlY3RDb250ZXh0Rm9yU3BhdGlhbE5h
dmlnYXRpb24oKTsKIAogICAgIGJvb2wgaXNTZXROZWVkc0xheW91dEZvcmJpZGRlbigpIGNvbnN0
OwogCkBAIC0xMTM1LDYgKzExMzgsMTEgQEAgaW5saW5lIGF1dG8gUmVuZGVyT2JqZWN0Ojp2aXNp
YmxlUmVjdENvbnRleHRGb3JSZXBhaW50KCkgLT4gVmlzaWJsZVJlY3RDb250ZXh0CiAgICAgcmV0
dXJuIHsgZmFsc2UsIGZhbHNlLCB7IFZpc2libGVSZWN0Q29udGV4dE9wdGlvbjo6QXBwbHlDb250
YWluZXJDbGlwLCBWaXNpYmxlUmVjdENvbnRleHRPcHRpb246OkFwcGx5Q29tcG9zaXRlZENvbnRh
aW5lclNjcm9sbHMgfSB9OwogfQogCitpbmxpbmUgYXV0byBSZW5kZXJPYmplY3Q6OnZpc2libGVS
ZWN0Q29udGV4dEZvclNwYXRpYWxOYXZpZ2F0aW9uKCkgLT4gVmlzaWJsZVJlY3RDb250ZXh0Cit7
CisgICAgcmV0dXJuIHsgZmFsc2UsIGZhbHNlLCB7IFZpc2libGVSZWN0Q29udGV4dE9wdGlvbjo6
QXBwbHlDb250YWluZXJDbGlwLCBWaXNpYmxlUmVjdENvbnRleHRPcHRpb246OkFwcGx5Q29tcG9z
aXRlZENvbnRhaW5lclNjcm9sbHMsIFZpc2libGVSZWN0Q29udGV4dE9wdGlvbjo6QXBwbHlDb21w
b3NpdGVkQ2xpcHMgfSB9OworfQorCiBpbmxpbmUgYm9vbCBSZW5kZXJPYmplY3Q6OmlzU2V0TmVl
ZHNMYXlvdXRGb3JiaWRkZW4oKSBjb25zdAogewogI2lmIEFTU0VSVF9FTkFCTEVECmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCAyYTkzOWNlNWJhODQw
NzUzYmQ1OWYzNmIwNzJjM2FlOGM1M2QyZDRlLi44MDIxYzg4OWJjZjgwZGM4NDM5NTVlNjVjMWEz
ODA0Yjc0ZjJkZjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5jcHAKQEAgLTc4Niw3ICs3ODYsNyBAQCBib29sIFJlbmRlclJlcGxhY2VkOjppc0hpZ2hsaWdo
dGVkKEhpZ2hsaWdodFN0YXRlIHN0YXRlLCBjb25zdCBIaWdobGlnaHREYXRhJiByYQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotTGF5b3V0UmVjdCBSZW5kZXJSZXBsYWNlZDo6Y2xpcHBlZE92ZXJm
bG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lcikgY29uc3QKK0xheW91dFJlY3QgUmVuZGVyUmVwbGFjZWQ6OmNsaXBwZWRPdmVyZmxv
d1JlY3QoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVmlz
aWJsZVJlY3RDb250ZXh0IGNvbnRleHQpIGNvbnN0CiB7CiAgICAgaWYgKHN0eWxlKCkudmlzaWJp
bGl0eSgpICE9IFZpc2liaWxpdHk6OlZpc2libGUgJiYgIWVuY2xvc2luZ0xheWVyKCktPmhhc1Zp
c2libGVDb250ZW50KCkpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CkBAIC03OTcsNyAr
Nzk3LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJSZXBsYWNlZDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZv
clJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE8KICAgICAvLyBGSVhNRTogbGF5b3V0RGVs
dGEgbmVlZHMgdG8gYmUgYXBwbGllZCBpbiBwYXJ0cyBiZWZvcmUvYWZ0ZXIgdHJhbnNmb3JtcyBh
bmQKICAgICAvLyByZXBhaW50IGNvbnRhaW5lcnMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzMwOAogICAgIHIubW92ZSh2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0
Q29udGV4dCgpLmxheW91dERlbHRhKCkpOwotICAgIHJldHVybiBjb21wdXRlUmVjdEZvclJlcGFp
bnQociwgcmVwYWludENvbnRhaW5lcik7CisgICAgcmV0dXJuIGNvbXB1dGVSZWN0KHIsIHJlcGFp
bnRDb250YWluZXIsIGNvbnRleHQpOwogfQogCiBib29sIFJlbmRlclJlcGxhY2VkOjppc0NvbnRl
bnRMaWtlbHlWaXNpYmxlSW5WaWV3cG9ydCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5oCmluZGV4IDNiNjFmNDlkNWExNzBiYjIzNTBiZGY2NzBjNjE5ODAwNTk2ZGM1
MWYuLmRkY2E1ODQzNWUzZmYwYTBhYmVkYWQzYzg4YWUzYWQzN2ZlNzgyMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCkBAIC04OSw3ICs4OSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIGZpbmFsOwogICAg
IHZpcnR1YWwgdm9pZCBwYWludFJlcGxhY2VkKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50
JikgeyB9CiAKLSAgICBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IG92ZXJy
aWRlOworICAgIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBWaXNpYmxlUmVjdENvbnRleHQpIGNvbnN0
IG92ZXJyaWRlOwogCiAgICAgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQoY29uc3Qg
TGF5b3V0UG9pbnQmLCBjb25zdCBSZW5kZXJGcmFnbWVudENvbnRhaW5lciopIGZpbmFsOwogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAppbmRleCBj
NmQ3YWZkMTg3ODQ5OTU3ZTdhZjNjZDk2ZWFlZjgzYWUxZWFmNmQ2Li5iNzU4YjllMzkzNzVhZmFh
ODFmYmZmNjgzYTFiZDk1MGQ0ZWYxYWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVDZWxsLmNwcApAQCAtMzQ3LDE0ICszNDcsMTQgQEAgTGF5b3V0U2l6ZSBSZW5k
ZXJUYWJsZUNlbGw6Om9mZnNldEZyb21Db250YWluZXIoUmVuZGVyRWxlbWVudCYgY29udGFpbmVy
LCBjb25zdAogICAgIHJldHVybiBvZmZzZXQ7CiB9CiAKLUxheW91dFJlY3QgUmVuZGVyVGFibGVD
ZWxsOjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdAorTGF5b3V0UmVjdCBSZW5kZXJUYWJsZUNl
bGw6OmNsaXBwZWRPdmVyZmxvd1JlY3QoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVmlzaWJsZVJlY3RDb250ZXh0IGNvbnRleHQpIGNvbnN0CiB7CiAgICAg
Ly8gSWYgdGhlIHRhYmxlIGdyaWQgaXMgZGlydHksIHdlIGNhbm5vdCBnZXQgcmVsaWFibGUgaW5m
b3JtYXRpb24gYWJvdXQgYWRqb2luaW5nIGNlbGxzLAogICAgIC8vIHNvIHdlIGlnbm9yZSBvdXRz
aWRlIGJvcmRlcnMuIFRoaXMgc2hvdWxkIG5vdCBiZSBhIHByb2JsZW0gYmVjYXVzZSBpdCBtZWFu
cyB0aGF0CiAgICAgLy8gdGhlIHRhYmxlIGlzIGdvaW5nIHRvIHJlY2FsY3VsYXRlIHRoZSBncmlk
LCByZWxheW91dCBhbmQgcmVwYWludCBpdHMgY3VycmVudCByZWN0LCB3aGljaAogICAgIC8vIGlu
Y2x1ZGVzIGFueSBvdXRzaWRlIGJvcmRlcnMgb2YgdGhpcyBjZWxsLgogICAgIGlmICghdGFibGUo
KS0+Y29sbGFwc2VCb3JkZXJzKCkgfHwgdGFibGUoKS0+bmVlZHNTZWN0aW9uUmVjYWxjKCkpCi0g
ICAgICAgIHJldHVybiBSZW5kZXJCbG9ja0Zsb3c6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBh
aW50KHJlcGFpbnRDb250YWluZXIpOworICAgICAgICByZXR1cm4gUmVuZGVyQmxvY2tGbG93Ojpj
bGlwcGVkT3ZlcmZsb3dSZWN0KHJlcGFpbnRDb250YWluZXIsIGNvbnRleHQpOwogCiAgICAgYm9v
bCBydGwgPSAhc3R5bGVGb3JDZWxsRmxvdygpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKTsKICAg
ICBMYXlvdXRVbml0IG91dGxpbmVTaXplIHsgc3R5bGUoKS5vdXRsaW5lU2l6ZSgpIH07CkBAIC0z
OTIsNyArMzkyLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJUYWJsZUNlbGw6OmNsaXBwZWRPdmVyZmxv
d1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWwKICAgICAvLyBGSVhNRTogbGF5
b3V0RGVsdGEgbmVlZHMgdG8gYmUgYXBwbGllZCBpbiBwYXJ0cyBiZWZvcmUvYWZ0ZXIgdHJhbnNm
b3JtcyBhbmQKICAgICAvLyByZXBhaW50IGNvbnRhaW5lcnMuIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMwOAogICAgIHIubW92ZSh2aWV3KCkuZnJhbWVWaWV3KCku
bGF5b3V0Q29udGV4dCgpLmxheW91dERlbHRhKCkpOwotICAgIHJldHVybiBjb21wdXRlUmVjdEZv
clJlcGFpbnQociwgcmVwYWludENvbnRhaW5lcik7CisgICAgcmV0dXJuIGNvbXB1dGVSZWN0KHIs
IHJlcGFpbnRDb250YWluZXIsIGNvbnRleHQpOwogfQogCiBPcHRpb25hbDxMYXlvdXRSZWN0PiBS
ZW5kZXJUYWJsZUNlbGw6OmNvbXB1dGVWaXNpYmxlUmVjdEluQ29udGFpbmVyKGNvbnN0IExheW91
dFJlY3QmIHJlY3QsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGNvbnRhaW5lciwgVmlz
aWJsZVJlY3RDb250ZXh0IGNvbnRleHQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVDZWxsLmgKaW5kZXggYmY1MmQ5YTVhNDBhMGRlNzI0M2RjYThhOGQ1NDc3NmZi
MzllZTE1Ni4uNzIwYjQ0YWY5NmU3MTc5YmU3YTk1Yjk0OWI1ZTJkZDhiNWFmNWUwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaApAQCAtMTI5LDcgKzEyOSw3
IEBAIHB1YmxpYzoKICAgICBib29sIGlzRmlyc3RPckxhc3RDZWxsSW5Sb3coKSBjb25zdCB7IHJl
dHVybiAhdGFibGUoKS0+Y2VsbEFmdGVyKHRoaXMpIHx8ICF0YWJsZSgpLT5jZWxsQmVmb3JlKHRo
aXMpOyB9CiAjZW5kaWYKICAgICAKLSAgICBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RG
b3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIp
IGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdChjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBWaXNpYmxlUmVjdENv
bnRleHQpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlSGFzRW1wdHlDb2xs
YXBzZWRCb3JkZXJzKCk7CiAgICAgdm9pZCBzZXRIYXNFbXB0eUNvbGxhcHNlZEJvcmRlcihDb2xs
YXBzZWRCb3JkZXJTaWRlLCBib29sIGVtcHR5KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGVDb2wuY3BwCmluZGV4IGQ5N2E0MWY0OGE0ODdiNzBhNGZiN2QzNWFl
N2Q3ZGVhYjhiYmJhOTcuLjgyNTczNzY4YmY0NmQwZWQxMjYxZTY5MmY2NTZiYWYxZDZiMTliMjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmNwcApAQCAtMTIz
LDcgKzEyMyw3IEBAIGJvb2wgUmVuZGVyVGFibGVDb2w6OmNhbkhhdmVDaGlsZHJlbigpIGNvbnN0
CiAgICAgcmV0dXJuIGlzVGFibGVDb2x1bW5Hcm91cCgpOwogfQogCi1MYXlvdXRSZWN0IFJlbmRl
clRhYmxlQ29sOjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdAorTGF5b3V0UmVjdCBSZW5kZXJU
YWJsZUNvbDo6Y2xpcHBlZE92ZXJmbG93UmVjdChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBWaXNpYmxlUmVjdENvbnRleHQgY29udGV4dCkgY29uc3QKIHsK
ICAgICAvLyBGb3Igbm93LCBqdXN0IHJlcGFpbnQgdGhlIHdob2xlIHRhYmxlLgogICAgIC8vIEZJ
WE1FOiBGaW5kIGEgYmV0dGVyIHdheSB0byBkbyB0aGlzLCBlLmcuLCBuZWVkIHRvIHJlcGFpbnQg
YWxsIHRoZSBjZWxscyB0aGF0IHdlCkBAIC0xMzMsNyArMTMzLDcgQEAgTGF5b3V0UmVjdCBSZW5k
ZXJUYWJsZUNvbDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE8KICAgICBSZW5kZXJUYWJsZSogcGFyZW50VGFibGUgPSB0YWJsZSgpOwogICAgIGlm
ICghcGFyZW50VGFibGUpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7Ci0gICAgcmV0dXJu
IHBhcmVudFRhYmxlLT5jbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFp
bmVyKTsKKyAgICByZXR1cm4gcGFyZW50VGFibGUtPmNsaXBwZWRPdmVyZmxvd1JlY3QocmVwYWlu
dENvbnRhaW5lciwgY29udGV4dCk7CiB9CiAKIHZvaWQgUmVuZGVyVGFibGVDb2w6OmltYWdlQ2hh
bmdlZChXcmFwcGVkSW1hZ2VQdHIsIGNvbnN0IEludFJlY3QqKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGVDb2wuaAppbmRleCAyNDNmZWI5MzYyY2UzNWEzNWYzNTE5MWFhMGM5
YzJlZWU3MjVkYzljLi5hOWQxY2E4NjUxZGI4NWM3MGU5NDI1YzMyOGE5YjA0N2VhOTk2YTUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaApAQCAtNzcsNyArNzcs
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KIAotICAgIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0KGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFZpc2libGVSZWN0Q29udGV4dCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdm9pZCBpbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyLCBjb25zdCBJbnRS
ZWN0KiA9IDApIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZl
cmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcAppbmRleCA1MjhkNDI3N2YyYmU1NjJh
Yjg4NDY4OTkxNzM5NzFjYjQyMWY0MDkyLi5kMzJjZTVkYWYxZWM3ODZjZGViZTVjNDBhZGIzMzg2
YmZlNjc5MDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVSb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5j
cHAKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIFJlbmRlclRhYmxlUm93OjpsYXlvdXQoKQogICAg
IC8vIFdlIG9ubHkgZXZlciBuZWVkIHRvIHJlcGFpbnQgaWYgb3VyIGNlbGxzIGRpZG4ndCwgd2hp
Y2ggbWVuYXMgdGhhdCB0aGV5IGRpZG4ndCBuZWVkCiAgICAgLy8gbGF5b3V0LCBzbyB3ZSBrbm93
IHRoYXQgb3VyIGJvdW5kcyBkaWRuJ3QgY2hhbmdlLiBUaGlzIGNvZGUgaXMganVzdCBtYWtpbmcg
dXAgZm9yCiAgICAgLy8gdGhlIGZhY3QgdGhhdCB3ZSBkaWQgbm90IHJlcGFpbnQgaW4gc2V0U3R5
bGUoKSBiZWNhdXNlIHdlIGhhZCBhIGxheW91dCBoaW50LgotICAgIC8vIFdlIGNhbm5vdCBjYWxs
IHJlcGFpbnQoKSBiZWNhdXNlIG91ciBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCgpIGlz
IHRha2VuIGZyb20gdGhlCisgICAgLy8gV2UgY2Fubm90IGNhbGwgcmVwYWludCgpIGJlY2F1c2Ug
b3VyIGNsaXBwZWRPdmVyZmxvd1JlY3QoKSBpcyB0YWtlbiBmcm9tIHRoZQogICAgIC8vIHBhcmVu
dCB0YWJsZSwgYW5kIGJlaW5nIG1pZC1sYXlvdXQsIHRoYXQgaXMgaW52YWxpZC4gSW5zdGVhZCwg
d2UgcmVwYWludCBvdXIgY2VsbHMuCiAgICAgaWYgKHNlbGZOZWVkc0xheW91dCgpICYmIGNoZWNr
Rm9yUmVwYWludER1cmluZ0xheW91dCgpKSB7CiAgICAgICAgIGZvciAoUmVuZGVyVGFibGVDZWxs
KiBjZWxsID0gZmlyc3RDZWxsKCk7IGNlbGw7IGNlbGwgPSBjZWxsLT5uZXh0Q2VsbCgpKQpAQCAt
MTYyLDE3ICsxNjIsMTcgQEAgdm9pZCBSZW5kZXJUYWJsZVJvdzo6bGF5b3V0KCkKICAgICBjbGVh
ck5lZWRzTGF5b3V0KCk7CiB9CiAKLUxheW91dFJlY3QgUmVuZGVyVGFibGVSb3c6OmNsaXBwZWRP
dmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIpIGNvbnN0CitMYXlvdXRSZWN0IFJlbmRlclRhYmxlUm93OjpjbGlwcGVkT3Zl
cmZsb3dSZWN0KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFZpc2libGVSZWN0Q29udGV4dCBjb250ZXh0KSBjb25zdAogewogICAgIEFTU0VSVChwYXJlbnQo
KSk7CiAgICAgLy8gUm93cyBhbmQgY2VsbHMgYXJlIGluIHRoZSBzYW1lIGNvb3JkaW5hdGUgc3Bh
Y2UuIFdlIG5lZWQgdG8gYm90aCBjb21wdXRlIG91ciBvdmVyZmxvdyByZWN0ICh3aGljaAogICAg
IC8vIHdpbGwgYWNjb21tb2RhdGUgYSByb3cgb3V0bGluZSBhbmQgYW55IHZpc3VhbCBlZmZlY3Rz
IG9uIHRoZSByb3cgaXRzZWxmKSwgYnV0IHdlIGFsc28gbmVlZCB0byBhZGQgaW4KICAgICAvLyB0
aGUgcmVwYWludCByZWN0cyBvZiBjZWxscy4KLSAgICBMYXlvdXRSZWN0IHJlc3VsdCA9IFJlbmRl
ckJveDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lcik7Cisg
ICAgTGF5b3V0UmVjdCByZXN1bHQgPSBSZW5kZXJCb3g6OmNsaXBwZWRPdmVyZmxvd1JlY3QocmVw
YWludENvbnRhaW5lciwgY29udGV4dCk7CiAgICAgZm9yIChSZW5kZXJUYWJsZUNlbGwqIGNlbGwg
PSBmaXJzdENlbGwoKTsgY2VsbDsgY2VsbCA9IGNlbGwtPm5leHRDZWxsKCkpIHsKICAgICAgICAg
Ly8gRXZlbiBpZiBhIGNlbGwgaXMgYSByZXBhaW50IGNvbnRhaW5lciwgaXQncyB0aGUgcm93IHRo
YXQgcGFpbnRzIHRoZSBiYWNrZ3JvdW5kIGJlaGluZCBpdC4KICAgICAgICAgLy8gU28gd2UgZG9u
J3QgY2FyZSBpZiBhIGNlbGwgaXMgYSByZXBhaW50Q29udGFpbmVyIGhlcmUuCi0gICAgICAgIHJl
c3VsdC51bml0ZUlmTm9uWmVybyhjZWxsLT5jbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChy
ZXBhaW50Q29udGFpbmVyKSk7CisgICAgICAgIHJlc3VsdC51bml0ZUlmTm9uWmVybyhjZWxsLT5j
bGlwcGVkT3ZlcmZsb3dSZWN0KHJlcGFpbnRDb250YWluZXIsIGNvbnRleHQpKTsKICAgICB9CiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZVJvdy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
Um93LmgKaW5kZXggMmZjMGUxODIwNjNiZGYyODg0ZGU1YjQ1ZDdmYTU3MjAwNGFkMTYzNi4uYzY3
MGQxOGI3NTkxY2EyNTdlN2M3YjQwMGI1MmUyNGI3NGYzMDEyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHdpbGxCZVJlbW92ZWRGcm9tVHJlZShJc0ludGVybmFsTW92ZSkgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwotICAgIExheW91dFJlY3QgY2xpcHBlZE92ZXJm
bG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lcikgY29uc3Qgb3ZlcnJpZGU7CisgICAgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dS
ZWN0KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFZpc2li
bGVSZWN0Q29udGV4dCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIHJlcXVpcmVzTGF5ZXIo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBoYXNPdmVyZmxvd0NsaXAoKSB8fCBoYXNUcmFuc2Zv
cm1SZWxhdGVkUHJvcGVydHkoKSB8fCBoYXNIaWRkZW5CYWNrZmFjZSgpIHx8IGhhc0NsaXBQYXRo
KCkgfHwgY3JlYXRlc0dyb3VwKCkgfHwgaXNTdGlja2lseVBvc2l0aW9uZWQoKTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXggMWM1MjU0NDAxODk0OWFhYWM2
ZmIyZDE0OWQ0NDczYTdmYWYwZWQyMS4uYTMxZDI3MjFhMTZiYzZlNGQyM2Q5M2VkNDU0NzUxMmE5
ZTIwZjUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtMTU3
Nyw3ICsxNTc3LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJUZXh0OjpsaW5lc1Zpc3VhbE92ZXJmbG93
Qm91bmRpbmdCb3goKSBjb25zdAogICAgIHJldHVybiBtX2xpbmVCb3hlcy52aXN1YWxPdmVyZmxv
d0JvdW5kaW5nQm94KCp0aGlzKTsKIH0KIAotTGF5b3V0UmVjdCBSZW5kZXJUZXh0OjpjbGlwcGVk
T3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyKSBjb25zdAorTGF5b3V0UmVjdCBSZW5kZXJUZXh0OjpjbGlwcGVkT3ZlcmZs
b3dSZWN0KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFZp
c2libGVSZWN0Q29udGV4dCBjb250ZXh0KSBjb25zdAogewogICAgIFJlbmRlck9iamVjdCogcmVu
ZGVyZXJUb1JlcGFpbnQgPSBjb250YWluaW5nQmxvY2soKTsKIApAQCAtMTU4OCw5ICsxNTg4LDkg
QEAgTGF5b3V0UmVjdCBSZW5kZXJUZXh0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWMKIAogICAgIC8vIFRoZSByZW5kZXJlciB3ZSBjaG9z
ZSB0byByZXBhaW50IG1heSBiZSBhbiBhbmNlc3RvciBvZiByZXBhaW50Q29udGFpbmVyLCBidXQg
d2UgbmVlZCB0byBkbyBhIHJlcGFpbnRDb250YWluZXItcmVsYXRpdmUgcmVwYWludC4KICAgICBp
ZiAocmVwYWludENvbnRhaW5lciAmJiByZXBhaW50Q29udGFpbmVyICE9IHJlbmRlcmVyVG9SZXBh
aW50ICYmICFyZW5kZXJlclRvUmVwYWludC0+aXNEZXNjZW5kYW50T2YocmVwYWludENvbnRhaW5l
cikpCi0gICAgICAgIHJldHVybiByZXBhaW50Q29udGFpbmVyLT5jbGlwcGVkT3ZlcmZsb3dSZWN0
Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyKTsKKyAgICAgICAgcmV0dXJuIHJlcGFpbnRDb250
YWluZXItPmNsaXBwZWRPdmVyZmxvd1JlY3QocmVwYWludENvbnRhaW5lciwgY29udGV4dCk7CiAK
LSAgICByZXR1cm4gcmVuZGVyZXJUb1JlcGFpbnQtPmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBh
aW50KHJlcGFpbnRDb250YWluZXIpOworICAgIHJldHVybiByZW5kZXJlclRvUmVwYWludC0+Y2xp
cHBlZE92ZXJmbG93UmVjdChyZXBhaW50Q29udGFpbmVyLCBjb250ZXh0KTsKIH0KIAogTGF5b3V0
UmVjdCBSZW5kZXJUZXh0Ojpjb2xsZWN0U2VsZWN0aW9uR2VvbWV0cmllc0ZvckxpbmVCb3hlcyhj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGNsaXBU
b1Zpc2libGVDb250ZW50LCBWZWN0b3I8TGF5b3V0UmVjdD4qIHJlY3RzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0LmgKaW5kZXggZTIwMjA0NDNkYjhjZTU3YzYwNWYwOTUxMDlkOGVk
NDUwNTM3NTQzMS4uNTE5MjE0ODQ5YzRlMjI4ZmQyNzg5MjdlYWU1NTg5YTJmNzhmMDU1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCkBAIC0yMDIsNyArMjAyLDcgQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgc2V0U2VsZWN0aW9uU3RhdGUoSGlnaGxpZ2h0U3RhdGUpIGZpbmFs
OwogICAgIExheW91dFJlY3Qgc2VsZWN0aW9uUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVu
dCA9IHRydWUpIGZpbmFsOwotICAgIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJl
cGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29u
c3QgZmluYWw7CisgICAgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0KGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFZpc2libGVSZWN0Q29udGV4dCkg
Y29uc3QgZmluYWw7CiAKICAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKGZs
b2F0IGxlYWRXaWR0aCwgSGFzaFNldDxjb25zdCBGb250Kj4mIGZhbGxiYWNrRm9udHMsIEdseXBo
T3ZlcmZsb3cmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4
IDNjZDMwZGI3NWY1MWZmMmE2MzE2NGJhYTU2M2ViYTI1ZGQwNTRmZDIuLjIwMmIzNDJhNzE4NWZm
YWEwZWU4ZWQwNTZhZTgzMzk4MDc2NWVmNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5jcHAKQEAgLTc1NCw3ICs3NTQsNyBAQCB2b2lkIFJlbmRlclZpZXc6OnVwZGF0ZVZp
c2libGVWaWV3cG9ydFJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpCiAgICAgcmVzdW1l
UGF1c2VkSW1hZ2VBbmltYXRpb25zSWZOZWVkZWQodmlzaWJsZVJlY3QpOwogCiAgICAgZm9yIChh
dXRvKiByZW5kZXJlciA6IG1fdmlzaWJsZUluVmlld3BvcnRSZW5kZXJlcnMpIHsKLSAgICAgICAg
YXV0byBzdGF0ZSA9IHZpc2libGVSZWN0LmludGVyc2VjdHMoZW5jbG9zaW5nSW50UmVjdChyZW5k
ZXJlci0+YWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCkpKSA/IFZpc2libGVJblZpZXdwb3J0
U3RhdGU6OlllcyA6IFZpc2libGVJblZpZXdwb3J0U3RhdGU6Ok5vOworICAgICAgICBhdXRvIHN0
YXRlID0gdmlzaWJsZVJlY3QuaW50ZXJzZWN0cyhlbmNsb3NpbmdJbnRSZWN0KHJlbmRlcmVyLT5h
YnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KCkpKSA/IFZpc2libGVJblZpZXdw
b3J0U3RhdGU6OlllcyA6IFZpc2libGVJblZpZXdwb3J0U3RhdGU6Ok5vOwogICAgICAgICByZW5k
ZXJlci0+c2V0VmlzaWJsZUluVmlld3BvcnRTdGF0ZShzdGF0ZSk7CiAgICAgfQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVj
dC5jcHAKaW5kZXggYzY5NDI3ZjlmNjQ1YmM4ODFmYjIzNTY1MzQxNWExZWU5MzcwODFmYi4uNmIw
M2NmMTFkMWY0NWM1YzYxY2UxYWNjY2Y4MGM1MzA3YjUwMTk3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCkBA
IC05Myw3ICs5Myw3IEBAIHZvaWQgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6cGFpbnQoUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikKICAgICBSZW5kZXJCbG9jazo6cGFp
bnQoY2hpbGRQYWludEluZm8sIGNoaWxkUG9pbnQpOwogfQogCi1MYXlvdXRSZWN0IFJlbmRlclNW
R0ZvcmVpZ25PYmplY3Q6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0CitMYXlvdXRSZWN0IFJl
bmRlclNWR0ZvcmVpZ25PYmplY3Q6OmNsaXBwZWRPdmVyZmxvd1JlY3QoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVmlzaWJsZVJlY3RDb250ZXh0KSBjb25z
dAogewogICAgIHJldHVybiBTVkdSZW5kZXJTdXBwb3J0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9y
UmVwYWludCgqdGhpcywgcmVwYWludENvbnRhaW5lcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oCmluZGV4IDYzMThj
ZjdkNDNiY2E0OGFlYWJhNzY5ODY0ZWZhMmEzYTg0ZmNhMTMuLjMzNTMyZDliZWYwNjY5ODZlYTNl
NWY3ZGUxZTE2YjBmMzlkZWFlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oCkBAIC0zOSw3ICszOSw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVy
cmlkZTsKIAotICAgIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0KGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFZpc2libGVSZWN0Q29udGV4dCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBjb21wdXRlRmxvYXRWaXNpYmxlUmVj
dEluQ29udGFpbmVyKGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIGNvbnRhaW5lciwgVmlzaWJsZVJlY3RDb250ZXh0KSBjb25zdCBvdmVycmlkZTsKICAgICBP
cHRpb25hbDxMYXlvdXRSZWN0PiBjb21wdXRlVmlzaWJsZVJlY3RJbkNvbnRhaW5lcihjb25zdCBM
YXlvdXRSZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogY29udGFpbmVyLCBWaXNp
YmxlUmVjdENvbnRleHQpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50U3RvcC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdHcmFkaWVudFN0b3AuaAppbmRleCAzNTUwZWQxNWZi
M2QzN2U2NWRhODBhN2IxODVlMDZmMGZjNGZkMjI0Li40MDExMjg5MDdhNWY3MWNiMTFhZmMwMjM5
NDZjYjk1NmYwNTc4ODhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0dyYWRpZW50U3RvcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJpdmF0ZToKICAg
ICAvLyBUaGVzZSBvdmVycmlkZXMgYXJlIG5lZWRlZCB0byBwcmV2ZW50IEFTU0VSVHMgb24gPHN2
Zz48c3RvcCAvPjwvc3ZnPgogICAgIC8vIFJlbmRlck9iamVjdCdzIGRlZmF1bHQgaW1wbGVtZW50
YXRpb25zIEFTU0VSVF9OT1RfUkVBQ0hFRCgpCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNDAwCi0gICAgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dS
ZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KikgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gTGF5b3V0UmVjdCgpOyB9CisgICAgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZs
b3dSZWN0KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqLCBWaXNpYmxlUmVjdENvbnRleHQp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIExheW91dFJlY3QoKTsgfQogICAgIEZsb2F0UmVjdCBv
YmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9
CiAgICAgRmxvYXRSZWN0IHN0cm9rZUJvdW5kaW5nQm94KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gRmxvYXRSZWN0KCk7IH0KICAgICBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRp
bmF0ZXMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVy
LmgKaW5kZXggM2YwODE5NWYxZmFjYjIyM2U5OTI0NmU1ZmNjMWZlZjBiMjk0MDcwNS4uMmQzNWE1
ZWZkMmVjNWU3MzM4MjllZDFjYmJiNzU3ZmY4OGJmZTVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5oCkBAIC00
MCw4ICs0MCw4IEBAIHByaXZhdGU6CiAgICAgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJTVkdIaWRkZW5Db250YWluZXIiOyB9CiAKICAgICB2
b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgZmluYWw7Ci0gICAgCi0g
ICAgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KikgY29uc3QgZmluYWwgeyByZXR1cm4gTGF5b3V0UmVjdCgpOyB9CisK
KyAgICBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3QoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCosIFZpc2libGVSZWN0Q29udGV4dCkgY29uc3QgZmluYWwgeyByZXR1cm4gTGF5b3V0
UmVjdCgpOyB9CiAgICAgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9v
bCogd2FzRml4ZWQpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9vbCBub2RlQXRGbG9hdFBvaW50KGNv
bnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEZsb2F0UG9pbnQmIHBv
aW50SW5QYXJlbnQsIEhpdFRlc3RBY3Rpb24pIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCmluZGV4IGQ5NTE3MWNiZDY0YmY2ZmZl
ZDhmYWZjNDUzMWI3YjgzMmNjMzk5ZGEuLjMwNDk2OWRhZWY2OWRhM2Q3Zjk1ZmJjMzY5NWY3YzQ0
MDY2MDZmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSW5saW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0lubGluZS5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgRmxvYXRSZWN0IFJlbmRlclNWR0lubGluZTo6
cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSBjb25zdAogICAgIHJldHVybiBGbG9hdFJl
Y3QoKTsKIH0KIAotTGF5b3V0UmVjdCBSZW5kZXJTVkdJbmxpbmU6OmNsaXBwZWRPdmVyZmxvd1Jl
Y3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIpIGNvbnN0CitMYXlvdXRSZWN0IFJlbmRlclNWR0lubGluZTo6Y2xpcHBlZE92ZXJmbG93UmVj
dChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBWaXNpYmxl
UmVjdENvbnRleHQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFNWR1JlbmRlclN1cHBvcnQ6OmNsaXBw
ZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KCp0aGlzLCByZXBhaW50Q29udGFpbmVyKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCmluZGV4IDFm
NWMxNWFlZjY2NzE4ZTUwMmEwMTgyNGJmODc3ODQ0Yjg3NjMwZDcuLmZkNzJkZTg2Nzk3M2QwZjhh
NWFlOWQ3MjMzZWY0NzlkOWM3MDcyOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbmxpbmUuaApAQCAtNTAsNyArNTAsNyBAQCBwcml2YXRlOgogICAgIEZs
b2F0UmVjdCBzdHJva2VCb3VuZGluZ0JveCgpIGNvbnN0IGZpbmFsOwogICAgIEZsb2F0UmVjdCBy
ZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpIGNvbnN0IGZpbmFsOwogCi0gICAgTGF5b3V0
UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBmaW5hbDsKKyAgICBMYXlvdXRSZWN0IGNs
aXBwZWRPdmVyZmxvd1JlY3QoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgVmlzaWJsZVJlY3RDb250ZXh0KSBjb25zdCBmaW5hbDsKICAgICBPcHRpb25hbDxG
bG9hdFJlY3Q+IGNvbXB1dGVGbG9hdFZpc2libGVSZWN0SW5Db250YWluZXIoY29uc3QgRmxvYXRS
ZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogY29udGFpbmVyLCBWaXNpYmxlUmVj
dENvbnRleHQpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvckNvbnRhaW5lciwgVHJhbnNmb3JtU3Rh
dGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzLCBib29sKiB3YXNGaXhlZCkgY29uc3QgZmluYWw7CiAg
ICAgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikg
Y29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR01vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHTW9kZWxPYmplY3QuY3BwCmluZGV4IDIzYTFmZWI5ZDhmNzY3NmM2OGQ0ZDM1ZDUzMWRh
MmVkYzNhZTg1NGQuLjIwMTkxNWMzZmI1ZDIyNzRkMmJkMWUyMGE2NDk5NDY0YTAxZmVkOWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxP
YmplY3QuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFJlbmRlclNWR01vZGVsT2JqZWN0OjpSZW5kZXJT
VkdNb2RlbE9iamVjdChTVkdFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0CiB7CiB9
CiAKLUxheW91dFJlY3QgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNsaXBwZWRPdmVyZmxvd1JlY3RG
b3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIp
IGNvbnN0CitMYXlvdXRSZWN0IFJlbmRlclNWR01vZGVsT2JqZWN0OjpjbGlwcGVkT3ZlcmZsb3dS
ZWN0KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFZpc2li
bGVSZWN0Q29udGV4dCkgY29uc3QKIHsKICAgICByZXR1cm4gU1ZHUmVuZGVyU3VwcG9ydDo6Y2xp
cHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoKnRoaXMsIHJlcGFpbnRDb250YWluZXIpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVj
dC5oCmluZGV4IDEwNDM3YWQyZDQ4ZWI5MTgxM2QyYjJkZGUzODdiYzNmNzg3YjM3ZWYuLjFlYjg2
NDYzOWM4MjBkZjAwMjAzMDQxMTAzYjgzNjI4NWQzN2Q0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKQEAgLTQ2LDcgKzQ2
LDcgQEAgY2xhc3MgU1ZHRWxlbWVudDsKIGNsYXNzIFJlbmRlclNWR01vZGVsT2JqZWN0IDogcHVi
bGljIFJlbmRlckVsZW1lbnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoUmVuZGVyU1ZH
TW9kZWxPYmplY3QpOwogcHVibGljOgotICAgIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVj
dEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
cikgY29uc3Qgb3ZlcnJpZGU7CisgICAgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0KGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFZpc2libGVSZWN0
Q29udGV4dCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBjb21wdXRl
RmxvYXRWaXNpYmxlUmVjdEluQ29udGFpbmVyKGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIGNvbnRhaW5lciwgVmlzaWJsZVJlY3RDb250ZXh0KSBjb25zdCBm
aW5hbDsKICAgICBMYXlvdXRSZWN0IG91dGxpbmVCb3VuZHNGb3JSZXBhaW50KGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IFJlbmRlckdlb21ldHJ5
TWFwKikgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jvb3QuY3BwCmluZGV4IGZiZGU0YjQ2ZWMxZDFlNTcyYTFlNWVjYmJiNzgwM2RhNzVi
M2YzOWUuLmVlMzVmMzEwZjU2MzdhMjhkNWQ5YzAzOTk0OTdkN2Q2NjQyMmEyNTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApAQCAtMzUxLDcg
KzM1MSw3IEBAIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgUmVuZGVyU1ZHUm9vdDo6bG9jYWxUb1Bh
cmVudFRyYW5zZm9ybSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fbG9jYWxUb1BhcmVudFRyYW5zZm9y
bTsKIH0KIAotTGF5b3V0UmVjdCBSZW5kZXJTVkdSb290OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9y
UmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBj
b25zdAorTGF5b3V0UmVjdCBSZW5kZXJTVkdSb290OjpjbGlwcGVkT3ZlcmZsb3dSZWN0KGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFZpc2libGVSZWN0Q29u
dGV4dCBjb250ZXh0KSBjb25zdAogewogICAgIGlmIChzdHlsZSgpLnZpc2liaWxpdHkoKSAhPSBW
aXNpYmlsaXR5OjpWaXNpYmxlICYmICFlbmNsb3NpbmdMYXllcigpLT5oYXNWaXNpYmxlQ29udGVu
dCgpKQogICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwpAQCAtMzYzLDcgKzM2Myw3IEBAIExh
eW91dFJlY3QgUmVuZGVyU1ZHUm9vdDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iCiAgICAgaWYgKG1faGFzQm94RGVjb3JhdGlvbnMgfHwgaGFz
UmVuZGVyT3ZlcmZsb3coKSkKICAgICAgICAgcmVwYWludFJlY3QudW5pdGUodW5pb25SZWN0KGxv
Y2FsU2VsZWN0aW9uUmVjdChmYWxzZSksIHZpc3VhbE92ZXJmbG93UmVjdCgpKSk7CiAKLSAgICBy
ZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChlbmNsb3NpbmdJbnRS
ZWN0KHJlcGFpbnRSZWN0KSwgcmVwYWludENvbnRhaW5lcik7CisgICAgcmV0dXJuIFJlbmRlclJl
cGxhY2VkOjpjb21wdXRlUmVjdChlbmNsb3NpbmdJbnRSZWN0KHJlcGFpbnRSZWN0KSwgcmVwYWlu
dENvbnRhaW5lciwgY29udGV4dCk7CiB9CiAKIE9wdGlvbmFsPEZsb2F0UmVjdD4gUmVuZGVyU1ZH
Um9vdDo6Y29tcHV0ZUZsb2F0VmlzaWJsZVJlY3RJbkNvbnRhaW5lcihjb25zdCBGbG9hdFJlY3Qm
IHJlY3QsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGNvbnRhaW5lciwgVmlzaWJsZVJl
Y3RDb250ZXh0IGNvbnRleHQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUm9vdC5oCmluZGV4IDljNTI0MWVhNWI3NmZmODMzY2NjM2RiNGY2OGUzNTIyODcw
MjAzOWQuLmI1MzkxNjI3ZDU4MDViZDZiY2UzMDAwOWI5OGE2YzBkOTQ3MjM5NTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCkBAIC05Miw3ICs5Miw3
IEBAIHByaXZhdGU6CiAKICAgICBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRh
aW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9u
KSBvdmVycmlkZTsKIAotICAgIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFp
bnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3Qg
b3ZlcnJpZGU7CisgICAgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0KGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFZpc2libGVSZWN0Q29udGV4dCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBjb21wdXRlRmxvYXRWaXNp
YmxlUmVjdEluQ29udGFpbmVyKGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIGNvbnRhaW5lciwgVmlzaWJsZVJlY3RDb250ZXh0KSBjb25zdCBvdmVycmlkZTsK
IAogICAgIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiBhbmNlc3RvckNvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0Zs
YWdzLCBib29sKiB3YXNGaXhlZCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAppbmRleCA5NzU1OWZkYzY2OGRkNzAxZjA5
ZDI3NGVhMzFmMjZhMzc0MWIzODYyLi44NTBlY2Y3MWY2MjMyNWNhZDE2YjZkOThlOWFlYjBlMTU3
Yzg4MWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4
dC5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgY29uc3QgUmVuZGVyU1ZHVGV4dCogUmVuZGVyU1ZHVGV4
dDo6bG9jYXRlUmVuZGVyU1ZHVGV4dEFuY2VzdG9yKGNvbnN0IFJlbmRlck9iamUKICAgICByZXR1
cm4gbGluZWFnZU9mVHlwZTxSZW5kZXJTVkdUZXh0PihzdGFydCkuZmlyc3QoKTsKIH0KIAotTGF5
b3V0UmVjdCBSZW5kZXJTVkdUZXh0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdAorTGF5b3V0
UmVjdCBSZW5kZXJTVkdUZXh0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0KGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFZpc2libGVSZWN0Q29udGV4dCkgY29uc3QK
IHsKICAgICByZXR1cm4gU1ZHUmVuZGVyU3VwcG9ydDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJl
cGFpbnQoKnRoaXMsIHJlcGFpbnRDb250YWluZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAppbmRleCAyZDhhNWEyNGYxOWQ1YmM4MTJkOTI5ODZj
MjZlNjVjNjQ1YTZmNDJhLi4zMzg4MzFmNDk4ZGY5YTBmYmM0M2YyZWQxM2I3NzlkNjcxZDk4NTY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaApAQCAt
NzcsNyArNzcsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxG
bG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgTGF5b3V0
UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRSZWN0
IGNsaXBwZWRPdmVyZmxvd1JlY3QoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgVmlzaWJsZVJlY3RDb250ZXh0KSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRp
b25hbDxMYXlvdXRSZWN0PiBjb21wdXRlVmlzaWJsZVJlY3RJbkNvbnRhaW5lcihjb25zdCBMYXlv
dXRSZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogY29udGFpbmVyLCBWaXNpYmxl
UmVjdENvbnRleHQpIGNvbnN0IG92ZXJyaWRlOwogICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gY29t
cHV0ZUZsb2F0VmlzaWJsZVJlY3RJbkNvbnRhaW5lcihjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBjb250YWluZXIsIFZpc2libGVSZWN0Q29udGV4dCkgY29u
c3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IDJmNThlY2FiZWRiNmJiZGZlODViMzdjNWU5MGVh
YWU4YjI3NzFmNzkuLjhmNGZlMDU4ZTNjMjJkOWUxMDdmYjllNWUxMTQ2MWNlYTUyYmQxN2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNU
ZXh0LmNwcApAQCAtMjM5LDcgKzIzOSw3IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiB3cml0ZVBvc2l0
aW9uQW5kU3R5bGUoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJlbmRlckVsZW1lbnQmIHJlCiAgICAg
ICAgIHRzIDw8ICIgY2xpcHBlZCI7CiAgICAgfQogCi0gICAgdHMgPDwgIiAiIDw8IGVuY2xvc2lu
Z0ludFJlY3QocmVuZGVyZXIuYWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCkpOworICAgIHRz
IDw8ICIgIiA8PCBlbmNsb3NpbmdJbnRSZWN0KHJlbmRlcmVyLmFic29sdXRlQ2xpcHBlZE92ZXJm
bG93UmVjdEZvclJlcGFpbnQoKSk7CiAKICAgICB3cml0ZVN0eWxlKHRzLCByZW5kZXJlcik7CiAg
ICAgcmV0dXJuIHRzOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBkNjJkMDAxYjAxMTYxZjE2ZWIyZjMzNmQ1Nzc3ZDM1ZDgz
ZTQxYTMuLjg4OTE2YjA3ODUxMDAzZWFhOWI5MTdmMGZkNTkyMWY3NTE4MzMxMTUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAyMS0wNS0xOCAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+
CisKKyAgICAgICAgW1dQRV0gU3BhdGlhbCBuYXZpZ2F0aW9uIHRlc3RzIGZhaWwgd2l0aCBhc3lu
YyBvdmVyZmxvdyBzY3JvbGxpbmcgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1OTIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGZhaWx1cmUgZXhwZWN0YXRpb25zIGZvciBzcGF0
aWFsIG5hdmlnYXRpb24gdGVzdHMgb24gV1BFLgorCisgICAgICAgICogcGxhdGZvcm0vd3BlL1Rl
c3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMDUtMTAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFu
ZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIGZhc3QvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW0tdmlkZW8tZWxlbWVudC12aWRlby10cmFja3MtZGlzYWJsZWQuaHRtbCBmYWlscwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhYTM5ZGI0YjQ1
NjBkZTA2MjdiYzcyOWU4YjM3OTRiZGUxMjMxYjExLi4xMWQzZTAyMzdhYTU0NTY1OTQxZjI3ZTEz
Yzg1M2ZlNTk5YzZiYmY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtNzM5LDkgKzczOSw2IEBAIHdlYmtpdC5vcmcvYi8yMjUzNzkgWyBEZWJ1ZyBdIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIveHJEZXZpY2VfcmVxCiB3ZWJraXQu
b3JnL2IvMjI1Mzc5IFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnhyL3hyRGV2aWNlX3JlcXVlc3RTZXNzaW9uX25vbl9pbW1lcnNpdmVfbm9fZ2VzdHVyZS5odHRw
cy5odG1sIFsgQ3Jhc2ggXQogCiAjIFRlc3QgZmFpbGluZyBzaW5jZSBhc3luYyBzY3JvbGxpbmcg
d2FzIGFjdGl2YXRlZCBpbiBXUEUuCi13ZWJraXQub3JnL2IvMjI0NTk2IGZhc3Qvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtY2xpcHBlZC1vdmVyZmxvd2VkLWNvbnRlbnQuaHRtbCBbIEZhaWx1cmUg
XQotd2Via2l0Lm9yZy9iLzIyNDU5NiBmYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LW9ubHkt
Y2xpcHBlZC1vdmVyZmxvdy1jb250ZW50Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8y
MjQ1OTYgZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1zaW1wbGUtY29udGVudC1vdmVyZmxv
dy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjI0NTk2IGNzczMvZmlsdGVycy9jbGlw
cGluZy1vdmVyZmxvdy1zY3JvbGwtd2l0aC1waXhlbC1tb3ZpbmctZWZmZWN0LW9uLXBhcmVudC5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjI0NTk2IGNzczMvZmlsdGVy
cy9jbGlwcGluZy1vdmVyZmxvdy1zY3JvbGwtd2l0aC1waXhlbC1tb3ZpbmctZWZmZWN0LW9uLmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMjQ1OTYgZmFzdC9zY3JvbGxp
bmcvcnRsLXNjcm9sbGJhcnMtb3ZlcmZsb3ctZGlyLXJ0bC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429194</attachid>
            <date>2021-05-20 11:12:40 -0700</date>
            <delta_ts>2021-05-20 17:24:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225922-20210520191238.patch</filename>
            <type>text/plain</type>
            <size>6742</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3Nzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODAxMzY2MWI5NmU0M2I1
ODg3OGQ1ZTU0ZGNjN2YwNWY3NzZkMWFjZC4uNTk2MDllNTVlNjMyN2YwNTFjYjk5NDA1YTIzNzcy
ZWVhNTI2YTVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA1LTIwICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXSBTcGF0aWFsIG5hdmln
YXRpb24gdGVzdHMgZmFpbCB3aXRoIGFzeW5jIG92ZXJmbG93IHNjcm9sbGluZyBlbmFibGVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU5MjIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYWJzb2x1
dGVDbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yU3BhdGlhbE5hdmlnYXRpb24gZm9yIHdoZW4gdGhlCisg
ICAgICAgIGNsaXBwZWQgb3ZlcmZsb3cgcmVjdCBub3QgdGFraW5nIGludG8gYWNjb3VudCBjb21w
b3NpdGVkIHNjcm9sbGluZyBpcworICAgICAgICBuZWNlc3NhcnkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzT2ZmU2NyZWVuIGNvbnN0KToKKyAgICAgICAgKiBw
YWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omhhc09mZnNjcmVl
blJlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6YWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yU3BhdGlh
bE5hdmlnYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojp2aXNp
YmxlUmVjdENvbnRleHRGb3JTcGF0aWFsTmF2aWdhdGlvbik6CisKIDIwMjEtMDUtMjAgIENocmlz
IExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFsbG93IHBhc3NpbmcgYSBWaXNp
YmxlUmVjdENvbnRleHQgd2hlbiBjYWxjdWxhdGluZyB0aGUgY2xpcHBlZCBvdmVyZmxvdyByZWN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCBjMzkwYzk4ZTg3ZmFkYmI1YzkxZmZjZWJiYTEyYjlm
ZGMxNDJkM2E4Li4xYzQ1MjY2ZWI3ZDVlZTRmYTdkYmIzNDdkNTVlMGQ3MTVmMGZjMjYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAKQEAgLTU1MCw3ICs1NTAsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmlzT2ZmU2NyZWVuKCkgY29uc3QKICAgICBpZiAoIW1fcmVuZGVyZXIpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgSW50UmVjdCBjb250ZW50UmVjdCA9IHNuYXBwZWRJ
bnRSZWN0KG1fcmVuZGVyZXItPmFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQo
KSk7CisgICAgSW50UmVjdCBjb250ZW50UmVjdCA9IHNuYXBwZWRJbnRSZWN0KG1fcmVuZGVyZXIt
PmFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdEZvclNwYXRpYWxOYXZpZ2F0aW9uKCkpOwogICAg
IC8vIEZJWE1FOiB1bmNsZWFyIGlmIHdlIG5lZWQgTGVnYWN5SU9TRG9jdW1lbnRWaXNpYmxlUmVj
dC4KICAgICBJbnRSZWN0IHZpZXdSZWN0ID0gbV9yZW5kZXJlci0+dmlldygpLmZyYW1lVmlldygp
LnZpc2libGVDb250ZW50UmVjdChTY3JvbGxhYmxlQXJlYTo6TGVnYWN5SU9TRG9jdW1lbnRWaXNp
YmxlUmVjdCk7CiAgICAgdmlld1JlY3QuaW50ZXJzZWN0KGNvbnRlbnRSZWN0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKaW5kZXggNDljMDRhNDQyZjc3MjhkMzgy
MmJiNzQ3YmVkZWFhYjQ3YzNkMTkxNy4uOTgyNzVjNTZlYTIyNjhmMjNjOWY1OTFkNGQ4NzY2YjNk
ODliMDg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKQEAg
LTMyNSw3ICszMjUsNyBAQCBib29sIGhhc09mZnNjcmVlblJlY3QoTm9kZSogbm9kZSwgRm9jdXNE
aXJlY3Rpb24gZGlyZWN0aW9uKQogICAgIGlmICghcmVuZGVyKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAotICAgIExheW91dFJlY3QgcmVjdChyZW5kZXItPmFic29sdXRlQ2xpcHBlZE92ZXJmbG93
UmVjdEZvclJlcGFpbnQoKSk7CisgICAgTGF5b3V0UmVjdCByZWN0KHJlbmRlci0+YWJzb2x1dGVD
bGlwcGVkT3ZlcmZsb3dSZWN0Rm9yU3BhdGlhbE5hdmlnYXRpb24oKSk7CiAgICAgaWYgKHJlY3Qu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCmluZGV4IDJiNzkyZWY0YzZkZGRkZTA0MjRkZDk4NjIxNjI2NWY1ZmM5
NDA4NDUuLmRjYjRkZjUzMzhkZGNiMDYxODE0ZDdmNmZiMDdmMmQ5NGNjNzRlOGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTYyNyw2ICs2MjcsNyBAQCBwdWJs
aWM6CiAgICAgLy8gUmV0dXJucyB0aGUgcmVjdCB0aGF0IHNob3VsZCBiZSByZXBhaW50ZWQgd2hl
bmV2ZXIgdGhpcyBvYmplY3QgY2hhbmdlcy4gVGhlIHJlY3QgaXMgaW4gdGhlIHZpZXcncwogICAg
IC8vIGNvb3JkaW5hdGUgc3BhY2UuIFRoaXMgbWV0aG9kIGRlYWxzIHdpdGggb3V0bGluZXMgYW5k
IG92ZXJmbG93LgogICAgIExheW91dFJlY3QgYWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0Rm9y
UmVwYWludCgpIGNvbnN0IHsgcmV0dXJuIGNsaXBwZWRPdmVyZmxvd1JlY3QobnVsbHB0ciwgdmlz
aWJsZVJlY3RDb250ZXh0Rm9yUmVwYWludCgpKTsgfQorICAgIExheW91dFJlY3QgYWJzb2x1dGVD
bGlwcGVkT3ZlcmZsb3dSZWN0Rm9yU3BhdGlhbE5hdmlnYXRpb24oKSBjb25zdCB7IHJldHVybiBj
bGlwcGVkT3ZlcmZsb3dSZWN0KG51bGxwdHIsIHZpc2libGVSZWN0Q29udGV4dEZvclNwYXRpYWxO
YXZpZ2F0aW9uKCkpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgSW50UmVjdCBwaXhlbFNuYXBwZWRB
YnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIExheW91dFJl
Y3QgY2xpcHBlZE92ZXJmbG93UmVjdChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBWaXNpYmxlUmVjdENvbnRleHQpIGNvbnN0OwogICAgIExheW91dFJlY3Qg
Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lcikgY29uc3QgeyByZXR1cm4gY2xpcHBlZE92ZXJmbG93UmVjdChy
ZXBhaW50Q29udGFpbmVyLCB2aXNpYmxlUmVjdENvbnRleHRGb3JSZXBhaW50KCkpOyB9CkBAIC03
NTksNiArNzYwLDcgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBGcmFnbWVudGVkRmxvd1N0YXRl
IGNvbXB1dGVkRnJhZ21lbnRlZEZsb3dTdGF0ZShjb25zdCBSZW5kZXJPYmplY3QmKTsKIAogICAg
IHN0YXRpYyBWaXNpYmxlUmVjdENvbnRleHQgdmlzaWJsZVJlY3RDb250ZXh0Rm9yUmVwYWludCgp
OworICAgIHN0YXRpYyBWaXNpYmxlUmVjdENvbnRleHQgdmlzaWJsZVJlY3RDb250ZXh0Rm9yU3Bh
dGlhbE5hdmlnYXRpb24oKTsKIAogICAgIGJvb2wgaXNTZXROZWVkc0xheW91dEZvcmJpZGRlbigp
IGNvbnN0OwogCkBAIC0xMTM3LDYgKzExMzksMTEgQEAgaW5saW5lIGF1dG8gUmVuZGVyT2JqZWN0
Ojp2aXNpYmxlUmVjdENvbnRleHRGb3JSZXBhaW50KCkgLT4gVmlzaWJsZVJlY3RDb250ZXh0CiAg
ICAgcmV0dXJuIHsgZmFsc2UsIGZhbHNlLCB7IFZpc2libGVSZWN0Q29udGV4dE9wdGlvbjo6QXBw
bHlDb250YWluZXJDbGlwLCBWaXNpYmxlUmVjdENvbnRleHRPcHRpb246OkFwcGx5Q29tcG9zaXRl
ZENvbnRhaW5lclNjcm9sbHMgfSB9OwogfQogCitpbmxpbmUgYXV0byBSZW5kZXJPYmplY3Q6OnZp
c2libGVSZWN0Q29udGV4dEZvclNwYXRpYWxOYXZpZ2F0aW9uKCkgLT4gVmlzaWJsZVJlY3RDb250
ZXh0Cit7CisgICAgcmV0dXJuIHsgZmFsc2UsIGZhbHNlLCB7IFZpc2libGVSZWN0Q29udGV4dE9w
dGlvbjo6QXBwbHlDb250YWluZXJDbGlwLCBWaXNpYmxlUmVjdENvbnRleHRPcHRpb246OkFwcGx5
Q29tcG9zaXRlZENvbnRhaW5lclNjcm9sbHMsIFZpc2libGVSZWN0Q29udGV4dE9wdGlvbjo6QXBw
bHlDb21wb3NpdGVkQ2xpcHMgfSB9OworfQorCiBpbmxpbmUgYm9vbCBSZW5kZXJPYmplY3Q6Omlz
U2V0TmVlZHNMYXlvdXRGb3JiaWRkZW4oKSBjb25zdAogewogI2lmIEFTU0VSVF9FTkFCTEVECmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggNDUzNjk2MWNkNzMzYTZmNjk0ZmMxMzQwNDA0MGFjZDg2OTU2MzMzYy4uMmQwYTFhZGEx
MmM3NTAwMTU1MTY5YjBlNWQ2YzdmYzIwYTIxNWM4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDIxLTA1LTIwICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BF
XSBTcGF0aWFsIG5hdmlnYXRpb24gdGVzdHMgZmFpbCB3aXRoIGFzeW5jIG92ZXJmbG93IHNjcm9s
bGluZyBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjU5MjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTb21lIHNwYXRpYWwgbmF2aWdhdGlvbiB0ZXN0cyBub3cgcGFzcyBvbiBXUEUuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0wNS0yMCAgRmVs
aXBlIEVyaWFzICA8ZmVsaXBlZXJpYXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWZsZXhi
b3hdIFdyb25nIGhlaWdodCBvZiBhbiBlbXB0eSB0YWJsZSBpbnNpZGUgYW4gb3J0aG9nb25hbCBm
bGV4IHBhcmVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCBlMzAzMWNmZmJjNmIzMjZkZTQ0MmJmMWQ1MmRlNzgwMTBkYWUzMDZhLi41NTJkMjlmMTU0ZWE5
OGIyNWM1MTBmZWY4MjViMzMyZjlmODE2NGVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtNzA4LDkgKzcwOCw2IEBAIHdlYmtpdC5vcmcvYi8yMjUzNzkg
WyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIveHJEZXZpY2Vf
cmVxCiB3ZWJraXQub3JnL2IvMjI1Mzc5IFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnhyL3hyRGV2aWNlX3JlcXVlc3RTZXNzaW9uX25vbl9pbW1lcnNpdmVfbm9f
Z2VzdHVyZS5odHRwcy5odG1sIFsgQ3Jhc2ggXQogCiAjIFRlc3QgZmFpbGluZyBzaW5jZSBhc3lu
YyBzY3JvbGxpbmcgd2FzIGFjdGl2YXRlZCBpbiBXUEUuCi13ZWJraXQub3JnL2IvMjI0NTk2IGZh
c3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtY2xpcHBlZC1vdmVyZmxvd2VkLWNvbnRlbnQuaHRt
bCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIyNDU5NiBmYXN0L3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LW9ubHktY2xpcHBlZC1vdmVyZmxvdy1jb250ZW50Lmh0bWwgWyBGYWlsdXJlIF0KLXdl
YmtpdC5vcmcvYi8yMjQ1OTYgZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1zaW1wbGUtY29u
dGVudC1vdmVyZmxvdy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjI0NTk2IGNzczMv
ZmlsdGVycy9jbGlwcGluZy1vdmVyZmxvdy1zY3JvbGwtd2l0aC1waXhlbC1tb3ZpbmctZWZmZWN0
LW9uLXBhcmVudC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjI0NTk2
IGNzczMvZmlsdGVycy9jbGlwcGluZy1vdmVyZmxvdy1zY3JvbGwtd2l0aC1waXhlbC1tb3Zpbmct
ZWZmZWN0LW9uLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMjQ1OTYg
ZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtb3ZlcmZsb3ctZGlyLXJ0bC5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>