<?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>188847</bug_id>
          
          <creation_ts>2018-08-22 08:40:33 -0700</creation_ts>
          <short_desc>[CoordGraphics] Remove CoordinatedImageBacking and related functionality</short_desc>
          <delta_ts>2018-08-22 23:21:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>187385</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>magomez</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1452634</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-08-22 08:40:33 -0700</bug_when>
    <thetext>[CoordGraphics] Remove CoordinatedImageBacking and related functionality</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452637</commentid>
    <comment_count>1</comment_count>
      <attachid>347797</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-08-22 08:46:32 -0700</bug_when>
    <thetext>Created attachment 347797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452974</commentid>
    <comment_count>2</comment_count>
      <attachid>347797</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-08-22 23:20:17 -0700</bug_when>
    <thetext>Comment on attachment 347797
Patch

Clearing flags on attachment: 347797

Committed r235217: &lt;https://trac.webkit.org/changeset/235217&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452975</commentid>
    <comment_count>3</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-08-22 23:20:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452976</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-22 23:21:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/43633708&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347797</attachid>
            <date>2018-08-22 08:46:32 -0700</date>
            <delta_ts>2018-08-22 23:20:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188847-20180822174631.patch</filename>
            <type>text/plain</type>
            <size>28077</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTA5MjJkYzk2MzNiODhk
ZDQzYjQ2M2Y3NDY0MWEzY2JiNTI4NTJjMS4uMjg3ZTdjYTBhZGY4ODU5ZTZiZWRlMjVhYjIzNTQw
OGEzYTJlNDQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE4LTA4LTIyICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ29vcmRHcmFwaGlj
c10gUmVtb3ZlIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nIGFuZCByZWxhdGVkIGZ1bmN0aW9uYWxp
dHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODg0
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92
ZSB0aGUgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcgY2xhc3MgYW5kIGl0cyBpbnRlcnR3aW5pbmcg
dXNlIGluIHRoZQorICAgICAgICBDb29yZGluYXRlZEdyYXBoaWNzIHN5c3RlbS4KKworICAgICAg
ICBSZW1vdmUgdGhlIG5vdy11bnVzZWQgbV9jb29yZGluYXRlZEltYWdlQmFja2luZyBtZW1iZXIg
dmFyaWFibGUgZnJvbSB0aGUKKyAgICAgICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIGNsYXNz
LCBhbG9uZyB3aXRoIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpIb3N0CisgICAgICAgIGluaGVy
aXRhbmNlLiBWYXJpb3VzIHJlbGF0ZWQgaGVscGVyIG1ldGhvZHMgYXJlIGFsc28gcmVtb3ZlZC4K
KworICAgICAgICBJbiBDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUgYW5kIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllclN0YXRlIGNsYXNzZXMsCisgICAgICAgIHdlIGFyZSBhYmxlIHRvIGRyb3AgZGlm
ZmVyZW50IENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLXJlbGF0ZWQgc3RhdGUKKyAgICAgICAgdmFs
dWVzIHRoYXQgYXJlIG5vdCB1c2VkIGFueW1vcmUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9UZXh0
dXJlTWFwcGVyLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp+Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
c2V0Q29udGVudHNUb0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6cHVyZ2VCYWNraW5nU3RvcmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlSW1hZ2VCYWNraW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0ltYWdlQmFja2luZyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6Omlt
YWdlQmFja2luZ1Zpc2libGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpyZWxlYXNlSW1hZ2VCYWNraW5nSWZOZWVkZWQpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3Rh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEltYWdlQmFja2luZy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmg6IFJlbW92
ZWQuCisKIDIwMTgtMDgtMjIgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtDb29yZEdyYXBoaWNzXSBTd2l0Y2ggdG8gTmljb3NpYTo6Q29tcG9zaXRpb25M
YXllciBzdGF0ZSB0cmFja2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxZTU1NDA0ZWQ0Y2I2NWVkODM3Zjc3YzQy
NzViYzZjZTkyYzRlNmExLi4zODIyMzU1MWJjYTE1ODU5ODcxZjUxMGI5OTkxMzgzNDZkZmI2OWU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE4LTA4LTIyICBaYW4gRG9iZXJzZWsgIDx6
ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ29vcmRHcmFwaGljc10gUmVtb3ZlIENv
b3JkaW5hdGVkSW1hZ2VCYWNraW5nIGFuZCByZWxhdGVkIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODg0NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUgQ29vcmRp
bmF0ZWRJbWFnZUJhY2tpbmcgY2xhc3MgYW5kIGl0cyBpbnRlcnR3aW5pbmcgdXNlIGluIHRoZQor
ICAgICAgICBDb29yZGluYXRlZEdyYXBoaWNzIHN5c3RlbS4KKworICAgICAgICBEcm9wIHRoZSBD
b29yZGluYXRlZEltYWdlQmFja2luZyBvYmplY3QgbWFuYWdlbWVudCBmcm9tIHRoZQorICAgICAg
ICBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yIGNsYXNzLCBhbG9uZyB3aXRoIHRoZQorICAgICAgICBD
b29yZGluYXRlZEltYWdlQmFja2luZzo6Q2xpZW50IGluaGVyaXRhbmNlLiBUaGUgY29ycmVzcG9u
ZGluZyBpbWFnZQorICAgICAgICBiYWNraW5nIHN0YXRlIG1hbmFnZW1lbnQgb24gdGhlIENvb3Jk
aW5hdGVkR3JhcGhpY3NTdGF0ZSBjbGFzcyBjYW4gYmUKKyAgICAgICAgcmVtb3ZlZCBhY2NvcmRp
bmdseS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGlu
Z0Nvb3JkaW5hdG9yOjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMpOgorICAgICAgICAoV2ViS2l0
OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpjbGVhclBlbmRpbmdTdGF0ZUNoYW5nZXMpOgorICAg
ICAgICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpwdXJnZUJhY2tpbmdTdG9yZXMp
OgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVJbWFnZUJh
Y2tpbmdJZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29v
cmRpbmF0b3I6OmNyZWF0ZUltYWdlQmFja2luZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnVwZGF0ZUltYWdlQmFja2luZyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmNsZWFySW1hZ2VCYWNraW5n
Q29udGVudHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5h
dG9yOjpyZW1vdmVJbWFnZUJhY2tpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpDb21w
b3NpdGluZ0Nvb3JkaW5hdG9yOjpmbHVzaFBlbmRpbmdJbWFnZUJhY2tpbmdDaGFuZ2VzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b21wb3NpdGluZ0Nvb3JkaW5hdG9yLmg6CisKIDIwMTgtMDgtMjIgIFphbiBEb2JlcnNlayAgPHpk
b2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDb29yZEdyYXBoaWNzXSBTd2l0Y2ggdG8g
Tmljb3NpYTo6Q29tcG9zaXRpb25MYXllciBzdGF0ZSB0cmFja2luZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGV4dHVyZU1hcHBlci5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1RleHR1cmVNYXBwZXIuY21ha2UKaW5kZXggNGI0OTk2MjM2MGE5ZjNhZDRiOWIy
MjQwZGUwM2RjZWE3YzgyNzQ5NS4uYmZlNDRmOTI0MmFjZDdhODBjODBmMTEzNWQzZTA2MzE5OWU4
MmRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGV4dHVyZU1hcHBlci5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlCkBA
IC0zNSw3ICszNSw2IEBAIGlmIChVU0VfQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAKICAgICAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkQmFja2luZ1N0
b3JlLmNwcAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAotICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCiAgICAgICAgIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9UaWxlLmNwcAogICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvVGlsZWRCYWNraW5nU3RvcmUuY3BwCiAgICAg
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmNwcAppbmRleCA1OWRiMGY1OTJhZDhiYjk0OTY0MTJmYjk4NDZmZGI2Y2NlM2Y4MWU2Li43
YzYxNjQyOTRlMDUzNTIzOWVjOWQ1N2Y0OWE4NjYwMzIwYzYwNWYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtOTMs
MTIgKzkzLDYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUZpbHRl
cnMoKQogICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OmRpZENoYW5nZUltYWdlQmFja2luZygpCi17Ci0gICAgbV9zaG91bGRTeW5j
SW1hZ2VCYWNraW5nID0gdHJ1ZTsKLSAgICBub3RpZnlGbHVzaFJlcXVpcmVkKCk7Ci19Ci0KIHZv
aWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkaWRVcGRhdGVUaWxlQnVmZmVycygpCiB7CiAg
ICAgaWYgKCFpc1Nob3dpbmdSZXBhaW50Q291bnRlcigpKQpAQCAtMTM1LDcgKzEyOSw2IEBAIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKFR5cGUgbGF5
ZXJUeXBlLCBHcmFwaGljc0xheWVyCiAgICAgLCBtX3Nob3VsZFN5bmNMYXllclN0YXRlKHRydWUp
CiAgICAgLCBtX3Nob3VsZFN5bmNDaGlsZHJlbih0cnVlKQogICAgICwgbV9zaG91bGRTeW5jRmls
dGVycyh0cnVlKQotICAgICwgbV9zaG91bGRTeW5jSW1hZ2VCYWNraW5nKHRydWUpCiAgICAgLCBt
X3Nob3VsZFN5bmNBbmltYXRpb25zKHRydWUpCiAgICAgLCBtX21vdmluZ1Zpc2libGVSZWN0KGZh
bHNlKQogICAgICwgbV9wZW5kaW5nQ29udGVudHNTY2FsZUFkanVzdG1lbnQoZmFsc2UpCkBAIC0x
NjIsNyArMTU1LDYgQEAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp+Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyKCkKICAgICAgICAgcHVyZ2VCYWNraW5nU3RvcmVzKCk7CiAgICAgICAgIG1fY29v
cmRpbmF0b3ItPmRldGFjaExheWVyKHRoaXMpOwogICAgIH0KLSAgICBBU1NFUlQoIW1fY29vcmRp
bmF0ZWRJbWFnZUJhY2tpbmcpOwogICAgIEFTU0VSVCghbV9tYWluQmFja2luZ1N0b3JlKTsKICAg
ICBBU1NFUlQoIW1fbmljb3NpYS5pbWFnZUJhY2tpbmcpOwogICAgIEFTU0VSVCghbV9uaWNvc2lh
LmJhY2tpbmdTdG9yZSk7CkBAIC01NDQsNyArNTM2LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCiAgICAgbV9jb21wb3Np
dGVkTmF0aXZlSW1hZ2VQdHIgPSBuYXRpdmVJbWFnZVB0cjsKIAogICAgIEdyYXBoaWNzTGF5ZXI6
OnNldENvbnRlbnRzVG9JbWFnZShpbWFnZSk7Ci0gICAgZGlkQ2hhbmdlSW1hZ2VCYWNraW5nKCk7
CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6c2V0TWFza0xheWVyKEdyYXBoaWNzTGF5ZXIqIGxheWVyKQpAQCAtNjcwLDMyICs2
NjIsNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0ZpbHRlcnMoKQogICAg
IG1fbmljb3NpYS5kZWx0YS5maWx0ZXJzQ2hhbmdlZCA9IHRydWU7CiB9CiAKLXZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jSW1hZ2VCYWNraW5nKCkKLXsKLSAgICBpZiAoIW1fc2hv
dWxkU3luY0ltYWdlQmFja2luZykKLSAgICAgICAgcmV0dXJuOwotICAgIG1fc2hvdWxkU3luY0lt
YWdlQmFja2luZyA9IGZhbHNlOwotCi0gICAgaWYgKG1fY29tcG9zaXRlZE5hdGl2ZUltYWdlUHRy
KSB7Ci0gICAgICAgIEFTU0VSVCghc2hvdWxkSGF2ZUJhY2tpbmdTdG9yZSgpKTsKLSAgICAgICAg
QVNTRVJUKG1fY29tcG9zaXRlZEltYWdlKTsKLQotICAgICAgICBib29sIGltYWdlSW5zdGFuY2VS
ZXBsYWNlZCA9IG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcgJiYgKG1fY29vcmRpbmF0ZWRJbWFn
ZUJhY2tpbmctPmlkKCkgIT0gQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OmdldENvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nSUQoKm1fY29tcG9zaXRlZEltYWdlKSk7Ci0gICAgICAgIGlmIChpbWFnZUlu
c3RhbmNlUmVwbGFjZWQpCi0gICAgICAgICAgICByZWxlYXNlSW1hZ2VCYWNraW5nSWZOZWVkZWQo
KTsKLQotICAgICAgICBpZiAoIW1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcpIHsKLSAgICAgICAg
ICAgIG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcgPSBtX2Nvb3JkaW5hdG9yLT5jcmVhdGVJbWFn
ZUJhY2tpbmdJZk5lZWRlZCgqbV9jb21wb3NpdGVkSW1hZ2UpOwotICAgICAgICAgICAgbV9jb29y
ZGluYXRlZEltYWdlQmFja2luZy0+YWRkSG9zdCgqdGhpcyk7Ci0gICAgICAgICAgICBtX2xheWVy
U3RhdGUuaW1hZ2VJRCA9IG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmctPmlkKCk7Ci0gICAgICAg
IH0KLQotICAgICAgICBtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLT5tYXJrRGlydHkoKTsKLSAg
ICAgICAgbV9sYXllclN0YXRlLmltYWdlQ2hhbmdlZCA9IHRydWU7Ci0gICAgfSBlbHNlCi0gICAg
ICAgIHJlbGVhc2VJbWFnZUJhY2tpbmdJZk5lZWRlZCgpOwotfQotCiB2b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6c3luY0xheWVyU3RhdGUoKQogewogICAgIGlmICghbV9zaG91bGRTeW5j
TGF5ZXJTdGF0ZSkKQEAgLTk4OSwyNCArOTU1LDYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnJlc2V0TGF5ZXJTdGF0ZSgpCiAgICAgbV9sYXllclN0YXRlLnRpbGVzVG9VcGRhdGUu
Y2xlYXIoKTsKIH0KIAotYm9vbCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmltYWdlQmFja2lu
Z1Zpc2libGUoKQotewotICAgIEFTU0VSVChtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nKTsKLSAg
ICByZXR1cm4gdHJhbnNmb3JtZWRWaXNpYmxlUmVjdCgpLmludGVyc2VjdHMoSW50UmVjdChjb250
ZW50c1JlY3QoKSkpOwotfQotCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cmVsZWFz
ZUltYWdlQmFja2luZ0lmTmVlZGVkKCkKLXsKLSAgICBpZiAoIW1fY29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmcpCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVChtX2Nvb3JkaW5hdG9yKTsKLSAg
ICBtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLT5yZW1vdmVIb3N0KCp0aGlzKTsKLSAgICBtX2Nv
b3JkaW5hdGVkSW1hZ2VCYWNraW5nID0gbnVsbHB0cjsKLSAgICBtX2xheWVyU3RhdGUuaW1hZ2VJ
RCA9IEludmFsaWRDb29yZGluYXRlZEltYWdlQmFja2luZ0lEOwotICAgIG1fbGF5ZXJTdGF0ZS5p
bWFnZUNoYW5nZWQgPSB0cnVlOwotfQotCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkKIHsKICAgICBpZiAoc2hvdWxkSGF2ZUJh
Y2tpbmdTdG9yZSgpKQpAQCAtMTIyNCw4ICsxMTcyLDYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OnB1cmdlQmFja2luZ1N0b3JlcygpCiAgICAgICAgIG1fbmljb3NpYS5iYWNraW5n
U3RvcmUgPSBudWxscHRyOwogICAgIH0KIAotICAgIHJlbGVhc2VJbWFnZUJhY2tpbmdJZk5lZWRl
ZCgpOwotCiAgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggN2Q2YjY2ZGIz
ZDJlMTlhZGMzZTY2YzNkYTk0NzExMmI4Yzg5NDc0Ni4uYjRjYmVmNGE3MGJlN2I0ZGQzNWNjOGM1
YTZhZmQ1MGNhZDExNWM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAtMjQsNyArMjQsNiBAQAogI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDUykKIAogI2luY2x1ZGUgIkNvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oIgot
I2luY2x1ZGUgIkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmgiCiAjaW5jbHVkZSAiRmxvYXRQb2lu
dDNELmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5
ZXJUcmFuc2Zvcm0uaCIKQEAgLTUwLDcgKzQ5LDYgQEAgY2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNGbHVzaGluZ0xheWVy
Q2hhbmdlcygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCB2aXNpYmxlQ29udGVu
dHNSZWN0KCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUmVmPENvb3JkaW5hdGVkSW1hZ2VCYWNr
aW5nPiBjcmVhdGVJbWFnZUJhY2tpbmdJZk5lZWRlZChJbWFnZSYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZGV0YWNoTGF5ZXIoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBhdHRhY2hMYXllcihDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqKSA9IDA7CiAg
ICAgdmlydHVhbCBOaWNvc2lhOjpQYWludGluZ0VuZ2luZSYgcGFpbnRpbmdFbmdpbmUoKSA9IDA7
CkBAIC01OSw4ICs1Nyw3IEBAIHB1YmxpYzoKIH07CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllciA6IHB1YmxpYyBHcmFwaGljc0xheWVyCi0gICAgLCBwdWJs
aWMgVGlsZWRCYWNraW5nU3RvcmVDbGllbnQKLSAgICAsIHB1YmxpYyBDb29yZGluYXRlZEltYWdl
QmFja2luZzo6SG9zdCB7CisgICAgLCBwdWJsaWMgVGlsZWRCYWNraW5nU3RvcmVDbGllbnQgewog
cHVibGljOgogICAgIGV4cGxpY2l0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihUeXBlLCBHcmFw
aGljc0xheWVyQ2xpZW50Jik7CiAgICAgdmlydHVhbCB+Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
KCk7CkBAIC0xNDksNyArMTQ2LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZENoYW5nZUdlb21l
dHJ5KCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VDaGlsZHJlbigpOwogICAgIHZvaWQgZGlkQ2hhbmdl
RmlsdGVycygpOwotICAgIHZvaWQgZGlkQ2hhbmdlSW1hZ2VCYWNraW5nKCk7CiAgICAgdm9pZCBk
aWRVcGRhdGVUaWxlQnVmZmVycygpOwogCiAgICAgdm9pZCByZXNldExheWVyU3RhdGUoKTsKQEAg
LTE1Nyw3ICsxNTMsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgc3luY0FuaW1hdGlvbnMoKTsKICAg
ICB2b2lkIHN5bmNDaGlsZHJlbigpOwogICAgIHZvaWQgc3luY0ZpbHRlcnMoKTsKLSAgICB2b2lk
IHN5bmNJbWFnZUJhY2tpbmcoKTsKICAgICB2b2lkIGNvbXB1dGVUcmFuc2Zvcm1lZFZpc2libGVS
ZWN0KCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50QnVmZmVycygpOwogCkBAIC0xNjUsOCArMTYw
LDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogCi0gICAg
Ly8gQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6Okhvc3QKLSAgICBib29sIGltYWdlQmFja2luZ1Zp
c2libGUoKSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZEhhdmVCYWNraW5nU3RvcmUoKSBjb25z
dDsKICAgICBib29sIHNlbGZPckFuY2VzdG9ySGFzQWN0aXZlVHJhbnNmb3JtQW5pbWF0aW9uKCkg
Y29uc3Q7CiAgICAgYm9vbCBzZWxmT3JBbmNlc3RvckhhdmVOb25BZmZpbmVUcmFuc2Zvcm1zKCk7
CkBAIC0xOTYsNyArMTg5LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU3luY0xheWVy
U3RhdGU6IDE7CiAgICAgYm9vbCBtX3Nob3VsZFN5bmNDaGlsZHJlbjogMTsKICAgICBib29sIG1f
c2hvdWxkU3luY0ZpbHRlcnM6IDE7Ci0gICAgYm9vbCBtX3Nob3VsZFN5bmNJbWFnZUJhY2tpbmc6
IDE7CiAgICAgYm9vbCBtX3Nob3VsZFN5bmNBbmltYXRpb25zOiAxOwogICAgIGJvb2wgbV9tb3Zp
bmdWaXNpYmxlUmVjdCA6IDE7CiAgICAgYm9vbCBtX3BlbmRpbmdDb250ZW50c1NjYWxlQWRqdXN0
bWVudCA6IDE7CkBAIC0yMTcsNyArMjA5LDYgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxJbWFn
ZT4gbV9jb21wb3NpdGVkSW1hZ2U7CiAgICAgTmF0aXZlSW1hZ2VQdHIgbV9jb21wb3NpdGVkTmF0
aXZlSW1hZ2VQdHI7Ci0gICAgUmVmUHRyPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiBtX2Nvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nOwogCiAgICAgUGxhdGZvcm1MYXllciogbV9wbGF0Zm9ybUxheWVy
OwogICAgIFRpbWVyIG1fYW5pbWF0aW9uU3RhcnRlZFRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oCmluZGV4IDZmOTYyNGY0ZTVk
NGIxMDFjMmVlNjExMTEzZTE5ZDk4N2I2ZTQ5OWIuLmZmY2YyODRiOWU5MzYzOWY0NTNiMGUzYTY0
MTU2OWE1ODEzZGNkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc1N0YXRlLmgKQEAgLTUyLDkgKzUyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogdHlwZWRlZiB1aW50MzJfdCBDb29yZGluYXRlZExheWVySUQ7CiBlbnVtIHsgSW52YWxpZENv
b3JkaW5hdGVkTGF5ZXJJRCA9IDAgfTsKIAotdHlwZWRlZiB1aW50NjRfdCBDb29yZGluYXRlZElt
YWdlQmFja2luZ0lEOwotZW51bSB7IEludmFsaWRDb29yZGluYXRlZEltYWdlQmFja2luZ0lEID0g
MCB9OwotCiBzdHJ1Y3QgVGlsZVVwZGF0ZUluZm8gewogICAgIHVpbnQzMl90IHRpbGVJRDsKICAg
ICBJbnRSZWN0IHRpbGVSZWN0OwpAQCAtOTEsNyArODgsNiBAQCBzdHJ1Y3QgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyU3RhdGUgewogICAgICAgICAgICAgYm9vbCBkZWJ1Z1Zpc3VhbHNDaGFuZ2Vk
OiAxOwogICAgICAgICAgICAgYm9vbCByZXBsaWNhQ2hhbmdlZDogMTsKICAgICAgICAgICAgIGJv
b2wgbWFza0NoYW5nZWQ6IDE7Ci0gICAgICAgICAgICBib29sIGltYWdlQ2hhbmdlZDogMTsKICAg
ICAgICAgICAgIGJvb2wgZmxhZ3NDaGFuZ2VkOiAxOwogICAgICAgICAgICAgYm9vbCBhbmltYXRp
b25zQ2hhbmdlZDogMTsKICAgICAgICAgICAgIGJvb2wgZmlsdGVyc0NoYW5nZWQ6IDE7CkBAIC0x
MzAsNyArMTI2LDYgQEAgc3RydWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlIHsKICAg
ICAgICAgLCBvcGFjaXR5KDApCiAgICAgICAgICwgcmVwbGljYShJbnZhbGlkQ29vcmRpbmF0ZWRM
YXllcklEKQogICAgICAgICAsIG1hc2soSW52YWxpZENvb3JkaW5hdGVkTGF5ZXJJRCkKLSAgICAg
ICAgLCBpbWFnZUlEKEludmFsaWRDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKQogI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKICAgICAgICAgLCBwbGF0Zm9ybUxheWVyUHJv
eHkoMCkKICNlbmRpZgpAQCAtMTU0LDcgKzE0OSw2IEBAIHN0cnVjdCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXJTdGF0ZSB7CiAgICAgVmVjdG9yPHVpbnQzMl90PiB0aWxlc1RvUmVtb3ZlOwogICAg
IENvb3JkaW5hdGVkTGF5ZXJJRCByZXBsaWNhOwogICAgIENvb3JkaW5hdGVkTGF5ZXJJRCBtYXNr
OwotICAgIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRDsKICAgICBEZWJ1Z1Zpc3Vh
bHMgZGVidWdWaXN1YWxzOwogICAgIFJlcGFpbnRDb3VudCByZXBhaW50Q291bnQ7CiAKQEAgLTE4
MCwxMSArMTc0LDYgQEAgc3RydWN0IENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSB7CiAgICAgVmVj
dG9yPENvb3JkaW5hdGVkTGF5ZXJJRD4gbGF5ZXJzVG9DcmVhdGU7CiAgICAgVmVjdG9yPHN0ZDo6
cGFpcjxDb29yZGluYXRlZExheWVySUQsIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlPj4g
bGF5ZXJzVG9VcGRhdGU7CiAgICAgVmVjdG9yPENvb3JkaW5hdGVkTGF5ZXJJRD4gbGF5ZXJzVG9S
ZW1vdmU7Ci0KLSAgICBWZWN0b3I8Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRD4gaW1hZ2VzVG9D
cmVhdGU7Ci0gICAgVmVjdG9yPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQ+IGltYWdlc1RvUmVt
b3ZlOwotICAgIFZlY3RvcjxzdGQ6OnBhaXI8Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwgUmVm
UHRyPE5pY29zaWE6OkJ1ZmZlcj4+PiBpbWFnZXNUb1VwZGF0ZTsKLSAgICBWZWN0b3I8Q29vcmRp
bmF0ZWRJbWFnZUJhY2tpbmdJRD4gaW1hZ2VzVG9DbGVhcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFn
ZUJhY2tpbmcuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNThiYTVhNmEyNGFh
NTgyZjkwNTZhMGIwZjZjODc4ZTM3NWU2N2ZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSwxMjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEwMCwg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuaCIKLQotI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDUykKLQotI2luY2x1ZGUgIkNvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oIgot
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIk5pY29zaWFCdWZmZXIuaCIK
LSNpbmNsdWRlICJOaWNvc2lhUGFpbnRpbmdDb250ZXh0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6
Z2V0Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRChJbWFnZSYgaW1hZ2UpCi17Ci0gICAgLy8gQ29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmcga2VlcHMgYSBSZWZQdHI8SW1hZ2U+IG1lbWJlciwgc28gdGhl
IHNhbWUgSW1hZ2UgcG9pbnRlciBjYW4gbm90IHJlZmVyIHR3byBkaWZmZXJlbnQgaW5zdGFuY2Vz
IHVudGlsIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nIHJlbGVhc2VzIHRoZSBtZW1iZXIuCi0gICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRD4oJmltYWdl
KTsKLX0KLQotQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5n
KENsaWVudCYgY2xpZW50LCBSZWY8SW1hZ2U+JiYgaW1hZ2UpCi0gICAgOiBtX2NsaWVudChjbGll
bnQpCi0gICAgLCBtX2lkKGdldENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQoaW1hZ2UpKQotICAg
ICwgbV9pbWFnZShXVEZNb3ZlKGltYWdlKSkKLSAgICAsIG1fY2xlYXJDb250ZW50c1RpbWVyKCp0
aGlzLCAmQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OmNsZWFyQ29udGVudHNUaW1lckZpcmVkKQot
ewotICAgIG1fY2xpZW50LmNyZWF0ZUltYWdlQmFja2luZyhtX2lkKTsKLX0KLQotQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmc6On5Db29yZGluYXRlZEltYWdlQmFja2luZygpID0gZGVmYXVsdDsKLQot
dm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6YWRkSG9zdChIb3N0JiBob3N0KQotewotICAg
IEFTU0VSVCghbV9ob3N0cy5jb250YWlucygmaG9zdCkpOwotICAgIG1faG9zdHMuYWRkKCZob3N0
KTsKLX0KLQotdm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6cmVtb3ZlSG9zdChIb3N0JiBo
b3N0KQotewotICAgIG1faG9zdHMucmVtb3ZlKCZob3N0KTsKLQotICAgIGlmIChtX2hvc3RzLmlz
RW1wdHkoKSkKLSAgICAgICAgbV9jbGllbnQucmVtb3ZlSW1hZ2VCYWNraW5nKG1faWQpOwotfQot
Ci1zdGF0aWMgY29uc3QgU2Vjb25kcyBjbGVhckNvbnRlbnRzVGltZXJJbnRlcnZhbCB7IDNfcyB9
OwotCi12b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjp1cGRhdGUoKQotewotICAgIGJvb2wg
cHJldmlvdXNJc1Zpc2libGUgPSBtX2lzVmlzaWJsZTsKLSAgICBtX2lzVmlzaWJsZSA9IHN0ZDo6
YW55X29mKG1faG9zdHMuYmVnaW4oKSwgbV9ob3N0cy5lbmQoKSwKLSAgICAgICAgW10oYXV0byog
aG9zdCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGhvc3QtPmltYWdlQmFja2luZ1Zp
c2libGUoKTsKLSAgICAgICAgfSk7Ci0KLSAgICBpZiAoIW1faXNWaXNpYmxlKSB7Ci0gICAgICAg
IGlmIChwcmV2aW91c0lzVmlzaWJsZSkgewotICAgICAgICAgICAgQVNTRVJUKCFtX2NsZWFyQ29u
dGVudHNUaW1lci5pc0FjdGl2ZSgpKTsKLSAgICAgICAgICAgIG1fY2xlYXJDb250ZW50c1RpbWVy
LnN0YXJ0T25lU2hvdChjbGVhckNvbnRlbnRzVGltZXJJbnRlcnZhbCk7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGJvb2wgY2hhbmdlZFRvVmlzaWJsZSA9ICFwcmV2
aW91c0lzVmlzaWJsZTsKLSAgICBpZiAobV9jbGVhckNvbnRlbnRzVGltZXIuaXNBY3RpdmUoKSkg
ewotICAgICAgICBtX2NsZWFyQ29udGVudHNUaW1lci5zdG9wKCk7Ci0gICAgICAgIC8vIFdlIGRv
bid0IHdhbnQgdG8gdXBkYXRlIHRoZSB0ZXh0dXJlIGlmIHdlIGRpZG4ndCByZW1vdmUgdGhlIHRl
eHR1cmUuCi0gICAgICAgIGNoYW5nZWRUb1Zpc2libGUgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICBh
dXRvIG5hdGl2ZUltYWdlUHRyID0gbV9pbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUo
KTsKLSAgICBpZiAoIWNoYW5nZWRUb1Zpc2libGUpIHsKLSAgICAgICAgaWYgKCFtX2lzRGlydHkp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKG1fbmF0aXZlSW1hZ2VQdHIgPT0g
bmF0aXZlSW1hZ2VQdHIpIHsKLSAgICAgICAgICAgIG1faXNEaXJ0eSA9IGZhbHNlOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgbV9uYXRpdmVJbWFnZVB0ciA9
IFdURk1vdmUobmF0aXZlSW1hZ2VQdHIpOwotCi0gICAgYXV0byBidWZmZXIgPSBOaWNvc2lhOjpC
dWZmZXI6OmNyZWF0ZShJbnRTaXplKG1faW1hZ2UtPnNpemUoKSksICFtX2ltYWdlLT5jdXJyZW50
RnJhbWVLbm93blRvQmVPcGFxdWUoKSA/IE5pY29zaWE6OkJ1ZmZlcjo6U3VwcG9ydHNBbHBoYSA6
IE5pY29zaWE6OkJ1ZmZlcjo6Tm9GbGFncyk7Ci0gICAgTmljb3NpYTo6UGFpbnRpbmdDb250ZXh0
OjpwYWludChidWZmZXIsCi0gICAgICAgIFt0aGlzXShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEludFJlY3QgcmVjdCB7IHsgfSwgSW50U2l6ZSB7IG1f
aW1hZ2UtPnNpemUoKSB9IH07Ci0gICAgICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShtX2ltYWdl
LCByZWN0LCByZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhDb21wb3NpdGVDb3B5KSk7Ci0gICAg
ICAgIH0pOwotCi0gICAgbV9jbGllbnQudXBkYXRlSW1hZ2VCYWNraW5nKG1faWQsIFdURk1vdmUo
YnVmZmVyKSk7Ci0gICAgbV9pc0RpcnR5ID0gZmFsc2U7Ci19Ci0KLXZvaWQgQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmc6OmNsZWFyQ29udGVudHNUaW1lckZpcmVkKCkKLXsKLSAgICBtX2NsaWVudC5j
bGVhckltYWdlQmFja2luZ0NvbnRlbnRzKG1faWQpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTRiZDQzOTgzNTNj
MWI0NWVjN2YwODc4NTJjMmEzMDE1MjdmMDE5MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuaAorKysgL2Rldi9udWxsCkBA
IC0xLDk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQ29tcGFueSAxMDAsIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCi0KLSNpbmNsdWRlICJDb29yZGluYXRlZEdyYXBoaWNz
U3RhdGUuaCIKLSNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFj
ZSBOaWNvc2lhIHsKLWNsYXNzIEJ1ZmZlcjsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1j
bGFzcyBXRUJDT1JFX0VYUE9SVCBDb29yZGluYXRlZEltYWdlQmFja2luZyA6IHB1YmxpYyBSZWZD
b3VudGVkPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiB7Ci1wdWJsaWM6Ci0gICAgY2xhc3MgQ2xp
ZW50IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVJbWFnZUJhY2tp
bmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQsIFJlZlB0cjxOaWNv
c2lhOjpCdWZmZXI+JiYpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNsZWFySW1hZ2VCYWNr
aW5nQ29udGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgPSAwOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpID0g
MDsKLSAgICB9OwotCi0gICAgY2xhc3MgSG9zdCB7Ci0gICAgcHVibGljOgotICAgICAgICB2aXJ0
dWFsIGJvb2wgaW1hZ2VCYWNraW5nVmlzaWJsZSgpID0gMDsKLSAgICB9OwotCi0gICAgc3RhdGlj
IFJlZjxDb29yZGluYXRlZEltYWdlQmFja2luZz4gY3JlYXRlKENsaWVudCYgY2xpZW50LCBSZWY8
SW1hZ2U+JiYgaW1hZ2UpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb29y
ZGluYXRlZEltYWdlQmFja2luZyhjbGllbnQsIFdURk1vdmUoaW1hZ2UpKSk7Ci0gICAgfQotICAg
IHZpcnR1YWwgfkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nKCk7Ci0KLSAgICBzdGF0aWMgQ29vcmRp
bmF0ZWRJbWFnZUJhY2tpbmdJRCBnZXRDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKEltYWdlJik7
Ci0gICAgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7
IH0KLQotICAgIHZvaWQgYWRkSG9zdChIb3N0Jik7Ci0gICAgdm9pZCByZW1vdmVIb3N0KEhvc3Qm
KTsKLQotICAgIC8vIFdoZW4gYSBuZXcgaW1hZ2UgaXMgdXBkYXRlZCBvciBhbiBhbmltYXRlZCBn
aWYgaXMgcHJvZ3Jlc3NlZCwgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIGNhbGxzIG1hcmtEaXJ0
eSgpLgotICAgIHZvaWQgbWFya0RpcnR5KCkgeyBtX2lzRGlydHkgPSB0cnVlOyB9Ci0KLSAgICAv
LyBDcmVhdGUsIHJlbW92ZSBvciB1cGRhdGUgaXRzIGJhY2tpbmcuCi0gICAgdm9pZCB1cGRhdGUo
KTsKLQotcHJpdmF0ZToKLSAgICBDb29yZGluYXRlZEltYWdlQmFja2luZyhDbGllbnQmLCBSZWY8
SW1hZ2U+JiYpOwotCi0gICAgdm9pZCBjbGVhckNvbnRlbnRzVGltZXJGaXJlZCgpOwotCi0gICAg
Q2xpZW50JiBtX2NsaWVudDsKLSAgICBIYXNoU2V0PEhvc3QqPiBtX2hvc3RzOwotCi0gICAgQ29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBtX2lkOwotICAgIFJlZjxJbWFnZT4gbV9pbWFnZTsKLSAg
ICBOYXRpdmVJbWFnZVB0ciBtX25hdGl2ZUltYWdlUHRyOwotCi0gICAgVGltZXIgbV9jbGVhckNv
bnRlbnRzVGltZXI7Ci0KLSAgICBib29sIG1faXNEaXJ0eSB7IGZhbHNlIH07Ci0gICAgYm9vbCBt
X2lzVmlzaWJsZSB7IGZhbHNlIH07Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29v
cmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA2YmE5NTc1OGMwOWQ5
ZDVhOTRkMmUyM2FjMmU4OTEyOTBiNjFkODg2Li5lYjBhMGUxZjM4ZTZjMzY4ZDdkY2JjMzUxMWVj
ZWIxYzUzMzkyOTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9z
aXRpbmdDb29yZGluYXRvci5jcHAKQEAgLTEyNSw4ICsxMjUsNiBAQCBib29sIENvbXBvc2l0aW5n
Q29vcmRpbmF0b3I6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCiAgICAgY29vcmRpbmF0ZWRM
YXllci51cGRhdGVDb250ZW50QnVmZmVyc0luY2x1ZGluZ1N1YkxheWVycygpOwogICAgIGNvb3Jk
aW5hdGVkTGF5ZXIuc3luY1BlbmRpbmdTdGF0ZUNoYW5nZXNJbmNsdWRpbmdTdWJMYXllcnMoKTsK
IAotICAgIGZsdXNoUGVuZGluZ0ltYWdlQmFja2luZ0NoYW5nZXMoKTsKLQogICAgIGlmIChtX3No
b3VsZFN5bmNGcmFtZSkgewogICAgICAgICBkaWRTeW5jID0gdHJ1ZTsKIApAQCAtMTk2LDExICsx
OTQsNiBAQCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmNsZWFyUGVuZGluZ1N0YXRlQ2hh
bmdlcygpCiAgICAgbV9zdGF0ZS5sYXllcnNUb0NyZWF0ZS5jbGVhcigpOwogICAgIG1fc3RhdGUu
bGF5ZXJzVG9VcGRhdGUuY2xlYXIoKTsKICAgICBtX3N0YXRlLmxheWVyc1RvUmVtb3ZlLmNsZWFy
KCk7Ci0KLSAgICBtX3N0YXRlLmltYWdlc1RvQ3JlYXRlLmNsZWFyKCk7Ci0gICAgbV9zdGF0ZS5p
bWFnZXNUb1JlbW92ZS5jbGVhcigpOwotICAgIG1fc3RhdGUuaW1hZ2VzVG9VcGRhdGUuY2xlYXIo
KTsKLSAgICBtX3N0YXRlLmltYWdlc1RvQ2xlYXIuY2xlYXIoKTsKIH0KIAogdm9pZCBDb21wb3Np
dGluZ0Nvb3JkaW5hdG9yOjppbml0aWFsaXplUm9vdENvbXBvc2l0aW5nTGF5ZXJJZk5lZWRlZCgp
CkBAIC0yMzMsNTMgKzIyNiw2IEBAIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6c3luY0xh
eWVyU3RhdGUoQ29vcmRpbmF0ZWRMYXllcklEIGlkLCBDb29yZGluYXRlZEdyCiAgICAgbV9zdGF0
ZS5sYXllcnNUb1VwZGF0ZS5hcHBlbmQoc3RkOjptYWtlX3BhaXIoaWQsIHN0YXRlKSk7CiB9CiAK
LVJlZjxDb29yZGluYXRlZEltYWdlQmFja2luZz4gQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Y3Jl
YXRlSW1hZ2VCYWNraW5nSWZOZWVkZWQoSW1hZ2UmIGltYWdlKQotewotICAgIENvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCA9IENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpnZXRDb29y
ZGluYXRlZEltYWdlQmFja2luZ0lEKGltYWdlKTsKLSAgICBhdXRvIGFkZFJlc3VsdCA9IG1faW1h
Z2VCYWNraW5ncy5lbnN1cmUoaW1hZ2VJRCwgW3RoaXMsICZpbWFnZV0gewotICAgICAgICByZXR1
cm4gQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OmNyZWF0ZSgqdGhpcywgaW1hZ2UpOwotICAgIH0p
OwotICAgIHJldHVybiAqYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKLX0KLQotdm9pZCBDb21w
b3NpdGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmdJRCBpbWFnZUlEKQotewotICAgIG1fc3RhdGUuaW1hZ2VzVG9DcmVhdGUuYXBwZW5kKGlt
YWdlSUQpOwotfQotCi12b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnVwZGF0ZUltYWdlQmFj
a2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQsIFJlZlB0cjxOaWNvc2lhOjpC
dWZmZXI+JiYgYnVmZmVyKQotewotICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKLSAgICBt
X3N0YXRlLmltYWdlc1RvVXBkYXRlLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihpbWFnZUlELCBXVEZN
b3ZlKGJ1ZmZlcikpKTsKLX0KLQotdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpjbGVhcklt
YWdlQmFja2luZ0NvbnRlbnRzKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCkKLXsK
LSAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IHRydWU7Ci0gICAgbV9zdGF0ZS5pbWFnZXNUb0NsZWFy
LmFwcGVuZChpbWFnZUlEKTsKLX0KLQotdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpyZW1v
dmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlEKQotewotICAg
IGlmIChtX2lzUHVyZ2luZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQVNTRVJUKG1faW1hZ2VC
YWNraW5ncy5jb250YWlucyhpbWFnZUlEKSk7Ci0gICAgbV9pbWFnZUJhY2tpbmdzLnJlbW92ZShp
bWFnZUlEKTsKLQotICAgIG1fc3RhdGUuaW1hZ2VzVG9SZW1vdmUuYXBwZW5kKGltYWdlSUQpOwot
Ci0gICAgc2l6ZV90IGltYWdlSURQb3NpdGlvbiA9IG1fc3RhdGUuaW1hZ2VzVG9DbGVhci5maW5k
KGltYWdlSUQpOwotICAgIGlmIChpbWFnZUlEUG9zaXRpb24gIT0gbm90Rm91bmQpCi0gICAgICAg
IG1fc3RhdGUuaW1hZ2VzVG9DbGVhci5yZW1vdmUoaW1hZ2VJRFBvc2l0aW9uKTsKLX0KLQotdm9p
ZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpmbHVzaFBlbmRpbmdJbWFnZUJhY2tpbmdDaGFuZ2Vz
KCkKLXsKLSAgICBmb3IgKGF1dG8mIGltYWdlQmFja2luZyA6IG1faW1hZ2VCYWNraW5ncy52YWx1
ZXMoKSkKLSAgICAgICAgaW1hZ2VCYWNraW5nLT51cGRhdGUoKTsKLX0KLQogdm9pZCBDb21wb3Np
dGluZ0Nvb3JkaW5hdG9yOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
KQogewogICAgIGlmICghbV9pc0Rlc3RydWN0aW5nICYmICFpc0ZsdXNoaW5nTGF5ZXJDaGFuZ2Vz
KCkpCkBAIC0zNzQsOCArMzIwLDYgQEAgdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpwdXJn
ZUJhY2tpbmdTdG9yZXMoKQogCiAgICAgZm9yIChhdXRvJiByZWdpc3RlcmVkTGF5ZXIgOiBtX3Jl
Z2lzdGVyZWRMYXllcnMudmFsdWVzKCkpCiAgICAgICAgIHJlZ2lzdGVyZWRMYXllci0+cHVyZ2VC
YWNraW5nU3RvcmVzKCk7Ci0KLSAgICBtX2ltYWdlQmFja2luZ3MuY2xlYXIoKTsKIH0KIAogTmlj
b3NpYTo6UGFpbnRpbmdFbmdpbmUmIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnBhaW50aW5nRW5n
aW5lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5h
dG9yLmgKaW5kZXggNDMwOGVhZTJmZjYyMDdkYjU2ZDA2ZjU1NGQzYjg1ZjhlODA1N2U5Yy4uOTg3
YTkxMjMzZjAwNjk5NDc5Y2M5ZTEzOWQzMjJmNjYzYmEyNjNhNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGlu
Z0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTMxLDcgKzMxLDYg
QEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBv
aW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyQ2xpZW50Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyRmFjdG9yeS5oPgpAQCAtNTIsNyArNTEsNiBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQ29tcG9zaXRpbmdDb29yZGluYXRvciBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgLCBwdWJsaWMgV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50Ci0gICAgLCBwdWJsaWMgV2ViQ29yZTo6Q29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmc6OkNsaWVudAogICAgICwgcHVibGljIFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJGYWN0b3J5IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb21wb3NpdGluZ0Nv
b3JkaW5hdG9yKTsKIHB1YmxpYzoKQEAgLTk1LDE2ICs5Myw5IEBAIHByaXZhdGU6CiAgICAgZmxv
YXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICBmbG9hdCBwYWdlU2Nh
bGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIC8vIENvb3JkaW5hdGVkSW1hZ2VCYWNr
aW5nOjpDbGllbnQKLSAgICB2b2lkIGNyZWF0ZUltYWdlQmFja2luZyhXZWJDb3JlOjpDb29yZGlu
YXRlZEltYWdlQmFja2luZ0lEKSBvdmVycmlkZTsKLSAgICB2b2lkIHVwZGF0ZUltYWdlQmFja2lu
ZyhXZWJDb3JlOjpDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBSZWZQdHI8Tmljb3NpYTo6QnVm
ZmVyPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZW1v
dmVJbWFnZUJhY2tpbmcoV2ViQ29yZTo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgb3ZlcnJp
ZGU7Ci0KICAgICAvLyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICBib29sIGlz
Rmx1c2hpbmdMYXllckNoYW5nZXMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lzRmx1c2hp
bmdMYXllckNoYW5nZXM7IH0KICAgICBXZWJDb3JlOjpGbG9hdFJlY3QgdmlzaWJsZUNvbnRlbnRz
UmVjdCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIFJlZjxXZWJDb3JlOjpDb29yZGluYXRlZEltYWdl
QmFja2luZz4gY3JlYXRlSW1hZ2VCYWNraW5nSWZOZWVkZWQoV2ViQ29yZTo6SW1hZ2UmKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRldGFjaExheWVyKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllciopIG92ZXJyaWRlOwogICAgIHZvaWQgYXR0YWNoTGF5ZXIoV2ViQ29yZTo6Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgTmljb3NpYTo6UGFpbnRpbmdFbmdpbmUm
IHBhaW50aW5nRW5naW5lKCkgb3ZlcnJpZGU7CkBAIC0xMTQsNyArMTA1LDYgQEAgcHJpdmF0ZToK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhp
Y3NMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpUeXBlLCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ2xpZW50Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGluaXRpYWxpemVSb290Q29tcG9zaXRp
bmdMYXllcklmTmVlZGVkKCk7Ci0gICAgdm9pZCBmbHVzaFBlbmRpbmdJbWFnZUJhY2tpbmdDaGFu
Z2VzKCk7CiAgICAgdm9pZCBjbGVhclBlbmRpbmdTdGF0ZUNoYW5nZXMoKTsKIAogICAgIHZvaWQg
cHVyZ2VCYWNraW5nU3RvcmVzKCk7CkBAIC0xMzUsNyArMTI1LDYgQEAgcHJpdmF0ZToKICAgICBX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUgbV9zdGF0ZTsKIAogICAgIEhhc2hNYXA8
V2ViQ29yZTo6Q29vcmRpbmF0ZWRMYXllcklELCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIqPiBtX3JlZ2lzdGVyZWRMYXllcnM7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpDb29yZGlu
YXRlZEltYWdlQmFja2luZ0lELCBSZWZQdHI8V2ViQ29yZTo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmc+PiBtX2ltYWdlQmFja2luZ3M7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Tmljb3NpYTo6UGFp
bnRpbmdFbmdpbmU+IG1fcGFpbnRpbmdFbmdpbmU7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>