<?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>290309</bug_id>
          
          <creation_ts>2025-03-24 07:23:46 -0700</creation_ts>
          <short_desc>REGRESSION(292590@main): Broke the build</short_desc>
          <delta_ts>2025-03-24 07:28:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          
          <blocked>290262</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2105563</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2025-03-24 07:23:46 -0700</bug_when>
    <thetext>https://commits.webkit.org/292590@main introduced a regression:
Broke the build

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2105565</commentid>
    <comment_count>1</comment_count>
      <attachid>474697</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2025-03-24 07:23:54 -0700</bug_when>
    <thetext>Created attachment 474697
[fast-cq]REVERT of 292590@main

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2105566</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-03-24 07:27:05 -0700</bug_when>
    <thetext>Committed 292593@main (fa08ff3ba386): &lt;https://commits.webkit.org/292593@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 474697.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2105567</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-03-24 07:28:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/147746863&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>474697</attachid>
            <date>2025-03-24 07:23:54 -0700</date>
            <delta_ts>2025-03-24 07:27:05 -0700</delta_ts>
            <desc>[fast-cq]REVERT of 292590@main</desc>
            <filename>bug-290309-20250324142353.patch</filename>
            <type>text/plain</type>
            <size>34832</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSAyOTY0ODc1ZTcxMWYxZmNkOTc4OTg4ZGJlNjY1ZTAzNTQ3NzUzZWM0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBNb24sIDI0IE1hciAyMDI1IDE0OjIzOjUxICswMDAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIDI5MjU5MEBtYWluLgogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI5MDMwOQoKQnJva2UgdGhlIGJ1aWxkCgpSZXZlcnRlZCBjaGFu
Z2VzZXQ6CgoiW0NsZWFudXBdIE1vdmUgZnVuY3Rpb25zIGZyb20gUmVuZGVyT2JqZWN0IHRvIFJl
bmRlckVsZW1lbnQgKGNvbnQuLi4pIgpodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjkwMjYyCmh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnLzI5MjU5MEBtYWluCi0tLQog
Li4uL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVJdGVyYXRvcklubGluZXMuaCAgIHwgIDUgKy0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCAgICB8IDc2IC0tLS0tLS0t
LS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmggICAg
ICB8ICA5IC0tLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnRJbmxpbmVzLmgg
IHwgIDMgLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcCAgIHwg
IDMgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwICAgICB8IDc0
ICsrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oICAgICAgIHwgMTEgKysrCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0SW5s
aW5lcy5oICAgfCAgNSArKwogLi4uL3JlbmRlcmluZy9saW5lL0xpbmVJbmxpbmVIZWFkZXJzLmgg
ICAgICAgIHwgMTIgKy0tCiAuLi4vc3ZnL1NWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uY3BwICAg
ICAgICAgfCAgMiArLQogLi4uL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5j
cHAgIHwgIDYgKy0KIC4uLi91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrLmNwcCAgICAg
ICB8ICAyICstCiAuLi4vdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVtbi5jcHAg
fCAxNSArKy0tCiAuLi4vdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVtbi5oICAg
fCAgMiArLQogLi4uL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyUnVieS5jcHAgICAgICAgIHwg
MTEgKy0tCiAuLi4vdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJUYWJsZS5jcHAgICAgICAgfCAg
MiArLQogLi4uL21hYy9ET00vRE9NVUlLaXRFeHRlbnNpb25zLm1tICAgICAgICAgICAgIHwgMTMg
KystLQogMTcgZmlsZXMgY2hhbmdlZCwgMTI0IGluc2VydGlvbnMoKyksIDEyNyBkZWxldGlvbnMo
LSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lSXRl
cmF0b3JJbmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lSXRl
cmF0b3JJbmxpbmVzLmgKaW5kZXggYTVhMGZjZDY5MWEwLi4xMmQ5ZjVmMDExNDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVJdGVyYXRvcklubGluZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lSXRlcmF0b3JJbmxp
bmVzLmgKQEAgLTI2LDcgKzI2LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogaW5saW5lIGJv
b2wgTGVnYWN5SW5saW5lSXRlcmF0b3I6OmF0VGV4dFBhcmFncmFwaFNlcGFyYXRvcigpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGF1dG8qIHRleHRSZW5kZXJlciA9IGR5bmFtaWNE
b3duY2FzdDxSZW5kZXJUZXh0PihtX3JlbmRlcmVyKTsKKyAgICByZXR1cm4gdGV4dFJlbmRlcmVy
CisgICAgICAgICYmIG1fcmVuZGVyZXItPnByZXNlcnZlc05ld2xpbmUoKQorICAgICAgICAmJiB0
ZXh0UmVuZGVyZXItPmNoYXJhY3RlckF0KG1fcG9zKSA9PSAnXG4nOwogfQogCiBpbmxpbmUgYm9v
bCBMZWdhY3lJbmxpbmVJdGVyYXRvcjo6YXRQYXJhZ3JhcGhTZXBhcmF0b3IoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDAyY2ViNTRhYzk1
Ny4uM2JmNGMyYWJiZjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuY3BwCkBAIC0yMTkxLDI4ICsyMTkxLDYgQEAgYm9vbCBSZW5kZXJFbGVtZW50OjpoYXNTZWxm
UGFpbnRpbmdMYXllcigpIGNvbnN0CiAgICAgcmV0dXJuIGxheWVyTW9kZWxPYmplY3QuaGFzU2Vs
ZlBhaW50aW5nTGF5ZXIoKTsKIH0KIAotTGF5b3V0U2l6ZSBSZW5kZXJFbGVtZW50OjpvZmZzZXRG
cm9tQW5jZXN0b3JDb250YWluZXIoY29uc3QgUmVuZGVyRWxlbWVudCYgY29udGFpbmVyKSBjb25z
dAotewotICAgIExheW91dFNpemUgb2Zmc2V0OwotICAgIExheW91dFBvaW50IHJlZmVyZW5jZVBv
aW50OwotICAgIENoZWNrZWRQdHIgY3VycmVudENvbnRhaW5lciA9IHRoaXM7Ci0gICAgZG8gewot
ICAgICAgICBDaGVja2VkUHRyIG5leHRDb250YWluZXIgPSBjdXJyZW50Q29udGFpbmVyLT5jb250
YWluZXIoKTsKLSAgICAgICAgQVNTRVJUKG5leHRDb250YWluZXIpOwotICAgICAgICBpZiAoIW5l
eHRDb250YWluZXIpIHsKLSAgICAgICAgICAgIC8vIFRoaXMgbWVhbnMgd2UgcmVhY2hlZCB0aGUg
dG9wIHdpdGhvdXQgZmluZGluZyBjb250YWluZXIuCi0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgfQotICAgICAgICBBU1NFUlQoIWN1cnJlbnRDb250YWluZXItPmlzVHJhbnNmb3JtZWQoKSk7
Ci0gICAgICAgIExheW91dFNpemUgY3VycmVudE9mZnNldCA9IGN1cnJlbnRDb250YWluZXItPm9m
ZnNldEZyb21Db250YWluZXIoKm5leHRDb250YWluZXIsIHJlZmVyZW5jZVBvaW50KTsKLSAgICAg
ICAgb2Zmc2V0ICs9IGN1cnJlbnRPZmZzZXQ7Ci0gICAgICAgIHJlZmVyZW5jZVBvaW50Lm1vdmUo
Y3VycmVudE9mZnNldCk7Ci0gICAgICAgIGN1cnJlbnRDb250YWluZXIgPSBXVEZNb3ZlKG5leHRD
b250YWluZXIpOwotICAgIH0gd2hpbGUgKGN1cnJlbnRDb250YWluZXIgIT0gJmNvbnRhaW5lcik7
Ci0KLSAgICByZXR1cm4gb2Zmc2V0OwotfQotCiB2b2lkIFJlbmRlckVsZW1lbnQ6OnB1c2hPbnRv
R2VvbWV0cnlNYXAoUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwLCBjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBSZW5kZXJFbGVtZW50KiBjb250YWlu
ZXIsIGJvb2wgY29udGFpbmVyU2tpcHBlZCkgY29uc3QKIHsKICAgICBib29sIGlzRml4ZWRQb3Mg
PSBpc0ZpeGVkUG9zaXRpb25lZCgpOwpAQCAtMjczOSw1OCArMjcxNyw0IEBAIHZvaWQgUmVuZGVy
RWxlbWVudDo6bGF5b3V0SWZOZWVkZWQoKQogICAgIGxheW91dCgpOwogfQogCi1ib29sIFJlbmRl
ckVsZW1lbnQ6OnNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250YWluZXIoY29uc3QgUmVuZGVyRWxl
bWVudCogY29udGFpbmVyT2JqZWN0KSBjb25zdAotewotICAgIGlmIChpc1RyYW5zZm9ybWVkKCkp
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChoYXNMYXllcigpICYmIGRvd25jYXN0PFJl
bmRlckxheWVyTW9kZWxPYmplY3Q+KCp0aGlzKS5sYXllcigpLT5zbmFwc2hvdHRlZFNjcm9sbE9m
ZnNldEZvckFuY2hvclBvc2l0aW9uaW5nKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlm
IChjb250YWluZXJPYmplY3QgJiYgY29udGFpbmVyT2JqZWN0LT5zdHlsZSgpLmhhc1BlcnNwZWN0
aXZlKCkpCi0gICAgICAgIHJldHVybiBjb250YWluZXJPYmplY3QgPT0gcGFyZW50KCk7Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQotCi0vLyBGSVhNRTogTm93IHRoYXQgaXQncyBubyBsb25nZXIgcGFz
c2VkIGEgY29udGFpbmVyIG1heWJlIHRoaXMgc2hvdWxkIGJlIHJlbmFtZWQ/Ci12b2lkIFJlbmRl
ckVsZW1lbnQ6OmdldFRyYW5zZm9ybUZyb21Db250YWluZXIoY29uc3QgTGF5b3V0U2l6ZSYgb2Zm
c2V0SW5Db250YWluZXIsIFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0pIGNvbnN0Ci17
Ci0gICAgdHJhbnNmb3JtLm1ha2VJZGVudGl0eSgpOwotICAgIHRyYW5zZm9ybS50cmFuc2xhdGUo
b2Zmc2V0SW5Db250YWluZXIud2lkdGgoKSwgb2Zmc2V0SW5Db250YWluZXIuaGVpZ2h0KCkpOwot
ICAgIENoZWNrZWRQdHI8UmVuZGVyTGF5ZXI+IGxheWVyOwotICAgIGlmIChoYXNMYXllcigpICYm
IChsYXllciA9IGRvd25jYXN0PFJlbmRlckxheWVyTW9kZWxPYmplY3Q+KCp0aGlzKS5sYXllcigp
KSAmJiBsYXllci0+dHJhbnNmb3JtKCkpCi0gICAgICAgIHRyYW5zZm9ybS5tdWx0aXBseShsYXll
ci0+Y3VycmVudFRyYW5zZm9ybSgpKTsKLQotICAgIENoZWNrZWRQdHIgcGVyc3BlY3RpdmVPYmpl
Y3QgPSBwYXJlbnQoKTsKLQotICAgIGlmIChwZXJzcGVjdGl2ZU9iamVjdCAmJiBwZXJzcGVjdGl2
ZU9iamVjdC0+aGFzTGF5ZXIoKSAmJiBwZXJzcGVjdGl2ZU9iamVjdC0+c3R5bGUoKS5oYXNQZXJz
cGVjdGl2ZSgpKSB7Ci0gICAgICAgIC8vIFBlcnBzZWN0aXZlIG9uIHRoZSBjb250YWluZXIgYWZm
ZWN0cyB1cywgc28gd2UgaGF2ZSB0byBmYWN0b3IgaXQgaW4gaGVyZS4KLSAgICAgICAgQVNTRVJU
KHBlcnNwZWN0aXZlT2JqZWN0LT5oYXNMYXllcigpKTsKLSAgICAgICAgRmxvYXRQb2ludCBwZXJz
cGVjdGl2ZU9yaWdpbiA9IGRvd25jYXN0PFJlbmRlckxheWVyTW9kZWxPYmplY3Q+KCpwZXJzcGVj
dGl2ZU9iamVjdCkubGF5ZXIoKS0+cGVyc3BlY3RpdmVPcmlnaW4oKTsKLQotICAgICAgICBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBwZXJzcGVjdGl2ZU1hdHJpeDsKLSAgICAgICAgcGVyc3BlY3RpdmVN
YXRyaXguYXBwbHlQZXJzcGVjdGl2ZShwZXJzcGVjdGl2ZU9iamVjdC0+c3R5bGUoKS51c2VkUGVy
c3BlY3RpdmUoKSk7Ci0KLSAgICAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZVJpZ2h0M2QoLXBlcnNw
ZWN0aXZlT3JpZ2luLngoKSwgLXBlcnNwZWN0aXZlT3JpZ2luLnkoKSwgMCk7Ci0gICAgICAgIHRy
YW5zZm9ybSA9IHBlcnNwZWN0aXZlTWF0cml4ICogdHJhbnNmb3JtOwotICAgICAgICB0cmFuc2Zv
cm0udHJhbnNsYXRlUmlnaHQzZChwZXJzcGVjdGl2ZU9yaWdpbi54KCksIHBlcnNwZWN0aXZlT3Jp
Z2luLnkoKSwgMCk7Ci0gICAgfQotfQotCi12b2lkIFJlbmRlckVsZW1lbnQ6OnB1c2hPbnRvVHJh
bnNmb3JtU3RhdGUoVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBPcHRpb25TZXQ8TWFw
Q29vcmRpbmF0ZXNNb2RlPiBtb2RlLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBjb25zdCBSZW5kZXJFbGVtZW50KiBjb250YWluZXIsIGNvbnN0IExheW91
dFNpemUmIG9mZnNldEluQ29udGFpbmVyLCBib29sIGNvbnRhaW5lclNraXBwZWQpIGNvbnN0Ci17
Ci0gICAgYm9vbCBwcmVzZXJ2ZTNEID0gbW9kZS5jb250YWlucyhVc2VUcmFuc2Zvcm1zKSAmJiBw
YXJ0aWNpcGF0ZXNJblByZXNlcnZlM0QoKTsKLSAgICBpZiAobW9kZS5jb250YWlucyhVc2VUcmFu
c2Zvcm1zKSAmJiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKGNvbnRhaW5lcikpIHsK
LSAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbWF0cml4OwotICAgICAgICBnZXRUcmFuc2Zv
cm1Gcm9tQ29udGFpbmVyKG9mZnNldEluQ29udGFpbmVyLCBtYXRyaXgpOwotICAgICAgICB0cmFu
c2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybShtYXRyaXgsIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1T
dGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNm
b3JtKTsKLSAgICB9IGVsc2UKLSAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShvZmZzZXRJbkNv
bnRhaW5lci53aWR0aCgpLCBvZmZzZXRJbkNvbnRhaW5lci5oZWlnaHQoKSwgcHJlc2VydmUzRCA/
IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZs
YXR0ZW5UcmFuc2Zvcm0pOwotCi0gICAgaWYgKGNvbnRhaW5lclNraXBwZWQpIHsKLSAgICAgICAg
Ly8gVGhlcmUgY2FuJ3QgYmUgYSB0cmFuc2Zvcm0gYmV0d2VlbiByZXBhaW50Q29udGFpbmVyIGFu
ZCBjb250YWluZXIsIGJlY2F1c2UgdHJhbnNmb3JtcyBjcmVhdGUgY29udGFpbmVycywgc28gaXQg
c2hvdWxkIGJlIHNhZmUKLSAgICAgICAgLy8gdG8ganVzdCBzdWJ0cmFjdCB0aGUgZGVsdGEgYmV0
d2VlbiB0aGUgcmVwYWludENvbnRhaW5lciBhbmQgY29udGFpbmVyLgotICAgICAgICBMYXlvdXRT
aXplIGNvbnRhaW5lck9mZnNldCA9IHJlcGFpbnRDb250YWluZXItPm9mZnNldEZyb21BbmNlc3Rv
ckNvbnRhaW5lcigqY29udGFpbmVyKTsKLSAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZSgtY29u
dGFpbmVyT2Zmc2V0LndpZHRoKCksIC1jb250YWluZXJPZmZzZXQuaGVpZ2h0KCksIHByZXNlcnZl
M0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRl
OjpGbGF0dGVuVHJhbnNmb3JtKTsKLSAgICB9Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5oCmluZGV4IDQ4NGNhZjFlMTEyZS4uYjk1MWQxNzkyNDgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKQEAgLTI2OCw3ICsyNjgsNiBA
QCBwdWJsaWM6CiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy10cmFuc2Zvcm1zLTEv
I3RyYW5zZm9ybS1ib3gKICAgICBpbmxpbmUgRmxvYXRSZWN0IHRyYW5zZm9ybVJlZmVyZW5jZUJv
eFJlY3QoY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdDsKICAgICBpbmxpbmUgRmxvYXRSZWN0IHRy
YW5zZm9ybVJlZmVyZW5jZUJveFJlY3QoKSBjb25zdDsKLSAgICBpbmxpbmUgYm9vbCBpc1RyYW5z
Zm9ybWVkKCkgY29uc3Q7CiAKICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXRyYW5z
Zm9ybXMtMS8jcmVmZXJlbmNlLWJveAogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlZmVyZW5jZUJv
eFJlY3QoQ1NTQm94VHlwZSkgY29uc3Q7CkBAIC0zMTIsNyArMzExLDYgQEAgcHVibGljOgogICAg
IGlubGluZSBib29sIGlzQmxvY2tCb3goKSBjb25zdDsKICAgICBpbmxpbmUgYm9vbCBpc0Jsb2Nr
TGV2ZWxCb3goKSBjb25zdDsKICAgICBpbmxpbmUgYm9vbCBpc0Jsb2NrQ29udGFpbmVyKCkgY29u
c3Q7Ci0gICAgaW5saW5lIGJvb2wgaXNBdG9taWNJbmxpbmVMZXZlbEJveCgpIGNvbnN0OwogCiAg
ICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIG9mZnNldFBhcmVudCgpIGNvbnN0OwogICAgIC8vIFB1
c2hlcyBzdGF0ZSBvbnRvIFJlbmRlckdlb21ldHJ5TWFwIGFib3V0IGhvdyB0byBtYXAgY29vcmRp
bmF0ZXMgZnJvbSB0aGlzIHJlbmRlcmVyIHRvIGl0cyBjb250YWluZXIsIG9yIGFuY2VzdG9yVG9T
dG9wQXQgKHdoaWNoZXZlciBpcyBlbmNvdW50ZXJlZCBmaXJzdCkuCkBAIC0zMzYsMTMgKzMzNCw2
IEBAIHB1YmxpYzoKIAogICAgIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKCkgY29uc3QgeyByZXR1
cm4gc3R5bGUoKS53cml0aW5nTW9kZSgpOyB9CiAKLSAgICBib29sIHNob3VsZFVzZVRyYW5zZm9y
bUZyb21Db250YWluZXIoY29uc3QgUmVuZGVyRWxlbWVudCogY29udGFpbmVyKSBjb25zdDsKLSAg
ICB2b2lkIGdldFRyYW5zZm9ybUZyb21Db250YWluZXIoY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0
SW5Db250YWluZXIsIFRyYW5zZm9ybWF0aW9uTWF0cml4JikgY29uc3Q7Ci0gICAgdm9pZCBwdXNo
T250b1RyYW5zZm9ybVN0YXRlKFRyYW5zZm9ybVN0YXRlJiwgT3B0aW9uU2V0PE1hcENvb3JkaW5h
dGVzTW9kZT4sIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IGNvbnN0IFJlbmRlckVsZW1lbnQqIGNvbnRhaW5lciwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0
SW5Db250YWluZXIsIGJvb2wgY29udGFpbmVyU2tpcHBlZCkgY29uc3Q7Ci0KLSAgICAvLyBSZXR1
cm4gdGhlIG9mZnNldCBmcm9tIGFuIG9iamVjdCB1cCB0aGUgY29udGFpbmVyKCkgY2hhaW4uIEFz
c2VydHMgdGhhdCBub25lIG9mIHRoZSBpbnRlcm1lZGlhdGUgb2JqZWN0cyBoYXZlIHRyYW5zZm9y
bXMuCi0gICAgTGF5b3V0U2l6ZSBvZmZzZXRGcm9tQW5jZXN0b3JDb250YWluZXIoY29uc3QgUmVu
ZGVyRWxlbWVudCYpIGNvbnN0OwotCiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyRWxlbWVudChUeXBl
LCBFbGVtZW50JiwgUmVuZGVyU3R5bGUmJiwgT3B0aW9uU2V0PFR5cGVGbGFnPiwgVHlwZVNwZWNp
ZmljRmxhZ3MpOwogICAgIFJlbmRlckVsZW1lbnQoVHlwZSwgRG9jdW1lbnQmLCBSZW5kZXJTdHls
ZSYmLCBPcHRpb25TZXQ8VHlwZUZsYWc+LCBUeXBlU3BlY2lmaWNGbGFncyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudElubGluZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50SW5saW5lcy5oCmluZGV4IDFhOTVmMjY5
YTBiNi4uMTdhMzAwYWIyYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudElubGluZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudElubGluZXMuaApAQCAtMjEsNyArMjEsNiBAQAogCiAjaW5jbHVkZSAiUmVuZGVy
RWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdElubGluZXMuaCIKLSNpbmNsdWRlICJS
ZW5kZXJTdHlsZUlubGluZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSw3ICsz
OCw2IEBAIGlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6Omhhc01hc2soKSBjb25zdCB7IHJldHVy
biBzdHlsZSgpLmhhc01hc2soKTsgfQogaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6aGFzT3V0
bGluZSgpIGNvbnN0IHsgcmV0dXJuIHN0eWxlKCkuaGFzT3V0bGluZSgpIHx8IGhhc091dGxpbmVB
bm5vdGF0aW9uKCk7IH0KIGlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6Omhhc1NoYXBlT3V0c2lk
ZSgpIGNvbnN0IHsgcmV0dXJuIHN0eWxlKCkuc2hhcGVPdXRzaWRlKCk7IH0KIGlubGluZSBib29s
IFJlbmRlckVsZW1lbnQ6OmlzVHJhbnNwYXJlbnQoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLmhh
c09wYWNpdHkoKTsgfQotaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6aXNUcmFuc2Zvcm1lZCgp
IGNvbnN0IHsgcmV0dXJuIGhhc1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0eSgpICYmIChzdHlsZSgp
LmFmZmVjdHNUcmFuc2Zvcm0oKSB8fCBoYXNTVkdUcmFuc2Zvcm0oKSk7IH0KIGlubGluZSBmbG9h
dCBSZW5kZXJFbGVtZW50OjpvcGFjaXR5KCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS5vcGFjaXR5
KCk7IH0KIGlubGluZSBGbG9hdFJlY3QgUmVuZGVyRWxlbWVudDo6dHJhbnNmb3JtUmVmZXJlbmNl
Qm94UmVjdCgpIGNvbnN0IHsgcmV0dXJuIHRyYW5zZm9ybVJlZmVyZW5jZUJveFJlY3Qoc3R5bGUo
KSk7IH0KIGlubGluZSBGbG9hdFJlY3QgUmVuZGVyRWxlbWVudDo6dHJhbnNmb3JtUmVmZXJlbmNl
Qm94UmVjdChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0IHsgcmV0dXJuIHJlZmVyZW5j
ZUJveFJlY3QodHJhbnNmb3JtQm94VG9DU1NCb3hUeXBlKHN0eWxlLnRyYW5zZm9ybUJveCgpKSk7
IH0KQEAgLTQ5LDcgKzQ3LDYgQEAgaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6aGFzQXBwbGVW
aXN1YWxFZmZlY3QoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLmhhc0FwcGwKIGlubGluZSBib29s
IFJlbmRlckVsZW1lbnQ6Omhhc0FwcGxlVmlzdWFsRWZmZWN0UmVxdWlyaW5nQmFja2Ryb3BGaWx0
ZXIoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLmhhc0FwcGxlVmlzdWFsRWZmZWN0UmVxdWlyaW5n
QmFja2Ryb3BGaWx0ZXIoKTsgfQogI2VuZGlmCiAKLWlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6
OmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLmlzRGlzcGxh
eUlubGluZVR5cGUoKSAmJiAhKHN0eWxlKCkuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxp
bmUgJiYgIWlzUmVwbGFjZWRPckF0b21pY0lubGluZSgpKTsgfQogaW5saW5lIGJvb2wgUmVuZGVy
RWxlbWVudDo6aXNCbG9ja0xldmVsQm94KCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS5pc0Rpc3Bs
YXlCbG9ja0xldmVsKCk7IH0KIGlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6OmlzQW5vbnltb3Vz
QmxvY2soKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdlb21ldHJ5TWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9t
ZXRyeU1hcC5jcHAKaW5kZXggNGY4ZDA1OTE0YWJlLi4zYjhmZjE0MWEyMjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcApAQCAtMTUyLDggKzE1
Miw3IEBAIHN0YXRpYyBib29sIGNhbk1hcEJldHdlZW5SZW5kZXJlcnNWaWFMYXllcnMoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYgcmVuZGVyCiAgICAgICAgIGlmIChjdXJyZW50LT5pc0Zp
eGVkUG9zaXRpb25lZCgpIHx8IHN0eWxlLndyaXRpbmdNb2RlKCkuaXNCbG9ja0ZsaXBwZWQoKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBhdXRvIGhhc1RyYW5zZm9ybU9y
UGVyc3BlY3RpdmUgPSBjdXJyZW50LT5oYXNUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHkoKSAmJiAo
Y3VycmVudC0+aXNUcmFuc2Zvcm1lZCgpIHx8IGN1cnJlbnQtPnN0eWxlKCkuaGFzUGVyc3BlY3Rp
dmUoKSk7Ci0gICAgICAgIGlmIChoYXNUcmFuc2Zvcm1PclBlcnNwZWN0aXZlKQorICAgICAgICBp
ZiAoY3VycmVudC0+aGFzVHJhbnNmb3JtT3JQZXJzcGVjdGl2ZSgpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAKICAgICAgICAgaWYgKGN1cnJlbnQtPmlzUmVuZGVyRnJhZ21l
bnRlZEZsb3coKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5k
ZXggYmFjZTUyZTIyZWI0Li5mNjI1ZWYzMjcwNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCkBAIC0xNTQwLDYgKzE1NDAsNjAgQEAgdm9pZCBSZW5kZXJPYmpl
Y3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE9wdGlvblNldDxNYXBDb29yZGluYXRlc01vZGU+
IG1vZGUsIFQKICAgICB9CiB9CiAKK2Jvb2wgUmVuZGVyT2JqZWN0OjpzaG91bGRVc2VUcmFuc2Zv
cm1Gcm9tQ29udGFpbmVyKGNvbnN0IFJlbmRlckVsZW1lbnQqIGNvbnRhaW5lck9iamVjdCkgY29u
c3QKK3sKKyAgICBpZiAoaXNUcmFuc2Zvcm1lZCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICBpZiAoaGFzTGF5ZXIoKSAmJiBkb3duY2FzdDxSZW5kZXJMYXllck1vZGVsT2JqZWN0PigqdGhp
cykubGF5ZXIoKS0+c25hcHNob3R0ZWRTY3JvbGxPZmZzZXRGb3JBbmNob3JQb3NpdGlvbmluZygp
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoY29udGFpbmVyT2JqZWN0ICYmIGNvbnRh
aW5lck9iamVjdC0+c3R5bGUoKS5oYXNQZXJzcGVjdGl2ZSgpKQorICAgICAgICByZXR1cm4gY29u
dGFpbmVyT2JqZWN0ID09IHBhcmVudCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworLy8gRklY
TUU6IE5vdyB0aGF0IGl0J3Mgbm8gbG9uZ2VyIHBhc3NlZCBhIGNvbnRhaW5lciBtYXliZSB0aGlz
IHNob3VsZCBiZSByZW5hbWVkPwordm9pZCBSZW5kZXJPYmplY3Q6OmdldFRyYW5zZm9ybUZyb21D
b250YWluZXIoY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0SW5Db250YWluZXIsIFRyYW5zZm9ybWF0
aW9uTWF0cml4JiB0cmFuc2Zvcm0pIGNvbnN0Cit7CisgICAgdHJhbnNmb3JtLm1ha2VJZGVudGl0
eSgpOworICAgIHRyYW5zZm9ybS50cmFuc2xhdGUob2Zmc2V0SW5Db250YWluZXIud2lkdGgoKSwg
b2Zmc2V0SW5Db250YWluZXIuaGVpZ2h0KCkpOworICAgIENoZWNrZWRQdHI8UmVuZGVyTGF5ZXI+
IGxheWVyOworICAgIGlmIChoYXNMYXllcigpICYmIChsYXllciA9IGRvd25jYXN0PFJlbmRlckxh
eWVyTW9kZWxPYmplY3Q+KCp0aGlzKS5sYXllcigpKSAmJiBsYXllci0+dHJhbnNmb3JtKCkpCisg
ICAgICAgIHRyYW5zZm9ybS5tdWx0aXBseShsYXllci0+Y3VycmVudFRyYW5zZm9ybSgpKTsKKwor
ICAgIENoZWNrZWRQdHIgcGVyc3BlY3RpdmVPYmplY3QgPSBwYXJlbnQoKTsKKworICAgIGlmIChw
ZXJzcGVjdGl2ZU9iamVjdCAmJiBwZXJzcGVjdGl2ZU9iamVjdC0+aGFzTGF5ZXIoKSAmJiBwZXJz
cGVjdGl2ZU9iamVjdC0+c3R5bGUoKS5oYXNQZXJzcGVjdGl2ZSgpKSB7CisgICAgICAgIC8vIFBl
cnBzZWN0aXZlIG9uIHRoZSBjb250YWluZXIgYWZmZWN0cyB1cywgc28gd2UgaGF2ZSB0byBmYWN0
b3IgaXQgaW4gaGVyZS4KKyAgICAgICAgQVNTRVJUKHBlcnNwZWN0aXZlT2JqZWN0LT5oYXNMYXll
cigpKTsKKyAgICAgICAgRmxvYXRQb2ludCBwZXJzcGVjdGl2ZU9yaWdpbiA9IGRvd25jYXN0PFJl
bmRlckxheWVyTW9kZWxPYmplY3Q+KCpwZXJzcGVjdGl2ZU9iamVjdCkubGF5ZXIoKS0+cGVyc3Bl
Y3RpdmVPcmlnaW4oKTsKKworICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBwZXJzcGVjdGl2
ZU1hdHJpeDsKKyAgICAgICAgcGVyc3BlY3RpdmVNYXRyaXguYXBwbHlQZXJzcGVjdGl2ZShwZXJz
cGVjdGl2ZU9iamVjdC0+c3R5bGUoKS51c2VkUGVyc3BlY3RpdmUoKSk7CisgICAgICAgIAorICAg
ICAgICB0cmFuc2Zvcm0udHJhbnNsYXRlUmlnaHQzZCgtcGVyc3BlY3RpdmVPcmlnaW4ueCgpLCAt
cGVyc3BlY3RpdmVPcmlnaW4ueSgpLCAwKTsKKyAgICAgICAgdHJhbnNmb3JtID0gcGVyc3BlY3Rp
dmVNYXRyaXggKiB0cmFuc2Zvcm07CisgICAgICAgIHRyYW5zZm9ybS50cmFuc2xhdGVSaWdodDNk
KHBlcnNwZWN0aXZlT3JpZ2luLngoKSwgcGVyc3BlY3RpdmVPcmlnaW4ueSgpLCAwKTsKKyAgICB9
Cit9CisKK3ZvaWQgUmVuZGVyT2JqZWN0OjpwdXNoT250b1RyYW5zZm9ybVN0YXRlKFRyYW5zZm9y
bVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgT3B0aW9uU2V0PE1hcENvb3JkaW5hdGVzTW9kZT4gbW9k
ZSwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgY29uc3Qg
UmVuZGVyRWxlbWVudCogY29udGFpbmVyLCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXRJbkNvbnRh
aW5lciwgYm9vbCBjb250YWluZXJTa2lwcGVkKSBjb25zdAoreworICAgIGJvb2wgcHJlc2VydmUz
RCA9IG1vZGUuY29udGFpbnMoVXNlVHJhbnNmb3JtcykgJiYgcGFydGljaXBhdGVzSW5QcmVzZXJ2
ZTNEKCk7CisgICAgaWYgKG1vZGUuY29udGFpbnMoVXNlVHJhbnNmb3JtcykgJiYgc2hvdWxkVXNl
VHJhbnNmb3JtRnJvbUNvbnRhaW5lcihjb250YWluZXIpKSB7CisgICAgICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4IG1hdHJpeDsKKyAgICAgICAgZ2V0VHJhbnNmb3JtRnJvbUNvbnRhaW5lcihvZmZz
ZXRJbkNvbnRhaW5lciwgbWF0cml4KTsKKyAgICAgICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFu
c2Zvcm0obWF0cml4LCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFu
c2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7CisgICAgfSBlbHNlCisg
ICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUob2Zmc2V0SW5Db250YWluZXIud2lkdGgoKSwgb2Zm
c2V0SW5Db250YWluZXIuaGVpZ2h0KCksIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNj
dW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKKwor
ICAgIGlmIChjb250YWluZXJTa2lwcGVkKSB7CisgICAgICAgIC8vIFRoZXJlIGNhbid0IGJlIGEg
dHJhbnNmb3JtIGJldHdlZW4gcmVwYWludENvbnRhaW5lciBhbmQgY29udGFpbmVyLCBiZWNhdXNl
IHRyYW5zZm9ybXMgY3JlYXRlIGNvbnRhaW5lcnMsIHNvIGl0IHNob3VsZCBiZSBzYWZlCisgICAg
ICAgIC8vIHRvIGp1c3Qgc3VidHJhY3QgdGhlIGRlbHRhIGJldHdlZW4gdGhlIHJlcGFpbnRDb250
YWluZXIgYW5kIGNvbnRhaW5lci4KKyAgICAgICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQg
PSByZXBhaW50Q29udGFpbmVyLT5vZmZzZXRGcm9tQW5jZXN0b3JDb250YWluZXIoKmNvbnRhaW5l
cik7CisgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoLWNvbnRhaW5lck9mZnNldC53aWR0aCgp
LCAtY29udGFpbmVyT2Zmc2V0LmhlaWdodCgpLCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6
OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7
CisgICAgfQorfQorCiBGbG9hdFF1YWQgUmVuZGVyT2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUXVh
ZChjb25zdCBGbG9hdFF1YWQmIGxvY2FsUXVhZCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogY29udGFpbmVyLCBPcHRpb25TZXQ8TWFwQ29vcmRpbmF0ZXNNb2RlPiBtb2RlLCBib29sKiB3
YXNGaXhlZCkgY29uc3QKIHsKICAgICAvLyBUcmFjayB0aGUgcG9pbnQgYXQgdGhlIGNlbnRlciBv
ZiB0aGUgcXVhZCdzIGJvdW5kaW5nIGJveC4gQXMgbWFwTG9jYWxUb0NvbnRhaW5lcigpIGNhbGxz
IG9mZnNldEZyb21Db250YWluZXIoKSwKQEAgLTE1NzQsNiArMTYyOCwyNiBAQCBMYXlvdXRTaXpl
IFJlbmRlck9iamVjdDo6b2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJFbGVtZW50JiBjb250YWlu
ZXIsIGNvbnN0IExheQogICAgIHJldHVybiBvZmZzZXQ7CiB9CiAKK0xheW91dFNpemUgUmVuZGVy
T2JqZWN0OjpvZmZzZXRGcm9tQW5jZXN0b3JDb250YWluZXIoY29uc3QgUmVuZGVyRWxlbWVudCYg
Y29udGFpbmVyKSBjb25zdAoreworICAgIExheW91dFNpemUgb2Zmc2V0OworICAgIExheW91dFBv
aW50IHJlZmVyZW5jZVBvaW50OworICAgIENoZWNrZWRQdHIgY3VycmVudENvbnRhaW5lciA9IHRo
aXM7CisgICAgZG8geworICAgICAgICBDaGVja2VkUHRyIG5leHRDb250YWluZXIgPSBjdXJyZW50
Q29udGFpbmVyLT5jb250YWluZXIoKTsKKyAgICAgICAgQVNTRVJUKG5leHRDb250YWluZXIpOyAg
Ly8gVGhpcyBtZWFucyB3ZSByZWFjaGVkIHRoZSB0b3Agd2l0aG91dCBmaW5kaW5nIGNvbnRhaW5l
ci4KKyAgICAgICAgaWYgKCFuZXh0Q29udGFpbmVyKQorICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIEFTU0VSVCghY3VycmVudENvbnRhaW5lci0+aXNUcmFuc2Zvcm1lZCgpKTsKKyAgICAgICAg
TGF5b3V0U2l6ZSBjdXJyZW50T2Zmc2V0ID0gY3VycmVudENvbnRhaW5lci0+b2Zmc2V0RnJvbUNv
bnRhaW5lcigqbmV4dENvbnRhaW5lciwgcmVmZXJlbmNlUG9pbnQpOworICAgICAgICBvZmZzZXQg
Kz0gY3VycmVudE9mZnNldDsKKyAgICAgICAgcmVmZXJlbmNlUG9pbnQubW92ZShjdXJyZW50T2Zm
c2V0KTsKKyAgICAgICAgY3VycmVudENvbnRhaW5lciA9IFdURk1vdmUobmV4dENvbnRhaW5lcik7
CisgICAgfSB3aGlsZSAoY3VycmVudENvbnRhaW5lciAhPSAmY29udGFpbmVyKTsKKworICAgIHJl
dHVybiBvZmZzZXQ7Cit9CisKIGJvb2wgUmVuZGVyT2JqZWN0OjpwYXJ0aWNpcGF0ZXNJblByZXNl
cnZlM0QoKSBjb25zdAogewogICAgIHJldHVybiBoYXNMYXllcigpICYmIGRvd25jYXN0PFJlbmRl
ckxheWVyTW9kZWxPYmplY3Q+KCp0aGlzKS5sYXllcigpLT5wYXJ0aWNpcGF0ZXNJblByZXNlcnZl
M0QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA3MDVjOTg0
ZmRjZGMuLjA0YjVjNzI5MjYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuaApAQCAtNDMwLDYgKzQzMCw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzUmVuZGVySW5saW5l
KCkgY29uc3QgeyByZXR1cm4gbV90eXBlRmxhZ3MuY29udGFpbnMoVHlwZUZsYWc6OklzUmVuZGVy
SW5saW5lKTsgfQogICAgIGJvb2wgaXNSZW5kZXJMYXllck1vZGVsT2JqZWN0KCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlRmxhZ3MuY29udGFpbnMoVHlwZUZsYWc6OklzTGF5ZXJNb2RlbE9iamVjdCk7
IH0KIAorICAgIGlubGluZSBib29sIGlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSBjb25zdDsKKwog
ICAgIGJvb2wgaXNSZW5kZXJDb3VudGVyKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFR5cGU6
OkNvdW50ZXI7IH0KICAgICBib29sIGlzUmVuZGVyUXVvdGUoKSBjb25zdCB7IHJldHVybiB0eXBl
KCkgPT0gVHlwZTo6UXVvdGU7IH0KIApAQCAtNzAwLDYgKzcwMiw4IEBAIHB1YmxpYzoKICAgICBi
b29sIGhhc05vblZpc2libGVPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGVCaXRmaWVs
ZHMuaGFzRmxhZyhTdGF0ZUZsYWc6Okhhc05vblZpc2libGVPdmVyZmxvdyk7IH0KIAogICAgIGJv
b2wgaGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZUJp
dGZpZWxkcy5oYXNGbGFnKFN0YXRlRmxhZzo6SGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KTsg
fSAvLyBUcmFuc2Zvcm0sIHBlcnNwZWN0aXZlIG9yIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUt
M2QuCisgICAgaW5saW5lIGJvb2wgaXNUcmFuc2Zvcm1lZCgpIGNvbnN0OworICAgIGlubGluZSBi
b29sIGhhc1RyYW5zZm9ybU9yUGVyc3BlY3RpdmUoKSBjb25zdDsKIAogICAgIGJvb2wgY2FwdHVy
ZWRJblZpZXdUcmFuc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZUJpdGZpZWxkcy5oYXNG
bGFnKFN0YXRlRmxhZzo6Q2FwdHVyZWRJblZpZXdUcmFuc2l0aW9uKTsgfQogICAgIGJvb2wgc2V0
Q2FwdHVyZWRJblZpZXdUcmFuc2l0aW9uKGJvb2wpOwpAQCAtODI1LDYgKzgyOSw4IEBAIHB1Ymxp
YzoKICAgICAvLyBSZXR1cm4gdGhlIG9mZnNldCBmcm9tIHRoZSBjb250YWluZXIoKSByZW5kZXJl
ciAoZXhjbHVkaW5nIHRyYW5zZm9ybXMpLiBJbiBtdWx0aS1jb2x1bW4gbGF5b3V0LAogICAgIC8v
IGRpZmZlcmVudCBvZmZzZXRzIGFwcGx5IGF0IGRpZmZlcmVudCBwb2ludHMsIHNvIHJldHVybiB0
aGUgb2Zmc2V0IHRoYXQgYXBwbGllcyB0byB0aGUgZ2l2ZW4gcG9pbnQuCiAgICAgdmlydHVhbCBM
YXlvdXRTaXplIG9mZnNldEZyb21Db250YWluZXIoUmVuZGVyRWxlbWVudCYsIGNvbnN0IExheW91
dFBvaW50JiwgYm9vbCogb2Zmc2V0RGVwZW5kc09uUG9pbnQgPSBudWxscHRyKSBjb25zdDsKKyAg
ICAvLyBSZXR1cm4gdGhlIG9mZnNldCBmcm9tIGFuIG9iamVjdCB1cCB0aGUgY29udGFpbmVyKCkg
Y2hhaW4uIEFzc2VydHMgdGhhdCBub25lIG9mIHRoZSBpbnRlcm1lZGlhdGUgb2JqZWN0cyBoYXZl
IHRyYW5zZm9ybXMuCisgICAgTGF5b3V0U2l6ZSBvZmZzZXRGcm9tQW5jZXN0b3JDb250YWluZXIo
Y29uc3QgUmVuZGVyRWxlbWVudCYpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFNlbGVjdGlvbkdlb21ldHJpZXMoVmVjdG9yPFNlbGVj
dGlvbkdlb21ldHJ5PiYsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0ID0gMCwgdW5zaWduZWQgZW5kT2Zm
c2V0ID0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKTsKQEAgLTEwODgsNiAr
MTA5NCwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmLCBPcHRpb25TZXQ8TWFwQ29vcmRpbmF0ZXNNb2RlPiwgYm9vbCogd2FzRml4ZWQgPSBu
dWxscHRyKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgbWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQo
T3B0aW9uU2V0PE1hcENvb3JkaW5hdGVzTW9kZT4sIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAK
KyAgICBib29sIHNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250YWluZXIoY29uc3QgUmVuZGVyRWxl
bWVudCogY29udGFpbmVyKSBjb25zdDsKKyAgICB2b2lkIGdldFRyYW5zZm9ybUZyb21Db250YWlu
ZXIoY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0SW5Db250YWluZXIsIFRyYW5zZm9ybWF0aW9uTWF0
cml4JikgY29uc3Q7CisgICAgCisgICAgdm9pZCBwdXNoT250b1RyYW5zZm9ybVN0YXRlKFRyYW5z
Zm9ybVN0YXRlJiwgT3B0aW9uU2V0PE1hcENvb3JkaW5hdGVzTW9kZT4sIGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IFJlbmRlckVsZW1lbnQqIGNv
bnRhaW5lciwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0SW5Db250YWluZXIsIGJvb2wgY29udGFp
bmVyU2tpcHBlZCkgY29uc3Q7CisKICAgICBib29sIHBhcnRpY2lwYXRlc0luUHJlc2VydmUzRCgp
IGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGFkZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxMYXlv
dXRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiAvKiBhZGRpdGlvbmFsT2Zmc2V0ICovLCBjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiAvKiBwYWludENvbnRhaW5lciAqLyA9IG51bGxwdHIp
IGNvbnN0IHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3RJbmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0SW5s
aW5lcy5oCmluZGV4IGYxMWFlZTdmMWExYi4uNTI0MTQ3N2Y5NWZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0SW5saW5lcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RJbmxpbmVzLmgKQEAgLTIxLDEwICsyMSwxNSBA
QAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNp
bmNsdWRlICJSZW5kZXJTdHlsZUlubGluZXMuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAoraW5saW5lIGJvb2wgUmVuZGVyT2JqZWN0OjpoYXNUcmFu
c2Zvcm1PclBlcnNwZWN0aXZlKCkgY29uc3QgeyByZXR1cm4gaGFzVHJhbnNmb3JtUmVsYXRlZFBy
b3BlcnR5KCkgJiYgKGlzVHJhbnNmb3JtZWQoKSB8fCBzdHlsZSgpLmhhc1BlcnNwZWN0aXZlKCkp
OyB9CitpbmxpbmUgYm9vbCBSZW5kZXJPYmplY3Q6OmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSBj
b25zdCB7IHJldHVybiBzdHlsZSgpLmlzRGlzcGxheUlubGluZVR5cGUoKSAmJiAhKHN0eWxlKCku
ZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxpbmUgJiYgIWlzUmVwbGFjZWRPckF0b21pY0lu
bGluZSgpKTsgfQoraW5saW5lIGJvb2wgUmVuZGVyT2JqZWN0Ojppc1RyYW5zZm9ybWVkKCkgY29u
c3QgeyByZXR1cm4gaGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkgJiYgKHN0eWxlKCkuYWZm
ZWN0c1RyYW5zZm9ybSgpIHx8IGhhc1NWR1RyYW5zZm9ybSgpKTsgfQoraW5saW5lIGJvb2wgUmVu
ZGVyT2JqZWN0OjpwcmVzZXJ2ZXNOZXdsaW5lKCkgY29uc3QgeyByZXR1cm4gIWlzUmVuZGVyU1ZH
SW5saW5lVGV4dCgpICYmIHN0eWxlKCkucHJlc2VydmVOZXdsaW5lKCk7IH0KIGlubGluZSBSZWY8
RG9jdW1lbnQ+IFJlbmRlck9iamVjdDo6cHJvdGVjdGVkRG9jdW1lbnQoKSBjb25zdCB7IHJldHVy
biBkb2N1bWVudCgpOyB9CiBpbmxpbmUgY29uc3QgTG9jYWxGcmFtZVZpZXdMYXlvdXRDb250ZXh0
JiBSZW5kZXJPYmplY3Q6OmxheW91dENvbnRleHQoKSBjb25zdCB7IHJldHVybiB2aWV3KCkuZnJh
bWVWaWV3KCkubGF5b3V0Q29udGV4dCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9saW5lL0xpbmVJbmxpbmVIZWFkZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbGluZS9MaW5lSW5saW5lSGVhZGVycy5oCmluZGV4IGY0NzNhMTY1ZmNiYS4uYzA0OTI3
NDE5ZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lSW5s
aW5lSGVhZGVycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVJbmxp
bmVIZWFkZXJzLmgKQEAgLTUyLDE1ICs1MiwxNSBAQCBpbmxpbmUgYm9vbCByZXF1aXJlc0xpbmVC
b3hGb3JDb250ZW50KGNvbnN0IFJlbmRlcklubGluZSYgZmxvdywgY29uc3QgTGluZUluZm8mCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi1pbmxpbmUgYm9vbCBzaG91bGRDb2xsYXBzZVdoaXRlU3Bh
Y2UoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBMaW5lSW5mbyYgbGluZUluZm8sIFdo
aXRlc3BhY2VQb3NpdGlvbiB3aGl0ZXNwYWNlUG9zaXRpb24pCitpbmxpbmUgYm9vbCBzaG91bGRD
b2xsYXBzZVdoaXRlU3BhY2UoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBMaW5lSW5m
byYgbGluZUluZm8sIFdoaXRlc3BhY2VQb3NpdGlvbiB3aGl0ZXNwYWNlUG9zaXRpb24pCiB7CiAg
ICAgLy8gQ1NTMiAxNi42LjEKICAgICAvLyBJZiBhIHNwYWNlIChVKzAwMjApIGF0IHRoZSBiZWdp
bm5pbmcgb2YgYSBsaW5lIGhhcyAnd2hpdGUtc3BhY2UnIHNldCB0byAnbm9ybWFsJywgJ25vd3Jh
cCcsIG9yICdwcmUtbGluZScsIGl0IGlzIHJlbW92ZWQuCiAgICAgLy8gSWYgYSBzcGFjZSAoVSsw
MDIwKSBhdCB0aGUgZW5kIG9mIGEgbGluZSBoYXMgJ3doaXRlLXNwYWNlJyBzZXQgdG8gJ25vcm1h
bCcsICdub3dyYXAnLCBvciAncHJlLWxpbmUnLCBpdCBpcyBhbHNvIHJlbW92ZWQuCiAgICAgLy8g
SWYgc3BhY2VzIChVKzAwMjApIG9yIHRhYnMgKFUrMDAwOSkgYXQgdGhlIGVuZCBvZiBhIGxpbmUg
aGF2ZSAnd2hpdGUtc3BhY2UnIHNldCB0byAncHJlLXdyYXAnLCBVQXMgbWF5IHZpc3VhbGx5IGNv
bGxhcHNlIHRoZW0uCi0gICAgcmV0dXJuIHN0eWxlLmNvbGxhcHNlV2hpdGVTcGFjZSgpCi0gICAg
ICAgIHx8ICh3aGl0ZXNwYWNlUG9zaXRpb24gPT0gVHJhaWxpbmdXaGl0ZXNwYWNlICYmIHN0eWxl
LndoaXRlU3BhY2VDb2xsYXBzZSgpID09IFdoaXRlU3BhY2VDb2xsYXBzZTo6UHJlc2VydmUKLSAg
ICAgICAgICAgICYmIHN0eWxlLnRleHRXcmFwTW9kZSgpID09IFRleHRXcmFwTW9kZTo6V3JhcCAm
JiAhbGluZUluZm8uaXNFbXB0eSgpKTsKKyAgICByZXR1cm4gc3R5bGUtPmNvbGxhcHNlV2hpdGVT
cGFjZSgpCisgICAgICAgIHx8ICh3aGl0ZXNwYWNlUG9zaXRpb24gPT0gVHJhaWxpbmdXaGl0ZXNw
YWNlICYmIHN0eWxlLT53aGl0ZVNwYWNlQ29sbGFwc2UoKSA9PSBXaGl0ZVNwYWNlQ29sbGFwc2U6
OlByZXNlcnZlCisgICAgICAgICAgICAmJiBzdHlsZS0+dGV4dFdyYXBNb2RlKCkgPT0gVGV4dFdy
YXBNb2RlOjpXcmFwICYmICFsaW5lSW5mby5pc0VtcHR5KCkpOwogfQogCiBpbmxpbmUgYm9vbCBz
a2lwTm9uQnJlYWtpbmdTcGFjZShjb25zdCBMZWdhY3lJbmxpbmVJdGVyYXRvciYgaXQsIGNvbnN0
IExpbmVJbmZvJiBsaW5lSW5mbykKQEAgLTg4LDExICs4OCwxMSBAQCBpbmxpbmUgYm9vbCByZXF1
aXJlc0xpbmVCb3goY29uc3QgTGVnYWN5SW5saW5lSXRlcmF0b3ImIGl0LCBjb25zdCBMaW5lSW5m
byYgbGluZQogICAgICAgICByZW5kZXJlcklzRW1wdHlJbmxpbmUgPSBpc0VtcHR5SW5saW5lKCpp
bmxpbmVSZW5kZXJlcik7CiAgICAgfQogCi0gICAgaWYgKCFzaG91bGRDb2xsYXBzZVdoaXRlU3Bh
Y2UoaXQucmVuZGVyZXIoKS0+c3R5bGUoKSwgbGluZUluZm8sIHdoaXRlc3BhY2VQb3NpdGlvbikp
CisgICAgaWYgKCFzaG91bGRDb2xsYXBzZVdoaXRlU3BhY2UoJml0LnJlbmRlcmVyKCktPnN0eWxl
KCksIGxpbmVJbmZvLCB3aGl0ZXNwYWNlUG9zaXRpb24pKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAogICAgIFVDaGFyIGN1cnJlbnQgPSBpdC5jdXJyZW50KCk7Ci0gICAgYm9vbCBub3RKdXN0V2hp
dGVzcGFjZSA9IGN1cnJlbnQgIT0gJyAnICYmIGN1cnJlbnQgIT0gJ1x0JyAmJiBjdXJyZW50ICE9
IHNvZnRIeXBoZW4gJiYgY3VycmVudCAhPSAnXG4nICYmICFza2lwTm9uQnJlYWtpbmdTcGFjZShp
dCwgbGluZUluZm8pOworICAgIGJvb2wgbm90SnVzdFdoaXRlc3BhY2UgPSBjdXJyZW50ICE9ICcg
JyAmJiBjdXJyZW50ICE9ICdcdCcgJiYgY3VycmVudCAhPSBzb2Z0SHlwaGVuICYmIChjdXJyZW50
ICE9ICdcbicgfHwgaXQucmVuZGVyZXIoKS0+cHJlc2VydmVzTmV3bGluZSgpKSAmJiAhc2tpcE5v
bkJyZWFraW5nU3BhY2UoaXQsIGxpbmVJbmZvKTsKICAgICByZXR1cm4gbm90SnVzdFdoaXRlc3Bh
Y2UgfHwgcmVuZGVyZXJJc0VtcHR5SW5saW5lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmNwcAppbmRl
eCBjMTRiODk1YzU3MTcuLmMzZDI4OTIxZmIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uY3BwCkBAIC0y
Myw3ICsyMyw3IEBACiAjaW5jbHVkZSAiTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCIKICNpbmNs
dWRlICJSZWZlcmVuY2VkU1ZHUmVzb3VyY2VzLmgiCiAjaW5jbHVkZSAiUmVuZGVyQ2hpbGRJdGVy
YXRvci5oIgotI2luY2x1ZGUgIlJlbmRlckVsZW1lbnRJbmxpbmVzLmgiCisjaW5jbHVkZSAiUmVu
ZGVyT2JqZWN0SW5saW5lcy5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0NvbnRhaW5lci5oIgogI2lu
Y2x1ZGUgIlJlbmRlclNWR0ZvcmVpZ25PYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdIaWRk
ZW5Db250YWluZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCmluZGV4IGI4YzQzZDVmNDJjYS4uMzQzZTllOThh
OWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVy
VHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9S
ZW5kZXJUcmVlQnVpbGRlci5jcHAKQEAgLTQ4MCw3ICs0ODAsNyBAQCB2b2lkIFJlbmRlclRyZWVC
dWlsZGVyOjphdHRhY2hUb1JlbmRlckVsZW1lbnRJbnRlcm5hbChSZW5kZXJFbGVtZW50JiBwYXJl
bnQsIFJlbgogICAgIH0KIAogICAgIG5ld0NoaWxkLT5zZXROZWVkc0xheW91dEFuZFByZWZXaWR0
aHNSZWNhbGMoKTsKLSAgICBhdXRvIGlzT3V0T2ZGbG93Qm94ID0gbmV3Q2hpbGQtPmlzT3V0T2ZG
bG93UG9zaXRpb25lZCgpOworICAgIGF1dG8gaXNPdXRPZkZsb3dCb3ggPSBuZXdDaGlsZC0+c3R5
bGUoKS5oYXNPdXRPZkZsb3dQb3NpdGlvbigpOwogICAgIGlmICghaXNPdXRPZkZsb3dCb3gpCiAg
ICAgICAgIHBhcmVudC5zZXRQcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHkodHJ1ZSk7CiAKQEAg
LTg0Nyw3ICs4NDcsNyBAQCB2b2lkIFJlbmRlclRyZWVCdWlsZGVyOjpyZW1vdmVBbm9ueW1vdXNX
cmFwcGVyc0ZvcklubGluZUNoaWxkcmVuSWZOZWVkZWQoUmVuZGVyRQogICAgIC8vIGlmIHdlIGZp
bmQgYSBjb250aW51YXRpb24uCiAgICAgc3RkOjpvcHRpb25hbDxib29sPiBzaG91bGRBbGxDaGls
ZHJlbkJlSW5saW5lOwogICAgIGZvciAoYXV0byogY3VycmVudCA9IGJsb2NrUGFyZW50LT5maXJz
dENoaWxkKCk7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0U2libGluZygpKSB7Ci0g
ICAgICAgIGlmIChjdXJyZW50LT5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCisg
ICAgICAgIGlmIChjdXJyZW50LT5zdHlsZSgpLmlzRmxvYXRpbmcoKSB8fCBjdXJyZW50LT5zdHls
ZSgpLmhhc091dE9mRmxvd1Bvc2l0aW9uKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAg
ICAgICBpZiAoIWlzPFJlbmRlckJsb2NrPigqY3VycmVudCkpCkBAIC0xMTAyLDcgKzExMDIsNyBA
QCB2b2lkIFJlbmRlclRyZWVCdWlsZGVyOjpyZXBvcnRWaXN1YWxseU5vbkVtcHR5Q29udGVudChj
b25zdCBSZW5kZXJFbGVtZW50JiBwYXJlbgogICAgICAgICB9OwogICAgICAgICAvLyBTVkcgY29u
dGVudCB0ZW5kcyB0byBoYXZlIGEgZml4ZWQgc2l6ZSBjb25zdHJ1Y3QuIEhvd2V2ZXIgdGhpcyBp
cyBrbm93biB0byBiZSBpbmFjY3VyYXRlIGluIGNlcnRhaW4gY2FzZXMgKGJveC1zaXppbmc6IGJv
cmRlci1ib3gpIG9yIGVzcGVjaWFsbHkgd2hlbiB0aGUgcGFyZW50IGJveCBpcyBvdmVyc2l6ZWQu
CiAgICAgICAgIGF1dG8gY2FuZGlkYXRlU2l6ZSA9IEludFNpemUgeyB9OwotICAgICAgICBpZiAo
YXV0byBzaXplID0gZml4ZWRTaXplKGRvd25jYXN0PFJlbmRlckVsZW1lbnQ+KGNoaWxkKSkpCisg
ICAgICAgIGlmIChhdXRvIHNpemUgPSBmaXhlZFNpemUoY2hpbGQpKQogICAgICAgICAgICAgY2Fu
ZGlkYXRlU2l6ZSA9ICpzaXplOwogICAgICAgICBlbHNlIGlmIChhdXRvIHNpemUgPSBmaXhlZFNp
emUocGFyZW50KSkKICAgICAgICAgICAgIGNhbmRpZGF0ZVNpemUgPSAqc2l6ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckJs
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVp
bGRlckJsb2NrLmNwcAppbmRleCBlN2VjOTdiZWQzOGYuLjg3MzgyNWNiYWJlOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyQmxv
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
QnVpbGRlckJsb2NrLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxk
ZXI6OkJsb2NrOjppbnNlcnRDaGlsZFRvQ29udGludWF0aW9uKFJlbmRlckJsb2NrJiBwYXJlbnQs
IFJlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBib29sIGNoaWxkSXNOb3JtYWwgPSBj
aGlsZC0+aXNJbmxpbmUoKSB8fCBkb3duY2FzdDxSZW5kZXJFbGVtZW50PigqY2hpbGQpLnN0eWxl
KCkuY29sdW1uU3BhbigpID09IENvbHVtblNwYW46Ok5vbmU7CisgICAgYm9vbCBjaGlsZElzTm9y
bWFsID0gY2hpbGQtPmlzSW5saW5lKCkgfHwgY2hpbGQtPnN0eWxlKCkuY29sdW1uU3BhbigpID09
IENvbHVtblNwYW46Ok5vbmU7CiAgICAgYm9vbCBiY3BJc05vcm1hbCA9IGJlZm9yZUNoaWxkUGFy
ZW50LT5pc0lubGluZSgpIHx8IGJlZm9yZUNoaWxkUGFyZW50LT5zdHlsZSgpLmNvbHVtblNwYW4o
KSA9PSBDb2x1bW5TcGFuOjpOb25lOwogICAgIGJvb2wgZmxvd0lzTm9ybWFsID0gZmxvdy0+aXNJ
bmxpbmUoKSB8fCBmbG93LT5zdHlsZSgpLmNvbHVtblNwYW4oKSA9PSBDb2x1bW5TcGFuOjpOb25l
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVy
VHJlZUJ1aWxkZXJNdWx0aUNvbHVtbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVtbi5jcHAKaW5kZXggNDAwZGJlNmY5Y2E2
Li45MDQ1YmRlYzYzMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlQnVpbGRlck11bHRpQ29sdW1uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVtbi5jcHAKQEAg
LTE3MSw3ICsxNzEsNyBAQCBSZW5kZXJPYmplY3QqIFJlbmRlclRyZWVCdWlsZGVyOjpNdWx0aUNv
bHVtbjo6cmVzb2x2ZU1vdmVkQ2hpbGQoUmVuZGVyRnJhZ21lbnRlZAogICAgICAgICByZXR1cm4g
YmVmb3JlQ2hpbGQ7CiAKICAgICAvLyBXZSBvbmx5IG5lZWQgdG8gcmVzb2x2ZSBmb3IgY29sdW1u
IHNwYW5uZXJzLgotICAgIGlmIChiZWZvcmVDaGlsZFJlbmRlckJveC0+c3R5bGUoKS5jb2x1bW5T
cGFuKCkgIT0gQ29sdW1uU3Bhbjo6QWxsKQorICAgIGlmIChiZWZvcmVDaGlsZC0+c3R5bGUoKS5j
b2x1bW5TcGFuKCkgIT0gQ29sdW1uU3Bhbjo6QWxsKQogICAgICAgICByZXR1cm4gYmVmb3JlQ2hp
bGQ7CiAKICAgICAvLyBUaGUgcmVuZGVyZXIgZm9yIHRoZSBhY3R1YWwgRE9NIG5vZGUgdGhhdCBl
c3RhYmxpc2hlcyBhIHNwYW5uZXIgaXMgbW92ZWQgZnJvbSBpdHMgb3JpZ2luYWwKQEAgLTI0NSw5
ICsyNDUsNiBAQCB2b2lkIFJlbmRlclRyZWVCdWlsZGVyOjpNdWx0aUNvbHVtbjo6bXVsdGlDb2x1
bW5EZXNjZW5kYW50SW5zZXJ0ZWQoUmVuZGVyTXVsdGlDbwogdm9pZCBSZW5kZXJUcmVlQnVpbGRl
cjo6TXVsdGlDb2x1bW46Om11bHRpQ29sdW1uUmVsYXRpdmVXaWxsQmVSZW1vdmVkKFJlbmRlck11
bHRpQ29sdW1uRmxvdyYgZmxvdywgUmVuZGVyT2JqZWN0JiByZWxhdGl2ZSwgUmVuZGVyVHJlZUJ1
aWxkZXI6OkNhbkNvbGxhcHNlQW5vbnltb3VzQmxvY2sgY2FuQ29sbGFwc2VBbm9ueW1vdXNCbG9j
aykKIHsKICAgICBmbG93LmludmFsaWRhdGVGcmFnbWVudHMoKTsKLSAgICBpZiAoaXM8UmVuZGVy
VGV4dD4ocmVsYXRpdmUpKQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAoYXV0byogcGxhY2Vo
b2xkZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xk
ZXI+KHJlbGF0aXZlKSkgewogICAgICAgICAvLyBSZW1vdmUgdGhlIG1hcCBlbnRyeSBmb3IgdGhp
cyBzcGFubmVyLCBidXQgbGVhdmUgdGhlIGFjdHVhbCBzcGFubmVyIHJlbmRlcmVyIGFsb25lLiBB
bHNvCiAgICAgICAgIC8vIGtlZXAgdGhlIHJlZmVyZW5jZSB0byB0aGUgc3Bhbm5lciwgc2luY2Ug
dGhlIHBsYWNlaG9sZGVyIG1heSBiZSBhYm91dCB0byBiZSByZS1pbnNlcnRlZApAQCAtMjU2LDEx
ICsyNTMsMTEgQEAgdm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6TXVsdGlDb2x1bW46Om11bHRpQ29s
dW1uUmVsYXRpdmVXaWxsQmVSZW1vdmVkKFJlbmRlck11bHQKICAgICAgICAgZmxvdy5zcGFubmVy
TWFwKCkucmVtb3ZlKHBsYWNlaG9sZGVyLT5zcGFubmVyKCkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotICAgIGlmIChhdXRvKiByZW5kZXJCb3ggPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyQm94
PihyZWxhdGl2ZSk7IHJlbmRlckJveCAmJiByZW5kZXJCb3gtPnN0eWxlKCkuY29sdW1uU3Bhbigp
ID09IENvbHVtblNwYW46OkFsbCkgewotICAgICAgICBpZiAocmVuZGVyQm94LT5wYXJlbnQoKSAh
PSBmbG93LnBhcmVudCgpKQorICAgIGlmIChyZWxhdGl2ZS5zdHlsZSgpLmNvbHVtblNwYW4oKSA9
PSBDb2x1bW5TcGFuOjpBbGwpIHsKKyAgICAgICAgaWYgKHJlbGF0aXZlLnBhcmVudCgpICE9IGZs
b3cucGFyZW50KCkpCiAgICAgICAgICAgICByZXR1cm47IC8vIG5vdCBhIHZhbGlkIHNwYW5uZXIu
CiAKLSAgICAgICAgaGFuZGxlU3Bhbm5lclJlbW92YWwoZmxvdywgKnJlbmRlckJveCwgY2FuQ29s
bGFwc2VBbm9ueW1vdXNCbG9jayk7CisgICAgICAgIGhhbmRsZVNwYW5uZXJSZW1vdmFsKGZsb3cs
IHJlbGF0aXZlLCBjYW5Db2xsYXBzZUFub255bW91c0Jsb2NrKTsKICAgICB9CiAgICAgLy8gTm90
ZSB0aGF0IHdlIG1pZ2h0IGVuZCB1cCB3aXRoIGVtcHR5IGNvbHVtbiBzZXRzIGlmIGFsbCBjb2x1
bW4gY29udGVudCBpcyByZW1vdmVkLiBUaGF0J3Mgbm8KICAgICAvLyBiaWcgZGVhbCB0aG91Z2gg
KGFuZCBsb2NhdGluZyB0aGVtIHdvdWxkIGJlIGV4cGVuc2l2ZSksIGFuZCB0aGV5IHdpbGwgYmUg
Zm91bmQgYW5kIHJlLXVzZWQgaWYKQEAgLTQ0NSwxMCArNDQyLDEwIEBAIFJlbmRlck9iamVjdCog
UmVuZGVyVHJlZUJ1aWxkZXI6Ok11bHRpQ29sdW1uOjpwcm9jZXNzUG9zc2libGVTcGFubmVyRGVz
Y2VuZGFudChSCiAgICAgcmV0dXJuIG5leHREZXNjZW5kYW50OwogfQogCi12b2lkIFJlbmRlclRy
ZWVCdWlsZGVyOjpNdWx0aUNvbHVtbjo6aGFuZGxlU3Bhbm5lclJlbW92YWwoUmVuZGVyTXVsdGlD
b2x1bW5GbG93JiBmbG93LCBSZW5kZXJCb3gmIHNwYW5uZXIsIFJlbmRlclRyZWVCdWlsZGVyOjpD
YW5Db2xsYXBzZUFub255bW91c0Jsb2NrIGNhbkNvbGxhcHNlQW5vbnltb3VzQmxvY2spCit2b2lk
IFJlbmRlclRyZWVCdWlsZGVyOjpNdWx0aUNvbHVtbjo6aGFuZGxlU3Bhbm5lclJlbW92YWwoUmVu
ZGVyTXVsdGlDb2x1bW5GbG93JiBmbG93LCBSZW5kZXJPYmplY3QmIHNwYW5uZXIsIFJlbmRlclRy
ZWVCdWlsZGVyOjpDYW5Db2xsYXBzZUFub255bW91c0Jsb2NrIGNhbkNvbGxhcHNlQW5vbnltb3Vz
QmxvY2spCiB7CiAgICAgLy8gVGhlIHBsYWNlaG9sZGVyIG1heSBhbHJlYWR5IGhhdmUgYmVlbiBy
ZW1vdmVkLCBidXQgaWYgaXQgaGFzbid0LCBkbyBzbyBub3cuCi0gICAgaWYgKGF1dG8gcGxhY2Vo
b2xkZXIgPSBmbG93LnNwYW5uZXJNYXAoKS50YWtlKCZzcGFubmVyKSkKKyAgICBpZiAoYXV0byBw
bGFjZWhvbGRlciA9IGZsb3cuc3Bhbm5lck1hcCgpLnRha2UoJmRvd25jYXN0PFJlbmRlckJveD4o
c3Bhbm5lcikpKQogICAgICAgICBtX2J1aWxkZXIuZGVzdHJveSgqcGxhY2Vob2xkZXIsIGNhbkNv
bGxhcHNlQW5vbnltb3VzQmxvY2spOwogCiAgICAgaWYgKGF1dG8qIG5leHQgPSBzcGFubmVyLm5l
eHRTaWJsaW5nKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlQnVpbGRlck11bHRpQ29sdW1uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVtbi5oCmluZGV4IGQzZTRl
ZjkxNGEzZS4uYjBkODAyYjc0ZTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVtbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck11bHRpQ29sdW1uLmgK
QEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZUZyYWdtZW50ZWRGbG93
KFJlbmRlckJsb2NrRmxvdyYpOwogICAgIHZvaWQgZGVzdHJveUZyYWdtZW50ZWRGbG93KFJlbmRl
ckJsb2NrRmxvdyYpOwogICAgIFJlbmRlck9iamVjdCogcHJvY2Vzc1Bvc3NpYmxlU3Bhbm5lckRl
c2NlbmRhbnQoUmVuZGVyTXVsdGlDb2x1bW5GbG93JiwgUmVuZGVyT2JqZWN0KiYgc3VidHJlZVJv
b3QsIFJlbmRlck9iamVjdCYgZGVzY2VuZGFudCk7Ci0gICAgdm9pZCBoYW5kbGVTcGFubmVyUmVt
b3ZhbChSZW5kZXJNdWx0aUNvbHVtbkZsb3cmLCBSZW5kZXJCb3gmIHNwYW5uZXIsIFJlbmRlclRy
ZWVCdWlsZGVyOjpDYW5Db2xsYXBzZUFub255bW91c0Jsb2NrKTsKKyAgICB2b2lkIGhhbmRsZVNw
YW5uZXJSZW1vdmFsKFJlbmRlck11bHRpQ29sdW1uRmxvdyYsIFJlbmRlck9iamVjdCYgc3Bhbm5l
ciwgUmVuZGVyVHJlZUJ1aWxkZXI6OkNhbkNvbGxhcHNlQW5vbnltb3VzQmxvY2spOwogCiAgICAg
UmVuZGVyVHJlZUJ1aWxkZXImIG1fYnVpbGRlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJSdWJ5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlclJ1YnkuY3BwCmlu
ZGV4IGU0NWMzMjdmNGI0OS4uNDg0MjljY2JjYjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJSdWJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJSdWJ5LmNwcApA
QCAtNzAsMTUgKzcwLDEwIEBAIFJlbmRlckVsZW1lbnQmIFJlbmRlclRyZWVCdWlsZGVyOjpSdWJ5
OjpmaW5kT3JDcmVhdGVQYXJlbnRGb3JTdHlsZUJhc2VkUnVieUNoaWxkCiAgICAgZWxzZSBpZiAo
YXV0byogcnVieUJsb2NrID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckJsb2NrPihwYXJlbnQpOyBy
dWJ5QmxvY2sgJiYgcnVieUJsb2NrLT5jb250aW51YXRpb24oKSkKICAgICAgICAgYmVmb3JlQ2hp
bGRBbmNlc3RvciA9IFJlbmRlclRyZWVCdWlsZGVyOjpCbG9jazo6Y29udGludWF0aW9uQmVmb3Jl
KCpydWJ5QmxvY2ssIGJlZm9yZUNoaWxkKTsKIAotICAgIGF1dG8gY2hpbGRFbGVtZW50RGlzcGxh
eVR5cGUgPSBbJl0gLT4gc3RkOjpvcHRpb25hbDxEaXNwbGF5VHlwZT4gewotICAgICAgICBpZiAo
aXM8UmVuZGVyVGV4dD4oY2hpbGQpKQotICAgICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICAgICAg
cmV0dXJuIGRvd25jYXN0PFJlbmRlckVsZW1lbnQ+KGNoaWxkKS5zdHlsZSgpLmRpc3BsYXkoKTsK
LSAgICB9KCk7CisgICAgaWYgKCFjaGlsZC5pc1JlbmRlclRleHQoKSAmJiBjaGlsZC5zdHlsZSgp
LmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6UnVieSAmJiBiZWZvcmVDaGlsZEFuY2VzdG9yLT5z
dHlsZSgpLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6UnVieUJsb2NrKQorICAgICAgICByZXR1
cm4gKmJlZm9yZUNoaWxkQW5jZXN0b3I7CiAKICAgICBpZiAoYmVmb3JlQ2hpbGRBbmNlc3Rvci0+
c3R5bGUoKS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6OlJ1YnlCbG9jaykgewotICAgICAgICBp
ZiAoY2hpbGRFbGVtZW50RGlzcGxheVR5cGUgJiYgKmNoaWxkRWxlbWVudERpc3BsYXlUeXBlID09
IERpc3BsYXlUeXBlOjpSdWJ5KQotICAgICAgICAgICAgcmV0dXJuICpiZWZvcmVDaGlsZEFuY2Vz
dG9yOwogICAgICAgICAvLyBTZWUgaWYgd2UgaGF2ZSBhbiBhbm9ueW1vdXMgcnVieSBib3ggYWxy
ZWFkeS4KICAgICAgICAgLy8gRklYTUU6IEl0IHNob3VsZCBiZSB0aGUgaW1tZWRpYXRlIGNoaWxk
IGJ1dCBjb250aW51YXRpb25zIGNhbiBicmVhayB0aGlzIGFzc3VtcHRpb24uCiAgICAgICAgIGZv
ciAoQ2hlY2tlZFB0ciBmaXJzdCA9IGJlZm9yZUNoaWxkQW5jZXN0b3ItPmZpcnN0Q2hpbGQoKTsg
Zmlyc3Q7IGZpcnN0ID0gZmlyc3QtPmZpcnN0Q2hpbGRTbG93KCkpIHsKQEAgLTEwMCw3ICs5NSw3
IEBAIFJlbmRlckVsZW1lbnQmIFJlbmRlclRyZWVCdWlsZGVyOjpSdWJ5OjpmaW5kT3JDcmVhdGVQ
YXJlbnRGb3JTdHlsZUJhc2VkUnVieUNoaWxkCiAgICAgICAgIHJldHVybiAqbmV3UGFyZW50Owog
ICAgIH0KIAotICAgIGlmIChjaGlsZEVsZW1lbnREaXNwbGF5VHlwZSAmJiAoKmNoaWxkRWxlbWVu
dERpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpSdWJ5QmFzZSB8fCAqY2hpbGRFbGVtZW50RGlz
cGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OlJ1YnlBbm5vdGF0aW9uKSkKKyAgICBpZiAoIWNoaWxk
LmlzUmVuZGVyVGV4dCgpICYmIChjaGlsZC5zdHlsZSgpLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlw
ZTo6UnVieUJhc2UgfHwgY2hpbGQuc3R5bGUoKS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6OlJ1
YnlBbm5vdGF0aW9uKSkKICAgICAgICAgcmV0dXJuICpiZWZvcmVDaGlsZEFuY2VzdG9yOwogCiAg
ICAgaWYgKGJlZm9yZUNoaWxkICYmIGJlZm9yZUNoaWxkLT5wYXJlbnQoKS0+c3R5bGUoKS5kaXNw
bGF5KCkgPT0gRGlzcGxheVR5cGU6OlJ1YnlCYXNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyVGFibGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyVGFibGUuY3BwCmlu
ZGV4IGE1YmU1YTc0MmM3Ni4uMWE5OGJlMzZlZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJUYWJsZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyVGFibGUuY3Bw
CkBAIC0xNTUsNyArMTU1LDcgQEAgUmVuZGVyRWxlbWVudCYgUmVuZGVyVHJlZUJ1aWxkZXI6OlRh
YmxlOjpmaW5kT3JDcmVhdGVQYXJlbnRGb3JDaGlsZChSZW5kZXJUYWJsZSYKICAgICAgICAgfQog
ICAgIH0KIAotICAgIGF1dG8qIHBhcmVudENhbmRpZGF0ZSA9IGR5bmFtaWNEb3duY2FzdDxSZW5k
ZXJFbGVtZW50PihiZWZvcmVDaGlsZCk7CisgICAgYXV0byogcGFyZW50Q2FuZGlkYXRlID0gYmVm
b3JlQ2hpbGQ7CiAgICAgd2hpbGUgKHBhcmVudENhbmRpZGF0ZSAmJiBwYXJlbnRDYW5kaWRhdGUt
PnBhcmVudCgpLT5pc0Fub255bW91cygpCiAgICAgICAgICYmICFpczxSZW5kZXJUYWJsZVNlY3Rp
b24+KCpwYXJlbnRDYW5kaWRhdGUpCiAgICAgICAgICYmIHBhcmVudENhbmRpZGF0ZS0+c3R5bGUo
KS5kaXNwbGF5KCkgIT0gRGlzcGxheVR5cGU6OlRhYmxlQ2FwdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTVVJS2l0RXh0ZW5zaW9ucy5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01VSUtpdEV4dGVuc2lvbnMubW0KaW5kZXggZTM1MWQ4ODUy
ZmQ5Li4wYjEwNjFjMDVhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RP
TS9ET01VSUtpdEV4dGVuc2lvbnMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9N
L0RPTVVJS2l0RXh0ZW5zaW9ucy5tbQpAQCAtNTUsOCArNTUsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9SZW5kZXJCbG9jay5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJCbG9ja0Zsb3cuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUmVuZGVyQm94Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1JlbmRlckVsZW1l
bnQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyRWxlbWVudElubGluZXMuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvUmVuZGVyT2JqZWN0SW5saW5lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJUZXh0Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1JvdW5kZWRSZWN0Lmg+CkBAIC0yNTksMTMgKzI1OCwxNCBAQCBAaW1wbGVtZW50
YXRpb24gRE9NSFRNTEVsZW1lbnQgKERPTVVJS2l0Q29tcGxleGl0eUV4dGVuc2lvbnMpCiAtIChp
bnQpc3RydWN0dXJhbENvbXBsZXhpdHlDb250cmlidXRpb24KIHsKICAgICBpbnQgcmVzdWx0ID0g
MDsKLSAgICBpZiAoYXV0byogcmVuZGVyZXIgPSBjb3JlKHNlbGYpLT5yZW5kZXJlcigpKSB7Cisg
ICAgUmVuZGVyT2JqZWN0ICogcmVuZGVyZXIgPSBjb3JlKHNlbGYpLT5yZW5kZXJlcigpOworICAg
IGlmIChyZW5kZXJlcikgewogICAgICAgICBpZiAocmVuZGVyZXItPmlzRmxvYXRpbmdPck91dE9m
Rmxvd1Bvc2l0aW9uZWQoKSB8fAogICAgICAgICAgICAgcmVuZGVyZXItPmlzUmVuZGVyV2lkZ2V0
KCkpIHsKICAgICAgICAgICAgIHJlc3VsdCA9IElOVF9NQVg7Ci0gICAgICAgIH0gZWxzZSBpZiAo
IXJlbmRlcmVyLT5maXJzdENoaWxkKCkpCisgICAgICAgIH0gZWxzZSBpZiAoIXJlbmRlcmVyLT5m
aXJzdENoaWxkU2xvdygpKSB7CiAgICAgICAgICAgICByZXN1bHQgPSAwOwotICAgICAgICBlbHNl
IGlmIChpczxXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c+KCpyZW5kZXJlcikgfHwgKGlzPFJlbmRl
ckJsb2NrPigqcmVuZGVyZXIpICYmIGRvd25jYXN0PFJlbmRlckJsb2NrPigqcmVuZGVyZXIpLmlu
bGluZUNvbnRpbnVhdGlvbigpKSkgeworICAgICAgICB9IGVsc2UgaWYgKGlzPFdlYkNvcmU6OlJl
bmRlckJsb2NrRmxvdz4oKnJlbmRlcmVyKSB8fCAoaXM8UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikg
JiYgZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikuaW5saW5lQ29udGludWF0aW9uKCkp
KSB7CiAgICAgICAgICAgICBCT09MIG5vQ29zdCA9IE5POwogICAgICAgICAgICAgaWYgKGF1dG8g
cmVuZGVyQm94ID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckJveD4oKnJlbmRlcmVyKSkgewogICAg
ICAgICAgICAgICAgIGF1dG8qIHBhcmVudFJlbmRlckJveCA9IGR5bmFtaWNEb3duY2FzdDxSZW5k
ZXJCb3g+KHJlbmRlckJveC0+cGFyZW50KCkpOwpAQCAtMjczLDggKzI3Myw5IEBAIC0gKGludClz
dHJ1Y3R1cmFsQ29tcGxleGl0eUNvbnRyaWJ1dGlvbgogICAgICAgICAgICAgICAgICAgICBub0Nv
c3QgPSBZRVM7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXN1bHQgPSAobm9Db3N0ID8g
MCA6IDEpOwotICAgICAgICB9IGVsc2UgaWYgKHJlbmRlcmVyLT5pc1RyYW5zZm9ybWVkKCkpCisg
ICAgICAgIH0gZWxzZSBpZiAocmVuZGVyZXItPmlzVHJhbnNmb3JtZWQoKSkgewogICAgICAgICAg
ICAgcmVzdWx0ID0gSU5UX01BWDsKKyAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gcmVzdWx0
OwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>