<?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>230445</bug_id>
          
          <creation_ts>2021-09-18 12:13:50 -0700</creation_ts>
          <short_desc>Remove use of NSScrollAnimationHelper for animated scrolls</short_desc>
          <delta_ts>2021-09-18 15:45:16 -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>Scrolling</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>mrobinson</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1794790</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-18 12:13:50 -0700</bug_when>
    <thetext>Remove use of NSScrollAnimationHelper for animated scrolls</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794791</commentid>
    <comment_count>1</comment_count>
      <attachid>438565</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-18 12:15:37 -0700</bug_when>
    <thetext>Created attachment 438565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794792</commentid>
    <comment_count>2</comment_count>
      <attachid>438565</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-09-18 12:23:26 -0700</bug_when>
    <thetext>Comment on attachment 438565
Patch

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

This is a great cleanup!

&gt; Source/WebCore/platform/ScrollAnimator.cpp:109
&gt; +    WTFLogAlways(&quot;scrollToPositionWithoutAnimation to %.2f&quot;, adjustedPosition.y());

Are these WTFLogAlways calls left over or did you mean to add them?

&gt; Source/WebCore/platform/mac/ScrollAnimatorMac.mm:54
&gt;  static bool scrollAnimationEnabledForSystem()

I think this can be removed and moved into the body of platformAllowsScrollAnimation. I don&apos;t think it&apos;s used anywhere else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794793</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-18 12:29:13 -0700</bug_when>
    <thetext>(In reply to Martin Robinson from comment #2)
&gt; Comment on attachment 438565 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=438565&amp;action=review
&gt; 
&gt; This is a great cleanup!
&gt; 
&gt; &gt; Source/WebCore/platform/ScrollAnimator.cpp:109
&gt; &gt; +    WTFLogAlways(&quot;scrollToPositionWithoutAnimation to %.2f&quot;, adjustedPosition.y());

I didn&apos;t mean to leave this in.

&gt; &gt; Source/WebCore/platform/mac/ScrollAnimatorMac.mm:54
&gt; &gt;  static bool scrollAnimationEnabledForSystem()
&gt; 
&gt; I think this can be removed and moved into the body of
&gt; platformAllowsScrollAnimation. I don&apos;t think it&apos;s used anywhere else.

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794794</commentid>
    <comment_count>4</comment_count>
      <attachid>438566</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-18 12:41:52 -0700</bug_when>
    <thetext>Created attachment 438566
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794813</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-18 15:45:00 -0700</bug_when>
    <thetext>Committed r282730 (241867@main): &lt;https://commits.webkit.org/241867@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438566.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794814</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-18 15:45:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/83274425&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438565</attachid>
            <date>2021-09-18 12:15:37 -0700</date>
            <delta_ts>2021-09-18 12:23:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230445-20210918121536.patch</filename>
            <type>text/plain</type>
            <size>15456</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZmMWQ4NjIzYTczZmNl
NWJkZDg1NmY3ZGIzOTEwOTZmNzZiYmFkNS4uOTgzNWE1MTU4ZDAzMGRlNTFhODVmZDJiMmNiODhh
MDJhZTM1MGUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIxLTA5LTE4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB1c2Ug
b2YgTlNTY3JvbGxBbmltYXRpb25IZWxwZXIgZm9yIGFuaW1hdGVkIHNjcm9sbHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDQ0NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5TU2Nyb2xsQW5pbWF0aW9u
SGVscGVyIHByb3ZpZGVkIGxpdHRsZSB1dGlsaXR5LiBVbmRlciB0aGUgaG9vZCBpdCdzIHVzdCBh
biBlYXNlLWluLW91dAorICAgICAgICBhbmltYXRpb24gd2l0aCBhIGR1cmF0aW9uIGJhc2VkIG9u
IGRpc3RhbmNlLCBhbmQgdGhhdCdzIGV4YWN0bHkgd2hhdCBTY3JvbGxBbmltYXRpb25TbW9vdGgK
KyAgICAgICAgaXMgbm93LCBzbyB3ZSBjYW4gcmVtb3ZlIHVzZSBvZiBOU1Njcm9sbEFuaW1hdGlv
bkhlbHBlciBpbiBTY3JvbGxBbmltYXRvck1hYyBhbmQganVzdAorICAgICAgICB1c2UgdGhlIFNj
cm9sbEFuaW1hdGlvblNtb290aCBmcm9tIHRoZSBiYXNlIGNsYXNzLgorCisgICAgICAgIFRoaXMg
dW5pZmllcyB0aGUgc2Nyb2xsIGFuaW1hdGlvbiB1c2VkIGZvciBrZXlib2FyZCBzY3JvbGxpbmcg
YW5kIENTUyBzbW9vdGggc2Nyb2xsaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6c2Nyb2xsVG9Qb3NpdGlvbldpdGhvdXRB
bmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNldEN1cnJlbnRQ
b3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6c2Nyb2xsQW5pbWF0
aW9uRGlkVXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnBsYXRmb3JtQWxsb3dzU2Nyb2xsQW5pbWF0
aW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMpOgorICAgICAgICAo
V2ViQ29yZTo6c2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclN5c3RlbSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRvck1hYzo6cGxhdGZvcm1BbGxvd3NTY3JvbGxBbmltYXRpb24gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbCk6CisgICAg
ICAgIChhYnMpOiBEZWxldGVkLgorICAgICAgICAoLVtXZWJTY3JvbGxBbmltYXRpb25IZWxwZXJE
ZWxlZ2F0ZSBpbml0V2l0aFNjcm9sbEFuaW1hdG9yOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
ZWJTY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZSBpbnZhbGlkYXRlXSk6IERlbGV0ZWQuCisg
ICAgICAgICgtW1dlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlIGJvdW5kc10pOiBEZWxl
dGVkLgorICAgICAgICAoLVtXZWJTY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZSBfaW1tZWRp
YXRlU2Nyb2xsVG9Qb2ludDpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2ViU2Nyb2xsQW5pbWF0
aW9uSGVscGVyRGVsZWdhdGUgX3BpeGVsQWxpZ25Qcm9wb3NlZFNjcm9sbFBvc2l0aW9uOl0pOiBE
ZWxldGVkLgorICAgICAgICAoLVtXZWJTY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZSBjb252
ZXJ0U2l6ZVRvQmFzZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2ViU2Nyb2xsQW5pbWF0aW9u
SGVscGVyRGVsZWdhdGUgY29udmVydFNpemVGcm9tQmFzZTpdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bV2ViU2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgY29udmVydFNpemVUb0JhY2tpbmc6
XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRl
IGNvbnZlcnRTaXplRnJvbUJhY2tpbmc6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dlYlNjcm9s
bEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlIHN1cGVydmlld10pOiBEZWxldGVkLgorICAgICAgICAo
LVtXZWJTY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZSBkb2N1bWVudFZpZXddKTogRGVsZXRl
ZC4KKyAgICAgICAgKC1bV2ViU2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgd2luZG93XSk6
IERlbGV0ZWQuCisgICAgICAgICgtW1dlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlIF9y
ZWN1cnNpdmVSZWNvbXB1dGVUb29sVGlwc10pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbFRvUG9zaXRpb25XaXRoQW5pbWF0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGxUb1Bvc2l0aW9u
V2l0aG91dEFuaW1hdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRvck1hYzo6aW1tZWRpYXRlU2Nyb2xsVG9Qb3NpdGlvbkZvclNjcm9sbEFuaW1hdGlvbik6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGJhcnNDb250cm9sbGVyTWFjLmg6
CisKIDIwMjEtMDktMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVuYW1lIGhhdmVTY3JvbGxlZFNpbmNlUGFnZUxvYWQoKSBhbmQgcHVzaCB0aGUg
c3RhdGUgdG8gU2Nyb2xsYmFyc0NvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbEFuaW1hdG9yLmNwcAppbmRleCBjMGQyYjhlNDhhNmE1MDM0NTZjMjEyMDNkNjJiMDc3NDVj
NmNiOWJjLi4zM2IyMTRlNTI5ZmIyMGY4ZTQxNmQ2ZDJmZTI2OWU0M2EwYjMyZjU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCkBAIC03MSw3ICs3MSw3IEBA
IGJvb2wgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRh
dGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkKICAgICBpZiAoYmVoYXZpb3IuY29udGFpbnMoU2Nyb2xs
QmVoYXZpb3I6OkRvRGlyZWN0aW9uYWxTbmFwcGluZykpIHsKICAgICAgICAgYmVoYXZpb3IucmVt
b3ZlKFNjcm9sbEJlaGF2aW9yOjpEb0RpcmVjdGlvbmFsU25hcHBpbmcpOwogICAgICAgICBpZiAo
IW1fc2Nyb2xsQ29udHJvbGxlci51c2VzU2Nyb2xsU25hcCgpKQotICAgICAgICAgICAgcmV0dXJu
IHNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIsIGJlaGF2
aW9yKTsKKyAgICAgICAgICAgIHJldHVybiBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKG9yaWVudGF0
aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllciwgYmVoYXZpb3IpOwogCiAgICAgICAg
IGF1dG8gY3VycmVudE9mZnNldCA9IG9mZnNldEZyb21Qb3NpdGlvbihjdXJyZW50UG9zaXRpb24o
KSk7CiAgICAgICAgIGF1dG8gbmV3T2Zmc2V0ID0gY3VycmVudE9mZnNldCArIGRlbHRhOwpAQCAt
ODcsNyArODcsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50
YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5CiAgICAgfQogCiAjaWYgRU5BQkxF
KFNNT09USF9TQ1JPTExJTkcpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChtX3Nj
cm9sbGFibGVBcmVhLnNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpICYmICFiZWhhdmlvci5jb250YWlu
cyhTY3JvbGxCZWhhdmlvcjo6TmV2ZXJBbmltYXRlKSkKKyAgICBpZiAobV9zY3JvbGxhYmxlQXJl
YS5zY3JvbGxBbmltYXRvckVuYWJsZWQoKSAmJiBwbGF0Zm9ybUFsbG93c1Njcm9sbEFuaW1hdGlv
bigpICYmICFiZWhhdmlvci5jb250YWlucyhTY3JvbGxCZWhhdmlvcjo6TmV2ZXJBbmltYXRlKSkK
ICAgICAgICAgcmV0dXJuIG1fc2Nyb2xsQW5pbWF0aW9uLT5zdGFydEFuaW1hdGVkU2Nyb2xsKG9y
aWVudGF0aW9uLCBncmFudWxhcml0eSwgbV9jdXJyZW50UG9zaXRpb24sIHN0ZXAsIG11bHRpcGxp
ZXIpOwogI2VuZGlmCiAKQEAgLTEwNSw2ICsxMDUsOSBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpz
Y3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlv
bgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBtX3Njcm9sbEFuaW1hdGlvbi0+c3RvcCgp
OworCisgICAgV1RGTG9nQWx3YXlzKCJzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbiB0
byAlLjJmIiwgYWRqdXN0ZWRQb3NpdGlvbi55KCkpOworCiAgICAgbV9jdXJyZW50UG9zaXRpb24g
PSBhZGp1c3RlZFBvc2l0aW9uOwogICAgIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZChhZGp1c3RlZFBv
c2l0aW9uIC0gY3VycmVudFBvc2l0aW9uKTsKICAgICB1cGRhdGVBY3RpdmVTY3JvbGxTbmFwSW5k
ZXhGb3JPZmZzZXQoKTsKQEAgLTIzOCw2ICsyNDEsOCBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpo
YW5kbGVUb3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYpCiAKIHZvaWQgU2Nyb2xs
QW5pbWF0b3I6OnNldEN1cnJlbnRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikK
IHsKKyAgICBXVEZMb2dBbHdheXMoInNldEN1cnJlbnRQb3NpdGlvbiB0byAlLjJmIiwgcG9zaXRp
b24ueSgpKTsKKwogICAgIG1fY3VycmVudFBvc2l0aW9uID0gcG9zaXRpb247CiAgICAgdXBkYXRl
QWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yT2Zmc2V0KCk7CiB9CkBAIC0zODMsNiArMzg4LDcgQEAg
ZmxvYXQgU2Nyb2xsQW5pbWF0b3I6OmFkanVzdFNjcm9sbE9mZnNldEZvclNuYXBwaW5nSWZOZWVk
ZWQoU2Nyb2xsRXZlbnRBeGlzIGF4aXMKIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbEFuaW1h
dGlvbkRpZFVwZGF0ZShTY3JvbGxBbmltYXRpb24mLCBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlv
bikKIHsKICAgICBGbG9hdFNpemUgZGVsdGEgPSBwb3NpdGlvbiAtIG1fY3VycmVudFBvc2l0aW9u
OworICAgIFdURkxvZ0Fsd2F5cygic2Nyb2xsQW5pbWF0aW9uRGlkVXBkYXRlIHRvICUuMmYiLCBw
b3NpdGlvbi55KCkpOwogICAgIG1fY3VycmVudFBvc2l0aW9uID0gcG9zaXRpb247CiAgICAgbm90
aWZ5UG9zaXRpb25DaGFuZ2VkKGRlbHRhKTsKICAgICB1cGRhdGVBY3RpdmVTY3JvbGxTbmFwSW5k
ZXhGb3JPZmZzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCmlu
ZGV4IDJiZjVlZTMyMGExZWJlYTdlYWIzNjI4MzQ1MjEyYmU3OGFlN2IxZmQuLjRhMTI1OWFmNjlj
NzM5Nzg3ZjhjOTRjNGYwMDJlN2E1NzM0MjdlYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0b3IuaApAQCAtMTQxLDYgKzE0MSw4IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQb3NpdGlvbkNoYW5nZWQoY29uc3QgRmxvYXRTaXpl
JiBkZWx0YSk7CisgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQWxsb3dzU2Nyb2xsQW5pbWF0aW9u
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgdm9pZCB1cGRhdGVBY3RpdmVTY3JvbGxT
bmFwSW5kZXhGb3JPZmZzZXQoKTsKIAogICAgIEZsb2F0UG9pbnQgb2Zmc2V0RnJvbVBvc2l0aW9u
KGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKaW5kZXggYTk3YzlhYzNlYzJlNjNmMmY0ZTI5NWIw
NzY4YTM5NGJjMzk5MDllMS4uMzBmMTg2MTEzOWU5MzhkZTM1ZDRjNmE1MDZjOWU2OTIxNmM3ZDli
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9y
TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
LmgKQEAgLTMzLDggKzMzLDYgQEAKICNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5oIgogI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAotT0JKQ19DTEFTUyBXZWJTY3JvbGxBbmltYXRpb25IZWxw
ZXJEZWxlZ2F0ZTsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTY3JvbGxiYXI7CkBA
IC00NCwxOCArNDIsMTYgQEAgcHVibGljOgogICAgIFNjcm9sbEFuaW1hdG9yTWFjKFNjcm9sbGFi
bGVBcmVhJik7CiAgICAgdmlydHVhbCB+U2Nyb2xsQW5pbWF0b3JNYWMoKTsKIAotICAgIHZvaWQg
aW1tZWRpYXRlU2Nyb2xsVG9Qb3NpdGlvbkZvclNjcm9sbEFuaW1hdGlvbihjb25zdCBGbG9hdFBv
aW50JiBuZXdQb3NpdGlvbik7Ci0KIHByaXZhdGU6CiAgICAgYm9vbCBzY3JvbGwoU2Nyb2xsYmFy
T3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBs
aWVyLCBPcHRpb25TZXQ8U2Nyb2xsQmVoYXZpb3I+KSBmaW5hbDsKLSAgICBib29sIHNjcm9sbFRv
UG9zaXRpb25XaXRoQW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBmaW5hbDsKLSAgICBib29s
IHNjcm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0
aW9uLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKSBmaW5hbDsKIAog
I2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBib29sIHNob3VsZEZvcndhcmRXaGVlbEV2
ZW50c1RvUGFyZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0OwogICAgIGJvb2wg
aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBmaW5hbDsKICNlbmRp
ZgogCisgICAgYm9vbCBwbGF0Zm9ybUFsbG93c1Njcm9sbEFuaW1hdGlvbigpIGNvbnN0OworCiAg
ICAgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UpIGZp
bmFsOwogICAgIAogICAgIHZvaWQgbm90aWZ5UG9zaXRpb25DaGFuZ2VkKGNvbnN0IEZsb2F0U2l6
ZSYgZGVsdGEpIGZpbmFsOwpAQCAtODIsOSArNzgsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgaW1t
ZWRpYXRlU2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJikgZmluYWw7CiAgICAgdm9pZCBhZGp1c3RT
Y3JvbGxQb3NpdGlvblRvQm91bmRzSWZOZWNlc3NhcnkoKSBmaW5hbDsKICNlbmRpZgotCi0gICAg
UmV0YWluUHRyPGlkPiBtX3Njcm9sbEFuaW1hdGlvbkhlbHBlcjsKLSAgICBSZXRhaW5QdHI8V2Vi
U2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGU+IG1fc2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVs
ZWdhdGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggYzBhZmM0OGYxZTk3NDU4
OTU5NmZkMGZkZmI4NDZhZjJkZGU0ODQ5MS4uY2I3NTQyMjhkNzkwYTdlOWFkMWVhYjlhNTI5ZWEz
Yjc4YzQ5ZjJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxB
bmltYXRvck1hYy5tbQpAQCAtMzUsMTIxICszNSw4IEBACiAjaW1wb3J0ICJTY3JvbGxWaWV3Lmgi
CiAjaW1wb3J0ICJTY3JvbGxhYmxlQXJlYS5oIgogI2ltcG9ydCAiU2Nyb2xsYmFyc0NvbnRyb2xs
ZXIuaCIKLSNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+Ci0jaW1wb3J0IDx3dGYv
TmFrZWRQdHIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAotdXNpbmcgV2Vi
Q29yZTo6U2Nyb2xsYWJsZUFyZWE7Ci11c2luZyBXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzsK
LXVzaW5nIFdlYkNvcmU6OlNjcm9sbGJhcjsKLXVzaW5nIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI7
Ci11c2luZyBXZWJDb3JlOjpWZXJ0aWNhbFNjcm9sbGJhcjsKLXVzaW5nIFdlYkNvcmU6OkludFJl
Y3Q7Ci0KLUBpbnRlcmZhY2UgTlNPYmplY3QgKFNjcm9sbEFuaW1hdGlvbkhlbHBlckRldGFpbHMp
Ci0tIChpZClpbml0V2l0aERlbGVnYXRlOihpZClkZWxlZ2F0ZTsKLS0gKHZvaWQpX3N0b3BSdW47
Ci0tIChCT09MKV9pc0FuaW1hdGluZzsKLS0gKE5TUG9pbnQpdGFyZ2V0T3JpZ2luOwotLSAoQ0dG
bG9hdClfcHJvZ3Jlc3M7Ci1AZW5kCi0KLUBpbnRlcmZhY2UgV2ViU2Nyb2xsQW5pbWF0aW9uSGVs
cGVyRGVsZWdhdGUgOiBOU09iamVjdAotewotICAgIE5ha2VkUHRyPFdlYkNvcmU6OlNjcm9sbEFu
aW1hdG9yTWFjPiBfYW5pbWF0b3I7Ci19Ci0tIChpZClpbml0V2l0aFNjcm9sbEFuaW1hdG9yOihO
YWtlZFB0cjxXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYz4pc2Nyb2xsQW5pbWF0b3I7Ci1AZW5k
Ci0KLXN0YXRpYyBOU1NpemUgYWJzKE5TU2l6ZSBzaXplKQotewotICAgIE5TU2l6ZSBmaW5hbFNp
emUgPSBzaXplOwotICAgIGlmIChmaW5hbFNpemUud2lkdGggPCAwKQotICAgICAgICBmaW5hbFNp
emUud2lkdGggPSAtZmluYWxTaXplLndpZHRoOwotICAgIGlmIChmaW5hbFNpemUuaGVpZ2h0IDwg
MCkKLSAgICAgICAgZmluYWxTaXplLmhlaWdodCA9IC1maW5hbFNpemUuaGVpZ2h0OwotICAgIHJl
dHVybiBmaW5hbFNpemU7ICAgIAotfQotCi1AaW1wbGVtZW50YXRpb24gV2ViU2Nyb2xsQW5pbWF0
aW9uSGVscGVyRGVsZWdhdGUKLQotLSAoaWQpaW5pdFdpdGhTY3JvbGxBbmltYXRvcjooTmFrZWRQ
dHI8V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM+KXNjcm9sbEFuaW1hdG9yCi17Ci0gICAgc2Vs
ZiA9IFtzdXBlciBpbml0XTsKLSAgICBpZiAoIXNlbGYpCi0gICAgICAgIHJldHVybiBuaWw7Ci0K
LSAgICBfYW5pbWF0b3IgPSBzY3JvbGxBbmltYXRvcjsKLSAgICByZXR1cm4gc2VsZjsKLX0KLQot
LSAodm9pZClpbnZhbGlkYXRlCi17Ci0gICAgX2FuaW1hdG9yID0gbnVsbHB0cjsKLX0KLQotLSAo
TlNSZWN0KWJvdW5kcwotewotICAgIGlmICghX2FuaW1hdG9yKQotICAgICAgICByZXR1cm4gTlNa
ZXJvUmVjdDsKLQotICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgY3VycmVudFBvc2l0aW9uID0gX2Fu
aW1hdG9yLT5jdXJyZW50UG9zaXRpb24oKTsKLSAgICByZXR1cm4gTlNNYWtlUmVjdChjdXJyZW50
UG9zaXRpb24ueCgpLCBjdXJyZW50UG9zaXRpb24ueSgpLCAwLCAwKTsKLX0KLQotLSAodm9pZClf
aW1tZWRpYXRlU2Nyb2xsVG9Qb2ludDooTlNQb2ludCluZXdQb3NpdGlvbgotewotICAgIGlmICgh
X2FuaW1hdG9yKQotICAgICAgICByZXR1cm47Ci0gICAgX2FuaW1hdG9yLT5pbW1lZGlhdGVTY3Jv
bGxUb1Bvc2l0aW9uRm9yU2Nyb2xsQW5pbWF0aW9uKG5ld1Bvc2l0aW9uKTsKLX0KLQotLSAoTlNQ
b2ludClfcGl4ZWxBbGlnblByb3Bvc2VkU2Nyb2xsUG9zaXRpb246KE5TUG9pbnQpbmV3T3JpZ2lu
Ci17Ci0gICAgcmV0dXJuIG5ld09yaWdpbjsKLX0KLQotLSAoTlNTaXplKWNvbnZlcnRTaXplVG9C
YXNlOihOU1NpemUpc2l6ZQotewotICAgIHJldHVybiBhYnMoc2l6ZSk7Ci19Ci0KLS0gKE5TU2l6
ZSljb252ZXJ0U2l6ZUZyb21CYXNlOihOU1NpemUpc2l6ZQotewotICAgIHJldHVybiBhYnMoc2l6
ZSk7Ci19Ci0KLS0gKE5TU2l6ZSljb252ZXJ0U2l6ZVRvQmFja2luZzooTlNTaXplKXNpemUKLXsK
LSAgICByZXR1cm4gYWJzKHNpemUpOwotfQotCi0tIChOU1NpemUpY29udmVydFNpemVGcm9tQmFj
a2luZzooTlNTaXplKXNpemUKLXsKLSAgICByZXR1cm4gYWJzKHNpemUpOwotfQotCi0tIChpZClz
dXBlcnZpZXcKLXsKLSAgICByZXR1cm4gbmlsOwotfQotCi0tIChpZClkb2N1bWVudFZpZXcKLXsK
LSAgICByZXR1cm4gbmlsOwotfQotCi0tIChpZCl3aW5kb3cKLXsKLSAgICByZXR1cm4gbmlsOwot
fQotCi0tICh2b2lkKV9yZWN1cnNpdmVSZWNvbXB1dGVUb29sVGlwcwotewotfQotCi1AZW5kCi0K
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RkOjp1bmlxdWVfcHRyPFNjcm9sbEFuaW1hdG9yPiBT
Y3JvbGxBbmltYXRvcjo6Y3JlYXRlKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSkKQEAg
LTE2MCwyMCArNDcsMjEgQEAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbEFuaW1hdG9yPiBTY3JvbGxB
bmltYXRvcjo6Y3JlYXRlKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmwKIFNjcm9sbEFuaW1hdG9y
TWFjOjpTY3JvbGxBbmltYXRvck1hYyhTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEpCiAg
ICAgOiBTY3JvbGxBbmltYXRvcihzY3JvbGxhYmxlQXJlYSkKIHsKLSAgICBtX3Njcm9sbEFuaW1h
dGlvbkhlbHBlckRlbGVnYXRlID0gYWRvcHROUyhbW1dlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRl
bGVnYXRlIGFsbG9jXSBpbml0V2l0aFNjcm9sbEFuaW1hdG9yOnRoaXNdKTsKLSAgICBtX3Njcm9s
bEFuaW1hdGlvbkhlbHBlciA9IGFkb3B0TlMoW1tOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xs
QW5pbWF0aW9uSGVscGVyIikgYWxsb2NdIGluaXRXaXRoRGVsZWdhdGU6bV9zY3JvbGxBbmltYXRp
b25IZWxwZXJEZWxlZ2F0ZS5nZXQoKV0pOwotCiB9CiAKIFNjcm9sbEFuaW1hdG9yTWFjOjp+U2Ny
b2xsQW5pbWF0b3JNYWMoKSA9IGRlZmF1bHQ7CiAKIHN0YXRpYyBib29sIHNjcm9sbEFuaW1hdGlv
bkVuYWJsZWRGb3JTeXN0ZW0oKQogewotICAgIE5TU3RyaW5nKiBzY3JvbGxBbmltYXRpb25EZWZh
dWx0c0tleSA9IEAiTlNTY3JvbGxBbmltYXRpb25FbmFibGVkIjsKLSAgICBzdGF0aWMgYm9vbCBl
bmFibGVkID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktl
eTpzY3JvbGxBbmltYXRpb25EZWZhdWx0c0tleV07CisgICAgc3RhdGljIGJvb2wgZW5hYmxlZCA9
IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6QCJOU1Nj
cm9sbEFuaW1hdGlvbkVuYWJsZWQiXTsKICAgICByZXR1cm4gZW5hYmxlZDsKIH0KIAorYm9vbCBT
Y3JvbGxBbmltYXRvck1hYzo6cGxhdGZvcm1BbGxvd3NTY3JvbGxBbmltYXRpb24oKSBjb25zdAor
eworICAgIHJldHVybiBzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lzdGVtKCk7Cit9CisKICNp
ZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiBzdGF0aWMgYm9vbCBydWJiZXJCYW5kaW5nRW5hYmxl
ZEZvclN5c3RlbSgpCiB7CkBAIC0xOTYsNTAgKzg0LDcgQEAgYm9vbCBTY3JvbGxBbmltYXRvck1h
Yzo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxh
cmkKIHsKICAgICBtX3Njcm9sbGFibGVBcmVhLnNjcm9sbGJhcnNDb250cm9sbGVyKCkuc2V0U2Ny
b2xsYmFyQW5pbWF0aW9uc1Vuc3VzcGVuZGVkQnlVc2VySW50ZXJhY3Rpb24odHJ1ZSk7CiAKLSAg
ICAvLyBUaGlzIG1ldGhvZCBkb2Vzbid0IGRvIGRpcmVjdGlvbmFsIHNuYXBwaW5nLCBidXQgb3Vy
IGJhc2UgY2xhc3MgZG9lcy4gSXQgd2lsbCBjYWxsIGludG8KLSAgICAvLyBTY3JvbGxBbmltYXRv
ck1hYzo6c2Nyb2xsIGFnYWluIHdpdGggdGhlIHNuYXBwZWQgcG9zaXRpb25zIGFuZCBTY3JvbGxC
ZWhhdmlvcjo6RGVmYXVsdC4KLSAgICBpZiAoYmVoYXZpb3IuY29udGFpbnMoU2Nyb2xsQmVoYXZp
b3I6OkRvRGlyZWN0aW9uYWxTbmFwcGluZykpCi0gICAgICAgIHJldHVybiBTY3JvbGxBbmltYXRv
cjo6c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllciwgYmVo
YXZpb3IpOwotCi0gICAgYm9vbCBzaG91bGRBbmltYXRlID0gc2Nyb2xsQW5pbWF0aW9uRW5hYmxl
ZEZvclN5c3RlbSgpICYmIG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkg
JiYgZ3JhbnVsYXJpdHkgIT0gU2Nyb2xsQnlQaXhlbAotICAgICAgICAmJiAhYmVoYXZpb3IuY29u
dGFpbnMoU2Nyb2xsQmVoYXZpb3I6Ok5ldmVyQW5pbWF0ZSk7Ci0gICAgRmxvYXRQb2ludCBuZXdQ
b3NpdGlvbiA9IHRoaXMtPmN1cnJlbnRQb3NpdGlvbigpICsgZGVsdGFGcm9tU3RlcChvcmllbnRh
dGlvbiwgc3RlcCwgbXVsdGlwbGllcik7Ci0gICAgbmV3UG9zaXRpb24gPSBuZXdQb3NpdGlvbi5j
b25zdHJhaW5lZEJldHdlZW4oc2Nyb2xsYWJsZUFyZWEoKS5taW5pbXVtU2Nyb2xsUG9zaXRpb24o
KSwgc2Nyb2xsYWJsZUFyZWEoKS5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSk7Ci0KLSAgICBMT0df
V0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbEFuaW1hdG9yTWFjOjpzY3Jv
bGwgZnJvbSAiIDw8IGN1cnJlbnRQb3NpdGlvbigpIDw8ICIgdG8gIiA8PCBuZXdQb3NpdGlvbik7
Ci0KLSAgICBpZiAoIXNob3VsZEFuaW1hdGUpCi0gICAgICAgIHJldHVybiBzY3JvbGxUb1Bvc2l0
aW9uV2l0aG91dEFuaW1hdGlvbihuZXdQb3NpdGlvbik7Ci0KLSAgICBpZiAoW21fc2Nyb2xsQW5p
bWF0aW9uSGVscGVyIF9pc0FuaW1hdGluZ10pIHsKLSAgICAgICAgTlNQb2ludCB0YXJnZXRPcmln
aW4gPSBbbV9zY3JvbGxBbmltYXRpb25IZWxwZXIgdGFyZ2V0T3JpZ2luXTsKLSAgICAgICAgaWYg
KG9yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxiYXIpCi0gICAgICAgICAgICBuZXdQb3Np
dGlvbi5zZXRZKHRhcmdldE9yaWdpbi55KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbmV3
UG9zaXRpb24uc2V0WCh0YXJnZXRPcmlnaW4ueCk7Ci0gICAgfQotCi0gICAgTE9HX1dJVEhfU1RS
RUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsICIgPDwg
IiBmcm9tICIgPDwgY3VycmVudFBvc2l0aW9uKCkgPDwgIiB0byAiIDw8IG5ld1Bvc2l0aW9uKTsK
LSAgICBbbV9zY3JvbGxBbmltYXRpb25IZWxwZXIgc2Nyb2xsVG9Qb2ludDpuZXdQb3NpdGlvbl07
Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbFRv
UG9zaXRpb25XaXRoQW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Bvc2l0aW9uKQotewot
ICAgIGJvb2wgcG9zaXRpb25DaGFuZ2VkID0gbmV3UG9zaXRpb24gIT0gY3VycmVudFBvc2l0aW9u
KCk7Ci0gICAgaWYgKCFwb3NpdGlvbkNoYW5nZWQgJiYgIXNjcm9sbGFibGVBcmVhKCkuc2Nyb2xs
T3JpZ2luQ2hhbmdlZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAvLyBGSVhNRTog
VGhpcyBpcyB1c2VkIHByaW1hcmlseSBieSBzbW9vdGggc2Nyb2xsaW5nLiBUaGlzIHNob3VsZCBp
ZGVhbGx5IHVzZSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbnMuCi0gICAgLy8gU2VlOiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU3Ci0gICAgW21fc2Nyb2xsQW5p
bWF0aW9uSGVscGVyIF9zdG9wUnVuXTsKLSAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3I6OnNjcm9s
bFRvUG9zaXRpb25XaXRoQW5pbWF0aW9uKG5ld1Bvc2l0aW9uKTsKLX0KLQotYm9vbCBTY3JvbGxB
bmltYXRvck1hYzo6c2Nyb2xsVG9Qb3NpdGlvbldpdGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQ
b2ludCYgcG9zaXRpb24sIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQotewotICAgIFttX3Njcm9s
bEFuaW1hdGlvbkhlbHBlciBfc3RvcFJ1bl07Ci0gICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpz
Y3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihwb3NpdGlvbiwgY2xhbXBpbmcpOworICAg
IHJldHVybiBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwg
c3RlcCwgbXVsdGlwbGllciwgYmVoYXZpb3IpOwogfQogCiBGbG9hdFBvaW50IFNjcm9sbEFuaW1h
dG9yTWFjOjphZGp1c3RTY3JvbGxQb3NpdGlvbklmTmVjZXNzYXJ5KGNvbnN0IEZsb2F0UG9pbnQm
IHBvc2l0aW9uKSBjb25zdApAQCAtMjgxLDEyICsxMjYsNiBAQCBib29sIFNjcm9sbEFuaW1hdG9y
TWFjOjppc1Njcm9sbFNuYXBJblByb2dyZXNzKCkgY29uc3QKICAgICByZXR1cm4gbV9zY3JvbGxD
b250cm9sbGVyLmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKTsKIH0KIAotdm9pZCBTY3JvbGxBbmlt
YXRvck1hYzo6aW1tZWRpYXRlU2Nyb2xsVG9Qb3NpdGlvbkZvclNjcm9sbEFuaW1hdGlvbihjb25z
dCBGbG9hdFBvaW50JiBuZXdQb3NpdGlvbikKLXsKLSAgICBBU1NFUlQobV9zY3JvbGxBbmltYXRp
b25IZWxwZXIpOwotICAgIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFu
aW1hdGlvbihuZXdQb3NpdGlvbik7Ci19Ci0KIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om5vdGlm
eVBvc2l0aW9uQ2hhbmdlZChjb25zdCBGbG9hdFNpemUmIGRlbHRhKQogewogICAgIG1fc2Nyb2xs
YWJsZUFyZWEuc2Nyb2xsYmFyc0NvbnRyb2xsZXIoKS5ub3RpZnlDb250ZW50QXJlYVNjcm9sbGVk
KGRlbHRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxi
YXJzQ29udHJvbGxlck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJh
cnNDb250cm9sbGVyTWFjLmgKaW5kZXggYzUyZTQ3ZGQyNmU3YjJlMTU5YzgzZTAyY2FhNDAxY2My
YzJmYWFiMC4uNDM3OTVlMTUyYzJjN2IxYTA4Nzg3ZDU2NjVjNTlkNmFkM2JlZjA5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhcnNDb250cm9sbGVyTWFj
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhcnNDb250cm9sbGVy
TWFjLmgKQEAgLTMzLDcgKzMzLDYgQEAKIAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAot
T0JKQ19DTEFTUyBXZWJTY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZTsKIE9CSkNfQ0xBU1Mg
V2ViU2Nyb2xsZXJJbXBQYWlyRGVsZWdhdGU7CiBPQkpDX0NMQVNTIFdlYlNjcm9sbGVySW1wRGVs
ZWdhdGU7CiAK
</data>
<flag name="review"
          id="461990"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438566</attachid>
            <date>2021-09-18 12:41:52 -0700</date>
            <delta_ts>2021-09-18 15:45:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230445-20210918124151.patch</filename>
            <type>text/plain</type>
            <size>15239</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZmMWQ4NjIzYTczZmNl
NWJkZDg1NmY3ZGIzOTEwOTZmNzZiYmFkNS4uYzhjMmIwNzM1M2NiNTkxM2U5ZTk5YzBjODM4Y2U3
ODViOGU1YTE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIxLTA5LTE4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB1c2Ug
b2YgTlNTY3JvbGxBbmltYXRpb25IZWxwZXIgZm9yIGFuaW1hdGVkIHNjcm9sbHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDQ0NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KKworICAgICAgICBOU1Njcm9sbEFuaW1hdGlv
bkhlbHBlciBwcm92aWRlZCBsaXR0bGUgdXRpbGl0eS4gVW5kZXIgdGhlIGhvb2QgaXQncyB1c3Qg
YW4gZWFzZS1pbi1vdXQKKyAgICAgICAgYW5pbWF0aW9uIHdpdGggYSBkdXJhdGlvbiBiYXNlZCBv
biBkaXN0YW5jZSwgYW5kIHRoYXQncyBleGFjdGx5IHdoYXQgU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
CisgICAgICAgIGlzIG5vdywgc28gd2UgY2FuIHJlbW92ZSB1c2Ugb2YgTlNTY3JvbGxBbmltYXRp
b25IZWxwZXIgaW4gU2Nyb2xsQW5pbWF0b3JNYWMgYW5kIGp1c3QKKyAgICAgICAgdXNlIHRoZSBT
Y3JvbGxBbmltYXRpb25TbW9vdGggZnJvbSB0aGUgYmFzZSBjbGFzcy4KKworICAgICAgICBUaGlz
IHVuaWZpZXMgdGhlIHNjcm9sbCBhbmltYXRpb24gdXNlZCBmb3Iga2V5Ym9hcmQgc2Nyb2xsaW5n
IGFuZCBDU1Mgc21vb3RoIHNjcm9sbGluZy4KKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGwpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvUG9zaXRpb25XaXRob3V0
QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzZXRDdXJyZW50
UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbEFuaW1h
dGlvbkRpZFVwZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpwbGF0Zm9ybUFsbG93c1Njcm9sbEFuaW1h
dGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OlNjcm9sbEFuaW1hdG9yTWFjKToKKyAgICAgICAg
KFdlYkNvcmU6OnNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JTeXN0ZW0pOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnBsYXRmb3JtQWxsb3dzU2Nyb2xsQW5pbWF0aW9uIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwpOgorICAg
ICAgICAoYWJzKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2ViU2Nyb2xsQW5pbWF0aW9uSGVscGVy
RGVsZWdhdGUgaW5pdFdpdGhTY3JvbGxBbmltYXRvcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
V2ViU2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgaW52YWxpZGF0ZV0pOiBEZWxldGVkLgor
ICAgICAgICAoLVtXZWJTY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZSBib3VuZHNdKTogRGVs
ZXRlZC4KKyAgICAgICAgKC1bV2ViU2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgX2ltbWVk
aWF0ZVNjcm9sbFRvUG9pbnQ6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dlYlNjcm9sbEFuaW1h
dGlvbkhlbHBlckRlbGVnYXRlIF9waXhlbEFsaWduUHJvcG9zZWRTY3JvbGxQb3NpdGlvbjpdKTog
RGVsZXRlZC4KKyAgICAgICAgKC1bV2ViU2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgY29u
dmVydFNpemVUb0Jhc2U6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dlYlNjcm9sbEFuaW1hdGlv
bkhlbHBlckRlbGVnYXRlIGNvbnZlcnRTaXplRnJvbUJhc2U6XSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlIGNvbnZlcnRTaXplVG9CYWNraW5n
Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXZWJTY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0
ZSBjb252ZXJ0U2l6ZUZyb21CYWNraW5nOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXZWJTY3Jv
bGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZSBzdXBlcnZpZXddKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bV2ViU2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgZG9jdW1lbnRWaWV3XSk6IERlbGV0
ZWQuCisgICAgICAgICgtW1dlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlIHdpbmRvd10p
OiBEZWxldGVkLgorICAgICAgICAoLVtXZWJTY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZSBf
cmVjdXJzaXZlUmVjb21wdXRlVG9vbFRpcHNdKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsVG9Qb3NpdGlv
bldpdGhvdXRBbmltYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3JNYWM6OmltbWVkaWF0ZVNjcm9sbFRvUG9zaXRpb25Gb3JTY3JvbGxBbmltYXRpb24pOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJzQ29udHJvbGxlck1hYy5o
OgorCiAyMDIxLTA5LTE4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbmFtZSBoYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkKCkgYW5kIHB1c2ggdGhl
IHN0YXRlIHRvIFNjcm9sbGJhcnNDb250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxBbmltYXRvci5jcHAKaW5kZXggYzBkMmI4ZTQ4YTZhNTAzNDU2YzIxMjAzZDYyYjA3NzQ1
YzZjYjliYy4uMDNmYzRhYWVlNzMxMTA3MDJlYzdlZTkyYjVjY2VlYjVmY2I3Y2VjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtNzEsNyArNzEsNyBA
QCBib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50
YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5CiAgICAgaWYgKGJlaGF2aW9yLmNvbnRhaW5zKFNjcm9s
bEJlaGF2aW9yOjpEb0RpcmVjdGlvbmFsU25hcHBpbmcpKSB7CiAgICAgICAgIGJlaGF2aW9yLnJl
bW92ZShTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5nKTsKICAgICAgICAgaWYg
KCFtX3Njcm9sbENvbnRyb2xsZXIudXNlc1Njcm9sbFNuYXAoKSkKLSAgICAgICAgICAgIHJldHVy
biBzY3JvbGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyLCBiZWhh
dmlvcik7CisgICAgICAgICAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChvcmllbnRh
dGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIsIGJlaGF2aW9yKTsKIAogICAgICAg
ICBhdXRvIGN1cnJlbnRPZmZzZXQgPSBvZmZzZXRGcm9tUG9zaXRpb24oY3VycmVudFBvc2l0aW9u
KCkpOwogICAgICAgICBhdXRvIG5ld09mZnNldCA9IGN1cnJlbnRPZmZzZXQgKyBkZWx0YTsKQEAg
LTg3LDcgKzg3LDcgQEAgYm9vbCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKFNjcm9sbGJhck9yaWVu
dGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eQogICAgIH0KIAogI2lmIEVOQUJM
RShTTU9PVEhfU0NST0xMSU5HKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAobV9z
Y3JvbGxhYmxlQXJlYS5zY3JvbGxBbmltYXRvckVuYWJsZWQoKSAmJiAhYmVoYXZpb3IuY29udGFp
bnMoU2Nyb2xsQmVoYXZpb3I6Ok5ldmVyQW5pbWF0ZSkpCisgICAgaWYgKG1fc2Nyb2xsYWJsZUFy
ZWEuc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkgJiYgcGxhdGZvcm1BbGxvd3NTY3JvbGxBbmltYXRp
b24oKSAmJiAhYmVoYXZpb3IuY29udGFpbnMoU2Nyb2xsQmVoYXZpb3I6Ok5ldmVyQW5pbWF0ZSkp
CiAgICAgICAgIHJldHVybiBtX3Njcm9sbEFuaW1hdGlvbi0+c3RhcnRBbmltYXRlZFNjcm9sbChv
cmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIG1fY3VycmVudFBvc2l0aW9uLCBzdGVwLCBtdWx0aXBs
aWVyKTsKICNlbmRpZgogCkBAIC0xMDUsNiArMTA1LDcgQEAgYm9vbCBTY3JvbGxBbmltYXRvcjo6
c2Nyb2xsVG9Qb3NpdGlvbldpdGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRp
b24KICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgbV9zY3JvbGxBbmltYXRpb24tPnN0b3Ao
KTsKKwogICAgIG1fY3VycmVudFBvc2l0aW9uID0gYWRqdXN0ZWRQb3NpdGlvbjsKICAgICBub3Rp
ZnlQb3NpdGlvbkNoYW5nZWQoYWRqdXN0ZWRQb3NpdGlvbiAtIGN1cnJlbnRQb3NpdGlvbik7CiAg
ICAgdXBkYXRlQWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yT2Zmc2V0KCk7CkBAIC0yMzgsNiArMjM5
LDggQEAgYm9vbCBTY3JvbGxBbmltYXRvcjo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBQbGF0Zm9y
bVRvdWNoRXZlbnQmKQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yOjpzZXRDdXJyZW50UG9zaXRpb24o
Y29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24pCiB7CisgICAgV1RGTG9nQWx3YXlzKCJzZXRDdXJy
ZW50UG9zaXRpb24gdG8gJS4yZiIsIHBvc2l0aW9uLnkoKSk7CisKICAgICBtX2N1cnJlbnRQb3Np
dGlvbiA9IHBvc2l0aW9uOwogICAgIHVwZGF0ZUFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvck9mZnNl
dCgpOwogfQpAQCAtMzgzLDYgKzM4Niw3IEBAIGZsb2F0IFNjcm9sbEFuaW1hdG9yOjphZGp1c3RT
Y3JvbGxPZmZzZXRGb3JTbmFwcGluZ0lmTmVlZGVkKFNjcm9sbEV2ZW50QXhpcyBheGlzCiB2b2lk
IFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxBbmltYXRpb25EaWRVcGRhdGUoU2Nyb2xsQW5pbWF0aW9u
JiwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24pCiB7CiAgICAgRmxvYXRTaXplIGRlbHRhID0g
cG9zaXRpb24gLSBtX2N1cnJlbnRQb3NpdGlvbjsKKyAgICBXVEZMb2dBbHdheXMoInNjcm9sbEFu
aW1hdGlvbkRpZFVwZGF0ZSB0byAlLjJmIiwgcG9zaXRpb24ueSgpKTsKICAgICBtX2N1cnJlbnRQ
b3NpdGlvbiA9IHBvc2l0aW9uOwogICAgIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZChkZWx0YSk7CiAg
ICAgdXBkYXRlQWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yT2Zmc2V0KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAppbmRleCAyYmY1ZWUzMjBhMWViZWE3ZWFiMzYyODM0
NTIxMmJlNzhhZTdiMWZkLi40YTEyNTlhZjY5YzczOTc4N2Y4Yzk0YzRmMDAyZTdhNTczNDI3ZWMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTE0MSw2ICsx
NDEsOCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UG9z
aXRpb25DaGFuZ2VkKGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEpOworICAgIHZpcnR1YWwgYm9vbCBw
bGF0Zm9ybUFsbG93c1Njcm9sbEFuaW1hdGlvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKwog
ICAgIHZvaWQgdXBkYXRlQWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yT2Zmc2V0KCk7CiAKICAgICBG
bG9hdFBvaW50IG9mZnNldEZyb21Qb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCmlu
ZGV4IGE5N2M5YWMzZWMyZTYzZjJmNGUyOTViMDc2OGEzOTRiYzM5OTA5ZTEuLjMwZjE4NjExMzll
OTM4ZGUzNWQ0YzZhNTA2YzllNjkyMTZjN2Q5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCkBAIC0zMyw4ICszMyw2IEBACiAjaW5jbHVk
ZSAiU2Nyb2xsQW5pbWF0b3IuaCIKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKLU9CSkNf
Q0xBU1MgV2ViU2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGU7Ci0KIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgU2Nyb2xsYmFyOwpAQCAtNDQsMTggKzQyLDE2IEBAIHB1YmxpYzoKICAg
ICBTY3JvbGxBbmltYXRvck1hYyhTY3JvbGxhYmxlQXJlYSYpOwogICAgIHZpcnR1YWwgflNjcm9s
bEFuaW1hdG9yTWFjKCk7CiAKLSAgICB2b2lkIGltbWVkaWF0ZVNjcm9sbFRvUG9zaXRpb25Gb3JT
Y3JvbGxBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgbmV3UG9zaXRpb24pOwotCiBwcml2YXRl
OgogICAgIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0
eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgT3B0aW9uU2V0PFNjcm9sbEJlaGF2aW9y
PikgZmluYWw7Ci0gICAgYm9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbihjb25zdCBG
bG9hdFBvaW50JikgZmluYWw7Ci0gICAgYm9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1h
dGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxD
bGFtcGluZzo6Q2xhbXBlZCkgZmluYWw7CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAg
ICAgYm9vbCBzaG91bGRGb3J3YXJkV2hlZWxFdmVudHNUb1BhcmVudChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmKSBjb25zdDsKICAgICBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JikgZmluYWw7CiAjZW5kaWYKIAorICAgIGJvb2wgcGxhdGZvcm1BbGxvd3NT
Y3JvbGxBbmltYXRpb24oKSBjb25zdDsKKwogICAgIHZvaWQgaGFuZGxlV2hlZWxFdmVudFBoYXNl
KFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSBmaW5hbDsKICAgICAKICAgICB2b2lkIG5vdGlmeVBv
c2l0aW9uQ2hhbmdlZChjb25zdCBGbG9hdFNpemUmIGRlbHRhKSBmaW5hbDsKQEAgLTgyLDkgKzc4
LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGltbWVkaWF0ZVNjcm9sbEJ5KGNvbnN0IEZsb2F0U2l6
ZSYpIGZpbmFsOwogICAgIHZvaWQgYWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVjZXNz
YXJ5KCkgZmluYWw7CiAjZW5kaWYKLQotICAgIFJldGFpblB0cjxpZD4gbV9zY3JvbGxBbmltYXRp
b25IZWxwZXI7Ci0gICAgUmV0YWluUHRyPFdlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRl
PiBtX3Njcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFu
aW1hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9y
TWFjLm1tCmluZGV4IGMwYWZjNDhmMWU5NzQ1ODk1OTZmZDBmZGZiODQ2YWYyZGRlNDg0OTEuLmNk
MzVjODI3OGVkZWFmYzVjNTQyM2FkM2NhM2NjYWY1NDE1NGI3MGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KQEAgLTM1LDEyMSArMzUs
OCBAQAogI2ltcG9ydCAiU2Nyb2xsVmlldy5oIgogI2ltcG9ydCAiU2Nyb2xsYWJsZUFyZWEuaCIK
ICNpbXBvcnQgIlNjcm9sbGJhcnNDb250cm9sbGVyLmgiCi0jaW1wb3J0IDx3dGYvQmxvY2tPYmpD
RXhjZXB0aW9ucy5oPgotI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAjaW1wb3J0IDx3dGYvdGV4
dC9UZXh0U3RyZWFtLmg+CiAKLXVzaW5nIFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOwotdXNpbmcg
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM7Ci11c2luZyBXZWJDb3JlOjpTY3JvbGxiYXI7Ci11
c2luZyBXZWJDb3JlOjpHcmFwaGljc0xheWVyOwotdXNpbmcgV2ViQ29yZTo6VmVydGljYWxTY3Jv
bGxiYXI7Ci11c2luZyBXZWJDb3JlOjpJbnRSZWN0OwotCi1AaW50ZXJmYWNlIE5TT2JqZWN0IChT
Y3JvbGxBbmltYXRpb25IZWxwZXJEZXRhaWxzKQotLSAoaWQpaW5pdFdpdGhEZWxlZ2F0ZTooaWQp
ZGVsZWdhdGU7Ci0tICh2b2lkKV9zdG9wUnVuOwotLSAoQk9PTClfaXNBbmltYXRpbmc7Ci0tIChO
U1BvaW50KXRhcmdldE9yaWdpbjsKLS0gKENHRmxvYXQpX3Byb2dyZXNzOwotQGVuZAotCi1AaW50
ZXJmYWNlIFdlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlIDogTlNPYmplY3QKLXsKLSAg
ICBOYWtlZFB0cjxXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYz4gX2FuaW1hdG9yOwotfQotLSAo
aWQpaW5pdFdpdGhTY3JvbGxBbmltYXRvcjooTmFrZWRQdHI8V2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3JNYWM+KXNjcm9sbEFuaW1hdG9yOwotQGVuZAotCi1zdGF0aWMgTlNTaXplIGFicyhOU1NpemUg
c2l6ZSkKLXsKLSAgICBOU1NpemUgZmluYWxTaXplID0gc2l6ZTsKLSAgICBpZiAoZmluYWxTaXpl
LndpZHRoIDwgMCkKLSAgICAgICAgZmluYWxTaXplLndpZHRoID0gLWZpbmFsU2l6ZS53aWR0aDsK
LSAgICBpZiAoZmluYWxTaXplLmhlaWdodCA8IDApCi0gICAgICAgIGZpbmFsU2l6ZS5oZWlnaHQg
PSAtZmluYWxTaXplLmhlaWdodDsKLSAgICByZXR1cm4gZmluYWxTaXplOyAgICAKLX0KLQotQGlt
cGxlbWVudGF0aW9uIFdlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlCi0KLS0gKGlkKWlu
aXRXaXRoU2Nyb2xsQW5pbWF0b3I6KE5ha2VkUHRyPFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFj
PilzY3JvbGxBbmltYXRvcgotewotICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07Ci0gICAgaWYgKCFz
ZWxmKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgX2FuaW1hdG9yID0gc2Nyb2xsQW5pbWF0
b3I7Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLS0gKHZvaWQpaW52YWxpZGF0ZQotewotICAgIF9h
bmltYXRvciA9IG51bGxwdHI7Ci19Ci0KLS0gKE5TUmVjdClib3VuZHMKLXsKLSAgICBpZiAoIV9h
bmltYXRvcikKLSAgICAgICAgcmV0dXJuIE5TWmVyb1JlY3Q7Ci0KLSAgICBXZWJDb3JlOjpGbG9h
dFBvaW50IGN1cnJlbnRQb3NpdGlvbiA9IF9hbmltYXRvci0+Y3VycmVudFBvc2l0aW9uKCk7Ci0g
ICAgcmV0dXJuIE5TTWFrZVJlY3QoY3VycmVudFBvc2l0aW9uLngoKSwgY3VycmVudFBvc2l0aW9u
LnkoKSwgMCwgMCk7Ci19Ci0KLS0gKHZvaWQpX2ltbWVkaWF0ZVNjcm9sbFRvUG9pbnQ6KE5TUG9p
bnQpbmV3UG9zaXRpb24KLXsKLSAgICBpZiAoIV9hbmltYXRvcikKLSAgICAgICAgcmV0dXJuOwot
ICAgIF9hbmltYXRvci0+aW1tZWRpYXRlU2Nyb2xsVG9Qb3NpdGlvbkZvclNjcm9sbEFuaW1hdGlv
bihuZXdQb3NpdGlvbik7Ci19Ci0KLS0gKE5TUG9pbnQpX3BpeGVsQWxpZ25Qcm9wb3NlZFNjcm9s
bFBvc2l0aW9uOihOU1BvaW50KW5ld09yaWdpbgotewotICAgIHJldHVybiBuZXdPcmlnaW47Ci19
Ci0KLS0gKE5TU2l6ZSljb252ZXJ0U2l6ZVRvQmFzZTooTlNTaXplKXNpemUKLXsKLSAgICByZXR1
cm4gYWJzKHNpemUpOwotfQotCi0tIChOU1NpemUpY29udmVydFNpemVGcm9tQmFzZTooTlNTaXpl
KXNpemUKLXsKLSAgICByZXR1cm4gYWJzKHNpemUpOwotfQotCi0tIChOU1NpemUpY29udmVydFNp
emVUb0JhY2tpbmc6KE5TU2l6ZSlzaXplCi17Ci0gICAgcmV0dXJuIGFicyhzaXplKTsKLX0KLQot
LSAoTlNTaXplKWNvbnZlcnRTaXplRnJvbUJhY2tpbmc6KE5TU2l6ZSlzaXplCi17Ci0gICAgcmV0
dXJuIGFicyhzaXplKTsKLX0KLQotLSAoaWQpc3VwZXJ2aWV3Ci17Ci0gICAgcmV0dXJuIG5pbDsK
LX0KLQotLSAoaWQpZG9jdW1lbnRWaWV3Ci17Ci0gICAgcmV0dXJuIG5pbDsKLX0KLQotLSAoaWQp
d2luZG93Ci17Ci0gICAgcmV0dXJuIG5pbDsKLX0KLQotLSAodm9pZClfcmVjdXJzaXZlUmVjb21w
dXRlVG9vbFRpcHMKLXsKLX0KLQotQGVuZAotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0ZDo6
dW5pcXVlX3B0cjxTY3JvbGxBbmltYXRvcj4gU2Nyb2xsQW5pbWF0b3I6OmNyZWF0ZShTY3JvbGxh
YmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEpCkBAIC0xNjAsMTcgKzQ3LDEzIEBAIHN0ZDo6dW5pcXVl
X3B0cjxTY3JvbGxBbmltYXRvcj4gU2Nyb2xsQW5pbWF0b3I6OmNyZWF0ZShTY3JvbGxhYmxlQXJl
YSYgc2Nyb2xsYWJsCiBTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMoU2Nyb2xs
YWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhKQogICAgIDogU2Nyb2xsQW5pbWF0b3Ioc2Nyb2xsYWJs
ZUFyZWEpCiB7Ci0gICAgbV9zY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tXZWJTY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhTY3JvbGxB
bmltYXRvcjp0aGlzXSk7Ci0gICAgbV9zY3JvbGxBbmltYXRpb25IZWxwZXIgPSBhZG9wdE5TKFtb
TlNDbGFzc0Zyb21TdHJpbmcoQCJOU1Njcm9sbEFuaW1hdGlvbkhlbHBlciIpIGFsbG9jXSBpbml0
V2l0aERlbGVnYXRlOm1fc2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUuZ2V0KCldKTsKLQog
fQogCiBTY3JvbGxBbmltYXRvck1hYzo6flNjcm9sbEFuaW1hdG9yTWFjKCkgPSBkZWZhdWx0Owog
Ci1zdGF0aWMgYm9vbCBzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lzdGVtKCkKK2Jvb2wgU2Ny
b2xsQW5pbWF0b3JNYWM6OnBsYXRmb3JtQWxsb3dzU2Nyb2xsQW5pbWF0aW9uKCkgY29uc3QKIHsK
LSAgICBOU1N0cmluZyogc2Nyb2xsQW5pbWF0aW9uRGVmYXVsdHNLZXkgPSBAIk5TU2Nyb2xsQW5p
bWF0aW9uRW5hYmxlZCI7Ci0gICAgc3RhdGljIGJvb2wgZW5hYmxlZCA9IFtbTlNVc2VyRGVmYXVs
dHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6c2Nyb2xsQW5pbWF0aW9uRGVmYXVs
dHNLZXldOworICAgIHN0YXRpYyBib29sIGVuYWJsZWQgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5k
YXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OkAiTlNTY3JvbGxBbmltYXRpb25FbmFibGVkIl07
CiAgICAgcmV0dXJuIGVuYWJsZWQ7CiB9CiAKQEAgLTE5Niw1MCArNzksNyBAQCBib29sIFNjcm9s
bEFuaW1hdG9yTWFjOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNj
cm9sbEdyYW51bGFyaQogewogICAgIG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsYmFyc0NvbnRyb2xs
ZXIoKS5zZXRTY3JvbGxiYXJBbmltYXRpb25zVW5zdXNwZW5kZWRCeVVzZXJJbnRlcmFjdGlvbih0
cnVlKTsKIAotICAgIC8vIFRoaXMgbWV0aG9kIGRvZXNuJ3QgZG8gZGlyZWN0aW9uYWwgc25hcHBp
bmcsIGJ1dCBvdXIgYmFzZSBjbGFzcyBkb2VzLiBJdCB3aWxsIGNhbGwgaW50bwotICAgIC8vIFNj
cm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwgYWdhaW4gd2l0aCB0aGUgc25hcHBlZCBwb3NpdGlvbnMg
YW5kIFNjcm9sbEJlaGF2aW9yOjpEZWZhdWx0LgotICAgIGlmIChiZWhhdmlvci5jb250YWlucyhT
Y3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5nKSkKLSAgICAgICAgcmV0dXJuIFNj
cm9sbEFuaW1hdG9yOjpzY3JvbGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0
aXBsaWVyLCBiZWhhdmlvcik7Ci0KLSAgICBib29sIHNob3VsZEFuaW1hdGUgPSBzY3JvbGxBbmlt
YXRpb25FbmFibGVkRm9yU3lzdGVtKCkgJiYgbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxBbmltYXRv
ckVuYWJsZWQoKSAmJiBncmFudWxhcml0eSAhPSBTY3JvbGxCeVBpeGVsCi0gICAgICAgICYmICFi
ZWhhdmlvci5jb250YWlucyhTY3JvbGxCZWhhdmlvcjo6TmV2ZXJBbmltYXRlKTsKLSAgICBGbG9h
dFBvaW50IG5ld1Bvc2l0aW9uID0gdGhpcy0+Y3VycmVudFBvc2l0aW9uKCkgKyBkZWx0YUZyb21T
dGVwKG9yaWVudGF0aW9uLCBzdGVwLCBtdWx0aXBsaWVyKTsKLSAgICBuZXdQb3NpdGlvbiA9IG5l
d1Bvc2l0aW9uLmNvbnN0cmFpbmVkQmV0d2VlbihzY3JvbGxhYmxlQXJlYSgpLm1pbmltdW1TY3Jv
bGxQb3NpdGlvbigpLCBzY3JvbGxhYmxlQXJlYSgpLm1heGltdW1TY3JvbGxQb3NpdGlvbigpKTsK
LQotICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsQW5pbWF0
b3JNYWM6OnNjcm9sbCBmcm9tICIgPDwgY3VycmVudFBvc2l0aW9uKCkgPDwgIiB0byAiIDw8IG5l
d1Bvc2l0aW9uKTsKLQotICAgIGlmICghc2hvdWxkQW5pbWF0ZSkKLSAgICAgICAgcmV0dXJuIHNj
cm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9uKG5ld1Bvc2l0aW9uKTsKLQotICAgIGlmIChb
bV9zY3JvbGxBbmltYXRpb25IZWxwZXIgX2lzQW5pbWF0aW5nXSkgewotICAgICAgICBOU1BvaW50
IHRhcmdldE9yaWdpbiA9IFttX3Njcm9sbEFuaW1hdGlvbkhlbHBlciB0YXJnZXRPcmlnaW5dOwot
ICAgICAgICBpZiAob3JpZW50YXRpb24gPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikKLSAgICAgICAg
ICAgIG5ld1Bvc2l0aW9uLnNldFkodGFyZ2V0T3JpZ2luLnkpOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBuZXdQb3NpdGlvbi5zZXRYKHRhcmdldE9yaWdpbi54KTsKLSAgICB9Ci0KLSAgICBM
T0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbEFuaW1hdG9yTWFjOjpz
Y3JvbGwgIiA8PCAiIGZyb20gIiA8PCBjdXJyZW50UG9zaXRpb24oKSA8PCAiIHRvICIgPDwgbmV3
UG9zaXRpb24pOwotICAgIFttX3Njcm9sbEFuaW1hdGlvbkhlbHBlciBzY3JvbGxUb1BvaW50Om5l
d1Bvc2l0aW9uXTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBTY3JvbGxBbmltYXRvck1h
Yzo6c2Nyb2xsVG9Qb3NpdGlvbldpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgbmV3UG9z
aXRpb24pCi17Ci0gICAgYm9vbCBwb3NpdGlvbkNoYW5nZWQgPSBuZXdQb3NpdGlvbiAhPSBjdXJy
ZW50UG9zaXRpb24oKTsKLSAgICBpZiAoIXBvc2l0aW9uQ2hhbmdlZCAmJiAhc2Nyb2xsYWJsZUFy
ZWEoKS5zY3JvbGxPcmlnaW5DaGFuZ2VkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IC8vIEZJWE1FOiBUaGlzIGlzIHVzZWQgcHJpbWFyaWx5IGJ5IHNtb290aCBzY3JvbGxpbmcuIFRo
aXMgc2hvdWxkIGlkZWFsbHkgdXNlIG5hdGl2ZSBzY3JvbGwgYW5pbWF0aW9ucy4KLSAgICAvLyBT
ZWU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NTcKLSAgICBb
bV9zY3JvbGxBbmltYXRpb25IZWxwZXIgX3N0b3BSdW5dOwotICAgIHJldHVybiBTY3JvbGxBbmlt
YXRvcjo6c2Nyb2xsVG9Qb3NpdGlvbldpdGhBbmltYXRpb24obmV3UG9zaXRpb24pOwotfQotCi1i
b29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihj
b25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCi17Ci0g
ICAgW21fc2Nyb2xsQW5pbWF0aW9uSGVscGVyIF9zdG9wUnVuXTsKLSAgICByZXR1cm4gU2Nyb2xs
QW5pbWF0b3I6OnNjcm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9uKHBvc2l0aW9uLCBjbGFt
cGluZyk7CisgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwob3JpZW50YXRpb24sIGdy
YW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyLCBiZWhhdmlvcik7CiB9CiAKIEZsb2F0UG9pbnQg
U2Nyb2xsQW5pbWF0b3JNYWM6OmFkanVzdFNjcm9sbFBvc2l0aW9uSWZOZWNlc3NhcnkoY29uc3Qg
RmxvYXRQb2ludCYgcG9zaXRpb24pIGNvbnN0CkBAIC0yODEsMTIgKzEyMSw2IEBAIGJvb2wgU2Ny
b2xsQW5pbWF0b3JNYWM6OmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKSBjb25zdAogICAgIHJldHVy
biBtX3Njcm9sbENvbnRyb2xsZXIuaXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpOwogfQogCi12b2lk
IFNjcm9sbEFuaW1hdG9yTWFjOjppbW1lZGlhdGVTY3JvbGxUb1Bvc2l0aW9uRm9yU2Nyb2xsQW5p
bWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Bvc2l0aW9uKQotewotICAgIEFTU0VSVChtX3Nj
cm9sbEFuaW1hdGlvbkhlbHBlcik7Ci0gICAgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvUG9zaXRp
b25XaXRob3V0QW5pbWF0aW9uKG5ld1Bvc2l0aW9uKTsKLX0KLQogdm9pZCBTY3JvbGxBbmltYXRv
ck1hYzo6bm90aWZ5UG9zaXRpb25DaGFuZ2VkKGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEpCiB7CiAg
ICAgbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxiYXJzQ29udHJvbGxlcigpLm5vdGlmeUNvbnRlbnRB
cmVhU2Nyb2xsZWQoZGVsdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbGJhcnNDb250cm9sbGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsYmFyc0NvbnRyb2xsZXJNYWMuaAppbmRleCBjNTJlNDdkZDI2ZTdiMmUxNTljODNl
MDJjYWE0MDFjYzJjMmZhYWIwLi40Mzc5NWUxNTJjMmM3YjFhMDg3ODdkNTY2NWM1OWQ2YWQzYmVm
MDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyc0Nv
bnRyb2xsZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFy
c0NvbnRyb2xsZXJNYWMuaApAQCAtMzMsNyArMzMsNiBAQAogCiAjaW5jbHVkZSA8d3RmL1JldGFp
blB0ci5oPgogCi1PQkpDX0NMQVNTIFdlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlOwog
T0JKQ19DTEFTUyBXZWJTY3JvbGxlckltcFBhaXJEZWxlZ2F0ZTsKIE9CSkNfQ0xBU1MgV2ViU2Ny
b2xsZXJJbXBEZWxlZ2F0ZTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>