<?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>199718</bug_id>
          
          <creation_ts>2019-07-11 12:41:03 -0700</creation_ts>
          <short_desc>[Text autosizing] Do not nuke the style on dynamicViewportSizeUpdate</short_desc>
          <delta_ts>2019-07-20 06:47:20 -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>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1552154</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-07-11 12:41:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/51900666&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1552157</commentid>
    <comment_count>1</comment_count>
      <attachid>373938</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-07-11 12:43:37 -0700</bug_when>
    <thetext>Created attachment 373938
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554315</commentid>
    <comment_count>2</comment_count>
      <attachid>374495</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-07-19 14:24:27 -0700</bug_when>
    <thetext>Created attachment 374495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554339</commentid>
    <comment_count>3</comment_count>
      <attachid>374501</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-07-19 15:07:44 -0700</bug_when>
    <thetext>Created attachment 374501
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554374</commentid>
    <comment_count>4</comment_count>
      <attachid>374501</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-07-19 15:43:16 -0700</bug_when>
    <thetext>Comment on attachment 374501
Patch

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

&gt; Source/WebCore/page/Page.cpp:3014
&gt; +void Page::invalidateTextAutoSizeInAllFrames()

recomputeTextAutoSizingInAllFrames

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:3362
&gt; +    const Seconds defaultTextAutoSizingDelayOnViewportChange = 80_ms;
&gt; +    auto textAutoSizingDelayOnViewportChange = defaultTextAutoSizingDelayOnViewportChange;
&gt; +    if (willBeVisuallyNonEmptySoon) {
&gt; +        // Be a bit more agressive on the first display.
&gt; +        const Seconds shortTextAutoSizingDelayOnViewportChange = 20_ms;
&gt; +        textAutoSizingDelayOnViewportChange = shortTextAutoSizingDelayOnViewportChange;
&gt; +    } else if (!isVisaullyNonEmpty) {
&gt; +        // We don&apos;t anticipate any paining after the next upcoming layout.
&gt; +        const Seconds longTextAutoSizingDelayOnViewportChange = 100_ms;
&gt; +        textAutoSizingDelayOnViewportChange = longTextAutoSizingDelayOnViewportChange;
&gt; +
&gt; +    }

Maybe wrap in a lambda</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554487</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-07-20 05:48:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/53344961&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554488</commentid>
    <comment_count>6</comment_count>
      <attachid>374547</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-07-20 05:52:19 -0700</bug_when>
    <thetext>Created attachment 374547
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554500</commentid>
    <comment_count>7</comment_count>
      <attachid>374547</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-20 06:47:19 -0700</bug_when>
    <thetext>Comment on attachment 374547
Patch

Clearing flags on attachment: 374547

Committed r247667: &lt;https://trac.webkit.org/changeset/247667&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554501</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-20 06:47:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373938</attachid>
            <date>2019-07-11 12:43:37 -0700</date>
            <delta_ts>2019-07-19 14:24:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199718-20190711124336.patch</filename>
            <type>text/plain</type>
            <size>14555</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3MjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjg4Yzg3NWNjNDc4MGNj
NjFjYzgyMTAzMGVlMGEzMWEwNDY1OTU4Mi4uZmQ0M2FlY2IwMzM4NDA0Zjk2ZTZkMzdiZWY3M2Ew
ZmQ2MjIwZDlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTA3LTExICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1RleHQgYXV0b3NpemluZ10g
RG8gbm90IG51a2UgdGhlIHN0eWxlIG9uIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTcxOAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTE5MDA2NjY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV0lQIHBhdGNoLgorCisgICAgICAgICogY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVy
U3R5bGVGb3JUZXh0QXV0b3NpemluZyk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoK
KyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aW52YWxp
ZGF0ZVRleHRBdXRvU2l6ZUluQWxsRnJhbWVzKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKwog
MjAxOS0wNy0xMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIENh
bm5vdCBicmluZyB1cCBjdXN0b20gbWVkaWEgY29udHJvbHMgYXQgYWxsIG9uIHYueW91a3UuY29t
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDllOWNhYzg0NDNmYWM4OGE0MzFhMTJlZjgzYWI2NGFmMTY4Y2ZkOTMuLjg4
NDljY2YxYTc1MDBlN2IwODI3OGZmYzc2ZjgxNGViYmJmMWVkZmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjMgQEAKKzIwMTktMDctMTEgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbVGV4dCBhdXRvc2l6aW5nXSBEbyBub3QgbnVrZSB0aGUgc3R5bGUgb24gZHluYW1p
Y1ZpZXdwb3J0U2l6ZVVwZGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk5NzE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTkwMDY2Nj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXSVAgcGF0Y2gu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Om1fdGV4dEF1dG9TaXppbmdBZGp1c3RtZW50VGltZXIpOgorICAgICAgICAoV2ViS2l0
OjptX3Nocmlua1RvRml0Q29udGVudFRpbWVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dGV4dEF1dG9TaXppbmdB
ZGp1c3RtZW50VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlc2V0SWRl
bXBvdGVudFRleHRBdXRvc2l6aW5nSWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpyZXNldFRleHRBdXRvc2l6aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dmlld3Bv
cnRDb25maWd1cmF0aW9uQ2hhbmdlZCk6CisKIDIwMTktMDctMTAgIFphbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBDYW5ub3QgYnJpbmcgdXAgY3VzdG9tIG1lZGlhIGNv
bnRyb2xzIGF0IGFsbCBvbiB2LnlvdWt1LmNvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIu
Y3BwCmluZGV4IDU2ZDg3MjcxMWJjMTQxNTBkNjYwMzBlYmUzZmYzNDE1ODk0OThiNGYuLmRkM2U1
Y2YwNGU2N2E3ODlkNWNhMWE0OWRhNTEwNzNiNzFjYWIxYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAKQEAgLTg4MCwzMSArODgwLDI5IEBAIHN0YXRpYyBib29sIGhhc1RleHRD
aGlsZHJlbihjb25zdCBFbGVtZW50JiBlbGVtZW50KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
dm9pZCBTdHlsZVJlc29sdmVyOjphZGp1c3RSZW5kZXJTdHlsZUZvclRleHRBdXRvc2l6aW5nKFJl
bmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCYgZWxlbWVudCkKK2Jvb2wgU3R5bGVSZXNv
bHZlcjo6YWRqdXN0UmVuZGVyU3R5bGVGb3JUZXh0QXV0b3NpemluZyhSZW5kZXJTdHlsZSYgc3R5
bGUsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgaWYgKCFzZXR0aW5ncygpLnRleHRB
dXRvc2l6aW5nRW5hYmxlZCgpIHx8ICFzZXR0aW5ncygpLnRleHRBdXRvc2l6aW5nVXNlc0lkZW1w
b3RlbnRNb2RlKCkpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgQXV0b3NpemVTdGF0dXM6OnVwZGF0ZVN0YXR1cyhzdHlsZSk7Ci0gICAgaWYgKCFoYXNUZXh0
Q2hpbGRyZW4oZWxlbWVudCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmIChzdHlsZS50ZXh0
U2l6ZUFkanVzdCgpLmlzTm9uZSgpKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIGZsb2F0IGluaXRpYWxTY2FsZSA9IGRvY3VtZW50KCkucGFnZSgpID8gZG9j
dW1lbnQoKS5wYWdlKCktPmluaXRpYWxTY2FsZSgpIDogMTsKICAgICBhdXRvIGFkanVzdExpbmVI
ZWlnaHRJZk5lZWRlZCA9IFsmXShhdXRvIGNvbXB1dGVkRm9udFNpemUpIHsKICAgICAgICAgYXV0
byBsaW5lSGVpZ2h0ID0gc3R5bGUuc3BlY2lmaWVkTGluZUhlaWdodCgpOwogICAgICAgICBjb25z
dGV4cHIgc3RhdGljIHVuc2lnbmVkIGVsaWdpYmxlRm9udFNpemUgPSAxMjsKICAgICAgICAgaWYg
KGNvbXB1dGVkRm9udFNpemUgKiBpbml0aWFsU2NhbGUgPj0gZWxpZ2libGVGb250U2l6ZSkKLSAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBj
b25zdGV4cHIgc3RhdGljIGZsb2F0IGJvb3N0RmFjdG9yID0gMS4yNTsKICAgICAgICAgYXV0byBt
aW5pbXVtTGluZUhlaWdodCA9IGJvb3N0RmFjdG9yICogY29tcHV0ZWRGb250U2l6ZTsKICAgICAg
ICAgaWYgKCFsaW5lSGVpZ2h0LmlzRml4ZWQoKSB8fCBsaW5lSGVpZ2h0LnZhbHVlKCkgPj0gbWlu
aW11bUxpbmVIZWlnaHQpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICAgICAgc3R5bGUuc2V0TGluZUhlaWdodCh7IG1pbmltdW1MaW5lSGVpZ2h0
LCBGaXhlZCB9KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfTsKIAogICAgIGlmICghc3R5
bGUuaXNJZGVtcG90ZW50VGV4dEF1dG9zaXppbmdDYW5kaWRhdGUoKSkKQEAgLTkxNCwxMiArOTEy
LDE2IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGVGb3JUZXh0QXV0b3Np
emluZyhSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0CiAgICAgYXV0byBpbml0aWFsQ29tcHV0ZWRG
b250U2l6ZSA9IGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKTsgCiAgICAgYXV0byBhZGp1
c3RlZEZvbnRTaXplID0gQXV0b3NpemVTdGF0dXM6OmlkZW1wb3RlbnRUZXh0U2l6ZShmb250RGVz
Y3JpcHRpb24uc3BlY2lmaWVkU2l6ZSgpLCBpbml0aWFsU2NhbGUpOwogICAgIGlmIChpbml0aWFs
Q29tcHV0ZWRGb250U2l6ZSA9PSBhZGp1c3RlZEZvbnRTaXplKQotICAgICAgICByZXR1cm47Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghaGFzVGV4dENoaWxkcmVuKGVsZW1lbnQp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBmb250RGVzY3JpcHRpb24uc2V0Q29tcHV0
ZWRTaXplKGFkanVzdGVkRm9udFNpemUpOwogICAgIHN0eWxlLnNldEZvbnREZXNjcmlwdGlvbihX
VEZNb3ZlKGZvbnREZXNjcmlwdGlvbikpOwogICAgIHN0eWxlLmZvbnRDYXNjYWRlKCkudXBkYXRl
KCZkb2N1bWVudCgpLmZvbnRTZWxlY3RvcigpKTsKICAgICBhZGp1c3RMaW5lSGVpZ2h0SWZOZWVk
ZWQoYWRqdXN0ZWRGb250U2l6ZSk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggOGM4OGRhOGQ1YzdmYTQyZWQ5ZDgxMmEwOGYx
NGVhMGQ0MGExMWNlYy4uZDhhYzMyODkyZGNkMTM1NTI2Mjk4YWUxMjViZmIxN2M4YzE3NTBhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC00NjksNiArNDY5LDggQEAgcHVibGlj
OgogCiAgICAgUmVmUHRyPENTU1ZhbHVlPiByZXNvbHZlZFZhcmlhYmxlVmFsdWUoQ1NTUHJvcGVy
dHlJRCwgY29uc3QgQ1NTVmFsdWUmLCBBcHBseUNhc2NhZGVkUHJvcGVydHlTdGF0ZSYpIGNvbnN0
OwogCisgICAgYm9vbCBhZGp1c3RSZW5kZXJTdHlsZUZvclRleHRBdXRvc2l6aW5nKFJlbmRlclN0
eWxlJiwgY29uc3QgRWxlbWVudCYpOworCiBwcml2YXRlOgogICAgIHZvaWQgY2FjaGVCb3JkZXJB
bmRCYWNrZ3JvdW5kKCk7CiAKQEAgLTUwMCw4ICs1MDIsNiBAQCBwcml2YXRlOgogICAgIC8vIHRo
ZSBsYXN0IHJlZmVyZW5jZSB0byBhIHN0eWxlIGRlY2xhcmF0aW9uIGFyZSBnYXJiYWdlIGNvbGxl
Y3RlZC4KICAgICB2b2lkIHN3ZWVwTWF0Y2hlZFByb3BlcnRpZXNDYWNoZSgpOwogCi0gICAgdm9p
ZCBhZGp1c3RSZW5kZXJTdHlsZUZvclRleHRBdXRvc2l6aW5nKFJlbmRlclN0eWxlJiwgY29uc3Qg
RWxlbWVudCYpOwotCiAgICAgdHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBNYXRjaGVkUHJvcGVy
dGllc0NhY2hlSXRlbT4gTWF0Y2hlZFByb3BlcnRpZXNDYWNoZTsKICAgICBNYXRjaGVkUHJvcGVy
dGllc0NhY2hlIG1fbWF0Y2hlZFByb3BlcnRpZXNDYWNoZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5k
ZXggNTE4YzdhMmRhYjVhYzNhNTc1ZmZmMzQzNTYyZjEyODk2ZGMyZGE1Yi4uYTU2NWVmYjNjNmM2
YTMwOTA0MDU0Mjc0ODJhNmVkZjg1MTZlOTQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC05MSw2
ICs5MSw3IEBACiAjaW5jbHVkZSAiUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiUG9pbnRlckxvY2tDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgi
CisjaW5jbHVkZSAiUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJS
ZW5kZXJWaWV3LmgiCkBAIC0zMDA0LDQgKzMwMDUsMjcgQEAgdm9pZCBQYWdlOjpkaWRGaW5pc2hM
b2FkaW5nSW1hZ2VGb3JFbGVtZW50KEhUTUxJbWFnZUVsZW1lbnQmIGVsZW1lbnQpCiAgICAgY2hy
b21lKCkuY2xpZW50KCkuZGlkRmluaXNoTG9hZGluZ0ltYWdlRm9yRWxlbWVudChlbGVtZW50KTsK
IH0KIAorI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCit2b2lkIFBhZ2U6OmludmFsaWRhdGVU
ZXh0QXV0b1NpemVJbkFsbEZyYW1lcygpCit7CisgICAgQVNTRVJUKHNldHRpbmdzKCkudGV4dEF1
dG9zaXppbmdFbmFibGVkKCkgJiYgc2V0dGluZ3MoKS50ZXh0QXV0b3NpemluZ1VzZXNJZGVtcG90
ZW50TW9kZSgpKTsKKyAgICBmb3IgKGF1dG8qIGZyYW1lID0gJm1haW5GcmFtZSgpOyBmcmFtZTsg
ZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGlmICghZnJh
bWUtPmRvY3VtZW50KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0byYgZG9j
dW1lbnQgPSAqZnJhbWUtPmRvY3VtZW50KCk7CisgICAgICAgIGlmICghZG9jdW1lbnQucmVuZGVy
VmlldygpIHx8ICFkb2N1bWVudC5zdHlsZVNjb3BlKCkucmVzb2x2ZXJJZkV4aXN0cygpKQorICAg
ICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0byYgc3R5bGVSZXNvbHZlciA9IGRvY3Vt
ZW50LnN0eWxlU2NvcGUoKS5yZXNvbHZlcigpOworICAgICAgICBmb3IgKGF1dG8mIHJlbmRlcmVy
IDogZGVzY2VuZGFudHNPZlR5cGU8UmVuZGVyRWxlbWVudD4oKmRvY3VtZW50LnJlbmRlclZpZXco
KSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBlbGVtZW50ID0gcmVuZGVyZXIuZWxlbWVudCgp
KSB7CisgICAgICAgICAgICAgICAgYXV0byBuZWVkc0xheW91dCA9IHN0eWxlUmVzb2x2ZXIuYWRq
dXN0UmVuZGVyU3R5bGVGb3JUZXh0QXV0b3NpemluZyhyZW5kZXJlci5tdXRhYmxlU3R5bGUoKSwg
KmVsZW1lbnQpOworICAgICAgICAgICAgICAgIGlmIChuZWVkc0xheW91dCkKKyAgICAgICAgICAg
ICAgICAgICAgcmVuZGVyZXIuc2V0TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIH0KK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCmluZGV4IGVmMGU4MzA5MzFmMjVkZmVmOTJkMDQ4YjRkNWRlMDJmYzNmMGQzNzYuLjgwYjNj
MDEzOTZlZmZlMmI4YTFlODZkNDU0ZDA3YTdjZmMwNTQ1OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0z
ODgsNiArMzg4LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAg
ZmxvYXQgdGV4dEF1dG9zaXppbmdXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dEF1dG9zaXpp
bmdXaWR0aDsgfQogICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdXaWR0aChmbG9hdCB0ZXh0QXV0
b3NpemluZ1dpZHRoKSB7IG1fdGV4dEF1dG9zaXppbmdXaWR0aCA9IHRleHRBdXRvc2l6aW5nV2lk
dGg7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGludmFsaWRhdGVUZXh0QXV0b1NpemVJbkFs
bEZyYW1lcygpOwogI2VuZGlmCiAKICAgICBjb25zdCBGbG9hdEJveEV4dGVudCYgZnVsbHNjcmVl
bkluc2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fZnVsbHNjcmVlbkluc2V0czsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBkY2Q2Y2Y5NjgzOTFh
ODU5NTZjZmU4MTI0MWY0MDExZWE5Y2QyMWZlLi40MDIzMjRlOWIxNjk4YjM5MDE3MTg2OTg2OTRk
MDQxMzBjZTA0NzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtNDMxLDYgKzQzMSw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICNpZiBF
TkFCTEUoVklFV1BPUlRfUkVTSVpJTkcpCiAgICAgLCBtX3Nocmlua1RvRml0Q29udGVudFRpbWVy
KCp0aGlzLCAmV2ViUGFnZTo6c2hyaW5rVG9GaXRDb250ZW50VGltZXJGaXJlZCwgMF9zKQogI2Vu
ZGlmCisjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKKyAgICAsIG1fdGV4dEF1dG9TaXppbmdB
ZGp1c3RtZW50VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUGFnZTo6dGV4dEF1dG9T
aXppbmdBZGp1c3RtZW50VGltZXJGaXJlZCkKKyNlbmRpZgogewogICAgIEFTU0VSVChtX3BhZ2VJ
RCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAx
YTBmYjYwNjU1ZDJkODEwMjczYmRkNTVlMjk2MjllOGNhNzcwYzA4Li4wOGExMWYwZTkyZjMxZjU3
NmFjOTYyZDVmYTAyMmViZjIxNDdiMjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjQwLDggKzEyNDAsNiBAQCBwcml2YXRlOgogICAgIHZvaWQg
aGFuZGxlU3ludGhldGljQ2xpY2soV2ViQ29yZTo6Tm9kZSYgbm9kZVJlc3BvbmRpbmdUb0NsaWNr
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhdGlvbiwgT3B0aW9uU2V0PFdlYktpdDo6
V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgV2ViQ29yZTo6UG9pbnRlcklEID0gV2ViQ29yZTo6bW91c2VQ
b2ludGVySUQpOwogICAgIHZvaWQgY29tcGxldGVTeW50aGV0aWNDbGljayhXZWJDb3JlOjpOb2Rl
JiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0
aW9uLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCBXZWJDb3JlOjpTeW50
aGV0aWNDbGlja1R5cGUsIFdlYkNvcmU6OlBvaW50ZXJJRCA9IFdlYkNvcmU6Om1vdXNlUG9pbnRl
cklEKTsKICAgICB2b2lkIHNlbmRUYXBIaWdobGlnaHRGb3JOb2RlSWZOZWNlc3NhcnkodWludDY0
X3QgcmVxdWVzdElELCBXZWJDb3JlOjpOb2RlKik7Ci0gICAgdm9pZCByZXNldFRleHRBdXRvc2l6
aW5nKCk7Ci0gICAgdm9pZCByZXNldElkZW1wb3RlbnRUZXh0QXV0b3NpemluZ0lmTmVlZGVkKGRv
dWJsZSBwcmV2aW91c0luaXRpYWxTY2FsZSk7CiAgICAgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9u
IHZpc2libGVQb3NpdGlvbkluRm9jdXNlZE5vZGVGb3JQb2ludChjb25zdCBXZWJDb3JlOjpGcmFt
ZSYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3Vz
ZWRFbGVtZW50KTsKICAgICBSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IHJhbmdlRm9yR3JhbnVsYXJp
dHlBdFBvaW50KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCB1aW50
MzJfdCBncmFudWxhcml0eSwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50KTsK
ICAgICB2b2lkIHNldEZvY3VzZWRGcmFtZUJlZm9yZVNlbGVjdGluZ1RleHRBdExvY2F0aW9uKGNv
bnN0IFdlYkNvcmU6OkludFBvaW50Jik7CkBAIC0xMjU0LDYgKzEyNTIsMTEgQEAgcHJpdmF0ZToK
ICAgICBib29sIGFwcGx5QXV0b2NvcnJlY3Rpb25JbnRlcm5hbChjb25zdCBTdHJpbmcmIGNvcnJl
Y3Rpb24sIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxUZXh0KTsKICAgICBib29sIHNob3VsZElnbm9y
ZU1ldGFWaWV3cG9ydCgpIGNvbnN0OwogI2VuZGlmCisjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklO
RykKKyAgICB2b2lkIHRleHRBdXRvU2l6aW5nQWRqdXN0bWVudFRpbWVyRmlyZWQoKTsKKyAgICB2
b2lkIHJlc2V0VGV4dEF1dG9zaXppbmcoKTsKKyAgICB2b2lkIHJlc2V0SWRlbXBvdGVudFRleHRB
dXRvc2l6aW5nSWZOZWVkZWQoZG91YmxlIHByZXZpb3VzSW5pdGlhbFNjYWxlKTsKKyNlbmRpZgog
CiAjaWYgRU5BQkxFKFZJRVdQT1JUX1JFU0laSU5HKQogICAgIHZvaWQgc2NoZWR1bGVTaHJpbmtU
b0ZpdENvbnRlbnQoKTsKQEAgLTE5NDQsNiArMTk0Nyw5IEBAIHByaXZhdGU6CiAjaWYgSEFWRShW
SVNJQklMSVRZX1BST1BBR0FUSU9OX1ZJRVcpCiAgICAgc3RkOjp1bmlxdWVfcHRyPExheWVySG9z
dGluZ0NvbnRleHQ+IG1fY29udGV4dEZvclZpc2liaWxpdHlQcm9wYWdhdGlvbjsKICNlbmRpZgor
I2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCisgICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZT4g
bV90ZXh0QXV0b1NpemluZ0FkanVzdG1lbnRUaW1lcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tCmluZGV4IGRmZTA3MTMwY2EwNjY3MjU2ODhkMzA4NjRkYTAwNTA4Nzcy
Zjk5YTMuLjVlNGNkYjJlZWY0ZTY2YWU4ODczMTM4MjQwN2YyZjNjZjNjODUwNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBA
IC0zMDY5LDE2ICszMDY5LDYgQEAgdm9pZCBXZWJQYWdlOjpzZXRPdmVycmlkZVZpZXdwb3J0QXJn
dW1lbnRzKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJndW0KICAgICBtX3BhZ2Ut
PnNldE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMoYXJndW1lbnRzKTsKIH0KIAotdm9pZCBXZWJQ
YWdlOjpyZXNldFRleHRBdXRvc2l6aW5nKCkKLXsKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZt
X3BhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNl
TmV4dCgpKSB7Ci0gICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgp
OwotICAgICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cmVuZGVyVmlldygpKQotICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGRvY3VtZW50LT5yZW5kZXJWaWV3KCktPnJlc2V0
VGV4dEF1dG9zaXppbmcoKTsKLSAgICB9Ci19Ci0KIHZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0
YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJl
ZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNj
cm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHRhcmdl
dFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRl
dmljZU9yaWVudGF0aW9uLCBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQgZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZUlEKQogewogICAgIFNldEZvclNjb3BlPGJvb2w+IGR5bmFtaWNTaXplVXBk
YXRlR3VhcmQobV9pbkR5bmFtaWNTaXplVXBkYXRlLCB0cnVlKTsKQEAgLTMyOTksNiArMzI4OSw0
MCBAQCB2b2lkIFdlYlBhZ2U6OnJlc2V0Vmlld3BvcnREZWZhdWx0Q29uZmlndXJhdGlvbihXZWJG
cmFtZSogZnJhbWUsIGJvb2wgaGFzTW9iaWxlRAogICAgICAgICBtX3ZpZXdwb3J0Q29uZmlndXJh
dGlvbi5zZXRWaWV3TGF5b3V0U2l6ZShGbG9hdFNpemUoKm92ZXJyaWRkZW5WaWV3TGF5b3V0V2lk
dGgsIG1fdmlld3BvcnRDb25maWd1cmF0aW9uLmxheW91dEhlaWdodCgpKSk7CiB9CiAKKyNpZiBF
TkFCTEUoVEVYVF9BVVRPU0laSU5HKQordm9pZCBXZWJQYWdlOjp0ZXh0QXV0b1NpemluZ0FkanVz
dG1lbnRUaW1lckZpcmVkKCkKK3sKKyAgICBtX3BhZ2UtPmludmFsaWRhdGVUZXh0QXV0b1NpemVJ
bkFsbEZyYW1lcygpOworfQorCit2b2lkIFdlYlBhZ2U6OnJlc2V0SWRlbXBvdGVudFRleHRBdXRv
c2l6aW5nSWZOZWVkZWQoZG91YmxlIHByZXZpb3VzSW5pdGlhbFNjYWxlKQoreworICAgIGlmICgh
bV9wYWdlLT5zZXR0aW5ncygpLnRleHRBdXRvc2l6aW5nVXNlc0lkZW1wb3RlbnRNb2RlKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IGZsb2F0IG1pbmltdW1TY2FsZUNoYW5nZUJlZm9y
ZVJlY29tcHV0aW5nVGV4dEF1dG9zaXppbmcgPSAwLjAxOworICAgIGlmIChzdGQ6OmFicyhwcmV2
aW91c0luaXRpYWxTY2FsZSAtIG1fcGFnZS0+aW5pdGlhbFNjYWxlKCkpIDwgbWluaW11bVNjYWxl
Q2hhbmdlQmVmb3JlUmVjb21wdXRpbmdUZXh0QXV0b3NpemluZykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKG1fcGFnZS0+aW5pdGlhbFNjYWxlKCkgPj0gMSAmJiBwcmV2aW91c0luaXRpYWxT
Y2FsZSA+PSAxKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBXZSBkb24ndCBuZWVkIHRvIHVw
ZGF0ZSB0ZXh0IHNpemluZyBlYWdlcmx5LiBUaGVyZSBtaWdodCBiZSBtdWx0aXBsZSBpbmNvbWlu
ZyBkeW5hbWljIHZpZXdwb3J0IGNoYW5nZXMuCisgICAgY29uc3QgU2Vjb25kcyB0ZXh0QXV0b1Np
emluZ0RlbGF5T25WaWV3cG9ydENoYW5nZSA9IDgwX21zOworICAgIG1fdGV4dEF1dG9TaXppbmdB
ZGp1c3RtZW50VGltZXIuc3RhcnRPbmVTaG90KHRleHRBdXRvU2l6aW5nRGVsYXlPblZpZXdwb3J0
Q2hhbmdlKTsKK30KKwordm9pZCBXZWJQYWdlOjpyZXNldFRleHRBdXRvc2l6aW5nKCkKK3sKKyAg
ICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtX3BhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUg
PSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpOworICAgICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1
bWVudC0+cmVuZGVyVmlldygpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGRvY3Vt
ZW50LT5yZW5kZXJWaWV3KCktPnJlc2V0VGV4dEF1dG9zaXppbmcoKTsKKyAgICB9Cit9CisjZW5k
aWYKKwogI2lmIEVOQUJMRShWSUVXUE9SVF9SRVNJWklORykKIAogdm9pZCBXZWJQYWdlOjpzY2hl
ZHVsZVNocmlua1RvRml0Q29udGVudCgpCkBAIC0zMzk5LDMxICszNDIzLDE3IEBAIGJvb2wgV2Vi
UGFnZTo6c2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0KCkgY29uc3QKICAgICByZXR1cm4gbV9wYWdl
LT5zZXR0aW5ncygpLnNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCgpOwogfQogCi12b2lkIFdlYlBh
Z2U6OnJlc2V0SWRlbXBvdGVudFRleHRBdXRvc2l6aW5nSWZOZWVkZWQoZG91YmxlIHByZXZpb3Vz
SW5pdGlhbFNjYWxlKQotewotICAgIGlmICghbV9wYWdlLT5zZXR0aW5ncygpLnRleHRBdXRvc2l6
aW5nVXNlc0lkZW1wb3RlbnRNb2RlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNvbnN0IGZs
b2F0IG1pbmltdW1TY2FsZUNoYW5nZUJlZm9yZVJlY29tcHV0aW5nVGV4dEF1dG9zaXppbmcgPSAw
LjAxOwotICAgIGlmIChzdGQ6OmFicyhwcmV2aW91c0luaXRpYWxTY2FsZSAtIG1fcGFnZS0+aW5p
dGlhbFNjYWxlKCkpIDwgbWluaW11bVNjYWxlQ2hhbmdlQmVmb3JlUmVjb21wdXRpbmdUZXh0QXV0
b3NpemluZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fcGFnZS0+aW5pdGlhbFNjYWxl
KCkgPj0gMSAmJiBwcmV2aW91c0luaXRpYWxTY2FsZSA+PSAxKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBtX3BhZ2UtPnNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOwotfQotCiB2b2lk
IFdlYlBhZ2U6OnZpZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5nZWQoWm9vbVRvSW5pdGlhbFNjYWxl
IHpvb21Ub0luaXRpYWxTY2FsZSkKIHsKLSAgICBkb3VibGUgcHJldmlvdXNJbml0aWFsU2NhbGUg
PSBtX3BhZ2UtPmluaXRpYWxTY2FsZSgpOwogICAgIGRvdWJsZSBpbml0aWFsU2NhbGUgPSBtX3Zp
ZXdwb3J0Q29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGUoKTsKKyNpZiBFTkFCTEUoVEVYVF9BVVRP
U0laSU5HKQorICAgIGRvdWJsZSBwcmV2aW91c0luaXRpYWxTY2FsZSA9IG1fcGFnZS0+aW5pdGlh
bFNjYWxlKCk7CiAgICAgbV9wYWdlLT5zZXRJbml0aWFsU2NhbGUoaW5pdGlhbFNjYWxlKTsKICAg
ICByZXNldElkZW1wb3RlbnRUZXh0QXV0b3NpemluZ0lmTmVlZGVkKHByZXZpb3VzSW5pdGlhbFNj
YWxlKTsKIAogICAgIGlmIChzZXRGaXhlZExheW91dFNpemUobV92aWV3cG9ydENvbmZpZ3VyYXRp
b24ubGF5b3V0U2l6ZSgpKSkKICAgICAgICAgcmVzZXRUZXh0QXV0b3NpemluZygpOwotCisjZW5k
aWYKICAgICBkb3VibGUgc2NhbGU7CiAgICAgaWYgKG1fdXNlckhhc0NoYW5nZWRQYWdlU2NhbGVG
YWN0b3IgJiYgem9vbVRvSW5pdGlhbFNjYWxlID09IFpvb21Ub0luaXRpYWxTY2FsZTo6Tm8pCiAg
ICAgICAgIHNjYWxlID0gc3RkOjptYXgoc3RkOjptaW4ocGFnZVNjYWxlRmFjdG9yKCksIG1fdmll
d3BvcnRDb25maWd1cmF0aW9uLm1heGltdW1TY2FsZSgpKSwgbV92aWV3cG9ydENvbmZpZ3VyYXRp
b24ubWluaW11bVNjYWxlKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374495</attachid>
            <date>2019-07-19 14:24:27 -0700</date>
            <delta_ts>2019-07-19 15:07:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199718-20190719142426.patch</filename>
            <type>text/plain</type>
            <size>20189</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3Mzg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzBjODg4MWY4ZWFkMmQ5
M2I1YTMxMzNkNzgzNmFhMmI5MzUyY2JjMy4uYzcwOTg5YmFlMDYyOTZkMzU3Y2RmM2VmZmRhNWRj
NzJkN2JlMTk3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE5LTA3LTE5ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1RleHQgYXV0b3NpemluZ10g
RG8gbm90IG51a2UgdGhlIHN0eWxlIG9uIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTcxOAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTE5MDA2NjY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2hlbiB0aGUgcGFnZSBzY2FsZSBjaGFuZ2VzIChlLmcuIGFz
IHRoZSByZXN1bHQgb2Ygc2hpbmsgdG8gZml0IG1vZGUpIHdlIG5lZWQgdG8gdmlzaXQgYWxsIHRo
ZSB0ZXh0IGNvbnRlbnQgb24gdGhlIHBhZ2UgYW5kIGNoZWNrIHdoZXRoZXIgdGhleSBuZWVkIHRv
IGJlIGJvb3N0ZWQuCisgICAgICAgIEN1cnJlbnRseSB3ZSBjYWxsIHNldE5lZWRzUmVjYWxjU3R5
bGVJbkFsbEZyYW1lcygpIHRvIGFjY29tcGxpc2ggaXQuIFVuZm9ydHVuYXRlbGx5IHNldE5lZWRz
UmVjYWxjU3R5bGVJbkFsbEZyYW1lcyBkZXN0cm95cyBhbGwgdGhlIHN0eWxlIGluZm9ybWF0aW9u
IHdoaWNoIG1lYW5zIHRoYXQgdGhlCisgICAgICAgIHN1YnNlcXVlbnQgc3R5bGVSZXNvbHZlKCkg
bmVlZHMgdG8gc3RhcnQgZnJvbSBzY3JhdGNoLgorICAgICAgICBUaGlzIHBhdGNoIGFkZHJlc3Nl
cyB0aGlzIGlzc3VlIGJ5IGRpcmVjdGx5IGFkanVzdGluZyB0aGUgY29tcHV0ZWQgc3R5bGUgaW5m
b3JtYXRpb24gd2hlbiB0ZXh0IGJvb3N0aW5nIGlzIHJlcXVpcmVkIGFuZCBzY2hlZHVsZXMgbGF5
b3V0IGFjY29yZGluZ2x5LiBXZSBhbHNvIHRyaWdnZXIgdGhpcyBzdHlsZSBhZGp1c3RpbmcKKyAg
ICAgICAgb24gYSB0aW1lciBzbyB0aGF0IHJhcGlkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUo
KSBjYWxscyB3b24ndCB0cmlnZ2VyIHJlZHVuZGFudCBsYXlvdXRzLiAgIAorCisgICAgICAgICog
Y3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGFzVGV4dENoaWxkKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmFkanVzdFJlbmRlclN0eWxlRm9yVGV4
dEF1dG9zaXppbmcpOgorICAgICAgICAoV2ViQ29yZTo6aGFzVGV4dENoaWxkcmVuKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5oOgorICAgICAgICAqIHBhZ2UvRnJhbWUu
aDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppbnZhbGlkYXRlVGV4dEF1dG9TaXplSW5BbGxGcmFt
ZXMpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorCiAyMDE5LTA3LTEyICBUaW1vdGh5IEhhdGNo
ZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wIERhcmtNb2RlQ1NTRW5hYmxl
ZCBhcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBhbmQgYWx3YXlzIGVuYWJsZSBpdC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZjVkYTg2Y2IwMmIwMDdlYjc0NWE1ZDJmMTA4YjY2NTMzNTNjMGJkNS4uMTUxOWY3NzM3
MmMwOTkxYTMxZmZkNzRkN2M3NWZiMWRmOTQzMDc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBA
QAorMjAxOS0wNy0xOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAg
IFtUZXh0IGF1dG9zaXppbmddIERvIG5vdCBudWtlIHRoZSBzdHlsZSBvbiBkeW5hbWljVmlld3Bv
cnRTaXplVXBkYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTk3MTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxOTAwNjY2PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX3RleHRBdXRvU2l6aW5nQWRqdXN0
bWVudFRpbWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2xvc2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpkaWRDb21taXRMb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6dGV4dEF1dG9TaXppbmdBZGp1c3RtZW50VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6
Om1fc2hyaW5rVG9GaXRDb250ZW50VGltZXIpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVzZXRJZGVtcG90ZW50VGV4
dEF1dG9zaXppbmdJZk5lZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlc2V0VGV4
dEF1dG9zaXppbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp2aWV3cG9ydENvbmZpZ3Vy
YXRpb25DaGFuZ2VkKToKKwogMjAxOS0wNy0xMiAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBh
cHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBEYXJrTW9kZUNTU0VuYWJsZWQgYXMgYW4gZXhwZXJp
bWVudGFsIGZlYXR1cmUgYW5kIGFsd2F5cyBlbmFibGUgaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAKaW5kZXggODkwMWFiMDgwYmRlN2ExYzhlNzIxMjIwZWZhZjdlNzdlNDdiN2Qz
OC4uNDE5NzZlODhiNWVhNzVlNGVkN2ZjYzRkNmEyNGNhNWZjN2Q0N2NlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtODcxLDcgKzg3MSw3IEBAIHN0YXRpYyBPcHRpb25T
ZXQ8VG91Y2hBY3Rpb24+IGNvbXB1dGVFZmZlY3RpdmVUb3VjaEFjdGlvbnMoY29uc3QgUmVuZGVy
U3R5bGUmIHN0CiAjZW5kaWYKIAogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCi1zdGF0aWMg
Ym9vbCBoYXNUZXh0Q2hpbGRyZW4oY29uc3QgRWxlbWVudCYgZWxlbWVudCkKK3N0YXRpYyBib29s
IGhhc1RleHRDaGlsZChjb25zdCBFbGVtZW50JiBlbGVtZW50KQogewogICAgIGZvciAoYXV0byog
Y2hpbGQgPSBlbGVtZW50LmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRT
aWJsaW5nKCkpIHsKICAgICAgICAgaWYgKGlzPFRleHQ+KGNoaWxkKSkKQEAgLTg4MCw0NiArODgw
LDUyIEBAIHN0YXRpYyBib29sIGhhc1RleHRDaGlsZHJlbihjb25zdCBFbGVtZW50JiBlbGVtZW50
KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBTdHlsZVJlc29sdmVyOjphZGp1c3RSZW5k
ZXJTdHlsZUZvclRleHRBdXRvc2l6aW5nKFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVu
dCYgZWxlbWVudCkKK2Jvb2wgU3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGVGb3JUZXh0
QXV0b3NpemluZyhSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiB7
CiAgICAgaWYgKCFzZXR0aW5ncygpLnRleHRBdXRvc2l6aW5nRW5hYmxlZCgpIHx8ICFzZXR0aW5n
cygpLnRleHRBdXRvc2l6aW5nVXNlc0lkZW1wb3RlbnRNb2RlKCkpCi0gICAgICAgIHJldHVybjsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQXV0b3NpemVTdGF0dXM6OnVwZGF0ZVN0YXR1
cyhzdHlsZSk7Ci0gICAgaWYgKCFoYXNUZXh0Q2hpbGRyZW4oZWxlbWVudCkpCi0gICAgICAgIHJl
dHVybjsKLQogICAgIGlmIChzdHlsZS50ZXh0U2l6ZUFkanVzdCgpLmlzTm9uZSgpKQotICAgICAg
ICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGZsb2F0IGluaXRpYWxTY2Fs
ZSA9IGRvY3VtZW50KCkucGFnZSgpID8gZG9jdW1lbnQoKS5wYWdlKCktPmluaXRpYWxTY2FsZSgp
IDogMTsKICAgICBhdXRvIGFkanVzdExpbmVIZWlnaHRJZk5lZWRlZCA9IFsmXShhdXRvIGNvbXB1
dGVkRm9udFNpemUpIHsKICAgICAgICAgYXV0byBsaW5lSGVpZ2h0ID0gc3R5bGUuc3BlY2lmaWVk
TGluZUhlaWdodCgpOwogICAgICAgICBjb25zdGV4cHIgc3RhdGljIHVuc2lnbmVkIGVsaWdpYmxl
Rm9udFNpemUgPSAxMjsKICAgICAgICAgaWYgKGNvbXB1dGVkRm9udFNpemUgKiBpbml0aWFsU2Nh
bGUgPj0gZWxpZ2libGVGb250U2l6ZSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgICAgICBjb25zdGV4cHIgc3RhdGljIGZsb2F0IGJvb3N0RmFj
dG9yID0gMS4yNTsKICAgICAgICAgYXV0byBtaW5pbXVtTGluZUhlaWdodCA9IGJvb3N0RmFjdG9y
ICogY29tcHV0ZWRGb250U2l6ZTsKICAgICAgICAgaWYgKCFsaW5lSGVpZ2h0LmlzRml4ZWQoKSB8
fCBsaW5lSGVpZ2h0LnZhbHVlKCkgPj0gbWluaW11bUxpbmVIZWlnaHQpCi0gICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgc3R5bGUuc2V0TGlu
ZUhlaWdodCh7IG1pbmltdW1MaW5lSGVpZ2h0LCBGaXhlZCB9KTsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfTsKIAotICAgIGlmICghc3R5bGUuaXNJZGVtcG90ZW50VGV4dEF1dG9zaXppbmdD
YW5kaWRhdGUoKSkKLSAgICAgICAgcmV0dXJuIGFkanVzdExpbmVIZWlnaHRJZk5lZWRlZChzdHls
ZS5jb21wdXRlZEZvbnRTaXplKCkpOworICAgIGlmICghc3R5bGUuaXNJZGVtcG90ZW50VGV4dEF1
dG9zaXppbmdDYW5kaWRhdGUoKSkgeworICAgICAgICBhdXRvIGJvb3N0TGluZUhlaWdodCA9IGFk
anVzdExpbmVIZWlnaHRJZk5lZWRlZChzdHlsZS5jb21wdXRlZEZvbnRTaXplKCkpOworICAgICAg
ICBpZiAoIWJvb3N0TGluZUhlaWdodCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgcmV0dXJuIGhhc1RleHRDaGlsZChlbGVtZW50KTsKKyAgICB9CiAKICAgICBhdXRvIGZvbnRE
ZXNjcmlwdGlvbiA9IHN0eWxlLmZvbnREZXNjcmlwdGlvbigpOwogICAgIGF1dG8gaW5pdGlhbENv
bXB1dGVkRm9udFNpemUgPSBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCk7IAogICAgIGF1
dG8gYWRqdXN0ZWRGb250U2l6ZSA9IEF1dG9zaXplU3RhdHVzOjppZGVtcG90ZW50VGV4dFNpemUo
Zm9udERlc2NyaXB0aW9uLnNwZWNpZmllZFNpemUoKSwgaW5pdGlhbFNjYWxlKTsKICAgICBpZiAo
aW5pdGlhbENvbXB1dGVkRm9udFNpemUgPT0gYWRqdXN0ZWRGb250U2l6ZSkKLSAgICAgICAgcmV0
dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWhhc1RleHRDaGlsZChlbGVt
ZW50KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZm9udERlc2NyaXB0aW9uLnNldENv
bXB1dGVkU2l6ZShhZGp1c3RlZEZvbnRTaXplKTsKICAgICBzdHlsZS5zZXRGb250RGVzY3JpcHRp
b24oV1RGTW92ZShmb250RGVzY3JpcHRpb24pKTsKICAgICBzdHlsZS5mb250Q2FzY2FkZSgpLnVw
ZGF0ZSgmZG9jdW1lbnQoKS5mb250U2VsZWN0b3IoKSk7CiAgICAgYWRqdXN0TGluZUhlaWdodElm
TmVlZGVkKGFkanVzdGVkRm9udFNpemUpOworICAgIHJldHVybiB0cnVlOwogfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCmluZGV4IDhjODhkYThkNWM3ZmE0MmVkOWQ4MTJh
MDhmMTRlYTBkNDBhMTFjZWMuLmQ4YWMzMjg5MmRjZDEzNTUyNjI5OGFlMTI1YmZiMTdjOGMxNzUw
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApAQCAtNDY5LDYgKzQ2OSw4IEBAIHB1
YmxpYzoKIAogICAgIFJlZlB0cjxDU1NWYWx1ZT4gcmVzb2x2ZWRWYXJpYWJsZVZhbHVlKENTU1By
b3BlcnR5SUQsIGNvbnN0IENTU1ZhbHVlJiwgQXBwbHlDYXNjYWRlZFByb3BlcnR5U3RhdGUmKSBj
b25zdDsKIAorICAgIGJvb2wgYWRqdXN0UmVuZGVyU3R5bGVGb3JUZXh0QXV0b3NpemluZyhSZW5k
ZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQmKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIGNhY2hlQm9y
ZGVyQW5kQmFja2dyb3VuZCgpOwogCkBAIC01MDAsOCArNTAyLDYgQEAgcHJpdmF0ZToKICAgICAv
LyB0aGUgbGFzdCByZWZlcmVuY2UgdG8gYSBzdHlsZSBkZWNsYXJhdGlvbiBhcmUgZ2FyYmFnZSBj
b2xsZWN0ZWQuCiAgICAgdm9pZCBzd2VlcE1hdGNoZWRQcm9wZXJ0aWVzQ2FjaGUoKTsKIAotICAg
IHZvaWQgYWRqdXN0UmVuZGVyU3R5bGVGb3JUZXh0QXV0b3NpemluZyhSZW5kZXJTdHlsZSYsIGNv
bnN0IEVsZW1lbnQmKTsKLQogICAgIHR5cGVkZWYgSGFzaE1hcDx1bnNpZ25lZCwgTWF0Y2hlZFBy
b3BlcnRpZXNDYWNoZUl0ZW0+IE1hdGNoZWRQcm9wZXJ0aWVzQ2FjaGU7CiAgICAgTWF0Y2hlZFBy
b3BlcnRpZXNDYWNoZSBtX21hdGNoZWRQcm9wZXJ0aWVzQ2FjaGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaApp
bmRleCA0Mjc0MmRkNmY4ZTdhODcxMjM0NGUyODljN2ZlZGU5NzI1ZTJlODc1Li5lZDYwYjgwOGE1
MDM0ZTdjNDczZjY5OWJiZTQwNWQ5NjY2M2E3MjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0yMjIs
NiArMjIyLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIE5vZGUqIG5vZGVSZXNwb25k
aW5nVG9DbGlja0V2ZW50cyhjb25zdCBGbG9hdFBvaW50JiB2aWV3cG9ydExvY2F0aW9uLCBGbG9h
dFBvaW50JiBhZGp1c3RlZFZpZXdwb3J0TG9jYXRpb24sIFNlY3VyaXR5T3JpZ2luKiA9IG51bGxw
dHIpOwogICAgIFdFQkNPUkVfRVhQT1JUIE5vZGUqIG5vZGVSZXNwb25kaW5nVG9Eb3VibGVDbGlj
a0V2ZW50KGNvbnN0IEZsb2F0UG9pbnQmIHZpZXdwb3J0TG9jYXRpb24sIEZsb2F0UG9pbnQmIGFk
anVzdGVkVmlld3BvcnRMb2NhdGlvbik7CiAgICAgV0VCQ09SRV9FWFBPUlQgTm9kZSogbm9kZVJl
c3BvbmRpbmdUb1Njcm9sbFdoZWVsRXZlbnRzKGNvbnN0IEZsb2F0UG9pbnQmIHZpZXdwb3J0TG9j
YXRpb24pOworICAgIFdFQkNPUkVfRVhQT1JUIE5vZGUqIGFwcHJveGltYXRlTm9kZUF0Vmlld3Bv
cnRMb2NhdGlvbkxlZ2FjeShjb25zdCBGbG9hdFBvaW50JiB2aWV3cG9ydExvY2F0aW9uLCBGbG9h
dFBvaW50JiBhZGp1c3RlZFZpZXdwb3J0TG9jYXRpb24pOwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
TlNBcnJheSAqd29yZHNJbkN1cnJlbnRQYXJhZ3JhcGgoKSBjb25zdDsKICAgICBXRUJDT1JFX0VY
UE9SVCBDR1JlY3QgcmVuZGVyUmVjdEZvclBvaW50KENHUG9pbnQsIGJvb2wqIGlzUmVwbGFjZWQs
IGZsb2F0KiBmb250U2l6ZSkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBmYzU2
MDIwMzdhMzFhMjcxMDMyOWY0NWYxNjA5OTMyNDNhZGUyZWU2Li43MWZiYTM0YzdiMTQ1Yjk0YWY1
NjFhZmFlZjY0NGZmNzg2ZjgxOGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTQwMiw2
ICs0MDIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVJc1Zpc3VhbGx5Tm9uRW1wdHkoKTsK
ICAgICB2b2lkIHVwZGF0ZVNpZ25pZmljYW50UmVuZGVyZWRUZXh0TWlsZXN0b25lSWZOZWVkZWQo
KTsKICAgICBib29sIGlzVmlzdWFsbHlOb25FbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1faXNWaXN1
YWxseU5vbkVtcHR5OyB9CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBxdWFsaWZpZXNBc1Zpc3Vh
bGx5Tm9uRW1wdHkoKSBjb25zdDsKKwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5hYmxlQXV0
b1NpemVNb2RlKGJvb2wgZW5hYmxlLCBjb25zdCBJbnRTaXplJiBtaW5TaXplKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldEF1dG9TaXplRml4ZWRNaW5pbXVtSGVpZ2h0KGludCk7CiAgICAg
Ym9vbCBpc0F1dG9TaXplRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQXV0b1NpemU7
IH0KQEAgLTc5MSw3ICs3OTMsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBtYXJrUm9vdE9yQm9k
eVJlbmRlcmVyRGlydHkoKSBjb25zdDsKIAotICAgIGJvb2wgcXVhbGlmaWVzQXNWaXN1YWxseU5v
bkVtcHR5KCkgY29uc3Q7CiAgICAgYm9vbCBxdWFsaWZpZXNBc1NpZ25pZmljYW50UmVuZGVyZWRU
ZXh0KCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVIYXNSZWFjaGVkU2lnbmlmaWNhbnRSZW5kZXJl
ZFRleHRUaHJlc2hvbGQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNTE4YzdhMmRhYjVhYzNh
NTc1ZmZmMzQzNTYyZjEyODk2ZGMyZGE1Yi4uYTU2NWVmYjNjNmM2YTMwOTA0MDU0Mjc0ODJhNmVk
Zjg1MTZlOTQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC05MSw2ICs5MSw3IEBACiAjaW5jbHVk
ZSAiUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUG9pbnRlckxvY2tDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCisjaW5jbHVkZSAiUmVuZGVy
RGVzY2VuZGFudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgi
CiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC0z
MDA0LDQgKzMwMDUsMjcgQEAgdm9pZCBQYWdlOjpkaWRGaW5pc2hMb2FkaW5nSW1hZ2VGb3JFbGVt
ZW50KEhUTUxJbWFnZUVsZW1lbnQmIGVsZW1lbnQpCiAgICAgY2hyb21lKCkuY2xpZW50KCkuZGlk
RmluaXNoTG9hZGluZ0ltYWdlRm9yRWxlbWVudChlbGVtZW50KTsKIH0KIAorI2lmIEVOQUJMRShU
RVhUX0FVVE9TSVpJTkcpCit2b2lkIFBhZ2U6OmludmFsaWRhdGVUZXh0QXV0b1NpemVJbkFsbEZy
YW1lcygpCit7CisgICAgQVNTRVJUKHNldHRpbmdzKCkudGV4dEF1dG9zaXppbmdFbmFibGVkKCkg
JiYgc2V0dGluZ3MoKS50ZXh0QXV0b3NpemluZ1VzZXNJZGVtcG90ZW50TW9kZSgpKTsKKyAgICBm
b3IgKGF1dG8qIGZyYW1lID0gJm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGlmICghZnJhbWUtPmRvY3VtZW50KCkpCisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUtPmRv
Y3VtZW50KCk7CisgICAgICAgIGlmICghZG9jdW1lbnQucmVuZGVyVmlldygpIHx8ICFkb2N1bWVu
dC5zdHlsZVNjb3BlKCkucmVzb2x2ZXJJZkV4aXN0cygpKQorICAgICAgICAgICAgY29udGludWU7
CisKKyAgICAgICAgYXV0byYgc3R5bGVSZXNvbHZlciA9IGRvY3VtZW50LnN0eWxlU2NvcGUoKS5y
ZXNvbHZlcigpOworICAgICAgICBmb3IgKGF1dG8mIHJlbmRlcmVyIDogZGVzY2VuZGFudHNPZlR5
cGU8UmVuZGVyRWxlbWVudD4oKmRvY3VtZW50LnJlbmRlclZpZXcoKSkpIHsKKyAgICAgICAgICAg
IGlmIChhdXRvKiBlbGVtZW50ID0gcmVuZGVyZXIuZWxlbWVudCgpKSB7CisgICAgICAgICAgICAg
ICAgYXV0byBuZWVkc0xheW91dCA9IHN0eWxlUmVzb2x2ZXIuYWRqdXN0UmVuZGVyU3R5bGVGb3JU
ZXh0QXV0b3NpemluZyhyZW5kZXJlci5tdXRhYmxlU3R5bGUoKSwgKmVsZW1lbnQpOworICAgICAg
ICAgICAgICAgIGlmIChuZWVkc0xheW91dCkKKyAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXIu
c2V0TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKyNl
bmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGVmMGU4MzA5
MzFmMjVkZmVmOTJkMDQ4YjRkNWRlMDJmYzNmMGQzNzYuLjgwYjNjMDEzOTZlZmZlMmI4YTFlODZk
NDU0ZDA3YTdjZmMwNTQ1OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0zODgsNiArMzg4LDcgQEAgcHVi
bGljOgogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgZmxvYXQgdGV4dEF1dG9zaXpp
bmdXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dEF1dG9zaXppbmdXaWR0aDsgfQogICAgIHZv
aWQgc2V0VGV4dEF1dG9zaXppbmdXaWR0aChmbG9hdCB0ZXh0QXV0b3NpemluZ1dpZHRoKSB7IG1f
dGV4dEF1dG9zaXppbmdXaWR0aCA9IHRleHRBdXRvc2l6aW5nV2lkdGg7IH0KKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGludmFsaWRhdGVUZXh0QXV0b1NpemVJbkFsbEZyYW1lcygpOwogI2VuZGlm
CiAKICAgICBjb25zdCBGbG9hdEJveEV4dGVudCYgZnVsbHNjcmVlbkluc2V0cygpIGNvbnN0IHsg
cmV0dXJuIG1fZnVsbHNjcmVlbkluc2V0czsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA5YmRiNzY0Y2ZjYjVjMGZhY2E0ZWM4NzhhZTVlMjk3
MTM4YmRjZTNiLi44ODljMDNkMGZhZTkyNWNkOTZhNzM1ZDZkOTFkM2UwMmI1MmM5ZGE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDMxLDYg
KzQzMSw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICNpZiBFTkFCTEUoVklFV1BPUlRfUkVT
SVpJTkcpCiAgICAgLCBtX3Nocmlua1RvRml0Q29udGVudFRpbWVyKCp0aGlzLCAmV2ViUGFnZTo6
c2hyaW5rVG9GaXRDb250ZW50VGltZXJGaXJlZCwgMF9zKQogI2VuZGlmCisjaWYgRU5BQkxFKFRF
WFRfQVVUT1NJWklORykKKyAgICAsIG1fdGV4dEF1dG9TaXppbmdBZGp1c3RtZW50VGltZXIoKnRo
aXMsICZXZWJQYWdlOjp0ZXh0QXV0b1NpemluZ0FkanVzdG1lbnRUaW1lckZpcmVkKQorI2VuZGlm
CiB7CiAgICAgQVNTRVJUKG1fcGFnZUlEKTsKIApAQCAtMTQwMCw2ICsxNDAzLDEwIEBAIHZvaWQg
V2ViUGFnZTo6Y2xvc2UoKQogICAgIG1fc2hyaW5rVG9GaXRDb250ZW50VGltZXIuc3RvcCgpOwog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQorICAgIG1fdGV4dEF1dG9TaXpp
bmdBZGp1c3RtZW50VGltZXIuc3RvcCgpOworI2VuZGlmCisKICNpZiBFTkFCTEUoQ09OVEVYVF9N
RU5VUykKICAgICBtX2NvbnRleHRNZW51Q2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxBUEk6Oklu
amVjdGVkQnVuZGxlOjpQYWdlQ29udGV4dE1lbnVDbGllbnQ+KCk7CiAjZW5kaWYKQEAgLTU3ODAs
NiArNTc4NywxMCBAQCB2b2lkIFdlYlBhZ2U6OmRpZENvbW1pdExvYWQoV2ViRnJhbWUqIGZyYW1l
KQogICAgIG1fc2hyaW5rVG9GaXRDb250ZW50VGltZXIuc3RvcCgpOwogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoVEVYVF9BVVRPU0laSU5HKQorICAgIG1fdGV4dEF1dG9TaXppbmdBZGp1c3RtZW50VGlt
ZXIuc3RvcCgpOworI2VuZGlmCisKICNpZiBFTkFCTEUoUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVH
SU5fSEVVUklTVElDKQogICAgIHJlc2V0UHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKCk7CiAjZW5k
aWYKQEAgLTY3ODMsNiArNjc5NCwxMyBAQCB2b2lkIFdlYlBhZ2U6OmRpZEZpbmlzaExvYWRpbmdJ
bWFnZUZvckVsZW1lbnQoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudCYpCiAKICNlbmRpZgogCisj
aWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKK3ZvaWQgV2ViUGFnZTo6dGV4dEF1dG9TaXppbmdB
ZGp1c3RtZW50VGltZXJGaXJlZCgpCit7CisgICAgbV9wYWdlLT5pbnZhbGlkYXRlVGV4dEF1dG9T
aXplSW5BbGxGcmFtZXMoKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
I3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhYmZhZDYyYjhhZDUzZjI4ODM2OGMwMjdlZjgzM2ExMTA4
ZWFlMzExLi4wOTFjM2RkZDM2NTI5MDY4ODExYWYxNDg5NTgwYThkZTViNGRkMjljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjQxLDggKzEyNDEs
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxlU3ludGhldGljQ2xpY2soV2ViQ29yZTo6Tm9k
ZSYgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2Nh
dGlvbiwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgV2ViQ29yZTo6UG9p
bnRlcklEID0gV2ViQ29yZTo6bW91c2VQb2ludGVySUQpOwogICAgIHZvaWQgY29tcGxldGVTeW50
aGV0aWNDbGljayhXZWJDb3JlOjpOb2RlJiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6
TW9kaWZpZXI+LCBXZWJDb3JlOjpTeW50aGV0aWNDbGlja1R5cGUsIFdlYkNvcmU6OlBvaW50ZXJJ
RCA9IFdlYkNvcmU6Om1vdXNlUG9pbnRlcklEKTsKICAgICB2b2lkIHNlbmRUYXBIaWdobGlnaHRG
b3JOb2RlSWZOZWNlc3NhcnkodWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpOb2RlKik7Ci0g
ICAgdm9pZCByZXNldFRleHRBdXRvc2l6aW5nKCk7Ci0gICAgdm9pZCByZXNldElkZW1wb3RlbnRU
ZXh0QXV0b3NpemluZ0lmTmVlZGVkKGRvdWJsZSBwcmV2aW91c0luaXRpYWxTY2FsZSk7CiAgICAg
V2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkluRm9jdXNlZE5vZGVGb3JQ
b2ludChjb25zdCBXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9v
bCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50KTsKICAgICBSZWZQdHI8V2ViQ29yZTo6
UmFuZ2U+IHJhbmdlRm9yR3JhbnVsYXJpdHlBdFBvaW50KFdlYkNvcmU6OkZyYW1lJiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmLCB1aW50MzJfdCBncmFudWxhcml0eSwgYm9vbCBpc0ludGVyYWN0
aW5nV2l0aEZvY3VzZWRFbGVtZW50KTsKICAgICB2b2lkIHNldEZvY3VzZWRGcmFtZUJlZm9yZVNl
bGVjdGluZ1RleHRBdExvY2F0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CkBAIC0xMjU1
LDYgKzEyNTMsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIGFwcGx5QXV0b2NvcnJlY3Rpb25JbnRl
cm5hbChjb25zdCBTdHJpbmcmIGNvcnJlY3Rpb24sIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxUZXh0
KTsKICAgICBib29sIHNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCgpIGNvbnN0OwogI2VuZGlmCisj
aWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKKyAgICB2b2lkIHRleHRBdXRvU2l6aW5nQWRqdXN0
bWVudFRpbWVyRmlyZWQoKTsKKyAgICB2b2lkIHJlc2V0VGV4dEF1dG9zaXppbmcoKTsKKyAgICB2
b2lkIHJlc2V0SWRlbXBvdGVudFRleHRBdXRvc2l6aW5nSWZOZWVkZWQoZG91YmxlIHByZXZpb3Vz
SW5pdGlhbFNjYWxlKTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKFZJRVdQT1JUX1JFU0laSU5HKQog
ICAgIHZvaWQgc2NoZWR1bGVTaHJpbmtUb0ZpdENvbnRlbnQoKTsKQEAgLTE5NDUsNiArMTk0OCw5
IEBAIHByaXZhdGU6CiAjaWYgSEFWRShWSVNJQklMSVRZX1BST1BBR0FUSU9OX1ZJRVcpCiAgICAg
c3RkOjp1bmlxdWVfcHRyPExheWVySG9zdGluZ0NvbnRleHQ+IG1fY29udGV4dEZvclZpc2liaWxp
dHlQcm9wYWdhdGlvbjsKICNlbmRpZgorI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCisgICAg
V2ViQ29yZTo6VGltZXIgbV90ZXh0QXV0b1NpemluZ0FkanVzdG1lbnRUaW1lcjsKKyNlbmRpZgog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDIxZTUyN2EyOWQ1NTJjYjE0NDNi
ZWQwODRlYWI5ZjZiYTIwZTgwNTIuLjIzMzE1OTVlYWQxYzA1MjdmMTliMzg0MWQ1NTM4ZTNjNWUw
YTVmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCkBAIC0zMDY4LDE2ICszMDY4LDYgQEAgdm9pZCBXZWJQYWdlOjpzZXRPdmVy
cmlkZVZpZXdwb3J0QXJndW1lbnRzKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJn
dW0KICAgICBtX3BhZ2UtPnNldE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMoYXJndW1lbnRzKTsK
IH0KIAotdm9pZCBXZWJQYWdlOjpyZXNldFRleHRBdXRvc2l6aW5nKCkKLXsKLSAgICBmb3IgKEZy
YW1lKiBmcmFtZSA9ICZtX3BhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+
dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZy
YW1lLT5kb2N1bWVudCgpOwotICAgICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cmVu
ZGVyVmlldygpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGRvY3VtZW50LT5yZW5k
ZXJWaWV3KCktPnJlc2V0VGV4dEF1dG9zaXppbmcoKTsKLSAgICB9Ci19Ci0KIHZvaWQgV2ViUGFn
ZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRT
aXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29u
c3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
dGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5v
YnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRC
b3hFeHRlbnQmIHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHRhcmdldFNj
YWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRl
SUQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKQogewogICAgIFNldEZvclNjb3BlPGJvb2w+
IGR5bmFtaWNTaXplVXBkYXRlR3VhcmQobV9pbkR5bmFtaWNTaXplVXBkYXRlLCB0cnVlKTsKQEAg
LTMxMjMsOSArMzExMywxMCBAQCB2b2lkIFdlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGUoY29uc3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgVwogCiAgICAgSW50U2l6
ZSBuZXdMYXlvdXRTaXplID0gbV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubGF5b3V0U2l6ZSgpOwog
CisjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICBpZiAoc2V0Rml4ZWRMYXlvdXRTaXpl
KG5ld0xheW91dFNpemUpKQogICAgICAgICByZXNldFRleHRBdXRvc2l6aW5nKCk7Ci0KKyNlbmRp
ZgogICAgIHNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShtYXhpbXVtVW5vYnNjdXJlZFNpemUpOwog
ICAgIG1fcGFnZS0+c2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzKHRhcmdldFVub2JzY3VyZWRT
YWZlQXJlYUluc2V0cyk7CiAKQEAgLTMyOTksNiArMzI5MCw1MyBAQCB2b2lkIFdlYlBhZ2U6OnJl
c2V0Vmlld3BvcnREZWZhdWx0Q29uZmlndXJhdGlvbihXZWJGcmFtZSogZnJhbWUsIGJvb2wgaGFz
TW9iaWxlRAogICAgICAgICBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5zZXRWaWV3TGF5b3V0U2l6
ZShGbG9hdFNpemUoKm92ZXJyaWRkZW5WaWV3TGF5b3V0V2lkdGgsIG1fdmlld3BvcnRDb25maWd1
cmF0aW9uLmxheW91dEhlaWdodCgpKSk7CiB9CiAKKyNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5H
KQordm9pZCBXZWJQYWdlOjpyZXNldElkZW1wb3RlbnRUZXh0QXV0b3NpemluZ0lmTmVlZGVkKGRv
dWJsZSBwcmV2aW91c0luaXRpYWxTY2FsZSkKK3sKKyAgICBpZiAoIW1fcGFnZS0+c2V0dGluZ3Mo
KS50ZXh0QXV0b3NpemluZ1VzZXNJZGVtcG90ZW50TW9kZSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBjb25zdCBmbG9hdCBtaW5pbXVtU2NhbGVDaGFuZ2VCZWZvcmVSZWNvbXB1dGluZ1RleHRB
dXRvc2l6aW5nID0gMC4wMTsKKyAgICBpZiAoc3RkOjphYnMocHJldmlvdXNJbml0aWFsU2NhbGUg
LSBtX3BhZ2UtPmluaXRpYWxTY2FsZSgpKSA8IG1pbmltdW1TY2FsZUNoYW5nZUJlZm9yZVJlY29t
cHV0aW5nVGV4dEF1dG9zaXppbmcpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3BhZ2Ut
PmluaXRpYWxTY2FsZSgpID49IDEgJiYgcHJldmlvdXNJbml0aWFsU2NhbGUgPj0gMSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKCFtX3BhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byYgZnJhbWVWaWV3ID0gKm1fcGFnZS0+bWFpbkZyYW1lKCku
dmlldygpOworICAgIGF1dG8gaXNWaXNhdWxseU5vbkVtcHR5ID0gZnJhbWVWaWV3LmlzVmlzdWFs
bHlOb25FbXB0eSgpOworICAgIGF1dG8gd2lsbEJlVmlzdWFsbHlOb25FbXB0eVNvb24gPSAhaXNW
aXNhdWxseU5vbkVtcHR5ICYmIGZyYW1lVmlldy5xdWFsaWZpZXNBc1Zpc3VhbGx5Tm9uRW1wdHko
KTsKKworICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gdXBkYXRlIHRleHQgc2l6aW5nIGVhZ2VybHku
IFRoZXJlIG1pZ2h0IGJlIG11bHRpcGxlIGluY29taW5nIGR5bmFtaWMgdmlld3BvcnQgY2hhbmdl
cy4KKyAgICBjb25zdCBTZWNvbmRzIGRlZmF1bHRUZXh0QXV0b1NpemluZ0RlbGF5T25WaWV3cG9y
dENoYW5nZSA9IDgwX21zOworICAgIGF1dG8gdGV4dEF1dG9TaXppbmdEZWxheU9uVmlld3BvcnRD
aGFuZ2UgPSBkZWZhdWx0VGV4dEF1dG9TaXppbmdEZWxheU9uVmlld3BvcnRDaGFuZ2U7CisgICAg
aWYgKHdpbGxCZVZpc3VhbGx5Tm9uRW1wdHlTb29uKSB7CisgICAgICAgIC8vIEJlIGEgYml0IG1v
cmUgYWdyZXNzaXZlIG9uIHRoZSBmaXJzdCBkaXNwbGF5LgorICAgICAgICBjb25zdCBTZWNvbmRz
IHNob3J0VGV4dEF1dG9TaXppbmdEZWxheU9uVmlld3BvcnRDaGFuZ2UgPSAyMF9tczsKKyAgICAg
ICAgdGV4dEF1dG9TaXppbmdEZWxheU9uVmlld3BvcnRDaGFuZ2UgPSBzaG9ydFRleHRBdXRvU2l6
aW5nRGVsYXlPblZpZXdwb3J0Q2hhbmdlOworICAgIH0gZWxzZSBpZiAoIWlzVmlzYXVsbHlOb25F
bXB0eSkgeworICAgICAgICAvLyBXZSBkb24ndCBhbnRpY2lwYXRlIGFueSBwYWluaW5nIGFmdGVy
IHRoZSBuZXh0IHVwY29taW5nIGxheW91dC4KKyAgICAgICAgY29uc3QgU2Vjb25kcyBsb25nVGV4
dEF1dG9TaXppbmdEZWxheU9uVmlld3BvcnRDaGFuZ2UgPSAxMDBfbXM7CisgICAgICAgIHRleHRB
dXRvU2l6aW5nRGVsYXlPblZpZXdwb3J0Q2hhbmdlID0gbG9uZ1RleHRBdXRvU2l6aW5nRGVsYXlP
blZpZXdwb3J0Q2hhbmdlOworCisgICAgfQorICAgIG1fdGV4dEF1dG9TaXppbmdBZGp1c3RtZW50
VGltZXIuc3RhcnRPbmVTaG90KHRleHRBdXRvU2l6aW5nRGVsYXlPblZpZXdwb3J0Q2hhbmdlKTsK
K30KKwordm9pZCBXZWJQYWdlOjpyZXNldFRleHRBdXRvc2l6aW5nKCkKK3sKKyAgICBmb3IgKEZy
YW1lKiBmcmFtZSA9ICZtX3BhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+
dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZy
YW1lLT5kb2N1bWVudCgpOworICAgICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cmVu
ZGVyVmlldygpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGRvY3VtZW50LT5yZW5k
ZXJWaWV3KCktPnJlc2V0VGV4dEF1dG9zaXppbmcoKTsKKyAgICB9Cit9CisjZW5kaWYKKwogI2lm
IEVOQUJMRShWSUVXUE9SVF9SRVNJWklORykKIAogdm9pZCBXZWJQYWdlOjpzY2hlZHVsZVNocmlu
a1RvRml0Q29udGVudCgpCkBAIC0zMzk2LDMxICszNDM0LDE3IEBAIGJvb2wgV2ViUGFnZTo6c2hv
dWxkSWdub3JlTWV0YVZpZXdwb3J0KCkgY29uc3QKICAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5n
cygpLnNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCgpOwogfQogCi12b2lkIFdlYlBhZ2U6OnJlc2V0
SWRlbXBvdGVudFRleHRBdXRvc2l6aW5nSWZOZWVkZWQoZG91YmxlIHByZXZpb3VzSW5pdGlhbFNj
YWxlKQotewotICAgIGlmICghbV9wYWdlLT5zZXR0aW5ncygpLnRleHRBdXRvc2l6aW5nVXNlc0lk
ZW1wb3RlbnRNb2RlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNvbnN0IGZsb2F0IG1pbmlt
dW1TY2FsZUNoYW5nZUJlZm9yZVJlY29tcHV0aW5nVGV4dEF1dG9zaXppbmcgPSAwLjAxOwotICAg
IGlmIChzdGQ6OmFicyhwcmV2aW91c0luaXRpYWxTY2FsZSAtIG1fcGFnZS0+aW5pdGlhbFNjYWxl
KCkpIDwgbWluaW11bVNjYWxlQ2hhbmdlQmVmb3JlUmVjb21wdXRpbmdUZXh0QXV0b3NpemluZykK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fcGFnZS0+aW5pdGlhbFNjYWxlKCkgPj0gMSAm
JiBwcmV2aW91c0luaXRpYWxTY2FsZSA+PSAxKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Bh
Z2UtPnNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOwotfQotCiB2b2lkIFdlYlBhZ2U6
OnZpZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5nZWQoWm9vbVRvSW5pdGlhbFNjYWxlIHpvb21Ub0lu
aXRpYWxTY2FsZSkKIHsKLSAgICBkb3VibGUgcHJldmlvdXNJbml0aWFsU2NhbGUgPSBtX3BhZ2Ut
PmluaXRpYWxTY2FsZSgpOwogICAgIGRvdWJsZSBpbml0aWFsU2NhbGUgPSBtX3ZpZXdwb3J0Q29u
ZmlndXJhdGlvbi5pbml0aWFsU2NhbGUoKTsKKyNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQor
ICAgIGRvdWJsZSBwcmV2aW91c0luaXRpYWxTY2FsZSA9IG1fcGFnZS0+aW5pdGlhbFNjYWxlKCk7
CiAgICAgbV9wYWdlLT5zZXRJbml0aWFsU2NhbGUoaW5pdGlhbFNjYWxlKTsKICAgICByZXNldElk
ZW1wb3RlbnRUZXh0QXV0b3NpemluZ0lmTmVlZGVkKHByZXZpb3VzSW5pdGlhbFNjYWxlKTsKIAog
ICAgIGlmIChzZXRGaXhlZExheW91dFNpemUobV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubGF5b3V0
U2l6ZSgpKSkKICAgICAgICAgcmVzZXRUZXh0QXV0b3NpemluZygpOwotCisjZW5kaWYKICAgICBk
b3VibGUgc2NhbGU7CiAgICAgaWYgKG1fdXNlckhhc0NoYW5nZWRQYWdlU2NhbGVGYWN0b3IgJiYg
em9vbVRvSW5pdGlhbFNjYWxlID09IFpvb21Ub0luaXRpYWxTY2FsZTo6Tm8pCiAgICAgICAgIHNj
YWxlID0gc3RkOjptYXgoc3RkOjptaW4ocGFnZVNjYWxlRmFjdG9yKCksIG1fdmlld3BvcnRDb25m
aWd1cmF0aW9uLm1heGltdW1TY2FsZSgpKSwgbV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubWluaW11
bVNjYWxlKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374501</attachid>
            <date>2019-07-19 15:07:44 -0700</date>
            <delta_ts>2019-07-20 05:52:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199718-20190719150743.patch</filename>
            <type>text/plain</type>
            <size>18558</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODQ3NWQzN2YyN2U1OTM1
MmVjZTg4NTQyOWEyMzgwM2ZhZjJmNzIzMC4uMmU4MDQwYmQyMThjZmM0NTY2NjNlNGFkOWYwZTc2
MjMzMzNhZTZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE5LTA3LTE5ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1RleHQgYXV0b3NpemluZ10g
RG8gbm90IG51a2UgdGhlIHN0eWxlIG9uIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTcxOAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTE5MDA2NjY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2hlbiB0aGUgcGFnZSBzY2FsZSBjaGFuZ2VzIChlLmcuIGFz
IHRoZSByZXN1bHQgb2Ygc2hpbmsgdG8gZml0IG1vZGUpIHdlIG5lZWQgdG8gdmlzaXQgYWxsIHRo
ZSB0ZXh0IGNvbnRlbnQgb24gdGhlIHBhZ2UgYW5kIGNoZWNrIHdoZXRoZXIgdGhleSBuZWVkIHRv
IGJlIGJvb3N0ZWQuCisgICAgICAgIEN1cnJlbnRseSB3ZSBjYWxsIHNldE5lZWRzUmVjYWxjU3R5
bGVJbkFsbEZyYW1lcygpIHRvIGFjY29tcGxpc2ggaXQuIFVuZm9ydHVuYXRlbGx5IHNldE5lZWRz
UmVjYWxjU3R5bGVJbkFsbEZyYW1lcyBkZXN0cm95cyBhbGwgdGhlIHN0eWxlIGluZm9ybWF0aW9u
IHdoaWNoIG1lYW5zIHRoYXQgdGhlCisgICAgICAgIHN1YnNlcXVlbnQgc3R5bGVSZXNvbHZlKCkg
bmVlZHMgdG8gc3RhcnQgZnJvbSBzY3JhdGNoLgorICAgICAgICBUaGlzIHBhdGNoIGFkZHJlc3Nl
cyB0aGlzIGlzc3VlIGJ5IGRpcmVjdGx5IGFkanVzdGluZyB0aGUgY29tcHV0ZWQgc3R5bGUgaW5m
b3JtYXRpb24gd2hlbiB0ZXh0IGJvb3N0aW5nIGlzIHJlcXVpcmVkIGFuZCBzY2hlZHVsZXMgbGF5
b3V0IGFjY29yZGluZ2x5LiBXZSBhbHNvIHRyaWdnZXIgdGhpcyBzdHlsZSBhZGp1c3RpbmcKKyAg
ICAgICAgb24gYSB0aW1lciBzbyB0aGF0IHJhcGlkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUo
KSBjYWxscyB3b24ndCB0cmlnZ2VyIHJlZHVuZGFudCBsYXlvdXRzLiAgIAorCisgICAgICAgICog
Y3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGFzVGV4dENoaWxkKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmFkanVzdFJlbmRlclN0eWxlRm9yVGV4
dEF1dG9zaXppbmcpOgorICAgICAgICAoV2ViQ29yZTo6aGFzVGV4dENoaWxkcmVuKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5oOgorICAgICAgICAqIHBhZ2UvRnJhbWUu
aDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppbnZhbGlkYXRlVGV4dEF1dG9TaXplSW5BbGxGcmFt
ZXMpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorCiAyMDE5LTA3LTE5ICBEZWFuIEphY2tzb24g
IDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBtZW51IGl0ZW0gdG8gdG9nZ2xlIGJl
dHdlZW4gc2hvd2luZyBhbmQgaGlkaW5nIGxpbmsgcHJldmlld3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTIxOWVi
ZDNlYjM4ZmMyMDc5Y2QwZDlkYTM5NTgxYTg3NzU5YmI5Yi4uYTczZmEzMTQ0MzBiNjA3MTYwNjI2
NDA2N2E2YzE1MzUwNzhhYTVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxOS0wNy0x
OSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtUZXh0IGF1dG9z
aXppbmddIERvIG5vdCBudWtlIHRoZSBzdHlsZSBvbiBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk3MTgK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxOTAwNjY2PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjptX3RleHRBdXRvU2l6aW5nQWRqdXN0bWVudFRpbWVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpkaWRDb21taXRMb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dGV4dEF1dG9T
aXppbmdBZGp1c3RtZW50VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6Om1fc2hyaW5rVG9G
aXRDb250ZW50VGltZXIpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVzZXRJZGVtcG90ZW50VGV4dEF1dG9zaXppbmdJ
Zk5lZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlc2V0VGV4dEF1dG9zaXppbmcp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2Vk
KToKKwogMjAxOS0wNy0xOSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIGEgbWVudSBpdGVtIHRvIHRvZ2dsZSBiZXR3ZWVuIHNob3dpbmcgYW5kIGhpZGluZyBs
aW5rIHByZXZpZXdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggNDZmNGYy
NjU2ZTQyZWMwMTBjYTRhNGRmZDM1ZGI1YTk4YmJlNWZjZC4uYjdkYjdiMmUwYzQzNDI0Njc4MjJl
MWI3YjY0M2YzMWVhYWJjMDk4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApA
QCAtODcxLDcgKzg3MSw3IEBAIHN0YXRpYyBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGNvbXB1dGVF
ZmZlY3RpdmVUb3VjaEFjdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUmIHN0CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCi1zdGF0aWMgYm9vbCBoYXNUZXh0Q2hpbGRyZW4oY29u
c3QgRWxlbWVudCYgZWxlbWVudCkKK3N0YXRpYyBib29sIGhhc1RleHRDaGlsZChjb25zdCBFbGVt
ZW50JiBlbGVtZW50KQogewogICAgIGZvciAoYXV0byogY2hpbGQgPSBlbGVtZW50LmZpcnN0Q2hp
bGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYg
KGlzPFRleHQ+KGNoaWxkKSkKQEAgLTg4MCwxNyArODgwLDE0IEBAIHN0YXRpYyBib29sIGhhc1Rl
eHRDaGlsZHJlbihjb25zdCBFbGVtZW50JiBlbGVtZW50KQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotdm9pZCBTdHlsZVJlc29sdmVyOjphZGp1c3RSZW5kZXJTdHlsZUZvclRleHRBdXRvc2l6aW5n
KFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCYgZWxlbWVudCkKK2Jvb2wgU3R5bGVS
ZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGVGb3JUZXh0QXV0b3NpemluZyhSZW5kZXJTdHlsZSYg
c3R5bGUsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgaWYgKCFzZXR0aW5ncygpLnRl
eHRBdXRvc2l6aW5nRW5hYmxlZCgpIHx8ICFzZXR0aW5ncygpLnRleHRBdXRvc2l6aW5nVXNlc0lk
ZW1wb3RlbnRNb2RlKCkpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgQXV0b3NpemVTdGF0dXM6OnVwZGF0ZVN0YXR1cyhzdHlsZSk7Ci0gICAgaWYgKCFoYXNU
ZXh0Q2hpbGRyZW4oZWxlbWVudCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmIChzdHlsZS50
ZXh0U2l6ZUFkanVzdCgpLmlzTm9uZSgpKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGZsb2F0IGluaXRpYWxTY2FsZSA9IGRvY3VtZW50KCkucGFnZSgpID8g
ZG9jdW1lbnQoKS5wYWdlKCktPmluaXRpYWxTY2FsZSgpIDogMTsKICAgICBhdXRvIGFkanVzdExp
bmVIZWlnaHRJZk5lZWRlZCA9IFsmXShhdXRvIGNvbXB1dGVkRm9udFNpemUpIHsKQEAgLTkxMiwx
NiArOTA5LDIwIEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGVGb3JUZXh0
QXV0b3NpemluZyhSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0CiAgICAgYXV0byBzcGVjaWZpZWRG
b250U2l6ZSA9IGZvbnREZXNjcmlwdGlvbi5zcGVjaWZpZWRTaXplKCk7CiAgICAgYm9vbCBpc0Nh
bmRpZGF0ZSA9IHN0eWxlLmlzSWRlbXBvdGVudFRleHRBdXRvc2l6aW5nQ2FuZGlkYXRlKCk7CiAg
ICAgaWYgKCFpc0NhbmRpZGF0ZSAmJiBXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwoaW5pdGlhbENv
bXB1dGVkRm9udFNpemUsIHNwZWNpZmllZEZvbnRTaXplKSkKLSAgICAgICAgcmV0dXJuOworICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBhdXRvIGFkanVzdGVkRm9udFNpemUgPSBBdXRvc2l6
ZVN0YXR1czo6aWRlbXBvdGVudFRleHRTaXplKGZvbnREZXNjcmlwdGlvbi5zcGVjaWZpZWRTaXpl
KCksIGluaXRpYWxTY2FsZSk7CiAgICAgaWYgKGlzQ2FuZGlkYXRlICYmIFdURjo6YXJlRXNzZW50
aWFsbHlFcXVhbChpbml0aWFsQ29tcHV0ZWRGb250U2l6ZSwgYWRqdXN0ZWRGb250U2l6ZSkpCi0g
ICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFoYXNUZXh0
Q2hpbGQoZWxlbWVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGZvbnREZXNjcmlw
dGlvbi5zZXRDb21wdXRlZFNpemUoaXNDYW5kaWRhdGUgPyBhZGp1c3RlZEZvbnRTaXplIDogc3Bl
Y2lmaWVkRm9udFNpemUpOwogICAgIHN0eWxlLnNldEZvbnREZXNjcmlwdGlvbihXVEZNb3ZlKGZv
bnREZXNjcmlwdGlvbikpOwogICAgIHN0eWxlLmZvbnRDYXNjYWRlKCkudXBkYXRlKCZkb2N1bWVu
dCgpLmZvbnRTZWxlY3RvcigpKTsKICAgICBhZGp1c3RMaW5lSGVpZ2h0SWZOZWVkZWQoYWRqdXN0
ZWRGb250U2l6ZSk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmgKaW5kZXggOGM4OGRhOGQ1YzdmYTQyZWQ5ZDgxMmEwOGYxNGVhMGQ0MGEx
MWNlYy4uZDhhYzMyODkyZGNkMTM1NTI2Mjk4YWUxMjViZmIxN2M4YzE3NTBhOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC00NjksNiArNDY5LDggQEAgcHVibGljOgogCiAgICAg
UmVmUHRyPENTU1ZhbHVlPiByZXNvbHZlZFZhcmlhYmxlVmFsdWUoQ1NTUHJvcGVydHlJRCwgY29u
c3QgQ1NTVmFsdWUmLCBBcHBseUNhc2NhZGVkUHJvcGVydHlTdGF0ZSYpIGNvbnN0OwogCisgICAg
Ym9vbCBhZGp1c3RSZW5kZXJTdHlsZUZvclRleHRBdXRvc2l6aW5nKFJlbmRlclN0eWxlJiwgY29u
c3QgRWxlbWVudCYpOworCiBwcml2YXRlOgogICAgIHZvaWQgY2FjaGVCb3JkZXJBbmRCYWNrZ3Jv
dW5kKCk7CiAKQEAgLTUwMCw4ICs1MDIsNiBAQCBwcml2YXRlOgogICAgIC8vIHRoZSBsYXN0IHJl
ZmVyZW5jZSB0byBhIHN0eWxlIGRlY2xhcmF0aW9uIGFyZSBnYXJiYWdlIGNvbGxlY3RlZC4KICAg
ICB2b2lkIHN3ZWVwTWF0Y2hlZFByb3BlcnRpZXNDYWNoZSgpOwogCi0gICAgdm9pZCBhZGp1c3RS
ZW5kZXJTdHlsZUZvclRleHRBdXRvc2l6aW5nKFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCYp
OwotCiAgICAgdHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBNYXRjaGVkUHJvcGVydGllc0NhY2hl
SXRlbT4gTWF0Y2hlZFByb3BlcnRpZXNDYWNoZTsKICAgICBNYXRjaGVkUHJvcGVydGllc0NhY2hl
IG1fbWF0Y2hlZFByb3BlcnRpZXNDYWNoZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXgg
MzIwN2E0ZDNlMTA3MDYzYzJiMTIyMzI1Nzg4MThjYThlOTlhZWNhNi4uNDg3NDgzZWQxYmYyZmJj
OGY5ODhkZTZmN2M0ODA2MmJiYTM5ZDQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0z
OTcsNiArMzk3LDggQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlSXNWaXN1YWxseU5vbkVtcHR5
KCk7CiAgICAgdm9pZCB1cGRhdGVTaWduaWZpY2FudFJlbmRlcmVkVGV4dE1pbGVzdG9uZUlmTmVl
ZGVkKCk7CiAgICAgYm9vbCBpc1Zpc3VhbGx5Tm9uRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2lz
VmlzdWFsbHlOb25FbXB0eTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcXVhbGlmaWVzQXNW
aXN1YWxseU5vbkVtcHR5KCkgY29uc3Q7CisKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuYWJs
ZUF1dG9TaXplTW9kZShib29sIGVuYWJsZSwgY29uc3QgSW50U2l6ZSYgbWluU2l6ZSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdXRvU2l6ZUZpeGVkTWluaW11bUhlaWdodChpbnQpOwog
ICAgIGJvb2wgaXNBdXRvU2l6ZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEF1dG9T
aXplOyB9CkBAIC03ODYsNyArNzg4LDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbWFya1Jvb3RP
ckJvZHlSZW5kZXJlckRpcnR5KCkgY29uc3Q7CiAKLSAgICBib29sIHF1YWxpZmllc0FzVmlzdWFs
bHlOb25FbXB0eSgpIGNvbnN0OwogICAgIGJvb2wgcXVhbGlmaWVzQXNTaWduaWZpY2FudFJlbmRl
cmVkVGV4dCgpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlSGFzUmVhY2hlZFNpZ25pZmljYW50UmVu
ZGVyZWRUZXh0VGhyZXNob2xkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDY2NDQ1ZmMxMTE5
M2NmNGYxYzA1OGIxNTRkMmY3NjhhMWIxYTlmYWUuLjExZWRiM2NkYTBhYzBlNmFjMmU3MzlhZDRk
NGJkYTM5Nzg4ZmY1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtOTEsNiArOTEsNyBAQAogI2lu
Y2x1ZGUgIlBvaW50ZXJDYXB0dXJlQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBvaW50ZXJMb2Nr
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgorI2luY2x1ZGUgIlJl
bmRlckRlc2NlbmRhbnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRv
ci5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgpA
QCAtMzAwOSw0ICszMDEwLDI3IEBAIHZvaWQgUGFnZTo6ZGlkRmluaXNoTG9hZGluZ0ltYWdlRm9y
RWxlbWVudChIVE1MSW1hZ2VFbGVtZW50JiBlbGVtZW50KQogICAgIGNocm9tZSgpLmNsaWVudCgp
LmRpZEZpbmlzaExvYWRpbmdJbWFnZUZvckVsZW1lbnQoZWxlbWVudCk7CiB9CiAKKyNpZiBFTkFC
TEUoVEVYVF9BVVRPU0laSU5HKQordm9pZCBQYWdlOjppbnZhbGlkYXRlVGV4dEF1dG9TaXplSW5B
bGxGcmFtZXMoKQoreworICAgIEFTU0VSVChzZXR0aW5ncygpLnRleHRBdXRvc2l6aW5nRW5hYmxl
ZCgpICYmIHNldHRpbmdzKCkudGV4dEF1dG9zaXppbmdVc2VzSWRlbXBvdGVudE1vZGUoKSk7Cisg
ICAgZm9yIChhdXRvKiBmcmFtZSA9ICZtYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUt
PnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgeworICAgICAgICBpZiAoIWZyYW1lLT5kb2N1bWVudCgp
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGF1dG8mIGRvY3VtZW50ID0gKmZyYW1l
LT5kb2N1bWVudCgpOworICAgICAgICBpZiAoIWRvY3VtZW50LnJlbmRlclZpZXcoKSB8fCAhZG9j
dW1lbnQuc3R5bGVTY29wZSgpLnJlc29sdmVySWZFeGlzdHMoKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgIGF1dG8mIHN0eWxlUmVzb2x2ZXIgPSBkb2N1bWVudC5zdHlsZVNjb3Bl
KCkucmVzb2x2ZXIoKTsKKyAgICAgICAgZm9yIChhdXRvJiByZW5kZXJlciA6IGRlc2NlbmRhbnRz
T2ZUeXBlPFJlbmRlckVsZW1lbnQ+KCpkb2N1bWVudC5yZW5kZXJWaWV3KCkpKSB7CisgICAgICAg
ICAgICBpZiAoYXV0byogZWxlbWVudCA9IHJlbmRlcmVyLmVsZW1lbnQoKSkgeworICAgICAgICAg
ICAgICAgIGF1dG8gbmVlZHNMYXlvdXQgPSBzdHlsZVJlc29sdmVyLmFkanVzdFJlbmRlclN0eWxl
Rm9yVGV4dEF1dG9zaXppbmcocmVuZGVyZXIubXV0YWJsZVN0eWxlKCksICplbGVtZW50KTsKKyAg
ICAgICAgICAgICAgICBpZiAobmVlZHNMYXlvdXQpCisgICAgICAgICAgICAgICAgICAgIHJlbmRl
cmVyLnNldE5lZWRzTGF5b3V0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9
CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA3ODkz
MzNhMzk1MDk4MTQ0ODFhMWM0ZTk1YTkzOGNhMjNiZjk0MmIzLi5mNzE2MTc0ODZjZTk4NmNjMWEz
ZDU0ZDIzMDA2NTU0MDM5MmNlMjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMzg4LDYgKzM4OCw3IEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIGZsb2F0IHRleHRBdXRv
c2l6aW5nV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3RleHRBdXRvc2l6aW5nV2lkdGg7IH0KICAg
ICB2b2lkIHNldFRleHRBdXRvc2l6aW5nV2lkdGgoZmxvYXQgdGV4dEF1dG9zaXppbmdXaWR0aCkg
eyBtX3RleHRBdXRvc2l6aW5nV2lkdGggPSB0ZXh0QXV0b3NpemluZ1dpZHRoOyB9CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBpbnZhbGlkYXRlVGV4dEF1dG9TaXplSW5BbGxGcmFtZXMoKTsKICNl
bmRpZgogCiAgICAgY29uc3QgRmxvYXRCb3hFeHRlbnQmIGZ1bGxzY3JlZW5JbnNldHMoKSBjb25z
dCB7IHJldHVybiBtX2Z1bGxzY3JlZW5JbnNldHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMTA5NDRmNzM4ZGE0ZWNjYzMyYzYwNjdkZjQ3
YWY0YzZhYWUyNGVmMC4uYWFiZmFjNjhiNTBlZmFjMTQ4ZDA1ZTdjNGYwYTI2ZDk0MWY4M2M0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQz
MSw2ICs0MzEsOSBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAjaWYgRU5BQkxFKFZJRVdQT1JU
X1JFU0laSU5HKQogICAgICwgbV9zaHJpbmtUb0ZpdENvbnRlbnRUaW1lcigqdGhpcywgJldlYlBh
Z2U6OnNocmlua1RvRml0Q29udGVudFRpbWVyRmlyZWQsIDBfcykKICNlbmRpZgorI2lmIEVOQUJM
RShURVhUX0FVVE9TSVpJTkcpCisgICAgLCBtX3RleHRBdXRvU2l6aW5nQWRqdXN0bWVudFRpbWVy
KCp0aGlzLCAmV2ViUGFnZTo6dGV4dEF1dG9TaXppbmdBZGp1c3RtZW50VGltZXJGaXJlZCkKKyNl
bmRpZgogewogICAgIEFTU0VSVChtX3BhZ2VJRCk7CiAKQEAgLTE0MDIsNiArMTQwNSwxMCBAQCB2
b2lkIFdlYlBhZ2U6OmNsb3NlKCkKICAgICBtX3Nocmlua1RvRml0Q29udGVudFRpbWVyLnN0b3Ao
KTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKKyAgICBtX3RleHRBdXRv
U2l6aW5nQWRqdXN0bWVudFRpbWVyLnN0b3AoKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENPTlRF
WFRfTUVOVVMpCiAgICAgbV9jb250ZXh0TWVudUNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8QVBJ
OjpJbmplY3RlZEJ1bmRsZTo6UGFnZUNvbnRleHRNZW51Q2xpZW50PigpOwogI2VuZGlmCkBAIC01
NzkzLDYgKzU4MDAsMTAgQEAgdm9pZCBXZWJQYWdlOjpkaWRDb21taXRMb2FkKFdlYkZyYW1lKiBm
cmFtZSkKICAgICBtX3Nocmlua1RvRml0Q29udGVudFRpbWVyLnN0b3AoKTsKICNlbmRpZgogCisj
aWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKKyAgICBtX3RleHRBdXRvU2l6aW5nQWRqdXN0bWVu
dFRpbWVyLnN0b3AoKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFBSSU1BUllfU05BUFNIT1RURURf
UExVR0lOX0hFVVJJU1RJQykKICAgICByZXNldFByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbigpOwog
I2VuZGlmCkBAIC02Nzk2LDYgKzY4MDcsMTMgQEAgdm9pZCBXZWJQYWdlOjpkaWRGaW5pc2hMb2Fk
aW5nSW1hZ2VGb3JFbGVtZW50KFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQmKQogCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCit2b2lkIFdlYlBhZ2U6OnRleHRBdXRvU2l6
aW5nQWRqdXN0bWVudFRpbWVyRmlyZWQoKQoreworICAgIG1fcGFnZS0+aW52YWxpZGF0ZVRleHRB
dXRvU2l6ZUluQWxsRnJhbWVzKCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKICN1bmRlZiBSRUxFQVNFX0xPR19JRl9BTExPV0VECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYjE1ZDZiODY4NzYyNTdjNmE0ZWUxZmU4NzBlMTkz
NjA2NmI5ZTY0NS4uOTU0MDllOWIwNGNlZTZlMTdlZDE5NWMxYjNmMDU0NjU1OGEwZDZiNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTI1MSw4ICsx
MjUxLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZVN5bnRoZXRpY0NsaWNrKFdlYkNvcmU6
Ok5vZGUmIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYg
bG9jYXRpb24sIE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4sIFdlYkNvcmU6
OlBvaW50ZXJJRCA9IFdlYkNvcmU6Om1vdXNlUG9pbnRlcklEKTsKICAgICB2b2lkIGNvbXBsZXRl
U3ludGhldGljQ2xpY2soV2ViQ29yZTo6Tm9kZSYgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhdGlvbiwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZl
bnQ6Ok1vZGlmaWVyPiwgV2ViQ29yZTo6U3ludGhldGljQ2xpY2tUeXBlLCBXZWJDb3JlOjpQb2lu
dGVySUQgPSBXZWJDb3JlOjptb3VzZVBvaW50ZXJJRCk7CiAgICAgdm9pZCBzZW5kVGFwSGlnaGxp
Z2h0Rm9yTm9kZUlmTmVjZXNzYXJ5KHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6Tm9kZSop
OwotICAgIHZvaWQgcmVzZXRUZXh0QXV0b3NpemluZygpOwotICAgIHZvaWQgcmVzZXRJZGVtcG90
ZW50VGV4dEF1dG9zaXppbmdJZk5lZWRlZChkb3VibGUgcHJldmlvdXNJbml0aWFsU2NhbGUpOwog
ICAgIFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25JbkZvY3VzZWROb2Rl
Rm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYs
IGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCk7CiAgICAgUmVmUHRyPFdlYkNv
cmU6OlJhbmdlPiByYW5nZUZvckdyYW51bGFyaXR5QXRQb2ludChXZWJDb3JlOjpGcmFtZSYsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiwgdWludDMyX3QgZ3JhbnVsYXJpdHksIGJvb2wgaXNJbnRl
cmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCk7CiAgICAgdm9pZCBzZXRGb2N1c2VkRnJhbWVCZWZv
cmVTZWxlY3RpbmdUZXh0QXRMb2NhdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwpAQCAt
MTI2NSw2ICsxMjYzLDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBhcHBseUF1dG9jb3JyZWN0aW9u
SW50ZXJuYWwoY29uc3QgU3RyaW5nJiBjb3JyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFs
VGV4dCk7CiAgICAgYm9vbCBzaG91bGRJZ25vcmVNZXRhVmlld3BvcnQoKSBjb25zdDsKICNlbmRp
ZgorI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCisgICAgdm9pZCB0ZXh0QXV0b1NpemluZ0Fk
anVzdG1lbnRUaW1lckZpcmVkKCk7CisgICAgdm9pZCByZXNldFRleHRBdXRvc2l6aW5nKCk7Cisg
ICAgdm9pZCByZXNldElkZW1wb3RlbnRUZXh0QXV0b3NpemluZ0lmTmVlZGVkKGRvdWJsZSBwcmV2
aW91c0luaXRpYWxTY2FsZSk7CisjZW5kaWYKIAogI2lmIEVOQUJMRShWSUVXUE9SVF9SRVNJWklO
RykKICAgICB2b2lkIHNjaGVkdWxlU2hyaW5rVG9GaXRDb250ZW50KCk7CkBAIC0xOTU2LDYgKzE5
NTksOSBAQCBwcml2YXRlOgogI2lmIEhBVkUoVklTSUJJTElUWV9QUk9QQUdBVElPTl9WSUVXKQog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXllckhvc3RpbmdDb250ZXh0PiBtX2NvbnRleHRGb3JWaXNp
YmlsaXR5UHJvcGFnYXRpb247CiAjZW5kaWYKKyNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQor
ICAgIFdlYkNvcmU6OlRpbWVyIG1fdGV4dEF1dG9TaXppbmdBZGp1c3RtZW50VGltZXI7CisjZW5k
aWYKIH07CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggYzU2NjY0OTAyNTVm
YTFiYzczZTIzNjkyNTllMDgxNjVkYjhmMWY3ZC4uNjM2MDBlMTMwOTQ2OThlOTIxNmRlODQwOGIw
ZWY4YWQzZWY4MmI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTMxMDgsMTYgKzMxMDgsNiBAQCB2b2lkIFdlYlBhZ2U6
OnNldE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMoY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6Vmll
d3BvcnRBcmd1bQogICAgIG1fcGFnZS0+c2V0T3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50cyhhcmd1
bWVudHMpOwogfQogCi12b2lkIFdlYlBhZ2U6OnJlc2V0VGV4dEF1dG9zaXppbmcoKQotewotICAg
IGZvciAoRnJhbWUqIGZyYW1lID0gJm1fcGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9
IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKLSAgICAgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7Ci0gICAgICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3Vt
ZW50LT5yZW5kZXJWaWV3KCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgZG9jdW1l
bnQtPnJlbmRlclZpZXcoKS0+cmVzZXRUZXh0QXV0b3NpemluZygpOwotICAgIH0KLX0KLQogdm9p
ZCBXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmll
d0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRT
aXplLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0
YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdEJveEV4dGVudCYgdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUg
dGFyZ2V0U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIER5bmFtaWNWaWV3cG9ydFNp
emVVcGRhdGVJRCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCiB7CiAgICAgU2V0Rm9yU2Nv
cGU8Ym9vbD4gZHluYW1pY1NpemVVcGRhdGVHdWFyZChtX2luRHluYW1pY1NpemVVcGRhdGUsIHRy
dWUpOwpAQCAtMzE2Myw5ICszMTUzLDEwIEBAIHZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0
U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXCiAKICAg
ICBJbnRTaXplIG5ld0xheW91dFNpemUgPSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5sYXlvdXRT
aXplKCk7CiAKKyNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIGlmIChzZXRGaXhlZExh
eW91dFNpemUobmV3TGF5b3V0U2l6ZSkpCiAgICAgICAgIHJlc2V0VGV4dEF1dG9zaXppbmcoKTsK
LQorI2VuZGlmCiAgICAgc2V0TWF4aW11bVVub2JzY3VyZWRTaXplKG1heGltdW1Vbm9ic2N1cmVk
U2l6ZSk7CiAgICAgbV9wYWdlLT5zZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHModGFyZ2V0VW5v
YnNjdXJlZFNhZmVBcmVhSW5zZXRzKTsKIApAQCAtMzMzNiw2ICszMzI3LDUzIEBAIHZvaWQgV2Vi
UGFnZTo6cmVzZXRWaWV3cG9ydERlZmF1bHRDb25maWd1cmF0aW9uKFdlYkZyYW1lKiBmcmFtZSwg
Ym9vbCBoYXNNb2JpbGVECiAgICAgICAgIG1fdmlld3BvcnRDb25maWd1cmF0aW9uLnNldERlZmF1
bHRDb25maWd1cmF0aW9uKHBhcmFtZXRlcnNGb3JTdGFuZGFyZEZyYW1lKCkpOwogfQogCisjaWYg
RU5BQkxFKFRFWFRfQVVUT1NJWklORykKK3ZvaWQgV2ViUGFnZTo6cmVzZXRJZGVtcG90ZW50VGV4
dEF1dG9zaXppbmdJZk5lZWRlZChkb3VibGUgcHJldmlvdXNJbml0aWFsU2NhbGUpCit7CisgICAg
aWYgKCFtX3BhZ2UtPnNldHRpbmdzKCkudGV4dEF1dG9zaXppbmdVc2VzSWRlbXBvdGVudE1vZGUo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgZmxvYXQgbWluaW11bVNjYWxlQ2hhbmdl
QmVmb3JlUmVjb21wdXRpbmdUZXh0QXV0b3NpemluZyA9IDAuMDE7CisgICAgaWYgKHN0ZDo6YWJz
KHByZXZpb3VzSW5pdGlhbFNjYWxlIC0gbV9wYWdlLT5pbml0aWFsU2NhbGUoKSkgPCBtaW5pbXVt
U2NhbGVDaGFuZ2VCZWZvcmVSZWNvbXB1dGluZ1RleHRBdXRvc2l6aW5nKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAobV9wYWdlLT5pbml0aWFsU2NhbGUoKSA+PSAxICYmIHByZXZpb3VzSW5p
dGlhbFNjYWxlID49IDEpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9wYWdlLT5tYWlu
RnJhbWUoKS52aWV3KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGZyYW1lVmlldyA9
ICptX3BhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKTsKKyAgICBhdXRvIGlzVmlzYXVsbHlOb25FbXB0
eSA9IGZyYW1lVmlldy5pc1Zpc3VhbGx5Tm9uRW1wdHkoKTsKKyAgICBhdXRvIHdpbGxCZVZpc3Vh
bGx5Tm9uRW1wdHlTb29uID0gIWlzVmlzYXVsbHlOb25FbXB0eSAmJiBmcmFtZVZpZXcucXVhbGlm
aWVzQXNWaXN1YWxseU5vbkVtcHR5KCk7CisKKyAgICAvLyBXZSBkb24ndCBuZWVkIHRvIHVwZGF0
ZSB0ZXh0IHNpemluZyBlYWdlcmx5LiBUaGVyZSBtaWdodCBiZSBtdWx0aXBsZSBpbmNvbWluZyBk
eW5hbWljIHZpZXdwb3J0IGNoYW5nZXMuCisgICAgY29uc3QgU2Vjb25kcyBkZWZhdWx0VGV4dEF1
dG9TaXppbmdEZWxheU9uVmlld3BvcnRDaGFuZ2UgPSA4MF9tczsKKyAgICBhdXRvIHRleHRBdXRv
U2l6aW5nRGVsYXlPblZpZXdwb3J0Q2hhbmdlID0gZGVmYXVsdFRleHRBdXRvU2l6aW5nRGVsYXlP
blZpZXdwb3J0Q2hhbmdlOworICAgIGlmICh3aWxsQmVWaXN1YWxseU5vbkVtcHR5U29vbikgewor
ICAgICAgICAvLyBCZSBhIGJpdCBtb3JlIGFncmVzc2l2ZSBvbiB0aGUgZmlyc3QgZGlzcGxheS4K
KyAgICAgICAgY29uc3QgU2Vjb25kcyBzaG9ydFRleHRBdXRvU2l6aW5nRGVsYXlPblZpZXdwb3J0
Q2hhbmdlID0gMjBfbXM7CisgICAgICAgIHRleHRBdXRvU2l6aW5nRGVsYXlPblZpZXdwb3J0Q2hh
bmdlID0gc2hvcnRUZXh0QXV0b1NpemluZ0RlbGF5T25WaWV3cG9ydENoYW5nZTsKKyAgICB9IGVs
c2UgaWYgKCFpc1Zpc2F1bGx5Tm9uRW1wdHkpIHsKKyAgICAgICAgLy8gV2UgZG9uJ3QgYW50aWNp
cGF0ZSBhbnkgcGFpbmluZyBhZnRlciB0aGUgbmV4dCB1cGNvbWluZyBsYXlvdXQuCisgICAgICAg
IGNvbnN0IFNlY29uZHMgbG9uZ1RleHRBdXRvU2l6aW5nRGVsYXlPblZpZXdwb3J0Q2hhbmdlID0g
MTAwX21zOworICAgICAgICB0ZXh0QXV0b1NpemluZ0RlbGF5T25WaWV3cG9ydENoYW5nZSA9IGxv
bmdUZXh0QXV0b1NpemluZ0RlbGF5T25WaWV3cG9ydENoYW5nZTsKKworICAgIH0KKyAgICBtX3Rl
eHRBdXRvU2l6aW5nQWRqdXN0bWVudFRpbWVyLnN0YXJ0T25lU2hvdCh0ZXh0QXV0b1NpemluZ0Rl
bGF5T25WaWV3cG9ydENoYW5nZSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6cmVzZXRUZXh0QXV0b3Np
emluZygpCit7CisgICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbV9wYWdlLT5tYWluRnJhbWUoKTsg
ZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgeworICAgICAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgaWYgKCFkb2N1
bWVudCB8fCAhZG9jdW1lbnQtPnJlbmRlclZpZXcoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICBkb2N1bWVudC0+cmVuZGVyVmlldygpLT5yZXNldFRleHRBdXRvc2l6aW5nKCk7Cisg
ICAgfQorfQorI2VuZGlmCisKICNpZiBFTkFCTEUoVklFV1BPUlRfUkVTSVpJTkcpCiAKIHZvaWQg
V2ViUGFnZTo6c2NoZWR1bGVTaHJpbmtUb0ZpdENvbnRlbnQoKQpAQCAtMzQzMCwzMSArMzQ2OCwx
NyBAQCBib29sIFdlYlBhZ2U6OnNob3VsZElnbm9yZU1ldGFWaWV3cG9ydCgpIGNvbnN0CiAgICAg
cmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS5zaG91bGRJZ25vcmVNZXRhVmlld3BvcnQoKTsKIH0K
IAotdm9pZCBXZWJQYWdlOjpyZXNldElkZW1wb3RlbnRUZXh0QXV0b3NpemluZ0lmTmVlZGVkKGRv
dWJsZSBwcmV2aW91c0luaXRpYWxTY2FsZSkKLXsKLSAgICBpZiAoIW1fcGFnZS0+c2V0dGluZ3Mo
KS50ZXh0QXV0b3NpemluZ1VzZXNJZGVtcG90ZW50TW9kZSgpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBjb25zdCBmbG9hdCBtaW5pbXVtU2NhbGVDaGFuZ2VCZWZvcmVSZWNvbXB1dGluZ1RleHRB
dXRvc2l6aW5nID0gMC4wMTsKLSAgICBpZiAoc3RkOjphYnMocHJldmlvdXNJbml0aWFsU2NhbGUg
LSBtX3BhZ2UtPmluaXRpYWxTY2FsZSgpKSA8IG1pbmltdW1TY2FsZUNoYW5nZUJlZm9yZVJlY29t
cHV0aW5nVGV4dEF1dG9zaXppbmcpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX3BhZ2Ut
PmluaXRpYWxTY2FsZSgpID49IDEgJiYgcHJldmlvdXNJbml0aWFsU2NhbGUgPj0gMSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgbV9wYWdlLT5zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMo
KTsKLX0KLQogdm9pZCBXZWJQYWdlOjp2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKFpvb21U
b0luaXRpYWxTY2FsZSB6b29tVG9Jbml0aWFsU2NhbGUpCiB7Ci0gICAgZG91YmxlIHByZXZpb3Vz
SW5pdGlhbFNjYWxlID0gbV9wYWdlLT5pbml0aWFsU2NhbGUoKTsKICAgICBkb3VibGUgaW5pdGlh
bFNjYWxlID0gbV92aWV3cG9ydENvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlKCk7CisjaWYgRU5B
QkxFKFRFWFRfQVVUT1NJWklORykKKyAgICBkb3VibGUgcHJldmlvdXNJbml0aWFsU2NhbGUgPSBt
X3BhZ2UtPmluaXRpYWxTY2FsZSgpOwogICAgIG1fcGFnZS0+c2V0SW5pdGlhbFNjYWxlKGluaXRp
YWxTY2FsZSk7CiAgICAgcmVzZXRJZGVtcG90ZW50VGV4dEF1dG9zaXppbmdJZk5lZWRlZChwcmV2
aW91c0luaXRpYWxTY2FsZSk7CiAKICAgICBpZiAoc2V0Rml4ZWRMYXlvdXRTaXplKG1fdmlld3Bv
cnRDb25maWd1cmF0aW9uLmxheW91dFNpemUoKSkpCiAgICAgICAgIHJlc2V0VGV4dEF1dG9zaXpp
bmcoKTsKLQorI2VuZGlmCiAgICAgZG91YmxlIHNjYWxlOwogICAgIGlmIChtX3VzZXJIYXNDaGFu
Z2VkUGFnZVNjYWxlRmFjdG9yICYmIHpvb21Ub0luaXRpYWxTY2FsZSA9PSBab29tVG9Jbml0aWFs
U2NhbGU6Ok5vKQogICAgICAgICBzY2FsZSA9IHN0ZDo6bWF4KHN0ZDo6bWluKHBhZ2VTY2FsZUZh
Y3RvcigpLCBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5tYXhpbXVtU2NhbGUoKSksIG1fdmlld3Bv
cnRDb25maWd1cmF0aW9uLm1pbmltdW1TY2FsZSgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374547</attachid>
            <date>2019-07-20 05:52:19 -0700</date>
            <delta_ts>2019-07-20 06:47:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199718-20190720055218.patch</filename>
            <type>text/plain</type>
            <size>18582</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE3ODY3MDZjMTAwMzRk
ZWYxZWU1ZGFjZWU4ODUyM2I4MmI1NjNkNC4uNGQzYzBiYWEyN2FiNjhhOWMyMWY4ZjQ2NDE4MmU0
NDY4ODdmODY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE5LTA3LTIwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1RleHQgYXV0b3NpemluZ10g
RG8gbm90IG51a2UgdGhlIHN0eWxlIG9uIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTcxOAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTMzNDQ5NjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24g
RnJhc2VyLgorCisgICAgICAgIFdoZW4gdGhlIHBhZ2Ugc2NhbGUgY2hhbmdlcyAoZS5nLiBhcyB0
aGUgcmVzdWx0IG9mIHNoaW5rIHRvIGZpdCBtb2RlKSB3ZSBuZWVkIHRvIHZpc2l0IGFsbCB0aGUg
dGV4dCBjb250ZW50IG9uIHRoZSBwYWdlIGFuZCBjaGVjayB3aGV0aGVyIHRoZXkgbmVlZCB0byBi
ZSBib29zdGVkLgorICAgICAgICBDdXJyZW50bHkgd2UgY2FsbCBzZXROZWVkc1JlY2FsY1N0eWxl
SW5BbGxGcmFtZXMoKSB0byBhY2NvbXBsaXNoIGl0LiBVbmZvcnR1bmF0ZWxseSBzZXROZWVkc1Jl
Y2FsY1N0eWxlSW5BbGxGcmFtZXMgZGVzdHJveXMgYWxsIHRoZSBzdHlsZSBpbmZvcm1hdGlvbiB3
aGljaCBtZWFucyB0aGF0IHRoZQorICAgICAgICBzdWJzZXF1ZW50IHN0eWxlUmVzb2x2ZSgpIG5l
ZWRzIHRvIHN0YXJ0IGZyb20gc2NyYXRjaC4KKyAgICAgICAgVGhpcyBwYXRjaCBhZGRyZXNzZXMg
dGhpcyBpc3N1ZSBieSBkaXJlY3RseSBhZGp1c3RpbmcgdGhlIGNvbXB1dGVkIHN0eWxlIGluZm9y
bWF0aW9uIHdoZW4gdGV4dCBib29zdGluZyBpcyByZXF1aXJlZCBhbmQgc2NoZWR1bGVzIGxheW91
dCBhY2NvcmRpbmdseS4gV2UgYWxzbyB0cmlnZ2VyIHRoaXMgc3R5bGUgYWRqdXN0aW5nCisgICAg
ICAgIG9uIGEgdGltZXIgc28gdGhhdCByYXBpZCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKCkg
Y2FsbHMgd29uJ3QgdHJpZ2dlciByZWR1bmRhbnQgbGF5b3V0cy4KKworICAgICAgICAqIGNzcy9T
dHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omhhc1RleHRDaGlsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGp1c3RSZW5kZXJTdHlsZUZvclRleHRBdXRv
c2l6aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc1RleHRDaGlsZHJlbik6IERlbGV0ZWQuCisg
ICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5o
OgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppbnZh
bGlkYXRlVGV4dEF1dG9TaXplSW5BbGxGcmFtZXMpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
CiAyMDE5LTA3LTE5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdGUgV2ViSW5zcGVjdG9yIHNob3VsZCBlbmFibGUgbW9jayBjYXB0dXJlIGRldmljZXMg
aW4gVUlQcm9jZXNzIGlmIGRvaW5nIGl0IGluIFdlYlByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZmVjMjQ5
Mjk3OGFkMzNhMDk2ZGIyMjJiNjNhMDRjNGQzMGEwY2FmNS4uYWRhNmRhY2NiNzAxNzYzNDQwMzY1
MmMxMDQxZjNkYWIzNzk1N2U3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxOS0wNy0y
MCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtUZXh0IGF1dG9z
aXppbmddIERvIG5vdCBudWtlIHRoZSBzdHlsZSBvbiBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk3MTgK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUzMzQ0OTYxPgorCisgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6bV90ZXh0QXV0b1NpemluZ0FkanVzdG1lbnRUaW1lcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnRleHRBdXRvU2l6
aW5nQWRqdXN0bWVudFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViS2l0OjptX3Nocmlua1RvRml0
Q29udGVudFRpbWVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlc2V0SWRlbXBvdGVudFRleHRBdXRvc2l6aW5nSWZO
ZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXNldFRleHRBdXRvc2l6aW5nKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCk6
CisKIDIwMTktMDctMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW90ZSBXZWJJbnNwZWN0b3Igc2hvdWxkIGVuYWJsZSBtb2NrIGNhcHR1cmUgZGV2aWNl
cyBpbiBVSVByb2Nlc3MgaWYgZG9pbmcgaXQgaW4gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDQ2ZjRmMjY1NmU0MmVjMDEwY2E0YTRkZmQzNWRiNWE5OGJi
ZTVmY2QuLmI3ZGI3YjJlMGM0MzQyNDY3ODIyZTFiN2I2NDNmMzFlYWFiYzA5OGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTg3MSw3ICs4NzEsNyBAQCBzdGF0aWMgT3B0
aW9uU2V0PFRvdWNoQWN0aW9uPiBjb21wdXRlRWZmZWN0aXZlVG91Y2hBY3Rpb25zKGNvbnN0IFJl
bmRlclN0eWxlJiBzdAogI2VuZGlmCiAKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQotc3Rh
dGljIGJvb2wgaGFzVGV4dENoaWxkcmVuKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCitzdGF0aWMg
Ym9vbCBoYXNUZXh0Q2hpbGQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBmb3IgKGF1
dG8qIGNoaWxkID0gZWxlbWVudC5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5u
ZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChpczxUZXh0PihjaGlsZCkpCkBAIC04ODAsMTcg
Kzg4MCwxNCBAQCBzdGF0aWMgYm9vbCBoYXNUZXh0Q2hpbGRyZW4oY29uc3QgRWxlbWVudCYgZWxl
bWVudCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgU3R5bGVSZXNvbHZlcjo6YWRqdXN0
UmVuZGVyU3R5bGVGb3JUZXh0QXV0b3NpemluZyhSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVs
ZW1lbnQmIGVsZW1lbnQpCitib29sIFN0eWxlUmVzb2x2ZXI6OmFkanVzdFJlbmRlclN0eWxlRm9y
VGV4dEF1dG9zaXppbmcoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50JiBlbGVtZW50
KQogewogICAgIGlmICghc2V0dGluZ3MoKS50ZXh0QXV0b3NpemluZ0VuYWJsZWQoKSB8fCAhc2V0
dGluZ3MoKS50ZXh0QXV0b3NpemluZ1VzZXNJZGVtcG90ZW50TW9kZSgpKQotICAgICAgICByZXR1
cm47CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEF1dG9zaXplU3RhdHVzOjp1cGRhdGVT
dGF0dXMoc3R5bGUpOwotICAgIGlmICghaGFzVGV4dENoaWxkcmVuKGVsZW1lbnQpKQotICAgICAg
ICByZXR1cm47Ci0KICAgICBpZiAoc3R5bGUudGV4dFNpemVBZGp1c3QoKS5pc05vbmUoKSkKLSAg
ICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBmbG9hdCBpbml0aWFs
U2NhbGUgPSBkb2N1bWVudCgpLnBhZ2UoKSA/IGRvY3VtZW50KCkucGFnZSgpLT5pbml0aWFsU2Nh
bGUoKSA6IDE7CiAgICAgYXV0byBhZGp1c3RMaW5lSGVpZ2h0SWZOZWVkZWQgPSBbJl0oYXV0byBj
b21wdXRlZEZvbnRTaXplKSB7CkBAIC05MTIsMTYgKzkwOSwyMCBAQCB2b2lkIFN0eWxlUmVzb2x2
ZXI6OmFkanVzdFJlbmRlclN0eWxlRm9yVGV4dEF1dG9zaXppbmcoUmVuZGVyU3R5bGUmIHN0eWxl
LCBjb25zdAogICAgIGF1dG8gc3BlY2lmaWVkRm9udFNpemUgPSBmb250RGVzY3JpcHRpb24uc3Bl
Y2lmaWVkU2l6ZSgpOwogICAgIGJvb2wgaXNDYW5kaWRhdGUgPSBzdHlsZS5pc0lkZW1wb3RlbnRU
ZXh0QXV0b3NpemluZ0NhbmRpZGF0ZSgpOwogICAgIGlmICghaXNDYW5kaWRhdGUgJiYgV1RGOjph
cmVFc3NlbnRpYWxseUVxdWFsKGluaXRpYWxDb21wdXRlZEZvbnRTaXplLCBzcGVjaWZpZWRGb250
U2l6ZSkpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYXV0
byBhZGp1c3RlZEZvbnRTaXplID0gQXV0b3NpemVTdGF0dXM6OmlkZW1wb3RlbnRUZXh0U2l6ZShm
b250RGVzY3JpcHRpb24uc3BlY2lmaWVkU2l6ZSgpLCBpbml0aWFsU2NhbGUpOwogICAgIGlmIChp
c0NhbmRpZGF0ZSAmJiBXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwoaW5pdGlhbENvbXB1dGVkRm9u
dFNpemUsIGFkanVzdGVkRm9udFNpemUpKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGlmICghaGFzVGV4dENoaWxkKGVsZW1lbnQpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBmb250RGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKGlzQ2FuZGlk
YXRlID8gYWRqdXN0ZWRGb250U2l6ZSA6IHNwZWNpZmllZEZvbnRTaXplKTsKICAgICBzdHlsZS5z
ZXRGb250RGVzY3JpcHRpb24oV1RGTW92ZShmb250RGVzY3JpcHRpb24pKTsKICAgICBzdHlsZS5m
b250Q2FzY2FkZSgpLnVwZGF0ZSgmZG9jdW1lbnQoKS5mb250U2VsZWN0b3IoKSk7CiAgICAgYWRq
dXN0TGluZUhlaWdodElmTmVlZGVkKGFkanVzdGVkRm9udFNpemUpOworICAgIHJldHVybiB0cnVl
OwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCmluZGV4IDhjODhkYThk
NWM3ZmE0MmVkOWQ4MTJhMDhmMTRlYTBkNDBhMTFjZWMuLmQ4YWMzMjg5MmRjZDEzNTUyNjI5OGFl
MTI1YmZiMTdjOGMxNzUwYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJl
c29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApAQCAtNDY5
LDYgKzQ2OSw4IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxDU1NWYWx1ZT4gcmVzb2x2ZWRWYXJp
YWJsZVZhbHVlKENTU1Byb3BlcnR5SUQsIGNvbnN0IENTU1ZhbHVlJiwgQXBwbHlDYXNjYWRlZFBy
b3BlcnR5U3RhdGUmKSBjb25zdDsKIAorICAgIGJvb2wgYWRqdXN0UmVuZGVyU3R5bGVGb3JUZXh0
QXV0b3NpemluZyhSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQmKTsKKwogcHJpdmF0ZToKICAg
ICB2b2lkIGNhY2hlQm9yZGVyQW5kQmFja2dyb3VuZCgpOwogCkBAIC01MDAsOCArNTAyLDYgQEAg
cHJpdmF0ZToKICAgICAvLyB0aGUgbGFzdCByZWZlcmVuY2UgdG8gYSBzdHlsZSBkZWNsYXJhdGlv
biBhcmUgZ2FyYmFnZSBjb2xsZWN0ZWQuCiAgICAgdm9pZCBzd2VlcE1hdGNoZWRQcm9wZXJ0aWVz
Q2FjaGUoKTsKIAotICAgIHZvaWQgYWRqdXN0UmVuZGVyU3R5bGVGb3JUZXh0QXV0b3NpemluZyhS
ZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQmKTsKLQogICAgIHR5cGVkZWYgSGFzaE1hcDx1bnNp
Z25lZCwgTWF0Y2hlZFByb3BlcnRpZXNDYWNoZUl0ZW0+IE1hdGNoZWRQcm9wZXJ0aWVzQ2FjaGU7
CiAgICAgTWF0Y2hlZFByb3BlcnRpZXNDYWNoZSBtX21hdGNoZWRQcm9wZXJ0aWVzQ2FjaGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDMyMDdhNGQzZTEwNzA2M2MyYjEyMjMyNTc4ODE4
Y2E4ZTk5YWVjYTYuLjQ4NzQ4M2VkMWJmMmZiYzhmOTg4ZGU2ZjdjNDgwNjJiYmEzOWQ0MmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMzk3LDYgKzM5Nyw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIHVwZGF0ZUlzVmlzdWFsbHlOb25FbXB0eSgpOwogICAgIHZvaWQgdXBkYXRlU2lnbmlmaWNh
bnRSZW5kZXJlZFRleHRNaWxlc3RvbmVJZk5lZWRlZCgpOwogICAgIGJvb2wgaXNWaXN1YWxseU5v
bkVtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9pc1Zpc3VhbGx5Tm9uRW1wdHk7IH0KKyAgICBXRUJD
T1JFX0VYUE9SVCBib29sIHF1YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSgpIGNvbnN0OworCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNv
bnN0IEludFNpemUmIG1pblNpemUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXV0b1Np
emVGaXhlZE1pbmltdW1IZWlnaHQoaW50KTsKICAgICBib29sIGlzQXV0b1NpemVFbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9zaG91bGRBdXRvU2l6ZTsgfQpAQCAtNzg2LDcgKzc4OCw2IEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIG1hcmtSb290T3JCb2R5UmVuZGVyZXJEaXJ0eSgpIGNvbnN0Owog
Ci0gICAgYm9vbCBxdWFsaWZpZXNBc1Zpc3VhbGx5Tm9uRW1wdHkoKSBjb25zdDsKICAgICBib29s
IHF1YWxpZmllc0FzU2lnbmlmaWNhbnRSZW5kZXJlZFRleHQoKSBjb25zdDsKICAgICB2b2lkIHVw
ZGF0ZUhhc1JlYWNoZWRTaWduaWZpY2FudFJlbmRlcmVkVGV4dFRocmVzaG9sZCgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAppbmRleCA2NjQ0NWZjMTExOTNjZjRmMWMwNThiMTU0ZDJmNzY4YTFiMWE5ZmFl
Li5lZGE3YzVmYTVkNjQ3OWJhNzEwOTAyMGI1MjgzMmNlMjYxYmNkN2U5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKQEAgLTkxLDYgKzkxLDcgQEAKICNpbmNsdWRlICJQb2ludGVyQ2FwdHVyZUNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJQcm9n
cmVzc1RyYWNrZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3IuaCIKICNp
bmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5o
IgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKQEAgLTMwMDksNCArMzAxMCwyNyBAQCB2b2lkIFBh
Z2U6OmRpZEZpbmlzaExvYWRpbmdJbWFnZUZvckVsZW1lbnQoSFRNTEltYWdlRWxlbWVudCYgZWxl
bWVudCkKICAgICBjaHJvbWUoKS5jbGllbnQoKS5kaWRGaW5pc2hMb2FkaW5nSW1hZ2VGb3JFbGVt
ZW50KGVsZW1lbnQpOwogfQogCisjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKK3ZvaWQgUGFn
ZTo6cmVjb21wdXRlVGV4dEF1dG9TaXppbmdJbkFsbEZyYW1lcygpCit7CisgICAgQVNTRVJUKHNl
dHRpbmdzKCkudGV4dEF1dG9zaXppbmdFbmFibGVkKCkgJiYgc2V0dGluZ3MoKS50ZXh0QXV0b3Np
emluZ1VzZXNJZGVtcG90ZW50TW9kZSgpKTsKKyAgICBmb3IgKGF1dG8qIGZyYW1lID0gJm1haW5G
cmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7Cisg
ICAgICAgIGlmICghZnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUtPmRvY3VtZW50KCk7CisgICAgICAgIGlmICgh
ZG9jdW1lbnQucmVuZGVyVmlldygpIHx8ICFkb2N1bWVudC5zdHlsZVNjb3BlKCkucmVzb2x2ZXJJ
ZkV4aXN0cygpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0byYgc3R5bGVS
ZXNvbHZlciA9IGRvY3VtZW50LnN0eWxlU2NvcGUoKS5yZXNvbHZlcigpOworICAgICAgICBmb3Ig
KGF1dG8mIHJlbmRlcmVyIDogZGVzY2VuZGFudHNPZlR5cGU8UmVuZGVyRWxlbWVudD4oKmRvY3Vt
ZW50LnJlbmRlclZpZXcoKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBlbGVtZW50ID0gcmVu
ZGVyZXIuZWxlbWVudCgpKSB7CisgICAgICAgICAgICAgICAgYXV0byBuZWVkc0xheW91dCA9IHN0
eWxlUmVzb2x2ZXIuYWRqdXN0UmVuZGVyU3R5bGVGb3JUZXh0QXV0b3NpemluZyhyZW5kZXJlci5t
dXRhYmxlU3R5bGUoKSwgKmVsZW1lbnQpOworICAgICAgICAgICAgICAgIGlmIChuZWVkc0xheW91
dCkKKyAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0TmVlZHNMYXlvdXQoKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDc4OTMzM2EzOTUwOTgxNDQ4MWExYzRlOTVhOTM4Y2Ey
M2JmOTQyYjMuLmM0NDAyMzQ0M2M4NTZkYTIyYjBlNDE5ZjhmYzVmMjY1MmY4NjJmZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCkBAIC0zODgsNiArMzg4LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShURVhUX0FV
VE9TSVpJTkcpCiAgICAgZmxvYXQgdGV4dEF1dG9zaXppbmdXaWR0aCgpIGNvbnN0IHsgcmV0dXJu
IG1fdGV4dEF1dG9zaXppbmdXaWR0aDsgfQogICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdXaWR0
aChmbG9hdCB0ZXh0QXV0b3NpemluZ1dpZHRoKSB7IG1fdGV4dEF1dG9zaXppbmdXaWR0aCA9IHRl
eHRBdXRvc2l6aW5nV2lkdGg7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlY29tcHV0ZVRl
eHRBdXRvU2l6aW5nSW5BbGxGcmFtZXMoKTsKICNlbmRpZgogCiAgICAgY29uc3QgRmxvYXRCb3hF
eHRlbnQmIGZ1bGxzY3JlZW5JbnNldHMoKSBjb25zdCB7IHJldHVybiBtX2Z1bGxzY3JlZW5JbnNl
dHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggMTA5NDRmNzM4ZGE0ZWNjYzMyYzYwNjdkZjQ3YWY0YzZhYWUyNGVmMC4uNmFkYzc2Mjg4MmE3
Mjg4NzQ4NWFkODJkYjQyMWU3YTEwYjkyMzFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQzMSw2ICs0MzEsOSBAQCBXZWJQYWdlOjpXZWJQ
YWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBh
cmFtZXRlcnMpCiAjaWYgRU5BQkxFKFZJRVdQT1JUX1JFU0laSU5HKQogICAgICwgbV9zaHJpbmtU
b0ZpdENvbnRlbnRUaW1lcigqdGhpcywgJldlYlBhZ2U6OnNocmlua1RvRml0Q29udGVudFRpbWVy
RmlyZWQsIDBfcykKICNlbmRpZgorI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCisgICAgLCBt
X3RleHRBdXRvU2l6aW5nQWRqdXN0bWVudFRpbWVyKCp0aGlzLCAmV2ViUGFnZTo6dGV4dEF1dG9T
aXppbmdBZGp1c3RtZW50VGltZXJGaXJlZCkKKyNlbmRpZgogewogICAgIEFTU0VSVChtX3BhZ2VJ
RCk7CiAKQEAgLTE0MDIsNiArMTQwNSwxMCBAQCB2b2lkIFdlYlBhZ2U6OmNsb3NlKCkKICAgICBt
X3Nocmlua1RvRml0Q29udGVudFRpbWVyLnN0b3AoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFRF
WFRfQVVUT1NJWklORykKKyAgICBtX3RleHRBdXRvU2l6aW5nQWRqdXN0bWVudFRpbWVyLnN0b3Ao
KTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgbV9jb250ZXh0TWVu
dUNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8QVBJOjpJbmplY3RlZEJ1bmRsZTo6UGFnZUNvbnRl
eHRNZW51Q2xpZW50PigpOwogI2VuZGlmCkBAIC01NzkzLDYgKzU4MDAsMTAgQEAgdm9pZCBXZWJQ
YWdlOjpkaWRDb21taXRMb2FkKFdlYkZyYW1lKiBmcmFtZSkKICAgICBtX3Nocmlua1RvRml0Q29u
dGVudFRpbWVyLnN0b3AoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykK
KyAgICBtX3RleHRBdXRvU2l6aW5nQWRqdXN0bWVudFRpbWVyLnN0b3AoKTsKKyNlbmRpZgorCiAj
aWYgRU5BQkxFKFBSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykKICAgICByZXNl
dFByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbigpOwogI2VuZGlmCkBAIC02Nzk2LDYgKzY4MDcsMTMg
QEAgdm9pZCBXZWJQYWdlOjpkaWRGaW5pc2hMb2FkaW5nSW1hZ2VGb3JFbGVtZW50KFdlYkNvcmU6
OkhUTUxJbWFnZUVsZW1lbnQmKQogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJ
TkcpCit2b2lkIFdlYlBhZ2U6OnRleHRBdXRvU2l6aW5nQWRqdXN0bWVudFRpbWVyRmlyZWQoKQor
eworICAgIG1fcGFnZS0+cmVjb21wdXRlVGV4dEF1dG9TaXppbmdJbkFsbEZyYW1lcygpOworfQor
I2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4
IGIxNWQ2Yjg2ODc2MjU3YzZhNGVlMWZlODcwZTE5MzYwNjZiOWU2NDUuLjk1NDA5ZTliMDRjZWU2
ZTE3ZWQxOTVjMWIzZjA1NDY1NThhMGQ2YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEyNTEsOCArMTI1MSw2IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBoYW5kbGVTeW50aGV0aWNDbGljayhXZWJDb3JlOjpOb2RlJiBub2RlUmVzcG9uZGluZ1RvQ2xp
Y2ssIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBPcHRpb25TZXQ8V2ViS2l0
OjpXZWJFdmVudDo6TW9kaWZpZXI+LCBXZWJDb3JlOjpQb2ludGVySUQgPSBXZWJDb3JlOjptb3Vz
ZVBvaW50ZXJJRCk7CiAgICAgdm9pZCBjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKFdlYkNvcmU6Ok5v
ZGUmIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9j
YXRpb24sIE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4sIFdlYkNvcmU6OlN5
bnRoZXRpY0NsaWNrVHlwZSwgV2ViQ29yZTo6UG9pbnRlcklEID0gV2ViQ29yZTo6bW91c2VQb2lu
dGVySUQpOwogICAgIHZvaWQgc2VuZFRhcEhpZ2hsaWdodEZvck5vZGVJZk5lY2Vzc2FyeSh1aW50
NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6Ok5vZGUqKTsKLSAgICB2b2lkIHJlc2V0VGV4dEF1dG9z
aXppbmcoKTsKLSAgICB2b2lkIHJlc2V0SWRlbXBvdGVudFRleHRBdXRvc2l6aW5nSWZOZWVkZWQo
ZG91YmxlIHByZXZpb3VzSW5pdGlhbFNjYWxlKTsKICAgICBXZWJDb3JlOjpWaXNpYmxlUG9zaXRp
b24gdmlzaWJsZVBvc2l0aW9uSW5Gb2N1c2VkTm9kZUZvclBvaW50KGNvbnN0IFdlYkNvcmU6OkZy
YW1lJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sIGlzSW50ZXJhY3RpbmdXaXRoRm9j
dXNlZEVsZW1lbnQpOwogICAgIFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4gcmFuZ2VGb3JHcmFudWxh
cml0eUF0UG9pbnQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIHVp
bnQzMl90IGdyYW51bGFyaXR5LCBib29sIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQp
OwogICAgIHZvaWQgc2V0Rm9jdXNlZEZyYW1lQmVmb3JlU2VsZWN0aW5nVGV4dEF0TG9jYXRpb24o
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKQEAgLTEyNjUsNiArMTI2MywxMSBAQCBwcml2YXRl
OgogICAgIGJvb2wgYXBwbHlBdXRvY29ycmVjdGlvbkludGVybmFsKGNvbnN0IFN0cmluZyYgY29y
cmVjdGlvbiwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFRleHQpOwogICAgIGJvb2wgc2hvdWxkSWdu
b3JlTWV0YVZpZXdwb3J0KCkgY29uc3Q7CiAjZW5kaWYKKyNpZiBFTkFCTEUoVEVYVF9BVVRPU0la
SU5HKQorICAgIHZvaWQgdGV4dEF1dG9TaXppbmdBZGp1c3RtZW50VGltZXJGaXJlZCgpOworICAg
IHZvaWQgcmVzZXRUZXh0QXV0b3NpemluZygpOworICAgIHZvaWQgcmVzZXRJZGVtcG90ZW50VGV4
dEF1dG9zaXppbmdJZk5lZWRlZChkb3VibGUgcHJldmlvdXNJbml0aWFsU2NhbGUpOworI2VuZGlm
CiAKICNpZiBFTkFCTEUoVklFV1BPUlRfUkVTSVpJTkcpCiAgICAgdm9pZCBzY2hlZHVsZVNocmlu
a1RvRml0Q29udGVudCgpOwpAQCAtMTk1Niw2ICsxOTU5LDkgQEAgcHJpdmF0ZToKICNpZiBIQVZF
KFZJU0lCSUxJVFlfUFJPUEFHQVRJT05fVklFVykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJI
b3N0aW5nQ29udGV4dD4gbV9jb250ZXh0Rm9yVmlzaWJpbGl0eVByb3BhZ2F0aW9uOwogI2VuZGlm
CisjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKKyAgICBXZWJDb3JlOjpUaW1lciBtX3RleHRB
dXRvU2l6aW5nQWRqdXN0bWVudFRpbWVyOworI2VuZGlmCiB9OwogCiAjaWYgIVBMQVRGT1JNKElP
U19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCmluZGV4IGM1NjY2NDkwMjU1ZmExYmM3M2UyMzY5MjU5ZTA4MTY1ZGI4ZjFm
N2QuLmNhZTU2YmEwNWYxYmFjZjRhMWZmYmE4MDM5NDNkNTYzOTllZjA0MTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0z
MTA4LDE2ICszMTA4LDYgQEAgdm9pZCBXZWJQYWdlOjpzZXRPdmVycmlkZVZpZXdwb3J0QXJndW1l
bnRzKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJndW0KICAgICBtX3BhZ2UtPnNl
dE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMoYXJndW1lbnRzKTsKIH0KIAotdm9pZCBXZWJQYWdl
OjpyZXNldFRleHRBdXRvc2l6aW5nKCkKLXsKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtX3Bh
Z2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4
dCgpKSB7Ci0gICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpOwot
ICAgICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cmVuZGVyVmlldygpKQotICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgIGRvY3VtZW50LT5yZW5kZXJWaWV3KCktPnJlc2V0VGV4
dEF1dG9zaXppbmcoKTsKLSAgICB9Ci19Ci0KIHZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0
U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJn
ZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJl
Y3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9s
bFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHRhcmdldFVu
b2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmlj
ZU9yaWVudGF0aW9uLCBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQgZHluYW1pY1ZpZXdwb3J0
U2l6ZVVwZGF0ZUlEKQogewogICAgIFNldEZvclNjb3BlPGJvb2w+IGR5bmFtaWNTaXplVXBkYXRl
R3VhcmQobV9pbkR5bmFtaWNTaXplVXBkYXRlLCB0cnVlKTsKQEAgLTMxNjMsOSArMzE1MywxMCBA
QCB2b2lkIFdlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXpl
JiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgVwogCiAgICAgSW50U2l6ZSBuZXdMYXlvdXRTaXplID0g
bV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubGF5b3V0U2l6ZSgpOwogCisjaWYgRU5BQkxFKFRFWFRf
QVVUT1NJWklORykKICAgICBpZiAoc2V0Rml4ZWRMYXlvdXRTaXplKG5ld0xheW91dFNpemUpKQog
ICAgICAgICByZXNldFRleHRBdXRvc2l6aW5nKCk7Ci0KKyNlbmRpZgogICAgIHNldE1heGltdW1V
bm9ic2N1cmVkU2l6ZShtYXhpbXVtVW5vYnNjdXJlZFNpemUpOwogICAgIG1fcGFnZS0+c2V0VW5v
YnNjdXJlZFNhZmVBcmVhSW5zZXRzKHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cyk7CiAK
QEAgLTMzMzYsNiArMzMyNyw1NSBAQCB2b2lkIFdlYlBhZ2U6OnJlc2V0Vmlld3BvcnREZWZhdWx0
Q29uZmlndXJhdGlvbihXZWJGcmFtZSogZnJhbWUsIGJvb2wgaGFzTW9iaWxlRAogICAgICAgICBt
X3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5zZXREZWZhdWx0Q29uZmlndXJhdGlvbihwYXJhbWV0ZXJz
Rm9yU3RhbmRhcmRGcmFtZSgpKTsKIH0KIAorI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCit2
b2lkIFdlYlBhZ2U6OnJlc2V0SWRlbXBvdGVudFRleHRBdXRvc2l6aW5nSWZOZWVkZWQoZG91Ymxl
IHByZXZpb3VzSW5pdGlhbFNjYWxlKQoreworICAgIGlmICghbV9wYWdlLT5zZXR0aW5ncygpLnRl
eHRBdXRvc2l6aW5nVXNlc0lkZW1wb3RlbnRNb2RlKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGNvbnN0IGZsb2F0IG1pbmltdW1TY2FsZUNoYW5nZUJlZm9yZVJlY29tcHV0aW5nVGV4dEF1dG9z
aXppbmcgPSAwLjAxOworICAgIGlmIChzdGQ6OmFicyhwcmV2aW91c0luaXRpYWxTY2FsZSAtIG1f
cGFnZS0+aW5pdGlhbFNjYWxlKCkpIDwgbWluaW11bVNjYWxlQ2hhbmdlQmVmb3JlUmVjb21wdXRp
bmdUZXh0QXV0b3NpemluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcGFnZS0+aW5p
dGlhbFNjYWxlKCkgPj0gMSAmJiBwcmV2aW91c0luaXRpYWxTY2FsZSA+PSAxKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoIW1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhdXRvIHRleHRBdXRvU2l6aW5nRGVsYXkgPSBbJl0geworICAgICAgICBh
dXRvJiBmcmFtZVZpZXcgPSAqbV9wYWdlLT5tYWluRnJhbWUoKS52aWV3KCk7CisgICAgICAgIGF1
dG8gaXNWaXNhdWxseU5vbkVtcHR5ID0gZnJhbWVWaWV3LmlzVmlzdWFsbHlOb25FbXB0eSgpOwor
ICAgICAgICBhdXRvIHdpbGxCZVZpc3VhbGx5Tm9uRW1wdHlTb29uID0gIWlzVmlzYXVsbHlOb25F
bXB0eSAmJiBmcmFtZVZpZXcucXVhbGlmaWVzQXNWaXN1YWxseU5vbkVtcHR5KCk7CisgICAgICAg
IGlmICh3aWxsQmVWaXN1YWxseU5vbkVtcHR5U29vbikgeworICAgICAgICAgICAgLy8gQmUgYSBi
aXQgbW9yZSBhZ3Jlc3NpdmUgb24gdGhlIGZpcnN0IGRpc3BsYXkuCisgICAgICAgICAgICBjb25z
dCBTZWNvbmRzIHNob3J0VGV4dEF1dG9TaXppbmdEZWxheU9uVmlld3BvcnRDaGFuZ2UgPSAyMF9t
czsKKyAgICAgICAgICAgIHJldHVybiBzaG9ydFRleHRBdXRvU2l6aW5nRGVsYXlPblZpZXdwb3J0
Q2hhbmdlOworICAgICAgICB9IAorICAgICAgICBpZiAoIWlzVmlzYXVsbHlOb25FbXB0eSkgewor
ICAgICAgICAgICAgLy8gV2UgZG9uJ3QgYW50aWNpcGF0ZSBhbnkgcGFpbmluZyBhZnRlciB0aGUg
bmV4dCB1cGNvbWluZyBsYXlvdXQuCisgICAgICAgICAgICBjb25zdCBTZWNvbmRzIGxvbmdUZXh0
QXV0b1NpemluZ0RlbGF5T25WaWV3cG9ydENoYW5nZSA9IDEwMF9tczsKKyAgICAgICAgICAgIHJl
dHVybiBsb25nVGV4dEF1dG9TaXppbmdEZWxheU9uVmlld3BvcnRDaGFuZ2U7CisgICAgICAgIH0K
KyAgICAgICAgY29uc3QgU2Vjb25kcyBkZWZhdWx0VGV4dEF1dG9TaXppbmdEZWxheU9uVmlld3Bv
cnRDaGFuZ2UgPSA4MF9tczsKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRUZXh0QXV0b1NpemluZ0Rl
bGF5T25WaWV3cG9ydENoYW5nZTsKKyAgICB9OworCisgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byB1
cGRhdGUgdGV4dCBzaXppbmcgZWFnZXJseS4gVGhlcmUgbWlnaHQgYmUgbXVsdGlwbGUgaW5jb21p
bmcgZHluYW1pYyB2aWV3cG9ydCBjaGFuZ2VzLgorICAgIG1fdGV4dEF1dG9TaXppbmdBZGp1c3Rt
ZW50VGltZXIuc3RhcnRPbmVTaG90KHRleHRBdXRvU2l6aW5nRGVsYXkoKSk7Cit9CisKK3ZvaWQg
V2ViUGFnZTo6cmVzZXRUZXh0QXV0b3NpemluZygpCit7CisgICAgZm9yIChGcmFtZSogZnJhbWUg
PSAmbV9wYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2
ZXJzZU5leHQoKSkgeworICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1l
bnQoKTsKKyAgICAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnJlbmRlclZpZXcoKSkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBkb2N1bWVudC0+cmVuZGVyVmlldygpLT5y
ZXNldFRleHRBdXRvc2l6aW5nKCk7CisgICAgfQorfQorI2VuZGlmCisKICNpZiBFTkFCTEUoVklF
V1BPUlRfUkVTSVpJTkcpCiAKIHZvaWQgV2ViUGFnZTo6c2NoZWR1bGVTaHJpbmtUb0ZpdENvbnRl
bnQoKQpAQCAtMzQzMCwzMSArMzQ3MCwxNyBAQCBib29sIFdlYlBhZ2U6OnNob3VsZElnbm9yZU1l
dGFWaWV3cG9ydCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS5zaG91bGRJ
Z25vcmVNZXRhVmlld3BvcnQoKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpyZXNldElkZW1wb3RlbnRU
ZXh0QXV0b3NpemluZ0lmTmVlZGVkKGRvdWJsZSBwcmV2aW91c0luaXRpYWxTY2FsZSkKLXsKLSAg
ICBpZiAoIW1fcGFnZS0+c2V0dGluZ3MoKS50ZXh0QXV0b3NpemluZ1VzZXNJZGVtcG90ZW50TW9k
ZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjb25zdCBmbG9hdCBtaW5pbXVtU2NhbGVDaGFu
Z2VCZWZvcmVSZWNvbXB1dGluZ1RleHRBdXRvc2l6aW5nID0gMC4wMTsKLSAgICBpZiAoc3RkOjph
YnMocHJldmlvdXNJbml0aWFsU2NhbGUgLSBtX3BhZ2UtPmluaXRpYWxTY2FsZSgpKSA8IG1pbmlt
dW1TY2FsZUNoYW5nZUJlZm9yZVJlY29tcHV0aW5nVGV4dEF1dG9zaXppbmcpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGlmIChtX3BhZ2UtPmluaXRpYWxTY2FsZSgpID49IDEgJiYgcHJldmlvdXNJ
bml0aWFsU2NhbGUgPj0gMSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wYWdlLT5zZXROZWVk
c1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKLX0KLQogdm9pZCBXZWJQYWdlOjp2aWV3cG9ydENv
bmZpZ3VyYXRpb25DaGFuZ2VkKFpvb21Ub0luaXRpYWxTY2FsZSB6b29tVG9Jbml0aWFsU2NhbGUp
CiB7Ci0gICAgZG91YmxlIHByZXZpb3VzSW5pdGlhbFNjYWxlID0gbV9wYWdlLT5pbml0aWFsU2Nh
bGUoKTsKICAgICBkb3VibGUgaW5pdGlhbFNjYWxlID0gbV92aWV3cG9ydENvbmZpZ3VyYXRpb24u
aW5pdGlhbFNjYWxlKCk7CisjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKKyAgICBkb3VibGUg
cHJldmlvdXNJbml0aWFsU2NhbGUgPSBtX3BhZ2UtPmluaXRpYWxTY2FsZSgpOwogICAgIG1fcGFn
ZS0+c2V0SW5pdGlhbFNjYWxlKGluaXRpYWxTY2FsZSk7CiAgICAgcmVzZXRJZGVtcG90ZW50VGV4
dEF1dG9zaXppbmdJZk5lZWRlZChwcmV2aW91c0luaXRpYWxTY2FsZSk7CiAKICAgICBpZiAoc2V0
Rml4ZWRMYXlvdXRTaXplKG1fdmlld3BvcnRDb25maWd1cmF0aW9uLmxheW91dFNpemUoKSkpCiAg
ICAgICAgIHJlc2V0VGV4dEF1dG9zaXppbmcoKTsKLQorI2VuZGlmCiAgICAgZG91YmxlIHNjYWxl
OwogICAgIGlmIChtX3VzZXJIYXNDaGFuZ2VkUGFnZVNjYWxlRmFjdG9yICYmIHpvb21Ub0luaXRp
YWxTY2FsZSA9PSBab29tVG9Jbml0aWFsU2NhbGU6Ok5vKQogICAgICAgICBzY2FsZSA9IHN0ZDo6
bWF4KHN0ZDo6bWluKHBhZ2VTY2FsZUZhY3RvcigpLCBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5t
YXhpbXVtU2NhbGUoKSksIG1fdmlld3BvcnRDb25maWd1cmF0aW9uLm1pbmltdW1TY2FsZSgpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>