<?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>203458</bug_id>
          
          <creation_ts>2019-10-26 06:42:10 -0700</creation_ts>
          <short_desc>Move StyleResolver::applyProperty to PropertyCascade</short_desc>
          <delta_ts>2019-10-26 08:16:15 -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>CSS</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1584229</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-26 06:42:10 -0700</bug_when>
    <thetext>Where it belongs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584231</commentid>
    <comment_count>1</comment_count>
      <attachid>382012</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-26 06:55:07 -0700</bug_when>
    <thetext>Created attachment 382012
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584240</commentid>
    <comment_count>2</comment_count>
      <attachid>382012</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-26 08:15:27 -0700</bug_when>
    <thetext>Comment on attachment 382012
patch

Clearing flags on attachment: 382012

Committed r251636: &lt;https://trac.webkit.org/changeset/251636&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584241</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-26 08:15:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584242</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-26 08:16:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/56645940&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382012</attachid>
            <date>2019-10-26 06:55:07 -0700</date>
            <delta_ts>2019-10-26 08:15:27 -0700</delta_ts>
            <desc>patch</desc>
            <filename>propertycascade-applyproperty.patch</filename>
            <type>text/plain</type>
            <size>24837</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5YWU5ODdlZDNmYy4uYmY1NzQ3MDQ0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxOS0xMC0yNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgTW92ZSBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5IHRvIFByb3BlcnR5
Q2FzY2FkZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzNDU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TW92ZSB0aGUgbW9yZSBvZiB0aGUgcHJvcGVydHkgYXBwbHlpbmcgY29kZSBvdXQgb2YgU3R5bGVS
ZXNvbHZlci4KKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHlUb0N1cnJlbnRTdHlsZSk6CisgICAg
ICAgIChXZWJDb3JlOjppc1ZhbGlkVmlzaXRlZExpbmtQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnJlc29sdmVkVmFyaWFibGVWYWx1ZSBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBz
dHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OmlzVmFs
aWRWaXNpdGVkTGlua1Byb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpQcm9wZXJ0
eUNhc2NhZGU6OmFwcGx5Q3VzdG9tUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OlByb3BlcnR5Q2FzY2FkZTo6cHJvcGVydHlDYXNjYWRlRm9yUm9sbGJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjpyZXNvbHZlVmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6cmVzb2x2ZWRWYXJpYWJsZVZhbHVl
KToKKyAgICAgICAgKiBzdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpQcm9wZXJ0eUNhc2NhZGU6OnByb3BlcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpQcm9wZXJ0eUNhc2NhZGU6OnByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjpQcm9wZXJ0eUNhc2NhZGU6Omhhc0FwcGxpZWRQcm9wZXJ0eSBjb25z
dCk6IERlbGV0ZWQuCisKIDIwMTktMTAtMjYgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBbTEZDXVtJRkNdIENvbXBsZXRlbHkgY29sbGFwc2VkIHJ1bnMgc2hvdWxk
IG5vdCBoYXZlIGFkdmFuY2Ugd2lkdGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApp
bmRleCA4MWNlYzk3ZDY5OS4uMjRlYmYwNjE5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNsdWRlICJDU1NJbWFnZVZhbHVlLmgiCiAj
aW5jbHVkZSAiQ1NTS2V5ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTS2V5ZnJhbWVzUnVsZS5o
IgotI2luY2x1ZGUgIkNTU1BhaW50SW1hZ2VWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5o
IgogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCIKICNpbmNsdWRlICJDU1NQ
cm9wZXJ0eU5hbWVzLmgiCkBAIC05Myw3ICs5Miw2IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiU2hhcmVkU3RyaW5nSGFzaC5oIgot
I2luY2x1ZGUgIlN0eWxlQnVpbGRlci5oIgogI2luY2x1ZGUgIlN0eWxlQ29sb3IuaCIKICNpbmNs
dWRlICJTdHlsZUNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiU3R5bGVGb250U2l6ZUZ1bmN0aW9u
cy5oIgpAQCAtMTQ1MywzNyArMTQ1MSwxMiBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJv
cGVydHlUb1N0eWxlKENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSwgc3RkOgogCiB2
b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHlUb0N1cnJlbnRTdHlsZShDU1NQcm9wZXJ0
eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiB7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0
dXJuOwogICAgIE1hdGNoUmVzdWx0IG1hdGNoUmVzdWx0OwogICAgIFN0eWxlOjpQcm9wZXJ0eUNh
c2NhZGUgY2FzY2FkZSgqdGhpcywgbWF0Y2hSZXN1bHQsIHsgfSwgeyB9LCB7IH0pOwogICAgIGlm
ICh2YWx1ZSkKLSAgICAgICAgYXBwbHlQcm9wZXJ0eShpZCwgdmFsdWUsIGNhc2NhZGUpOwotfQot
Ci1pbmxpbmUgYm9vbCBpc1ZhbGlkVmlzaXRlZExpbmtQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlk
KQotewotICAgIHN3aXRjaCAoaWQpIHsKLSAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZENv
bG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29sb3I6Ci0gICAgY2FzZSBDU1NQ
cm9wZXJ0eUJvcmRlclJpZ2h0Q29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRvcENv
bG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21Db2xvcjoKLSAgICBjYXNlIENT
U1Byb3BlcnR5Q2FyZXRDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5Q29sb3I6Ci0gICAgY2Fz
ZSBDU1NQcm9wZXJ0eU91dGxpbmVDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5Q29sdW1uUnVs
ZUNvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0RGVjb3JhdGlvbkNvbG9yOgotICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXNDb2xvcjoKLSAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0VGV4dEZpbGxDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dFN0
cm9rZUNvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlGaWxsOgotICAgIGNhc2UgQ1NTUHJvcGVy
dHlTdHJva2U6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZUNvbG9yOgotICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICBkZWZhdWx0OgotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIGNhc2NhZGUuYXBwbHlQcm9wZXJ0eShpZCwgKnZhbHVlKTsKIH0K
IAogLy8gU1ZHIGhhbmRsZXMgem9vbWluZyBpbiBhIGRpZmZlcmVudCB3YXkgY29tcGFyZWQgdG8g
Q1NTLiBUaGUgd2hvbGUgZG9jdW1lbnQgaXMgc2NhbGVkIGluc3RlYWQKQEAgLTE1MDUsMTE5ICsx
NDc4LDYgQEAgYm9vbCBTdHlsZVJlc29sdmVyOjp1c2VTVkdab29tUnVsZXNGb3JMZW5ndGgoKSBj
b25zdAogICAgIHJldHVybiBpczxTVkdFbGVtZW50PihtX3N0YXRlLmVsZW1lbnQoKSkgJiYgIShp
czxTVkdTVkdFbGVtZW50PigqbV9zdGF0ZS5lbGVtZW50KCkpICYmIG1fc3RhdGUuZWxlbWVudCgp
LT5wYXJlbnROb2RlKCkpOwogfQogCi12b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHko
Q1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlLCBTdHlsZTo6UHJvcGVydHlDYXNjYWRl
JiBjYXNjYWRlLCBTZWxlY3RvckNoZWNrZXI6OkxpbmtNYXRjaE1hc2sgbGlua01hdGNoTWFzaykK
LXsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFpc1Nob3J0aGFuZENTU1Byb3BlcnR5KGlkKSwg
IlNob3J0aGFuZCBwcm9wZXJ0eSBpZCA9ICVkIHdhc24ndCBleHBhbmRlZCBhdCBwYXJzaW5nIHRp
bWUiLCBpZCk7Ci0KLSAgICBTdGF0ZSYgc3RhdGUgPSBtX3N0YXRlOwotCi0gICAgUmVmUHRyPENT
U1ZhbHVlPiB2YWx1ZVRvQXBwbHkgPSB2YWx1ZTsKLSAgICBpZiAodmFsdWUtPmhhc1ZhcmlhYmxl
UmVmZXJlbmNlcygpKSB7Ci0gICAgICAgIHZhbHVlVG9BcHBseSA9IHJlc29sdmVkVmFyaWFibGVW
YWx1ZShpZCwgKnZhbHVlLCBjYXNjYWRlKTsKLSAgICAgICAgLy8gSWYgdGhlIGNhc2NhZGUgaGFz
IGFscmVhZHkgYXBwbGllZCB0aGlzIGlkLCB0aGVuIHdlIGRldGVjdGVkIGEgY3ljbGUsIGFuZCB0
aGlzIHZhbHVlIHNob3VsZCBiZSB1bnNldC4KLSAgICAgICAgaWYgKCF2YWx1ZVRvQXBwbHkgfHwg
Y2FzY2FkZS5oYXNBcHBsaWVkUHJvcGVydHkoaWQpKSB7Ci0gICAgICAgICAgICBpZiAoQ1NTUHJv
cGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHkoaWQpKQotICAgICAgICAgICAgICAgIHZhbHVlVG9B
cHBseSA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSW5oZXJpdGVkVmFsdWUoKTsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB2YWx1ZVRvQXBwbHkgPSBDU1NWYWx1
ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCk7Ci0gICAgICAg
IH0KLSAgICB9Ci0KLSAgICBpZiAoQ1NTUHJvcGVydHk6OmlzRGlyZWN0aW9uQXdhcmVQcm9wZXJ0
eShpZCkpIHsKLSAgICAgICAgQ1NTUHJvcGVydHlJRCBuZXdJZCA9IENTU1Byb3BlcnR5OjpyZXNv
bHZlRGlyZWN0aW9uQXdhcmVQcm9wZXJ0eShpZCwgc3RhdGUuc3R5bGUoKS0+ZGlyZWN0aW9uKCks
IHN0YXRlLnN0eWxlKCktPndyaXRpbmdNb2RlKCkpOwotICAgICAgICBBU1NFUlQobmV3SWQgIT0g
aWQpOwotICAgICAgICByZXR1cm4gYXBwbHlQcm9wZXJ0eShuZXdJZCwgdmFsdWVUb0FwcGx5Lmdl
dCgpLCBjYXNjYWRlLCBsaW5rTWF0Y2hNYXNrKTsKLSAgICB9Ci0KLSAgICBDU1NWYWx1ZSogdmFs
dWVUb0NoZWNrRm9ySW5oZXJpdEluaXRpYWwgPSB2YWx1ZVRvQXBwbHkuZ2V0KCk7Ci0gICAgQ1NT
Q3VzdG9tUHJvcGVydHlWYWx1ZSogY3VzdG9tUHJvcGVydHlWYWx1ZSA9IG51bGxwdHI7Ci0gICAg
Q1NTVmFsdWVJRCBjdXN0b21Qcm9wZXJ0eVZhbHVlSUQgPSBDU1NWYWx1ZUludmFsaWQ7Ci0KLSAg
ICBDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHkqIGN1c3RvbVByb3BlcnR5UmVnaXN0ZXJlZCA9
IG51bGxwdHI7Ci0KLSAgICBpZiAoaWQgPT0gQ1NTUHJvcGVydHlDdXN0b20pIHsKLSAgICAgICAg
Y3VzdG9tUHJvcGVydHlWYWx1ZSA9ICZkb3duY2FzdDxDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlPigq
dmFsdWVUb0FwcGx5KTsKLSAgICAgICAgQVNTRVJUKGN1c3RvbVByb3BlcnR5VmFsdWUtPmlzUmVz
b2x2ZWQoKSk7Ci0gICAgICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENTU1ZhbHVlSUQ+
KGN1c3RvbVByb3BlcnR5VmFsdWUtPnZhbHVlKCkpKQotICAgICAgICAgICAgY3VzdG9tUHJvcGVy
dHlWYWx1ZUlEID0gV1RGOjpnZXQ8Q1NTVmFsdWVJRD4oY3VzdG9tUHJvcGVydHlWYWx1ZS0+dmFs
dWUoKSk7Ci0gICAgICAgIGF1dG8mIG5hbWUgPSBjdXN0b21Qcm9wZXJ0eVZhbHVlLT5uYW1lKCk7
Ci0gICAgICAgIGN1c3RvbVByb3BlcnR5UmVnaXN0ZXJlZCA9IGRvY3VtZW50KCkuZ2V0Q1NTUmVn
aXN0ZXJlZEN1c3RvbVByb3BlcnR5U2V0KCkuZ2V0KG5hbWUpOwotICAgIH0KLQotICAgIGJvb2wg
aXNJbmhlcml0ID0gc3RhdGUucGFyZW50U3R5bGUoKSA/IHZhbHVlVG9DaGVja0ZvckluaGVyaXRJ
bml0aWFsLT5pc0luaGVyaXRlZFZhbHVlKCkgfHwgY3VzdG9tUHJvcGVydHlWYWx1ZUlEID09IENT
U1ZhbHVlSW5oZXJpdCA6IGZhbHNlOwotICAgIGJvb2wgaXNJbml0aWFsID0gdmFsdWVUb0NoZWNr
Rm9ySW5oZXJpdEluaXRpYWwtPmlzSW5pdGlhbFZhbHVlKCkgfHwgY3VzdG9tUHJvcGVydHlWYWx1
ZUlEID09IENTU1ZhbHVlSW5pdGlhbCB8fCAoIXN0YXRlLnBhcmVudFN0eWxlKCkgJiYgKHZhbHVl
VG9DaGVja0ZvckluaGVyaXRJbml0aWFsLT5pc0luaGVyaXRlZFZhbHVlKCkgfHwgY3VzdG9tUHJv
cGVydHlWYWx1ZUlEID09IENTU1ZhbHVlSW5oZXJpdCkpOwotCi0gICAgYm9vbCBpc1Vuc2V0ID0g
dmFsdWVUb0NoZWNrRm9ySW5oZXJpdEluaXRpYWwtPmlzVW5zZXRWYWx1ZSgpIHx8IGN1c3RvbVBy
b3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1ZVVuc2V0OwotICAgIGJvb2wgaXNSZXZlcnQgPSB2YWx1
ZVRvQ2hlY2tGb3JJbmhlcml0SW5pdGlhbC0+aXNSZXZlcnRWYWx1ZSgpIHx8IGN1c3RvbVByb3Bl
cnR5VmFsdWVJRCA9PSBDU1NWYWx1ZVJldmVydDsKLQotICAgIGlmIChpc1JldmVydCkgewotICAg
ICAgICBpZiAoc3RhdGUuY2FzY2FkZUxldmVsKCkgPT0gU3R5bGU6OkNhc2NhZGVMZXZlbDo6VXNl
ckFnZW50KQotICAgICAgICAgICAgaXNVbnNldCA9IHRydWU7Ci0gICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgYXV0byogcm9sbGJhY2sgPSBjYXNjYWRlLnByb3BlcnR5Q2FzY2FkZUZvclJvbGxi
YWNrKHN0YXRlLmNhc2NhZGVMZXZlbCgpKTsKLSAgICAgICAgICAgIEFTU0VSVChyb2xsYmFjayk7
Ci0KLSAgICAgICAgICAgIC8vIFdpdGggdGhlIGNhc2NhZGUgYnVpbHQsIHdlIG5lZWQgdG8gb2J0
YWluIHRoZSBwcm9wZXJ0eSBhbmQgYXBwbHkgaXQuIElmIHRoZSBwcm9wZXJ0eSBpcwotICAgICAg
ICAgICAgLy8gbm90IHByZXNlbnQsIHRoZW4gd2UgYmVoYXZlIGxpa2UgInVuc2V0LiIgT3RoZXJ3
aXNlIHdlIGFwcGx5IHRoZSBwcm9wZXJ0eSBpbnN0ZWFkIG9mCi0gICAgICAgICAgICAvLyBvdXIg
b3duLgotICAgICAgICAgICAgaWYgKGN1c3RvbVByb3BlcnR5VmFsdWUpIHsKLSAgICAgICAgICAg
ICAgICBpZiAoY3VzdG9tUHJvcGVydHlSZWdpc3RlcmVkICYmIGN1c3RvbVByb3BlcnR5UmVnaXN0
ZXJlZC0+aW5oZXJpdHMgJiYgcm9sbGJhY2stPmhhc0N1c3RvbVByb3BlcnR5KGN1c3RvbVByb3Bl
cnR5VmFsdWUtPm5hbWUoKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBwcm9wZXJ0eSA9
IHJvbGxiYWNrLT5jdXN0b21Qcm9wZXJ0eShjdXN0b21Qcm9wZXJ0eVZhbHVlLT5uYW1lKCkpOwot
ICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVydHkuY3NzVmFsdWVbbGlua01hdGNoTWFza10p
Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBseVByb3BlcnR5KHByb3BlcnR5LmlkLCBwcm9w
ZXJ0eS5jc3NWYWx1ZVtsaW5rTWF0Y2hNYXNrXSwgY2FzY2FkZSwgbGlua01hdGNoTWFzayk7Ci0g
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB9IGVsc2UgaWYgKHJvbGxiYWNrLT5oYXNQcm9wZXJ0eShpZCkpIHsKLSAgICAgICAgICAgICAg
ICBhdXRvJiBwcm9wZXJ0eSA9IHJvbGxiYWNrLT5wcm9wZXJ0eShpZCk7Ci0gICAgICAgICAgICAg
ICAgaWYgKHByb3BlcnR5LmNzc1ZhbHVlW2xpbmtNYXRjaE1hc2tdKQotICAgICAgICAgICAgICAg
ICAgICBhcHBseVByb3BlcnR5KHByb3BlcnR5LmlkLCBwcm9wZXJ0eS5jc3NWYWx1ZVtsaW5rTWF0
Y2hNYXNrXSwgY2FzY2FkZSwgbGlua01hdGNoTWFzayk7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpc1Vuc2V0ID0gdHJ1ZTsKLSAgICAgICAg
fQotICAgIH0KLQotICAgIGlmIChpc1Vuc2V0KSB7Ci0gICAgICAgIGlmIChDU1NQcm9wZXJ0eTo6
aXNJbmhlcml0ZWRQcm9wZXJ0eShpZCkpCi0gICAgICAgICAgICBpc0luaGVyaXQgPSB0cnVlOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBpc0luaXRpYWwgPSB0cnVlOwotICAgIH0KLQotICAg
IEFTU0VSVCghaXNJbmhlcml0IHx8ICFpc0luaXRpYWwpOyAvLyBpc0luaGVyaXQgLT4gIWlzSW5p
dGlhbCAmJiBpc0luaXRpYWwgLT4gIWlzSW5oZXJpdAotCi0gICAgaWYgKCFzdGF0ZS5hcHBseVBy
b3BlcnR5VG9SZWd1bGFyU3R5bGUoKSAmJiAoIXN0YXRlLmFwcGx5UHJvcGVydHlUb1Zpc2l0ZWRM
aW5rU3R5bGUoKSB8fCAhaXNWYWxpZFZpc2l0ZWRMaW5rUHJvcGVydHkoaWQpKSkgewotICAgICAg
ICAvLyBMaW1pdCB0aGUgcHJvcGVydGllcyB0aGF0IGNhbiBiZSBhcHBsaWVkIHRvIG9ubHkgdGhl
IG9uZXMgaG9ub3JlZCBieSA6dmlzaXRlZC4KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGlmIChpc0luaGVyaXQgJiYgIUNTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KGlkKSkK
LSAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0SGFzRXhwbGljaXRseUluaGVyaXRlZFByb3BlcnRp
ZXMoKTsKLQotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQotICAgIGlmIChpczxDU1NQYWlu
dEltYWdlVmFsdWU+KCp2YWx1ZVRvQXBwbHkpKSB7Ci0gICAgICAgIGF1dG8mIG5hbWUgPSBkb3du
Y2FzdDxDU1NQYWludEltYWdlVmFsdWU+KCp2YWx1ZVRvQXBwbHkpLm5hbWUoKTsKLSAgICAgICAg
aWYgKGF1dG8qIHBhaW50V29ya2xldCA9IGRvY3VtZW50KCkucGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGVGb3JOYW1lKG5hbWUpKSB7Ci0gICAgICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKHBh
aW50V29ya2xldC0+cGFpbnREZWZpbml0aW9uTG9jaygpKTsKLSAgICAgICAgICAgIGlmIChhdXRv
KiByZWdpc3RyYXRpb24gPSBwYWludFdvcmtsZXQtPnBhaW50RGVmaW5pdGlvbk1hcCgpLmdldChu
YW1lKSkgewotICAgICAgICAgICAgICAgIGZvciAoYXV0byYgcHJvcGVydHkgOiByZWdpc3RyYXRp
b24tPmlucHV0UHJvcGVydGllcykKLSAgICAgICAgICAgICAgICAgICAgc3RhdGUuc3R5bGUoKS0+
YWRkQ3VzdG9tUGFpbnRXYXRjaFByb3BlcnR5KHByb3BlcnR5KTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfQotICAgIH0KLSNlbmRpZgotCi0gICAgLy8gVXNlIHRoZSBnZW5lcmF0ZWQgU3R5bGVC
dWlsZGVyLgotICAgIFN0eWxlQnVpbGRlcjo6YXBwbHlQcm9wZXJ0eShpZCwgKnRoaXMsICp2YWx1
ZVRvQXBwbHksIGlzSW5pdGlhbCwgaXNJbmhlcml0LCBjdXN0b21Qcm9wZXJ0eVJlZ2lzdGVyZWQp
OwotfQotCi1SZWZQdHI8Q1NTVmFsdWU+IFN0eWxlUmVzb2x2ZXI6OnJlc29sdmVkVmFyaWFibGVW
YWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJRCwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlLCBTdHlsZTo6
UHJvcGVydHlDYXNjYWRlJiBjYXNjYWRlKSBjb25zdAotewotICAgIENTU1BhcnNlciBwYXJzZXIo
ZG9jdW1lbnQoKSk7Ci0gICAgcmV0dXJuIHBhcnNlci5wYXJzZVZhbHVlV2l0aFZhcmlhYmxlUmVm
ZXJlbmNlcyhwcm9wSUQsIHZhbHVlLCBjYXNjYWRlKTsKLX0KLQogUmVmUHRyPFN0eWxlSW1hZ2U+
IFN0eWxlUmVzb2x2ZXI6OnN0eWxlSW1hZ2UoQ1NTVmFsdWUmIHZhbHVlKQogewogICAgIGlmIChp
czxDU1NJbWFnZUdlbmVyYXRvclZhbHVlPih2YWx1ZSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5oCmluZGV4IGMwN2M4ZWY4YmYzLi41N2M5OGExNTJhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5oCkBAIC0zMjcsMTIgKzMyNyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdy
aXRpbmdNb2RlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKSB7IG1fc3RhdGUuc2V0V3JpdGluZ01v
ZGUod3JpdGluZ01vZGUpOyB9CiAgICAgdm9pZCBzZXRUZXh0T3JpZW50YXRpb24oVGV4dE9yaWVu
dGF0aW9uIHRleHRPcmllbnRhdGlvbikgeyBtX3N0YXRlLnNldFRleHRPcmllbnRhdGlvbih0ZXh0
T3JpZW50YXRpb24pOyB9CiAKLSAgICBSZWZQdHI8Q1NTVmFsdWU+IHJlc29sdmVkVmFyaWFibGVW
YWx1ZShDU1NQcm9wZXJ0eUlELCBjb25zdCBDU1NWYWx1ZSYsIFN0eWxlOjpQcm9wZXJ0eUNhc2Nh
ZGUmKSBjb25zdDsKLQogICAgIGJvb2wgYWRqdXN0UmVuZGVyU3R5bGVGb3JUZXh0QXV0b3Npemlu
ZyhSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQmKTsKIAotICAgIHZvaWQgYXBwbHlQcm9wZXJ0
eShDU1NQcm9wZXJ0eUlELCBDU1NWYWx1ZSosIFN0eWxlOjpQcm9wZXJ0eUNhc2NhZGUmLCBTZWxl
Y3RvckNoZWNrZXI6OkxpbmtNYXRjaE1hc2sgPSBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoRGVmYXVs
dCk7Ci0KIHByaXZhdGU6CiAgICAgdm9pZCBjYWNoZUJvcmRlckFuZEJhY2tncm91bmQoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNjYWRlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHAKaW5kZXggNTNmMjU5NGIzYjIu
LmM0MGUwNGE4YjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNh
c2NhZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHAK
QEAgLTI2LDYgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUHJvcGVy
dHlDYXNjYWRlLmgiCiAKKyNpbmNsdWRlICJDU1NQYWludEltYWdlVmFsdWUuaCIKKyNpbmNsdWRl
ICJDU1NWYWx1ZVBvb2wuaCIKKyNpbmNsdWRlICJQYWludFdvcmtsZXRHbG9iYWxTY29wZS5oIgor
I2luY2x1ZGUgIlN0eWxlQnVpbGRlci5oIgorI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTaG9ydGhh
bmQuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTkzLDYgKzk4LDMzIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkTWFya2VyU3R5bGVQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGlj
IGlubGluZSBib29sIGlzVmFsaWRWaXNpdGVkTGlua1Byb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQp
Cit7CisgICAgc3dpdGNoIChpZCkgeworICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29s
b3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckxlZnRDb2xvcjoKKyAgICBjYXNlIENTU1By
b3BlcnR5Qm9yZGVyUmlnaHRDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyVG9wQ29s
b3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUNvbG9yOgorICAgIGNhc2UgQ1NT
UHJvcGVydHlDYXJldENvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlDb2xvcjoKKyAgICBjYXNl
IENTU1Byb3BlcnR5T3V0bGluZUNvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlDb2x1bW5SdWxl
Q29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uQ29sb3I6CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBoYXNpc0NvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRUZXh0RmlsbENvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0U3Ry
b2tlQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUZpbGw6CisgICAgY2FzZSBDU1NQcm9wZXJ0
eVN0cm9rZToKKyAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tlQ29sb3I6CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVy
biBmYWxzZTsKK30KKwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIHN0YXRpYyBpbmxpbmUgYm9v
bCBpc1ZhbGlkQ3VlU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkKQogewpAQCAtNDA0LDcg
KzQzNiw3IEBAIHZvaWQgUHJvcGVydHlDYXNjYWRlOjphcHBseUN1c3RvbVByb3BlcnR5KGNvbnN0
IFN0cmluZyYgbmFtZSkKICAgICAgICAgbV9hcHBseVN0YXRlLmluUHJvZ3Jlc3NQcm9wZXJ0aWVz
Q3VzdG9tLmFkZChuYW1lKTsKIAogICAgICAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxS
ZWY8Q1NTVmFyaWFibGVSZWZlcmVuY2VWYWx1ZT4+KHZhbHVlVG9BcHBseS0+dmFsdWUoKSkpIHsK
LSAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gcGFyc2VkVmFsdWUgPSBtX3N0eWxlUmVzb2x2
ZXIucmVzb2x2ZWRWYXJpYWJsZVZhbHVlKENTU1Byb3BlcnR5Q3VzdG9tLCB2YWx1ZVRvQXBwbHku
Z2V0KCksICp0aGlzKTsKKyAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gcGFyc2VkVmFsdWUg
PSByZXNvbHZlZFZhcmlhYmxlVmFsdWUoQ1NTUHJvcGVydHlDdXN0b20sIHZhbHVlVG9BcHBseS5n
ZXQoKSk7CiAKICAgICAgICAgICAgIGlmIChtX2FwcGx5U3RhdGUuYXBwbGllZEN1c3RvbVByb3Bl
cnRpZXMuY29udGFpbnMobmFtZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBUaGVyZSB3
YXMgYSBjeWNsZSBhbmQgdGhlIHZhbHVlIHdhcyByZXNldCwgc28gYmFpbC4KQEAgLTQzMCw3ICs0
NjIsNyBAQCB2b2lkIFByb3BlcnR5Q2FzY2FkZTo6YXBwbHlDdXN0b21Qcm9wZXJ0eShjb25zdCBT
dHJpbmcmIG5hbWUpCiAgICAgICAgICAgICAgICAgbV9zdHlsZVJlc29sdmVyLnN0YXRlKCkuc2V0
QXBwbHlQcm9wZXJ0eVRvUmVndWxhclN0eWxlKGZhbHNlKTsKICAgICAgICAgICAgICAgICBtX3N0
eWxlUmVzb2x2ZXIuc3RhdGUoKS5zZXRBcHBseVByb3BlcnR5VG9WaXNpdGVkTGlua1N0eWxlKHRy
dWUpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgbV9zdHlsZVJlc29sdmVyLmFwcGx5UHJv
cGVydHkoQ1NTUHJvcGVydHlDdXN0b20sIHZhbHVlVG9BcHBseS5wdHIoKSwgKnRoaXMsIGluZGV4
KTsKKyAgICAgICAgICAgIGFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlDdXN0b20sIHZhbHVlVG9B
cHBseS5nZXQoKSwgaW5kZXgpOwogICAgICAgICB9CiAgICAgfQogCkBAIC00NDcsMzAgKzQ3OSwz
MCBAQCB2b2lkIFByb3BlcnR5Q2FzY2FkZTo6YXBwbHlDdXN0b21Qcm9wZXJ0eShjb25zdCBTdHJp
bmcmIG5hbWUpCiAKICAgICAgICAgaWYgKGluQ3ljbGUgJiYgV1RGOjpob2xkc19hbHRlcm5hdGl2
ZTxSZWY8Q1NTVmFyaWFibGVSZWZlcmVuY2VWYWx1ZT4+KHZhbHVlVG9BcHBseS0+dmFsdWUoKSkp
IHsKICAgICAgICAgICAgIC8vIFJlc29sdmUgdGhpcyB2YWx1ZSBzbyB0aGF0IHdlIHJlc2V0IGl0
cyBkZXBlbmRlbmNpZXMuCi0gICAgICAgICAgICBtX3N0eWxlUmVzb2x2ZXIucmVzb2x2ZWRWYXJp
YWJsZVZhbHVlKENTU1Byb3BlcnR5Q3VzdG9tLCB2YWx1ZVRvQXBwbHkuZ2V0KCksICp0aGlzKTsK
KyAgICAgICAgICAgIHJlc29sdmVkVmFyaWFibGVWYWx1ZShDU1NQcm9wZXJ0eUN1c3RvbSwgdmFs
dWVUb0FwcGx5LmdldCgpKTsKICAgICAgICAgfQogICAgIH0KIH0KIAotUHJvcGVydHlDYXNjYWRl
KiBQcm9wZXJ0eUNhc2NhZGU6OnByb3BlcnR5Q2FzY2FkZUZvclJvbGxiYWNrKENhc2NhZGVMZXZl
bCBjYXNjYWRlTGV2ZWwpCitjb25zdCBQcm9wZXJ0eUNhc2NhZGUqIFByb3BlcnR5Q2FzY2FkZTo6
cHJvcGVydHlDYXNjYWRlRm9yUm9sbGJhY2soQ2FzY2FkZUxldmVsIGNhc2NhZGVMZXZlbCkKIHsK
ICAgICBzd2l0Y2ggKGNhc2NhZGVMZXZlbCkgewogICAgIGNhc2UgQ2FzY2FkZUxldmVsOjpBdXRo
b3I6CiAgICAgICAgIGlmICghbV9hdXRob3JSb2xsYmFja0Nhc2NhZGUpIHsKICAgICAgICAgICAg
IGF1dG8gY2FzY2FkZUxldmVscyA9IE9wdGlvblNldDxDYXNjYWRlTGV2ZWw+IHsgQ2FzY2FkZUxl
dmVsOjpVc2VyQWdlbnQsIENhc2NhZGVMZXZlbDo6VXNlciB9OwotICAgICAgICAgICAgbV9hdXRo
b3JSb2xsYmFja0Nhc2NhZGUgPSBtYWtlVW5pcXVlPFByb3BlcnR5Q2FzY2FkZT4obV9zdHlsZVJl
c29sdmVyLCBtX21hdGNoUmVzdWx0LCBjYXNjYWRlTGV2ZWxzLCBtX2RpcmVjdGlvbiwgbV93cml0
aW5nTW9kZSwgbV9pbmNsdWRlZFByb3BlcnRpZXMpOworICAgICAgICAgICAgbV9hdXRob3JSb2xs
YmFja0Nhc2NhZGUgPSBtYWtlVW5pcXVlPGNvbnN0IFByb3BlcnR5Q2FzY2FkZT4obV9zdHlsZVJl
c29sdmVyLCBtX21hdGNoUmVzdWx0LCBjYXNjYWRlTGV2ZWxzLCBtX2RpcmVjdGlvbiwgbV93cml0
aW5nTW9kZSwgbV9pbmNsdWRlZFByb3BlcnRpZXMpOwogICAgICAgICB9CiAgICAgICAgIHJldHVy
biBtX2F1dGhvclJvbGxiYWNrQ2FzY2FkZS5nZXQoKTsKIAogICAgIGNhc2UgQ2FzY2FkZUxldmVs
OjpVc2VyOgogICAgICAgICBpZiAoIW1fdXNlclJvbGxiYWNrQ2FzY2FkZSkgewogICAgICAgICAg
ICAgYXV0byBjYXNjYWRlTGV2ZWxzID0gT3B0aW9uU2V0PENhc2NhZGVMZXZlbD4geyBDYXNjYWRl
TGV2ZWw6OlVzZXJBZ2VudCB9OwotICAgICAgICAgICAgbV91c2VyUm9sbGJhY2tDYXNjYWRlID0g
bWFrZVVuaXF1ZTxQcm9wZXJ0eUNhc2NhZGU+KG1fc3R5bGVSZXNvbHZlciwgbV9tYXRjaFJlc3Vs
dCwgY2FzY2FkZUxldmVscywgbV9kaXJlY3Rpb24sIG1fd3JpdGluZ01vZGUsIG1faW5jbHVkZWRQ
cm9wZXJ0aWVzKTsKKyAgICAgICAgICAgIG1fdXNlclJvbGxiYWNrQ2FzY2FkZSA9IG1ha2VVbmlx
dWU8Y29uc3QgUHJvcGVydHlDYXNjYWRlPihtX3N0eWxlUmVzb2x2ZXIsIG1fbWF0Y2hSZXN1bHQs
IGNhc2NhZGVMZXZlbHMsIG1fZGlyZWN0aW9uLCBtX3dyaXRpbmdNb2RlLCBtX2luY2x1ZGVkUHJv
cGVydGllcyk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fdXNlclJvbGxiYWNrQ2FzY2Fk
ZS5nZXQoKTsKIAogICAgIGNhc2UgQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQ6Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC00ODUsNyArNTE3LDcgQEAgaW5saW5lIHZv
aWQgUHJvcGVydHlDYXNjYWRlOjphcHBseVByb3BlcnR5KGNvbnN0IFByb3BlcnR5JiBwcm9wZXJ0
eSkKICAgICBpZiAocHJvcGVydHkuY3NzVmFsdWVbU2VsZWN0b3JDaGVja2VyOjpNYXRjaERlZmF1
bHRdKSB7CiAgICAgICAgIHN0YXRlLnNldEFwcGx5UHJvcGVydHlUb1JlZ3VsYXJTdHlsZSh0cnVl
KTsKICAgICAgICAgc3RhdGUuc2V0QXBwbHlQcm9wZXJ0eVRvVmlzaXRlZExpbmtTdHlsZShmYWxz
ZSk7Ci0gICAgICAgIG1fc3R5bGVSZXNvbHZlci5hcHBseVByb3BlcnR5KHByb3BlcnR5LmlkLCBw
cm9wZXJ0eS5jc3NWYWx1ZVtTZWxlY3RvckNoZWNrZXI6Ok1hdGNoRGVmYXVsdF0sICp0aGlzLCBT
ZWxlY3RvckNoZWNrZXI6Ok1hdGNoRGVmYXVsdCk7CisgICAgICAgIGFwcGx5UHJvcGVydHkocHJv
cGVydHkuaWQsICpwcm9wZXJ0eS5jc3NWYWx1ZVtTZWxlY3RvckNoZWNrZXI6Ok1hdGNoRGVmYXVs
dF0sIFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hEZWZhdWx0KTsKICAgICB9CiAKICAgICBpZiAoc3Rh
dGUuc3R5bGUoKS0+aW5zaWRlTGluaygpID09IEluc2lkZUxpbms6Ok5vdEluc2lkZSkKQEAgLTQ5
NCwxOCArNTI2LDEyOSBAQCBpbmxpbmUgdm9pZCBQcm9wZXJ0eUNhc2NhZGU6OmFwcGx5UHJvcGVy
dHkoY29uc3QgUHJvcGVydHkmIHByb3BlcnR5KQogICAgIGlmIChwcm9wZXJ0eS5jc3NWYWx1ZVtT
ZWxlY3RvckNoZWNrZXI6Ok1hdGNoTGlua10pIHsKICAgICAgICAgc3RhdGUuc2V0QXBwbHlQcm9w
ZXJ0eVRvUmVndWxhclN0eWxlKHRydWUpOwogICAgICAgICBzdGF0ZS5zZXRBcHBseVByb3BlcnR5
VG9WaXNpdGVkTGlua1N0eWxlKGZhbHNlKTsKLSAgICAgICAgbV9zdHlsZVJlc29sdmVyLmFwcGx5
UHJvcGVydHkocHJvcGVydHkuaWQsIHByb3BlcnR5LmNzc1ZhbHVlW1NlbGVjdG9yQ2hlY2tlcjo6
TWF0Y2hMaW5rXSwgKnRoaXMsIFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hMaW5rKTsKKyAgICAgICAg
YXBwbHlQcm9wZXJ0eShwcm9wZXJ0eS5pZCwgKnByb3BlcnR5LmNzc1ZhbHVlW1NlbGVjdG9yQ2hl
Y2tlcjo6TWF0Y2hMaW5rXSwgU2VsZWN0b3JDaGVja2VyOjpNYXRjaExpbmspOwogICAgIH0KIAog
ICAgIGlmIChwcm9wZXJ0eS5jc3NWYWx1ZVtTZWxlY3RvckNoZWNrZXI6Ok1hdGNoVmlzaXRlZF0p
IHsKICAgICAgICAgc3RhdGUuc2V0QXBwbHlQcm9wZXJ0eVRvUmVndWxhclN0eWxlKGZhbHNlKTsK
ICAgICAgICAgc3RhdGUuc2V0QXBwbHlQcm9wZXJ0eVRvVmlzaXRlZExpbmtTdHlsZSh0cnVlKTsK
LSAgICAgICAgbV9zdHlsZVJlc29sdmVyLmFwcGx5UHJvcGVydHkocHJvcGVydHkuaWQsIHByb3Bl
cnR5LmNzc1ZhbHVlW1NlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hWaXNpdGVkXSwgKnRoaXMsIFNlbGVj
dG9yQ2hlY2tlcjo6TWF0Y2hWaXNpdGVkKTsKKyAgICAgICAgYXBwbHlQcm9wZXJ0eShwcm9wZXJ0
eS5pZCwgKnByb3BlcnR5LmNzc1ZhbHVlW1NlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hWaXNpdGVkXSwg
U2VsZWN0b3JDaGVja2VyOjpNYXRjaFZpc2l0ZWQpOwogICAgIH0KIAogICAgIHN0YXRlLnNldEFw
cGx5UHJvcGVydHlUb1JlZ3VsYXJTdHlsZSh0cnVlKTsKICAgICBzdGF0ZS5zZXRBcHBseVByb3Bl
cnR5VG9WaXNpdGVkTGlua1N0eWxlKGZhbHNlKTsKIH0KIAordm9pZCBQcm9wZXJ0eUNhc2NhZGU6
OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUmIHZhbHVlLCBTZWxlY3Rv
ckNoZWNrZXI6OkxpbmtNYXRjaE1hc2sgbGlua01hdGNoTWFzaykKK3sKKyAgICBBU1NFUlRfV0lU
SF9NRVNTQUdFKCFpc1Nob3J0aGFuZENTU1Byb3BlcnR5KGlkKSwgIlNob3J0aGFuZCBwcm9wZXJ0
eSBpZCA9ICVkIHdhc24ndCBleHBhbmRlZCBhdCBwYXJzaW5nIHRpbWUiLCBpZCk7CisKKyAgICBh
dXRvIHZhbHVlVG9BcHBseSA9IHJlc29sdmVWYWx1ZShpZCwgdmFsdWUpOworCisgICAgaWYgKENT
U1Byb3BlcnR5Ojppc0RpcmVjdGlvbkF3YXJlUHJvcGVydHkoaWQpKSB7CisgICAgICAgIENTU1By
b3BlcnR5SUQgbmV3SWQgPSBDU1NQcm9wZXJ0eTo6cmVzb2x2ZURpcmVjdGlvbkF3YXJlUHJvcGVy
dHkoaWQsIG1fZGlyZWN0aW9uLCBtX3dyaXRpbmdNb2RlKTsKKyAgICAgICAgQVNTRVJUKG5ld0lk
ICE9IGlkKTsKKyAgICAgICAgcmV0dXJuIGFwcGx5UHJvcGVydHkobmV3SWQsIHZhbHVlVG9BcHBs
eS5nZXQoKSwgbGlua01hdGNoTWFzayk7CisgICAgfQorCisgICAgQ1NTQ3VzdG9tUHJvcGVydHlW
YWx1ZSogY3VzdG9tUHJvcGVydHlWYWx1ZSA9IG51bGxwdHI7CisgICAgQ1NTVmFsdWVJRCBjdXN0
b21Qcm9wZXJ0eVZhbHVlSUQgPSBDU1NWYWx1ZUludmFsaWQ7CisgICAgQ1NTUmVnaXN0ZXJlZEN1
c3RvbVByb3BlcnR5KiBjdXN0b21Qcm9wZXJ0eVJlZ2lzdGVyZWQgPSBudWxscHRyOworCisgICAg
aWYgKGlkID09IENTU1Byb3BlcnR5Q3VzdG9tKSB7CisgICAgICAgIGN1c3RvbVByb3BlcnR5VmFs
dWUgPSBkb3duY2FzdDxDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlPih2YWx1ZVRvQXBwbHkucHRyKCkp
OworICAgICAgICBBU1NFUlQoY3VzdG9tUHJvcGVydHlWYWx1ZS0+aXNSZXNvbHZlZCgpKTsKKyAg
ICAgICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q1NTVmFsdWVJRD4oY3VzdG9tUHJvcGVy
dHlWYWx1ZS0+dmFsdWUoKSkpCisgICAgICAgICAgICBjdXN0b21Qcm9wZXJ0eVZhbHVlSUQgPSBX
VEY6OmdldDxDU1NWYWx1ZUlEPihjdXN0b21Qcm9wZXJ0eVZhbHVlLT52YWx1ZSgpKTsKKyAgICAg
ICAgYXV0byYgbmFtZSA9IGN1c3RvbVByb3BlcnR5VmFsdWUtPm5hbWUoKTsKKyAgICAgICAgY3Vz
dG9tUHJvcGVydHlSZWdpc3RlcmVkID0gbV9zdHlsZVJlc29sdmVyLmRvY3VtZW50KCkuZ2V0Q1NT
UmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5U2V0KCkuZ2V0KG5hbWUpOworICAgIH0KKworICAgIGF1
dG8mIHN0YXRlID0gbV9zdHlsZVJlc29sdmVyLnN0YXRlKCk7CisgICAgYm9vbCBpc0luaGVyaXQg
PSBzdGF0ZS5wYXJlbnRTdHlsZSgpID8gdmFsdWVUb0FwcGx5LT5pc0luaGVyaXRlZFZhbHVlKCkg
fHwgY3VzdG9tUHJvcGVydHlWYWx1ZUlEID09IENTU1ZhbHVlSW5oZXJpdCA6IGZhbHNlOworICAg
IGJvb2wgaXNJbml0aWFsID0gdmFsdWVUb0FwcGx5LT5pc0luaXRpYWxWYWx1ZSgpIHx8IGN1c3Rv
bVByb3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1ZUluaXRpYWwgfHwgKCFzdGF0ZS5wYXJlbnRTdHls
ZSgpICYmICh2YWx1ZVRvQXBwbHktPmlzSW5oZXJpdGVkVmFsdWUoKSB8fCBjdXN0b21Qcm9wZXJ0
eVZhbHVlSUQgPT0gQ1NTVmFsdWVJbmhlcml0KSk7CisKKyAgICBib29sIGlzVW5zZXQgPSB2YWx1
ZVRvQXBwbHktPmlzVW5zZXRWYWx1ZSgpIHx8IGN1c3RvbVByb3BlcnR5VmFsdWVJRCA9PSBDU1NW
YWx1ZVVuc2V0OworICAgIGJvb2wgaXNSZXZlcnQgPSB2YWx1ZVRvQXBwbHktPmlzUmV2ZXJ0VmFs
dWUoKSB8fCBjdXN0b21Qcm9wZXJ0eVZhbHVlSUQgPT0gQ1NTVmFsdWVSZXZlcnQ7CisKKyAgICBp
ZiAoaXNSZXZlcnQpIHsKKyAgICAgICAgaWYgKGF1dG8qIHJvbGxiYWNrID0gcHJvcGVydHlDYXNj
YWRlRm9yUm9sbGJhY2soc3RhdGUuY2FzY2FkZUxldmVsKCkpKSB7CisgICAgICAgICAgICAvLyBX
aXRoIHRoZSByb2xsYmFjayBjYXNjYWRlIGJ1aWx0LCB3ZSBuZWVkIHRvIG9idGFpbiB0aGUgcHJv
cGVydHkgYW5kIGFwcGx5IGl0LiBJZiB0aGUgcHJvcGVydHkgaXMKKyAgICAgICAgICAgIC8vIG5v
dCBwcmVzZW50LCB0aGVuIHdlIGJlaGF2ZSBsaWtlICJ1bnNldC4iIE90aGVyd2lzZSB3ZSBhcHBs
eSB0aGUgcHJvcGVydHkgaW5zdGVhZCBvZgorICAgICAgICAgICAgLy8gb3VyIG93bi4KKyAgICAg
ICAgICAgIGlmIChjdXN0b21Qcm9wZXJ0eVZhbHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKGN1
c3RvbVByb3BlcnR5UmVnaXN0ZXJlZCAmJiBjdXN0b21Qcm9wZXJ0eVJlZ2lzdGVyZWQtPmluaGVy
aXRzICYmIHJvbGxiYWNrLT5oYXNDdXN0b21Qcm9wZXJ0eShjdXN0b21Qcm9wZXJ0eVZhbHVlLT5u
YW1lKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gcHJvcGVydHkgPSByb2xsYmFjay0+
Y3VzdG9tUHJvcGVydHkoY3VzdG9tUHJvcGVydHlWYWx1ZS0+bmFtZSgpKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHByb3BlcnR5LmNzc1ZhbHVlW2xpbmtNYXRjaE1hc2tdKQorICAgICAgICAg
ICAgICAgICAgICAgICAgYXBwbHlQcm9wZXJ0eShwcm9wZXJ0eS5pZCwgKnByb3BlcnR5LmNzc1Zh
bHVlW2xpbmtNYXRjaE1hc2tdLCBsaW5rTWF0Y2hNYXNrKTsKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAocm9sbGJh
Y2stPmhhc1Byb3BlcnR5KGlkKSkgeworICAgICAgICAgICAgICAgIGF1dG8mIHByb3BlcnR5ID0g
cm9sbGJhY2stPnByb3BlcnR5KGlkKTsKKyAgICAgICAgICAgICAgICBpZiAocHJvcGVydHkuY3Nz
VmFsdWVbbGlua01hdGNoTWFza10pCisgICAgICAgICAgICAgICAgICAgIGFwcGx5UHJvcGVydHko
cHJvcGVydHkuaWQsICpwcm9wZXJ0eS5jc3NWYWx1ZVtsaW5rTWF0Y2hNYXNrXSwgbGlua01hdGNo
TWFzayk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9
CisKKyAgICAgICAgaXNVbnNldCA9IHRydWU7CisgICAgfQorCisgICAgaWYgKGlzVW5zZXQpIHsK
KyAgICAgICAgaWYgKENTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KGlkKSkKKyAgICAg
ICAgICAgIGlzSW5oZXJpdCA9IHRydWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlzSW5p
dGlhbCA9IHRydWU7CisgICAgfQorCisgICAgQVNTRVJUKCFpc0luaGVyaXQgfHwgIWlzSW5pdGlh
bCk7IC8vIGlzSW5oZXJpdCAtPiAhaXNJbml0aWFsICYmIGlzSW5pdGlhbCAtPiAhaXNJbmhlcml0
CisKKyAgICBpZiAoIXN0YXRlLmFwcGx5UHJvcGVydHlUb1JlZ3VsYXJTdHlsZSgpICYmICghc3Rh
dGUuYXBwbHlQcm9wZXJ0eVRvVmlzaXRlZExpbmtTdHlsZSgpIHx8ICFpc1ZhbGlkVmlzaXRlZExp
bmtQcm9wZXJ0eShpZCkpKSB7CisgICAgICAgIC8vIExpbWl0IHRoZSBwcm9wZXJ0aWVzIHRoYXQg
Y2FuIGJlIGFwcGxpZWQgdG8gb25seSB0aGUgb25lcyBob25vcmVkIGJ5IDp2aXNpdGVkLgorICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGlzSW5oZXJpdCAmJiAhQ1NTUHJvcGVydHk6
OmlzSW5oZXJpdGVkUHJvcGVydHkoaWQpKQorICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRIYXNF
eHBsaWNpdGx5SW5oZXJpdGVkUHJvcGVydGllcygpOworCisjaWYgRU5BQkxFKENTU19QQUlOVElO
R19BUEkpCisgICAgaWYgKGlzPENTU1BhaW50SW1hZ2VWYWx1ZT4odmFsdWVUb0FwcGx5KSkgewor
ICAgICAgICBhdXRvJiBuYW1lID0gZG93bmNhc3Q8Q1NTUGFpbnRJbWFnZVZhbHVlPih2YWx1ZVRv
QXBwbHkuZ2V0KCkpLm5hbWUoKTsKKyAgICAgICAgaWYgKGF1dG8qIHBhaW50V29ya2xldCA9IG1f
c3R5bGVSZXNvbHZlci5kb2N1bWVudCgpLnBhaW50V29ya2xldEdsb2JhbFNjb3BlRm9yTmFtZShu
YW1lKSkgeworICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhwYWludFdvcmtsZXQt
PnBhaW50RGVmaW5pdGlvbkxvY2soKSk7CisgICAgICAgICAgICBpZiAoYXV0byogcmVnaXN0cmF0
aW9uID0gcGFpbnRXb3JrbGV0LT5wYWludERlZmluaXRpb25NYXAoKS5nZXQobmFtZSkpIHsKKyAg
ICAgICAgICAgICAgICBmb3IgKGF1dG8mIHByb3BlcnR5IDogcmVnaXN0cmF0aW9uLT5pbnB1dFBy
b3BlcnRpZXMpCisgICAgICAgICAgICAgICAgICAgIHN0YXRlLnN0eWxlKCktPmFkZEN1c3RvbVBh
aW50V2F0Y2hQcm9wZXJ0eShwcm9wZXJ0eSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICB9CisjZW5kaWYKKworICAgIC8vIFVzZSB0aGUgZ2VuZXJhdGVkIFN0eWxlQnVpbGRlci4KKyAg
ICBTdHlsZUJ1aWxkZXI6OmFwcGx5UHJvcGVydHkoaWQsIG1fc3R5bGVSZXNvbHZlciwgdmFsdWVU
b0FwcGx5LmdldCgpLCBpc0luaXRpYWwsIGlzSW5oZXJpdCwgY3VzdG9tUHJvcGVydHlSZWdpc3Rl
cmVkKTsKK30KKworUmVmPENTU1ZhbHVlPiBQcm9wZXJ0eUNhc2NhZGU6OnJlc29sdmVWYWx1ZShD
U1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIENTU1ZhbHVlJiB2YWx1ZSkKK3sKKyAgICBpZiAoIXZh
bHVlLmhhc1ZhcmlhYmxlUmVmZXJlbmNlcygpKQorICAgICAgICByZXR1cm4gdmFsdWU7CisgICAg
CisgICAgYXV0byB2YXJpYWJsZVZhbHVlID0gcmVzb2x2ZWRWYXJpYWJsZVZhbHVlKHByb3BlcnR5
SUQsIHZhbHVlKTsKKyAgICAvLyBJZiB0aGUgY2FzY2FkZSBoYXMgYWxyZWFkeSBhcHBsaWVkIHRo
aXMgaWQsIHRoZW4gd2UgZGV0ZWN0ZWQgYSBjeWNsZSwgYW5kIHRoaXMgdmFsdWUgc2hvdWxkIGJl
IHVuc2V0LgorICAgIGlmICghdmFyaWFibGVWYWx1ZSB8fCBtX2FwcGx5U3RhdGUuYXBwbGllZFBy
b3BlcnRpZXMuZ2V0KHByb3BlcnR5SUQpKSB7CisgICAgICAgIGlmIChDU1NQcm9wZXJ0eTo6aXNJ
bmhlcml0ZWRQcm9wZXJ0eShwcm9wZXJ0eUlEKSkKKyAgICAgICAgICAgIHJldHVybiBDU1NWYWx1
ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUluaGVyaXRlZFZhbHVlKCk7CisgICAgICAgIHJldHVy
biBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCk7
CisgICAgfQorCisgICAgcmV0dXJuICp2YXJpYWJsZVZhbHVlOworfQorCitSZWZQdHI8Q1NTVmFs
dWU+IFByb3BlcnR5Q2FzY2FkZTo6cmVzb2x2ZWRWYXJpYWJsZVZhbHVlKENTU1Byb3BlcnR5SUQg
cHJvcElELCBjb25zdCBDU1NWYWx1ZSYgdmFsdWUpCit7CisgICAgQ1NTUGFyc2VyIHBhcnNlciht
X3N0eWxlUmVzb2x2ZXIuZG9jdW1lbnQoKSk7CisgICAgcmV0dXJuIHBhcnNlci5wYXJzZVZhbHVl
V2l0aFZhcmlhYmxlUmVmZXJlbmNlcyhwcm9wSUQsIHZhbHVlLCAqdGhpcyk7Cit9CisKIH0KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5oIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNjYWRlLmgKaW5kZXggNDI4OGI5YjlkMjEuLmVl
N2ZlMTYzZTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2Nh
ZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuaApAQCAtNjAs
MjAgKzYwLDE4IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgYm9vbCBoYXNQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUlEKSBjb25zdDsKLSAgICBQcm9wZXJ0eSYgcHJvcGVydHkoQ1NTUHJvcGVydHlJRCk7
CisgICAgY29uc3QgUHJvcGVydHkmIHByb3BlcnR5KENTU1Byb3BlcnR5SUQpIGNvbnN0OwogCiAg
ICAgYm9vbCBoYXNDdXN0b21Qcm9wZXJ0eShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICBQcm9w
ZXJ0eSBjdXN0b21Qcm9wZXJ0eShjb25zdCBTdHJpbmcmKSBjb25zdDsKIAotICAgIGJvb2wgaGFz
QXBwbGllZFByb3BlcnR5KENTU1Byb3BlcnR5SUQpIGNvbnN0OwotCiAgICAgdm9pZCBhcHBseVBy
b3BlcnRpZXMoaW50IGZpcnN0UHJvcGVydHksIGludCBsYXN0UHJvcGVydHkpOwogICAgIHZvaWQg
YXBwbHlEZWZlcnJlZFByb3BlcnRpZXMoKTsKIAogICAgIHZvaWQgYXBwbHlDdXN0b21Qcm9wZXJ0
aWVzKCk7CiAgICAgdm9pZCBhcHBseUN1c3RvbVByb3BlcnR5KGNvbnN0IFN0cmluZyYgbmFtZSk7
CiAKLSAgICBQcm9wZXJ0eUNhc2NhZGUqIHByb3BlcnR5Q2FzY2FkZUZvclJvbGxiYWNrKENhc2Nh
ZGVMZXZlbCk7CisgICAgdm9pZCBhcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQsIENTU1ZhbHVl
JiwgU2VsZWN0b3JDaGVja2VyOjpMaW5rTWF0Y2hNYXNrID0gU2VsZWN0b3JDaGVja2VyOjpNYXRj
aERlZmF1bHQpOwogCiBwcml2YXRlOgogICAgIGJvb2wgYWRkTm9ybWFsTWF0Y2hlcyhDYXNjYWRl
TGV2ZWwpOwpAQCAtODQsMTcgKzgyLDIyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXREZWZlcnJl
ZChDU1NQcm9wZXJ0eUlELCBDU1NWYWx1ZSYsIHVuc2lnbmVkIGxpbmtNYXRjaFR5cGUsIENhc2Nh
ZGVMZXZlbCwgU2NvcGVPcmRpbmFsKTsKICAgICBzdGF0aWMgdm9pZCBzZXRQcm9wZXJ0eUludGVy
bmFsKFByb3BlcnR5JiwgQ1NTUHJvcGVydHlJRCwgQ1NTVmFsdWUmLCB1bnNpZ25lZCBsaW5rTWF0
Y2hUeXBlLCBDYXNjYWRlTGV2ZWwsIFNjb3BlT3JkaW5hbCk7CiAKKyAgICBjb25zdCBQcm9wZXJ0
eUNhc2NhZGUqIHByb3BlcnR5Q2FzY2FkZUZvclJvbGxiYWNrKENhc2NhZGVMZXZlbCk7CisKICAg
ICBlbnVtIEN1c3RvbVByb3BlcnR5Q3ljbGVUcmFja2luZyB7IEVuYWJsZWQgPSAwLCBEaXNhYmxl
ZCB9OwogICAgIHRlbXBsYXRlPEN1c3RvbVByb3BlcnR5Q3ljbGVUcmFja2luZyB0cmFja0N5Y2xl
cz4KICAgICB2b2lkIGFwcGx5UHJvcGVydGllc0ltcGwoaW50IGZpcnN0UHJvcGVydHksIGludCBs
YXN0UHJvcGVydHkpOwogICAgIHZvaWQgYXBwbHlQcm9wZXJ0eShjb25zdCBQcm9wZXJ0eSYpOwog
CisgICAgUmVmPENTU1ZhbHVlPiByZXNvbHZlVmFsdWUoQ1NTUHJvcGVydHlJRCwgQ1NTVmFsdWUm
KTsKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IHJlc29sdmVkVmFyaWFibGVWYWx1ZShDU1NQcm9wZXJ0
eUlELCBjb25zdCBDU1NWYWx1ZSYpOworCiAgICAgU3R5bGVSZXNvbHZlciYgbV9zdHlsZVJlc29s
dmVyOwotICAgIGNvbnN0IE1hdGNoUmVzdWx0JiBtX21hdGNoUmVzdWx0OwotICAgIEluY2x1ZGVk
UHJvcGVydGllcyBtX2luY2x1ZGVkUHJvcGVydGllczsKIAotICAgIFRleHREaXJlY3Rpb24gbV9k
aXJlY3Rpb247Ci0gICAgV3JpdGluZ01vZGUgbV93cml0aW5nTW9kZTsKKyAgICBjb25zdCBNYXRj
aFJlc3VsdCYgbV9tYXRjaFJlc3VsdDsKKyAgICBjb25zdCBJbmNsdWRlZFByb3BlcnRpZXMgbV9p
bmNsdWRlZFByb3BlcnRpZXM7CisgICAgY29uc3QgVGV4dERpcmVjdGlvbiBtX2RpcmVjdGlvbjsK
KyAgICBjb25zdCBXcml0aW5nTW9kZSBtX3dyaXRpbmdNb2RlOwogCiAgICAgUHJvcGVydHkgbV9w
cm9wZXJ0aWVzW251bUNTU1Byb3BlcnRpZXMgKyAyXTsKICAgICBzdGQ6OmJpdHNldDxudW1DU1NQ
cm9wZXJ0aWVzICsgMj4gbV9wcm9wZXJ0eUlzUHJlc2VudDsKQEAgLTExMyw4ICsxMTYsOCBAQCBw
cml2YXRlOgogCiAgICAgQXBwbHlTdGF0ZSBtX2FwcGx5U3RhdGU7CiAKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8UHJvcGVydHlDYXNjYWRlPiBtX2F1dGhvclJvbGxiYWNrQ2FzY2FkZTsKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8UHJvcGVydHlDYXNjYWRlPiBtX3VzZXJSb2xsYmFja0Nhc2NhZGU7CisgICAg
c3RkOjp1bmlxdWVfcHRyPGNvbnN0IFByb3BlcnR5Q2FzY2FkZT4gbV9hdXRob3JSb2xsYmFja0Nh
c2NhZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFByb3BlcnR5Q2FzY2FkZT4gbV91c2Vy
Um9sbGJhY2tDYXNjYWRlOwogfTsKIAogaW5saW5lIGJvb2wgUHJvcGVydHlDYXNjYWRlOjpoYXNQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkKSBjb25zdApAQCAtMTIzLDcgKzEyNiw3IEBAIGlubGlu
ZSBib29sIFByb3BlcnR5Q2FzY2FkZTo6aGFzUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCkgY29u
c3QKICAgICByZXR1cm4gbV9wcm9wZXJ0eUlzUHJlc2VudFtpZF07CiB9CiAKLWlubGluZSBQcm9w
ZXJ0eUNhc2NhZGU6OlByb3BlcnR5JiBQcm9wZXJ0eUNhc2NhZGU6OnByb3BlcnR5KENTU1Byb3Bl
cnR5SUQgaWQpCitpbmxpbmUgY29uc3QgUHJvcGVydHlDYXNjYWRlOjpQcm9wZXJ0eSYgUHJvcGVy
dHlDYXNjYWRlOjpwcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkKSBjb25zdAogewogICAgIHJldHVy
biBtX3Byb3BlcnRpZXNbaWRdOwogfQpAQCAtMTM4LDEwICsxNDEsNSBAQCBpbmxpbmUgUHJvcGVy
dHlDYXNjYWRlOjpQcm9wZXJ0eSBQcm9wZXJ0eUNhc2NhZGU6OmN1c3RvbVByb3BlcnR5KGNvbnN0
IFN0cmluZyYgbgogICAgIHJldHVybiBtX2N1c3RvbVByb3BlcnRpZXMuZ2V0KG5hbWUpOwogfQog
Ci1pbmxpbmUgYm9vbCBQcm9wZXJ0eUNhc2NhZGU6Omhhc0FwcGxpZWRQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SUQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fYXBwbHlTdGF0ZS5hcHBs
aWVkUHJvcGVydGllcy5nZXQocHJvcGVydHlJRCk7Ci19Ci0KIH0KIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>