<?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>252245</bug_id>
          
          <creation_ts>2023-02-14 08:54:33 -0800</creation_ts>
          <short_desc>[css-contain-intrinsic-size] auto-011.html is failing</short_desc>
          <delta_ts>2024-02-06 17:13:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=268874</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>236707</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="cathiechen">cathiechen</reporter>
          <assigned_to name="cathiechen">cathiechen</assigned_to>
          <cc>obrufau</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1933496</commentid>
    <comment_count>0</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2023-02-14 08:54:33 -0800</bug_when>
    <thetext>Per[1], contain:inline-size applies contain:size to the inline direction, so contain-intrinsic-size:auto should save last remembered size in the inline direction.

[1] https://drafts.csswg.org/css-contain-3/#containment-inline-size</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1933498</commentid>
    <comment_count>1</comment_count>
      <attachid>464983</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2023-02-14 08:56:10 -0800</bug_when>
    <thetext>Created attachment 464983
WIP-patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1935519</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-02-21 08:55:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/105728798&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1935946</commentid>
    <comment_count>3</comment_count>
      <attachid>464983</attachid>
    <who name="Oriol Brufau">obrufau</who>
    <bug_when>2023-02-22 14:00:53 -0800</bug_when>
    <thetext>Comment on attachment 464983
WIP-patch

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

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:798
&gt; +    if (m_direction == ForColumns &amp;&amp; (m_strategy-&gt;isComputingSizeContainment() || m_strategy-&gt;isComputingInlineSizeContainment())) {

May be good to add GridTrackSizingAlgorithmStrategy::isComputingSizeOrInlineSizeContainment()

&gt; Source/WebCore/rendering/RenderBox.cpp:5604
&gt; +    ASSERT(shouldApplySizeContainment() || (isHorizontalWritingMode() &amp;&amp; shouldApplyInlineSizeContainment()));

Nit: shouldApplySizeContainment() and shouldApplyInlineSizeContainment() have some common logic that might run twice, so this seems better:

isHorizontalWritingMode() ? shouldApplySizeOrInlineSizeContainment() : shouldApplySizeContainment()

&gt; Source/WebCore/rendering/RenderBox.cpp:5620
&gt; +    ASSERT(shouldApplySizeContainment() || (!isHorizontalWritingMode() &amp;&amp; shouldApplyInlineSizeContainment()));

Nit: isHorizontalWritingMode() ? shouldApplySizeContainment() : shouldApplySizeOrInlineSizeContainment()

&gt; Source/WebCore/rendering/RenderGrid.cpp:678
&gt; +    if (direction == ForColumns &amp;&amp; shouldApplyInlineSizeContainment())
&gt; +        return true;
&gt; +
&gt; +    return shouldApplySizeContainment();

Nit: return direction == ForColumns ? shouldApplySizeOrInlineSizeContainment() : shouldApplySizeContainment();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1936183</commentid>
    <comment_count>4</comment_count>
      <attachid>464983</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2023-02-23 07:48:50 -0800</bug_when>
    <thetext>Comment on attachment 464983
WIP-patch

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

Thanks for the review, Oriol!

&gt;&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:798
&gt;&gt; +    if (m_direction == ForColumns &amp;&amp; (m_strategy-&gt;isComputingSizeContainment() || m_strategy-&gt;isComputingInlineSizeContainment())) {
&gt; 
&gt; May be good to add GridTrackSizingAlgorithmStrategy::isComputingSizeOrInlineSizeContainment()

Done!

&gt;&gt; Source/WebCore/rendering/RenderBox.cpp:5604
&gt;&gt; +    ASSERT(shouldApplySizeContainment() || (isHorizontalWritingMode() &amp;&amp; shouldApplyInlineSizeContainment()));
&gt; 
&gt; Nit: shouldApplySizeContainment() and shouldApplyInlineSizeContainment() have some common logic that might run twice, so this seems better:
&gt; 
&gt; isHorizontalWritingMode() ? shouldApplySizeOrInlineSizeContainment() : shouldApplySizeContainment()

Done

&gt;&gt; Source/WebCore/rendering/RenderBox.cpp:5620
&gt;&gt; +    ASSERT(shouldApplySizeContainment() || (!isHorizontalWritingMode() &amp;&amp; shouldApplyInlineSizeContainment()));
&gt; 
&gt; Nit: isHorizontalWritingMode() ? shouldApplySizeContainment() : shouldApplySizeOrInlineSizeContainment()

Done

&gt;&gt; Source/WebCore/rendering/RenderGrid.cpp:678
&gt;&gt; +    return shouldApplySizeContainment();
&gt; 
&gt; Nit: return direction == ForColumns ? shouldApplySizeOrInlineSizeContainment() : shouldApplySizeContainment();

Done:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1936185</commentid>
    <comment_count>5</comment_count>
      <attachid>465135</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2023-02-23 07:51:12 -0800</bug_when>
    <thetext>Created attachment 465135
WIP-patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1936211</commentid>
    <comment_count>6</comment_count>
      <attachid>465135</attachid>
    <who name="Oriol Brufau">obrufau</who>
    <bug_when>2023-02-23 09:00:21 -0800</bug_when>
    <thetext>Comment on attachment 465135
WIP-patch

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

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.h:290
&gt; +    bool isComputingSizeOrInlineSizeContainment() { return isComputingSizeContainment() || isComputingInlineSizeContainment(); }

Nit: probably not that important in practice, but making it virtual and then in IndefiniteSizeStrategy

bool isComputingSizeOrInlineSizeContainment() const override { return renderGrid()-&gt;shouldApplySizeOrInlineSizeContainment(); }

would ensure a single shouldApplySizeOrStyleContainment().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1937389</commentid>
    <comment_count>7</comment_count>
      <attachid>465135</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2023-02-28 06:55:25 -0800</bug_when>
    <thetext>Comment on attachment 465135
WIP-patch

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

&gt;&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.h:290
&gt;&gt; +    bool isComputingSizeOrInlineSizeContainment() { return isComputingSizeContainment() || isComputingInlineSizeContainment(); }
&gt; 
&gt; Nit: probably not that important in practice, but making it virtual and then in IndefiniteSizeStrategy
&gt; 
&gt; bool isComputingSizeOrInlineSizeContainment() const override { return renderGrid()-&gt;shouldApplySizeOrInlineSizeContainment(); }
&gt; 
&gt; would ensure a single shouldApplySizeOrStyleContainment().

Done, thanks:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1937391</commentid>
    <comment_count>8</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2023-02-28 07:09:17 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/10797</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1937740</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-03-01 06:31:50 -0800</bug_when>
    <thetext>Committed 261003@main (9b61d115bb39): &lt;https://commits.webkit.org/261003@main&gt;

Reviewed commits have been landed. Closing PR #10797 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464983</attachid>
            <date>2023-02-14 08:56:10 -0800</date>
            <delta_ts>2023-02-23 07:51:12 -0800</delta_ts>
            <desc>WIP-patch</desc>
            <filename>cis-auto-011-001.diff</filename>
            <type>text/plain</type>
            <size>14402</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAxMS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0by0wMTEtZXhwZWN0ZWQudHh0CmluZGV4
IDIzMGFjZTY3ZjhlYS4uYzVkY2ExNTM4NmQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmlu
c2ljLXNpemUvYXV0by0wMTEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMt
c2l6ZS9hdXRvLTAxMS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKIFBBU1MgY29udGFp
bjpzaXplIGRvZXMgbm90IHByZXZlbnQgcmVjb3JkaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplCi1G
QUlMIGNvbnRhaW46aW5saW5lLXNpemUgZG9lcyBub3QgcHJldmVudCByZWNvcmRpbmcgbGFzdCBy
ZW1lbWJlcmVkIGlubGluZSBzaXplIGFzc2VydF9lcXVhbHM6IFNpemUgY29udGFpbm1lbnQgZm9y
IGlubGluZSBheGlzIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMjAgYnV0IGdvdCAwCitQQVNTIGNv
bnRhaW46aW5saW5lLXNpemUgZG9lcyBub3QgcHJldmVudCByZWNvcmRpbmcgbGFzdCByZW1lbWJl
cmVkIGlubGluZSBzaXplCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9j
b250YWluLWludHJpbnNpYy1zaXplLTAyOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmlu
c2ljLXNpemUvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS0wMjgtZXhwZWN0ZWQudHh0CmluZGV4IDkx
NzM0MmE0MDA4Ny4uZjkxNTJmNmFkMjA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2lj
LXNpemUvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS0wMjgtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29u
dGFpbi1pbnRyaW5zaWMtc2l6ZS9jb250YWluLWludHJpbnNpYy1zaXplLTAyOC1leHBlY3RlZC50
eHQKQEAgLTEsMjAgKzEsMTIgQEAKIAogUEFTUyAudGVzdCAxCiBQQVNTIC50ZXN0IDIKLUZBSUwg
LnRlc3QgMyBhc3NlcnRfZXF1YWxzOgotPGRpdiBjbGFzcz0idGVzdCBjaXMtd2lkdGgiIGRhdGEt
ZXhwZWN0ZWQtY2xpZW50LXdpZHRoPSIxMDAiIGRhdGEtZXhwZWN0ZWQtY2xpZW50LWhlaWdodD0i
MjAiPjwvZGl2PgotY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMAotRkFJTCAudGVz
dCA0IGFzc2VydF9lcXVhbHM6Ci08ZGl2IGNsYXNzPSJ0ZXN0IGNpcy1ib3RoIiBkYXRhLWV4cGVj
dGVkLWNsaWVudC13aWR0aD0iMTAwIiBkYXRhLWV4cGVjdGVkLWNsaWVudC1oZWlnaHQ9IjIwIj48
L2Rpdj4KLWNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDAKK1BBU1MgLnRlc3QgMwor
UEFTUyAudGVzdCA0CiBQQVNTIC50ZXN0IDUKLUZBSUwgLnRlc3QgNiBhc3NlcnRfZXF1YWxzOgot
PGRpdiBjbGFzcz0idGVzdCBjaXMtaGVpZ2h0IHZlcnRpY2FsIiBkYXRhLWV4cGVjdGVkLWNsaWVu
dC13aWR0aD0iNDAiIGRhdGEtZXhwZWN0ZWQtY2xpZW50LWhlaWdodD0iNTAiPjwvZGl2PgotY2xp
ZW50SGVpZ2h0IGV4cGVjdGVkIDUwIGJ1dCBnb3QgMAorUEFTUyAudGVzdCA2CiBQQVNTIC50ZXN0
IDcKLUZBSUwgLnRlc3QgOCBhc3NlcnRfZXF1YWxzOgotPGRpdiBjbGFzcz0idGVzdCBjaXMtYm90
aCB2ZXJ0aWNhbCIgZGF0YS1leHBlY3RlZC1jbGllbnQtd2lkdGg9IjQwIiBkYXRhLWV4cGVjdGVk
LWNsaWVudC1oZWlnaHQ9IjUwIj48L2Rpdj4KLWNsaWVudEhlaWdodCBleHBlY3RlZCA1MCBidXQg
Z290IDAKK1BBU1MgLnRlc3QgOAogUEFTUyAudGVzdCA5CiBQQVNTIC50ZXN0IDEwCiBGQUlMIC50
ZXN0IDExIGFzc2VydF9lcXVhbHM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwCmluZGV4IGY2ZWQzMTA3OGM4Mi4uMjlhMWNm
YzJhYzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6
aW5nQWxnb3JpdGhtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNr
U2l6aW5nQWxnb3JpdGhtLmNwcApAQCAtNzk1LDcgKzc5NSw3IEBAIGRvdWJsZSBHcmlkVHJhY2tT
aXppbmdBbGdvcml0aG06OmZpbmRGclVuaXRTaXplKGNvbnN0IEdyaWRTcGFuJiB0cmFja3NTcGFu
LCBMYXlvCiAKIHZvaWQgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpjb21wdXRlR3JpZENvbnRh
aW5lckludHJpbnNpY1NpemVzKCkKIHsKLSAgICBpZiAobV9kaXJlY3Rpb24gPT0gRm9yQ29sdW1u
cyAmJiBtX3N0cmF0ZWd5LT5pc0NvbXB1dGluZ1NpemVDb250YWlubWVudCgpKSB7CisgICAgaWYg
KG1fZGlyZWN0aW9uID09IEZvckNvbHVtbnMgJiYgKG1fc3RyYXRlZ3ktPmlzQ29tcHV0aW5nU2l6
ZUNvbnRhaW5tZW50KCkgfHwgbV9zdHJhdGVneS0+aXNDb21wdXRpbmdJbmxpbmVTaXplQ29udGFp
bm1lbnQoKSkpIHsKICAgICAgICAgaWYgKGF1dG8gc2l6ZSA9IG1fcmVuZGVyR3JpZC0+ZXhwbGlj
aXRJbnRyaW5zaWNJbm5lckxvZ2ljYWxTaXplKG1fZGlyZWN0aW9uKSkgewogICAgICAgICAgICAg
bV9taW5Db250ZW50U2l6ZSA9IHNpemUudmFsdWUoKTsKICAgICAgICAgICAgIG1fbWF4Q29udGVu
dFNpemUgPSBzaXplLnZhbHVlKCk7CkBAIC0xNjcwLDcgKzE2NzAsNyBAQCB2b2lkIEdyaWRUcmFj
a1NpemluZ0FsZ29yaXRobTo6cnVuKCkKIAogICAgIC8vIFN0ZXAgMy4KICAgICBtX3N0cmF0ZWd5
LT5tYXhpbWl6ZVRyYWNrcyh0cmFja3MobV9kaXJlY3Rpb24pLCBtX2RpcmVjdGlvbiA9PSBGb3JD
b2x1bW5zID8gbV9mcmVlU3BhY2VDb2x1bW5zIDogbV9mcmVlU3BhY2VSb3dzKTsKLSAgICBpZiAo
bV9zdHJhdGVneS0+aXNDb21wdXRpbmdTaXplQ29udGFpbm1lbnQoKSAmJiAhbV9yZW5kZXJHcmlk
LT5leHBsaWNpdEludHJpbnNpY0lubmVyTG9naWNhbFNpemUobV9kaXJlY3Rpb24pKQorICAgIGlm
ICgobV9zdHJhdGVneS0+aXNDb21wdXRpbmdTaXplQ29udGFpbm1lbnQoKSB8fCBtX3N0cmF0ZWd5
LT5pc0NvbXB1dGluZ0lubGluZVNpemVDb250YWlubWVudCgpKSAmJiAhbV9yZW5kZXJHcmlkLT5l
eHBsaWNpdEludHJpbnNpY0lubmVyTG9naWNhbFNpemUobV9kaXJlY3Rpb24pKQogICAgICAgICBy
ZXR1cm47CiAKICAgICAvLyBTdGVwIDQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcAppbmRleCBkZjU0NWM3OTI4YzMuLjVlZjkxZDhhOGMwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0yMjY1LDcgKzIyNjUsNyBAQCB2b2lkIFJl
bmRlckJsb2NrOjpvZmZzZXRGb3JDb250ZW50cyhMYXlvdXRQb2ludCYgb2Zmc2V0KSBjb25zdAog
dm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5p
dCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKCFjaGlsZHJlbklubGluZSgpKTsKLSAgICBpZiAoc2hvdWxkQXBwbHlTaXpl
Q29udGFpbm1lbnQoKSkgeworICAgIGlmIChzaG91bGRBcHBseVNpemVPcklubGluZVNpemVDb250
YWlubWVudCgpKSB7CiAgICAgICAgIGlmIChhdXRvIHdpZHRoID0gZXhwbGljaXRJbnRyaW5zaWNJ
bm5lckxvZ2ljYWxXaWR0aCgpKSB7CiAgICAgICAgICAgICBtaW5Mb2dpY2FsV2lkdGggPSB3aWR0
aC52YWx1ZSgpOwogICAgICAgICAgICAgbWF4TG9naWNhbFdpZHRoID0gd2lkdGgudmFsdWUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggZDk1
YmUxNGM4NzY2Li5hMWQ3MDMyMTMyYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC0zNDUsMTcgKzM0NSwxNSBAQCB2b2lkIFJlbmRlckJsb2Nr
Rmxvdzo6YWRqdXN0SW50cmluc2ljTG9naWNhbFdpZHRoc0ZvckNvbHVtbnMoTGF5b3V0VW5pdCYg
bWluTG9naQogCiB2b2lkIFJlbmRlckJsb2NrRmxvdzo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxX
aWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2Fs
V2lkdGgpIGNvbnN0CiB7Ci0gICAgaWYgKHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpIHsK
KyAgICBpZiAoc2hvdWxkQXBwbHlTaXplT3JJbmxpbmVTaXplQ29udGFpbm1lbnQoKSkgewogICAg
ICAgICBpZiAoYXV0byB3aWR0aCA9IGV4cGxpY2l0SW50cmluc2ljSW5uZXJMb2dpY2FsV2lkdGgo
KSkgewogICAgICAgICAgICAgbWluTG9naWNhbFdpZHRoID0gd2lkdGgudmFsdWUoKTsKICAgICAg
ICAgICAgIG1heExvZ2ljYWxXaWR0aCA9IHdpZHRoLnZhbHVlKCk7CiAgICAgICAgIH0KLSAgICB9
IGVsc2UgaWYgKCFzaG91bGRBcHBseUlubGluZVNpemVDb250YWlubWVudCgpKSB7Ci0gICAgICAg
IGlmIChjaGlsZHJlbklubGluZSgpKQotICAgICAgICAgICAgY29tcHV0ZUlubGluZVByZWZlcnJl
ZExvZ2ljYWxXaWR0aHMobWluTG9naWNhbFdpZHRoLCBtYXhMb2dpY2FsV2lkdGgpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBjb21wdXRlQmxvY2tQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKG1p
bkxvZ2ljYWxXaWR0aCwgbWF4TG9naWNhbFdpZHRoKTsKLSAgICB9CisgICAgfSBlbHNlIGlmIChj
aGlsZHJlbklubGluZSgpKQorICAgICAgICBjb21wdXRlSW5saW5lUHJlZmVycmVkTG9naWNhbFdp
ZHRocyhtaW5Mb2dpY2FsV2lkdGgsIG1heExvZ2ljYWxXaWR0aCk7CisgICAgZWxzZQorICAgICAg
ICBjb21wdXRlQmxvY2tQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKG1pbkxvZ2ljYWxXaWR0aCwgbWF4
TG9naWNhbFdpZHRoKTsKIAogICAgIG1heExvZ2ljYWxXaWR0aCA9IHN0ZDo6bWF4KG1pbkxvZ2lj
YWxXaWR0aCwgbWF4TG9naWNhbFdpZHRoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAppbmRleCBhODc1MDgxNmFkNWEuLjA3MDU4MmZlMjhhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTU2MDEsNyArNTYwMSw3IEBAIGJvb2wgUmVuZGVy
Qm94OjpzaG91bGRJZ25vcmVNaW5NYXhTaXplcygpIGNvbnN0CiAKIHN0ZDo6b3B0aW9uYWw8TGF5
b3V0VW5pdD4gUmVuZGVyQm94OjpleHBsaWNpdEludHJpbnNpY0lubmVyV2lkdGgoKSBjb25zdAog
ewotICAgIEFTU0VSVChzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKTsKKyAgICBBU1NFUlQo
c2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSB8fCAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSAmJiBzaG91bGRBcHBseUlubGluZVNpemVDb250YWlubWVudCgpKSk7CiAgICAgaWYgKHN0eWxl
KCkuY29udGFpbkludHJpbnNpY1dpZHRoVHlwZSgpID09IENvbnRhaW5JbnRyaW5zaWNTaXplVHlw
ZTo6Tm9uZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIApAQCAtNTYxNyw3ICs1NjE3
LDcgQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJCb3g6OmV4cGxpY2l0SW50cmlu
c2ljSW5uZXJXaWR0aCgpIGNvbnN0CiAKIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVy
Qm94OjpleHBsaWNpdEludHJpbnNpY0lubmVySGVpZ2h0KCkgY29uc3QKIHsKLSAgICBBU1NFUlQo
c2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSk7CisgICAgQVNTRVJUKHNob3VsZEFwcGx5U2l6
ZUNvbnRhaW5tZW50KCkgfHwgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpICYmIHNob3VsZEFw
cGx5SW5saW5lU2l6ZUNvbnRhaW5tZW50KCkpKTsKICAgICBpZiAoc3R5bGUoKS5jb250YWluSW50
cmluc2ljSGVpZ2h0VHlwZSgpID09IENvbnRhaW5JbnRyaW5zaWNTaXplVHlwZTo6Tm9uZSkKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCA5NmUzY2U1
NjEyNmYuLjQyNmU1Zjc5NjlkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKQEAgLTIwMyw3ICsyMDMsNyBA
QCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6Y29tcHV0ZUludHJpbnNpY0xvZ2lj
YWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTAogICAgICAgICBtaW5Mb2dpY2FsV2lkdGggKz0gc2Ny
b2xsYmFyV2lkdGg7CiAgICAgfTsKIAotICAgIGlmIChzaG91bGRBcHBseVNpemVDb250YWlubWVu
dCgpKSB7CisgICAgaWYgKHNob3VsZEFwcGx5U2l6ZU9ySW5saW5lU2l6ZUNvbnRhaW5tZW50KCkp
IHsKICAgICAgICAgaWYgKGF1dG8gd2lkdGggPSBleHBsaWNpdEludHJpbnNpY0lubmVyTG9naWNh
bFdpZHRoKCkpIHsKICAgICAgICAgICAgIG1pbkxvZ2ljYWxXaWR0aCA9IHdpZHRoLnZhbHVlKCk7
CiAgICAgICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSB3aWR0aC52YWx1ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKaW5k
ZXggZmQ5ZDhjZWE5NzEyLi5iOTIzMjRmNzFhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApAQCAtMjA0LDcgKzIwNCw3
IEBAIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50Q29udHJvbChQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pCiAKIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRy
b2w6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxX
aWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdAogewotICAgIGlmIChzaG91
bGRBcHBseVNpemVDb250YWlubWVudCgpKSB7CisgICAgaWYgKHNob3VsZEFwcGx5U2l6ZU9ySW5s
aW5lU2l6ZUNvbnRhaW5tZW50KCkpIHsKICAgICAgICAgaWYgKGF1dG8gd2lkdGggPSBleHBsaWNp
dEludHJpbnNpY0lubmVyTG9naWNhbFdpZHRoKCkpIHsKICAgICAgICAgICAgIG1pbkxvZ2ljYWxX
aWR0aCA9IHdpZHRoLnZhbHVlKCk7CiAgICAgICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSB3aWR0
aC52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZs
ZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5jcHAKaW5kZXggNzJhMmMzN2ZhOTMyLi4xMGRhNmJmZjIzMGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtMTAzLDE0ICsxMDMsMTEg
QEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMo
TGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHQKICAgICAgICAgbWluTG9naWNhbFdpZHRoICs9IHNj
cm9sbGJhcldpZHRoOwogICAgIH07CiAKLSAgICBib29sIG5lZWRzU2l6ZUNvbnRhaW5tZW50ID0g
c2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKTsKLSAgICBpZiAobmVlZHNTaXplQ29udGFpbm1l
bnQpIHsKKyAgICBpZiAoc2hvdWxkQXBwbHlTaXplT3JJbmxpbmVTaXplQ29udGFpbm1lbnQoKSkg
ewogICAgICAgICBpZiAoYXV0byB3aWR0aCA9IGV4cGxpY2l0SW50cmluc2ljSW5uZXJMb2dpY2Fs
V2lkdGgoKSkgewogICAgICAgICAgICAgbWluTG9naWNhbFdpZHRoID0gd2lkdGgudmFsdWUoKTsK
ICAgICAgICAgICAgIG1heExvZ2ljYWxXaWR0aCA9IHdpZHRoLnZhbHVlKCk7CiAgICAgICAgIH0K
LSAgICB9Ci0gICAgaWYgKG5lZWRzU2l6ZUNvbnRhaW5tZW50IHx8IHNob3VsZEFwcGx5SW5saW5l
U2l6ZUNvbnRhaW5tZW50KCkpIHsKICAgICAgICAgYWRkU2Nyb2xsYmFyV2lkdGgoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApp
bmRleCBiZmY0NjU4ZjJjYWEuLmQzYjYxYzI1YTU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJHcmlkLmNwcApAQCAtNjcwLDkgKzY3MCwxOCBAQCB2b2lkIFJlbmRlckdyaWQ6OmNv
bXB1dGVUcmFja1NpemVzRm9ySW5kZWZpbml0ZVNpemUoR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGht
JiBhbAogICAgIEFTU0VSVChhbGdvcml0aG0udHJhY2tzQXJlV2lkZXJUaGFuTWluVHJhY2tCcmVh
ZHRoKCkpOwogfQogCitib29sIFJlbmRlckdyaWQ6OnNob3VsZENoZWNrRXhwbGljaXRJbnRyaW5z
aWNJbm5lckxvZ2ljYWxTaXplKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pIGNv
bnN0Cit7CisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zICYmIHNob3VsZEFwcGx5SW5s
aW5lU2l6ZUNvbnRhaW5tZW50KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJu
IHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCk7Cit9CisKKwogc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiBSZW5kZXJHcmlkOjpleHBsaWNpdEludHJpbnNpY0lubmVyTG9naWNhbFNpemUoR3Jp
ZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKIHsKLSAgICBpZiAoIXNob3Vs
ZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpCisgICAgaWYgKCFzaG91bGRDaGVja0V4cGxpY2l0SW50
cmluc2ljSW5uZXJMb2dpY2FsU2l6ZShkaXJlY3Rpb24pKQogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIGlmIChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykKICAgICAgICAgcmV0dXJu
IGV4cGxpY2l0SW50cmluc2ljSW5uZXJMb2dpY2FsV2lkdGgoKTsKQEAgLTc5MSw3ICs4MDAsNyBA
QCBzdGQ6OnVuaXF1ZV9wdHI8T3JkZXJlZFRyYWNrSW5kZXhTZXQ+IFJlbmRlckdyaWQ6OmNvbXB1
dGVFbXB0eVRyYWNrc0ZvckF1dG9SZXBlYQogICAgIHVuc2lnbmVkIGZpcnN0QXV0b1JlcGVhdFRy
YWNrID0gaW5zZXJ0aW9uUG9pbnQgKyBjdXJyZW50R3JpZCgpLmV4cGxpY2l0R3JpZFN0YXJ0KGRp
cmVjdGlvbik7CiAgICAgdW5zaWduZWQgbGFzdEF1dG9SZXBlYXRUcmFjayA9IGZpcnN0QXV0b1Jl
cGVhdFRyYWNrICsgY3VycmVudEdyaWQoKS5hdXRvUmVwZWF0VHJhY2tzKGRpcmVjdGlvbik7CiAK
LSAgICBpZiAoIWN1cnJlbnRHcmlkKCkuaGFzR3JpZEl0ZW1zKCkgfHwgc2hvdWxkQXBwbHlJbmxp
bmVTaXplQ29udGFpbm1lbnQoKSB8fCAoc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSAmJiAh
ZXhwbGljaXRJbnRyaW5zaWNJbm5lckxvZ2ljYWxTaXplKGRpcmVjdGlvbikpKSB7CisgICAgaWYg
KCFjdXJyZW50R3JpZCgpLmhhc0dyaWRJdGVtcygpIHx8IChzaG91bGRDaGVja0V4cGxpY2l0SW50
cmluc2ljSW5uZXJMb2dpY2FsU2l6ZShkaXJlY3Rpb24pICYmICFleHBsaWNpdEludHJpbnNpY0lu
bmVyTG9naWNhbFNpemUoZGlyZWN0aW9uKSkpIHsKICAgICAgICAgZW1wdHlUcmFja0luZGV4ZXMg
PSBtYWtlVW5pcXVlPE9yZGVyZWRUcmFja0luZGV4U2V0PigpOwogICAgICAgICBmb3IgKHVuc2ln
bmVkIHRyYWNrSW5kZXggPSBmaXJzdEF1dG9SZXBlYXRUcmFjazsgdHJhY2tJbmRleCA8IGxhc3RB
dXRvUmVwZWF0VHJhY2s7ICsrdHJhY2tJbmRleCkKICAgICAgICAgICAgIGVtcHR5VHJhY2tJbmRl
eGVzLT5hZGQodHJhY2tJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaApp
bmRleCAzNTIzYjk0MzliYjIuLmYzMDE3NmMyOGVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyR3JpZC5oCkBAIC0xNDgsNiArMTQ4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG5hbWVk
R3JpZExpbmVzRGVmaW5pdGlvbkRpZENoYW5nZShjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0Owog
ICAgIGJvb2wgaW1wbGljaXRHcmlkTGluZXNEZWZpbml0aW9uRGlkQ2hhbmdlKGNvbnN0IFJlbmRl
clN0eWxlJikgY29uc3Q7CiAKKyAgICBib29sIHNob3VsZENoZWNrRXhwbGljaXRJbnRyaW5zaWNJ
bm5lckxvZ2ljYWxTaXplKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7CiAgICAgc3Rk
OjpvcHRpb25hbDxMYXlvdXRVbml0PiBleHBsaWNpdEludHJpbnNpY0lubmVyTG9naWNhbFNpemUo
R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKICAgICB1bnNpZ25lZCBjb21wdXRlQXV0
b1JlcGVhdFRyYWNrc0NvdW50KEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgc3RkOjpvcHRpb25h
bDxMYXlvdXRVbml0PiBhdmFpbGFibGVTaXplKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4IDYyYjk1ZmM3YzUyYi4uMWYwZjU5NWU0NTZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCkBAIC0yMDIs
NyArMjAyLDcgQEAgdm9pZCBSZW5kZXJMaXN0Qm94OjpzY3JvbGxUb1JldmVhbFNlbGVjdGlvbigp
CiAKIHZvaWQgUmVuZGVyTGlzdEJveDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5
b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNv
bnN0CiB7Ci0gICAgaWYgKHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpIHsKKyAgICBpZiAo
c2hvdWxkQXBwbHlTaXplT3JJbmxpbmVTaXplQ29udGFpbm1lbnQoKSkgewogICAgICAgICBpZiAo
YXV0byB3aWR0aCA9IGV4cGxpY2l0SW50cmluc2ljSW5uZXJMb2dpY2FsV2lkdGgoKSkKICAgICAg
ICAgICAgIG1heExvZ2ljYWxXaWR0aCA9IHdpZHRoLnZhbHVlKCk7CiAgICAgICAgIGVsc2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IDU5NTk1ZmJk
NDRjOS4uYTMyNTZlNWJiOTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZW51TGlzdC5jcHAKQEAgLTMxOSw3ICszMTksNyBAQCB2b2lkIFJlbmRlck1lbnVMaXN0Ojpjb21w
dXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsCiB7
CiAgICAgbWF4TG9naWNhbFdpZHRoID0gc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSA/IHRo
ZW1lKCkubWluaW11bU1lbnVMaXN0U2l6ZShzdHlsZSgpKSA6IHN0ZDo6bWF4KG1fb3B0aW9uc1dp
ZHRoLCB0aGVtZSgpLm1pbmltdW1NZW51TGlzdFNpemUoc3R5bGUoKSkpOwogICAgIG1heExvZ2lj
YWxXaWR0aCArPSBtX2lubmVyQmxvY2stPnBhZGRpbmdMZWZ0KCkgKyBtX2lubmVyQmxvY2stPnBh
ZGRpbmdSaWdodCgpOwotICAgIGlmIChzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKSB7Cisg
ICAgaWYgKHNob3VsZEFwcGx5U2l6ZU9ySW5saW5lU2l6ZUNvbnRhaW5tZW50KCkpIHsKICAgICAg
ICAgaWYgKGF1dG8gd2lkdGggPSBleHBsaWNpdEludHJpbnNpY0lubmVyTG9naWNhbFdpZHRoKCkp
CiAgICAgICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSB3aWR0aC52YWx1ZSgpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKaW5kZXggNmNiYmNkOTk0Yzgy
Li43YWJjMDBjYjllYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbGlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIu
Y3BwCkBAIC02OSw3ICs2OSw3IEBAIExheW91dFVuaXQgUmVuZGVyU2xpZGVyOjpiYXNlbGluZVBv
c2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCAvKmZpcnN0TGluZSovLCBMaW5lCiAKIHZvaWQgUmVu
ZGVyU2xpZGVyOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5M
b2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29uc3QKIHsKLSAgICBp
ZiAoc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSkgeworICAgIGlmIChzaG91bGRBcHBseVNp
emVPcklubGluZVNpemVDb250YWlubWVudCgpKSB7CiAgICAgICAgIGlmIChhdXRvIHdpZHRoID0g
ZXhwbGljaXRJbnRyaW5zaWNJbm5lckxvZ2ljYWxXaWR0aCgpKSB7CiAgICAgICAgICAgICBtaW5M
b2dpY2FsV2lkdGggPSB3aWR0aC52YWx1ZSgpOwogICAgICAgICAgICAgbWF4TG9naWNhbFdpZHRo
ID0gd2lkdGgudmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2wuY3BwCmluZGV4IDQwM2NkOGZjN2IxNC4uNTNjOTUzZjEwNzAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKQEAgLTE2MSw3ICsx
NjEsNyBAQCBmbG9hdCBSZW5kZXJUZXh0Q29udHJvbDo6c2NhbGVFbVRvVW5pdHMoaW50IHgpIGNv
bnN0CiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lk
dGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdp
ZHRoKSBjb25zdAogewotICAgIGlmIChzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKSB7Cisg
ICAgaWYgKHNob3VsZEFwcGx5U2l6ZU9ySW5saW5lU2l6ZUNvbnRhaW5tZW50KCkpIHsKICAgICAg
ICAgaWYgKGF1dG8gd2lkdGggPSBleHBsaWNpdEludHJpbnNpY0lubmVyTG9naWNhbFdpZHRoKCkp
IHsKICAgICAgICAgICAgIG1pbkxvZ2ljYWxXaWR0aCA9IHdpZHRoLnZhbHVlKCk7CiAgICAgICAg
ICAgICBtYXhMb2dpY2FsV2lkdGggPSB3aWR0aC52YWx1ZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465135</attachid>
            <date>2023-02-23 07:51:12 -0800</date>
            <delta_ts>2023-02-23 07:51:12 -0800</delta_ts>
            <desc>WIP-patch</desc>
            <filename>cis-auto-011-002.diff</filename>
            <type>text/plain</type>
            <size>15677</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAxMS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0by0wMTEtZXhwZWN0ZWQudHh0CmluZGV4
IDIzMGFjZTY3ZjhlYS4uYzVkY2ExNTM4NmQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmlu
c2ljLXNpemUvYXV0by0wMTEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMt
c2l6ZS9hdXRvLTAxMS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKIFBBU1MgY29udGFp
bjpzaXplIGRvZXMgbm90IHByZXZlbnQgcmVjb3JkaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplCi1G
QUlMIGNvbnRhaW46aW5saW5lLXNpemUgZG9lcyBub3QgcHJldmVudCByZWNvcmRpbmcgbGFzdCBy
ZW1lbWJlcmVkIGlubGluZSBzaXplIGFzc2VydF9lcXVhbHM6IFNpemUgY29udGFpbm1lbnQgZm9y
IGlubGluZSBheGlzIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMjAgYnV0IGdvdCAwCitQQVNTIGNv
bnRhaW46aW5saW5lLXNpemUgZG9lcyBub3QgcHJldmVudCByZWNvcmRpbmcgbGFzdCByZW1lbWJl
cmVkIGlubGluZSBzaXplCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9j
b250YWluLWludHJpbnNpYy1zaXplLTAyOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmlu
c2ljLXNpemUvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS0wMjgtZXhwZWN0ZWQudHh0CmluZGV4IDkx
NzM0MmE0MDA4Ny4uZjkxNTJmNmFkMjA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2lj
LXNpemUvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS0wMjgtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29u
dGFpbi1pbnRyaW5zaWMtc2l6ZS9jb250YWluLWludHJpbnNpYy1zaXplLTAyOC1leHBlY3RlZC50
eHQKQEAgLTEsMjAgKzEsMTIgQEAKIAogUEFTUyAudGVzdCAxCiBQQVNTIC50ZXN0IDIKLUZBSUwg
LnRlc3QgMyBhc3NlcnRfZXF1YWxzOgotPGRpdiBjbGFzcz0idGVzdCBjaXMtd2lkdGgiIGRhdGEt
ZXhwZWN0ZWQtY2xpZW50LXdpZHRoPSIxMDAiIGRhdGEtZXhwZWN0ZWQtY2xpZW50LWhlaWdodD0i
MjAiPjwvZGl2PgotY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMAotRkFJTCAudGVz
dCA0IGFzc2VydF9lcXVhbHM6Ci08ZGl2IGNsYXNzPSJ0ZXN0IGNpcy1ib3RoIiBkYXRhLWV4cGVj
dGVkLWNsaWVudC13aWR0aD0iMTAwIiBkYXRhLWV4cGVjdGVkLWNsaWVudC1oZWlnaHQ9IjIwIj48
L2Rpdj4KLWNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDAKK1BBU1MgLnRlc3QgMwor
UEFTUyAudGVzdCA0CiBQQVNTIC50ZXN0IDUKLUZBSUwgLnRlc3QgNiBhc3NlcnRfZXF1YWxzOgot
PGRpdiBjbGFzcz0idGVzdCBjaXMtaGVpZ2h0IHZlcnRpY2FsIiBkYXRhLWV4cGVjdGVkLWNsaWVu
dC13aWR0aD0iNDAiIGRhdGEtZXhwZWN0ZWQtY2xpZW50LWhlaWdodD0iNTAiPjwvZGl2PgotY2xp
ZW50SGVpZ2h0IGV4cGVjdGVkIDUwIGJ1dCBnb3QgMAorUEFTUyAudGVzdCA2CiBQQVNTIC50ZXN0
IDcKLUZBSUwgLnRlc3QgOCBhc3NlcnRfZXF1YWxzOgotPGRpdiBjbGFzcz0idGVzdCBjaXMtYm90
aCB2ZXJ0aWNhbCIgZGF0YS1leHBlY3RlZC1jbGllbnQtd2lkdGg9IjQwIiBkYXRhLWV4cGVjdGVk
LWNsaWVudC1oZWlnaHQ9IjUwIj48L2Rpdj4KLWNsaWVudEhlaWdodCBleHBlY3RlZCA1MCBidXQg
Z290IDAKK1BBU1MgLnRlc3QgOAogUEFTUyAudGVzdCA5CiBQQVNTIC50ZXN0IDEwCiBGQUlMIC50
ZXN0IDExIGFzc2VydF9lcXVhbHM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwCmluZGV4IGY2ZWQzMTA3OGM4Mi4uNWM4YzU2
YTU2M2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6
aW5nQWxnb3JpdGhtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNr
U2l6aW5nQWxnb3JpdGhtLmNwcApAQCAtNzk1LDcgKzc5NSw3IEBAIGRvdWJsZSBHcmlkVHJhY2tT
aXppbmdBbGdvcml0aG06OmZpbmRGclVuaXRTaXplKGNvbnN0IEdyaWRTcGFuJiB0cmFja3NTcGFu
LCBMYXlvCiAKIHZvaWQgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpjb21wdXRlR3JpZENvbnRh
aW5lckludHJpbnNpY1NpemVzKCkKIHsKLSAgICBpZiAobV9kaXJlY3Rpb24gPT0gRm9yQ29sdW1u
cyAmJiBtX3N0cmF0ZWd5LT5pc0NvbXB1dGluZ1NpemVDb250YWlubWVudCgpKSB7CisgICAgaWYg
KG1fZGlyZWN0aW9uID09IEZvckNvbHVtbnMgJiYgbV9zdHJhdGVneS0+aXNDb21wdXRpbmdTaXpl
T3JJbmxpbmVTaXplQ29udGFpbm1lbnQoKSkgewogICAgICAgICBpZiAoYXV0byBzaXplID0gbV9y
ZW5kZXJHcmlkLT5leHBsaWNpdEludHJpbnNpY0lubmVyTG9naWNhbFNpemUobV9kaXJlY3Rpb24p
KSB7CiAgICAgICAgICAgICBtX21pbkNvbnRlbnRTaXplID0gc2l6ZS52YWx1ZSgpOwogICAgICAg
ICAgICAgbV9tYXhDb250ZW50U2l6ZSA9IHNpemUudmFsdWUoKTsKQEAgLTgwNyw3ICs4MDcsNyBA
QCB2b2lkIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6Y29tcHV0ZUdyaWRDb250YWluZXJJbnRy
aW5zaWNTaXplcygpCiAKICAgICBWZWN0b3I8R3JpZFRyYWNrPiYgYWxsVHJhY2tzID0gdHJhY2tz
KG1fZGlyZWN0aW9uKTsKICAgICBmb3IgKGF1dG8mIHRyYWNrIDogYWxsVHJhY2tzKSB7Ci0gICAg
ICAgIEFTU0VSVChtX3N0cmF0ZWd5LT5pc0NvbXB1dGluZ1NpemVDb250YWlubWVudCgpIHx8IG1f
c3RyYXRlZ3ktPmlzQ29tcHV0aW5nSW5saW5lU2l6ZUNvbnRhaW5tZW50KCkgfHwgIXRyYWNrLmlu
ZmluaXRlR3Jvd3RoUG90ZW50aWFsKCkpOworICAgICAgICBBU1NFUlQobV9zdHJhdGVneS0+aXND
b21wdXRpbmdTaXplT3JJbmxpbmVTaXplQ29udGFpbm1lbnQoKSB8fCAhdHJhY2suaW5maW5pdGVH
cm93dGhQb3RlbnRpYWwoKSk7CiAgICAgICAgIG1fbWluQ29udGVudFNpemUgKz0gdHJhY2suYmFz
ZVNpemUoKTsKICAgICAgICAgbV9tYXhDb250ZW50U2l6ZSArPSB0cmFjay5ncm93dGhMaW1pdElz
SW5maW5pdGUoKSA/IHRyYWNrLmJhc2VTaXplKCkgOiB0cmFjay5ncm93dGhMaW1pdCgpOwogICAg
ICAgICAvLyBUaGUgZ3Jvd3RoIGxpbWl0IGNhcHMgbXVzdCBiZSBjbGVhcmVkIG5vdyBpbiBvcmRl
ciB0byBwcm9wZXJseSBzb3J0CkBAIC0xNjcwLDcgKzE2NzAsNyBAQCB2b2lkIEdyaWRUcmFja1Np
emluZ0FsZ29yaXRobTo6cnVuKCkKIAogICAgIC8vIFN0ZXAgMy4KICAgICBtX3N0cmF0ZWd5LT5t
YXhpbWl6ZVRyYWNrcyh0cmFja3MobV9kaXJlY3Rpb24pLCBtX2RpcmVjdGlvbiA9PSBGb3JDb2x1
bW5zID8gbV9mcmVlU3BhY2VDb2x1bW5zIDogbV9mcmVlU3BhY2VSb3dzKTsKLSAgICBpZiAobV9z
dHJhdGVneS0+aXNDb21wdXRpbmdTaXplQ29udGFpbm1lbnQoKSAmJiAhbV9yZW5kZXJHcmlkLT5l
eHBsaWNpdEludHJpbnNpY0lubmVyTG9naWNhbFNpemUobV9kaXJlY3Rpb24pKQorICAgIGlmICht
X3N0cmF0ZWd5LT5pc0NvbXB1dGluZ1NpemVPcklubGluZVNpemVDb250YWlubWVudCgpICYmICFt
X3JlbmRlckdyaWQtPmV4cGxpY2l0SW50cmluc2ljSW5uZXJMb2dpY2FsU2l6ZShtX2RpcmVjdGlv
bikpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFN0ZXAgNC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaAppbmRleCA2MmU4NmJm
ZTU0MjIuLjg1YTI2N2ExZTQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaApAQCAtMjg3LDYgKzI4Nyw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIExheW91dFVuaXQgZnJlZVNwYWNlRm9yU3RyZXRjaEF1dG9UcmFja3NTdGVw
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0NvbXB1dGluZ1NpemVDb250YWlubWVu
dCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNDb21wdXRpbmdJbmxpbmVTaXplQ29u
dGFpbm1lbnQoKSBjb25zdCA9IDA7CisgICAgYm9vbCBpc0NvbXB1dGluZ1NpemVPcklubGluZVNp
emVDb250YWlubWVudCgpIHsgcmV0dXJuIGlzQ29tcHV0aW5nU2l6ZUNvbnRhaW5tZW50KCkgfHwg
aXNDb21wdXRpbmdJbmxpbmVTaXplQ29udGFpbm1lbnQoKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAg
R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtU3RyYXRlZ3koR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGht
JiBhbGdvcml0aG0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRl
eCAwODYyYTUzODUyMmMuLmI4MjgzMzgxNTlmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCkBAIC0yMjY1LDcgKzIyNjUsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpv
ZmZzZXRGb3JDb250ZW50cyhMYXlvdXRQb2ludCYgb2Zmc2V0KSBjb25zdAogdm9pZCBSZW5kZXJC
bG9jazo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNh
bFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KCFjaGlsZHJlbklubGluZSgpKTsKLSAgICBpZiAoc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQo
KSkgeworICAgIGlmIChzaG91bGRBcHBseVNpemVPcklubGluZVNpemVDb250YWlubWVudCgpKSB7
CiAgICAgICAgIGlmIChhdXRvIHdpZHRoID0gZXhwbGljaXRJbnRyaW5zaWNJbm5lckxvZ2ljYWxX
aWR0aCgpKSB7CiAgICAgICAgICAgICBtaW5Mb2dpY2FsV2lkdGggPSB3aWR0aC52YWx1ZSgpOwog
ICAgICAgICAgICAgbWF4TG9naWNhbFdpZHRoID0gd2lkdGgudmFsdWUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggMTJlMmVlOTMyYjBmLi5k
YTg1NDQ1OTIwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zs
b3cuY3BwCkBAIC0zNDUsMTcgKzM0NSwxNSBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6YWRqdXN0
SW50cmluc2ljTG9naWNhbFdpZHRoc0ZvckNvbHVtbnMoTGF5b3V0VW5pdCYgbWluTG9naQogCiB2
b2lkIFJlbmRlckJsb2NrRmxvdzo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0
VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0
CiB7Ci0gICAgaWYgKHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpIHsKKyAgICBpZiAoc2hv
dWxkQXBwbHlTaXplT3JJbmxpbmVTaXplQ29udGFpbm1lbnQoKSkgewogICAgICAgICBpZiAoYXV0
byB3aWR0aCA9IGV4cGxpY2l0SW50cmluc2ljSW5uZXJMb2dpY2FsV2lkdGgoKSkgewogICAgICAg
ICAgICAgbWluTG9naWNhbFdpZHRoID0gd2lkdGgudmFsdWUoKTsKICAgICAgICAgICAgIG1heExv
Z2ljYWxXaWR0aCA9IHdpZHRoLnZhbHVlKCk7CiAgICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKCFz
aG91bGRBcHBseUlubGluZVNpemVDb250YWlubWVudCgpKSB7Ci0gICAgICAgIGlmIChjaGlsZHJl
bklubGluZSgpKQotICAgICAgICAgICAgY29tcHV0ZUlubGluZVByZWZlcnJlZExvZ2ljYWxXaWR0
aHMobWluTG9naWNhbFdpZHRoLCBtYXhMb2dpY2FsV2lkdGgpOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBjb21wdXRlQmxvY2tQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKG1pbkxvZ2ljYWxXaWR0
aCwgbWF4TG9naWNhbFdpZHRoKTsKLSAgICB9CisgICAgfSBlbHNlIGlmIChjaGlsZHJlbklubGlu
ZSgpKQorICAgICAgICBjb21wdXRlSW5saW5lUHJlZmVycmVkTG9naWNhbFdpZHRocyhtaW5Mb2dp
Y2FsV2lkdGgsIG1heExvZ2ljYWxXaWR0aCk7CisgICAgZWxzZQorICAgICAgICBjb21wdXRlQmxv
Y2tQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKG1pbkxvZ2ljYWxXaWR0aCwgbWF4TG9naWNhbFdpZHRo
KTsKIAogICAgIG1heExvZ2ljYWxXaWR0aCA9IHN0ZDo6bWF4KG1pbkxvZ2ljYWxXaWR0aCwgbWF4
TG9naWNhbFdpZHRoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRl
eCBjNDA4YzUwOTRkNWEuLjdhYWZlYWZjZDg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAKQEAgLTU2MTksNyArNTYxOSw3IEBAIGJvb2wgUmVuZGVyQm94OjpzaG91bGRJ
Z25vcmVNaW5NYXhTaXplcygpIGNvbnN0CiAKIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVu
ZGVyQm94OjpleHBsaWNpdEludHJpbnNpY0lubmVyV2lkdGgoKSBjb25zdAogewotICAgIEFTU0VS
VChzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKTsKKyAgICBBU1NFUlQoaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSA/IHNob3VsZEFwcGx5U2l6ZU9ySW5saW5lU2l6ZUNvbnRhaW5tZW50KCkg
OiBzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKTsKICAgICBpZiAoc3R5bGUoKS5jb250YWlu
SW50cmluc2ljV2lkdGhUeXBlKCkgPT0gQ29udGFpbkludHJpbnNpY1NpemVUeXBlOjpOb25lKQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCkBAIC01NjM1LDcgKzU2MzUsNyBAQCBzdGQ6
Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckJveDo6ZXhwbGljaXRJbnRyaW5zaWNJbm5lcldp
ZHRoKCkgY29uc3QKIAogc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJCb3g6OmV4cGxp
Y2l0SW50cmluc2ljSW5uZXJIZWlnaHQoKSBjb25zdAogewotICAgIEFTU0VSVChzaG91bGRBcHBs
eVNpemVDb250YWlubWVudCgpKTsKKyAgICBBU1NFUlQoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkgOiBzaG91bGRBcHBseVNpemVPcklubGlu
ZVNpemVDb250YWlubWVudCgpKTsKICAgICBpZiAoc3R5bGUoKS5jb250YWluSW50cmluc2ljSGVp
Z2h0VHlwZSgpID09IENvbnRhaW5JbnRyaW5zaWNTaXplVHlwZTo6Tm9uZSkKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCA5NmUzY2U1NjEyNmYuLjQy
NmU1Zjc5NjlkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIFJl
bmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMo
TGF5b3V0VW5pdCYgbWluTAogICAgICAgICBtaW5Mb2dpY2FsV2lkdGggKz0gc2Nyb2xsYmFyV2lk
dGg7CiAgICAgfTsKIAotICAgIGlmIChzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKSB7Cisg
ICAgaWYgKHNob3VsZEFwcGx5U2l6ZU9ySW5saW5lU2l6ZUNvbnRhaW5tZW50KCkpIHsKICAgICAg
ICAgaWYgKGF1dG8gd2lkdGggPSBleHBsaWNpdEludHJpbnNpY0lubmVyTG9naWNhbFdpZHRoKCkp
IHsKICAgICAgICAgICAgIG1pbkxvZ2ljYWxXaWR0aCA9IHdpZHRoLnZhbHVlKCk7CiAgICAgICAg
ICAgICBtYXhMb2dpY2FsV2lkdGggPSB3aWR0aC52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKaW5kZXggZmQ5ZDhj
ZWE5NzEyLi5iOTIzMjRmNzFhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApAQCAtMjA0LDcgKzIwNCw3IEBAIHZvaWQg
UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50Q29udHJvbChQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgTGF5b3V0UG9pCiAKIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmNvbXB1
dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5
b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdAogewotICAgIGlmIChzaG91bGRBcHBseVNp
emVDb250YWlubWVudCgpKSB7CisgICAgaWYgKHNob3VsZEFwcGx5U2l6ZU9ySW5saW5lU2l6ZUNv
bnRhaW5tZW50KCkpIHsKICAgICAgICAgaWYgKGF1dG8gd2lkdGggPSBleHBsaWNpdEludHJpbnNp
Y0lubmVyTG9naWNhbFdpZHRoKCkpIHsKICAgICAgICAgICAgIG1pbkxvZ2ljYWxXaWR0aCA9IHdp
ZHRoLnZhbHVlKCk7CiAgICAgICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSB3aWR0aC52YWx1ZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5k
ZXggNzJhMmMzN2ZhOTMyLi4xMGRhNmJmZjIzMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtMTAzLDE0ICsxMDMsMTEgQEAgdm9pZCBS
ZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5p
dCYgbWluTG9naWNhbFdpZHQKICAgICAgICAgbWluTG9naWNhbFdpZHRoICs9IHNjcm9sbGJhcldp
ZHRoOwogICAgIH07CiAKLSAgICBib29sIG5lZWRzU2l6ZUNvbnRhaW5tZW50ID0gc2hvdWxkQXBw
bHlTaXplQ29udGFpbm1lbnQoKTsKLSAgICBpZiAobmVlZHNTaXplQ29udGFpbm1lbnQpIHsKKyAg
ICBpZiAoc2hvdWxkQXBwbHlTaXplT3JJbmxpbmVTaXplQ29udGFpbm1lbnQoKSkgewogICAgICAg
ICBpZiAoYXV0byB3aWR0aCA9IGV4cGxpY2l0SW50cmluc2ljSW5uZXJMb2dpY2FsV2lkdGgoKSkg
ewogICAgICAgICAgICAgbWluTG9naWNhbFdpZHRoID0gd2lkdGgudmFsdWUoKTsKICAgICAgICAg
ICAgIG1heExvZ2ljYWxXaWR0aCA9IHdpZHRoLnZhbHVlKCk7CiAgICAgICAgIH0KLSAgICB9Ci0g
ICAgaWYgKG5lZWRzU2l6ZUNvbnRhaW5tZW50IHx8IHNob3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRh
aW5tZW50KCkpIHsKICAgICAgICAgYWRkU2Nyb2xsYmFyV2lkdGgoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCBiZmY0
NjU4ZjJjYWEuLjQyZGZkYjE2NGZjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJH
cmlkLmNwcApAQCAtNjcwLDkgKzY3MCwxNSBAQCB2b2lkIFJlbmRlckdyaWQ6OmNvbXB1dGVUcmFj
a1NpemVzRm9ySW5kZWZpbml0ZVNpemUoR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtJiBhbAogICAg
IEFTU0VSVChhbGdvcml0aG0udHJhY2tzQXJlV2lkZXJUaGFuTWluVHJhY2tCcmVhZHRoKCkpOwog
fQogCitib29sIFJlbmRlckdyaWQ6OnNob3VsZENoZWNrRXhwbGljaXRJbnRyaW5zaWNJbm5lckxv
Z2ljYWxTaXplKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zID8gc2hvdWxkQXBwbHlTaXplT3JJbmxp
bmVTaXplQ29udGFpbm1lbnQoKSA6IHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCk7Cit9CisK
Kwogc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJHcmlkOjpleHBsaWNpdEludHJpbnNp
Y0lubmVyTG9naWNhbFNpemUoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikgY29u
c3QKIHsKLSAgICBpZiAoIXNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpCisgICAgaWYgKCFz
aG91bGRDaGVja0V4cGxpY2l0SW50cmluc2ljSW5uZXJMb2dpY2FsU2l6ZShkaXJlY3Rpb24pKQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIGlmIChkaXJlY3Rpb24gPT0gRm9yQ29s
dW1ucykKICAgICAgICAgcmV0dXJuIGV4cGxpY2l0SW50cmluc2ljSW5uZXJMb2dpY2FsV2lkdGgo
KTsKQEAgLTc5MSw3ICs3OTcsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8T3JkZXJlZFRyYWNrSW5kZXhT
ZXQ+IFJlbmRlckdyaWQ6OmNvbXB1dGVFbXB0eVRyYWNrc0ZvckF1dG9SZXBlYQogICAgIHVuc2ln
bmVkIGZpcnN0QXV0b1JlcGVhdFRyYWNrID0gaW5zZXJ0aW9uUG9pbnQgKyBjdXJyZW50R3JpZCgp
LmV4cGxpY2l0R3JpZFN0YXJ0KGRpcmVjdGlvbik7CiAgICAgdW5zaWduZWQgbGFzdEF1dG9SZXBl
YXRUcmFjayA9IGZpcnN0QXV0b1JlcGVhdFRyYWNrICsgY3VycmVudEdyaWQoKS5hdXRvUmVwZWF0
VHJhY2tzKGRpcmVjdGlvbik7CiAKLSAgICBpZiAoIWN1cnJlbnRHcmlkKCkuaGFzR3JpZEl0ZW1z
KCkgfHwgc2hvdWxkQXBwbHlJbmxpbmVTaXplQ29udGFpbm1lbnQoKSB8fCAoc2hvdWxkQXBwbHlT
aXplQ29udGFpbm1lbnQoKSAmJiAhZXhwbGljaXRJbnRyaW5zaWNJbm5lckxvZ2ljYWxTaXplKGRp
cmVjdGlvbikpKSB7CisgICAgaWYgKCFjdXJyZW50R3JpZCgpLmhhc0dyaWRJdGVtcygpIHx8IChz
aG91bGRDaGVja0V4cGxpY2l0SW50cmluc2ljSW5uZXJMb2dpY2FsU2l6ZShkaXJlY3Rpb24pICYm
ICFleHBsaWNpdEludHJpbnNpY0lubmVyTG9naWNhbFNpemUoZGlyZWN0aW9uKSkpIHsKICAgICAg
ICAgZW1wdHlUcmFja0luZGV4ZXMgPSBtYWtlVW5pcXVlPE9yZGVyZWRUcmFja0luZGV4U2V0Pigp
OwogICAgICAgICBmb3IgKHVuc2lnbmVkIHRyYWNrSW5kZXggPSBmaXJzdEF1dG9SZXBlYXRUcmFj
azsgdHJhY2tJbmRleCA8IGxhc3RBdXRvUmVwZWF0VHJhY2s7ICsrdHJhY2tJbmRleCkKICAgICAg
ICAgICAgIGVtcHR5VHJhY2tJbmRleGVzLT5hZGQodHJhY2tJbmRleCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuaAppbmRleCAzNTIzYjk0MzliYjIuLmYzMDE3NmMyOGVjNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCkBAIC0xNDgsNiArMTQ4LDcgQEAgcHJp
dmF0ZToKICAgICBib29sIG5hbWVkR3JpZExpbmVzRGVmaW5pdGlvbkRpZENoYW5nZShjb25zdCBS
ZW5kZXJTdHlsZSYpIGNvbnN0OwogICAgIGJvb2wgaW1wbGljaXRHcmlkTGluZXNEZWZpbml0aW9u
RGlkQ2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Q7CiAKKyAgICBib29sIHNob3VsZENo
ZWNrRXhwbGljaXRJbnRyaW5zaWNJbm5lckxvZ2ljYWxTaXplKEdyaWRUcmFja1NpemluZ0RpcmVj
dGlvbikgY29uc3Q7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBleHBsaWNpdEludHJp
bnNpY0lubmVyTG9naWNhbFNpemUoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKICAg
ICB1bnNpZ25lZCBjb21wdXRlQXV0b1JlcGVhdFRyYWNrc0NvdW50KEdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBhdmFpbGFibGVTaXplKSBjb25zdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4IDYyYjk1
ZmM3YzUyYi4uMWYwZjU5NWU0NTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RCb3guY3BwCkBAIC0yMDIsNyArMjAyLDcgQEAgdm9pZCBSZW5kZXJMaXN0Qm94OjpzY3Jv
bGxUb1JldmVhbFNlbGVjdGlvbigpCiAKIHZvaWQgUmVuZGVyTGlzdEJveDo6Y29tcHV0ZUludHJp
bnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0
JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0CiB7Ci0gICAgaWYgKHNob3VsZEFwcGx5U2l6ZUNvbnRh
aW5tZW50KCkpIHsKKyAgICBpZiAoc2hvdWxkQXBwbHlTaXplT3JJbmxpbmVTaXplQ29udGFpbm1l
bnQoKSkgewogICAgICAgICBpZiAoYXV0byB3aWR0aCA9IGV4cGxpY2l0SW50cmluc2ljSW5uZXJM
b2dpY2FsV2lkdGgoKSkKICAgICAgICAgICAgIG1heExvZ2ljYWxXaWR0aCA9IHdpZHRoLnZhbHVl
KCk7CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuY3BwCmluZGV4IDU5NTk1ZmJkNDRjOS4uYTMyNTZlNWJiOTliIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTMxOSw3ICszMTksNyBAQCB2b2lk
IFJlbmRlck1lbnVMaXN0Ojpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0
JiBtaW5Mb2dpY2FsV2lkdGgsCiB7CiAgICAgbWF4TG9naWNhbFdpZHRoID0gc2hvdWxkQXBwbHlT
aXplQ29udGFpbm1lbnQoKSA/IHRoZW1lKCkubWluaW11bU1lbnVMaXN0U2l6ZShzdHlsZSgpKSA6
IHN0ZDo6bWF4KG1fb3B0aW9uc1dpZHRoLCB0aGVtZSgpLm1pbmltdW1NZW51TGlzdFNpemUoc3R5
bGUoKSkpOwogICAgIG1heExvZ2ljYWxXaWR0aCArPSBtX2lubmVyQmxvY2stPnBhZGRpbmdMZWZ0
KCkgKyBtX2lubmVyQmxvY2stPnBhZGRpbmdSaWdodCgpOwotICAgIGlmIChzaG91bGRBcHBseVNp
emVDb250YWlubWVudCgpKSB7CisgICAgaWYgKHNob3VsZEFwcGx5U2l6ZU9ySW5saW5lU2l6ZUNv
bnRhaW5tZW50KCkpIHsKICAgICAgICAgaWYgKGF1dG8gd2lkdGggPSBleHBsaWNpdEludHJpbnNp
Y0lubmVyTG9naWNhbFdpZHRoKCkpCiAgICAgICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSB3aWR0
aC52YWx1ZSgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTbGlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5j
cHAKaW5kZXggNmNiYmNkOTk0YzgyLi43YWJjMDBjYjllYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCkBAIC02OSw3ICs2OSw3IEBAIExheW91dFVuaXQgUmVu
ZGVyU2xpZGVyOjpiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCAvKmZpcnN0TGlu
ZSovLCBMaW5lCiAKIHZvaWQgUmVuZGVyU2xpZGVyOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdp
ZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1heExvZ2ljYWxX
aWR0aCkgY29uc3QKIHsKLSAgICBpZiAoc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSkgewor
ICAgIGlmIChzaG91bGRBcHBseVNpemVPcklubGluZVNpemVDb250YWlubWVudCgpKSB7CiAgICAg
ICAgIGlmIChhdXRvIHdpZHRoID0gZXhwbGljaXRJbnRyaW5zaWNJbm5lckxvZ2ljYWxXaWR0aCgp
KSB7CiAgICAgICAgICAgICBtaW5Mb2dpY2FsV2lkdGggPSB3aWR0aC52YWx1ZSgpOwogICAgICAg
ICAgICAgbWF4TG9naWNhbFdpZHRoID0gd2lkdGgudmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCmluZGV4IDQwM2NkOGZjN2IxNC4uNTNj
OTUzZjEwNzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbC5jcHAKQEAgLTE2MSw3ICsxNjEsNyBAQCBmbG9hdCBSZW5kZXJUZXh0Q29udHJvbDo6c2Nh
bGVFbVRvVW5pdHMoaW50IHgpIGNvbnN0CiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OmNvbXB1
dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5
b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdAogewotICAgIGlmIChzaG91bGRBcHBseVNp
emVDb250YWlubWVudCgpKSB7CisgICAgaWYgKHNob3VsZEFwcGx5U2l6ZU9ySW5saW5lU2l6ZUNv
bnRhaW5tZW50KCkpIHsKICAgICAgICAgaWYgKGF1dG8gd2lkdGggPSBleHBsaWNpdEludHJpbnNp
Y0lubmVyTG9naWNhbFdpZHRoKCkpIHsKICAgICAgICAgICAgIG1pbkxvZ2ljYWxXaWR0aCA9IHdp
ZHRoLnZhbHVlKCk7CiAgICAgICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSB3aWR0aC52YWx1ZSgp
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>