<?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>231234</bug_id>
          
          <creation_ts>2021-10-05 09:09:48 -0700</creation_ts>
          <short_desc>Allow text selection to flip.</short_desc>
          <delta_ts>2021-10-06 08:24:23 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1800582</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-05 09:09:48 -0700</bug_when>
    <thetext>Allow text selection to flip.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800584</commentid>
    <comment_count>1</comment_count>
      <attachid>440221</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-05 09:21:16 -0700</bug_when>
    <thetext>Created attachment 440221
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800590</commentid>
    <comment_count>2</comment_count>
      <attachid>440221</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 09:34:40 -0700</bug_when>
    <thetext>Comment on attachment 440221
Patch

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

Nice! r=mews

&gt; Source/WTF/ChangeLog:9
&gt; +        Add an internal flag to guard text selectin flipping while

Nit - selectin =&gt; selection

&gt; Source/WebKit/ChangeLog:11
&gt; +        This is currently guarded behind and off-by-default flag so that we can

Nit - &quot;behind and&quot; =&gt; &quot;behind an&quot;

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:1506
&gt; +static std::optional&lt;SimpleRange&gt; rangeForPointInRootViewCoordinates(Frame&amp; frame, const IntPoint&amp; pointInRootViewCoordinates, bool baseIsStart, bool selectionFlippingEnabled, bool &amp;selectionFlipped)

Nit - instead of an out-reference (`bool&amp; selectionFlipped`), I think we generally prefer to coalesce that into the return value in modern code (i.e. make this helper function either return `std::pair&lt;SimpleRange, bool&gt;`, or `std::pair&lt;SimpleRange, SelectionWasFlipped&gt;` where `SelectionWasFlipped` is a strongly typed enum)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800591</commentid>
    <comment_count>3</comment_count>
      <attachid>440221</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 09:36:44 -0700</bug_when>
    <thetext>Comment on attachment 440221
Patch

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

&gt;&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:1506
&gt;&gt; +static std::optional&lt;SimpleRange&gt; rangeForPointInRootViewCoordinates(Frame&amp; frame, const IntPoint&amp; pointInRootViewCoordinates, bool baseIsStart, bool selectionFlippingEnabled, bool &amp;selectionFlipped)
&gt; 
&gt; Nit - instead of an out-reference (`bool&amp; selectionFlipped`), I think we generally prefer to coalesce that into the return value in modern code (i.e. make this helper function either return `std::pair&lt;SimpleRange, bool&gt;`, or `std::pair&lt;SimpleRange, SelectionWasFlipped&gt;` where `SelectionWasFlipped` is a strongly typed enum)

This would also allow you to do something like `std::tie(range, selectionFlipped) = rangeForPointInRootViewCoordinates(frame, point, baseIsStart, selectionFlippingEnabled());` at the call site.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800642</commentid>
    <comment_count>4</comment_count>
      <attachid>440221</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-10-05 10:54:07 -0700</bug_when>
    <thetext>Comment on attachment 440221
Patch

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

&gt; Source/WebKit/ChangeLog:9
&gt; +        In order to bring webkit more in line with UIKit, allow text seleciton to flip.

As long as we are nitpicking on &quot;selection&quot; spelling, here is another typo :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800784</commentid>
    <comment_count>5</comment_count>
      <attachid>440272</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-05 15:01:11 -0700</bug_when>
    <thetext>Created attachment 440272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800920</commentid>
    <comment_count>6</comment_count>
      <attachid>440272</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 18:51:35 -0700</bug_when>
    <thetext>Comment on attachment 440272
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:1508
&gt; +static std::pair&lt;std::optional&lt;SimpleRange&gt;, WebKit::SelectionWasFlipped&gt; rangeForPointInRootViewCoordinates(Frame&amp; frame, const IntPoint&amp; pointInRootViewCoordinates, bool baseIsStart, bool selectionFlippingEnabled)

Nit - you can omit the `WebKit::` here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800923</commentid>
    <comment_count>7</comment_count>
      <attachid>440321</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-05 19:10:10 -0700</bug_when>
    <thetext>Created attachment 440321
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801052</commentid>
    <comment_count>8</comment_count>
      <attachid>440363</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-06 07:26:03 -0700</bug_when>
    <thetext>Created attachment 440363
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801079</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-06 08:23:12 -0700</bug_when>
    <thetext>Committed r283619 (242571@main): &lt;https://commits.webkit.org/242571@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440363.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801080</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-06 08:24:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/83934776&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440221</attachid>
            <date>2021-10-05 09:21:16 -0700</date>
            <delta_ts>2021-10-05 15:01:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231234-20211005122115.patch</filename>
            <type>text/plain</type>
            <size>14438</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGMyOWQxNTdmMTlkMzNkNjFjYmYwNTcx
NTdmYmNlMDU1NGY3ZjQ0ZTkuLmFhN2YyM2Y0YzU2MTkwMDMwOTM3NjE0OTEyMTg2MjgzOTVhOWY5
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMDUgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyB0ZXh0IHNlbGVjdGlvbiB0byBm
bGlwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMx
MjM0CisgICAgICAgIHJkYXI6Ly84Mzg4OTE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBpbnRlcm5hbCBmbGFnIHRvIGd1YXJkIHRleHQg
c2VsZWN0aW4gZmxpcHBpbmcgd2hpbGUKKyAgICAgICAgd2UgdGVzdCB0byBtYWtlIHN1cmUgdGhp
cyBpcyByZWFzb25hYmxlIHRvIHR1cm4gb24gZXZlcnl3aGVyZS4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sOgorCiAyMDIxLTEwLTA1
ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxl
IDJEIGNhbnZhcyBjb2xvciBzcGFjZSBzdXBwb3J0IG9uIEFwcGxlIHBsYXRmb3JtcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCBmODVkZjNmMGFlM2I5ZjBjNjNhYTdjOTEzZTgyNjI3MmZhNWZhM2UzLi4zOTAzNWNjZGZh
Y2Y4YWQxMDE3OWEzNjFkOTlkZTEzZDUzMTcyNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBA
CisyMDIxLTEwLTA1ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisK
KyAgICAgICAgQWxsb3cgdGV4dCBzZWxlY3Rpb24gdG8gZmxpcC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTIzNAorICAgICAgICByZGFyOi8vODM4
ODkxODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
biBvcmRlciB0byBicmluZyB3ZWJraXQgbW9yZSBpbiBsaW5lIHdpdGggVUlLaXQsIGFsbG93IHRl
eHQgc2VsZWNpdG9uIHRvIGZsaXAuCisgICAgICAgIFRoaXMgYWxzbyByZXF1aXJlcyBhIFVJS2l0
IGNoYW5nZSB0cmFja2VkIGluIHJkYXI6Ly84Mzc4ODQzOQorICAgICAgICBUaGlzIGlzIGN1cnJl
bnRseSBndWFyZGVkIGJlaGluZCBhbmQgb2ZmLWJ5LWRlZmF1bHQgZmxhZyBzbyB0aGF0IHdlIGNh
bgorICAgICAgICB0ZXN0IHRoaXMgbmV3IGJlaGF2aW9yIGJlZm9yZSB0dXJuaW5nIGl0IG9uIGJ5
IGRlZmF1bHQuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmg6CisgICAg
ICAgICogU2hhcmVkL2lvcy9HZXN0dXJlVHlwZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKHRvVUlXS1NlbGVjdGlvbkZs
YWdzKToKKyAgICAgICAgKHRvU2VsZWN0aW9uRmxhZ3MpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJl
ZmVyZW5jZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFNlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpyYW5nZUZvclBvaW50SW5Sb290Vmlld0Nvb3JkaW5hdGVzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6dXBkYXRlU2VsZWN0aW9uV2l0aFRvdWNoZXMpOgorCiAyMDIxLTEwLTA0
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFNQSSB0byBs
YXVuY2ggYSBzZXJ2aWNlIHNlcnZpY2Ugd29ya2VyIGluIGEgV0tXZWJWaWV3IGFuZCBleHBvc2Ug
c2VydmljZSB3b3JrZXIgdG8gaW5qZWN0ZWQgYnVuZGxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sIGIvU291cmNl
L1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAppbmRl
eCAxZTJmZDIyNWY2NDMwNDY4ODc3OTI1MDBkNTU0OGRhZjIzNjMxMjBkLi44ZjQ1YjAxYzEwYTAz
ZGIzNDUxYzhhYzBkYjllMTUzYTU3MjQxY2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1Njcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCisrKyBiL1NvdXJjZS9X
VEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKQEAgLTY4
MSw2ICs2ODEsMTUgQEAgU2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQ6CiAg
ICAgICBkZWZhdWx0OiB0cnVlCiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IHRydWUKKyAg
ICAgIAorU2VsZWN0aW9uRmxpcHBpbmdFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVh
ZGFibGVOYW1lOiAiU2VsZWN0aW9uIEZsaXBwaW5nIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRp
b246ICJFbmFibGUgU2VsZWN0aW9uIEZsaXBwaW5nIgorICB3ZWJjb3JlQmluZGluZzogbm9uZQor
ICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKIAogIyBG
SVhNRTogVGhpcyBpcyBub3QgaW1wbGVtZW50ZWQgZm9yIFdlYktpdExlZ2FjeSwgc28gc2hvdWxk
IGJlIGV4Y2x1ZGVkIGZyb20gV2ViS2l0TGVnYWN5IGVudGlyZWx5LgogU2VydmljZVdvcmtlcnNF
bmFibGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0
U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAppbmRleCA4
ZmJjZTMyNGZlOWEyYTAxZGQ3MzA2MzBiODdiNzc0MzBmOWMzZmZkLi5kMTliODJhYjYyYjk2NWZl
ODZjNTcxOGIzNWI5M2ZhMGFkZTg2ZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL3NwaS9pb3MvVUlLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9p
b3MvVUlLaXRTUEkuaApAQCAtMTM5LDYgKzEzOSw5IEBACiAjaW1wb3J0IDxVSUtpdC9VSVBvaW50
ZXJTdHlsZV9Qcml2YXRlLmg+CiAjZW5kaWYKIAorLy8gRklYTUU6IFNUQUdJTkcgZm9yIHJkYXI6
Ly83NTU0NjcwNCBSZW1vdmUgbGF0ZXIuCisjZGVmaW5lIFVJV0tTZWxlY3Rpb25GbGlwcGVkIDIK
KwogI2Vsc2UgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCkBAIC02ODIsNiArNjg1LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgVUlX
S1NlbGVjdGlvblRvdWNoKSB7CiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBVSVdLU2VsZWN0
aW9uRmxhZ3MpIHsKICAgICBVSVdLTm9uZSA9IDAsCiAgICAgVUlXS1dvcmRJc05lYXJUYXAgPSAx
LAorICAgIFVJV0tTZWxlY3Rpb25GbGlwcGVkID0gMgogICAgIFVJV0tQaHJhc2VCb3VuZGFyeUNo
YW5nZWQgPSA0LAogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0dl
c3R1cmVUeXBlcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0dlc3R1cmVUeXBlcy5oCmlu
ZGV4IGEzMzYxY2FkNDI2ODljZWMwNjc2ODFiM2Y5ZTY2YjY3ZjNkNjE0ZWEuLjRmZWE3ODJkZGMw
ZjBiN2Q0ZmNiZGJmODg5YjRjZTExYmMxNWE1OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2lvcy9HZXN0dXJlVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3Mv
R2VzdHVyZVR5cGVzLmgKQEAgLTY1LDcgKzY1LDggQEAgZW51bSBjbGFzcyBTaGVldEFjdGlvbiA6
IGJvb2wgewogCiBlbnVtIFNlbGVjdGlvbkZsYWdzIDogdWludDhfdCB7CiAgICAgV29yZElzTmVh
clRhcCA9IDEgPDwgMCwKLSAgICBQaHJhc2VCb3VuZGFyeUNoYW5nZWQgPSAxIDw8IDEsCisgICAg
U2VsZWN0aW9uRmxpcHBlZCA9IDEgPDwgMSwKKyAgICBQaHJhc2VCb3VuZGFyeUNoYW5nZWQgPSAx
IDw8IDIsCiB9OwogCiBlbnVtIGNsYXNzIFJlc3BlY3RTZWxlY3Rpb25BbmNob3IgOiBib29sIHsK
QEAgLTEwNyw2ICsxMDgsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6
U2VsZWN0aW9uRmxhZ3M+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAg
ICBXZWJLaXQ6OlNlbGVjdGlvbkZsYWdzLAogICAgICAgICBXZWJLaXQ6OlNlbGVjdGlvbkZsYWdz
OjpXb3JkSXNOZWFyVGFwLAorICAgICAgICBXZWJLaXQ6OlNlbGVjdGlvbkZsYWdzOjpTZWxlY3Rp
b25GbGlwcGVkLAogICAgICAgICBXZWJLaXQ6OlNlbGVjdGlvbkZsYWdzOjpQaHJhc2VCb3VuZGFy
eUNoYW5nZWQKICAgICA+OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGQ0ZGI2NTJlN2JhMjIyOGUx
OGYwOGVmOTBjM2UzZDkyYzRjMWU4MzIuLjg5YjhlNWRlOWEyZTViNjcwMGVjYjNjNGUxNGUzMjA2
MjNmYmRiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNDI3Myw2ICs0MjczLDggQEAgc3RhdGljIGlu
bGluZSBVSVdLU2VsZWN0aW9uRmxhZ3MgdG9VSVdLU2VsZWN0aW9uRmxhZ3MoT3B0aW9uU2V0PFdl
YktpdDo6U2VsZWN0aW8KICAgICBOU0ludGVnZXIgdWlGbGFncyA9IFVJV0tOb25lOwogICAgIGlm
IChmbGFncy5jb250YWlucyhXZWJLaXQ6OldvcmRJc05lYXJUYXApKQogICAgICAgICB1aUZsYWdz
IHw9IFVJV0tXb3JkSXNOZWFyVGFwOworICAgIGlmIChmbGFncy5jb250YWlucyhXZWJLaXQ6OlNl
bGVjdGlvbkZsaXBwZWQpKQorICAgICAgICB1aUZsYWdzIHw9IFVJV0tTZWxlY3Rpb25GbGlwcGVk
OwogICAgIGlmIChmbGFncy5jb250YWlucyhXZWJLaXQ6OlBocmFzZUJvdW5kYXJ5Q2hhbmdlZCkp
CiAgICAgICAgIHVpRmxhZ3MgfD0gVUlXS1BocmFzZUJvdW5kYXJ5Q2hhbmdlZDsKIApAQCAtNDI4
NCw2ICs0Mjg2LDggQEAgc3RhdGljIGlubGluZSBPcHRpb25TZXQ8V2ViS2l0OjpTZWxlY3Rpb25G
bGFncz4gdG9TZWxlY3Rpb25GbGFncyhVSVdLU2VsZWN0aW9uRmwKICAgICBPcHRpb25TZXQ8V2Vi
S2l0OjpTZWxlY3Rpb25GbGFncz4gZmxhZ3M7CiAgICAgaWYgKHVpRmxhZ3MgJiBVSVdLV29yZElz
TmVhclRhcCkKICAgICAgICAgZmxhZ3MuYWRkKFdlYktpdDo6V29yZElzTmVhclRhcCk7CisgICAg
aWYgKHVpRmxhZ3MgJiBVSVdLU2VsZWN0aW9uRmxpcHBlZCkKKyAgICAgICAgZmxhZ3MuYWRkKFdl
YktpdDo6U2VsZWN0aW9uRmxpcHBlZCk7CiAgICAgaWYgKHVpRmxhZ3MgJiBVSVdLUGhyYXNlQm91
bmRhcnlDaGFuZ2VkKQogICAgICAgICBmbGFncy5hZGQoV2ViS2l0OjpQaHJhc2VCb3VuZGFyeUNo
YW5nZWQpOwogICAgIHJldHVybiBmbGFnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZTZlZTQyMGY0NWE0Mjc1OWUwNjE0Y2I1MDBjYTZlZjZi
NTI0YzkwNC4uZDk0NzZmN2YwNmFhZDA0NTM5NzY2M2M1ZTg5ZWQxNzI1OTMwNmQzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM5ODEsNiAr
Mzk4MSw4IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYgc3RvcmUpCiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBtX3BkZlBsdWdp
bkVuYWJsZWQgPSBzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnBk
ZlBsdWdpbkVuYWJsZWRLZXkoKSk7CisgICAgCisgICAgbV9zZWxlY3Rpb25GbGlwcGluZ0VuYWJs
ZWQgPSBzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnNlbGVjdGlv
bkZsaXBwaW5nRW5hYmxlZEtleSgpKTsKICNlbmRpZgogI2lmIEVOQUJMRShQQVlNRU5UX1JFUVVF
U1QpCiAgICAgc2V0dGluZ3Muc2V0UGF5bWVudFJlcXVlc3RFbmFibGVkKHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6YXBwbGVQYXlFbmFibGVkS2V5KCkpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBjMTM4NTU3M2Iw
YmU1ZmVjODAxNTBhOTVmYjM5NTE5NDNhNTA0NjY2Li43N2JmMDJlN2FlZmExMzQxZDJmODM2M2Ey
ZGY0OGY4MzBmMTVkMjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCkBAIC0xMTMzLDYgKzExMzMsOSBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgYm9vbCBwZGZQbHVnaW5FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9wZGZQbHVnaW5F
bmFibGVkOyB9CiAgICAgdm9pZCBzZXRQREZQbHVnaW5FbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBt
X3BkZlBsdWdpbkVuYWJsZWQgPSBlbmFibGVkOyB9CisgICAgCisgICAgYm9vbCBzZWxlY3Rpb25G
bGlwcGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbkZsaXBwaW5nRW5hYmxl
ZDsgfQorICAgIHZvaWQgc2V0U2VsZWN0aW9uRmxpcHBpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkg
eyBtX3NlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KIAogICAgIE5TRGljdGlv
bmFyeSAqZGF0YURldGVjdGlvbkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2RhdGFEZXRlY3Rp
b25Db250ZXh0LmdldCgpOyB9CiAjZW5kaWYKQEAgLTE5OTYsNiArMTk5OSw3IEBAIHByaXZhdGU6
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYm9vbCBtX3BkZlBsdWdpbkVuYWJsZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9oYXNDYWNoZWRXaW5kb3dGcmFtZSB7IGZhbHNlIH07CisgICAgYm9v
bCBtX3NlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZCB7IGZhbHNlIH07CiAKICAgICAvLyBUaGUgZnJh
bWUgb2YgdGhlIGNvbnRhaW5pbmcgd2luZG93IGluIHNjcmVlbiBjb29yZGluYXRlcy4KICAgICBX
ZWJDb3JlOjpGbG9hdFJlY3QgbV93aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmlu
ZGV4IDBjNWFmNGMwYTA4NTBhZmNkNTIxZmU1MjVlMGNmNjE4YWNiNDliZjkuLjQzZTdjOGUxYjA3
MGUxOWYyZGM0NTIxOTkyYjJmZjU2OGMzMmZkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0xNTAzLDcgKzE1MDMsNyBA
QCB2b2lkIFdlYlBhZ2U6OnNlbGVjdFdpdGhHZXN0dXJlKGNvbnN0IEludFBvaW50JiBwb2ludCwg
R2VzdHVyZVR5cGUgZ2VzdHVyZVR5cGUsCiAgICAgY29tcGxldGlvbkhhbmRsZXIocG9pbnQsIGdl
c3R1cmVUeXBlLCBnZXN0dXJlU3RhdGUsIGZsYWdzKTsKIH0KIAotc3RhdGljIHN0ZDo6b3B0aW9u
YWw8U2ltcGxlUmFuZ2U+IHJhbmdlRm9yUG9pbnRJblJvb3RWaWV3Q29vcmRpbmF0ZXMoRnJhbWUm
IGZyYW1lLCBjb25zdCBJbnRQb2ludCYgcG9pbnRJblJvb3RWaWV3Q29vcmRpbmF0ZXMsIGJvb2wg
YmFzZUlzU3RhcnQpCitzdGF0aWMgc3RkOjpvcHRpb25hbDxTaW1wbGVSYW5nZT4gcmFuZ2VGb3JQ
b2ludEluUm9vdFZpZXdDb29yZGluYXRlcyhGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBw
b2ludEluUm9vdFZpZXdDb29yZGluYXRlcywgYm9vbCBiYXNlSXNTdGFydCwgYm9vbCBzZWxlY3Rp
b25GbGlwcGluZ0VuYWJsZWQsIGJvb2wgJnNlbGVjdGlvbkZsaXBwZWQpCiB7CiAgICAgVmlzaWJs
ZVNlbGVjdGlvbiBleGlzdGluZ1NlbGVjdGlvbiA9IGZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlv
bigpOwogICAgIFZpc2libGVQb3NpdGlvbiBzZWxlY3Rpb25TdGFydCA9IGV4aXN0aW5nU2VsZWN0
aW9uLnZpc2libGVTdGFydCgpOwpAQCAtMTUxMSwyNiArMTUxMSwyOCBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxTaW1wbGVSYW5nZT4gcmFuZ2VGb3JQb2ludEluUm9vdFZpZXdDb29yZGluYXRlcyhG
cmFtZSYgZnJhbQogCiAgICAgYXV0byBwb2ludEluRG9jdW1lbnQgPSBmcmFtZS52aWV3KCktPnJv
b3RWaWV3VG9Db250ZW50cyhwb2ludEluUm9vdFZpZXdDb29yZGluYXRlcyk7CiAKLSAgICBhdXRv
IG5vZGUgPSBzZWxlY3Rpb25TdGFydC5kZWVwRXF1aXZhbGVudCgpLmNvbnRhaW5lck5vZGUoKTsK
LSAgICBpZiAobm9kZSAmJiBub2RlLT5yZW5kZXJTdHlsZSgpICYmIG5vZGUtPnJlbmRlclN0eWxl
KCktPmlzVmVydGljYWxXcml0aW5nTW9kZSgpKSB7Ci0gICAgICAgIGlmIChiYXNlSXNTdGFydCkg
ewotICAgICAgICAgICAgaW50IHN0YXJ0WCA9IHNlbGVjdGlvblN0YXJ0LmFic29sdXRlQ2FyZXRC
b3VuZHMoKS5jZW50ZXIoKS54KCk7Ci0gICAgICAgICAgICBpZiAocG9pbnRJbkRvY3VtZW50Lngo
KSA+IHN0YXJ0WCkKLSAgICAgICAgICAgICAgICBwb2ludEluRG9jdW1lbnQuc2V0WChzdGFydFgp
OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaW50IGVuZFggPSBzZWxlY3Rpb25FbmQu
YWJzb2x1dGVDYXJldEJvdW5kcygpLmNlbnRlcigpLngoKTsKLSAgICAgICAgICAgIGlmIChwb2lu
dEluRG9jdW1lbnQueCgpIDwgZW5kWCkKLSAgICAgICAgICAgICAgICBwb2ludEluRG9jdW1lbnQu
c2V0WChlbmRYKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChiYXNlSXNT
dGFydCkgewotICAgICAgICAgICAgaW50IHN0YXJ0WSA9IHNlbGVjdGlvblN0YXJ0LmFic29sdXRl
Q2FyZXRCb3VuZHMoKS5jZW50ZXIoKS55KCk7Ci0gICAgICAgICAgICBpZiAocG9pbnRJbkRvY3Vt
ZW50LnkoKSA8IHN0YXJ0WSkKLSAgICAgICAgICAgICAgICBwb2ludEluRG9jdW1lbnQuc2V0WShz
dGFydFkpOworICAgIGlmICghc2VsZWN0aW9uRmxpcHBpbmdFbmFibGVkKSB7CisgICAgICAgIGF1
dG8gbm9kZSA9IHNlbGVjdGlvblN0YXJ0LmRlZXBFcXVpdmFsZW50KCkuY29udGFpbmVyTm9kZSgp
OworICAgICAgICBpZiAobm9kZSAmJiBub2RlLT5yZW5kZXJTdHlsZSgpICYmIG5vZGUtPnJlbmRl
clN0eWxlKCktPmlzVmVydGljYWxXcml0aW5nTW9kZSgpKSB7CisgICAgICAgICAgICBpZiAoYmFz
ZUlzU3RhcnQpIHsKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnRYID0gc2VsZWN0aW9uU3RhcnQu
YWJzb2x1dGVDYXJldEJvdW5kcygpLmNlbnRlcigpLngoKTsKKyAgICAgICAgICAgICAgICBpZiAo
cG9pbnRJbkRvY3VtZW50LngoKSA+IHN0YXJ0WCkKKyAgICAgICAgICAgICAgICAgICAgcG9pbnRJ
bkRvY3VtZW50LnNldFgoc3RhcnRYKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgaW50IGVuZFggPSBzZWxlY3Rpb25FbmQuYWJzb2x1dGVDYXJldEJvdW5kcygpLmNlbnRl
cigpLngoKTsKKyAgICAgICAgICAgICAgICBpZiAocG9pbnRJbkRvY3VtZW50LngoKSA8IGVuZFgp
CisgICAgICAgICAgICAgICAgICAgIHBvaW50SW5Eb2N1bWVudC5zZXRYKGVuZFgpOworICAgICAg
ICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaW50IGVuZFkgPSBzZWxlY3Rp
b25FbmQuYWJzb2x1dGVDYXJldEJvdW5kcygpLmNlbnRlcigpLnkoKTsKLSAgICAgICAgICAgIGlm
IChwb2ludEluRG9jdW1lbnQueSgpID4gZW5kWSkKLSAgICAgICAgICAgICAgICBwb2ludEluRG9j
dW1lbnQuc2V0WShlbmRZKTsKKyAgICAgICAgICAgIGlmIChiYXNlSXNTdGFydCkgeworICAgICAg
ICAgICAgICAgIGludCBzdGFydFkgPSBzZWxlY3Rpb25TdGFydC5hYnNvbHV0ZUNhcmV0Qm91bmRz
KCkuY2VudGVyKCkueSgpOworICAgICAgICAgICAgICAgIGlmIChwb2ludEluRG9jdW1lbnQueSgp
IDwgc3RhcnRZKQorICAgICAgICAgICAgICAgICAgICBwb2ludEluRG9jdW1lbnQuc2V0WShzdGFy
dFkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgZW5kWSA9IHNl
bGVjdGlvbkVuZC5hYnNvbHV0ZUNhcmV0Qm91bmRzKCkuY2VudGVyKCkueSgpOworICAgICAgICAg
ICAgICAgIGlmIChwb2ludEluRG9jdW1lbnQueSgpID4gZW5kWSkKKyAgICAgICAgICAgICAgICAg
ICAgcG9pbnRJbkRvY3VtZW50LnNldFkoZW5kWSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICB9CiAKQEAgLTE1NTMsMTkgKzE1NTUsMzEgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2lt
cGxlUmFuZ2U+IHJhbmdlRm9yUG9pbnRJblJvb3RWaWV3Q29vcmRpbmF0ZXMoRnJhbWUmIGZyYW0K
ICAgICAgICAgcmVzdWx0ID0gZnJhbWUudmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQocG9pbnRJbkRv
Y3VtZW50KS5kZWVwRXF1aXZhbGVudCgpOwogICAgIAogICAgIGlmIChiYXNlSXNTdGFydCkgewot
ICAgICAgICBpZiAocmVzdWx0IDw9IHNlbGVjdGlvblN0YXJ0KQorICAgICAgICBib29sIGZsaXBT
ZWxlY3Rpb24gPSByZXN1bHQgPCBzZWxlY3Rpb25TdGFydDsKKworICAgICAgICBpZiAoKGZsaXBT
ZWxlY3Rpb24gJiYgIXNlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZCkgfHwgcmVzdWx0ID09IHNlbGVj
dGlvblN0YXJ0KQogICAgICAgICAgICAgcmVzdWx0ID0gc2VsZWN0aW9uU3RhcnQubmV4dCgpOwog
ICAgICAgICBlbHNlIGlmIChSZWZQdHIgY29udGFpbmVyTm9kZSA9IHNlbGVjdGlvblN0YXJ0LmRl
ZXBFcXVpdmFsZW50KCkuY29udGFpbmVyTm9kZSgpOyBjb250YWluZXJOb2RlICYmIHRhcmdldE5v
ZGUgJiYgJmNvbnRhaW5lck5vZGUtPnRyZWVTY29wZSgpICE9ICZ0YXJnZXROb2RlLT50cmVlU2Nv
cGUoKSkKICAgICAgICAgICAgIHJlc3VsdCA9IFZpc2libGVTZWxlY3Rpb246OmFkanVzdFBvc2l0
aW9uRm9yRW5kKHJlc3VsdC5kZWVwRXF1aXZhbGVudCgpLCBjb250YWluZXJOb2RlLmdldCgpKTsK
LQotICAgICAgICByYW5nZSA9IG1ha2VTaW1wbGVSYW5nZShzZWxlY3Rpb25TdGFydCwgcmVzdWx0
KTsKKyAgICAgICAgCisgICAgICAgIGlmIChzZWxlY3Rpb25GbGlwcGluZ0VuYWJsZWQgJiYgZmxp
cFNlbGVjdGlvbikgeworICAgICAgICAgICAgc2VsZWN0aW9uRmxpcHBlZCA9IHRydWU7CisgICAg
ICAgICAgICByYW5nZSA9IG1ha2VTaW1wbGVSYW5nZShyZXN1bHQsIHNlbGVjdGlvblN0YXJ0KTsK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByYW5nZSA9IG1ha2VTaW1wbGVSYW5nZShzZWxl
Y3Rpb25TdGFydCwgcmVzdWx0KTsKICAgICB9IGVsc2UgewotICAgICAgICBpZiAoc2VsZWN0aW9u
RW5kIDw9IHJlc3VsdCkKKyAgICAgICAgYm9vbCBmbGlwU2VsZWN0aW9uID0gc2VsZWN0aW9uRW5k
IDwgcmVzdWx0OworICAgICAgICAKKyAgICAgICAgaWYgKChmbGlwU2VsZWN0aW9uICYmICFzZWxl
Y3Rpb25GbGlwcGluZ0VuYWJsZWQpIHx8IHJlc3VsdCA9PSBzZWxlY3Rpb25FbmQpCiAgICAgICAg
ICAgICByZXN1bHQgPSBzZWxlY3Rpb25FbmQucHJldmlvdXMoKTsKICAgICAgICAgZWxzZSBpZiAo
UmVmUHRyIGNvbnRhaW5lck5vZGUgPSBzZWxlY3Rpb25FbmQuZGVlcEVxdWl2YWxlbnQoKS5jb250
YWluZXJOb2RlKCk7IGNvbnRhaW5lck5vZGUgJiYgdGFyZ2V0Tm9kZSAmJiAmY29udGFpbmVyTm9k
ZS0+dHJlZVNjb3BlKCkgIT0gJnRhcmdldE5vZGUtPnRyZWVTY29wZSgpKQogICAgICAgICAgICAg
cmVzdWx0ID0gVmlzaWJsZVNlbGVjdGlvbjo6YWRqdXN0UG9zaXRpb25Gb3JTdGFydChyZXN1bHQu
ZGVlcEVxdWl2YWxlbnQoKSwgY29udGFpbmVyTm9kZS5nZXQoKSk7CiAKLSAgICAgICAgcmFuZ2Ug
PSBtYWtlU2ltcGxlUmFuZ2UocmVzdWx0LCBzZWxlY3Rpb25FbmQpOworICAgICAgICBpZiAoc2Vs
ZWN0aW9uRmxpcHBpbmdFbmFibGVkICYmIGZsaXBTZWxlY3Rpb24pIHsKKyAgICAgICAgICAgIHNl
bGVjdGlvbkZsaXBwZWQgPSB0cnVlOworICAgICAgICAgICAgcmFuZ2UgPSBtYWtlU2ltcGxlUmFu
Z2Uoc2VsZWN0aW9uRW5kLCByZXN1bHQpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJh
bmdlID0gbWFrZVNpbXBsZVJhbmdlKHJlc3VsdCwgc2VsZWN0aW9uRW5kKTsKICAgICB9CiAgICAg
CiAgICAgaWYgKHJhbmdlICYmIEhUTUxFbGVtZW50Ojppc0luc2lkZUltYWdlT3ZlcmxheSgqcmFu
Z2UpKQpAQCAtMTc0Myw2ICsxNzU3LDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVTZWxlY3Rpb25X
aXRoVG91Y2hlcyhjb25zdCBJbnRQb2ludCYgcG9pbnQsIFNlbGVjdGlvblRvdWNoIHMKIAogICAg
IHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IHJhbmdlOwogICAgIE9wdGlvblNldDxTZWxlY3Rp
b25GbGFncz4gZmxhZ3M7CisgICAgYm9vbCBzZWxlY3Rpb25GbGlwcGVkID0gZmFsc2U7CiAKICAg
ICBzd2l0Y2ggKHNlbGVjdGlvblRvdWNoKSB7CiAgICAgY2FzZSBTZWxlY3Rpb25Ub3VjaDo6U3Rh
cnRlZDoKQEAgLTE3NTMsNyArMTc2OCw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlU2VsZWN0aW9u
V2l0aFRvdWNoZXMoY29uc3QgSW50UG9pbnQmIHBvaW50LCBTZWxlY3Rpb25Ub3VjaCBzCiAgICAg
ICAgIGlmIChmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuaXNDb250ZW50RWRpdGFibGUo
KSkKICAgICAgICAgICAgIHJhbmdlID0gbWFrZVNpbXBsZVJhbmdlKGNsb3Nlc3RXb3JkQm91bmRh
cnlGb3JQb3NpdGlvbihwb3NpdGlvbikpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICByYW5n
ZSA9IHJhbmdlRm9yUG9pbnRJblJvb3RWaWV3Q29vcmRpbmF0ZXMoZnJhbWUsIHBvaW50LCBiYXNl
SXNTdGFydCk7CisgICAgICAgICAgICByYW5nZSA9IHJhbmdlRm9yUG9pbnRJblJvb3RWaWV3Q29v
cmRpbmF0ZXMoZnJhbWUsIHBvaW50LCBiYXNlSXNTdGFydCwgc2VsZWN0aW9uRmxpcHBpbmdFbmFi
bGVkKCksIHNlbGVjdGlvbkZsaXBwZWQpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgU2Vs
ZWN0aW9uVG91Y2g6OkVuZGVkTW92aW5nRm9yd2FyZDoKQEAgLTE3NjIsMTIgKzE3NzcsMTUgQEAg
dm9pZCBXZWJQYWdlOjp1cGRhdGVTZWxlY3Rpb25XaXRoVG91Y2hlcyhjb25zdCBJbnRQb2ludCYg
cG9pbnQsIFNlbGVjdGlvblRvdWNoIHMKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFNlbGVj
dGlvblRvdWNoOjpNb3ZlZDoKLSAgICAgICAgcmFuZ2UgPSByYW5nZUZvclBvaW50SW5Sb290Vmll
d0Nvb3JkaW5hdGVzKGZyYW1lLCBwb2ludCwgYmFzZUlzU3RhcnQpOworICAgICAgICByYW5nZSA9
IHJhbmdlRm9yUG9pbnRJblJvb3RWaWV3Q29vcmRpbmF0ZXMoZnJhbWUsIHBvaW50LCBiYXNlSXNT
dGFydCwgc2VsZWN0aW9uRmxpcHBpbmdFbmFibGVkKCksIHNlbGVjdGlvbkZsaXBwZWQpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBpZiAocmFuZ2UpCiAgICAgICAgIGZyYW1lLT5zZWxl
Y3Rpb24oKS5zZXRTZWxlY3RlZFJhbmdlKHJhbmdlLCBwb3NpdGlvbi5hZmZpbml0eSgpLCBXZWJD
b3JlOjpGcmFtZVNlbGVjdGlvbjo6U2hvdWxkQ2xvc2VUeXBpbmc6OlllcywgVXNlclRyaWdnZXJl
ZCk7CisgICAgCisgICAgaWYgKHNlbGVjdGlvbkZsaXBwZWQpCisgICAgICAgIGZsYWdzID0gU2Vs
ZWN0aW9uRmxpcHBlZDsKIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKHBvaW50LCBzZWxlY3Rpb25U
b3VjaCwgZmxhZ3MpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440272</attachid>
            <date>2021-10-05 15:01:11 -0700</date>
            <delta_ts>2021-10-06 07:25:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231234-20211005180109.patch</filename>
            <type>text/plain</type>
            <size>15878</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGMyOWQxNTdmMTlkMzNkNjFjYmYwNTcx
NTdmYmNlMDU1NGY3ZjQ0ZTkuLjU1Y2UyZmU5NDlhMzU0NjkyOGY2ZDNlYTA4MzRkNGVkNmFhMDg1
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMDUgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyB0ZXh0IHNlbGVjdGlvbiB0byBm
bGlwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMx
MjM0CisgICAgICAgIHJkYXI6Ly84Mzg4OTE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBpbnRlcm5hbCBmbGFnIHRvIGd1YXJkIHRleHQg
c2VsZWN0aW9uIGZsaXBwaW5nIHdoaWxlCisgICAgICAgIHdlIHRlc3QgdG8gbWFrZSBzdXJlIHRo
aXMgaXMgcmVhc29uYWJsZSB0byB0dXJuIG9uIGV2ZXJ5d2hlcmUuCisKKyAgICAgICAgKiBTY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbDoKKwogMjAyMS0xMC0w
NSAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJs
ZSAyRCBjYW52YXMgY29sb3Igc3BhY2Ugc3VwcG9ydCBvbiBBcHBsZSBwbGF0Zm9ybXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZjg1ZGYzZjBhZTNiOWYwYzYzYWE3YzkxM2U4MjYyNzJmYTVmYTNlMy4uNDNjOGNmYzY0
ZWRiZTE2YzM1NmQ5ZjliYTkzZDQ5ZjU2MTg0NjVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBA
QAorMjAyMS0xMC0wNSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEFsbG93IHRleHQgc2VsZWN0aW9uIHRvIGZsaXAuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEyMzQKKyAgICAgICAgcmRhcjovLzgz
ODg5MTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW4gb3JkZXIgdG8gYnJpbmcgd2Via2l0IG1vcmUgaW4gbGluZSB3aXRoIFVJS2l0LCBhbGxvdyB0
ZXh0IHNlbGVjdGlvbiB0byBmbGlwLgorICAgICAgICBUaGlzIGFsc28gcmVxdWlyZXMgYSBVSUtp
dCBjaGFuZ2UgdHJhY2tlZCBpbiByZGFyOi8vODM3ODg0MzkKKyAgICAgICAgVGhpcyBpcyBjdXJy
ZW50bHkgZ3VhcmRlZCBiZWhpbmQgYW4gb2ZmLWJ5LWRlZmF1bHQgZmxhZyBzbyB0aGF0IHdlIGNh
bgorICAgICAgICB0ZXN0IHRoaXMgbmV3IGJlaGF2aW9yIGJlZm9yZSB0dXJuaW5nIGl0IG9uIGJ5
IGRlZmF1bHQuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmg6CisgICAg
ICAgICogU2hhcmVkL2lvcy9HZXN0dXJlVHlwZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKHRvVUlXS1NlbGVjdGlvbkZs
YWdzKToKKyAgICAgICAgKHRvU2VsZWN0aW9uRmxhZ3MpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJl
ZmVyZW5jZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFNlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpyYW5nZUZvclBvaW50SW5Sb290Vmlld0Nvb3JkaW5hdGVzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6dXBkYXRlU2VsZWN0aW9uV2l0aFRvdWNoZXMpOgorCiAyMDIxLTEwLTA0
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFNQSSB0byBs
YXVuY2ggYSBzZXJ2aWNlIHNlcnZpY2Ugd29ya2VyIGluIGEgV0tXZWJWaWV3IGFuZCBleHBvc2Ug
c2VydmljZSB3b3JrZXIgdG8gaW5qZWN0ZWQgYnVuZGxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sIGIvU291cmNl
L1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAppbmRl
eCAxZTJmZDIyNWY2NDMwNDY4ODc3OTI1MDBkNTU0OGRhZjIzNjMxMjBkLi44ZjQ1YjAxYzEwYTAz
ZGIzNDUxYzhhYzBkYjllMTUzYTU3MjQxY2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1Njcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCisrKyBiL1NvdXJjZS9X
VEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKQEAgLTY4
MSw2ICs2ODEsMTUgQEAgU2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQ6CiAg
ICAgICBkZWZhdWx0OiB0cnVlCiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IHRydWUKKyAg
ICAgIAorU2VsZWN0aW9uRmxpcHBpbmdFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVh
ZGFibGVOYW1lOiAiU2VsZWN0aW9uIEZsaXBwaW5nIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRp
b246ICJFbmFibGUgU2VsZWN0aW9uIEZsaXBwaW5nIgorICB3ZWJjb3JlQmluZGluZzogbm9uZQor
ICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKIAogIyBG
SVhNRTogVGhpcyBpcyBub3QgaW1wbGVtZW50ZWQgZm9yIFdlYktpdExlZ2FjeSwgc28gc2hvdWxk
IGJlIGV4Y2x1ZGVkIGZyb20gV2ViS2l0TGVnYWN5IGVudGlyZWx5LgogU2VydmljZVdvcmtlcnNF
bmFibGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0
U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAppbmRleCA4
ZmJjZTMyNGZlOWEyYTAxZGQ3MzA2MzBiODdiNzc0MzBmOWMzZmZkLi5jYjExYjRhNmEyM2ExNjhi
YTQ2OGVmODk1ZWNiNTJiNDAwNzcxODRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL3NwaS9pb3MvVUlLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9p
b3MvVUlLaXRTUEkuaApAQCAtMTM5LDYgKzEzOSw5IEBACiAjaW1wb3J0IDxVSUtpdC9VSVBvaW50
ZXJTdHlsZV9Qcml2YXRlLmg+CiAjZW5kaWYKIAorLy8gRklYTUU6IFNUQUdJTkcgZm9yIHJkYXI6
Ly83NTU0NjcwNCBSZW1vdmUgbGF0ZXIuCisjZGVmaW5lIFVJV0tTZWxlY3Rpb25GbGlwcGVkIDIK
KwogI2Vsc2UgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCkBAIC02ODIsNiArNjg1LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgVUlX
S1NlbGVjdGlvblRvdWNoKSB7CiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBVSVdLU2VsZWN0
aW9uRmxhZ3MpIHsKICAgICBVSVdLTm9uZSA9IDAsCiAgICAgVUlXS1dvcmRJc05lYXJUYXAgPSAx
LAorICAgIFVJV0tTZWxlY3Rpb25GbGlwcGVkID0gMiwKICAgICBVSVdLUGhyYXNlQm91bmRhcnlD
aGFuZ2VkID0gNCwKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9H
ZXN0dXJlVHlwZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9HZXN0dXJlVHlwZXMuaApp
bmRleCBhMzM2MWNhZDQyNjg5Y2VjMDY3NjgxYjNmOWU2NmI2N2YzZDYxNGVhLi40ZmVhNzgyZGRj
MGYwYjdkNGZjYmRiZjg4OWI0Y2UxMWJjMTVhNThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9pb3MvR2VzdHVyZVR5cGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L0dlc3R1cmVUeXBlcy5oCkBAIC02NSw3ICs2NSw4IEBAIGVudW0gY2xhc3MgU2hlZXRBY3Rpb24g
OiBib29sIHsKIAogZW51bSBTZWxlY3Rpb25GbGFncyA6IHVpbnQ4X3QgewogICAgIFdvcmRJc05l
YXJUYXAgPSAxIDw8IDAsCi0gICAgUGhyYXNlQm91bmRhcnlDaGFuZ2VkID0gMSA8PCAxLAorICAg
IFNlbGVjdGlvbkZsaXBwZWQgPSAxIDw8IDEsCisgICAgUGhyYXNlQm91bmRhcnlDaGFuZ2VkID0g
MSA8PCAyLAogfTsKIAogZW51bSBjbGFzcyBSZXNwZWN0U2VsZWN0aW9uQW5jaG9yIDogYm9vbCB7
CkBAIC0xMDcsNiArMTA4LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6
OlNlbGVjdGlvbkZsYWdzPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICAg
ICAgV2ViS2l0OjpTZWxlY3Rpb25GbGFncywKICAgICAgICAgV2ViS2l0OjpTZWxlY3Rpb25GbGFn
czo6V29yZElzTmVhclRhcCwKKyAgICAgICAgV2ViS2l0OjpTZWxlY3Rpb25GbGFnczo6U2VsZWN0
aW9uRmxpcHBlZCwKICAgICAgICAgV2ViS2l0OjpTZWxlY3Rpb25GbGFnczo6UGhyYXNlQm91bmRh
cnlDaGFuZ2VkCiAgICAgPjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBkNGRiNjUyZTdiYTIyMjhl
MThmMDhlZjkwYzNlM2Q5MmM0YzFlODMyLi44OWI4ZTVkZTlhMmU1YjY3MDBlY2IzYzRlMTRlMzIw
NjIzZmJkYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTQyNzMsNiArNDI3Myw4IEBAIHN0YXRpYyBp
bmxpbmUgVUlXS1NlbGVjdGlvbkZsYWdzIHRvVUlXS1NlbGVjdGlvbkZsYWdzKE9wdGlvblNldDxX
ZWJLaXQ6OlNlbGVjdGlvCiAgICAgTlNJbnRlZ2VyIHVpRmxhZ3MgPSBVSVdLTm9uZTsKICAgICBp
ZiAoZmxhZ3MuY29udGFpbnMoV2ViS2l0OjpXb3JkSXNOZWFyVGFwKSkKICAgICAgICAgdWlGbGFn
cyB8PSBVSVdLV29yZElzTmVhclRhcDsKKyAgICBpZiAoZmxhZ3MuY29udGFpbnMoV2ViS2l0OjpT
ZWxlY3Rpb25GbGlwcGVkKSkKKyAgICAgICAgdWlGbGFncyB8PSBVSVdLU2VsZWN0aW9uRmxpcHBl
ZDsKICAgICBpZiAoZmxhZ3MuY29udGFpbnMoV2ViS2l0OjpQaHJhc2VCb3VuZGFyeUNoYW5nZWQp
KQogICAgICAgICB1aUZsYWdzIHw9IFVJV0tQaHJhc2VCb3VuZGFyeUNoYW5nZWQ7CiAKQEAgLTQy
ODQsNiArNDI4Niw4IEBAIHN0YXRpYyBpbmxpbmUgT3B0aW9uU2V0PFdlYktpdDo6U2VsZWN0aW9u
RmxhZ3M+IHRvU2VsZWN0aW9uRmxhZ3MoVUlXS1NlbGVjdGlvbkZsCiAgICAgT3B0aW9uU2V0PFdl
YktpdDo6U2VsZWN0aW9uRmxhZ3M+IGZsYWdzOwogICAgIGlmICh1aUZsYWdzICYgVUlXS1dvcmRJ
c05lYXJUYXApCiAgICAgICAgIGZsYWdzLmFkZChXZWJLaXQ6OldvcmRJc05lYXJUYXApOworICAg
IGlmICh1aUZsYWdzICYgVUlXS1NlbGVjdGlvbkZsaXBwZWQpCisgICAgICAgIGZsYWdzLmFkZChX
ZWJLaXQ6OlNlbGVjdGlvbkZsaXBwZWQpOwogICAgIGlmICh1aUZsYWdzICYgVUlXS1BocmFzZUJv
dW5kYXJ5Q2hhbmdlZCkKICAgICAgICAgZmxhZ3MuYWRkKFdlYktpdDo6UGhyYXNlQm91bmRhcnlD
aGFuZ2VkKTsKICAgICByZXR1cm4gZmxhZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGU2ZWU0MjBmNDVhNDI3NTllMDYxNGNiNTAwY2E2ZWY2
YjUyNGM5MDQuLmQ5NDc2ZjdmMDZhYWQwNDUzOTc2NjNjNWU4OWVkMTcyNTkzMDZkMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zOTgxLDYg
KzM5ODEsOCBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZl
cmVuY2VzU3RvcmUmIHN0b3JlKQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgbV9wZGZQbHVn
aW5FbmFibGVkID0gc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpw
ZGZQbHVnaW5FbmFibGVkS2V5KCkpOworICAgIAorICAgIG1fc2VsZWN0aW9uRmxpcHBpbmdFbmFi
bGVkID0gc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzZWxlY3Rp
b25GbGlwcGluZ0VuYWJsZWRLZXkoKSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoUEFZTUVOVF9SRVFV
RVNUKQogICAgIHNldHRpbmdzLnNldFBheW1lbnRSZXF1ZXN0RW5hYmxlZChzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmFwcGxlUGF5RW5hYmxlZEtleSgpKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYzEzODU1NzNi
MGJlNWZlYzgwMTUwYTk1ZmIzOTUxOTQzYTUwNDY2Ni4uNzdiZjAyZTdhZWZhMTM0MWQyZjgzNjNh
MmRmNDhmODMwZjE1ZDI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaApAQCAtMTEzMyw2ICsxMTMzLDkgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIGJvb2wgcGRmUGx1Z2luRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcGRmUGx1Z2lu
RW5hYmxlZDsgfQogICAgIHZvaWQgc2V0UERGUGx1Z2luRW5hYmxlZChib29sIGVuYWJsZWQpIHsg
bV9wZGZQbHVnaW5FbmFibGVkID0gZW5hYmxlZDsgfQorICAgIAorICAgIGJvb2wgc2VsZWN0aW9u
RmxpcHBpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb25GbGlwcGluZ0VuYWJs
ZWQ7IH0KKyAgICB2b2lkIHNldFNlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZChib29sIGVuYWJsZWQp
IHsgbV9zZWxlY3Rpb25GbGlwcGluZ0VuYWJsZWQgPSBlbmFibGVkOyB9CiAKICAgICBOU0RpY3Rp
b25hcnkgKmRhdGFEZXRlY3Rpb25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhRGV0ZWN0
aW9uQ29udGV4dC5nZXQoKTsgfQogI2VuZGlmCkBAIC0xOTk2LDYgKzE5OTksNyBAQCBwcml2YXRl
OgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGJvb2wgbV9wZGZQbHVnaW5FbmFibGVkIHsgZmFs
c2UgfTsKICAgICBib29sIG1faGFzQ2FjaGVkV2luZG93RnJhbWUgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9zZWxlY3Rpb25GbGlwcGluZ0VuYWJsZWQgeyBmYWxzZSB9OwogCiAgICAgLy8gVGhlIGZy
YW1lIG9mIHRoZSBjb250YWluaW5nIHdpbmRvdyBpbiBzY3JlZW4gY29vcmRpbmF0ZXMuCiAgICAg
V2ViQ29yZTo6RmxvYXRSZWN0IG1fd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpp
bmRleCAwYzVhZjRjMGEwODUwYWZjZDUyMWZlNTI1ZTBjZjYxOGFjYjQ5YmY5Li41OGFlMTljNmE4
MGQwMTM4NzZjNDJkMjJlNGZkYzczOGQ0NjA2MjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMTYxLDYgKzE2MSw4IEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitlbnVtIGNsYXNzIFNlbGVjdGlvbldhc0ZsaXBwZWQg
OiBib29sIHsgTm8sIFllcyB9OworCiAvLyBGSVhNRTogVW5jbGVhciBpZiBjYWxsZXJzIGluIHRo
aXMgZmlsZSBhcmUgY29ycmVjdGx5IGNob29zaW5nIHdoaWNoIG9mIHRoZXNlIHR3byBmdW5jdGlv
bnMgdG8gdXNlLgogCiBzdGF0aWMgU3RyaW5nIHBsYWluVGV4dEZvckNvbnRleHQoY29uc3QgU2lt
cGxlUmFuZ2UmIHJhbmdlKQpAQCAtMTUwMyw3ICsxNTA1LDcgQEAgdm9pZCBXZWJQYWdlOjpzZWxl
Y3RXaXRoR2VzdHVyZShjb25zdCBJbnRQb2ludCYgcG9pbnQsIEdlc3R1cmVUeXBlIGdlc3R1cmVU
eXBlLAogICAgIGNvbXBsZXRpb25IYW5kbGVyKHBvaW50LCBnZXN0dXJlVHlwZSwgZ2VzdHVyZVN0
YXRlLCBmbGFncyk7CiB9CiAKLXN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNpbXBsZVJhbmdlPiByYW5n
ZUZvclBvaW50SW5Sb290Vmlld0Nvb3JkaW5hdGVzKEZyYW1lJiBmcmFtZSwgY29uc3QgSW50UG9p
bnQmIHBvaW50SW5Sb290Vmlld0Nvb3JkaW5hdGVzLCBib29sIGJhc2VJc1N0YXJ0KQorc3RhdGlj
IHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFNpbXBsZVJhbmdlPiwgV2ViS2l0OjpTZWxlY3Rpb25X
YXNGbGlwcGVkPiByYW5nZUZvclBvaW50SW5Sb290Vmlld0Nvb3JkaW5hdGVzKEZyYW1lJiBmcmFt
ZSwgY29uc3QgSW50UG9pbnQmIHBvaW50SW5Sb290Vmlld0Nvb3JkaW5hdGVzLCBib29sIGJhc2VJ
c1N0YXJ0LCBib29sIHNlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZCkKIHsKICAgICBWaXNpYmxlU2Vs
ZWN0aW9uIGV4aXN0aW5nU2VsZWN0aW9uID0gZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7
CiAgICAgVmlzaWJsZVBvc2l0aW9uIHNlbGVjdGlvblN0YXJ0ID0gZXhpc3RpbmdTZWxlY3Rpb24u
dmlzaWJsZVN0YXJ0KCk7CkBAIC0xNTExLDI2ICsxNTEzLDI4IEBAIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFNpbXBsZVJhbmdlPiByYW5nZUZvclBvaW50SW5Sb290Vmlld0Nvb3JkaW5hdGVzKEZyYW1l
JiBmcmFtCiAKICAgICBhdXRvIHBvaW50SW5Eb2N1bWVudCA9IGZyYW1lLnZpZXcoKS0+cm9vdFZp
ZXdUb0NvbnRlbnRzKHBvaW50SW5Sb290Vmlld0Nvb3JkaW5hdGVzKTsKIAotICAgIGF1dG8gbm9k
ZSA9IHNlbGVjdGlvblN0YXJ0LmRlZXBFcXVpdmFsZW50KCkuY29udGFpbmVyTm9kZSgpOwotICAg
IGlmIChub2RlICYmIG5vZGUtPnJlbmRlclN0eWxlKCkgJiYgbm9kZS0+cmVuZGVyU3R5bGUoKS0+
aXNWZXJ0aWNhbFdyaXRpbmdNb2RlKCkpIHsKLSAgICAgICAgaWYgKGJhc2VJc1N0YXJ0KSB7Ci0g
ICAgICAgICAgICBpbnQgc3RhcnRYID0gc2VsZWN0aW9uU3RhcnQuYWJzb2x1dGVDYXJldEJvdW5k
cygpLmNlbnRlcigpLngoKTsKLSAgICAgICAgICAgIGlmIChwb2ludEluRG9jdW1lbnQueCgpID4g
c3RhcnRYKQotICAgICAgICAgICAgICAgIHBvaW50SW5Eb2N1bWVudC5zZXRYKHN0YXJ0WCk7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpbnQgZW5kWCA9IHNlbGVjdGlvbkVuZC5hYnNv
bHV0ZUNhcmV0Qm91bmRzKCkuY2VudGVyKCkueCgpOwotICAgICAgICAgICAgaWYgKHBvaW50SW5E
b2N1bWVudC54KCkgPCBlbmRYKQotICAgICAgICAgICAgICAgIHBvaW50SW5Eb2N1bWVudC5zZXRY
KGVuZFgpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKGJhc2VJc1N0YXJ0
KSB7Ci0gICAgICAgICAgICBpbnQgc3RhcnRZID0gc2VsZWN0aW9uU3RhcnQuYWJzb2x1dGVDYXJl
dEJvdW5kcygpLmNlbnRlcigpLnkoKTsKLSAgICAgICAgICAgIGlmIChwb2ludEluRG9jdW1lbnQu
eSgpIDwgc3RhcnRZKQotICAgICAgICAgICAgICAgIHBvaW50SW5Eb2N1bWVudC5zZXRZKHN0YXJ0
WSk7CisgICAgaWYgKCFzZWxlY3Rpb25GbGlwcGluZ0VuYWJsZWQpIHsKKyAgICAgICAgYXV0byBu
b2RlID0gc2VsZWN0aW9uU3RhcnQuZGVlcEVxdWl2YWxlbnQoKS5jb250YWluZXJOb2RlKCk7Cisg
ICAgICAgIGlmIChub2RlICYmIG5vZGUtPnJlbmRlclN0eWxlKCkgJiYgbm9kZS0+cmVuZGVyU3R5
bGUoKS0+aXNWZXJ0aWNhbFdyaXRpbmdNb2RlKCkpIHsKKyAgICAgICAgICAgIGlmIChiYXNlSXNT
dGFydCkgeworICAgICAgICAgICAgICAgIGludCBzdGFydFggPSBzZWxlY3Rpb25TdGFydC5hYnNv
bHV0ZUNhcmV0Qm91bmRzKCkuY2VudGVyKCkueCgpOworICAgICAgICAgICAgICAgIGlmIChwb2lu
dEluRG9jdW1lbnQueCgpID4gc3RhcnRYKQorICAgICAgICAgICAgICAgICAgICBwb2ludEluRG9j
dW1lbnQuc2V0WChzdGFydFgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICBpbnQgZW5kWCA9IHNlbGVjdGlvbkVuZC5hYnNvbHV0ZUNhcmV0Qm91bmRzKCkuY2VudGVyKCku
eCgpOworICAgICAgICAgICAgICAgIGlmIChwb2ludEluRG9jdW1lbnQueCgpIDwgZW5kWCkKKyAg
ICAgICAgICAgICAgICAgICAgcG9pbnRJbkRvY3VtZW50LnNldFgoZW5kWCk7CisgICAgICAgICAg
ICB9CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpbnQgZW5kWSA9IHNlbGVjdGlvbkVu
ZC5hYnNvbHV0ZUNhcmV0Qm91bmRzKCkuY2VudGVyKCkueSgpOwotICAgICAgICAgICAgaWYgKHBv
aW50SW5Eb2N1bWVudC55KCkgPiBlbmRZKQotICAgICAgICAgICAgICAgIHBvaW50SW5Eb2N1bWVu
dC5zZXRZKGVuZFkpOworICAgICAgICAgICAgaWYgKGJhc2VJc1N0YXJ0KSB7CisgICAgICAgICAg
ICAgICAgaW50IHN0YXJ0WSA9IHNlbGVjdGlvblN0YXJ0LmFic29sdXRlQ2FyZXRCb3VuZHMoKS5j
ZW50ZXIoKS55KCk7CisgICAgICAgICAgICAgICAgaWYgKHBvaW50SW5Eb2N1bWVudC55KCkgPCBz
dGFydFkpCisgICAgICAgICAgICAgICAgICAgIHBvaW50SW5Eb2N1bWVudC5zZXRZKHN0YXJ0WSk7
CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGludCBlbmRZID0gc2VsZWN0
aW9uRW5kLmFic29sdXRlQ2FyZXRCb3VuZHMoKS5jZW50ZXIoKS55KCk7CisgICAgICAgICAgICAg
ICAgaWYgKHBvaW50SW5Eb2N1bWVudC55KCkgPiBlbmRZKQorICAgICAgICAgICAgICAgICAgICBw
b2ludEluRG9jdW1lbnQuc2V0WShlbmRZKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IH0KIApAQCAtMTU0MiwxMCArMTU0NiwxMSBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxTaW1wbGVS
YW5nZT4gcmFuZ2VGb3JQb2ludEluUm9vdFZpZXdDb29yZGluYXRlcyhGcmFtZSYgZnJhbQogCiAg
ICAgUmVmUHRyIHRhcmdldE5vZGUgPSBoaXRUZXN0LnRhcmdldE5vZGUoKTsKICAgICBpZiAodGFy
Z2V0Tm9kZSAmJiAhSFRNTEVsZW1lbnQ6OnNob3VsZEV4dGVuZFNlbGVjdGlvblRvVGFyZ2V0Tm9k
ZSgqdGFyZ2V0Tm9kZSwgZXhpc3RpbmdTZWxlY3Rpb24pKQotICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworICAgICAgICByZXR1cm4geyBzdGQ6Om51bGxvcHQsIFNlbGVjdGlvbldhc0ZsaXBw
ZWQ6Ok5vIH07CiAKLSAgICBzdGQ6Om9wdGlvbmFsPFNpbXBsZVJhbmdlPiByYW5nZTsKICAgICBW
aXNpYmxlUG9zaXRpb24gcmVzdWx0OworICAgIHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IHJh
bmdlOworICAgIFNlbGVjdGlvbldhc0ZsaXBwZWQgc2VsZWN0aW9uRmxpcHBlZCA9IFNlbGVjdGlv
bldhc0ZsaXBwZWQ6Ok5vOwogCiAgICAgaWYgKHRhcmdldE5vZGUpCiAgICAgICAgIHJlc3VsdCA9
IGZyYW1lLmV2ZW50SGFuZGxlcigpLnNlbGVjdGlvbkV4dGVudFJlc3BlY3RpbmdFZGl0aW5nQm91
bmRhcnkoZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCksIGhpdFRlc3QubG9jYWxQb2ludCgp
LCB0YXJnZXROb2RlLmdldCgpKS5kZWVwRXF1aXZhbGVudCgpOwpAQCAtMTU1MywyNSArMTU1OCwz
NyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxTaW1wbGVSYW5nZT4gcmFuZ2VGb3JQb2ludEluUm9v
dFZpZXdDb29yZGluYXRlcyhGcmFtZSYgZnJhbQogICAgICAgICByZXN1bHQgPSBmcmFtZS52aXNp
YmxlUG9zaXRpb25Gb3JQb2ludChwb2ludEluRG9jdW1lbnQpLmRlZXBFcXVpdmFsZW50KCk7CiAg
ICAgCiAgICAgaWYgKGJhc2VJc1N0YXJ0KSB7Ci0gICAgICAgIGlmIChyZXN1bHQgPD0gc2VsZWN0
aW9uU3RhcnQpCisgICAgICAgIGJvb2wgZmxpcFNlbGVjdGlvbiA9IHJlc3VsdCA8IHNlbGVjdGlv
blN0YXJ0OworCisgICAgICAgIGlmICgoZmxpcFNlbGVjdGlvbiAmJiAhc2VsZWN0aW9uRmxpcHBp
bmdFbmFibGVkKSB8fCByZXN1bHQgPT0gc2VsZWN0aW9uU3RhcnQpCiAgICAgICAgICAgICByZXN1
bHQgPSBzZWxlY3Rpb25TdGFydC5uZXh0KCk7CiAgICAgICAgIGVsc2UgaWYgKFJlZlB0ciBjb250
YWluZXJOb2RlID0gc2VsZWN0aW9uU3RhcnQuZGVlcEVxdWl2YWxlbnQoKS5jb250YWluZXJOb2Rl
KCk7IGNvbnRhaW5lck5vZGUgJiYgdGFyZ2V0Tm9kZSAmJiAmY29udGFpbmVyTm9kZS0+dHJlZVNj
b3BlKCkgIT0gJnRhcmdldE5vZGUtPnRyZWVTY29wZSgpKQogICAgICAgICAgICAgcmVzdWx0ID0g
VmlzaWJsZVNlbGVjdGlvbjo6YWRqdXN0UG9zaXRpb25Gb3JFbmQocmVzdWx0LmRlZXBFcXVpdmFs
ZW50KCksIGNvbnRhaW5lck5vZGUuZ2V0KCkpOwotCi0gICAgICAgIHJhbmdlID0gbWFrZVNpbXBs
ZVJhbmdlKHNlbGVjdGlvblN0YXJ0LCByZXN1bHQpOworICAgICAgICAKKyAgICAgICAgaWYgKHNl
bGVjdGlvbkZsaXBwaW5nRW5hYmxlZCAmJiBmbGlwU2VsZWN0aW9uKSB7CisgICAgICAgICAgICBy
YW5nZSA9IG1ha2VTaW1wbGVSYW5nZShyZXN1bHQsIHNlbGVjdGlvblN0YXJ0KTsKKyAgICAgICAg
ICAgIHNlbGVjdGlvbkZsaXBwZWQgPSBTZWxlY3Rpb25XYXNGbGlwcGVkOjpZZXM7CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgcmFuZ2UgPSBtYWtlU2ltcGxlUmFuZ2Uoc2VsZWN0aW9uU3Rh
cnQsIHJlc3VsdCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHNlbGVjdGlvbkVuZCA8PSBy
ZXN1bHQpCisgICAgICAgIGJvb2wgZmxpcFNlbGVjdGlvbiA9IHNlbGVjdGlvbkVuZCA8IHJlc3Vs
dDsKKyAgICAgICAgCisgICAgICAgIGlmICgoZmxpcFNlbGVjdGlvbiAmJiAhc2VsZWN0aW9uRmxp
cHBpbmdFbmFibGVkKSB8fCByZXN1bHQgPT0gc2VsZWN0aW9uRW5kKQogICAgICAgICAgICAgcmVz
dWx0ID0gc2VsZWN0aW9uRW5kLnByZXZpb3VzKCk7CiAgICAgICAgIGVsc2UgaWYgKFJlZlB0ciBj
b250YWluZXJOb2RlID0gc2VsZWN0aW9uRW5kLmRlZXBFcXVpdmFsZW50KCkuY29udGFpbmVyTm9k
ZSgpOyBjb250YWluZXJOb2RlICYmIHRhcmdldE5vZGUgJiYgJmNvbnRhaW5lck5vZGUtPnRyZWVT
Y29wZSgpICE9ICZ0YXJnZXROb2RlLT50cmVlU2NvcGUoKSkKICAgICAgICAgICAgIHJlc3VsdCA9
IFZpc2libGVTZWxlY3Rpb246OmFkanVzdFBvc2l0aW9uRm9yU3RhcnQocmVzdWx0LmRlZXBFcXVp
dmFsZW50KCksIGNvbnRhaW5lck5vZGUuZ2V0KCkpOwogCi0gICAgICAgIHJhbmdlID0gbWFrZVNp
bXBsZVJhbmdlKHJlc3VsdCwgc2VsZWN0aW9uRW5kKTsKKyAgICAgICAgaWYgKHNlbGVjdGlvbkZs
aXBwaW5nRW5hYmxlZCAmJiBmbGlwU2VsZWN0aW9uKSB7CisgICAgICAgICAgICByYW5nZSA9IG1h
a2VTaW1wbGVSYW5nZShzZWxlY3Rpb25FbmQsIHJlc3VsdCk7CisgICAgICAgICAgICBzZWxlY3Rp
b25GbGlwcGVkID0gU2VsZWN0aW9uV2FzRmxpcHBlZDo6WWVzOworICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIHJhbmdlID0gbWFrZVNpbXBsZVJhbmdlKHJlc3VsdCwgc2VsZWN0aW9uRW5kKTsK
ICAgICB9CiAgICAgCiAgICAgaWYgKHJhbmdlICYmIEhUTUxFbGVtZW50Ojppc0luc2lkZUltYWdl
T3ZlcmxheSgqcmFuZ2UpKQotICAgICAgICByZXR1cm4gZXhwYW5kRm9ySW1hZ2VPdmVybGF5KCpy
YW5nZSk7CisgICAgICAgIHJldHVybiB7IGV4cGFuZEZvckltYWdlT3ZlcmxheSgqcmFuZ2UpLCBT
ZWxlY3Rpb25XYXNGbGlwcGVkOjpObyB9OwogCi0gICAgcmV0dXJuIHJhbmdlOworICAgIHJldHVy
biB7IHJhbmdlLCBzZWxlY3Rpb25GbGlwcGVkIH07CiB9CiAKIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PFNpbXBsZVJhbmdlPiByYW5nZUF0V29yZEJvdW5kYXJ5Rm9yUG9zaXRpb24oRnJhbWUqIGZyYW1l
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uLCBib29sIGJhc2VJc1N0YXJ0KQpAQCAt
MTc0Myw2ICsxNzYwLDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVTZWxlY3Rpb25XaXRoVG91Y2hl
cyhjb25zdCBJbnRQb2ludCYgcG9pbnQsIFNlbGVjdGlvblRvdWNoIHMKIAogICAgIHN0ZDo6b3B0
aW9uYWw8U2ltcGxlUmFuZ2U+IHJhbmdlOwogICAgIE9wdGlvblNldDxTZWxlY3Rpb25GbGFncz4g
ZmxhZ3M7CisgICAgU2VsZWN0aW9uV2FzRmxpcHBlZCBzZWxlY3Rpb25GbGlwcGVkID0gU2VsZWN0
aW9uV2FzRmxpcHBlZDo6Tm87CiAKICAgICBzd2l0Y2ggKHNlbGVjdGlvblRvdWNoKSB7CiAgICAg
Y2FzZSBTZWxlY3Rpb25Ub3VjaDo6U3RhcnRlZDoKQEAgLTE3NTMsNyArMTc3MSw3IEBAIHZvaWQg
V2ViUGFnZTo6dXBkYXRlU2VsZWN0aW9uV2l0aFRvdWNoZXMoY29uc3QgSW50UG9pbnQmIHBvaW50
LCBTZWxlY3Rpb25Ub3VjaCBzCiAgICAgICAgIGlmIChmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0
aW9uKCkuaXNDb250ZW50RWRpdGFibGUoKSkKICAgICAgICAgICAgIHJhbmdlID0gbWFrZVNpbXBs
ZVJhbmdlKGNsb3Nlc3RXb3JkQm91bmRhcnlGb3JQb3NpdGlvbihwb3NpdGlvbikpOwogICAgICAg
ICBlbHNlCi0gICAgICAgICAgICByYW5nZSA9IHJhbmdlRm9yUG9pbnRJblJvb3RWaWV3Q29vcmRp
bmF0ZXMoZnJhbWUsIHBvaW50LCBiYXNlSXNTdGFydCk7CisgICAgICAgICAgICBzdGQ6OnRpZShy
YW5nZSwgc2VsZWN0aW9uRmxpcHBlZCkgPSByYW5nZUZvclBvaW50SW5Sb290Vmlld0Nvb3JkaW5h
dGVzKGZyYW1lLCBwb2ludCwgYmFzZUlzU3RhcnQsIHNlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZCgp
KTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFNlbGVjdGlvblRvdWNoOjpFbmRlZE1vdmlu
Z0ZvcndhcmQ6CkBAIC0xNzYyLDEyICsxNzgwLDE1IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlU2Vs
ZWN0aW9uV2l0aFRvdWNoZXMoY29uc3QgSW50UG9pbnQmIHBvaW50LCBTZWxlY3Rpb25Ub3VjaCBz
CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBTZWxlY3Rpb25Ub3VjaDo6TW92ZWQ6Ci0gICAg
ICAgIHJhbmdlID0gcmFuZ2VGb3JQb2ludEluUm9vdFZpZXdDb29yZGluYXRlcyhmcmFtZSwgcG9p
bnQsIGJhc2VJc1N0YXJ0KTsKKyAgICAgICAgc3RkOjp0aWUocmFuZ2UsIHNlbGVjdGlvbkZsaXBw
ZWQpID0gcmFuZ2VGb3JQb2ludEluUm9vdFZpZXdDb29yZGluYXRlcyhmcmFtZSwgcG9pbnQsIGJh
c2VJc1N0YXJ0LCBzZWxlY3Rpb25GbGlwcGluZ0VuYWJsZWQoKSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIAogICAgIGlmIChyYW5nZSkKICAgICAgICAgZnJhbWUtPnNlbGVjdGlvbigpLnNldFNl
bGVjdGVkUmFuZ2UocmFuZ2UsIHBvc2l0aW9uLmFmZmluaXR5KCksIFdlYkNvcmU6OkZyYW1lU2Vs
ZWN0aW9uOjpTaG91bGRDbG9zZVR5cGluZzo6WWVzLCBVc2VyVHJpZ2dlcmVkKTsKKyAgICAKKyAg
ICBpZiAoc2VsZWN0aW9uRmxpcHBlZCA9PSBTZWxlY3Rpb25XYXNGbGlwcGVkOjpZZXMpCisgICAg
ICAgIGZsYWdzID0gU2VsZWN0aW9uRmxpcHBlZDsKIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKHBv
aW50LCBzZWxlY3Rpb25Ub3VjaCwgZmxhZ3MpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440321</attachid>
            <date>2021-10-05 19:10:10 -0700</date>
            <delta_ts>2021-10-06 07:25:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231234-20211005221009.patch</filename>
            <type>text/plain</type>
            <size>15870</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGMyOWQxNTdmMTlkMzNkNjFjYmYwNTcx
NTdmYmNlMDU1NGY3ZjQ0ZTkuLjU1Y2UyZmU5NDlhMzU0NjkyOGY2ZDNlYTA4MzRkNGVkNmFhMDg1
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMDUgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyB0ZXh0IHNlbGVjdGlvbiB0byBm
bGlwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMx
MjM0CisgICAgICAgIHJkYXI6Ly84Mzg4OTE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBpbnRlcm5hbCBmbGFnIHRvIGd1YXJkIHRleHQg
c2VsZWN0aW9uIGZsaXBwaW5nIHdoaWxlCisgICAgICAgIHdlIHRlc3QgdG8gbWFrZSBzdXJlIHRo
aXMgaXMgcmVhc29uYWJsZSB0byB0dXJuIG9uIGV2ZXJ5d2hlcmUuCisKKyAgICAgICAgKiBTY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbDoKKwogMjAyMS0xMC0w
NSAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJs
ZSAyRCBjYW52YXMgY29sb3Igc3BhY2Ugc3VwcG9ydCBvbiBBcHBsZSBwbGF0Zm9ybXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZjg1ZGYzZjBhZTNiOWYwYzYzYWE3YzkxM2U4MjYyNzJmYTVmYTNlMy4uNDNjOGNmYzY0
ZWRiZTE2YzM1NmQ5ZjliYTkzZDQ5ZjU2MTg0NjVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBA
QAorMjAyMS0xMC0wNSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEFsbG93IHRleHQgc2VsZWN0aW9uIHRvIGZsaXAuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEyMzQKKyAgICAgICAgcmRhcjovLzgz
ODg5MTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW4gb3JkZXIgdG8gYnJpbmcgd2Via2l0IG1vcmUgaW4gbGluZSB3aXRoIFVJS2l0LCBhbGxvdyB0
ZXh0IHNlbGVjdGlvbiB0byBmbGlwLgorICAgICAgICBUaGlzIGFsc28gcmVxdWlyZXMgYSBVSUtp
dCBjaGFuZ2UgdHJhY2tlZCBpbiByZGFyOi8vODM3ODg0MzkKKyAgICAgICAgVGhpcyBpcyBjdXJy
ZW50bHkgZ3VhcmRlZCBiZWhpbmQgYW4gb2ZmLWJ5LWRlZmF1bHQgZmxhZyBzbyB0aGF0IHdlIGNh
bgorICAgICAgICB0ZXN0IHRoaXMgbmV3IGJlaGF2aW9yIGJlZm9yZSB0dXJuaW5nIGl0IG9uIGJ5
IGRlZmF1bHQuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmg6CisgICAg
ICAgICogU2hhcmVkL2lvcy9HZXN0dXJlVHlwZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKHRvVUlXS1NlbGVjdGlvbkZs
YWdzKToKKyAgICAgICAgKHRvU2VsZWN0aW9uRmxhZ3MpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJl
ZmVyZW5jZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFNlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpyYW5nZUZvclBvaW50SW5Sb290Vmlld0Nvb3JkaW5hdGVzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6dXBkYXRlU2VsZWN0aW9uV2l0aFRvdWNoZXMpOgorCiAyMDIxLTEwLTA0
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFNQSSB0byBs
YXVuY2ggYSBzZXJ2aWNlIHNlcnZpY2Ugd29ya2VyIGluIGEgV0tXZWJWaWV3IGFuZCBleHBvc2Ug
c2VydmljZSB3b3JrZXIgdG8gaW5qZWN0ZWQgYnVuZGxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sIGIvU291cmNl
L1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAppbmRl
eCAxZTJmZDIyNWY2NDMwNDY4ODc3OTI1MDBkNTU0OGRhZjIzNjMxMjBkLi44ZjQ1YjAxYzEwYTAz
ZGIzNDUxYzhhYzBkYjllMTUzYTU3MjQxY2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1Njcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCisrKyBiL1NvdXJjZS9X
VEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKQEAgLTY4
MSw2ICs2ODEsMTUgQEAgU2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQ6CiAg
ICAgICBkZWZhdWx0OiB0cnVlCiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IHRydWUKKyAg
ICAgIAorU2VsZWN0aW9uRmxpcHBpbmdFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVh
ZGFibGVOYW1lOiAiU2VsZWN0aW9uIEZsaXBwaW5nIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRp
b246ICJFbmFibGUgU2VsZWN0aW9uIEZsaXBwaW5nIgorICB3ZWJjb3JlQmluZGluZzogbm9uZQor
ICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKIAogIyBG
SVhNRTogVGhpcyBpcyBub3QgaW1wbGVtZW50ZWQgZm9yIFdlYktpdExlZ2FjeSwgc28gc2hvdWxk
IGJlIGV4Y2x1ZGVkIGZyb20gV2ViS2l0TGVnYWN5IGVudGlyZWx5LgogU2VydmljZVdvcmtlcnNF
bmFibGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0
U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAppbmRleCA4
ZmJjZTMyNGZlOWEyYTAxZGQ3MzA2MzBiODdiNzc0MzBmOWMzZmZkLi5jYjExYjRhNmEyM2ExNjhi
YTQ2OGVmODk1ZWNiNTJiNDAwNzcxODRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL3NwaS9pb3MvVUlLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9p
b3MvVUlLaXRTUEkuaApAQCAtMTM5LDYgKzEzOSw5IEBACiAjaW1wb3J0IDxVSUtpdC9VSVBvaW50
ZXJTdHlsZV9Qcml2YXRlLmg+CiAjZW5kaWYKIAorLy8gRklYTUU6IFNUQUdJTkcgZm9yIHJkYXI6
Ly83NTU0NjcwNCBSZW1vdmUgbGF0ZXIuCisjZGVmaW5lIFVJV0tTZWxlY3Rpb25GbGlwcGVkIDIK
KwogI2Vsc2UgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCkBAIC02ODIsNiArNjg1LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgVUlX
S1NlbGVjdGlvblRvdWNoKSB7CiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBVSVdLU2VsZWN0
aW9uRmxhZ3MpIHsKICAgICBVSVdLTm9uZSA9IDAsCiAgICAgVUlXS1dvcmRJc05lYXJUYXAgPSAx
LAorICAgIFVJV0tTZWxlY3Rpb25GbGlwcGVkID0gMiwKICAgICBVSVdLUGhyYXNlQm91bmRhcnlD
aGFuZ2VkID0gNCwKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9H
ZXN0dXJlVHlwZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9HZXN0dXJlVHlwZXMuaApp
bmRleCBhMzM2MWNhZDQyNjg5Y2VjMDY3NjgxYjNmOWU2NmI2N2YzZDYxNGVhLi40ZmVhNzgyZGRj
MGYwYjdkNGZjYmRiZjg4OWI0Y2UxMWJjMTVhNThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9pb3MvR2VzdHVyZVR5cGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L0dlc3R1cmVUeXBlcy5oCkBAIC02NSw3ICs2NSw4IEBAIGVudW0gY2xhc3MgU2hlZXRBY3Rpb24g
OiBib29sIHsKIAogZW51bSBTZWxlY3Rpb25GbGFncyA6IHVpbnQ4X3QgewogICAgIFdvcmRJc05l
YXJUYXAgPSAxIDw8IDAsCi0gICAgUGhyYXNlQm91bmRhcnlDaGFuZ2VkID0gMSA8PCAxLAorICAg
IFNlbGVjdGlvbkZsaXBwZWQgPSAxIDw8IDEsCisgICAgUGhyYXNlQm91bmRhcnlDaGFuZ2VkID0g
MSA8PCAyLAogfTsKIAogZW51bSBjbGFzcyBSZXNwZWN0U2VsZWN0aW9uQW5jaG9yIDogYm9vbCB7
CkBAIC0xMDcsNiArMTA4LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6
OlNlbGVjdGlvbkZsYWdzPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICAg
ICAgV2ViS2l0OjpTZWxlY3Rpb25GbGFncywKICAgICAgICAgV2ViS2l0OjpTZWxlY3Rpb25GbGFn
czo6V29yZElzTmVhclRhcCwKKyAgICAgICAgV2ViS2l0OjpTZWxlY3Rpb25GbGFnczo6U2VsZWN0
aW9uRmxpcHBlZCwKICAgICAgICAgV2ViS2l0OjpTZWxlY3Rpb25GbGFnczo6UGhyYXNlQm91bmRh
cnlDaGFuZ2VkCiAgICAgPjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBkNGRiNjUyZTdiYTIyMjhl
MThmMDhlZjkwYzNlM2Q5MmM0YzFlODMyLi44OWI4ZTVkZTlhMmU1YjY3MDBlY2IzYzRlMTRlMzIw
NjIzZmJkYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTQyNzMsNiArNDI3Myw4IEBAIHN0YXRpYyBp
bmxpbmUgVUlXS1NlbGVjdGlvbkZsYWdzIHRvVUlXS1NlbGVjdGlvbkZsYWdzKE9wdGlvblNldDxX
ZWJLaXQ6OlNlbGVjdGlvCiAgICAgTlNJbnRlZ2VyIHVpRmxhZ3MgPSBVSVdLTm9uZTsKICAgICBp
ZiAoZmxhZ3MuY29udGFpbnMoV2ViS2l0OjpXb3JkSXNOZWFyVGFwKSkKICAgICAgICAgdWlGbGFn
cyB8PSBVSVdLV29yZElzTmVhclRhcDsKKyAgICBpZiAoZmxhZ3MuY29udGFpbnMoV2ViS2l0OjpT
ZWxlY3Rpb25GbGlwcGVkKSkKKyAgICAgICAgdWlGbGFncyB8PSBVSVdLU2VsZWN0aW9uRmxpcHBl
ZDsKICAgICBpZiAoZmxhZ3MuY29udGFpbnMoV2ViS2l0OjpQaHJhc2VCb3VuZGFyeUNoYW5nZWQp
KQogICAgICAgICB1aUZsYWdzIHw9IFVJV0tQaHJhc2VCb3VuZGFyeUNoYW5nZWQ7CiAKQEAgLTQy
ODQsNiArNDI4Niw4IEBAIHN0YXRpYyBpbmxpbmUgT3B0aW9uU2V0PFdlYktpdDo6U2VsZWN0aW9u
RmxhZ3M+IHRvU2VsZWN0aW9uRmxhZ3MoVUlXS1NlbGVjdGlvbkZsCiAgICAgT3B0aW9uU2V0PFdl
YktpdDo6U2VsZWN0aW9uRmxhZ3M+IGZsYWdzOwogICAgIGlmICh1aUZsYWdzICYgVUlXS1dvcmRJ
c05lYXJUYXApCiAgICAgICAgIGZsYWdzLmFkZChXZWJLaXQ6OldvcmRJc05lYXJUYXApOworICAg
IGlmICh1aUZsYWdzICYgVUlXS1NlbGVjdGlvbkZsaXBwZWQpCisgICAgICAgIGZsYWdzLmFkZChX
ZWJLaXQ6OlNlbGVjdGlvbkZsaXBwZWQpOwogICAgIGlmICh1aUZsYWdzICYgVUlXS1BocmFzZUJv
dW5kYXJ5Q2hhbmdlZCkKICAgICAgICAgZmxhZ3MuYWRkKFdlYktpdDo6UGhyYXNlQm91bmRhcnlD
aGFuZ2VkKTsKICAgICByZXR1cm4gZmxhZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGU2ZWU0MjBmNDVhNDI3NTllMDYxNGNiNTAwY2E2ZWY2
YjUyNGM5MDQuLmQ5NDc2ZjdmMDZhYWQwNDUzOTc2NjNjNWU4OWVkMTcyNTkzMDZkMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zOTgxLDYg
KzM5ODEsOCBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZl
cmVuY2VzU3RvcmUmIHN0b3JlKQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgbV9wZGZQbHVn
aW5FbmFibGVkID0gc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpw
ZGZQbHVnaW5FbmFibGVkS2V5KCkpOworICAgIAorICAgIG1fc2VsZWN0aW9uRmxpcHBpbmdFbmFi
bGVkID0gc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzZWxlY3Rp
b25GbGlwcGluZ0VuYWJsZWRLZXkoKSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoUEFZTUVOVF9SRVFV
RVNUKQogICAgIHNldHRpbmdzLnNldFBheW1lbnRSZXF1ZXN0RW5hYmxlZChzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmFwcGxlUGF5RW5hYmxlZEtleSgpKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYzEzODU1NzNi
MGJlNWZlYzgwMTUwYTk1ZmIzOTUxOTQzYTUwNDY2Ni4uNzdiZjAyZTdhZWZhMTM0MWQyZjgzNjNh
MmRmNDhmODMwZjE1ZDI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaApAQCAtMTEzMyw2ICsxMTMzLDkgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIGJvb2wgcGRmUGx1Z2luRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcGRmUGx1Z2lu
RW5hYmxlZDsgfQogICAgIHZvaWQgc2V0UERGUGx1Z2luRW5hYmxlZChib29sIGVuYWJsZWQpIHsg
bV9wZGZQbHVnaW5FbmFibGVkID0gZW5hYmxlZDsgfQorICAgIAorICAgIGJvb2wgc2VsZWN0aW9u
RmxpcHBpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb25GbGlwcGluZ0VuYWJs
ZWQ7IH0KKyAgICB2b2lkIHNldFNlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZChib29sIGVuYWJsZWQp
IHsgbV9zZWxlY3Rpb25GbGlwcGluZ0VuYWJsZWQgPSBlbmFibGVkOyB9CiAKICAgICBOU0RpY3Rp
b25hcnkgKmRhdGFEZXRlY3Rpb25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhRGV0ZWN0
aW9uQ29udGV4dC5nZXQoKTsgfQogI2VuZGlmCkBAIC0xOTk2LDYgKzE5OTksNyBAQCBwcml2YXRl
OgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGJvb2wgbV9wZGZQbHVnaW5FbmFibGVkIHsgZmFs
c2UgfTsKICAgICBib29sIG1faGFzQ2FjaGVkV2luZG93RnJhbWUgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9zZWxlY3Rpb25GbGlwcGluZ0VuYWJsZWQgeyBmYWxzZSB9OwogCiAgICAgLy8gVGhlIGZy
YW1lIG9mIHRoZSBjb250YWluaW5nIHdpbmRvdyBpbiBzY3JlZW4gY29vcmRpbmF0ZXMuCiAgICAg
V2ViQ29yZTo6RmxvYXRSZWN0IG1fd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpp
bmRleCAwYzVhZjRjMGEwODUwYWZjZDUyMWZlNTI1ZTBjZjYxOGFjYjQ5YmY5Li44MGRlODYwYjkw
N2UyZWFhYzExY2MxYzQxMjE5ZjQ3ZDQ0NGQ5NDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMTYxLDYgKzE2MSw4IEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitlbnVtIGNsYXNzIFNlbGVjdGlvbldhc0ZsaXBwZWQg
OiBib29sIHsgTm8sIFllcyB9OworCiAvLyBGSVhNRTogVW5jbGVhciBpZiBjYWxsZXJzIGluIHRo
aXMgZmlsZSBhcmUgY29ycmVjdGx5IGNob29zaW5nIHdoaWNoIG9mIHRoZXNlIHR3byBmdW5jdGlv
bnMgdG8gdXNlLgogCiBzdGF0aWMgU3RyaW5nIHBsYWluVGV4dEZvckNvbnRleHQoY29uc3QgU2lt
cGxlUmFuZ2UmIHJhbmdlKQpAQCAtMTUwMyw3ICsxNTA1LDcgQEAgdm9pZCBXZWJQYWdlOjpzZWxl
Y3RXaXRoR2VzdHVyZShjb25zdCBJbnRQb2ludCYgcG9pbnQsIEdlc3R1cmVUeXBlIGdlc3R1cmVU
eXBlLAogICAgIGNvbXBsZXRpb25IYW5kbGVyKHBvaW50LCBnZXN0dXJlVHlwZSwgZ2VzdHVyZVN0
YXRlLCBmbGFncyk7CiB9CiAKLXN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNpbXBsZVJhbmdlPiByYW5n
ZUZvclBvaW50SW5Sb290Vmlld0Nvb3JkaW5hdGVzKEZyYW1lJiBmcmFtZSwgY29uc3QgSW50UG9p
bnQmIHBvaW50SW5Sb290Vmlld0Nvb3JkaW5hdGVzLCBib29sIGJhc2VJc1N0YXJ0KQorc3RhdGlj
IHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFNpbXBsZVJhbmdlPiwgU2VsZWN0aW9uV2FzRmxpcHBl
ZD4gcmFuZ2VGb3JQb2ludEluUm9vdFZpZXdDb29yZGluYXRlcyhGcmFtZSYgZnJhbWUsIGNvbnN0
IEludFBvaW50JiBwb2ludEluUm9vdFZpZXdDb29yZGluYXRlcywgYm9vbCBiYXNlSXNTdGFydCwg
Ym9vbCBzZWxlY3Rpb25GbGlwcGluZ0VuYWJsZWQpCiB7CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBl
eGlzdGluZ1NlbGVjdGlvbiA9IGZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgIFZp
c2libGVQb3NpdGlvbiBzZWxlY3Rpb25TdGFydCA9IGV4aXN0aW5nU2VsZWN0aW9uLnZpc2libGVT
dGFydCgpOwpAQCAtMTUxMSwyNiArMTUxMywyOCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxTaW1w
bGVSYW5nZT4gcmFuZ2VGb3JQb2ludEluUm9vdFZpZXdDb29yZGluYXRlcyhGcmFtZSYgZnJhbQog
CiAgICAgYXV0byBwb2ludEluRG9jdW1lbnQgPSBmcmFtZS52aWV3KCktPnJvb3RWaWV3VG9Db250
ZW50cyhwb2ludEluUm9vdFZpZXdDb29yZGluYXRlcyk7CiAKLSAgICBhdXRvIG5vZGUgPSBzZWxl
Y3Rpb25TdGFydC5kZWVwRXF1aXZhbGVudCgpLmNvbnRhaW5lck5vZGUoKTsKLSAgICBpZiAobm9k
ZSAmJiBub2RlLT5yZW5kZXJTdHlsZSgpICYmIG5vZGUtPnJlbmRlclN0eWxlKCktPmlzVmVydGlj
YWxXcml0aW5nTW9kZSgpKSB7Ci0gICAgICAgIGlmIChiYXNlSXNTdGFydCkgewotICAgICAgICAg
ICAgaW50IHN0YXJ0WCA9IHNlbGVjdGlvblN0YXJ0LmFic29sdXRlQ2FyZXRCb3VuZHMoKS5jZW50
ZXIoKS54KCk7Ci0gICAgICAgICAgICBpZiAocG9pbnRJbkRvY3VtZW50LngoKSA+IHN0YXJ0WCkK
LSAgICAgICAgICAgICAgICBwb2ludEluRG9jdW1lbnQuc2V0WChzdGFydFgpOwotICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgaW50IGVuZFggPSBzZWxlY3Rpb25FbmQuYWJzb2x1dGVDYXJl
dEJvdW5kcygpLmNlbnRlcigpLngoKTsKLSAgICAgICAgICAgIGlmIChwb2ludEluRG9jdW1lbnQu
eCgpIDwgZW5kWCkKLSAgICAgICAgICAgICAgICBwb2ludEluRG9jdW1lbnQuc2V0WChlbmRYKTsK
LSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChiYXNlSXNTdGFydCkgewotICAg
ICAgICAgICAgaW50IHN0YXJ0WSA9IHNlbGVjdGlvblN0YXJ0LmFic29sdXRlQ2FyZXRCb3VuZHMo
KS5jZW50ZXIoKS55KCk7Ci0gICAgICAgICAgICBpZiAocG9pbnRJbkRvY3VtZW50LnkoKSA8IHN0
YXJ0WSkKLSAgICAgICAgICAgICAgICBwb2ludEluRG9jdW1lbnQuc2V0WShzdGFydFkpOworICAg
IGlmICghc2VsZWN0aW9uRmxpcHBpbmdFbmFibGVkKSB7CisgICAgICAgIGF1dG8gbm9kZSA9IHNl
bGVjdGlvblN0YXJ0LmRlZXBFcXVpdmFsZW50KCkuY29udGFpbmVyTm9kZSgpOworICAgICAgICBp
ZiAobm9kZSAmJiBub2RlLT5yZW5kZXJTdHlsZSgpICYmIG5vZGUtPnJlbmRlclN0eWxlKCktPmlz
VmVydGljYWxXcml0aW5nTW9kZSgpKSB7CisgICAgICAgICAgICBpZiAoYmFzZUlzU3RhcnQpIHsK
KyAgICAgICAgICAgICAgICBpbnQgc3RhcnRYID0gc2VsZWN0aW9uU3RhcnQuYWJzb2x1dGVDYXJl
dEJvdW5kcygpLmNlbnRlcigpLngoKTsKKyAgICAgICAgICAgICAgICBpZiAocG9pbnRJbkRvY3Vt
ZW50LngoKSA+IHN0YXJ0WCkKKyAgICAgICAgICAgICAgICAgICAgcG9pbnRJbkRvY3VtZW50LnNl
dFgoc3RhcnRYKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGVu
ZFggPSBzZWxlY3Rpb25FbmQuYWJzb2x1dGVDYXJldEJvdW5kcygpLmNlbnRlcigpLngoKTsKKyAg
ICAgICAgICAgICAgICBpZiAocG9pbnRJbkRvY3VtZW50LngoKSA8IGVuZFgpCisgICAgICAgICAg
ICAgICAgICAgIHBvaW50SW5Eb2N1bWVudC5zZXRYKGVuZFgpOworICAgICAgICAgICAgfQogICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgaW50IGVuZFkgPSBzZWxlY3Rpb25FbmQuYWJzb2x1
dGVDYXJldEJvdW5kcygpLmNlbnRlcigpLnkoKTsKLSAgICAgICAgICAgIGlmIChwb2ludEluRG9j
dW1lbnQueSgpID4gZW5kWSkKLSAgICAgICAgICAgICAgICBwb2ludEluRG9jdW1lbnQuc2V0WShl
bmRZKTsKKyAgICAgICAgICAgIGlmIChiYXNlSXNTdGFydCkgeworICAgICAgICAgICAgICAgIGlu
dCBzdGFydFkgPSBzZWxlY3Rpb25TdGFydC5hYnNvbHV0ZUNhcmV0Qm91bmRzKCkuY2VudGVyKCku
eSgpOworICAgICAgICAgICAgICAgIGlmIChwb2ludEluRG9jdW1lbnQueSgpIDwgc3RhcnRZKQor
ICAgICAgICAgICAgICAgICAgICBwb2ludEluRG9jdW1lbnQuc2V0WShzdGFydFkpOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgZW5kWSA9IHNlbGVjdGlvbkVuZC5h
YnNvbHV0ZUNhcmV0Qm91bmRzKCkuY2VudGVyKCkueSgpOworICAgICAgICAgICAgICAgIGlmIChw
b2ludEluRG9jdW1lbnQueSgpID4gZW5kWSkKKyAgICAgICAgICAgICAgICAgICAgcG9pbnRJbkRv
Y3VtZW50LnNldFkoZW5kWSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKQEAg
LTE1NDIsMTAgKzE1NDYsMTEgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IHJh
bmdlRm9yUG9pbnRJblJvb3RWaWV3Q29vcmRpbmF0ZXMoRnJhbWUmIGZyYW0KIAogICAgIFJlZlB0
ciB0YXJnZXROb2RlID0gaGl0VGVzdC50YXJnZXROb2RlKCk7CiAgICAgaWYgKHRhcmdldE5vZGUg
JiYgIUhUTUxFbGVtZW50OjpzaG91bGRFeHRlbmRTZWxlY3Rpb25Ub1RhcmdldE5vZGUoKnRhcmdl
dE5vZGUsIGV4aXN0aW5nU2VsZWN0aW9uKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICAgICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCBTZWxlY3Rpb25XYXNGbGlwcGVkOjpObyB9
OwogCi0gICAgc3RkOjpvcHRpb25hbDxTaW1wbGVSYW5nZT4gcmFuZ2U7CiAgICAgVmlzaWJsZVBv
c2l0aW9uIHJlc3VsdDsKKyAgICBzdGQ6Om9wdGlvbmFsPFNpbXBsZVJhbmdlPiByYW5nZTsKKyAg
ICBTZWxlY3Rpb25XYXNGbGlwcGVkIHNlbGVjdGlvbkZsaXBwZWQgPSBTZWxlY3Rpb25XYXNGbGlw
cGVkOjpObzsKIAogICAgIGlmICh0YXJnZXROb2RlKQogICAgICAgICByZXN1bHQgPSBmcmFtZS5l
dmVudEhhbmRsZXIoKS5zZWxlY3Rpb25FeHRlbnRSZXNwZWN0aW5nRWRpdGluZ0JvdW5kYXJ5KGZy
YW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLCBoaXRUZXN0LmxvY2FsUG9pbnQoKSwgdGFyZ2V0
Tm9kZS5nZXQoKSkuZGVlcEVxdWl2YWxlbnQoKTsKQEAgLTE1NTMsMjUgKzE1NTgsMzcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IHJhbmdlRm9yUG9pbnRJblJvb3RWaWV3Q29v
cmRpbmF0ZXMoRnJhbWUmIGZyYW0KICAgICAgICAgcmVzdWx0ID0gZnJhbWUudmlzaWJsZVBvc2l0
aW9uRm9yUG9pbnQocG9pbnRJbkRvY3VtZW50KS5kZWVwRXF1aXZhbGVudCgpOwogICAgIAogICAg
IGlmIChiYXNlSXNTdGFydCkgewotICAgICAgICBpZiAocmVzdWx0IDw9IHNlbGVjdGlvblN0YXJ0
KQorICAgICAgICBib29sIGZsaXBTZWxlY3Rpb24gPSByZXN1bHQgPCBzZWxlY3Rpb25TdGFydDsK
KworICAgICAgICBpZiAoKGZsaXBTZWxlY3Rpb24gJiYgIXNlbGVjdGlvbkZsaXBwaW5nRW5hYmxl
ZCkgfHwgcmVzdWx0ID09IHNlbGVjdGlvblN0YXJ0KQogICAgICAgICAgICAgcmVzdWx0ID0gc2Vs
ZWN0aW9uU3RhcnQubmV4dCgpOwogICAgICAgICBlbHNlIGlmIChSZWZQdHIgY29udGFpbmVyTm9k
ZSA9IHNlbGVjdGlvblN0YXJ0LmRlZXBFcXVpdmFsZW50KCkuY29udGFpbmVyTm9kZSgpOyBjb250
YWluZXJOb2RlICYmIHRhcmdldE5vZGUgJiYgJmNvbnRhaW5lck5vZGUtPnRyZWVTY29wZSgpICE9
ICZ0YXJnZXROb2RlLT50cmVlU2NvcGUoKSkKICAgICAgICAgICAgIHJlc3VsdCA9IFZpc2libGVT
ZWxlY3Rpb246OmFkanVzdFBvc2l0aW9uRm9yRW5kKHJlc3VsdC5kZWVwRXF1aXZhbGVudCgpLCBj
b250YWluZXJOb2RlLmdldCgpKTsKLQotICAgICAgICByYW5nZSA9IG1ha2VTaW1wbGVSYW5nZShz
ZWxlY3Rpb25TdGFydCwgcmVzdWx0KTsKKyAgICAgICAgCisgICAgICAgIGlmIChzZWxlY3Rpb25G
bGlwcGluZ0VuYWJsZWQgJiYgZmxpcFNlbGVjdGlvbikgeworICAgICAgICAgICAgcmFuZ2UgPSBt
YWtlU2ltcGxlUmFuZ2UocmVzdWx0LCBzZWxlY3Rpb25TdGFydCk7CisgICAgICAgICAgICBzZWxl
Y3Rpb25GbGlwcGVkID0gU2VsZWN0aW9uV2FzRmxpcHBlZDo6WWVzOworICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIHJhbmdlID0gbWFrZVNpbXBsZVJhbmdlKHNlbGVjdGlvblN0YXJ0LCByZXN1
bHQpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChzZWxlY3Rpb25FbmQgPD0gcmVzdWx0KQor
ICAgICAgICBib29sIGZsaXBTZWxlY3Rpb24gPSBzZWxlY3Rpb25FbmQgPCByZXN1bHQ7CisgICAg
ICAgIAorICAgICAgICBpZiAoKGZsaXBTZWxlY3Rpb24gJiYgIXNlbGVjdGlvbkZsaXBwaW5nRW5h
YmxlZCkgfHwgcmVzdWx0ID09IHNlbGVjdGlvbkVuZCkKICAgICAgICAgICAgIHJlc3VsdCA9IHNl
bGVjdGlvbkVuZC5wcmV2aW91cygpOwogICAgICAgICBlbHNlIGlmIChSZWZQdHIgY29udGFpbmVy
Tm9kZSA9IHNlbGVjdGlvbkVuZC5kZWVwRXF1aXZhbGVudCgpLmNvbnRhaW5lck5vZGUoKTsgY29u
dGFpbmVyTm9kZSAmJiB0YXJnZXROb2RlICYmICZjb250YWluZXJOb2RlLT50cmVlU2NvcGUoKSAh
PSAmdGFyZ2V0Tm9kZS0+dHJlZVNjb3BlKCkpCiAgICAgICAgICAgICByZXN1bHQgPSBWaXNpYmxl
U2VsZWN0aW9uOjphZGp1c3RQb3NpdGlvbkZvclN0YXJ0KHJlc3VsdC5kZWVwRXF1aXZhbGVudCgp
LCBjb250YWluZXJOb2RlLmdldCgpKTsKIAotICAgICAgICByYW5nZSA9IG1ha2VTaW1wbGVSYW5n
ZShyZXN1bHQsIHNlbGVjdGlvbkVuZCk7CisgICAgICAgIGlmIChzZWxlY3Rpb25GbGlwcGluZ0Vu
YWJsZWQgJiYgZmxpcFNlbGVjdGlvbikgeworICAgICAgICAgICAgcmFuZ2UgPSBtYWtlU2ltcGxl
UmFuZ2Uoc2VsZWN0aW9uRW5kLCByZXN1bHQpOworICAgICAgICAgICAgc2VsZWN0aW9uRmxpcHBl
ZCA9IFNlbGVjdGlvbldhc0ZsaXBwZWQ6OlllczsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICByYW5nZSA9IG1ha2VTaW1wbGVSYW5nZShyZXN1bHQsIHNlbGVjdGlvbkVuZCk7CiAgICAgfQog
ICAgIAogICAgIGlmIChyYW5nZSAmJiBIVE1MRWxlbWVudDo6aXNJbnNpZGVJbWFnZU92ZXJsYXko
KnJhbmdlKSkKLSAgICAgICAgcmV0dXJuIGV4cGFuZEZvckltYWdlT3ZlcmxheSgqcmFuZ2UpOwor
ICAgICAgICByZXR1cm4geyBleHBhbmRGb3JJbWFnZU92ZXJsYXkoKnJhbmdlKSwgU2VsZWN0aW9u
V2FzRmxpcHBlZDo6Tm8gfTsKIAotICAgIHJldHVybiByYW5nZTsKKyAgICByZXR1cm4geyByYW5n
ZSwgc2VsZWN0aW9uRmxpcHBlZCB9OwogfQogCiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTaW1wbGVS
YW5nZT4gcmFuZ2VBdFdvcmRCb3VuZGFyeUZvclBvc2l0aW9uKEZyYW1lKiBmcmFtZSwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbiwgYm9vbCBiYXNlSXNTdGFydCkKQEAgLTE3NDMsNiAr
MTc2MCw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlU2VsZWN0aW9uV2l0aFRvdWNoZXMoY29uc3Qg
SW50UG9pbnQmIHBvaW50LCBTZWxlY3Rpb25Ub3VjaCBzCiAKICAgICBzdGQ6Om9wdGlvbmFsPFNp
bXBsZVJhbmdlPiByYW5nZTsKICAgICBPcHRpb25TZXQ8U2VsZWN0aW9uRmxhZ3M+IGZsYWdzOwor
ICAgIFNlbGVjdGlvbldhc0ZsaXBwZWQgc2VsZWN0aW9uRmxpcHBlZCA9IFNlbGVjdGlvbldhc0Zs
aXBwZWQ6Ok5vOwogCiAgICAgc3dpdGNoIChzZWxlY3Rpb25Ub3VjaCkgewogICAgIGNhc2UgU2Vs
ZWN0aW9uVG91Y2g6OlN0YXJ0ZWQ6CkBAIC0xNzUzLDcgKzE3NzEsNyBAQCB2b2lkIFdlYlBhZ2U6
OnVwZGF0ZVNlbGVjdGlvbldpdGhUb3VjaGVzKGNvbnN0IEludFBvaW50JiBwb2ludCwgU2VsZWN0
aW9uVG91Y2ggcwogICAgICAgICBpZiAoZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmlz
Q29udGVudEVkaXRhYmxlKCkpCiAgICAgICAgICAgICByYW5nZSA9IG1ha2VTaW1wbGVSYW5nZShj
bG9zZXN0V29yZEJvdW5kYXJ5Rm9yUG9zaXRpb24ocG9zaXRpb24pKTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgcmFuZ2UgPSByYW5nZUZvclBvaW50SW5Sb290Vmlld0Nvb3JkaW5hdGVzKGZy
YW1lLCBwb2ludCwgYmFzZUlzU3RhcnQpOworICAgICAgICAgICAgc3RkOjp0aWUocmFuZ2UsIHNl
bGVjdGlvbkZsaXBwZWQpID0gcmFuZ2VGb3JQb2ludEluUm9vdFZpZXdDb29yZGluYXRlcyhmcmFt
ZSwgcG9pbnQsIGJhc2VJc1N0YXJ0LCBzZWxlY3Rpb25GbGlwcGluZ0VuYWJsZWQoKSk7CiAgICAg
ICAgIGJyZWFrOwogCiAgICAgY2FzZSBTZWxlY3Rpb25Ub3VjaDo6RW5kZWRNb3ZpbmdGb3J3YXJk
OgpAQCAtMTc2MiwxMiArMTc4MCwxNSBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVNlbGVjdGlvbldp
dGhUb3VjaGVzKGNvbnN0IEludFBvaW50JiBwb2ludCwgU2VsZWN0aW9uVG91Y2ggcwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgU2VsZWN0aW9uVG91Y2g6Ok1vdmVkOgotICAgICAgICByYW5n
ZSA9IHJhbmdlRm9yUG9pbnRJblJvb3RWaWV3Q29vcmRpbmF0ZXMoZnJhbWUsIHBvaW50LCBiYXNl
SXNTdGFydCk7CisgICAgICAgIHN0ZDo6dGllKHJhbmdlLCBzZWxlY3Rpb25GbGlwcGVkKSA9IHJh
bmdlRm9yUG9pbnRJblJvb3RWaWV3Q29vcmRpbmF0ZXMoZnJhbWUsIHBvaW50LCBiYXNlSXNTdGFy
dCwgc2VsZWN0aW9uRmxpcHBpbmdFbmFibGVkKCkpOwogICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBpZiAocmFuZ2UpCiAgICAgICAgIGZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3RlZFJh
bmdlKHJhbmdlLCBwb3NpdGlvbi5hZmZpbml0eSgpLCBXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
U2hvdWxkQ2xvc2VUeXBpbmc6OlllcywgVXNlclRyaWdnZXJlZCk7CisgICAgCisgICAgaWYgKHNl
bGVjdGlvbkZsaXBwZWQgPT0gU2VsZWN0aW9uV2FzRmxpcHBlZDo6WWVzKQorICAgICAgICBmbGFn
cyA9IFNlbGVjdGlvbkZsaXBwZWQ7CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihwb2ludCwgc2Vs
ZWN0aW9uVG91Y2gsIGZsYWdzKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440363</attachid>
            <date>2021-10-06 07:26:03 -0700</date>
            <delta_ts>2021-10-06 08:23:13 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231234-20211006102602.patch</filename>
            <type>text/plain</type>
            <size>15866</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGMyOWQxNTdmMTlkMzNkNjFjYmYwNTcx
NTdmYmNlMDU1NGY3ZjQ0ZTkuLjE2MmQ2NGI1MDNkMmVmY2U4OTBlN2JkNThlMjIwNTg4NzY0NTUw
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMDUgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyB0ZXh0IHNlbGVjdGlvbiB0byBm
bGlwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMx
MjM0CisgICAgICAgIHJkYXI6Ly84Mzg4OTE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNv
biBIc2llaC4KKworICAgICAgICBBZGQgYW4gaW50ZXJuYWwgZmxhZyB0byBndWFyZCB0ZXh0IHNl
bGVjdGlvbiBmbGlwcGluZyB3aGlsZQorICAgICAgICB3ZSB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGlz
IGlzIHJlYXNvbmFibGUgdG8gdHVybiBvbiBldmVyeXdoZXJlLgorCisgICAgICAgICogU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWw6CisKIDIwMjEtMTAtMDUg
IENhbWVyb24gTWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUg
MkQgY2FudmFzIGNvbG9yIHNwYWNlIHN1cHBvcnQgb24gQXBwbGUgcGxhdGZvcm1zCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IGY4NWRmM2YwYWUzYjlmMGM2M2FhN2M5MTNlODI2MjcyZmE1ZmEzZTMuLjI1NjkxNDJmZDdj
NThmNDgzZTU3ZDUzYzdiNzg5NmY2ZmM3MWQ2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAK
KzIwMjEtMTAtMDUgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBbGxvdyB0ZXh0IHNlbGVjdGlvbiB0byBmbGlwLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjM0CisgICAgICAgIHJkYXI6Ly84Mzg4
OTE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBJbiBv
cmRlciB0byBicmluZyB3ZWJraXQgbW9yZSBpbiBsaW5lIHdpdGggVUlLaXQsIGFsbG93IHRleHQg
c2VsZWN0aW9uIHRvIGZsaXAuCisgICAgICAgIFRoaXMgYWxzbyByZXF1aXJlcyBhIFVJS2l0IGNo
YW5nZSB0cmFja2VkIGluIHJkYXI6Ly84Mzc4ODQzOQorICAgICAgICBUaGlzIGlzIGN1cnJlbnRs
eSBndWFyZGVkIGJlaGluZCBhbiBvZmYtYnktZGVmYXVsdCBmbGFnIHNvIHRoYXQgd2UgY2FuCisg
ICAgICAgIHRlc3QgdGhpcyBuZXcgYmVoYXZpb3IgYmVmb3JlIHR1cm5pbmcgaXQgb24gYnkgZGVm
YXVsdC4KKworICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaDoKKyAgICAgICAg
KiBTaGFyZWQvaW9zL0dlc3R1cmVUeXBlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAodG9VSVdLU2VsZWN0aW9uRmxhZ3Mp
OgorICAgICAgICAodG9TZWxlY3Rpb25GbGFncyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJl
bmNlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6c2VsZWN0aW9uRmxpcHBpbmdFbmFibGVkIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0U2VsZWN0aW9uRmxpcHBpbmdFbmFibGVkKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OnJhbmdlRm9yUG9pbnRJblJvb3RWaWV3Q29vcmRpbmF0ZXMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjp1cGRhdGVTZWxlY3Rpb25XaXRoVG91Y2hlcyk6CisKIDIwMjEtMTAtMDQgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgU1BJIHRvIGxhdW5j
aCBhIHNlcnZpY2Ugc2VydmljZSB3b3JrZXIgaW4gYSBXS1dlYlZpZXcgYW5kIGV4cG9zZSBzZXJ2
aWNlIHdvcmtlciB0byBpbmplY3RlZCBidW5kbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwgYi9Tb3VyY2UvV1RG
L1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCmluZGV4IDFl
MmZkMjI1ZjY0MzA0Njg4Nzc5MjUwMGQ1NTQ4ZGFmMjM2MzEyMGQuLjhmNDViMDFjMTBhMDNkYjM0
NTFjOGFjMGRiOWUxNTNhNTcyNDFjZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9Q
cmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKKysrIGIvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbApAQCAtNjgxLDYg
KzY4MSwxNSBAQCBTZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZDoKICAgICAg
IGRlZmF1bHQ6IHRydWUKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQorICAgICAg
CitTZWxlY3Rpb25GbGlwcGluZ0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJs
ZU5hbWU6ICJTZWxlY3Rpb24gRmxpcHBpbmciCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IkVuYWJsZSBTZWxlY3Rpb24gRmxpcHBpbmciCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGRl
ZmF1bHRWYWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQogCiAjIEZJWE1F
OiBUaGlzIGlzIG5vdCBpbXBsZW1lbnRlZCBmb3IgV2ViS2l0TGVnYWN5LCBzbyBzaG91bGQgYmUg
ZXhjbHVkZWQgZnJvbSBXZWJLaXRMZWdhY3kgZW50aXJlbHkuCiBTZXJ2aWNlV29ya2Vyc0VuYWJs
ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEku
aCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IDhmYmNl
MzI0ZmU5YTJhMDFkZDczMDYzMGI4N2I3NzQzMGY5YzNmZmQuLmNiMTFiNGE2YTIzYTE2OGJhNDY4
ZWY4OTVlY2I1MmI0MDA3NzE4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
c3BpL2lvcy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9V
SUtpdFNQSS5oCkBAIC0xMzksNiArMTM5LDkgQEAKICNpbXBvcnQgPFVJS2l0L1VJUG9pbnRlclN0
eWxlX1ByaXZhdGUuaD4KICNlbmRpZgogCisvLyBGSVhNRTogU1RBR0lORyBmb3IgcmRhcjovLzc1
NTQ2NzA0IFJlbW92ZSBsYXRlci4KKyNkZWZpbmUgVUlXS1NlbGVjdGlvbkZsaXBwZWQgMgorCiAj
ZWxzZSAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKQEAgLTY4Miw2ICs2ODUsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBVSVdLU2Vs
ZWN0aW9uVG91Y2gpIHsKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFVJV0tTZWxlY3Rpb25G
bGFncykgewogICAgIFVJV0tOb25lID0gMCwKICAgICBVSVdLV29yZElzTmVhclRhcCA9IDEsCisg
ICAgVUlXS1NlbGVjdGlvbkZsaXBwZWQgPSAyLAogICAgIFVJV0tQaHJhc2VCb3VuZGFyeUNoYW5n
ZWQgPSA0LAogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0dlc3R1
cmVUeXBlcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0dlc3R1cmVUeXBlcy5oCmluZGV4
IGEzMzYxY2FkNDI2ODljZWMwNjc2ODFiM2Y5ZTY2YjY3ZjNkNjE0ZWEuLjRmZWE3ODJkZGMwZjBi
N2Q0ZmNiZGJmODg5YjRjZTExYmMxNWE1OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2lvcy9HZXN0dXJlVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvR2Vz
dHVyZVR5cGVzLmgKQEAgLTY1LDcgKzY1LDggQEAgZW51bSBjbGFzcyBTaGVldEFjdGlvbiA6IGJv
b2wgewogCiBlbnVtIFNlbGVjdGlvbkZsYWdzIDogdWludDhfdCB7CiAgICAgV29yZElzTmVhclRh
cCA9IDEgPDwgMCwKLSAgICBQaHJhc2VCb3VuZGFyeUNoYW5nZWQgPSAxIDw8IDEsCisgICAgU2Vs
ZWN0aW9uRmxpcHBlZCA9IDEgPDwgMSwKKyAgICBQaHJhc2VCb3VuZGFyeUNoYW5nZWQgPSAxIDw8
IDIsCiB9OwogCiBlbnVtIGNsYXNzIFJlc3BlY3RTZWxlY3Rpb25BbmNob3IgOiBib29sIHsKQEAg
LTEwNyw2ICsxMDgsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6U2Vs
ZWN0aW9uRmxhZ3M+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBX
ZWJLaXQ6OlNlbGVjdGlvbkZsYWdzLAogICAgICAgICBXZWJLaXQ6OlNlbGVjdGlvbkZsYWdzOjpX
b3JkSXNOZWFyVGFwLAorICAgICAgICBXZWJLaXQ6OlNlbGVjdGlvbkZsYWdzOjpTZWxlY3Rpb25G
bGlwcGVkLAogICAgICAgICBXZWJLaXQ6OlNlbGVjdGlvbkZsYWdzOjpQaHJhc2VCb3VuZGFyeUNo
YW5nZWQKICAgICA+OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGQ0ZGI2NTJlN2JhMjIyOGUxOGYw
OGVmOTBjM2UzZDkyYzRjMWU4MzIuLjg5YjhlNWRlOWEyZTViNjcwMGVjYjNjNGUxNGUzMjA2MjNm
YmRiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNDI3Myw2ICs0MjczLDggQEAgc3RhdGljIGlubGlu
ZSBVSVdLU2VsZWN0aW9uRmxhZ3MgdG9VSVdLU2VsZWN0aW9uRmxhZ3MoT3B0aW9uU2V0PFdlYktp
dDo6U2VsZWN0aW8KICAgICBOU0ludGVnZXIgdWlGbGFncyA9IFVJV0tOb25lOwogICAgIGlmIChm
bGFncy5jb250YWlucyhXZWJLaXQ6OldvcmRJc05lYXJUYXApKQogICAgICAgICB1aUZsYWdzIHw9
IFVJV0tXb3JkSXNOZWFyVGFwOworICAgIGlmIChmbGFncy5jb250YWlucyhXZWJLaXQ6OlNlbGVj
dGlvbkZsaXBwZWQpKQorICAgICAgICB1aUZsYWdzIHw9IFVJV0tTZWxlY3Rpb25GbGlwcGVkOwog
ICAgIGlmIChmbGFncy5jb250YWlucyhXZWJLaXQ6OlBocmFzZUJvdW5kYXJ5Q2hhbmdlZCkpCiAg
ICAgICAgIHVpRmxhZ3MgfD0gVUlXS1BocmFzZUJvdW5kYXJ5Q2hhbmdlZDsKIApAQCAtNDI4NCw2
ICs0Mjg2LDggQEAgc3RhdGljIGlubGluZSBPcHRpb25TZXQ8V2ViS2l0OjpTZWxlY3Rpb25GbGFn
cz4gdG9TZWxlY3Rpb25GbGFncyhVSVdLU2VsZWN0aW9uRmwKICAgICBPcHRpb25TZXQ8V2ViS2l0
OjpTZWxlY3Rpb25GbGFncz4gZmxhZ3M7CiAgICAgaWYgKHVpRmxhZ3MgJiBVSVdLV29yZElzTmVh
clRhcCkKICAgICAgICAgZmxhZ3MuYWRkKFdlYktpdDo6V29yZElzTmVhclRhcCk7CisgICAgaWYg
KHVpRmxhZ3MgJiBVSVdLU2VsZWN0aW9uRmxpcHBlZCkKKyAgICAgICAgZmxhZ3MuYWRkKFdlYktp
dDo6U2VsZWN0aW9uRmxpcHBlZCk7CiAgICAgaWYgKHVpRmxhZ3MgJiBVSVdLUGhyYXNlQm91bmRh
cnlDaGFuZ2VkKQogICAgICAgICBmbGFncy5hZGQoV2ViS2l0OjpQaHJhc2VCb3VuZGFyeUNoYW5n
ZWQpOwogICAgIHJldHVybiBmbGFnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggZTZlZTQyMGY0NWE0Mjc1OWUwNjE0Y2I1MDBjYTZlZjZiNTI0
YzkwNC4uZDk0NzZmN2YwNmFhZDA0NTM5NzY2M2M1ZTg5ZWQxNzI1OTMwNmQzMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM5ODEsNiArMzk4
MSw4IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5j
ZXNTdG9yZSYgc3RvcmUpCiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBtX3BkZlBsdWdpbkVu
YWJsZWQgPSBzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnBkZlBs
dWdpbkVuYWJsZWRLZXkoKSk7CisgICAgCisgICAgbV9zZWxlY3Rpb25GbGlwcGluZ0VuYWJsZWQg
PSBzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnNlbGVjdGlvbkZs
aXBwaW5nRW5hYmxlZEtleSgpKTsKICNlbmRpZgogI2lmIEVOQUJMRShQQVlNRU5UX1JFUVVFU1Qp
CiAgICAgc2V0dGluZ3Muc2V0UGF5bWVudFJlcXVlc3RFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1
ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6YXBwbGVQYXlFbmFibGVkS2V5KCkpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBjMTM4NTU3M2IwYmU1
ZmVjODAxNTBhOTVmYjM5NTE5NDNhNTA0NjY2Li43N2JmMDJlN2FlZmExMzQxZDJmODM2M2EyZGY0
OGY4MzBmMTVkMjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCkBAIC0xMTMzLDYgKzExMzMsOSBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgYm9vbCBwZGZQbHVnaW5FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9wZGZQbHVnaW5FbmFi
bGVkOyB9CiAgICAgdm9pZCBzZXRQREZQbHVnaW5FbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3Bk
ZlBsdWdpbkVuYWJsZWQgPSBlbmFibGVkOyB9CisgICAgCisgICAgYm9vbCBzZWxlY3Rpb25GbGlw
cGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZDsg
fQorICAgIHZvaWQgc2V0U2VsZWN0aW9uRmxpcHBpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBt
X3NlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KIAogICAgIE5TRGljdGlvbmFy
eSAqZGF0YURldGVjdGlvbkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2RhdGFEZXRlY3Rpb25D
b250ZXh0LmdldCgpOyB9CiAjZW5kaWYKQEAgLTE5OTYsNiArMTk5OSw3IEBAIHByaXZhdGU6CiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYm9vbCBtX3BkZlBsdWdpbkVuYWJsZWQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9oYXNDYWNoZWRXaW5kb3dGcmFtZSB7IGZhbHNlIH07CisgICAgYm9vbCBt
X3NlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZCB7IGZhbHNlIH07CiAKICAgICAvLyBUaGUgZnJhbWUg
b2YgdGhlIGNvbnRhaW5pbmcgd2luZG93IGluIHNjcmVlbiBjb29yZGluYXRlcy4KICAgICBXZWJD
b3JlOjpGbG9hdFJlY3QgbV93aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4
IDBjNWFmNGMwYTA4NTBhZmNkNTIxZmU1MjVlMGNmNjE4YWNiNDliZjkuLjgwZGU4NjBiOTA3ZTJl
YWFjMTFjYzFjNDEyMTlmNDdkNDQ0ZDk0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0xNjEsNiArMTYxLDggQEAKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKK2VudW0gY2xhc3MgU2VsZWN0aW9uV2FzRmxpcHBlZCA6IGJv
b2wgeyBObywgWWVzIH07CisKIC8vIEZJWE1FOiBVbmNsZWFyIGlmIGNhbGxlcnMgaW4gdGhpcyBm
aWxlIGFyZSBjb3JyZWN0bHkgY2hvb3Npbmcgd2hpY2ggb2YgdGhlc2UgdHdvIGZ1bmN0aW9ucyB0
byB1c2UuCiAKIHN0YXRpYyBTdHJpbmcgcGxhaW5UZXh0Rm9yQ29udGV4dChjb25zdCBTaW1wbGVS
YW5nZSYgcmFuZ2UpCkBAIC0xNTAzLDcgKzE1MDUsNyBAQCB2b2lkIFdlYlBhZ2U6OnNlbGVjdFdp
dGhHZXN0dXJlKGNvbnN0IEludFBvaW50JiBwb2ludCwgR2VzdHVyZVR5cGUgZ2VzdHVyZVR5cGUs
CiAgICAgY29tcGxldGlvbkhhbmRsZXIocG9pbnQsIGdlc3R1cmVUeXBlLCBnZXN0dXJlU3RhdGUs
IGZsYWdzKTsKIH0KIAotc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IHJhbmdlRm9y
UG9pbnRJblJvb3RWaWV3Q29vcmRpbmF0ZXMoRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRQb2ludCYg
cG9pbnRJblJvb3RWaWV3Q29vcmRpbmF0ZXMsIGJvb2wgYmFzZUlzU3RhcnQpCitzdGF0aWMgc3Rk
OjpwYWlyPHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+LCBTZWxlY3Rpb25XYXNGbGlwcGVkPiBy
YW5nZUZvclBvaW50SW5Sb290Vmlld0Nvb3JkaW5hdGVzKEZyYW1lJiBmcmFtZSwgY29uc3QgSW50
UG9pbnQmIHBvaW50SW5Sb290Vmlld0Nvb3JkaW5hdGVzLCBib29sIGJhc2VJc1N0YXJ0LCBib29s
IHNlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZCkKIHsKICAgICBWaXNpYmxlU2VsZWN0aW9uIGV4aXN0
aW5nU2VsZWN0aW9uID0gZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgVmlzaWJs
ZVBvc2l0aW9uIHNlbGVjdGlvblN0YXJ0ID0gZXhpc3RpbmdTZWxlY3Rpb24udmlzaWJsZVN0YXJ0
KCk7CkBAIC0xNTExLDI2ICsxNTEzLDI4IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNpbXBsZVJh
bmdlPiByYW5nZUZvclBvaW50SW5Sb290Vmlld0Nvb3JkaW5hdGVzKEZyYW1lJiBmcmFtCiAKICAg
ICBhdXRvIHBvaW50SW5Eb2N1bWVudCA9IGZyYW1lLnZpZXcoKS0+cm9vdFZpZXdUb0NvbnRlbnRz
KHBvaW50SW5Sb290Vmlld0Nvb3JkaW5hdGVzKTsKIAotICAgIGF1dG8gbm9kZSA9IHNlbGVjdGlv
blN0YXJ0LmRlZXBFcXVpdmFsZW50KCkuY29udGFpbmVyTm9kZSgpOwotICAgIGlmIChub2RlICYm
IG5vZGUtPnJlbmRlclN0eWxlKCkgJiYgbm9kZS0+cmVuZGVyU3R5bGUoKS0+aXNWZXJ0aWNhbFdy
aXRpbmdNb2RlKCkpIHsKLSAgICAgICAgaWYgKGJhc2VJc1N0YXJ0KSB7Ci0gICAgICAgICAgICBp
bnQgc3RhcnRYID0gc2VsZWN0aW9uU3RhcnQuYWJzb2x1dGVDYXJldEJvdW5kcygpLmNlbnRlcigp
LngoKTsKLSAgICAgICAgICAgIGlmIChwb2ludEluRG9jdW1lbnQueCgpID4gc3RhcnRYKQotICAg
ICAgICAgICAgICAgIHBvaW50SW5Eb2N1bWVudC5zZXRYKHN0YXJ0WCk7Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBpbnQgZW5kWCA9IHNlbGVjdGlvbkVuZC5hYnNvbHV0ZUNhcmV0Qm91
bmRzKCkuY2VudGVyKCkueCgpOwotICAgICAgICAgICAgaWYgKHBvaW50SW5Eb2N1bWVudC54KCkg
PCBlbmRYKQotICAgICAgICAgICAgICAgIHBvaW50SW5Eb2N1bWVudC5zZXRYKGVuZFgpOwotICAg
ICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKGJhc2VJc1N0YXJ0KSB7Ci0gICAgICAg
ICAgICBpbnQgc3RhcnRZID0gc2VsZWN0aW9uU3RhcnQuYWJzb2x1dGVDYXJldEJvdW5kcygpLmNl
bnRlcigpLnkoKTsKLSAgICAgICAgICAgIGlmIChwb2ludEluRG9jdW1lbnQueSgpIDwgc3RhcnRZ
KQotICAgICAgICAgICAgICAgIHBvaW50SW5Eb2N1bWVudC5zZXRZKHN0YXJ0WSk7CisgICAgaWYg
KCFzZWxlY3Rpb25GbGlwcGluZ0VuYWJsZWQpIHsKKyAgICAgICAgYXV0byBub2RlID0gc2VsZWN0
aW9uU3RhcnQuZGVlcEVxdWl2YWxlbnQoKS5jb250YWluZXJOb2RlKCk7CisgICAgICAgIGlmIChu
b2RlICYmIG5vZGUtPnJlbmRlclN0eWxlKCkgJiYgbm9kZS0+cmVuZGVyU3R5bGUoKS0+aXNWZXJ0
aWNhbFdyaXRpbmdNb2RlKCkpIHsKKyAgICAgICAgICAgIGlmIChiYXNlSXNTdGFydCkgeworICAg
ICAgICAgICAgICAgIGludCBzdGFydFggPSBzZWxlY3Rpb25TdGFydC5hYnNvbHV0ZUNhcmV0Qm91
bmRzKCkuY2VudGVyKCkueCgpOworICAgICAgICAgICAgICAgIGlmIChwb2ludEluRG9jdW1lbnQu
eCgpID4gc3RhcnRYKQorICAgICAgICAgICAgICAgICAgICBwb2ludEluRG9jdW1lbnQuc2V0WChz
dGFydFgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgZW5kWCA9
IHNlbGVjdGlvbkVuZC5hYnNvbHV0ZUNhcmV0Qm91bmRzKCkuY2VudGVyKCkueCgpOworICAgICAg
ICAgICAgICAgIGlmIChwb2ludEluRG9jdW1lbnQueCgpIDwgZW5kWCkKKyAgICAgICAgICAgICAg
ICAgICAgcG9pbnRJbkRvY3VtZW50LnNldFgoZW5kWCk7CisgICAgICAgICAgICB9CiAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBpbnQgZW5kWSA9IHNlbGVjdGlvbkVuZC5hYnNvbHV0ZUNh
cmV0Qm91bmRzKCkuY2VudGVyKCkueSgpOwotICAgICAgICAgICAgaWYgKHBvaW50SW5Eb2N1bWVu
dC55KCkgPiBlbmRZKQotICAgICAgICAgICAgICAgIHBvaW50SW5Eb2N1bWVudC5zZXRZKGVuZFkp
OworICAgICAgICAgICAgaWYgKGJhc2VJc1N0YXJ0KSB7CisgICAgICAgICAgICAgICAgaW50IHN0
YXJ0WSA9IHNlbGVjdGlvblN0YXJ0LmFic29sdXRlQ2FyZXRCb3VuZHMoKS5jZW50ZXIoKS55KCk7
CisgICAgICAgICAgICAgICAgaWYgKHBvaW50SW5Eb2N1bWVudC55KCkgPCBzdGFydFkpCisgICAg
ICAgICAgICAgICAgICAgIHBvaW50SW5Eb2N1bWVudC5zZXRZKHN0YXJ0WSk7CisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGludCBlbmRZID0gc2VsZWN0aW9uRW5kLmFic29s
dXRlQ2FyZXRCb3VuZHMoKS5jZW50ZXIoKS55KCk7CisgICAgICAgICAgICAgICAgaWYgKHBvaW50
SW5Eb2N1bWVudC55KCkgPiBlbmRZKQorICAgICAgICAgICAgICAgICAgICBwb2ludEluRG9jdW1l
bnQuc2V0WShlbmRZKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApAQCAtMTU0
MiwxMCArMTU0NiwxMSBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxTaW1wbGVSYW5nZT4gcmFuZ2VG
b3JQb2ludEluUm9vdFZpZXdDb29yZGluYXRlcyhGcmFtZSYgZnJhbQogCiAgICAgUmVmUHRyIHRh
cmdldE5vZGUgPSBoaXRUZXN0LnRhcmdldE5vZGUoKTsKICAgICBpZiAodGFyZ2V0Tm9kZSAmJiAh
SFRNTEVsZW1lbnQ6OnNob3VsZEV4dGVuZFNlbGVjdGlvblRvVGFyZ2V0Tm9kZSgqdGFyZ2V0Tm9k
ZSwgZXhpc3RpbmdTZWxlY3Rpb24pKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
ICAgICByZXR1cm4geyBzdGQ6Om51bGxvcHQsIFNlbGVjdGlvbldhc0ZsaXBwZWQ6Ok5vIH07CiAK
LSAgICBzdGQ6Om9wdGlvbmFsPFNpbXBsZVJhbmdlPiByYW5nZTsKICAgICBWaXNpYmxlUG9zaXRp
b24gcmVzdWx0OworICAgIHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IHJhbmdlOworICAgIFNl
bGVjdGlvbldhc0ZsaXBwZWQgc2VsZWN0aW9uRmxpcHBlZCA9IFNlbGVjdGlvbldhc0ZsaXBwZWQ6
Ok5vOwogCiAgICAgaWYgKHRhcmdldE5vZGUpCiAgICAgICAgIHJlc3VsdCA9IGZyYW1lLmV2ZW50
SGFuZGxlcigpLnNlbGVjdGlvbkV4dGVudFJlc3BlY3RpbmdFZGl0aW5nQm91bmRhcnkoZnJhbWUu
c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCksIGhpdFRlc3QubG9jYWxQb2ludCgpLCB0YXJnZXROb2Rl
LmdldCgpKS5kZWVwRXF1aXZhbGVudCgpOwpAQCAtMTU1MywyNSArMTU1OCwzNyBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxTaW1wbGVSYW5nZT4gcmFuZ2VGb3JQb2ludEluUm9vdFZpZXdDb29yZGlu
YXRlcyhGcmFtZSYgZnJhbQogICAgICAgICByZXN1bHQgPSBmcmFtZS52aXNpYmxlUG9zaXRpb25G
b3JQb2ludChwb2ludEluRG9jdW1lbnQpLmRlZXBFcXVpdmFsZW50KCk7CiAgICAgCiAgICAgaWYg
KGJhc2VJc1N0YXJ0KSB7Ci0gICAgICAgIGlmIChyZXN1bHQgPD0gc2VsZWN0aW9uU3RhcnQpCisg
ICAgICAgIGJvb2wgZmxpcFNlbGVjdGlvbiA9IHJlc3VsdCA8IHNlbGVjdGlvblN0YXJ0OworCisg
ICAgICAgIGlmICgoZmxpcFNlbGVjdGlvbiAmJiAhc2VsZWN0aW9uRmxpcHBpbmdFbmFibGVkKSB8
fCByZXN1bHQgPT0gc2VsZWN0aW9uU3RhcnQpCiAgICAgICAgICAgICByZXN1bHQgPSBzZWxlY3Rp
b25TdGFydC5uZXh0KCk7CiAgICAgICAgIGVsc2UgaWYgKFJlZlB0ciBjb250YWluZXJOb2RlID0g
c2VsZWN0aW9uU3RhcnQuZGVlcEVxdWl2YWxlbnQoKS5jb250YWluZXJOb2RlKCk7IGNvbnRhaW5l
ck5vZGUgJiYgdGFyZ2V0Tm9kZSAmJiAmY29udGFpbmVyTm9kZS0+dHJlZVNjb3BlKCkgIT0gJnRh
cmdldE5vZGUtPnRyZWVTY29wZSgpKQogICAgICAgICAgICAgcmVzdWx0ID0gVmlzaWJsZVNlbGVj
dGlvbjo6YWRqdXN0UG9zaXRpb25Gb3JFbmQocmVzdWx0LmRlZXBFcXVpdmFsZW50KCksIGNvbnRh
aW5lck5vZGUuZ2V0KCkpOwotCi0gICAgICAgIHJhbmdlID0gbWFrZVNpbXBsZVJhbmdlKHNlbGVj
dGlvblN0YXJ0LCByZXN1bHQpOworICAgICAgICAKKyAgICAgICAgaWYgKHNlbGVjdGlvbkZsaXBw
aW5nRW5hYmxlZCAmJiBmbGlwU2VsZWN0aW9uKSB7CisgICAgICAgICAgICByYW5nZSA9IG1ha2VT
aW1wbGVSYW5nZShyZXN1bHQsIHNlbGVjdGlvblN0YXJ0KTsKKyAgICAgICAgICAgIHNlbGVjdGlv
bkZsaXBwZWQgPSBTZWxlY3Rpb25XYXNGbGlwcGVkOjpZZXM7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgcmFuZ2UgPSBtYWtlU2ltcGxlUmFuZ2Uoc2VsZWN0aW9uU3RhcnQsIHJlc3VsdCk7
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHNlbGVjdGlvbkVuZCA8PSByZXN1bHQpCisgICAg
ICAgIGJvb2wgZmxpcFNlbGVjdGlvbiA9IHNlbGVjdGlvbkVuZCA8IHJlc3VsdDsKKyAgICAgICAg
CisgICAgICAgIGlmICgoZmxpcFNlbGVjdGlvbiAmJiAhc2VsZWN0aW9uRmxpcHBpbmdFbmFibGVk
KSB8fCByZXN1bHQgPT0gc2VsZWN0aW9uRW5kKQogICAgICAgICAgICAgcmVzdWx0ID0gc2VsZWN0
aW9uRW5kLnByZXZpb3VzKCk7CiAgICAgICAgIGVsc2UgaWYgKFJlZlB0ciBjb250YWluZXJOb2Rl
ID0gc2VsZWN0aW9uRW5kLmRlZXBFcXVpdmFsZW50KCkuY29udGFpbmVyTm9kZSgpOyBjb250YWlu
ZXJOb2RlICYmIHRhcmdldE5vZGUgJiYgJmNvbnRhaW5lck5vZGUtPnRyZWVTY29wZSgpICE9ICZ0
YXJnZXROb2RlLT50cmVlU2NvcGUoKSkKICAgICAgICAgICAgIHJlc3VsdCA9IFZpc2libGVTZWxl
Y3Rpb246OmFkanVzdFBvc2l0aW9uRm9yU3RhcnQocmVzdWx0LmRlZXBFcXVpdmFsZW50KCksIGNv
bnRhaW5lck5vZGUuZ2V0KCkpOwogCi0gICAgICAgIHJhbmdlID0gbWFrZVNpbXBsZVJhbmdlKHJl
c3VsdCwgc2VsZWN0aW9uRW5kKTsKKyAgICAgICAgaWYgKHNlbGVjdGlvbkZsaXBwaW5nRW5hYmxl
ZCAmJiBmbGlwU2VsZWN0aW9uKSB7CisgICAgICAgICAgICByYW5nZSA9IG1ha2VTaW1wbGVSYW5n
ZShzZWxlY3Rpb25FbmQsIHJlc3VsdCk7CisgICAgICAgICAgICBzZWxlY3Rpb25GbGlwcGVkID0g
U2VsZWN0aW9uV2FzRmxpcHBlZDo6WWVzOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJh
bmdlID0gbWFrZVNpbXBsZVJhbmdlKHJlc3VsdCwgc2VsZWN0aW9uRW5kKTsKICAgICB9CiAgICAg
CiAgICAgaWYgKHJhbmdlICYmIEhUTUxFbGVtZW50Ojppc0luc2lkZUltYWdlT3ZlcmxheSgqcmFu
Z2UpKQotICAgICAgICByZXR1cm4gZXhwYW5kRm9ySW1hZ2VPdmVybGF5KCpyYW5nZSk7CisgICAg
ICAgIHJldHVybiB7IGV4cGFuZEZvckltYWdlT3ZlcmxheSgqcmFuZ2UpLCBTZWxlY3Rpb25XYXNG
bGlwcGVkOjpObyB9OwogCi0gICAgcmV0dXJuIHJhbmdlOworICAgIHJldHVybiB7IHJhbmdlLCBz
ZWxlY3Rpb25GbGlwcGVkIH07CiB9CiAKIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNpbXBsZVJhbmdl
PiByYW5nZUF0V29yZEJvdW5kYXJ5Rm9yUG9zaXRpb24oRnJhbWUqIGZyYW1lLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mIHBvc2l0aW9uLCBib29sIGJhc2VJc1N0YXJ0KQpAQCAtMTc0Myw2ICsxNzYw
LDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVTZWxlY3Rpb25XaXRoVG91Y2hlcyhjb25zdCBJbnRQ
b2ludCYgcG9pbnQsIFNlbGVjdGlvblRvdWNoIHMKIAogICAgIHN0ZDo6b3B0aW9uYWw8U2ltcGxl
UmFuZ2U+IHJhbmdlOwogICAgIE9wdGlvblNldDxTZWxlY3Rpb25GbGFncz4gZmxhZ3M7CisgICAg
U2VsZWN0aW9uV2FzRmxpcHBlZCBzZWxlY3Rpb25GbGlwcGVkID0gU2VsZWN0aW9uV2FzRmxpcHBl
ZDo6Tm87CiAKICAgICBzd2l0Y2ggKHNlbGVjdGlvblRvdWNoKSB7CiAgICAgY2FzZSBTZWxlY3Rp
b25Ub3VjaDo6U3RhcnRlZDoKQEAgLTE3NTMsNyArMTc3MSw3IEBAIHZvaWQgV2ViUGFnZTo6dXBk
YXRlU2VsZWN0aW9uV2l0aFRvdWNoZXMoY29uc3QgSW50UG9pbnQmIHBvaW50LCBTZWxlY3Rpb25U
b3VjaCBzCiAgICAgICAgIGlmIChmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuaXNDb250
ZW50RWRpdGFibGUoKSkKICAgICAgICAgICAgIHJhbmdlID0gbWFrZVNpbXBsZVJhbmdlKGNsb3Nl
c3RXb3JkQm91bmRhcnlGb3JQb3NpdGlvbihwb3NpdGlvbikpOwogICAgICAgICBlbHNlCi0gICAg
ICAgICAgICByYW5nZSA9IHJhbmdlRm9yUG9pbnRJblJvb3RWaWV3Q29vcmRpbmF0ZXMoZnJhbWUs
IHBvaW50LCBiYXNlSXNTdGFydCk7CisgICAgICAgICAgICBzdGQ6OnRpZShyYW5nZSwgc2VsZWN0
aW9uRmxpcHBlZCkgPSByYW5nZUZvclBvaW50SW5Sb290Vmlld0Nvb3JkaW5hdGVzKGZyYW1lLCBw
b2ludCwgYmFzZUlzU3RhcnQsIHNlbGVjdGlvbkZsaXBwaW5nRW5hYmxlZCgpKTsKICAgICAgICAg
YnJlYWs7CiAKICAgICBjYXNlIFNlbGVjdGlvblRvdWNoOjpFbmRlZE1vdmluZ0ZvcndhcmQ6CkBA
IC0xNzYyLDEyICsxNzgwLDE1IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlU2VsZWN0aW9uV2l0aFRv
dWNoZXMoY29uc3QgSW50UG9pbnQmIHBvaW50LCBTZWxlY3Rpb25Ub3VjaCBzCiAgICAgICAgIGJy
ZWFrOwogCiAgICAgY2FzZSBTZWxlY3Rpb25Ub3VjaDo6TW92ZWQ6Ci0gICAgICAgIHJhbmdlID0g
cmFuZ2VGb3JQb2ludEluUm9vdFZpZXdDb29yZGluYXRlcyhmcmFtZSwgcG9pbnQsIGJhc2VJc1N0
YXJ0KTsKKyAgICAgICAgc3RkOjp0aWUocmFuZ2UsIHNlbGVjdGlvbkZsaXBwZWQpID0gcmFuZ2VG
b3JQb2ludEluUm9vdFZpZXdDb29yZGluYXRlcyhmcmFtZSwgcG9pbnQsIGJhc2VJc1N0YXJ0LCBz
ZWxlY3Rpb25GbGlwcGluZ0VuYWJsZWQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAg
IGlmIChyYW5nZSkKICAgICAgICAgZnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGVkUmFuZ2Uo
cmFuZ2UsIHBvc2l0aW9uLmFmZmluaXR5KCksIFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpTaG91
bGRDbG9zZVR5cGluZzo6WWVzLCBVc2VyVHJpZ2dlcmVkKTsKKyAgICAKKyAgICBpZiAoc2VsZWN0
aW9uRmxpcHBlZCA9PSBTZWxlY3Rpb25XYXNGbGlwcGVkOjpZZXMpCisgICAgICAgIGZsYWdzID0g
U2VsZWN0aW9uRmxpcHBlZDsKIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKHBvaW50LCBzZWxlY3Rp
b25Ub3VjaCwgZmxhZ3MpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>