<?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>183340</bug_id>
          
          <creation_ts>2018-03-05 12:29:04 -0800</creation_ts>
          <short_desc>[CoordGraphics] Remove unused scrolling-related code in TextureMapperLayer, CoordinatedGraphics stack</short_desc>
          <delta_ts>2018-03-06 04:13:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1403707</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-03-05 12:29:04 -0800</bug_when>
    <thetext>[CoordGraphics] Remove unused scrolling-related code in TextureMapperLayer, CoordinatedGraphics stack</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403710</commentid>
    <comment_count>1</comment_count>
      <attachid>335016</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-03-05 12:39:37 -0800</bug_when>
    <thetext>Created attachment 335016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403954</commentid>
    <comment_count>2</comment_count>
      <attachid>335084</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-03-06 04:07:52 -0800</bug_when>
    <thetext>Created attachment 335084
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403955</commentid>
    <comment_count>3</comment_count>
      <attachid>335084</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-03-06 04:12:07 -0800</bug_when>
    <thetext>Comment on attachment 335084
Patch for landing

Clearing flags on attachment: 335084

Committed r229318: &lt;https://trac.webkit.org/changeset/229318&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403956</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-03-06 04:12:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403958</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-06 04:13:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/38175410&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335016</attachid>
            <date>2018-03-05 12:39:37 -0800</date>
            <delta_ts>2018-03-06 04:07:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183340-20180305213935.patch</filename>
            <type>text/plain</type>
            <size>32400</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5Mjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTAxZDM5NGM3OTAyZTI2
ZDg5Y2M3YWY4ODNkNDNmZjMzYTA2OWMyMy4uYzFlZGU3ZGY2NGNkY2RkNzc0MmZmZGFhYWFjNTJm
ZDk0NDFjOTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE4LTAzLTA1ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ29vcmRHcmFwaGlj
c10gUmVtb3ZlIHVudXNlZCBzY3JvbGxpbmctcmVsYXRlZCBjb2RlIGluIFRleHR1cmVNYXBwZXJM
YXllciwgQ29vcmRpbmF0ZWRHcmFwaGljcyBzdGFjaworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGV4dHVyZU1hcHBlckxheWVyOjpzY3JvbGxCeSgpIG1l
dGhvZCBpcyBjb21wbGV0ZWx5IHVudXNlZCBhbmQgY2FuIGJlCisgICAgICAgIHJlbW92ZWQuIFRo
aXMgb3BlbnMgdGhlIGdhdGVzIG9uIHJlbW92aW5nIG1ham9yaXR5IG9mIHNjcm9sbGluZy1yZWxh
dGVkCisgICAgICAgIGNvZGUgaW4gVGV4dHVyZU1hcHBlckxheWVyLCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIgYW5kCisgICAgICAgIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSBjbGFzc2VzLCBh
bG9uZyB3aXRoIHNtYWxsZXIgYml0cyBpbiBvdGhlcgorICAgICAgICBjbG9zZWx5LWFzc29jaWF0
ZWQgY2xhc3Nlcy4KKworICAgICAgICBXZSdyZSBhYmxlIHRvIHJlbW92ZSB0d28gdmlydHVhbCBt
ZXRob2Qgb3ZlcnJpZGVzIGluIHRoZQorICAgICAgICBTY3JvbGxpbmdDb29yZGluYXRvckNvb3Jk
aW5hdGVkR3JhcGhpY3MgY2xhc3MuCisKKyAgICAgICAgVGV4dHVyZU1hcHBlckxheWVyIGNhbiBk
cm9wIHRoZSBTY3JvbGxpbmdDbGllbnQgbWVtYmVyIHZhcmlhYmxlLCBhbG9uZworICAgICAgICB3
aXRoIG11bHRpcGxlIG90aGVycy4gVmFyaW91cyB1bnVzZWQgbWV0aG9kcyBpbiB0aGF0IGNsYXNz
IGFyZSByZW1vdmVkCisgICAgICAgIGFzIHdlbGwuCisKKyAgICAgICAgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyIGFuZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciBjYW4gYm90aCByZW1vdmUK
KyAgICAgICAgdGhlIGN1c3RvbSBzY3JvbGxpbmcgc3RhdGUgdHJhY2tpbmcuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIC0tIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGlu
YXRlZEdyYXBoaWNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
Q29vcmRpbmF0ZWRHcmFwaGljczo6c2Nyb2xsYWJsZUFyZWFTY3JvbGxMYXllckRpZENoYW5nZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5h
dGVkR3JhcGhpY3M6OndpbGxEZXN0cm95U2Nyb2xsYWJsZUFyZWEpOiBEZWxldGVkLgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0
b3JDb29yZGluYXRlZEdyYXBoaWNzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6Y29tbWl0TGF5ZXJD
aGFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpk
aWRDb21taXRTY3JvbGxPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllclRleHR1cmVNYXBwZXI6OnNldElzU2Nyb2xsYWJsZSk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OmhpdFRlc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpzY3JvbGxhYmxlTGF5
ZXJIaXRUZXN0Q29uZGl0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVN
YXBwZXJMYXllcjo6ZmluZFNjcm9sbGFibGVDb250ZW50c0xheWVyQXQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjptYXBTY3JvbGxPZmZzZXQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpjb21taXRTY3JvbGxP
ZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpz
Y3JvbGxCeSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6
OmRpZENvbW1pdFNjcm9sbE9mZnNldCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzeW5jTGF5ZXJTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnJlc2V0TGF5ZXJTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OnNldFNjcm9sbGFibGVBcmVhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Y29tbWl0U2Nyb2xsT2Zmc2V0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oOgorCiAyMDE4LTAzLTA0ICBZ
dXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtXVEZdIE1v
dmUgY3VycmVudENQVVRpbWUgYW5kIHNsZWVwKFNlY29uZHMpIHRvIENQVVRpbWUuaCBhbmQgU2Vj
b25kcy5oIHJlc3BlY3RpdmVseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmNjQyY2NlZDg4ODViN2VmOGQzYzRkMjZm
NWVkZDUwOGFiNTI5ZTIxLi4yMzEyOGU5OTg4ZmVlNGUyOGQxNTBiZTk5YjZlMDFhMTBmYzhhMjJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE4LTAzLTA1ICBaYW4gRG9iZXJzZWsgIDx6
ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ29vcmRHcmFwaGljc10gUmVtb3ZlIHVu
dXNlZCBzY3JvbGxpbmctcmVsYXRlZCBjb2RlIGluIFRleHR1cmVNYXBwZXJMYXllciwgQ29vcmRp
bmF0ZWRHcmFwaGljcyBzdGFjaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgzMzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2l0aCBtb3N0IG9mIHRoZSBzY3JvbGxpbmctcmVsYXRlZCBjb2RlIGluIFRl
eHR1cmVNYXBwZXJMYXllciBvbiB0aGUKKyAgICAgICAgY2hvcHBpbmcgYmxvY2ssIHdlIGNhbiBu
b3cgZHJvcCB0aGUgU2Nyb2xsaW5nQ2xpZW50IGluaGVyaXRhbmNlIGFuZCB0aGUKKyAgICAgICAg
Y29tbWl0U2Nyb2xsT2Zmc2V0KCkgdmlydHVhbCBtZXRob2QgaW1wbGVtZW50YXRpb24uIFRoaXMg
ZW5hYmxlcworICAgICAgICByZW1vdmluZyB0aGUgd2hvbGUgY29tbWl0U2Nyb2xsT2Zmc2V0KCkg
Y2FsbCBjaGFpbiB0aGF0IHJhbiBmcm9tCisgICAgICAgIENvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZSB0aHJvdWdoIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCBhbmQKKyAgICAgICAgQ29tcG9zaXRp
bmdDb29yZGluYXRvciB0byB0aGUgYWZmZWN0ZWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIG9i
amVjdC4KKworICAgICAgICBUaGUgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpmaW5kU2Nyb2xs
YWJsZUNvbnRlbnRzTGF5ZXJBdCgpIG1ldGhvZCBpcworICAgICAgICBhbHNvIHVudXNlZCBhbmQg
Y2FuIGJlIGRlbGV0ZWQuCisKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRl
ZEdyYXBoaWNzU2NlbmU6OnNldExheWVyU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGlu
YXRlZEdyYXBoaWNzU2NlbmU6OmNyZWF0ZUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lOjpjb21taXRTY3JvbGxPZmZzZXQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmZpbmRTY3JvbGxhYmxlQ29udGVu
dHNMYXllckF0KTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3NpdG9yOjpjb21taXRTY3JvbGxPZmZzZXQpOiBE
ZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29t
cG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6Y29tbWl0U2Nyb2xsT2Zmc2V0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpjb21taXRTY3JvbGxPZmZzZXQp
OiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
Lmg6CisKIDIwMTgtMDMtMDUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIEF1dG9tYXRpb246IGNsaWNraW5nIG9uIGEgZGlzYWJsZWQgb3B0aW9u
IGVsZW1lbnQgc2hvdWxkbid0IHByb2R1Y2UgYW4gZXJyb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRp
bmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdy
YXBoaWNzLmNwcAppbmRleCBlMDRiNDQ1YTA1MzBmMDM4NmEzZmZlNDVkNzRmZWI3YTQ1ZTQ5NTUz
Li4wODY1ODQxOWI3MTNjZWQ5ZmQ3M2JjOGIzYzg3NzJiNDgwYTlmYmM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNv
b3JkaW5hdGVkR3JhcGhpY3MuY3BwCkBAIC05OCwyNCArOTgsNiBAQCB2b2lkIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljczo6dXBkYXRlTm9kZVZpZXdwb3J0Q29uc3RyYWlu
dHMoU2NybwogICAgIH0KIH0KIAotdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVk
R3JhcGhpY3M6OnNjcm9sbGFibGVBcmVhU2Nyb2xsTGF5ZXJEaWRDaGFuZ2UoU2Nyb2xsYWJsZUFy
ZWEmIHNjcm9sbGFibGVBcmVhKQotewotICAgIGF1dG8qIGxheWVyID0gZG93bmNhc3Q8Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyPihzY3JvbGxMYXllckZvclNjcm9sbGFibGVBcmVhKHNjcm9sbGFi
bGVBcmVhKSk7Ci0gICAgaWYgKCFsYXllcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbGF5ZXIt
PnNldFNjcm9sbGFibGVBcmVhKCZzY3JvbGxhYmxlQXJlYSk7Ci19Ci0KLXZvaWQgU2Nyb2xsaW5n
Q29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzOjp3aWxsRGVzdHJveVNjcm9sbGFibGVBcmVh
KFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSkKLXsKLSAgICBhdXRvKiBsYXllciA9IGRv
d25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oc2Nyb2xsTGF5ZXJGb3JTY3JvbGxhYmxl
QXJlYShzY3JvbGxhYmxlQXJlYSkpOwotICAgIGlmICghbGF5ZXIpCi0gICAgICAgIHJldHVybjsK
LQotICAgIGxheWVyLT5zZXRTY3JvbGxhYmxlQXJlYShudWxscHRyKTsKLX0KLQogYm9vbCBTY3Jv
bGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3M6OnJlcXVlc3RTY3JvbGxQb3NpdGlv
blVwZGF0ZShGcmFtZVZpZXcmIGZyYW1lVmlldywgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0
aW9uKQogewogICAgIGlmICghZnJhbWVWaWV3LmRlbGVnYXRlc1Njcm9sbGluZygpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9T
Y3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JD
b29yZGluYXRlZEdyYXBoaWNzLmgKaW5kZXggMjAyM2E5NTZiZDQ3ZGMxMGYyMWU5OGUwOGU1M2Ji
NjUwYmVjMzY4Zi4uOGYzNWE0ZTUxYjA0YzIxMTk1Y2E4ZDMxNWI3NzhmYzk0ZjUzZTVmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGlj
cy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5oCkBAIC00NSw5ICs0NSw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHVwZGF0ZU5vZGVMYXllcihTY3JvbGxpbmdOb2RlSUQsIEdyYXBoaWNzTGF5ZXIqKSBv
dmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZU5vZGVWaWV3cG9ydENvbnN0cmFpbnRzKFNjcm9sbGlu
Z05vZGVJRCwgY29uc3QgVmlld3BvcnRDb25zdHJhaW50cyYpIG92ZXJyaWRlOwogCi0gICAgdm9p
ZCBzY3JvbGxhYmxlQXJlYVNjcm9sbExheWVyRGlkQ2hhbmdlKFNjcm9sbGFibGVBcmVhJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVzdHJveVNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVh
Jikgb3ZlcnJpZGU7Ci0KICAgICBib29sIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShGcmFt
ZVZpZXcmLCBjb25zdCBJbnRQb2ludCYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggMDNjMmNiNzY1YjlkZWEzZjg0
NjE0ODYwZjVjMzYyZDE4ZDMxYzhkOS4uZWU2Y2E5ZTk4MjU5MDNmODQ0NjgxN2Y2ZjI4MmQ1MDMw
NDk4NjU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCkBA
IC00NSw3ICs0NSw2IEBAIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpHcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlcihUeXBlIGxheWVyVHlwZSwgR3JhcGhpY3NMCiAgICAgLCBtX2ZpeGVkVG9W
aWV3cG9ydChmYWxzZSkKICAgICAsIG1fZGVidWdCb3JkZXJXaWR0aCgwKQogICAgICwgbV9jb250
ZW50c0xheWVyKDApCi0gICAgLCBtX2lzU2Nyb2xsYWJsZShmYWxzZSkKIHsKIH0KIApAQCAtMzQ0
LDI0ICszNDMsNiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRTaG93UmVw
YWludENvdW50ZXIoYm9vbCBzaG93KQogICAgIG5vdGlmeUNoYW5nZShEZWJ1Z1Zpc3VhbHNDaGFu
Z2UpOwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpkaWRDb21taXRTY3Jv
bGxPZmZzZXQoY29uc3QgSW50U2l6ZSYgb2Zmc2V0KQotewotICAgIGlmIChvZmZzZXQuaXNaZXJv
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fY29tbWl0dGVkU2Nyb2xsT2Zmc2V0ID0gb2Zm
c2V0OwotICAgIG5vdGlmeUNoYW5nZShDb21taXR0ZWRTY3JvbGxPZmZzZXRDaGFuZ2UpOwotfQot
Ci12b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRJc1Njcm9sbGFibGUoYm9vbCBp
c1Njcm9sbGFibGUpCi17Ci0gICAgaWYgKG1faXNTY3JvbGxhYmxlID09IGlzU2Nyb2xsYWJsZSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pc1Njcm9sbGFibGUgPSBpc1Njcm9sbGFibGU7Ci0g
ICAgbm90aWZ5Q2hhbmdlKElzU2Nyb2xsYWJsZUNoYW5nZSk7Ci19Ci0KIHZvaWQgR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHko
KQogewogICAgIHByZXBhcmVCYWNraW5nU3RvcmVJZk5lZWRlZCgpOwpAQCAtNDg2LDEyICs0Njcs
NiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpjb21taXRMYXllckNoYW5nZXMo
KQogICAgIGlmIChtX2NoYW5nZU1hc2sgJiBGaXhlZFRvVmlld3BvckNoYW5nZSkKICAgICAgICAg
bV9sYXllci5zZXRGaXhlZFRvVmlld3BvcnQoZml4ZWRUb1ZpZXdwb3J0KCkpOwogCi0gICAgaWYg
KG1fY2hhbmdlTWFzayAmIElzU2Nyb2xsYWJsZUNoYW5nZSkKLSAgICAgICAgbV9sYXllci5zZXRJ
c1Njcm9sbGFibGUoaXNTY3JvbGxhYmxlKCkpOwotCi0gICAgaWYgKG1fY2hhbmdlTWFzayAmIENv
bW1pdHRlZFNjcm9sbE9mZnNldENoYW5nZSkKLSAgICAgICAgbV9sYXllci5kaWRDb21taXRTY3Jv
bGxPZmZzZXQobV9jb21taXR0ZWRTY3JvbGxPZmZzZXQpOwotCiAgICAgbV9jaGFuZ2VNYXNrID0g
Tm9DaGFuZ2VzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCmlu
ZGV4IGZlYjVjMzgzZTE5YzE4MTAwMzIzODYxZDYyZmRmN2QwODliYTViZDMuLjRhY2U0MWMzZTNj
YTU2ZmE5OTcyMzM2YTZlMWEzNjg3NjY4YTk2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlci5oCkBAIC0zNiw3ICszNiw2IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBH
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihUeXBlLCBHcmFwaGljc0xheWVyQ2xpZW50Jik7CiAg
ICAgdmlydHVhbCB+R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIoKTsKIAotICAgIHZvaWQgc2V0
U2Nyb2xsQ2xpZW50KFRleHR1cmVNYXBwZXJMYXllcjo6U2Nyb2xsaW5nQ2xpZW50KiBjbGllbnQp
IHsgbV9sYXllci5zZXRTY3JvbGxDbGllbnQoY2xpZW50KTsgfQogICAgIHZvaWQgc2V0SUQodWlu
dDMyX3QgaWQpIHsgbV9sYXllci5zZXRJRChpZCk7IH0KIAogICAgIC8vIEdyYXBoaWNzTGF5ZXIK
QEAgLTg5LDEwICs4OCw2IEBAIHB1YmxpYzoKIAogICAgIFRleHR1cmVNYXBwZXJMYXllciYgbGF5
ZXIoKSB7IHJldHVybiBtX2xheWVyOyB9CiAKLSAgICB2b2lkIGRpZENvbW1pdFNjcm9sbE9mZnNl
dChjb25zdCBJbnRTaXplJik7Ci0gICAgdm9pZCBzZXRJc1Njcm9sbGFibGUoYm9vbCk7Ci0gICAg
Ym9vbCBpc1Njcm9sbGFibGUoKSBjb25zdCB7IHJldHVybiBtX2lzU2Nyb2xsYWJsZTsgfQotCiAg
ICAgdm9pZCBzZXRGaXhlZFRvVmlld3BvcnQoYm9vbCk7CiAgICAgYm9vbCBmaXhlZFRvVmlld3Bv
cnQoKSBjb25zdCB7IHJldHVybiBtX2ZpeGVkVG9WaWV3cG9ydDsgfQogCkBAIC0xNTcsOSArMTUy
LDYgQEAgcHJpdmF0ZToKIAogICAgICAgICBGaXhlZFRvVmlld3BvckNoYW5nZSA9ICAgICAgKDFM
IDw8IDI2KSwKICAgICAgICAgQW5pbWF0aW9uU3RhcnRlZCA9ICAgICAgICAgICgxTCA8PCAyNyks
Ci0KLSAgICAgICAgQ29tbWl0dGVkU2Nyb2xsT2Zmc2V0Q2hhbmdlID0gICAgICgxTCA8PCAyOCks
Ci0gICAgICAgIElzU2Nyb2xsYWJsZUNoYW5nZSA9ICAgICAgICAgICAgICAoMUwgPDwgMjkpCiAg
ICAgfTsKICAgICB2b2lkIG5vdGlmeUNoYW5nZShDaGFuZ2VNYXNrKTsKIApAQCAtMTgwLDkgKzE3
Miw2IEBAIHByaXZhdGU6CiAgICAgRmxvYXRSZWN0IG1fbmVlZHNEaXNwbGF5UmVjdDsKICAgICBU
ZXh0dXJlTWFwcGVyQW5pbWF0aW9ucyBtX2FuaW1hdGlvbnM7CiAgICAgTW9ub3RvbmljVGltZSBt
X2FuaW1hdGlvblN0YXJ0VGltZTsKLQotICAgIEludFNpemUgbV9jb21taXR0ZWRTY3JvbGxPZmZz
ZXQ7Ci0gICAgYm9vbCBtX2lzU2Nyb2xsYWJsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKaW5kZXggNWVlMDYwOTllYmE4NTI2MTA5YzE1
YWUxZDI0OWFlZTIwZTUwM2MzNS4uNzhiMDY4ZDA4YjYwOWY5NGZmYWNmYjNhYmI2MTg5YTFlMTc4
Njc5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKQEAgLTcwMyw3NyArNzAzLDQgQEAg
dm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldFNjcm9sbFBvc2l0aW9uRGVsdGFJZk5lZWRlZChj
b25zdCBGbG9hdFNpemUmIGRlbHRhKQogICAgIG1fY3VycmVudFRyYW5zZm9ybS5zZXRQb3NpdGlv
bihhZGp1c3RlZFBvc2l0aW9uKCkpOwogfQogCi10ZW1wbGF0ZTxjbGFzcyBIaXRUZXN0Q29uZGl0
aW9uPiBUZXh0dXJlTWFwcGVyTGF5ZXIqIFRleHR1cmVNYXBwZXJMYXllcjo6aGl0VGVzdChjb25z
dCBGbG9hdFBvaW50JiBwb2ludCwgSGl0VGVzdENvbmRpdGlvbiBjb25kaXRpb24pCi17Ci0gICAg
aWYgKCFtX3N0YXRlLnZpc2libGUgfHwgIW1fc3RhdGUuY29udGVudHNWaXNpYmxlKQotICAgICAg
ICByZXR1cm4gMDsKLQotICAgIFRleHR1cmVNYXBwZXJMYXllciogcmVzdWx0ID0gMDsKLSAgICBm
b3IgKGludCBpID0gbV9jaGlsZHJlbi5zaXplKCkgLSAxOyAhcmVzdWx0ICYmIGkgPj0gMDsgLS1p
KQotICAgICAgICByZXN1bHQgPSBtX2NoaWxkcmVuW2ldLT5oaXRUZXN0KHBvaW50LCBjb25kaXRp
b24pOwotCi0gICAgaWYgKHJlc3VsdCkKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLQotICAgIHJl
dHVybiBjb25kaXRpb24odGhpcywgcG9pbnQpID8gdGhpcyA6IDA7Ci19Ci0KLWJvb2wgVGV4dHVy
ZU1hcHBlckxheWVyOjpzY3JvbGxhYmxlTGF5ZXJIaXRUZXN0Q29uZGl0aW9uKFRleHR1cmVNYXBw
ZXJMYXllciogbGF5ZXIsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KQotewotICAgIC8vIHNjcm9s
bGluZyBsYXllcidzIG1fcGFyZW50LT5tX3BhcmVudCwgdGhlIHBhcmVudCBvZiB0aGUgc2Nyb2xs
aW5nIGxheWVzLCBpcyB0aGUgb25lIHRoYXQgZGVmaW5lcyB0aGUKLSAgICAvLyByZWN0YW5nbGUg
dG8gYmUgdXNlZCBmb3IgaGl0IHRlc3RpbmcuCi0gICAgaWYgKCFsYXllci0+aXNTY3JvbGxhYmxl
KCkgfHwgIWxheWVyLT5tX3BhcmVudCB8fCAhbGF5ZXItPm1fcGFyZW50LT5tX3BhcmVudCkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgVGV4dHVyZU1hcHBlckxheWVyKiBwYXJlbnRMYXll
ciA9IGxheWVyLT5tX3BhcmVudC0+bV9wYXJlbnQ7Ci0gICAgRmxvYXRSZWN0IHJlY3QgPSBwYXJl
bnRMYXllci0+bGF5ZXJSZWN0KCk7Ci0gICAgcmV0dXJuIHBhcmVudExheWVyLT5tX2N1cnJlbnRU
cmFuc2Zvcm0uY29tYmluZWQoKS5tYXBRdWFkKHJlY3QpLmNvbnRhaW5zUG9pbnQocG9pbnQpOwot
fQotCi1UZXh0dXJlTWFwcGVyTGF5ZXIqIFRleHR1cmVNYXBwZXJMYXllcjo6ZmluZFNjcm9sbGFi
bGVDb250ZW50c0xheWVyQXQoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpCi17Ci0gICAgcmV0dXJu
IGhpdFRlc3QocG9pbnQsICZUZXh0dXJlTWFwcGVyTGF5ZXI6OnNjcm9sbGFibGVMYXllckhpdFRl
c3RDb25kaXRpb24pOwotfQotCi1GbG9hdFNpemUgVGV4dHVyZU1hcHBlckxheWVyOjptYXBTY3Jv
bGxPZmZzZXQoY29uc3QgRmxvYXRTaXplJiBvZmZzZXQpCi17Ci0gICAgZG91YmxlIHplcm9YLCB6
ZXJvWSwgb2Zmc2V0WCwgb2Zmc2V0WTsKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2Zv
cm0gPSBtX2N1cnJlbnRUcmFuc2Zvcm0uY29tYmluZWQoKS5pbnZlcnNlKCkudmFsdWVfb3IoVHJh
bnNmb3JtYXRpb25NYXRyaXgoKSk7Ci0gICAgdHJhbnNmb3JtLm1hcCgwLCAwLCB6ZXJvWCwgemVy
b1kpOwotICAgIHRyYW5zZm9ybS5tYXAob2Zmc2V0LndpZHRoKCksIG9mZnNldC5oZWlnaHQoKSwg
b2Zmc2V0WCwgb2Zmc2V0WSk7Ci0gICAgcmV0dXJuIEZsb2F0U2l6ZShvZmZzZXRYIC0gemVyb1gs
IG9mZnNldFkgLSB6ZXJvWSk7Ci19Ci0KLXZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpjb21taXRT
Y3JvbGxPZmZzZXQoY29uc3QgRmxvYXRTaXplJiBvZmZzZXQpCi17Ci0gICAgRmxvYXRTaXplIGZ1
bGxPZmZzZXQgPSBtX2FjY3VtdWxhdGVkU2Nyb2xsT2Zmc2V0RnJhY3Rpb25hbFBhcnQgKyBvZmZz
ZXQ7Ci0KLSAgICBpbnQgaW50V2lkdGggPSByb3VuZChmdWxsT2Zmc2V0LndpZHRoKCkpOwotICAg
IGludCBpbnRIZWlnaHQgPSByb3VuZChmdWxsT2Zmc2V0LmhlaWdodCgpKTsKLQotICAgIC8vIG1f
YWNjdW11bGF0ZWRTY3JvbGxPZmZzZXRGcmFjdGlvbmFsUGFydCBob2xkcyB0aGUgZnJhY3Rpb25h
bCBwYXJ0IG9mIHRoZSB1c2VyIHNjcm9sbCBvZmZzZXQgdGhhdAotICAgIC8vIGhhcyBub3QgeWV0
IGJlZW4gc3luY2VkIHdpdGggdGhlIHdlYiBwcm9jZXNzIGJlY2F1c2UgdGhlIHdlYiBwcm9jZXNz
IGV4cGVjdHMgYW4gSW50U2l6ZS4KLSAgICBtX2FjY3VtdWxhdGVkU2Nyb2xsT2Zmc2V0RnJhY3Rp
b25hbFBhcnQgPSBGbG9hdFNpemUoZnVsbE9mZnNldC53aWR0aCgpIC0gaW50V2lkdGgsIGZ1bGxP
ZmZzZXQuaGVpZ2h0KCkgLSBpbnRIZWlnaHQpOwotCi0gICAgbV9zY3JvbGxDbGllbnQtPmNvbW1p
dFNjcm9sbE9mZnNldChtX2lkLCBJbnRTaXplKGludFdpZHRoLCBpbnRIZWlnaHQpKTsKLX0KLQot
dm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNjcm9sbEJ5KGNvbnN0IEZsb2F0U2l6ZSYgb2Zmc2V0
KQotewotICAgIGlmICghaXNTY3JvbGxhYmxlKCkgfHwgIW1fc2Nyb2xsQ2xpZW50IHx8IG9mZnNl
dC5pc1plcm8oKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRmxvYXRTaXplIHNjcm9sbE9mZnNl
dCA9IG1hcFNjcm9sbE9mZnNldChvZmZzZXQpOwotICAgIG1fdXNlclNjcm9sbE9mZnNldCArPSBz
Y3JvbGxPZmZzZXQ7Ci0KLSAgICBtX2N1cnJlbnRUcmFuc2Zvcm0uc2V0UG9zaXRpb24oYWRqdXN0
ZWRQb3NpdGlvbigpKTsKLSAgICBjb21taXRTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KTsKLX0K
LQotdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OmRpZENvbW1pdFNjcm9sbE9mZnNldChjb25zdCBJ
bnRTaXplJiBvZmZzZXQpCi17Ci0gICAgbV91c2VyU2Nyb2xsT2Zmc2V0ID0gRmxvYXRTaXplKG1f
dXNlclNjcm9sbE9mZnNldC53aWR0aCgpIC0gb2Zmc2V0LndpZHRoKCksIG1fdXNlclNjcm9sbE9m
ZnNldC5oZWlnaHQoKSAtIG9mZnNldC5oZWlnaHQoKSk7Ci0gICAgbV9jdXJyZW50VHJhbnNmb3Jt
LnNldFBvc2l0aW9uKGFkanVzdGVkUG9zaXRpb24oKSk7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
TGF5ZXIuaAppbmRleCA4OTlhNTYxMjE0OTU1OTBlNGE5ZDE0ZTRlNjRhN2QwMGM0MzdhZjBlLi5i
YzYzNmU5NDQ0OWM2MDIxN2Y1NDAxOWNlYmMyMmMzMDc0NDA5YTExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJMYXllci5oCkBAIC00MSw3ICs0MSw2IEBAIHB1YmxpYzoKIAogICAgIGNsYXNzIFNjcm9sbGlu
Z0NsaWVudCB7CiAgICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0U2Nyb2xs
T2Zmc2V0KHVpbnQzMl90IGxheWVySUQsIGNvbnN0IEludFNpemUmIG9mZnNldCkgPSAwOwogICAg
IH07CiAKICAgICBUZXh0dXJlTWFwcGVyTGF5ZXIoKQpAQCAtNTMsOCArNTIsNiBAQCBwdWJsaWM6
CiAgICAgICAgICwgbV90ZXh0dXJlTWFwcGVyKDApCiAgICAgICAgICwgbV9maXhlZFRvVmlld3Bv
cnQoZmFsc2UpCiAgICAgICAgICwgbV9pZCgwKQotICAgICAgICAsIG1fc2Nyb2xsQ2xpZW50KDAp
Ci0gICAgICAgICwgbV9pc1Njcm9sbGFibGUoZmFsc2UpCiAgICAgICAgICwgbV9wYXR0ZXJuVHJh
bnNmb3JtRGlydHkoZmFsc2UpCiAgICAgeyB9CiAKQEAgLTY2LDEzICs2Myw2IEBAIHB1YmxpYzoK
ICAgICBjb25zdCBWZWN0b3I8VGV4dHVyZU1hcHBlckxheWVyKj4mIGNoaWxkcmVuKCkgY29uc3Qg
eyByZXR1cm4gbV9jaGlsZHJlbjsgfQogICAgIFRleHR1cmVNYXBwZXJMYXllciogZmluZFNjcm9s
bGFibGVDb250ZW50c0xheWVyQXQoY29uc3QgRmxvYXRQb2ludCYgcG9zKTsKIAotICAgIHZvaWQg
c2V0U2Nyb2xsQ2xpZW50KFNjcm9sbGluZ0NsaWVudCogc2Nyb2xsQ2xpZW50KSB7IG1fc2Nyb2xs
Q2xpZW50ID0gc2Nyb2xsQ2xpZW50OyB9Ci0gICAgdm9pZCBzY3JvbGxCeShjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmKTsKLQotICAgIHZvaWQgZGlkQ29tbWl0U2Nyb2xsT2Zmc2V0KGNvbnN0IElu
dFNpemUmKTsKLSAgICB2b2lkIHNldElzU2Nyb2xsYWJsZShib29sIGlzU2Nyb2xsYWJsZSkgeyBt
X2lzU2Nyb2xsYWJsZSA9IGlzU2Nyb2xsYWJsZTsgfQotICAgIGJvb2wgaXNTY3JvbGxhYmxlKCkg
Y29uc3QgeyByZXR1cm4gbV9pc1Njcm9sbGFibGU7IH0KLQogICAgIFRleHR1cmVNYXBwZXIqIHRl
eHR1cmVNYXBwZXIoKSBjb25zdCB7IHJldHVybiByb290TGF5ZXIoKS5tX3RleHR1cmVNYXBwZXI7
IH0KICAgICB2b2lkIHNldFRleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4bWFwKSB7IG1f
dGV4dHVyZU1hcHBlciA9IHRleG1hcDsgfQogCkBAIC0xNDMsNyArMTMzLDcgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgdm9pZCBzb3J0QnlaT3JkZXIoVmVjdG9yPFRleHR1cmVNYXBwZXJMYXllciog
PiYgYXJyYXkpOwogCiAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1cmUoKSB7IHJldHVy
biBtX2JhY2tpbmdTdG9yZSA/IG1fYmFja2luZ1N0b3JlLT50ZXh0dXJlKCkgOiAwOyB9Ci0gICAg
RmxvYXRQb2ludCBhZGp1c3RlZFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5wb3Mg
KyBtX3Njcm9sbFBvc2l0aW9uRGVsdGEgLSBtX3VzZXJTY3JvbGxPZmZzZXQ7IH0KKyAgICBGbG9h
dFBvaW50IGFkanVzdGVkUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3N0YXRlLnBvcyArIG1f
c2Nyb2xsUG9zaXRpb25EZWx0YTsgfQogICAgIGJvb2wgaXNBbmNlc3RvckZpeGVkVG9WaWV3cG9y
dCgpIGNvbnN0OwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHJlcGxpY2FUcmFuc2Zvcm0oKTsK
ICAgICB2b2lkIHJlbW92ZUZyb21QYXJlbnQoKTsKQEAgLTE5NCwxMiArMTg0LDYgQEAgcHJpdmF0
ZToKICAgICBGaWx0ZXJPcGVyYXRpb25zIG1fY3VycmVudEZpbHRlcnM7CiAgICAgZmxvYXQgbV9j
ZW50ZXJaOwogCi0gICAgdGVtcGxhdGU8Y2xhc3MgSGl0VGVzdENvbmRpdGlvbj4gVGV4dHVyZU1h
cHBlckxheWVyKiBoaXRUZXN0KGNvbnN0IEZsb2F0UG9pbnQmLCBIaXRUZXN0Q29uZGl0aW9uKTsK
LSAgICBzdGF0aWMgYm9vbCBzY3JvbGxhYmxlTGF5ZXJIaXRUZXN0Q29uZGl0aW9uKFRleHR1cmVN
YXBwZXJMYXllciosIGNvbnN0IEZsb2F0UG9pbnQmKTsKLQotICAgIEZsb2F0U2l6ZSBtYXBTY3Jv
bGxPZmZzZXQoY29uc3QgRmxvYXRTaXplJik7Ci0gICAgdm9pZCBjb21taXRTY3JvbGxPZmZzZXQo
Y29uc3QgRmxvYXRTaXplJik7Ci0KICAgICBzdHJ1Y3QgU3RhdGUgewogICAgICAgICBGbG9hdFBv
aW50IHBvczsKICAgICAgICAgRmxvYXRQb2ludDNEIGFuY2hvclBvaW50OwpAQCAtMjUzLDEwICsy
MzcsNiBAQCBwcml2YXRlOgogICAgIEZsb2F0U2l6ZSBtX3Njcm9sbFBvc2l0aW9uRGVsdGE7CiAg
ICAgYm9vbCBtX2ZpeGVkVG9WaWV3cG9ydDsKICAgICB1aW50MzJfdCBtX2lkOwotICAgIFNjcm9s
bGluZ0NsaWVudCogbV9zY3JvbGxDbGllbnQ7Ci0gICAgYm9vbCBtX2lzU2Nyb2xsYWJsZTsKLSAg
ICBGbG9hdFNpemUgbV91c2VyU2Nyb2xsT2Zmc2V0OwotICAgIEZsb2F0U2l6ZSBtX2FjY3VtdWxh
dGVkU2Nyb2xsT2Zmc2V0RnJhY3Rpb25hbFBhcnQ7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgg
bV9wYXR0ZXJuVHJhbnNmb3JtOwogICAgIGJvb2wgbV9wYXR0ZXJuVHJhbnNmb3JtRGlydHk7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmNwcAppbmRleCBjMzdmNmIzNDRkNGM0ZDM3MDU4MWVjYzdjMmY0NDY4MmFjMWRlZWNlLi5h
ZWVkM2UzMDNjYjZjMTAxMzdhZmViYjJiMTMwZmIzNDE0MTRhZDA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtMTQx
LDcgKzE0MSw2IEBAIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Q29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKFR5cGUgbGF5ZXJUeXBlLCBHcmFwaGljc0xheWVyCiAgICAgLCBtX2NvbXBvc2l0ZWRO
YXRpdmVJbWFnZVB0cigwKQogICAgICwgbV9wbGF0Zm9ybUxheWVyKDApCiAgICAgLCBtX2FuaW1h
dGlvblN0YXJ0ZWRUaW1lcigqdGhpcywgJkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YW5pbWF0
aW9uU3RhcnRlZFRpbWVyRmlyZWQpCi0gICAgLCBtX3Njcm9sbGFibGVBcmVhKDApCiB7CiAgICAg
c3RhdGljIENvb3JkaW5hdGVkTGF5ZXJJRCBuZXh0TGF5ZXJJRCA9IDE7CiAgICAgbV9pZCA9IG5l
eHRMYXllcklEKys7CkBAIC01NDgsMjkgKzU0Nyw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBTaG91
CiAgICAgYWRkUmVwYWludFJlY3QocmVjdCk7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyOjpzZXRTY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEp
Ci17Ci0gICAgYm9vbCBvbGRTY3JvbGxhYmxlID0gaXNTY3JvbGxhYmxlKCk7Ci0gICAgbV9zY3Jv
bGxhYmxlQXJlYSA9IHNjcm9sbGFibGVBcmVhOwotICAgIGlmIChvbGRTY3JvbGxhYmxlID09IGlz
U2Nyb2xsYWJsZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2xheWVyU3RhdGUuaXNTY3Jv
bGxhYmxlID0gaXNTY3JvbGxhYmxlKCk7Ci0gICAgbV9sYXllclN0YXRlLmZsYWdzQ2hhbmdlZCA9
IHRydWU7Ci0gICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwotfQotCi12b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6Y29tbWl0U2Nyb2xsT2Zmc2V0KGNvbnN0IEludFNpemUmIG9mZnNldCkK
LXsKLSAgICBpZiAoIWlzU2Nyb2xsYWJsZSgpIHx8IG9mZnNldC5pc1plcm8oKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgbV9zY3JvbGxhYmxlQXJlYS0+bm90aWZ5U2Nyb2xsUG9zaXRpb25DaGFu
Z2VkKG1fc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbFBvc2l0aW9uKCkgKyBvZmZzZXQpOwotICAgIG1f
bGF5ZXJTdGF0ZS5jb21taXR0ZWRTY3JvbGxPZmZzZXQgKz0gb2Zmc2V0OwotICAgIG1fbGF5ZXJT
dGF0ZS5jb21taXR0ZWRTY3JvbGxPZmZzZXRDaGFuZ2VkID0gdHJ1ZTsKLSAgICBkaWRDaGFuZ2VM
YXllclN0YXRlKCk7Ci19Ci0KIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRGaXhl
ZFRvVmlld3BvcnQoYm9vbCBpc0ZpeGVkKQogewogICAgIGlmIChtX2ZpeGVkVG9WaWV3cG9ydCA9
PSBpc0ZpeGVkKQpAQCAtNjY5LDcgKzY0NSw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpzeW5jTGF5ZXJTdGF0ZSgpCiAgICAgICAgIG1fbGF5ZXJTdGF0ZS5tYXNrc1RvQm91bmRz
ID0gbWFza3NUb0JvdW5kcygpOwogICAgICAgICBtX2xheWVyU3RhdGUucHJlc2VydmVzM0QgPSBw
cmVzZXJ2ZXMzRCgpOwogICAgICAgICBtX2xheWVyU3RhdGUuZml4ZWRUb1ZpZXdwb3J0ID0gZml4
ZWRUb1ZpZXdwb3J0KCk7Ci0gICAgICAgIG1fbGF5ZXJTdGF0ZS5pc1Njcm9sbGFibGUgPSBpc1Nj
cm9sbGFibGUoKTsKICAgICB9CiAKICAgICBpZiAobV9sYXllclN0YXRlLmRlYnVnVmlzdWFsc0No
YW5nZWQpIHsKQEAgLTc3NSw3ICs3NTAsNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6cmVzZXRMYXllclN0YXRlKCkKICAgICBtX2xheWVyU3RhdGUudGlsZXNUb0NyZWF0ZS5jbGVh
cigpOwogICAgIG1fbGF5ZXJTdGF0ZS50aWxlc1RvUmVtb3ZlLmNsZWFyKCk7CiAgICAgbV9sYXll
clN0YXRlLnRpbGVzVG9VcGRhdGUuY2xlYXIoKTsKLSAgICBtX2xheWVyU3RhdGUuY29tbWl0dGVk
U2Nyb2xsT2Zmc2V0ID0gSW50U2l6ZSgpOwogfQogCiBib29sIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6aW1hZ2VCYWNraW5nVmlzaWJsZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggZmQ5NjFmYTlhODg0NmFhYzA1ZjJl
ZTlkZTUyNGIwYzRiZTc2MzllYS4uZWNlZTJiZDdmNTNhNjc3YjFmM2I0MzdiN2RmY2FhMjJmYTky
ODQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuaApAQCAtNDQsNyArNDQsNiBAQCBjbGFzcyBQYWludGluZ0VuZ2luZTsKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjsKIGNsYXNzIFRl
eHR1cmVNYXBwZXJBbmltYXRpb25zOwotY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CiAKIGNsYXNzIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCB7CiBwdWJsaWM6CkBAIC0xMjAsMTAgKzExOSw2
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZl
Y3Rvcihjb25zdCBGbG9hdFBvaW50Jik7CiAKLSAgICB2b2lkIHNldFNjcm9sbGFibGVBcmVhKFNj
cm9sbGFibGVBcmVhKik7Ci0gICAgYm9vbCBpc1Njcm9sbGFibGUoKSBjb25zdCB7IHJldHVybiAh
IW1fc2Nyb2xsYWJsZUFyZWE7IH0KLSAgICB2b2lkIGNvbW1pdFNjcm9sbE9mZnNldChjb25zdCBJ
bnRTaXplJik7Ci0KICAgICBDb29yZGluYXRlZExheWVySUQgaWQoKSBjb25zdCB7IHJldHVybiBt
X2lkOyB9CiAKICAgICB2b2lkIHNldEZpeGVkVG9WaWV3cG9ydChib29sIGlzRml4ZWQpOwpAQCAt
MjI5LDggKzIyNCw2IEBAIHByaXZhdGU6CiAgICAgVGltZXIgbV9hbmltYXRpb25TdGFydGVkVGlt
ZXI7CiAgICAgVGV4dHVyZU1hcHBlckFuaW1hdGlvbnMgbV9hbmltYXRpb25zOwogICAgIE1vbm90
b25pY1RpbWUgbV9sYXN0QW5pbWF0aW9uU3RhcnRUaW1lOwotCi0gICAgU2Nyb2xsYWJsZUFyZWEq
IG1fc2Nyb2xsYWJsZUFyZWE7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmgKaW5kZXgg
YWI1MGExMWZkMWQwMjNjYmRlODdjZGJjNzBiOTNlZjMyYjRkMmMzNi4uNzFhNDQzMDRlMDA2MTg2
ZWI0OTk4MTdiZmQyNTU0YjFlNWRkOGJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaApAQCAtMTAzLDcgKzEwMyw2IEBAIHN0cnVj
dCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSB7CiAgICAgICAgICAgICBib29sIHBsYXRm
b3JtTGF5ZXJVcGRhdGVkOiAxOwogICAgICAgICAgICAgYm9vbCBwbGF0Zm9ybUxheWVyU2hvdWxk
U3dhcEJ1ZmZlcnM6IDE7CiAgICAgICAgICAgICBib29sIGlzU2Nyb2xsYWJsZUNoYW5nZWQ6IDE7
Ci0gICAgICAgICAgICBib29sIGNvbW1pdHRlZFNjcm9sbE9mZnNldENoYW5nZWQ6IDE7CiAgICAg
ICAgICAgICBib29sIGNvbnRlbnRzVGlsaW5nQ2hhbmdlZDogMTsKICAgICAgICAgfTsKICAgICAg
ICAgdW5zaWduZWQgY2hhbmdlTWFzazsKQEAgLTE3MCw4ICsxNjksNiBAQCBzdHJ1Y3QgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyU3RhdGUgewogICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllclByb3h5PiBwbGF0Zm9ybUxheWVyUHJveHk7CiAjZW5kaWYKIAotICAgIEludFNpemUg
Y29tbWl0dGVkU2Nyb2xsT2Zmc2V0OwotCiAgICAgYm9vbCBoYXNQZW5kaW5nQ2hhbmdlcygpIGNv
bnN0CiAgICAgewogICAgICAgICByZXR1cm4gY2hhbmdlTWFzayB8fCB0aWxlc1RvVXBkYXRlLnNp
emUoKSB8fCB0aWxlc1RvUmVtb3ZlLnNpemUoKSB8fCB0aWxlc1RvQ3JlYXRlLnNpemUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAppbmRleCAzNmJkZmZmMjY2ZThl
NWQyMDBlMzlhNGEzMmIzOGY0MmYxM2U0MGJlLi45NGY5NTllMjMyMjFkNTdkOTdkZDIzYjk2OGJi
MzAyZTMxNGUxNTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3Bw
CkBAIC0yNzQsMTMgKzI3NCw4IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRM
YXllclN0YXRlKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgQ29vcmRpCiAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgbV9maXhlZExheWVycy5yZW1vdmUoaWQpOwogICAgICAg
ICB9Ci0KLSAgICAgICAgbGF5ZXItPnNldElzU2Nyb2xsYWJsZShsYXllclN0YXRlLmlzU2Nyb2xs
YWJsZSk7CiAgICAgfQogCi0gICAgaWYgKGxheWVyU3RhdGUuY29tbWl0dGVkU2Nyb2xsT2Zmc2V0
Q2hhbmdlZCkKLSAgICAgICAgbGF5ZXItPmRpZENvbW1pdFNjcm9sbE9mZnNldChsYXllclN0YXRl
LmNvbW1pdHRlZFNjcm9sbE9mZnNldCk7Ci0KICAgICBwcmVwYXJlQ29udGVudEJhY2tpbmdTdG9y
ZShsYXllcik7CiAKICAgICAvLyBBcHBseSBPcGVyYXRpb25zLgpAQCAtMzA5LDcgKzMwNCw2IEBA
IHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpjcmVhdGVMYXllcihDb29yZGluYXRlZExh
eWVySUQgaWQpCiB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJMYXllcj4gbmV3
TGF5ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFRleHR1cmVNYXBwZXJMYXllcj4oKTsKICAgICBuZXdM
YXllci0+c2V0SUQoaWQpOwotICAgIG5ld0xheWVyLT5zZXRTY3JvbGxDbGllbnQodGhpcyk7CiAg
ICAgbV9sYXllcnMuYWRkKGlkLCBXVEZNb3ZlKG5ld0xheWVyKSk7CiB9CiAKQEAgLTYwOCwxNiAr
NjAyLDYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnB1cmdlR0xSZXNvdXJjZXMo
KQogICAgIG1fYmFja2luZ1N0b3Jlc1dpdGhQZW5kaW5nQnVmZmVycy5jbGVhcigpOwogfQogCi12
b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6Y29tbWl0U2Nyb2xsT2Zmc2V0KHVpbnQzMl90
IGxheWVySUQsIGNvbnN0IEludFNpemUmIG9mZnNldCkKLXsKLSAgICBpZiAoIW1fY2xpZW50KQot
ICAgICAgICByZXR1cm47Ci0gICAgZGlzcGF0Y2hPbk1haW5UaHJlYWQoW3RoaXMsIGxheWVySUQs
IG9mZnNldF0gewotICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+
Y29tbWl0U2Nyb2xsT2Zmc2V0KGxheWVySUQsIG9mZnNldCk7Ci0gICAgfSk7Ci19Ci0KIHZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRMYXllckFuaW1hdGlvbnNJZk5lZWRlZChUZXh0
dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0
ZSYgc3RhdGUpCiB7CiAgICAgaWYgKCFzdGF0ZS5hbmltYXRpb25zQ2hhbmdlZCkKQEAgLTY0Mywx
MSArNjI3LDYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldEFjdGl2ZShib29s
IGFjdGl2ZSkKICAgICAgICAgcmVuZGVyTmV4dEZyYW1lKCk7CiB9CiAKLVRleHR1cmVNYXBwZXJM
YXllciogQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpmaW5kU2Nyb2xsYWJsZUNvbnRlbnRzTGF5
ZXJBdChjb25zdCBGbG9hdFBvaW50JiBwb2ludCkKLXsKLSAgICByZXR1cm4gcm9vdExheWVyKCkg
PyByb290TGF5ZXIoKS0+ZmluZFNjcm9sbGFibGVDb250ZW50c0xheWVyQXQocG9pbnQpIDogMDsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAppbmRleCA4OTlk
YzcxMjBhNTU0MTc3NmJmMTUwYmIxOTY2YmQwZWYwNDFiNzU3Li5kOGYxNjBjZWE4NDRjY2ZkMWZj
ZTk5M2ViNzMxMGM2MGE4Nzk1MmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lLmgKQEAgLTYxLDEwICs2MSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Db29yZGluYXRl
ZEdyYXBoaWNzU2NlbmVDbGllbnQoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyTmV4dEZy
YW1lKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWV3cG9ydCgpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgY29tbWl0U2Nyb2xsT2Zmc2V0KHVpbnQzMl90IGxheWVySUQsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIG9mZnNldCkgPSAwOwogfTsKIAotY2xhc3MgQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZT4sIHB1YmxpYyBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OlNjcm9sbGluZ0Ns
aWVudAorY2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZT4KICNpZiBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1NfVEhSRUFERUQpCiAgICAgLCBwdWJsaWMgV2ViQ29yZTo6VGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXJQcm94eTo6Q29tcG9zaXRvcgogI2VuZGlmCkBAIC03NywxMCArNzYsNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBwYWludFRvQ3VycmVudEdMQ29udGV4dChjb25zdCBXZWJDb3JlOjpU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBj
b25zdCBXZWJDb3JlOjpDb2xvciYgYmFja2dyb3VuZENvbG9yLCBib29sIGRyYXdzQmFja2dyb3Vu
ZCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OlBh
aW50RmxhZ3MgPSAwKTsKICAgICB2b2lkIGRldGFjaCgpOwogCi0gICAgV2ViQ29yZTo6VGV4dHVy
ZU1hcHBlckxheWVyKiBmaW5kU2Nyb2xsYWJsZUNvbnRlbnRzTGF5ZXJBdChjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50Jik7Ci0KLSAgICB2b2lkIGNvbW1pdFNjcm9sbE9mZnNldCh1aW50MzJfdCBs
YXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBvZmZzZXQpIG92ZXJyaWRlOwotCiAgICAg
Ly8gVGhlIHBhaW50aW5nIHRocmVhZCBtdXN0IGxvY2sgdGhlIG1haW4gdGhyZWFkIHRvIHVzZSBi
ZWxvdyB0d28gbWV0aG9kcywgYmVjYXVzZSB0d28gbWV0aG9kcyBhY2Nlc3MgbWVtYmVycyB0aGF0
IHRoZSBtYWluIHRocmVhZCBtYW5hZ2VzLiBTZWUgbV9jbGllbnQuCiAgICAgLy8gQ3VycmVudGx5
LCBRUXVpY2tXZWJQYWdlOjp1cGRhdGVQYWludE5vZGUoKSBsb2NrcyB0aGUgbWFpbiB0aHJlYWQg
YmVmb3JlIGNhbGxpbmcgYm90aCBtZXRob2RzLgogICAgIHZvaWQgcHVyZ2VHTFJlc291cmNlcygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29t
cG9zaXRvci5jcHAKaW5kZXggM2FhYjFkY2E1N2MzMDUwZTc3YjllM2Q2ZjQ3NjZmNmZiOWU0ODJh
MC4uODM1NjE5Y2ZhMDJhNGQ4M2VmYzlkNmY4MWM4YjU0YzI4ODRiMWNjMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0
b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3Bw
CkBAIC0xNjksMTIgKzE2OSw2IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpyZW5kZXJOZXh0
RnJhbWUoKQogICAgIG1fY2xpZW50LnJlbmRlck5leHRGcmFtZSgpOwogfQogCi12b2lkIFRocmVh
ZGVkQ29tcG9zaXRvcjo6Y29tbWl0U2Nyb2xsT2Zmc2V0KHVpbnQzMl90IGxheWVySUQsIGNvbnN0
IEludFNpemUmIG9mZnNldCkKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAg
IG1fY2xpZW50LmNvbW1pdFNjcm9sbE9mZnNldChsYXllcklELCBvZmZzZXQpOwotfQotCiB2b2lk
IFRocmVhZGVkQ29tcG9zaXRvcjo6dXBkYXRlVmlld3BvcnQoKQogewogICAgIG1fY29tcG9zaXRp
bmdSdW5Mb29wLT5zY2hlZHVsZVVwZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21w
b3NpdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVh
ZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAppbmRleCBlZTA5ZGE0MzBiNTJlMzA4
Mzk3OWE5YWQxMzEzYmQyYTQwYmRmZDE3Li4yNzY1NGU4MDZjN2NiYmZkZWFiY2JjMmFjOTJhMTdl
ZjMwZDc5OWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9U
aHJlYWRlZENvbXBvc2l0b3IuaApAQCAtNTYsNyArNTYsNiBAQCBwdWJsaWM6CiAgICAgY2xhc3Mg
Q2xpZW50IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZW5kZXJOZXh0RnJh
bWUoKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjb21taXRTY3JvbGxPZmZzZXQodWludDMy
X3QgbGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgb2Zmc2V0KSA9IDA7CiAKICAgICAg
ICAgdmlydHVhbCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcoKSA9
IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0cm95R0xDb250ZXh0KCkgPSAwOwpAQCAt
OTcsNyArOTYsNiBAQCBwcml2YXRlOgogICAgIC8vIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNs
aWVudAogICAgIHZvaWQgcmVuZGVyTmV4dEZyYW1lKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRh
dGVWaWV3cG9ydCgpIG92ZXJyaWRlOwotICAgIHZvaWQgY29tbWl0U2Nyb2xsT2Zmc2V0KHVpbnQz
Ml90IGxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG9mZnNldCkgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIHJlbmRlckxheWVyVHJlZSgpOwogICAgIHZvaWQgc2NlbmVVcGRhdGVGaW5pc2hl
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGlu
YXRvci5jcHAKaW5kZXggNjYyYWQ2NzYxMjVkMTc3Y2Y5ZjgyNTcxOGFmNTRiNzI2NDgyMTc5Ny4u
NjRiMjU2ZmMzZjQwMDZhYzk0NjQ3NjRjYWExMmY5ZWQxNjQwM2RiNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3Np
dGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0zNTQs
MTIgKzM1NCw2IEBAIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6ZGV0YWNoTGF5ZXIoQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyKiBsYXllcikKICAgICBub3RpZnlGbHVzaFJlcXVpcmVkKGxh
eWVyKTsKIH0KIAotdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpjb21taXRTY3JvbGxPZmZz
ZXQodWludDMyX3QgbGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgb2Zmc2V0KQotewot
ICAgIGlmIChhdXRvKiBsYXllciA9IG1fcmVnaXN0ZXJlZExheWVycy5nZXQobGF5ZXJJRCkpCi0g
ICAgICAgIGxheWVyLT5jb21taXRTY3JvbGxPZmZzZXQob2Zmc2V0KTsKLX0KLQogdm9pZCBDb21w
b3NpdGluZ0Nvb3JkaW5hdG9yOjpyZW5kZXJOZXh0RnJhbWUoKQogewogICAgIGZvciAoYXV0byYg
YXRsYXMgOiBtX3VwZGF0ZUF0bGFzZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3Iu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29tcG9zaXRpbmdDb29yZGluYXRvci5oCmluZGV4IGY2Y2Q4NDEzNjA1NWU1ZjU5ZWZjZmZkNTk5
MWE2M2YzNTA5ZmQ2YTQuLjY2OTU0ZmY1ODE3Y2FiZjRjZTg4ZWUxNjZhODEwNjk1OGExN2EwMWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRv
ci5oCkBAIC03OSw3ICs3OSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VmlzaWJsZUNvbnRl
bnRzUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50Jik7CiAgICAgdm9pZCByZW5kZXJOZXh0RnJhbWUoKTsKLSAgICB2b2lkIGNvbW1pdFNjcm9s
bE9mZnNldCh1aW50MzJfdCBsYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBvZmZzZXQp
OwogCiAgICAgdm9pZCBjcmVhdGVSb290TGF5ZXIoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwog
ICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1f
cm9vdExheWVyLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggODMyZGJhMjQzMTZmZjQzMjdkYjBjNzcy
YWFhZjZmYWRmNWZiN2YwZi4uM2YxMDVjOGEwZGU0NjU4MjYzOTU1ZGVjNDliYTVjOTY1MWJiZmJh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0LmNwcApAQCAtMjM2LDExICsyMzYsNiBAQCB2b2lkIENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdDo6c2NoZWR1bGVBbmltYXRpb24oKQogICAgIG1fbGF5ZXJGbHVzaFRpbWVyLnN0YXJ0
T25lU2hvdCgxX3MgKiBtX2Nvb3JkaW5hdG9yLm5leHRBbmltYXRpb25TZXJ2aWNlVGltZSgpKTsK
IH0KIAotdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmNvbW1pdFNjcm9sbE9mZnNldCh1
aW50MzJfdCBsYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBvZmZzZXQpCi17Ci0gICAg
bV9jb29yZGluYXRvci5jb21taXRTY3JvbGxPZmZzZXQobGF5ZXJJRCwgb2Zmc2V0KTsKLX0KLQog
dm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmNsZWFyVXBkYXRlQXRsYXNlcygpCiB7CiAg
ICAgbV9jb29yZGluYXRvci5jbGVhclVwZGF0ZUF0bGFzZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDA2ZTZhYWNj
ZDIwMWM4NTJiN2YyYWE3ZWJkN2U4NzZmNDc5ODE3YzMuLjZjM2JlOTRmMmY0Y2JiNGZlNDY5YTA0
YWRhMDE5MjFhZGYxMmIyYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZExheWVyVHJlZUhvc3QuaApAQCAtNjEsNyArNjEsNiBAQCBwcm90ZWN0ZWQ6CiAK
ICAgICB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwogICAgIHZvaWQgcmVuZGVyTmV4dEZyYW1l
KCk7Ci0gICAgdm9pZCBjb21taXRTY3JvbGxPZmZzZXQodWludDMyX3QgbGF5ZXJJRCwgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgb2Zmc2V0KTsKIAogICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJG
YWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVh
ZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0LmgKaW5kZXggMmYyYmM0NmRkYjhkNWVkMTJmOWM0NDQ4OTE4Nzc2MWU2YzhiN2VkMy4uOWVh
ZmJkYmQzZDE3MmU5ODI2NTU4ZTRiZmNhYTgzNDIyNzRhNjg5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhv
c3QuaApAQCAtODUsMTEgKzg1LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fbGF5ZXJUcmVl
SG9zdC5yZW5kZXJOZXh0RnJhbWUoKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgY29tbWl0
U2Nyb2xsT2Zmc2V0KHVpbnQzMl90IGxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG9m
ZnNldCkgb3ZlcnJpZGUKLSAgICAgICAgewotICAgICAgICAgICAgbV9sYXllclRyZWVIb3N0LmNv
bW1pdFNjcm9sbE9mZnNldChsYXllcklELCBvZmZzZXQpOwotICAgICAgICB9Ci0KICAgICAgICAg
dWludDY0X3QgbmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKCkgb3ZlcnJpZGUKICAg
ICAgICAgewogICAgICAgICAgICAgcmV0dXJuIG1fbGF5ZXJUcmVlSG9zdC5uYXRpdmVTdXJmYWNl
SGFuZGxlRm9yQ29tcG9zaXRpbmcoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335084</attachid>
            <date>2018-03-06 04:07:52 -0800</date>
            <delta_ts>2018-03-06 04:07:52 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-183340-20180306130750.patch</filename>
            <type>text/plain</type>
            <size>32519</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5MzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzZmMmU1NmRkZWU4OTVi
MmQwYzNmNDIxMmQyNjQ0ZjMxNzhhZGMwMS4uYWM0ZjI5MDk3OGQyMzE2MmNkZWVmYjdlODYzNjZh
MjNjYTQ2NjRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU4IEBACiAyMDE4LTAzLTA2ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbQ29vcmRHcmFwaGlj
c10gUmVtb3ZlIHVudXNlZCBzY3JvbGxpbmctcmVsYXRlZCBjb2RlIGluIFRleHR1cmVNYXBwZXJM
YXllciwgQ29vcmRpbmF0ZWRHcmFwaGljcyBzdGFjaworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWlj
aGFlbCBDYXRhbnphcm8uCisKKyAgICAgICAgVGV4dHVyZU1hcHBlckxheWVyOjpzY3JvbGxCeSgp
IG1ldGhvZCBpcyBjb21wbGV0ZWx5IHVudXNlZCBhbmQgY2FuIGJlCisgICAgICAgIHJlbW92ZWQu
IFRoaXMgb3BlbnMgdGhlIGdhdGVzIG9uIHJlbW92aW5nIG1ham9yaXR5IG9mIHNjcm9sbGluZy1y
ZWxhdGVkCisgICAgICAgIGNvZGUgaW4gVGV4dHVyZU1hcHBlckxheWVyLCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIgYW5kCisgICAgICAgIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSBjbGFzc2Vz
LCBhbG9uZyB3aXRoIHNtYWxsZXIgYml0cyBpbiBvdGhlcgorICAgICAgICBjbG9zZWx5LWFzc29j
aWF0ZWQgY2xhc3Nlcy4KKworICAgICAgICBXZSdyZSBhYmxlIHRvIHJlbW92ZSB0d28gdmlydHVh
bCBtZXRob2Qgb3ZlcnJpZGVzIGluIHRoZQorICAgICAgICBTY3JvbGxpbmdDb29yZGluYXRvckNv
b3JkaW5hdGVkR3JhcGhpY3MgY2xhc3MuCisKKyAgICAgICAgVGV4dHVyZU1hcHBlckxheWVyIGNh
biBkcm9wIHRoZSBTY3JvbGxpbmdDbGllbnQgbWVtYmVyIHZhcmlhYmxlLCBhbG9uZworICAgICAg
ICB3aXRoIG11bHRpcGxlIG90aGVycy4gVmFyaW91cyB1bnVzZWQgbWV0aG9kcyBpbiB0aGF0IGNs
YXNzIGFyZSByZW1vdmVkCisgICAgICAgIGFzIHdlbGwuCisKKyAgICAgICAgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyIGFuZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciBjYW4gYm90aCByZW1v
dmUKKyAgICAgICAgdGhlIGN1c3RvbSBzY3JvbGxpbmcgc3RhdGUgdHJhY2tpbmcuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIC0tIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29y
ZGluYXRlZEdyYXBoaWNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5h
dG9yQ29vcmRpbmF0ZWRHcmFwaGljczo6c2Nyb2xsYWJsZUFyZWFTY3JvbGxMYXllckRpZENoYW5n
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvckNvb3Jk
aW5hdGVkR3JhcGhpY3M6OndpbGxEZXN0cm95U2Nyb2xsYWJsZUFyZWEpOiBEZWxldGVkLgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRp
bmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcik6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6Y29tbWl0TGF5
ZXJDaGFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
OjpkaWRDb21taXRTY3JvbGxPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnNldElzU2Nyb2xsYWJsZSk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OmhpdFRlc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpzY3JvbGxhYmxl
TGF5ZXJIaXRUZXN0Q29uZGl0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJMYXllcjo6ZmluZFNjcm9sbGFibGVDb250ZW50c0xheWVyQXQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjptYXBTY3JvbGxPZmZzZXQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpjb21taXRTY3Jv
bGxPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVy
OjpzY3JvbGxCeSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5
ZXI6OmRpZENvbW1pdFNjcm9sbE9mZnNldCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpzeW5jTGF5ZXJTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OnJlc2V0TGF5ZXJTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OnNldFNjcm9sbGFibGVBcmVhKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Y29tbWl0U2Nyb2xsT2Zmc2V0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oOgorCisyMDE4LTAzLTA2
ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKwogICAgICAgICBbQ29vcmRH
cmFwaGljc10gQXBwbHkgVGV4dHVyZU1hcHBlckxheWVyIGFuaW1hdGlvbnMgd2l0aCBhIHNpbmds
ZSBNb25vdG9uaWNUaW1lIHZhbHVlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODMzNjAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjMDMxYzM2YzI4NDg4NjRjZDZjMDg5
ZDg4OGRmOGUyMzM2ZTcxZGYyLi43ODU3MDU5YmU3OWIxMzVhN2Y5MjU5M2FkN2VjMWE1MTVkODJk
OWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDE4LTAzLTA2ICBaYW4gRG9iZXJzZWsg
IDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbQ29vcmRHcmFwaGljc10gUmVtb3Zl
IHVudXNlZCBzY3JvbGxpbmctcmVsYXRlZCBjb2RlIGluIFRleHR1cmVNYXBwZXJMYXllciwgQ29v
cmRpbmF0ZWRHcmFwaGljcyBzdGFjaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgzMzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWljaGFlbCBDYXRh
bnphcm8uCisKKyAgICAgICAgV2l0aCBtb3N0IG9mIHRoZSBzY3JvbGxpbmctcmVsYXRlZCBjb2Rl
IGluIFRleHR1cmVNYXBwZXJMYXllciBvbiB0aGUKKyAgICAgICAgY2hvcHBpbmcgYmxvY2ssIHdl
IGNhbiBub3cgZHJvcCB0aGUgU2Nyb2xsaW5nQ2xpZW50IGluaGVyaXRhbmNlIGFuZCB0aGUKKyAg
ICAgICAgY29tbWl0U2Nyb2xsT2Zmc2V0KCkgdmlydHVhbCBtZXRob2QgaW1wbGVtZW50YXRpb24u
IFRoaXMgZW5hYmxlcworICAgICAgICByZW1vdmluZyB0aGUgd2hvbGUgY29tbWl0U2Nyb2xsT2Zm
c2V0KCkgY2FsbCBjaGFpbiB0aGF0IHJhbiBmcm9tCisgICAgICAgIENvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZSB0aHJvdWdoIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCBhbmQKKyAgICAgICAgQ29t
cG9zaXRpbmdDb29yZGluYXRvciB0byB0aGUgYWZmZWN0ZWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyIG9iamVjdC4KKworICAgICAgICBUaGUgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpmaW5k
U2Nyb2xsYWJsZUNvbnRlbnRzTGF5ZXJBdCgpIG1ldGhvZCBpcworICAgICAgICBhbHNvIHVudXNl
ZCBhbmQgY2FuIGJlIGRlbGV0ZWQuCisKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldExheWVyU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpD
b29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNyZWF0ZUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpjb21taXRTY3JvbGxPZmZzZXQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmZpbmRTY3JvbGxhYmxl
Q29udGVudHNMYXllckF0KTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3NpdG9yOjpjb21taXRTY3JvbGxPZmZz
ZXQpOiBEZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVh
ZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6Y29tbWl0U2Nyb2xsT2Zm
c2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpjb21taXRTY3JvbGxP
ZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0Lmg6CisKKzIwMTgtMDMtMDYgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEu
Y29tPgorCiAgICAgICAgIFtDb29yZEdyYXBoaWNzXSBBcHBseSBUZXh0dXJlTWFwcGVyTGF5ZXIg
YW5pbWF0aW9ucyB3aXRoIGEgc2luZ2xlIE1vbm90b25pY1RpbWUgdmFsdWUKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzM2MAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29v
cmRpbmF0ZWRHcmFwaGljcy5jcHAKaW5kZXggZTA0YjQ0NWEwNTMwZjAzODZhM2ZmZTQ1ZDc0ZmVi
N2E0NWU0OTU1My4uMDg2NTg0MTliNzEzY2VkOWZkNzNiYzhiM2M4NzcyYjQ4MGE5ZmJjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGlj
cy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmNwcApAQCAtOTgsMjQgKzk4LDYgQEAgdm9pZCBT
Y3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3M6OnVwZGF0ZU5vZGVWaWV3cG9y
dENvbnN0cmFpbnRzKFNjcm8KICAgICB9CiB9CiAKLXZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JD
b29yZGluYXRlZEdyYXBoaWNzOjpzY3JvbGxhYmxlQXJlYVNjcm9sbExheWVyRGlkQ2hhbmdlKFNj
cm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSkKLXsKLSAgICBhdXRvKiBsYXllciA9IGRvd25j
YXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oc2Nyb2xsTGF5ZXJGb3JTY3JvbGxhYmxlQXJl
YShzY3JvbGxhYmxlQXJlYSkpOwotICAgIGlmICghbGF5ZXIpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGxheWVyLT5zZXRTY3JvbGxhYmxlQXJlYSgmc2Nyb2xsYWJsZUFyZWEpOwotfQotCi12b2lk
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljczo6d2lsbERlc3Ryb3lTY3Jv
bGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEpCi17Ci0gICAgYXV0byog
bGF5ZXIgPSBkb3duY2FzdDxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI+KHNjcm9sbExheWVyRm9y
U2Nyb2xsYWJsZUFyZWEoc2Nyb2xsYWJsZUFyZWEpKTsKLSAgICBpZiAoIWxheWVyKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBsYXllci0+c2V0U2Nyb2xsYWJsZUFyZWEobnVsbHB0cik7Ci19Ci0K
IGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzOjpyZXF1ZXN0U2Ny
b2xsUG9zaXRpb25VcGRhdGUoRnJhbWVWaWV3JiBmcmFtZVZpZXcsIGNvbnN0IEludFBvaW50JiBz
Y3JvbGxQb3NpdGlvbikKIHsKICAgICBpZiAoIWZyYW1lVmlldy5kZWxlZ2F0ZXNTY3JvbGxpbmco
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVk
Z3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5oCmluZGV4IDIwMjNhOTU2YmQ0N2RjMTBmMjFl
OThlMDhlNTNiYjY1MGJlYzM2OGYuLjhmMzVhNGU1MWIwNGMyMTE5NWNhOGQzMTViNzc4ZmM5NGY1
M2U1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5h
dGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3Jv
bGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuaApAQCAtNDUsOSArNDUsNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCB1cGRhdGVOb2RlTGF5ZXIoU2Nyb2xsaW5nTm9kZUlELCBHcmFwaGlj
c0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVOb2RlVmlld3BvcnRDb25zdHJhaW50
cyhTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFZpZXdwb3J0Q29uc3RyYWludHMmKSBvdmVycmlkZTsK
IAotICAgIHZvaWQgc2Nyb2xsYWJsZUFyZWFTY3JvbGxMYXllckRpZENoYW5nZShTY3JvbGxhYmxl
QXJlYSYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbERlc3Ryb3lTY3JvbGxhYmxlQXJlYShTY3Jv
bGxhYmxlQXJlYSYpIG92ZXJyaWRlOwotCiAgICAgYm9vbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25V
cGRhdGUoRnJhbWVWaWV3JiwgY29uc3QgSW50UG9pbnQmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCmluZGV4IDU5MGYxNmMy
MzdmYWJlY2E0YTBhMzA1NjkxNWJmZTAxYzJhMTFlMTEuLjg1ZjQ5NjRmNGM0MDFiY2I2ZjcxZTAy
YWFiNTRjYmRlOTY4ODhmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyLmNwcApAQCAtNDUsNyArNDUsNiBAQCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6R3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIoVHlwZSBsYXllclR5cGUsIEdyYXBoaWNzTAogICAgICwg
bV9maXhlZFRvVmlld3BvcnQoZmFsc2UpCiAgICAgLCBtX2RlYnVnQm9yZGVyV2lkdGgoMCkKICAg
ICAsIG1fY29udGVudHNMYXllcigwKQotICAgICwgbV9pc1Njcm9sbGFibGUoZmFsc2UpCiB7CiB9
CiAKQEAgLTM0NCwyNCArMzQzLDYgQEAgdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6
c2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wgc2hvdykKICAgICBub3RpZnlDaGFuZ2UoRGVidWdW
aXN1YWxzQ2hhbmdlKTsKIH0KIAotdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6ZGlk
Q29tbWl0U2Nyb2xsT2Zmc2V0KGNvbnN0IEludFNpemUmIG9mZnNldCkKLXsKLSAgICBpZiAob2Zm
c2V0LmlzWmVybygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2NvbW1pdHRlZFNjcm9sbE9m
ZnNldCA9IG9mZnNldDsKLSAgICBub3RpZnlDaGFuZ2UoQ29tbWl0dGVkU2Nyb2xsT2Zmc2V0Q2hh
bmdlKTsKLX0KLQotdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0SXNTY3JvbGxh
YmxlKGJvb2wgaXNTY3JvbGxhYmxlKQotewotICAgIGlmIChtX2lzU2Nyb2xsYWJsZSA9PSBpc1Nj
cm9sbGFibGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXNTY3JvbGxhYmxlID0gaXNTY3Jv
bGxhYmxlOwotICAgIG5vdGlmeUNoYW5nZShJc1Njcm9sbGFibGVDaGFuZ2UpOwotfQotCiB2b2lk
IEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlz
TGF5ZXJPbmx5KCkKIHsKICAgICBwcmVwYXJlQmFja2luZ1N0b3JlSWZOZWVkZWQoKTsKQEAgLTQ4
NiwxMiArNDY3LDYgQEAgdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6Y29tbWl0TGF5
ZXJDaGFuZ2VzKCkKICAgICBpZiAobV9jaGFuZ2VNYXNrICYgRml4ZWRUb1ZpZXdwb3JDaGFuZ2Up
CiAgICAgICAgIG1fbGF5ZXIuc2V0Rml4ZWRUb1ZpZXdwb3J0KGZpeGVkVG9WaWV3cG9ydCgpKTsK
IAotICAgIGlmIChtX2NoYW5nZU1hc2sgJiBJc1Njcm9sbGFibGVDaGFuZ2UpCi0gICAgICAgIG1f
bGF5ZXIuc2V0SXNTY3JvbGxhYmxlKGlzU2Nyb2xsYWJsZSgpKTsKLQotICAgIGlmIChtX2NoYW5n
ZU1hc2sgJiBDb21taXR0ZWRTY3JvbGxPZmZzZXRDaGFuZ2UpCi0gICAgICAgIG1fbGF5ZXIuZGlk
Q29tbWl0U2Nyb2xsT2Zmc2V0KG1fY29tbWl0dGVkU2Nyb2xsT2Zmc2V0KTsKLQogICAgIG1fY2hh
bmdlTWFzayA9IE5vQ2hhbmdlczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIuaAppbmRleCA2N2M0ZGE2NzcxNjA0YTdlMDNmZmRjNDdjODExMDdmZTNkMzViNmIwLi41
NGYzYWQzNjIwMTI1Nzg3ZjQ3N2I0YjdhMzYxZTlmNzQwMWQ5MWI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIuaApAQCAtMzYsNyArMzYsNiBAQCBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIoVHlwZSwgR3JhcGhpY3NMYXllckNs
aWVudCYpOwogICAgIHZpcnR1YWwgfkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKCk7CiAKLSAg
ICB2b2lkIHNldFNjcm9sbENsaWVudChUZXh0dXJlTWFwcGVyTGF5ZXI6OlNjcm9sbGluZ0NsaWVu
dCogY2xpZW50KSB7IG1fbGF5ZXIuc2V0U2Nyb2xsQ2xpZW50KGNsaWVudCk7IH0KICAgICB2b2lk
IHNldElEKHVpbnQzMl90IGlkKSB7IG1fbGF5ZXIuc2V0SUQoaWQpOyB9CiAKICAgICAvLyBHcmFw
aGljc0xheWVyCkBAIC04OSwxMCArODgsNiBAQCBwdWJsaWM6CiAKICAgICBUZXh0dXJlTWFwcGVy
TGF5ZXImIGxheWVyKCkgeyByZXR1cm4gbV9sYXllcjsgfQogCi0gICAgdm9pZCBkaWRDb21taXRT
Y3JvbGxPZmZzZXQoY29uc3QgSW50U2l6ZSYpOwotICAgIHZvaWQgc2V0SXNTY3JvbGxhYmxlKGJv
b2wpOwotICAgIGJvb2wgaXNTY3JvbGxhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9pc1Njcm9sbGFi
bGU7IH0KLQogICAgIHZvaWQgc2V0Rml4ZWRUb1ZpZXdwb3J0KGJvb2wpOwogICAgIGJvb2wgZml4
ZWRUb1ZpZXdwb3J0KCkgY29uc3QgeyByZXR1cm4gbV9maXhlZFRvVmlld3BvcnQ7IH0KIApAQCAt
MTU1LDkgKzE1MCw2IEBAIHByaXZhdGU6CiAKICAgICAgICAgRml4ZWRUb1ZpZXdwb3JDaGFuZ2Ug
PSAgICAgICgxTCA8PCAyNiksCiAgICAgICAgIEFuaW1hdGlvblN0YXJ0ZWQgPSAgICAgICAgICAo
MUwgPDwgMjcpLAotCi0gICAgICAgIENvbW1pdHRlZFNjcm9sbE9mZnNldENoYW5nZSA9ICAgICAo
MUwgPDwgMjgpLAotICAgICAgICBJc1Njcm9sbGFibGVDaGFuZ2UgPSAgICAgICAgICAgICAgKDFM
IDw8IDI5KQogICAgIH07CiAgICAgdm9pZCBub3RpZnlDaGFuZ2UoQ2hhbmdlTWFzayk7CiAKQEAg
LTE3OCw5ICsxNzAsNiBAQCBwcml2YXRlOgogICAgIEZsb2F0UmVjdCBtX25lZWRzRGlzcGxheVJl
Y3Q7CiAgICAgVGV4dHVyZU1hcHBlckFuaW1hdGlvbnMgbV9hbmltYXRpb25zOwogICAgIE1vbm90
b25pY1RpbWUgbV9hbmltYXRpb25TdGFydFRpbWU7Ci0KLSAgICBJbnRTaXplIG1fY29tbWl0dGVk
U2Nyb2xsT2Zmc2V0OwotICAgIGJvb2wgbV9pc1Njcm9sbGFibGU7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCmluZGV4IGZjODFlNTNlZjlh
NTQwNTgyOGJlOWYxZmJlOTU1MmUxM2JmYmQzYzUuLmI5YjJmYzdjMmZkNmUwMmIwNTI2MGU2NDA2
Y2ZhM2M5NWM2ODllOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCkBAIC03MDMsNzcg
KzcwMyw0IEBAIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpzZXRTY3JvbGxQb3NpdGlvbkRlbHRh
SWZOZWVkZWQoY29uc3QgRmxvYXRTaXplJiBkZWx0YSkKICAgICBtX2N1cnJlbnRUcmFuc2Zvcm0u
c2V0UG9zaXRpb24oYWRqdXN0ZWRQb3NpdGlvbigpKTsKIH0KIAotdGVtcGxhdGU8Y2xhc3MgSGl0
VGVzdENvbmRpdGlvbj4gVGV4dHVyZU1hcHBlckxheWVyKiBUZXh0dXJlTWFwcGVyTGF5ZXI6Omhp
dFRlc3QoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIEhpdFRlc3RDb25kaXRpb24gY29uZGl0aW9u
KQotewotICAgIGlmICghbV9zdGF0ZS52aXNpYmxlIHx8ICFtX3N0YXRlLmNvbnRlbnRzVmlzaWJs
ZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBUZXh0dXJlTWFwcGVyTGF5ZXIqIHJlc3VsdCA9
IDA7Ci0gICAgZm9yIChpbnQgaSA9IG1fY2hpbGRyZW4uc2l6ZSgpIC0gMTsgIXJlc3VsdCAmJiBp
ID49IDA7IC0taSkKLSAgICAgICAgcmVzdWx0ID0gbV9jaGlsZHJlbltpXS0+aGl0VGVzdChwb2lu
dCwgY29uZGl0aW9uKTsKLQotICAgIGlmIChyZXN1bHQpCi0gICAgICAgIHJldHVybiByZXN1bHQ7
Ci0KLSAgICByZXR1cm4gY29uZGl0aW9uKHRoaXMsIHBvaW50KSA/IHRoaXMgOiAwOwotfQotCi1i
b29sIFRleHR1cmVNYXBwZXJMYXllcjo6c2Nyb2xsYWJsZUxheWVySGl0VGVzdENvbmRpdGlvbihU
ZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCkKLXsKLSAg
ICAvLyBzY3JvbGxpbmcgbGF5ZXIncyBtX3BhcmVudC0+bV9wYXJlbnQsIHRoZSBwYXJlbnQgb2Yg
dGhlIHNjcm9sbGluZyBsYXllcywgaXMgdGhlIG9uZSB0aGF0IGRlZmluZXMgdGhlCi0gICAgLy8g
cmVjdGFuZ2xlIHRvIGJlIHVzZWQgZm9yIGhpdCB0ZXN0aW5nLgotICAgIGlmICghbGF5ZXItPmlz
U2Nyb2xsYWJsZSgpIHx8ICFsYXllci0+bV9wYXJlbnQgfHwgIWxheWVyLT5tX3BhcmVudC0+bV9w
YXJlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIFRleHR1cmVNYXBwZXJMYXllciog
cGFyZW50TGF5ZXIgPSBsYXllci0+bV9wYXJlbnQtPm1fcGFyZW50OwotICAgIEZsb2F0UmVjdCBy
ZWN0ID0gcGFyZW50TGF5ZXItPmxheWVyUmVjdCgpOwotICAgIHJldHVybiBwYXJlbnRMYXllci0+
bV9jdXJyZW50VHJhbnNmb3JtLmNvbWJpbmVkKCkubWFwUXVhZChyZWN0KS5jb250YWluc1BvaW50
KHBvaW50KTsKLX0KLQotVGV4dHVyZU1hcHBlckxheWVyKiBUZXh0dXJlTWFwcGVyTGF5ZXI6OmZp
bmRTY3JvbGxhYmxlQ29udGVudHNMYXllckF0KGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KQotewot
ICAgIHJldHVybiBoaXRUZXN0KHBvaW50LCAmVGV4dHVyZU1hcHBlckxheWVyOjpzY3JvbGxhYmxl
TGF5ZXJIaXRUZXN0Q29uZGl0aW9uKTsKLX0KLQotRmxvYXRTaXplIFRleHR1cmVNYXBwZXJMYXll
cjo6bWFwU2Nyb2xsT2Zmc2V0KGNvbnN0IEZsb2F0U2l6ZSYgb2Zmc2V0KQotewotICAgIGRvdWJs
ZSB6ZXJvWCwgemVyb1ksIG9mZnNldFgsIG9mZnNldFk7Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRy
aXggdHJhbnNmb3JtID0gbV9jdXJyZW50VHJhbnNmb3JtLmNvbWJpbmVkKCkuaW52ZXJzZSgpLnZh
bHVlX29yKFRyYW5zZm9ybWF0aW9uTWF0cml4KCkpOwotICAgIHRyYW5zZm9ybS5tYXAoMCwgMCwg
emVyb1gsIHplcm9ZKTsKLSAgICB0cmFuc2Zvcm0ubWFwKG9mZnNldC53aWR0aCgpLCBvZmZzZXQu
aGVpZ2h0KCksIG9mZnNldFgsIG9mZnNldFkpOwotICAgIHJldHVybiBGbG9hdFNpemUob2Zmc2V0
WCAtIHplcm9YLCBvZmZzZXRZIC0gemVyb1kpOwotfQotCi12b2lkIFRleHR1cmVNYXBwZXJMYXll
cjo6Y29tbWl0U2Nyb2xsT2Zmc2V0KGNvbnN0IEZsb2F0U2l6ZSYgb2Zmc2V0KQotewotICAgIEZs
b2F0U2l6ZSBmdWxsT2Zmc2V0ID0gbV9hY2N1bXVsYXRlZFNjcm9sbE9mZnNldEZyYWN0aW9uYWxQ
YXJ0ICsgb2Zmc2V0OwotCi0gICAgaW50IGludFdpZHRoID0gcm91bmQoZnVsbE9mZnNldC53aWR0
aCgpKTsKLSAgICBpbnQgaW50SGVpZ2h0ID0gcm91bmQoZnVsbE9mZnNldC5oZWlnaHQoKSk7Ci0K
LSAgICAvLyBtX2FjY3VtdWxhdGVkU2Nyb2xsT2Zmc2V0RnJhY3Rpb25hbFBhcnQgaG9sZHMgdGhl
IGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgdXNlciBzY3JvbGwgb2Zmc2V0IHRoYXQKLSAgICAvLyBo
YXMgbm90IHlldCBiZWVuIHN5bmNlZCB3aXRoIHRoZSB3ZWIgcHJvY2VzcyBiZWNhdXNlIHRoZSB3
ZWIgcHJvY2VzcyBleHBlY3RzIGFuIEludFNpemUuCi0gICAgbV9hY2N1bXVsYXRlZFNjcm9sbE9m
ZnNldEZyYWN0aW9uYWxQYXJ0ID0gRmxvYXRTaXplKGZ1bGxPZmZzZXQud2lkdGgoKSAtIGludFdp
ZHRoLCBmdWxsT2Zmc2V0LmhlaWdodCgpIC0gaW50SGVpZ2h0KTsKLQotICAgIG1fc2Nyb2xsQ2xp
ZW50LT5jb21taXRTY3JvbGxPZmZzZXQobV9pZCwgSW50U2l6ZShpbnRXaWR0aCwgaW50SGVpZ2h0
KSk7Ci19Ci0KLXZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpzY3JvbGxCeShjb25zdCBGbG9hdFNp
emUmIG9mZnNldCkKLXsKLSAgICBpZiAoIWlzU2Nyb2xsYWJsZSgpIHx8ICFtX3Njcm9sbENsaWVu
dCB8fCBvZmZzZXQuaXNaZXJvKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIEZsb2F0U2l6ZSBz
Y3JvbGxPZmZzZXQgPSBtYXBTY3JvbGxPZmZzZXQob2Zmc2V0KTsKLSAgICBtX3VzZXJTY3JvbGxP
ZmZzZXQgKz0gc2Nyb2xsT2Zmc2V0OwotCi0gICAgbV9jdXJyZW50VHJhbnNmb3JtLnNldFBvc2l0
aW9uKGFkanVzdGVkUG9zaXRpb24oKSk7Ci0gICAgY29tbWl0U2Nyb2xsT2Zmc2V0KHNjcm9sbE9m
ZnNldCk7Ci19Ci0KLXZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpkaWRDb21taXRTY3JvbGxPZmZz
ZXQoY29uc3QgSW50U2l6ZSYgb2Zmc2V0KQotewotICAgIG1fdXNlclNjcm9sbE9mZnNldCA9IEZs
b2F0U2l6ZShtX3VzZXJTY3JvbGxPZmZzZXQud2lkdGgoKSAtIG9mZnNldC53aWR0aCgpLCBtX3Vz
ZXJTY3JvbGxPZmZzZXQuaGVpZ2h0KCkgLSBvZmZzZXQuaGVpZ2h0KCkpOwotICAgIG1fY3VycmVu
dFRyYW5zZm9ybS5zZXRQb3NpdGlvbihhZGp1c3RlZFBvc2l0aW9uKCkpOwotfQotCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckxheWVyLmgKaW5kZXggZjY1MTI0Y2FjOGM2NTRkNzVhYzZiZDZlNzcyYmMwOWRk
OWVkZTUxYi4uODZkYTNjYTkwN2JlMDFlYTVlMGZiYWUyNjhlYjMwNjIxNjFlZGE0MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTGF5ZXIuaApAQCAtNDEsNyArNDEsNiBAQCBwdWJsaWM6CiAKICAgICBjbGFz
cyBTY3JvbGxpbmdDbGllbnQgewogICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB2b2lkIGNv
bW1pdFNjcm9sbE9mZnNldCh1aW50MzJfdCBsYXllcklELCBjb25zdCBJbnRTaXplJiBvZmZzZXQp
ID0gMDsKICAgICB9OwogCiAgICAgVGV4dHVyZU1hcHBlckxheWVyKCkKQEAgLTUzLDggKzUyLDYg
QEAgcHVibGljOgogICAgICAgICAsIG1fdGV4dHVyZU1hcHBlcigwKQogICAgICAgICAsIG1fZml4
ZWRUb1ZpZXdwb3J0KGZhbHNlKQogICAgICAgICAsIG1faWQoMCkKLSAgICAgICAgLCBtX3Njcm9s
bENsaWVudCgwKQotICAgICAgICAsIG1faXNTY3JvbGxhYmxlKGZhbHNlKQogICAgICAgICAsIG1f
cGF0dGVyblRyYW5zZm9ybURpcnR5KGZhbHNlKQogICAgIHsgfQogCkBAIC02NiwxMyArNjMsNiBA
QCBwdWJsaWM6CiAgICAgY29uc3QgVmVjdG9yPFRleHR1cmVNYXBwZXJMYXllcio+JiBjaGlsZHJl
bigpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW47IH0KICAgICBUZXh0dXJlTWFwcGVyTGF5ZXIq
IGZpbmRTY3JvbGxhYmxlQ29udGVudHNMYXllckF0KGNvbnN0IEZsb2F0UG9pbnQmIHBvcyk7CiAK
LSAgICB2b2lkIHNldFNjcm9sbENsaWVudChTY3JvbGxpbmdDbGllbnQqIHNjcm9sbENsaWVudCkg
eyBtX3Njcm9sbENsaWVudCA9IHNjcm9sbENsaWVudDsgfQotICAgIHZvaWQgc2Nyb2xsQnkoY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci0KLSAgICB2b2lkIGRpZENvbW1pdFNjcm9sbE9mZnNl
dChjb25zdCBJbnRTaXplJik7Ci0gICAgdm9pZCBzZXRJc1Njcm9sbGFibGUoYm9vbCBpc1Njcm9s
bGFibGUpIHsgbV9pc1Njcm9sbGFibGUgPSBpc1Njcm9sbGFibGU7IH0KLSAgICBib29sIGlzU2Ny
b2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNTY3JvbGxhYmxlOyB9Ci0KICAgICBUZXh0dXJl
TWFwcGVyKiB0ZXh0dXJlTWFwcGVyKCkgY29uc3QgeyByZXR1cm4gcm9vdExheWVyKCkubV90ZXh0
dXJlTWFwcGVyOyB9CiAgICAgdm9pZCBzZXRUZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRl
eG1hcCkgeyBtX3RleHR1cmVNYXBwZXIgPSB0ZXhtYXA7IH0KIApAQCAtMTQzLDcgKzEzMyw3IEBA
IHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgc29ydEJ5Wk9yZGVyKFZlY3RvcjxUZXh0dXJlTWFw
cGVyTGF5ZXIqID4mIGFycmF5KTsKIAogICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJl
KCkgeyByZXR1cm4gbV9iYWNraW5nU3RvcmUgPyBtX2JhY2tpbmdTdG9yZS0+dGV4dHVyZSgpIDog
MDsgfQotICAgIEZsb2F0UG9pbnQgYWRqdXN0ZWRQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
c3RhdGUucG9zICsgbV9zY3JvbGxQb3NpdGlvbkRlbHRhIC0gbV91c2VyU2Nyb2xsT2Zmc2V0OyB9
CisgICAgRmxvYXRQb2ludCBhZGp1c3RlZFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0
ZS5wb3MgKyBtX3Njcm9sbFBvc2l0aW9uRGVsdGE7IH0KICAgICBib29sIGlzQW5jZXN0b3JGaXhl
ZFRvVmlld3BvcnQoKSBjb25zdDsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCByZXBsaWNhVHJh
bnNmb3JtKCk7CiAgICAgdm9pZCByZW1vdmVGcm9tUGFyZW50KCk7CkBAIC0xOTQsMTIgKzE4NCw2
IEBAIHByaXZhdGU6CiAgICAgRmlsdGVyT3BlcmF0aW9ucyBtX2N1cnJlbnRGaWx0ZXJzOwogICAg
IGZsb2F0IG1fY2VudGVyWjsKIAotICAgIHRlbXBsYXRlPGNsYXNzIEhpdFRlc3RDb25kaXRpb24+
IFRleHR1cmVNYXBwZXJMYXllciogaGl0VGVzdChjb25zdCBGbG9hdFBvaW50JiwgSGl0VGVzdENv
bmRpdGlvbik7Ci0gICAgc3RhdGljIGJvb2wgc2Nyb2xsYWJsZUxheWVySGl0VGVzdENvbmRpdGlv
bihUZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBGbG9hdFBvaW50Jik7Ci0KLSAgICBGbG9hdFNp
emUgbWFwU2Nyb2xsT2Zmc2V0KGNvbnN0IEZsb2F0U2l6ZSYpOwotICAgIHZvaWQgY29tbWl0U2Ny
b2xsT2Zmc2V0KGNvbnN0IEZsb2F0U2l6ZSYpOwotCiAgICAgc3RydWN0IFN0YXRlIHsKICAgICAg
ICAgRmxvYXRQb2ludCBwb3M7CiAgICAgICAgIEZsb2F0UG9pbnQzRCBhbmNob3JQb2ludDsKQEAg
LTI1MywxMCArMjM3LDYgQEAgcHJpdmF0ZToKICAgICBGbG9hdFNpemUgbV9zY3JvbGxQb3NpdGlv
bkRlbHRhOwogICAgIGJvb2wgbV9maXhlZFRvVmlld3BvcnQ7CiAgICAgdWludDMyX3QgbV9pZDsK
LSAgICBTY3JvbGxpbmdDbGllbnQqIG1fc2Nyb2xsQ2xpZW50OwotICAgIGJvb2wgbV9pc1Njcm9s
bGFibGU7Ci0gICAgRmxvYXRTaXplIG1fdXNlclNjcm9sbE9mZnNldDsKLSAgICBGbG9hdFNpemUg
bV9hY2N1bXVsYXRlZFNjcm9sbE9mZnNldEZyYWN0aW9uYWxQYXJ0OwogICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4IG1fcGF0dGVyblRyYW5zZm9ybTsKICAgICBib29sIG1fcGF0dGVyblRyYW5zZm9y
bURpcnR5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5jcHAKaW5kZXggNjc0ZTQ4ZjI3ODdmYTM4OGRjZjQzNjdhZGZiZDU0Yjg5
ZTBkNTNmNi4uZTk5NzY3MGViM2IxYWRmY2UwYzY5MWNkMDVhMWJhZWUzZTQzMDI5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5j
cHAKQEAgLTE0MSw3ICsxNDEsNiBAQCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OkNvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcihUeXBlIGxheWVyVHlwZSwgR3JhcGhpY3NMYXllcgogICAgICwgbV9j
b21wb3NpdGVkTmF0aXZlSW1hZ2VQdHIoMCkKICAgICAsIG1fcGxhdGZvcm1MYXllcigwKQogICAg
ICwgbV9hbmltYXRpb25TdGFydGVkVGltZXIoKnRoaXMsICZDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OmFuaW1hdGlvblN0YXJ0ZWRUaW1lckZpcmVkKQotICAgICwgbV9zY3JvbGxhYmxlQXJlYSgw
KQogewogICAgIHN0YXRpYyBDb29yZGluYXRlZExheWVySUQgbmV4dExheWVySUQgPSAxOwogICAg
IG1faWQgPSBuZXh0TGF5ZXJJRCsrOwpAQCAtNTQ4LDI5ICs1NDcsNiBAQCB2b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYg
cmVjdCwgU2hvdQogICAgIGFkZFJlcGFpbnRSZWN0KHJlY3QpOwogfQogCi12b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c2V0U2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEqIHNjcm9s
bGFibGVBcmVhKQotewotICAgIGJvb2wgb2xkU2Nyb2xsYWJsZSA9IGlzU2Nyb2xsYWJsZSgpOwot
ICAgIG1fc2Nyb2xsYWJsZUFyZWEgPSBzY3JvbGxhYmxlQXJlYTsKLSAgICBpZiAob2xkU2Nyb2xs
YWJsZSA9PSBpc1Njcm9sbGFibGUoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9sYXllclN0
YXRlLmlzU2Nyb2xsYWJsZSA9IGlzU2Nyb2xsYWJsZSgpOwotICAgIG1fbGF5ZXJTdGF0ZS5mbGFn
c0NoYW5nZWQgPSB0cnVlOwotICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKLX0KLQotdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmNvbW1pdFNjcm9sbE9mZnNldChjb25zdCBJbnRTaXpl
JiBvZmZzZXQpCi17Ci0gICAgaWYgKCFpc1Njcm9sbGFibGUoKSB8fCBvZmZzZXQuaXNaZXJvKCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIG1fc2Nyb2xsYWJsZUFyZWEtPm5vdGlmeVNjcm9sbFBv
c2l0aW9uQ2hhbmdlZChtX3Njcm9sbGFibGVBcmVhLT5zY3JvbGxQb3NpdGlvbigpICsgb2Zmc2V0
KTsKLSAgICBtX2xheWVyU3RhdGUuY29tbWl0dGVkU2Nyb2xsT2Zmc2V0ICs9IG9mZnNldDsKLSAg
ICBtX2xheWVyU3RhdGUuY29tbWl0dGVkU2Nyb2xsT2Zmc2V0Q2hhbmdlZCA9IHRydWU7Ci0gICAg
ZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwotfQotCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6c2V0Rml4ZWRUb1ZpZXdwb3J0KGJvb2wgaXNGaXhlZCkKIHsKICAgICBpZiAobV9maXhlZFRv
Vmlld3BvcnQgPT0gaXNGaXhlZCkKQEAgLTY2OSw3ICs2NDUsNiBAQCB2b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6c3luY0xheWVyU3RhdGUoKQogICAgICAgICBtX2xheWVyU3RhdGUubWFz
a3NUb0JvdW5kcyA9IG1hc2tzVG9Cb3VuZHMoKTsKICAgICAgICAgbV9sYXllclN0YXRlLnByZXNl
cnZlczNEID0gcHJlc2VydmVzM0QoKTsKICAgICAgICAgbV9sYXllclN0YXRlLmZpeGVkVG9WaWV3
cG9ydCA9IGZpeGVkVG9WaWV3cG9ydCgpOwotICAgICAgICBtX2xheWVyU3RhdGUuaXNTY3JvbGxh
YmxlID0gaXNTY3JvbGxhYmxlKCk7CiAgICAgfQogCiAgICAgaWYgKG1fbGF5ZXJTdGF0ZS5kZWJ1
Z1Zpc3VhbHNDaGFuZ2VkKSB7CkBAIC03NzUsNyArNzUwLDYgQEAgdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OnJlc2V0TGF5ZXJTdGF0ZSgpCiAgICAgbV9sYXllclN0YXRlLnRpbGVzVG9D
cmVhdGUuY2xlYXIoKTsKICAgICBtX2xheWVyU3RhdGUudGlsZXNUb1JlbW92ZS5jbGVhcigpOwog
ICAgIG1fbGF5ZXJTdGF0ZS50aWxlc1RvVXBkYXRlLmNsZWFyKCk7Ci0gICAgbV9sYXllclN0YXRl
LmNvbW1pdHRlZFNjcm9sbE9mZnNldCA9IEludFNpemUoKTsKIH0KIAogYm9vbCBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OmltYWdlQmFja2luZ1Zpc2libGUoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IGZkOTYxZmE5YTg4
NDZhYWMwNWYyZWU5ZGU1MjRiMGM0YmU3NjM5ZWEuLmVjZWUyYmQ3ZjUzYTY3N2IxZjNiNDM3Yjdk
ZmNhYTIyZmE5Mjg0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTQ0LDcgKzQ0LDYgQEAgY2xhc3MgUGFpbnRpbmdFbmdp
bmU7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI7
CiBjbGFzcyBUZXh0dXJlTWFwcGVyQW5pbWF0aW9uczsKLWNsYXNzIFNjcm9sbGFibGVBcmVhOwog
CiBjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQgewogcHVibGljOgpAQCAtMTIw
LDEwICsxMTksNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFZpc2libGVDb250ZW50UmVjdFRy
YWplY3RvcnlWZWN0b3IoY29uc3QgRmxvYXRQb2ludCYpOwogCi0gICAgdm9pZCBzZXRTY3JvbGxh
YmxlQXJlYShTY3JvbGxhYmxlQXJlYSopOwotICAgIGJvb2wgaXNTY3JvbGxhYmxlKCkgY29uc3Qg
eyByZXR1cm4gISFtX3Njcm9sbGFibGVBcmVhOyB9Ci0gICAgdm9pZCBjb21taXRTY3JvbGxPZmZz
ZXQoY29uc3QgSW50U2l6ZSYpOwotCiAgICAgQ29vcmRpbmF0ZWRMYXllcklEIGlkKCkgY29uc3Qg
eyByZXR1cm4gbV9pZDsgfQogCiAgICAgdm9pZCBzZXRGaXhlZFRvVmlld3BvcnQoYm9vbCBpc0Zp
eGVkKTsKQEAgLTIyOSw4ICsyMjQsNiBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fYW5pbWF0aW9u
U3RhcnRlZFRpbWVyOwogICAgIFRleHR1cmVNYXBwZXJBbmltYXRpb25zIG1fYW5pbWF0aW9uczsK
ICAgICBNb25vdG9uaWNUaW1lIG1fbGFzdEFuaW1hdGlvblN0YXJ0VGltZTsKLQotICAgIFNjcm9s
bGFibGVBcmVhKiBtX3Njcm9sbGFibGVBcmVhOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0
ZS5oCmluZGV4IGFiNTBhMTFmZDFkMDIzY2JkZTg3Y2RiYzcwYjkzZWYzMmI0ZDJjMzYuLjcxYTQ0
MzA0ZTAwNjE4NmViNDk5ODE3YmZkMjU1NGIxZTVkZDhiZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdy
YXBoaWNzU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmgKQEAgLTEwMyw3ICsxMDMs
NiBAQCBzdHJ1Y3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUgewogICAgICAgICAgICAg
Ym9vbCBwbGF0Zm9ybUxheWVyVXBkYXRlZDogMTsKICAgICAgICAgICAgIGJvb2wgcGxhdGZvcm1M
YXllclNob3VsZFN3YXBCdWZmZXJzOiAxOwogICAgICAgICAgICAgYm9vbCBpc1Njcm9sbGFibGVD
aGFuZ2VkOiAxOwotICAgICAgICAgICAgYm9vbCBjb21taXR0ZWRTY3JvbGxPZmZzZXRDaGFuZ2Vk
OiAxOwogICAgICAgICAgICAgYm9vbCBjb250ZW50c1RpbGluZ0NoYW5nZWQ6IDE7CiAgICAgICAg
IH07CiAgICAgICAgIHVuc2lnbmVkIGNoYW5nZU1hc2s7CkBAIC0xNzAsOCArMTY5LDYgQEAgc3Ry
dWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlIHsKICAgICBSZWZQdHI8VGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eT4gcGxhdGZvcm1MYXllclByb3h5OwogI2VuZGlmCiAKLSAg
ICBJbnRTaXplIGNvbW1pdHRlZFNjcm9sbE9mZnNldDsKLQogICAgIGJvb2wgaGFzUGVuZGluZ0No
YW5nZXMoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIGNoYW5nZU1hc2sgfHwgdGlsZXNU
b1VwZGF0ZS5zaXplKCkgfHwgdGlsZXNUb1JlbW92ZS5zaXplKCkgfHwgdGlsZXNUb0NyZWF0ZS5z
aXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKaW5kZXggNDY1
MzQ1ZjAwZjRhNmNmOWIyM2ZlMjNkZGJiZTE0MGM3NGIwZGU1Zi4uNGNjNzFiNGFlMjBiODBlNjNh
Y2JlMzAxMGIyODQyODIxNzExMDAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lLmNwcApAQCAtMjc0LDEzICsyNzQsOCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZTo6c2V0TGF5ZXJTdGF0ZShDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IENvb3JkaQog
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1fZml4ZWRMYXllcnMucmVtb3ZlKGlk
KTsKICAgICAgICAgfQotCi0gICAgICAgIGxheWVyLT5zZXRJc1Njcm9sbGFibGUobGF5ZXJTdGF0
ZS5pc1Njcm9sbGFibGUpOwogICAgIH0KIAotICAgIGlmIChsYXllclN0YXRlLmNvbW1pdHRlZFNj
cm9sbE9mZnNldENoYW5nZWQpCi0gICAgICAgIGxheWVyLT5kaWRDb21taXRTY3JvbGxPZmZzZXQo
bGF5ZXJTdGF0ZS5jb21taXR0ZWRTY3JvbGxPZmZzZXQpOwotCiAgICAgcHJlcGFyZUNvbnRlbnRC
YWNraW5nU3RvcmUobGF5ZXIsIGNvbW1pdFNjb3BlKTsKIAogICAgIC8vIEFwcGx5IE9wZXJhdGlv
bnMuCkBAIC0zMDksNyArMzA0LDYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNy
ZWF0ZUxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCkKIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
VGV4dHVyZU1hcHBlckxheWVyPiBuZXdMYXllciA9IHN0ZDo6bWFrZV91bmlxdWU8VGV4dHVyZU1h
cHBlckxheWVyPigpOwogICAgIG5ld0xheWVyLT5zZXRJRChpZCk7Ci0gICAgbmV3TGF5ZXItPnNl
dFNjcm9sbENsaWVudCh0aGlzKTsKICAgICBtX2xheWVycy5hZGQoaWQsIFdURk1vdmUobmV3TGF5
ZXIpKTsKIH0KIApAQCAtNTk4LDE2ICs1OTIsNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZTo6cHVyZ2VHTFJlc291cmNlcygpCiAgICAgbV9iYWNraW5nU3RvcmVzLmNsZWFyKCk7CiB9
CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpjb21taXRTY3JvbGxPZmZzZXQodWlu
dDMyX3QgbGF5ZXJJRCwgY29uc3QgSW50U2l6ZSYgb2Zmc2V0KQotewotICAgIGlmICghbV9jbGll
bnQpCi0gICAgICAgIHJldHVybjsKLSAgICBkaXNwYXRjaE9uTWFpblRocmVhZChbdGhpcywgbGF5
ZXJJRCwgb2Zmc2V0XSB7Ci0gICAgICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgICAgIG1fY2xp
ZW50LT5jb21taXRTY3JvbGxPZmZzZXQobGF5ZXJJRCwgb2Zmc2V0KTsKLSAgICB9KTsKLX0KLQog
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldExheWVyQW5pbWF0aW9uc0lmTmVlZGVk
KFRleHR1cmVNYXBwZXJMYXllciogbGF5ZXIsIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
clN0YXRlJiBzdGF0ZSkKIHsKICAgICBpZiAoIXN0YXRlLmFuaW1hdGlvbnNDaGFuZ2VkKQpAQCAt
NjMzLDExICs2MTcsNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0QWN0aXZl
KGJvb2wgYWN0aXZlKQogICAgICAgICByZW5kZXJOZXh0RnJhbWUoKTsKIH0KIAotVGV4dHVyZU1h
cHBlckxheWVyKiBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmZpbmRTY3JvbGxhYmxlQ29udGVu
dHNMYXllckF0KGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KQotewotICAgIHJldHVybiByb290TGF5
ZXIoKSA/IHJvb3RMYXllcigpLT5maW5kU2Nyb2xsYWJsZUNvbnRlbnRzTGF5ZXJBdChwb2ludCkg
OiAwOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFVTRShDT09SRElO
QVRFRF9HUkFQSElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCmluZGV4
IGJjMzUwMTA5ZmYxZDc3MzJkOWYxMjIwOWFkMGNjNzhkYzg4NmRiYTMuLjc3YjE1NTU3MjU2NGE3
ODExOGEyYzY3YzE2NmZiNTJhYTNlOWZkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzU2NlbmUuaApAQCAtNjEsMTAgKzYxLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkNvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVudCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZW5kZXJO
ZXh0RnJhbWUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVZpZXdwb3J0KCkgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBjb21taXRTY3JvbGxPZmZzZXQodWludDMyX3QgbGF5ZXJJRCwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgb2Zmc2V0KSA9IDA7CiB9OwogCi1jbGFzcyBDb29yZGluYXRl
ZEdyYXBoaWNzU2NlbmUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lPiwgcHVibGljIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6U2Nyb2xs
aW5nQ2xpZW50CitjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lPgogI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDU19USFJFQURFRCkKICAgICAsIHB1YmxpYyBXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyUGxhdGZvcm1MYXllclByb3h5OjpDb21wb3NpdG9yCiAjZW5kaWYKQEAgLTc3LDEwICs3Niw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFdlYkNv
cmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBiYWNrZ3JvdW5kQ29sb3IsIGJvb2wgZHJhd3NCYWNr
Z3JvdW5kLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgV2ViQ29yZTo6VGV4dHVyZU1hcHBl
cjo6UGFpbnRGbGFncyA9IDApOwogICAgIHZvaWQgZGV0YWNoKCk7CiAKLSAgICBXZWJDb3JlOjpU
ZXh0dXJlTWFwcGVyTGF5ZXIqIGZpbmRTY3JvbGxhYmxlQ29udGVudHNMYXllckF0KGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmKTsKLQotICAgIHZvaWQgY29tbWl0U2Nyb2xsT2Zmc2V0KHVpbnQz
Ml90IGxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG9mZnNldCkgb3ZlcnJpZGU7Ci0K
ICAgICAvLyBUaGUgcGFpbnRpbmcgdGhyZWFkIG11c3QgbG9jayB0aGUgbWFpbiB0aHJlYWQgdG8g
dXNlIGJlbG93IHR3byBtZXRob2RzLCBiZWNhdXNlIHR3byBtZXRob2RzIGFjY2VzcyBtZW1iZXJz
IHRoYXQgdGhlIG1haW4gdGhyZWFkIG1hbmFnZXMuIFNlZSBtX2NsaWVudC4KICAgICAvLyBDdXJy
ZW50bHksIFFRdWlja1dlYlBhZ2U6OnVwZGF0ZVBhaW50Tm9kZSgpIGxvY2tzIHRoZSBtYWluIHRo
cmVhZCBiZWZvcmUgY2FsbGluZyBib3RoIG1ldGhvZHMuCiAgICAgdm9pZCBwdXJnZUdMUmVzb3Vy
Y2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFk
ZWRDb21wb3NpdG9yLmNwcAppbmRleCAzYWFiMWRjYTU3YzMwNTBlNzdiOWUzZDZmNDc2NmY2ZmI5
ZTQ4MmEwLi44MzU2MTljZmEwMmE0ZDgzZWZjOWQ2ZjgxYzhiNTRjMjg4NGIxY2MxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29t
cG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRv
ci5jcHAKQEAgLTE2OSwxMiArMTY5LDYgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnJlbmRl
ck5leHRGcmFtZSgpCiAgICAgbV9jbGllbnQucmVuZGVyTmV4dEZyYW1lKCk7CiB9CiAKLXZvaWQg
VGhyZWFkZWRDb21wb3NpdG9yOjpjb21taXRTY3JvbGxPZmZzZXQodWludDMyX3QgbGF5ZXJJRCwg
Y29uc3QgSW50U2l6ZSYgb2Zmc2V0KQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
Ci0gICAgbV9jbGllbnQuY29tbWl0U2Nyb2xsT2Zmc2V0KGxheWVySUQsIG9mZnNldCk7Ci19Ci0K
IHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjp1cGRhdGVWaWV3cG9ydCgpCiB7CiAgICAgbV9jb21w
b3NpdGluZ1J1bkxvb3AtPnNjaGVkdWxlVXBkYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRl
ZENvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
dGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCmluZGV4IGVlMDlkYTQzMGI1
MmUzMDgzOTc5YTlhZDEzMTNiZDJhNDBiZGZkMTcuLjI3NjU0ZTgwNmM3Y2JiZmRlYWJjYmMyYWM5
MmExN2VmMzBkNzk5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3Np
dG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCkBAIC01Niw3ICs1Niw2IEBAIHB1YmxpYzoKICAgICBj
bGFzcyBDbGllbnQgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHJlbmRlck5l
eHRGcmFtZSgpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFNjcm9sbE9mZnNldCh1
aW50MzJfdCBsYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBvZmZzZXQpID0gMDsKIAog
ICAgICAgICB2aXJ0dWFsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGlu
ZygpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZERlc3Ryb3lHTENvbnRleHQoKSA9IDA7
CkBAIC05Nyw3ICs5Niw2IEBAIHByaXZhdGU6CiAgICAgLy8gQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lQ2xpZW50CiAgICAgdm9pZCByZW5kZXJOZXh0RnJhbWUoKSBvdmVycmlkZTsKICAgICB2b2lk
IHVwZGF0ZVZpZXdwb3J0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21taXRTY3JvbGxPZmZzZXQo
dWludDMyX3QgbGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgb2Zmc2V0KSBvdmVycmlk
ZTsKIAogICAgIHZvaWQgcmVuZGVyTGF5ZXJUcmVlKCk7CiAgICAgdm9pZCBzY2VuZVVwZGF0ZUZp
bmlzaGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nv
b3JkaW5hdG9yLmNwcAppbmRleCBjNTIwYjU5MTkxYjQ2MDRlY2UxNTA4MDFjZjQzY2VmMDhiNTYz
NWRhLi43ODg2NjJlOTY5ZjAwYzBkMTFmMjg3NWQ0YjhkZjJlMzIwZmRkZWI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
bXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKQEAg
LTM1NCwxMiArMzU0LDYgQEAgdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpkZXRhY2hMYXll
cihDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogICAgIG5vdGlmeUZsdXNoUmVxdWly
ZWQobGF5ZXIpOwogfQogCi12b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmNvbW1pdFNjcm9s
bE9mZnNldCh1aW50MzJfdCBsYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBvZmZzZXQp
Ci17Ci0gICAgaWYgKGF1dG8qIGxheWVyID0gbV9yZWdpc3RlcmVkTGF5ZXJzLmdldChsYXllcklE
KSkKLSAgICAgICAgbGF5ZXItPmNvbW1pdFNjcm9sbE9mZnNldChvZmZzZXQpOwotfQotCiB2b2lk
IENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnJlbmRlck5leHRGcmFtZSgpCiB7CiAgICAgZm9yIChh
dXRvJiBhdGxhcyA6IG1fdXBkYXRlQXRsYXNlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGlu
YXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggZjZjZDg0MTM2MDU1ZTVmNTllZmNm
ZmQ1OTkxYTYzZjM1MDlmZDZhNC4uNjY5NTRmZjU4MTdjYWJmNGNlODhlZTE2NmE4MTA2OTU4YTE3
YTAxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3Jk
aW5hdG9yLmgKQEAgLTc5LDcgKzc5LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRWaXNpYmxl
Q29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQmKTsKICAgICB2b2lkIHJlbmRlck5leHRGcmFtZSgpOwotICAgIHZvaWQgY29tbWl0
U2Nyb2xsT2Zmc2V0KHVpbnQzMl90IGxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG9m
ZnNldCk7CiAKICAgICB2b2lkIGNyZWF0ZVJvb3RMYXllcihjb25zdCBXZWJDb3JlOjpJbnRTaXpl
Jik7CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogcm9vdExheWVyKCkgY29uc3QgeyByZXR1
cm4gbV9yb290TGF5ZXIuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAppbmRleCA4MzJkYmEyNDMxNmZmNDMyN2Ri
MGM3NzJhYWFmNmZhZGY1ZmI3ZjBmLi4zZjEwNWM4YTBkZTQ2NTgyNjM5NTVkZWM0OWJhNWM5NjUx
YmJmYmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZExheWVyVHJlZUhvc3QuY3BwCkBAIC0yMzYsMTEgKzIzNiw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0OjpzY2hlZHVsZUFuaW1hdGlvbigpCiAgICAgbV9sYXllckZsdXNoVGltZXIu
c3RhcnRPbmVTaG90KDFfcyAqIG1fY29vcmRpbmF0b3IubmV4dEFuaW1hdGlvblNlcnZpY2VUaW1l
KCkpOwogfQogCi12b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Y29tbWl0U2Nyb2xsT2Zm
c2V0KHVpbnQzMl90IGxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG9mZnNldCkKLXsK
LSAgICBtX2Nvb3JkaW5hdG9yLmNvbW1pdFNjcm9sbE9mZnNldChsYXllcklELCBvZmZzZXQpOwot
fQotCiB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Y2xlYXJVcGRhdGVBdGxhc2VzKCkK
IHsKICAgICBtX2Nvb3JkaW5hdG9yLmNsZWFyVXBkYXRlQXRsYXNlcygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZExheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKaW5kZXggMDZl
NmFhY2NkMjAxYzg1MmI3ZjJhYTdlYmQ3ZTg3NmY0Nzk4MTdjMy4uNmMzYmU5NGYyZjRjYmI0ZmU0
NjlhMDRhZGEwMTkyMWFkZjEyYjJiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCkBAIC02MSw3ICs2MSw2IEBAIHByb3RlY3Rl
ZDoKIAogICAgIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CiAgICAgdm9pZCByZW5kZXJOZXh0
RnJhbWUoKTsKLSAgICB2b2lkIGNvbW1pdFNjcm9sbE9mZnNldCh1aW50MzJfdCBsYXllcklELCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBvZmZzZXQpOwogCiAgICAgV2ViQ29yZTo6R3JhcGhpY3NM
YXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3QuaAppbmRleCAyZjJiYzQ2ZGRiOGQ1ZWQxMmY5YzQ0NDg5MTg3NzYxZTZjOGI3ZWQz
Li45ZWFmYmRiZDNkMTcyZTk4MjY1NThlNGJmY2FhODM0MjI3NGE2ODlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVh
ZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdC5oCkBAIC04NSwxMSArODUsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9sYXll
clRyZWVIb3N0LnJlbmRlck5leHRGcmFtZSgpOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBj
b21taXRTY3JvbGxPZmZzZXQodWludDMyX3QgbGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgb2Zmc2V0KSBvdmVycmlkZQotICAgICAgICB7Ci0gICAgICAgICAgICBtX2xheWVyVHJlZUhv
c3QuY29tbWl0U2Nyb2xsT2Zmc2V0KGxheWVySUQsIG9mZnNldCk7Ci0gICAgICAgIH0KLQogICAg
ICAgICB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcoKSBvdmVycmlk
ZQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gbV9sYXllclRyZWVIb3N0Lm5hdGl2ZVN1
cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZygpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>