<?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>203455</bug_id>
          
          <creation_ts>2019-10-26 01:57:11 -0700</creation_ts>
          <short_desc>Build cascade in PropertyCascade constructor</short_desc>
          <delta_ts>2019-10-26 05:48:27 -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>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1584213</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-26 01:57:11 -0700</bug_when>
    <thetext>And other cleanups.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584217</commentid>
    <comment_count>1</comment_count>
      <attachid>382009</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-26 02:52:57 -0700</bug_when>
    <thetext>Created attachment 382009
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584219</commentid>
    <comment_count>2</comment_count>
      <attachid>382010</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-26 04:05:12 -0700</bug_when>
    <thetext>Created attachment 382010
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584224</commentid>
    <comment_count>3</comment_count>
      <attachid>382010</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-26 05:47:11 -0700</bug_when>
    <thetext>Comment on attachment 382010
patch

Clearing flags on attachment: 382010

Committed r251632: &lt;https://trac.webkit.org/changeset/251632&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584225</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-26 05:47:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584226</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-26 05:48:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/56645210&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382009</attachid>
            <date>2019-10-26 02:52:57 -0700</date>
            <delta_ts>2019-10-26 04:05:12 -0700</delta_ts>
            <desc>patch</desc>
            <filename>propertycascade-constructor.patch</filename>
            <type>text/plain</type>
            <size>18711</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhMzc2OWQwMjRiMS4uYjg4NjhhNmJiMWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxOS0xMC0yNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgQnVpbGQgY2FzY2FkZSBpbiBQcm9wZXJ0eUNhc2NhZGUgY29uc3RydWN0b3IK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQ1NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluc3RlYWQg
b2YgY2FsbGluZyBhZGROb3JtYWxNYXRjaGVzL2FkZEltcG9ydGFudE1hdGNoZXMgc2V2ZXJhbCB0
aW1lcywgY2xpZW50cyBub3cgc2ltcGx5CisgICAgICAgIHBhc3MgdGhlIGRlc2lyZWQgY2FzY2Fk
ZSBsZXZlbHMgdG8gdGhlIGNvbnN0cnVjdG9yLgorCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JLZXlmcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpzdHlsZUZvclBhZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwbHlNYXRjaGVkUHJvcGVydGllcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5VG9DdXJyZW50U3R5
bGUpOgorICAgICAgICAqIHN0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjpQcm9wZXJ0eUNhc2NhZGUpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6YWRkTWF0Y2gpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6YWRkTm9ybWFsTWF0Y2hlcyk6CisKKyAgICAg
ICAgUmV0dXJuIGlmIHRoZXJlIHdlcmUgYW55IGltcG9ydGFudCBtYXRjaGVzIHNvIHdlIG1heSBz
a2lwIHRoZSBzdGVwIGxhdGVyLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UHJvcGVydHlD
YXNjYWRlOjphZGRJbXBvcnRhbnRNYXRjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpQ
cm9wZXJ0eUNhc2NhZGU6OmFwcGx5RGVmZXJyZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpQcm9wZXJ0eUNhc2NhZGU6OmFwcGx5UHJvcGVydGllc0ltcGwpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6cHJvcGVydHlDYXNjYWRlRm9yUm9s
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6YXBwbHlQ
cm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjpQcm9w
ZXJ0eTo6YXBwbHkpOiBEZWxldGVkLgorCisgICAgICAgIEFsc28gbWFrZSB0aGlzIFByb3BlcnR5
Q2FzY2FkZTo6YXBwbHlQcm9wZXJ0eQorCisgICAgICAgICogc3R5bGUvUHJvcGVydHlDYXNjYWRl
Lmg6CisKIDIwMTktMTAtMjUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgU3VwcG9ydCBmb3IgY2FsbGJhY2tzIGZvciBtYW5pZmVzdCBldmVudHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCAxZjg2YmQ3ZTMxMi4uNDRhOWEyMjdk
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTM3MiwxMCArMzcyLDcg
QEAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvcktl
eWZyYW1lKGNvbnN0IFJlbmRlclN0eWxlKgogICAgIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlOwog
ICAgIGV4dHJhY3REaXJlY3Rpb25BbmRXcml0aW5nTW9kZSgqc3RhdGUuc3R5bGUoKSwgcmVzdWx0
LCBkaXJlY3Rpb24sIHdyaXRpbmdNb2RlKTsKIAotICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gYm90
aGVyIHdpdGggIWltcG9ydGFudC4gU2luY2UgdGhlcmUgaXMgb25seSBldmVyIG9uZQotICAgIC8v
IGRlY2wsIHRoZXJlJ3Mgbm90aGluZyB0byBvdmVycmlkZS4gU28ganVzdCBhZGQgdGhlIGZpcnN0
IHByb3BlcnRpZXMuCi0gICAgU3R5bGU6OlByb3BlcnR5Q2FzY2FkZSBjYXNjYWRlKCp0aGlzLCBy
ZXN1bHQsIGRpcmVjdGlvbiwgd3JpdGluZ01vZGUpOwotICAgIGNhc2NhZGUuYWRkTm9ybWFsTWF0
Y2hlcyhTdHlsZTo6Q2FzY2FkZUxldmVsOjpBdXRob3IpOworICAgIFN0eWxlOjpQcm9wZXJ0eUNh
c2NhZGUgY2FzY2FkZSgqdGhpcywgcmVzdWx0LCB7IFN0eWxlOjpDYXNjYWRlTGV2ZWw6OkF1dGhv
ciB9LCBkaXJlY3Rpb24sIHdyaXRpbmdNb2RlKTsKIAogICAgIGNhc2NhZGUuYXBwbHlQcm9wZXJ0
aWVzKGZpcnN0Q1NTUHJvcGVydHksIGxhc3RIaWdoUHJpb3JpdHlQcm9wZXJ0eSk7CiAKQEAgLTU3
OSw4ICs1NzYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6
OnN0eWxlRm9yUGFnZShpbnQgcGFnZUluZGV4KQogICAgIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2Rl
OwogICAgIGV4dHJhY3REaXJlY3Rpb25BbmRXcml0aW5nTW9kZSgqbV9zdGF0ZS5zdHlsZSgpLCBy
ZXN1bHQsIGRpcmVjdGlvbiwgd3JpdGluZ01vZGUpOwogCi0gICAgU3R5bGU6OlByb3BlcnR5Q2Fz
Y2FkZSBjYXNjYWRlKCp0aGlzLCByZXN1bHQsIGRpcmVjdGlvbiwgd3JpdGluZ01vZGUpOwotICAg
IGNhc2NhZGUuYWRkTm9ybWFsTWF0Y2hlcyhTdHlsZTo6Q2FzY2FkZUxldmVsOjpBdXRob3IpOwor
ICAgIFN0eWxlOjpQcm9wZXJ0eUNhc2NhZGUgY2FzY2FkZSgqdGhpcywgcmVzdWx0LCB7IFN0eWxl
OjpDYXNjYWRlTGV2ZWw6OkF1dGhvciB9LCBkaXJlY3Rpb24sIHdyaXRpbmdNb2RlKTsKIAogICAg
IGNhc2NhZGUuYXBwbHlQcm9wZXJ0aWVzKGZpcnN0Q1NTUHJvcGVydHksIGxhc3RIaWdoUHJpb3Jp
dHlQcm9wZXJ0eSk7CiAKQEAgLTEzNDksNyArMTM0NSw4IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6
YXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQsIGNv
bnN0CiB7CiAgICAgU3RhdGUmIHN0YXRlID0gbV9zdGF0ZTsKICAgICB1bnNpZ25lZCBjYWNoZUhh
c2ggPSBzaG91bGRVc2VNYXRjaGVkUHJvcGVydGllc0NhY2hlICYmIG1hdGNoUmVzdWx0LmlzQ2Fj
aGVhYmxlID8gY29tcHV0ZU1hdGNoZWRQcm9wZXJ0aWVzSGFzaChtYXRjaFJlc3VsdCkgOiAwOwot
ICAgIGJvb2wgYXBwbHlJbmhlcml0ZWRPbmx5ID0gZmFsc2U7CisgICAgYXV0byBpbmNsdWRlZFBy
b3BlcnRpZXMgPSBTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjpJbmNsdWRlZFByb3BlcnRpZXM6OkFs
bDsKKwogICAgIGNvbnN0IE1hdGNoZWRQcm9wZXJ0aWVzQ2FjaGVJdGVtKiBjYWNoZUl0ZW0gPSBu
dWxscHRyOwogICAgIGlmIChjYWNoZUhhc2ggJiYgKGNhY2hlSXRlbSA9IGZpbmRGcm9tTWF0Y2hl
ZFByb3BlcnRpZXNDYWNoZShjYWNoZUhhc2gsIG1hdGNoUmVzdWx0KSkKICAgICAgICAgJiYgaXND
YWNoZWFibGVJbk1hdGNoZWRQcm9wZXJ0aWVzQ2FjaGUoZWxlbWVudCwgc3RhdGUuc3R5bGUoKSwg
c3RhdGUucGFyZW50U3R5bGUoKSkpIHsKQEAgLTEzNjcsNyArMTM2NCw3IEBAIHZvaWQgU3R5bGVS
ZXNvbHZlcjo6YXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hS
ZXN1bHQsIGNvbnN0CiAgICAgICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRJbnNpZGVMaW5rKGxp
bmtTdGF0dXMpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGFwcGx5
SW5oZXJpdGVkT25seSA9IHRydWU7IAorICAgICAgICBpbmNsdWRlZFByb3BlcnRpZXMgPSBTdHls
ZTo6UHJvcGVydHlDYXNjYWRlOjpJbmNsdWRlZFByb3BlcnRpZXM6OkluaGVyaXRlZE9ubHk7CiAg
ICAgfQogCiAgICAgLy8gRGlyZWN0aW9uYWwgcHJvcGVydGllcyAoKi1iZWZvcmUvYWZ0ZXIpIGFy
ZSBhbGlhc2VzIHRoYXQgZGVwZW5kIG9uIHRoZSBUZXh0RGlyZWN0aW9uIGFuZCBXcml0aW5nTW9k
ZS4KQEAgLTEzODEsOSArMTM3OCw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlNYXRjaGVk
UHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQsIGNvbnN0CiAgICAgICAg
IC8vIEZpbmQgb3V0IGlmIHRoZXJlJ3MgYSAtd2Via2l0LWFwcGVhcmFuY2UgcHJvcGVydHkgaW4g
ZWZmZWN0IGZyb20gdGhlIFVBIHNoZWV0LgogICAgICAgICAvLyBJZiBzbywgd2UgY2FjaGUgdGhl
IGJvcmRlciBhbmQgYmFja2dyb3VuZCBzdHlsZXMgc28gdGhhdCBSZW5kZXJUaGVtZTo6YWRqdXN0
U3R5bGUoKQogICAgICAgICAvLyBjYW4gbG9vayBhdCB0aGVtIGxhdGVyIHRvIGZpZ3VyZSBvdXQg
aWYgdGhpcyBpcyBhIHN0eWxlZCBmb3JtIGNvbnRyb2wgb3Igbm90LgotICAgICAgICBTdHlsZTo6
UHJvcGVydHlDYXNjYWRlIGNhc2NhZGUoKnRoaXMsIG1hdGNoUmVzdWx0LCBkaXJlY3Rpb24sIHdy
aXRpbmdNb2RlKTsKLSAgICAgICAgY2FzY2FkZS5hZGROb3JtYWxNYXRjaGVzKFN0eWxlOjpDYXNj
YWRlTGV2ZWw6OlVzZXJBZ2VudCwgYXBwbHlJbmhlcml0ZWRPbmx5KTsKLSAgICAgICAgY2FzY2Fk
ZS5hZGRJbXBvcnRhbnRNYXRjaGVzKFN0eWxlOjpDYXNjYWRlTGV2ZWw6OlVzZXJBZ2VudCwgYXBw
bHlJbmhlcml0ZWRPbmx5KTsKKyAgICAgICAgU3R5bGU6OlByb3BlcnR5Q2FzY2FkZSBjYXNjYWRl
KCp0aGlzLCBtYXRjaFJlc3VsdCwgeyBTdHlsZTo6Q2FzY2FkZUxldmVsOjpVc2VyQWdlbnQgfSwg
ZGlyZWN0aW9uLCB3cml0aW5nTW9kZSwgaW5jbHVkZWRQcm9wZXJ0aWVzKTsKIAogICAgICAgICBj
YXNjYWRlLmFwcGx5UHJvcGVydGllcyhDU1NQcm9wZXJ0eVdlYmtpdFJ1YnlQb3NpdGlvbiwgQ1NT
UHJvcGVydHlXZWJraXRSdWJ5UG9zaXRpb24pOwogICAgICAgICBhZGp1c3RTdHlsZUZvckludGVy
Q2hhcmFjdGVyUnVieSgpOwpAQCAtMTQwNiwxMyArMTQwMSw3IEBAIHZvaWQgU3R5bGVSZXNvbHZl
cjo6YXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQs
IGNvbnN0CiAgICAgICAgIHN0YXRlLmNhY2hlQm9yZGVyQW5kQmFja2dyb3VuZCgpOwogICAgIH0K
IAotICAgIFN0eWxlOjpQcm9wZXJ0eUNhc2NhZGUgY2FzY2FkZSgqdGhpcywgbWF0Y2hSZXN1bHQs
IGRpcmVjdGlvbiwgd3JpdGluZ01vZGUpOwotICAgIGNhc2NhZGUuYWRkTm9ybWFsTWF0Y2hlcyhT
dHlsZTo6Q2FzY2FkZUxldmVsOjpVc2VyQWdlbnQsIGFwcGx5SW5oZXJpdGVkT25seSk7Ci0gICAg
Y2FzY2FkZS5hZGROb3JtYWxNYXRjaGVzKFN0eWxlOjpDYXNjYWRlTGV2ZWw6OlVzZXIsIGFwcGx5
SW5oZXJpdGVkT25seSk7Ci0gICAgY2FzY2FkZS5hZGROb3JtYWxNYXRjaGVzKFN0eWxlOjpDYXNj
YWRlTGV2ZWw6OkF1dGhvciwgYXBwbHlJbmhlcml0ZWRPbmx5KTsKLSAgICBjYXNjYWRlLmFkZElt
cG9ydGFudE1hdGNoZXMoU3R5bGU6OkNhc2NhZGVMZXZlbDo6QXV0aG9yLCBhcHBseUluaGVyaXRl
ZE9ubHkpOwotICAgIGNhc2NhZGUuYWRkSW1wb3J0YW50TWF0Y2hlcyhTdHlsZTo6Q2FzY2FkZUxl
dmVsOjpVc2VyLCBhcHBseUluaGVyaXRlZE9ubHkpOwotICAgIGNhc2NhZGUuYWRkSW1wb3J0YW50
TWF0Y2hlcyhTdHlsZTo6Q2FzY2FkZUxldmVsOjpVc2VyQWdlbnQsIGFwcGx5SW5oZXJpdGVkT25s
eSk7CisgICAgU3R5bGU6OlByb3BlcnR5Q2FzY2FkZSBjYXNjYWRlKCp0aGlzLCBtYXRjaFJlc3Vs
dCwgU3R5bGU6OmFsbENhc2NhZGVMZXZlbHMsIGRpcmVjdGlvbiwgd3JpdGluZ01vZGUsIGluY2x1
ZGVkUHJvcGVydGllcyk7CiAKICAgICBjYXNjYWRlLmFwcGx5UHJvcGVydGllcyhDU1NQcm9wZXJ0
eVdlYmtpdFJ1YnlQb3NpdGlvbiwgQ1NTUHJvcGVydHlXZWJraXRSdWJ5UG9zaXRpb24pOwogICAg
IGFkanVzdFN0eWxlRm9ySW50ZXJDaGFyYWN0ZXJSdWJ5KCk7CkBAIC0xNDY1LDcgKzE0NTQsNyBA
QCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHlUb1N0eWxlKENTU1Byb3BlcnR5SUQg
aWQsIENTU1ZhbHVlKiB2YWx1ZSwgc3RkOgogdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3Bl
cnR5VG9DdXJyZW50U3R5bGUoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogewog
ICAgIE1hdGNoUmVzdWx0IG1hdGNoUmVzdWx0OwotICAgIFN0eWxlOjpQcm9wZXJ0eUNhc2NhZGUg
Y2FzY2FkZSgqdGhpcywgbWF0Y2hSZXN1bHQsIHsgfSwgeyB9KTsKKyAgICBTdHlsZTo6UHJvcGVy
dHlDYXNjYWRlIGNhc2NhZGUoKnRoaXMsIG1hdGNoUmVzdWx0LCB7IH0sIHsgfSwgeyB9KTsKICAg
ICBpZiAodmFsdWUpCiAgICAgICAgIGFwcGx5UHJvcGVydHkoaWQsIHZhbHVlLCBjYXNjYWRlKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwCmluZGV4IDcxNWIwZjE2
OGRiLi41M2YyNTk0YjNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVy
dHlDYXNjYWRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUu
Y3BwCkBAIC0xNDAsMTIgKzE0MCwyNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZEN1ZVN0
eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCkKIH0KICNlbmRpZgogCi1Qcm9wZXJ0eUNhc2Nh
ZGU6OlByb3BlcnR5Q2FzY2FkZShTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBjb25zdCBN
YXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQsIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uLCBXcml0aW5n
TW9kZSB3cml0aW5nTW9kZSkKK1Byb3BlcnR5Q2FzY2FkZTo6UHJvcGVydHlDYXNjYWRlKFN0eWxl
UmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIGNvbnN0IE1hdGNoUmVzdWx0JiBtYXRjaFJlc3VsdCwg
T3B0aW9uU2V0PENhc2NhZGVMZXZlbD4gY2FzY2FkZUxldmVscywgVGV4dERpcmVjdGlvbiBkaXJl
Y3Rpb24sIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBJbmNsdWRlZFByb3BlcnRpZXMgaW5jbHVk
ZWRQcm9wZXJ0aWVzKQogICAgIDogbV9zdHlsZVJlc29sdmVyKHN0eWxlUmVzb2x2ZXIpCiAgICAg
LCBtX21hdGNoUmVzdWx0KG1hdGNoUmVzdWx0KQorICAgICwgbV9pbmNsdWRlZFByb3BlcnRpZXMo
aW5jbHVkZWRQcm9wZXJ0aWVzKQogICAgICwgbV9kaXJlY3Rpb24oZGlyZWN0aW9uKQogICAgICwg
bV93cml0aW5nTW9kZSh3cml0aW5nTW9kZSkKIHsKKyAgICBPcHRpb25TZXQ8Q2FzY2FkZUxldmVs
PiBjYXNjYWRlTGV2ZWxzV2l0aEltcG9ydGFudDsKKworICAgIGZvciAoYXV0byBjYXNjYWRlTGV2
ZWwgOiBjYXNjYWRlTGV2ZWxzKSB7CisgICAgICAgIGJvb2wgaGFzSW1wb3J0YW50ID0gYWRkTm9y
bWFsTWF0Y2hlcyhjYXNjYWRlTGV2ZWwpOworICAgICAgICBpZiAoaGFzSW1wb3J0YW50KQorICAg
ICAgICAgICAgY2FzY2FkZUxldmVsc1dpdGhJbXBvcnRhbnQuYWRkKGNhc2NhZGVMZXZlbCk7Cisg
ICAgfQorCisgICAgZm9yIChhdXRvIGNhc2NhZGVMZXZlbCA6IHsgQ2FzY2FkZUxldmVsOjpBdXRo
b3IsIENhc2NhZGVMZXZlbDo6VXNlciwgQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQgfSkgeworICAg
ICAgICBpZiAoIWNhc2NhZGVMZXZlbHNXaXRoSW1wb3J0YW50LmNvbnRhaW5zKGNhc2NhZGVMZXZl
bCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYWRkSW1wb3J0YW50TWF0Y2hlcyhj
YXNjYWRlTGV2ZWwpOworICAgIH0KIH0KIAogUHJvcGVydHlDYXNjYWRlOjp+UHJvcGVydHlDYXNj
YWRlKCkgPSBkZWZhdWx0OwpAQCAtMjA5LDE2ICsyMjMsMjEgQEAgdm9pZCBQcm9wZXJ0eUNhc2Nh
ZGU6OnNldERlZmVycmVkKENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlJiBjc3NWYWx1ZSwgdW5z
aWduZWQKIH0KIAogCi12b2lkIFByb3BlcnR5Q2FzY2FkZTo6YWRkTWF0Y2goY29uc3QgTWF0Y2hl
ZFByb3BlcnRpZXMmIG1hdGNoZWRQcm9wZXJ0aWVzLCBDYXNjYWRlTGV2ZWwgY2FzY2FkZUxldmVs
LCBib29sIGlzSW1wb3J0YW50LCBib29sIGluaGVyaXRlZE9ubHkpCitib29sIFByb3BlcnR5Q2Fz
Y2FkZTo6YWRkTWF0Y2goY29uc3QgTWF0Y2hlZFByb3BlcnRpZXMmIG1hdGNoZWRQcm9wZXJ0aWVz
LCBDYXNjYWRlTGV2ZWwgY2FzY2FkZUxldmVsLCBib29sIGltcG9ydGFudCkKIHsKICAgICBhdXRv
JiBzdHlsZVByb3BlcnRpZXMgPSAqbWF0Y2hlZFByb3BlcnRpZXMucHJvcGVydGllczsKICAgICBh
dXRvIHByb3BlcnR5V2hpdGVsaXN0VHlwZSA9IHN0YXRpY19jYXN0PFByb3BlcnR5V2hpdGVsaXN0
VHlwZT4obWF0Y2hlZFByb3BlcnRpZXMud2hpdGVsaXN0VHlwZSk7CisgICAgYm9vbCBoYXNJbXBv
cnRhbnRQcm9wZXJ0aWVzID0gZmFsc2U7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBjb3Vu
dCA9IHN0eWxlUHJvcGVydGllcy5wcm9wZXJ0eUNvdW50KCk7IGkgPCBjb3VudDsgKytpKSB7CiAg
ICAgICAgIGF1dG8gY3VycmVudCA9IHN0eWxlUHJvcGVydGllcy5wcm9wZXJ0eUF0KGkpOwotICAg
ICAgICBpZiAoaXNJbXBvcnRhbnQgIT0gY3VycmVudC5pc0ltcG9ydGFudCgpKQorCisgICAgICAg
IGlmIChjdXJyZW50LmlzSW1wb3J0YW50KCkpCisgICAgICAgICAgICBoYXNJbXBvcnRhbnRQcm9w
ZXJ0aWVzID0gdHJ1ZTsKKyAgICAgICAgaWYgKGltcG9ydGFudCAhPSBjdXJyZW50LmlzSW1wb3J0
YW50KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKGluaGVyaXRlZE9ubHkg
JiYgIWN1cnJlbnQuaXNJbmhlcml0ZWQoKSkgeworCisgICAgICAgIGlmIChtX2luY2x1ZGVkUHJv
cGVydGllcyA9PSBJbmNsdWRlZFByb3BlcnRpZXM6OkluaGVyaXRlZE9ubHkgJiYgIWN1cnJlbnQu
aXNJbmhlcml0ZWQoKSkgewogICAgICAgICAgICAgLy8gSW5oZXJpdGVkIG9ubHkgbW9kZSBpcyB1
c2VkIGFmdGVyIG1hdGNoZWQgcHJvcGVydGllcyBjYWNoZSBoaXQuCiAgICAgICAgICAgICAvLyBB
IG1hdGNoIHdpdGggYSB2YWx1ZSB0aGF0IGlzIGV4cGxpY2l0bHkgaW5oZXJpdGVkIHNob3VsZCBu
ZXZlciBoYXZlIGJlZW4gY2FjaGVkLgogICAgICAgICAgICAgQVNTRVJUKCFjdXJyZW50LnZhbHVl
KCktPmlzSW5oZXJpdGVkVmFsdWUoKSk7CkBAIC0yMzgsNiArMjU3LDggQEAgdm9pZCBQcm9wZXJ0
eUNhc2NhZGU6OmFkZE1hdGNoKGNvbnN0IE1hdGNoZWRQcm9wZXJ0aWVzJiBtYXRjaGVkUHJvcGVy
dGllcywgQ2FzY2EKICAgICAgICAgZWxzZQogICAgICAgICAgICAgc2V0KHByb3BlcnR5SUQsICpj
dXJyZW50LnZhbHVlKCksIG1hdGNoZWRQcm9wZXJ0aWVzLmxpbmtNYXRjaFR5cGUsIGNhc2NhZGVM
ZXZlbCwgbWF0Y2hlZFByb3BlcnRpZXMuc3R5bGVTY29wZU9yZGluYWwpOwogICAgIH0KKworICAg
IHJldHVybiBoYXNJbXBvcnRhbnRQcm9wZXJ0aWVzOwogfQogCiBzdGF0aWMgYXV0byYgZGVjbGFy
YXRpb25zRm9yQ2FzY2FkZUxldmVsKGNvbnN0IE1hdGNoUmVzdWx0JiBtYXRjaFJlc3VsdCwgQ2Fz
Y2FkZUxldmVsIGNhc2NhZGVMZXZlbCkKQEAgLTI1MSwxMCArMjcyLDEzIEBAIHN0YXRpYyBhdXRv
JiBkZWNsYXJhdGlvbnNGb3JDYXNjYWRlTGV2ZWwoY29uc3QgTWF0Y2hSZXN1bHQmIG1hdGNoUmVz
dWx0LCBDYXNjYWRlCiAgICAgcmV0dXJuIG1hdGNoUmVzdWx0LmF1dGhvckRlY2xhcmF0aW9uczsK
IH0KIAotdm9pZCBQcm9wZXJ0eUNhc2NhZGU6OmFkZE5vcm1hbE1hdGNoZXMoQ2FzY2FkZUxldmVs
IGNhc2NhZGVMZXZlbCwgYm9vbCBpbmhlcml0ZWRPbmx5KQorYm9vbCBQcm9wZXJ0eUNhc2NhZGU6
OmFkZE5vcm1hbE1hdGNoZXMoQ2FzY2FkZUxldmVsIGNhc2NhZGVMZXZlbCkKIHsKKyAgICBib29s
IGhhc0ltcG9ydGFudCA9IGZhbHNlOwogICAgIGZvciAoYXV0byYgbWF0Y2hlZERlY2xhcmF0aW9u
cyA6IGRlY2xhcmF0aW9uc0ZvckNhc2NhZGVMZXZlbChtX21hdGNoUmVzdWx0LCBjYXNjYWRlTGV2
ZWwpKQotICAgICAgICBhZGRNYXRjaChtYXRjaGVkRGVjbGFyYXRpb25zLCBjYXNjYWRlTGV2ZWws
IGZhbHNlLCBpbmhlcml0ZWRPbmx5KTsKKyAgICAgICAgaGFzSW1wb3J0YW50IHw9IGFkZE1hdGNo
KG1hdGNoZWREZWNsYXJhdGlvbnMsIGNhc2NhZGVMZXZlbCwgZmFsc2UpOworCisgICAgcmV0dXJu
IGhhc0ltcG9ydGFudDsKIH0KIAogc3RhdGljIGJvb2wgaGFzSW1wb3J0YW50UHJvcGVydGllcyhj
b25zdCBTdHlsZVByb3BlcnRpZXMmIHByb3BlcnRpZXMpCkBAIC0yNjYsNyArMjkwLDcgQEAgc3Rh
dGljIGJvb2wgaGFzSW1wb3J0YW50UHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMmIHBy
b3BlcnRpZXMpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFByb3BlcnR5Q2FzY2FkZTo6
YWRkSW1wb3J0YW50TWF0Y2hlcyhDYXNjYWRlTGV2ZWwgY2FzY2FkZUxldmVsLCBib29sIGluaGVy
aXRlZE9ubHkpCit2b2lkIFByb3BlcnR5Q2FzY2FkZTo6YWRkSW1wb3J0YW50TWF0Y2hlcyhDYXNj
YWRlTGV2ZWwgY2FzY2FkZUxldmVsKQogewogICAgIHN0cnVjdCBJbmRleEFuZE9yZGluYWwgewog
ICAgICAgICB1bnNpZ25lZCBpbmRleDsKQEAgLTMwMSwxMyArMzI1LDEzIEBAIHZvaWQgUHJvcGVy
dHlDYXNjYWRlOjphZGRJbXBvcnRhbnRNYXRjaGVzKENhc2NhZGVMZXZlbCBjYXNjYWRlTGV2ZWws
IGJvb2wgaW5oZXJpCiAgICAgfQogCiAgICAgZm9yIChhdXRvJiBtYXRjaCA6IGltcG9ydGFudE1h
dGNoZXMpCi0gICAgICAgIGFkZE1hdGNoKG1hdGNoZWREZWNsYXJhdGlvbnNbbWF0Y2guaW5kZXhd
LCBjYXNjYWRlTGV2ZWwsIHRydWUsIGluaGVyaXRlZE9ubHkpOworICAgICAgICBhZGRNYXRjaCht
YXRjaGVkRGVjbGFyYXRpb25zW21hdGNoLmluZGV4XSwgY2FzY2FkZUxldmVsLCB0cnVlKTsKIH0K
IAogdm9pZCBQcm9wZXJ0eUNhc2NhZGU6OmFwcGx5RGVmZXJyZWRQcm9wZXJ0aWVzKCkKIHsKICAg
ICBmb3IgKGF1dG8mIHByb3BlcnR5IDogbV9kZWZlcnJlZFByb3BlcnRpZXMpCi0gICAgICAgIHBy
b3BlcnR5LmFwcGx5KCp0aGlzKTsKKyAgICAgICAgYXBwbHlQcm9wZXJ0eShwcm9wZXJ0eSk7CiB9
CiAKIHZvaWQgUHJvcGVydHlDYXNjYWRlOjphcHBseVByb3BlcnRpZXMoaW50IGZpcnN0UHJvcGVy
dHksIGludCBsYXN0UHJvcGVydHkpCkBAIC0zMzksMTQgKzM2MywxNCBAQCBpbmxpbmUgdm9pZCBQ
cm9wZXJ0eUNhc2NhZGU6OmFwcGx5UHJvcGVydGllc0ltcGwoaW50IGZpcnN0UHJvcGVydHksIGlu
dCBsYXN0UHJvcAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBtX2FwcGx5U3RhdGUuaW5Q
cm9ncmVzc1Byb3BlcnRpZXMuc2V0KHByb3BlcnR5SUQpOwotICAgICAgICAgICAgcHJvcGVydHku
YXBwbHkoKnRoaXMpOworICAgICAgICAgICAgYXBwbHlQcm9wZXJ0eShwcm9wZXJ0eSk7CiAgICAg
ICAgICAgICBtX2FwcGx5U3RhdGUuYXBwbGllZFByb3BlcnRpZXMuc2V0KHByb3BlcnR5SUQpOwog
ICAgICAgICAgICAgbV9hcHBseVN0YXRlLmluUHJvZ3Jlc3NQcm9wZXJ0aWVzLnNldChwcm9wZXJ0
eUlELCBmYWxzZSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAg
IC8vIElmIHdlIGRvbid0IGhhdmUgYW55IGN1c3RvbSBwcm9wZXJ0aWVzLCB0aGVuIHRoZXJlIGNh
bid0IGJlIGFueSBjeWNsZXMuCi0gICAgICAgIHByb3BlcnR5LmFwcGx5KCp0aGlzKTsKKyAgICAg
ICAgYXBwbHlQcm9wZXJ0eShwcm9wZXJ0eSk7CiAgICAgfQogfQogCkBAIC00MzMsMjMgKzQ1Nywx
NSBAQCBQcm9wZXJ0eUNhc2NhZGUqIFByb3BlcnR5Q2FzY2FkZTo6cHJvcGVydHlDYXNjYWRlRm9y
Um9sbGJhY2soQ2FzY2FkZUxldmVsIGNhc2NhZAogICAgIHN3aXRjaCAoY2FzY2FkZUxldmVsKSB7
CiAgICAgY2FzZSBDYXNjYWRlTGV2ZWw6OkF1dGhvcjoKICAgICAgICAgaWYgKCFtX2F1dGhvclJv
bGxiYWNrQ2FzY2FkZSkgewotICAgICAgICAgICAgbV9hdXRob3JSb2xsYmFja0Nhc2NhZGUgPSBt
YWtlVW5pcXVlPFByb3BlcnR5Q2FzY2FkZT4obV9zdHlsZVJlc29sdmVyLCBtX21hdGNoUmVzdWx0
LCBtX2RpcmVjdGlvbiwgbV93cml0aW5nTW9kZSk7Ci0KLSAgICAgICAgICAgIC8vIFRoaXMgc3Bl
Y2lhbCByb2xsYmFjayBjYXNjYWRlIGNvbnRhaW5zIFVBIHJ1bGVzIGFuZCB1c2VyIHJ1bGVzIGJ1
dCBubyBhdXRob3IgcnVsZXMuCi0gICAgICAgICAgICBtX2F1dGhvclJvbGxiYWNrQ2FzY2FkZS0+
YWRkTm9ybWFsTWF0Y2hlcyhDYXNjYWRlTGV2ZWw6OlVzZXJBZ2VudCwgZmFsc2UpOwotICAgICAg
ICAgICAgbV9hdXRob3JSb2xsYmFja0Nhc2NhZGUtPmFkZE5vcm1hbE1hdGNoZXMoQ2FzY2FkZUxl
dmVsOjpVc2VyLCBmYWxzZSk7Ci0gICAgICAgICAgICBtX2F1dGhvclJvbGxiYWNrQ2FzY2FkZS0+
YWRkSW1wb3J0YW50TWF0Y2hlcyhDYXNjYWRlTGV2ZWw6OlVzZXIsIGZhbHNlKTsKLSAgICAgICAg
ICAgIG1fYXV0aG9yUm9sbGJhY2tDYXNjYWRlLT5hZGRJbXBvcnRhbnRNYXRjaGVzKENhc2NhZGVM
ZXZlbDo6VXNlckFnZW50LCBmYWxzZSk7CisgICAgICAgICAgICBhdXRvIGNhc2NhZGVMZXZlbHMg
PSBPcHRpb25TZXQ8Q2FzY2FkZUxldmVsPiB7IENhc2NhZGVMZXZlbDo6VXNlckFnZW50LCBDYXNj
YWRlTGV2ZWw6OlVzZXIgfTsKKyAgICAgICAgICAgIG1fYXV0aG9yUm9sbGJhY2tDYXNjYWRlID0g
bWFrZVVuaXF1ZTxQcm9wZXJ0eUNhc2NhZGU+KG1fc3R5bGVSZXNvbHZlciwgbV9tYXRjaFJlc3Vs
dCwgY2FzY2FkZUxldmVscywgbV9kaXJlY3Rpb24sIG1fd3JpdGluZ01vZGUsIG1faW5jbHVkZWRQ
cm9wZXJ0aWVzKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9hdXRob3JSb2xsYmFja0Nh
c2NhZGUuZ2V0KCk7CiAKICAgICBjYXNlIENhc2NhZGVMZXZlbDo6VXNlcjoKICAgICAgICAgaWYg
KCFtX3VzZXJSb2xsYmFja0Nhc2NhZGUpIHsKLSAgICAgICAgICAgIG1fdXNlclJvbGxiYWNrQ2Fz
Y2FkZSA9IG1ha2VVbmlxdWU8UHJvcGVydHlDYXNjYWRlPihtX3N0eWxlUmVzb2x2ZXIsIG1fbWF0
Y2hSZXN1bHQsIG1fZGlyZWN0aW9uLCBtX3dyaXRpbmdNb2RlKTsKLQotICAgICAgICAgICAgLy8g
VGhpcyBzcGVjaWFsIHJvbGxiYWNrIGNhc2NhZGUgY29udGFpbnMgb25seSBVQSBydWxlcy4KLSAg
ICAgICAgICAgIG1fdXNlclJvbGxiYWNrQ2FzY2FkZS0+YWRkTm9ybWFsTWF0Y2hlcyhDYXNjYWRl
TGV2ZWw6OlVzZXJBZ2VudCwgZmFsc2UpOwotICAgICAgICAgICAgbV91c2VyUm9sbGJhY2tDYXNj
YWRlLT5hZGRJbXBvcnRhbnRNYXRjaGVzKENhc2NhZGVMZXZlbDo6VXNlckFnZW50LCBmYWxzZSk7
CisgICAgICAgICAgICBhdXRvIGNhc2NhZGVMZXZlbHMgPSBPcHRpb25TZXQ8Q2FzY2FkZUxldmVs
PiB7IENhc2NhZGVMZXZlbDo6VXNlckFnZW50IH07CisgICAgICAgICAgICBtX3VzZXJSb2xsYmFj
a0Nhc2NhZGUgPSBtYWtlVW5pcXVlPFByb3BlcnR5Q2FzY2FkZT4obV9zdHlsZVJlc29sdmVyLCBt
X21hdGNoUmVzdWx0LCBjYXNjYWRlTGV2ZWxzLCBtX2RpcmVjdGlvbiwgbV93cml0aW5nTW9kZSwg
bV9pbmNsdWRlZFByb3BlcnRpZXMpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3VzZXJS
b2xsYmFja0Nhc2NhZGUuZ2V0KCk7CiAKQEAgLTQ2MCwzMiArNDc2LDMxIEBAIFByb3BlcnR5Q2Fz
Y2FkZSogUHJvcGVydHlDYXNjYWRlOjpwcm9wZXJ0eUNhc2NhZGVGb3JSb2xsYmFjayhDYXNjYWRl
TGV2ZWwgY2FzY2FkCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgUHJvcGVydHlDYXNj
YWRlOjpQcm9wZXJ0eTo6YXBwbHkoUHJvcGVydHlDYXNjYWRlJiBjYXNjYWRlKQoraW5saW5lIHZv
aWQgUHJvcGVydHlDYXNjYWRlOjphcHBseVByb3BlcnR5KGNvbnN0IFByb3BlcnR5JiBwcm9wZXJ0
eSkKIHsKLSAgICBhdXRvJiByZXNvbHZlciA9IGNhc2NhZGUuc3R5bGVSZXNvbHZlcigpOwotICAg
IFN0eWxlUmVzb2x2ZXI6OlN0YXRlJiBzdGF0ZSA9IHJlc29sdmVyLnN0YXRlKCk7Ci0gICAgc3Rh
dGUuc2V0Q2FzY2FkZUxldmVsKGxldmVsKTsKLSAgICBzdGF0ZS5zZXRTdHlsZVNjb3BlT3JkaW5h
bChzdHlsZVNjb3BlT3JkaW5hbCk7CisgICAgU3R5bGVSZXNvbHZlcjo6U3RhdGUmIHN0YXRlID0g
bV9zdHlsZVJlc29sdmVyLnN0YXRlKCk7CisgICAgc3RhdGUuc2V0Q2FzY2FkZUxldmVsKHByb3Bl
cnR5LmxldmVsKTsKKyAgICBzdGF0ZS5zZXRTdHlsZVNjb3BlT3JkaW5hbChwcm9wZXJ0eS5zdHls
ZVNjb3BlT3JkaW5hbCk7CiAKLSAgICBpZiAoY3NzVmFsdWVbU2VsZWN0b3JDaGVja2VyOjpNYXRj
aERlZmF1bHRdKSB7CisgICAgaWYgKHByb3BlcnR5LmNzc1ZhbHVlW1NlbGVjdG9yQ2hlY2tlcjo6
TWF0Y2hEZWZhdWx0XSkgewogICAgICAgICBzdGF0ZS5zZXRBcHBseVByb3BlcnR5VG9SZWd1bGFy
U3R5bGUodHJ1ZSk7CiAgICAgICAgIHN0YXRlLnNldEFwcGx5UHJvcGVydHlUb1Zpc2l0ZWRMaW5r
U3R5bGUoZmFsc2UpOwotICAgICAgICByZXNvbHZlci5hcHBseVByb3BlcnR5KGlkLCBjc3NWYWx1
ZVtTZWxlY3RvckNoZWNrZXI6Ok1hdGNoRGVmYXVsdF0sIGNhc2NhZGUsIFNlbGVjdG9yQ2hlY2tl
cjo6TWF0Y2hEZWZhdWx0KTsKKyAgICAgICAgbV9zdHlsZVJlc29sdmVyLmFwcGx5UHJvcGVydHko
cHJvcGVydHkuaWQsIHByb3BlcnR5LmNzc1ZhbHVlW1NlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hEZWZh
dWx0XSwgKnRoaXMsIFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hEZWZhdWx0KTsKICAgICB9CiAKICAg
ICBpZiAoc3RhdGUuc3R5bGUoKS0+aW5zaWRlTGluaygpID09IEluc2lkZUxpbms6Ok5vdEluc2lk
ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGNzc1ZhbHVlW1NlbGVjdG9yQ2hlY2tlcjo6
TWF0Y2hMaW5rXSkgeworICAgIGlmIChwcm9wZXJ0eS5jc3NWYWx1ZVtTZWxlY3RvckNoZWNrZXI6
Ok1hdGNoTGlua10pIHsKICAgICAgICAgc3RhdGUuc2V0QXBwbHlQcm9wZXJ0eVRvUmVndWxhclN0
eWxlKHRydWUpOwogICAgICAgICBzdGF0ZS5zZXRBcHBseVByb3BlcnR5VG9WaXNpdGVkTGlua1N0
eWxlKGZhbHNlKTsKLSAgICAgICAgcmVzb2x2ZXIuYXBwbHlQcm9wZXJ0eShpZCwgY3NzVmFsdWVb
U2VsZWN0b3JDaGVja2VyOjpNYXRjaExpbmtdLCBjYXNjYWRlLCBTZWxlY3RvckNoZWNrZXI6Ok1h
dGNoTGluayk7CisgICAgICAgIG1fc3R5bGVSZXNvbHZlci5hcHBseVByb3BlcnR5KHByb3BlcnR5
LmlkLCBwcm9wZXJ0eS5jc3NWYWx1ZVtTZWxlY3RvckNoZWNrZXI6Ok1hdGNoTGlua10sICp0aGlz
LCBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoTGluayk7CiAgICAgfQogCi0gICAgaWYgKGNzc1ZhbHVl
W1NlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hWaXNpdGVkXSkgeworICAgIGlmIChwcm9wZXJ0eS5jc3NW
YWx1ZVtTZWxlY3RvckNoZWNrZXI6Ok1hdGNoVmlzaXRlZF0pIHsKICAgICAgICAgc3RhdGUuc2V0
QXBwbHlQcm9wZXJ0eVRvUmVndWxhclN0eWxlKGZhbHNlKTsKICAgICAgICAgc3RhdGUuc2V0QXBw
bHlQcm9wZXJ0eVRvVmlzaXRlZExpbmtTdHlsZSh0cnVlKTsKLSAgICAgICAgcmVzb2x2ZXIuYXBw
bHlQcm9wZXJ0eShpZCwgY3NzVmFsdWVbU2VsZWN0b3JDaGVja2VyOjpNYXRjaFZpc2l0ZWRdLCBj
YXNjYWRlLCBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoVmlzaXRlZCk7CisgICAgICAgIG1fc3R5bGVS
ZXNvbHZlci5hcHBseVByb3BlcnR5KHByb3BlcnR5LmlkLCBwcm9wZXJ0eS5jc3NWYWx1ZVtTZWxl
Y3RvckNoZWNrZXI6Ok1hdGNoVmlzaXRlZF0sICp0aGlzLCBTZWxlY3RvckNoZWNrZXI6Ok1hdGNo
VmlzaXRlZCk7CiAgICAgfQogCiAgICAgc3RhdGUuc2V0QXBwbHlQcm9wZXJ0eVRvUmVndWxhclN0
eWxlKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNj
YWRlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuaAppbmRleCBiZWJj
NjJmMzVlYS4uOTIyZjZjOWMzMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1By
b3BlcnR5Q2FzY2FkZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2Fk
ZS5oCkBAIC0zNiwyMiArMzYsMjMgQEAgY2xhc3MgU3R5bGVSZXNvbHZlcjsKIG5hbWVzcGFjZSBT
dHlsZSB7CiAKIGVudW0gY2xhc3MgQ2FzY2FkZUxldmVsIDogdWludDhfdCB7Ci0gICAgVXNlckFn
ZW50LAotICAgIFVzZXIsCi0gICAgQXV0aG9yCisgICAgVXNlckFnZW50ICAgPSAxIDw8IDAsCisg
ICAgVXNlciAgICAgICAgPSAxIDw8IDEsCisgICAgQXV0aG9yICAgICAgPSAxIDw8IDIKIH07CiAK
K3N0YXRpYyBjb25zdGV4cHIgT3B0aW9uU2V0PENhc2NhZGVMZXZlbD4gYWxsQ2FzY2FkZUxldmVs
cyA9IHsgU3R5bGU6OkNhc2NhZGVMZXZlbDo6VXNlckFnZW50LCBTdHlsZTo6Q2FzY2FkZUxldmVs
OjpVc2VyLCBTdHlsZTo6Q2FzY2FkZUxldmVsOjpBdXRob3IgfTsKKwogY2xhc3MgUHJvcGVydHlD
YXNjYWRlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBQcm9w
ZXJ0eUNhc2NhZGUoU3R5bGVSZXNvbHZlciYsIGNvbnN0IE1hdGNoUmVzdWx0JiwgVGV4dERpcmVj
dGlvbiwgV3JpdGluZ01vZGUpOworICAgIGVudW0gSW5jbHVkZWRQcm9wZXJ0aWVzIHsgQWxsLCBJ
bmhlcml0ZWRPbmx5IH07CisgICAgUHJvcGVydHlDYXNjYWRlKFN0eWxlUmVzb2x2ZXImLCBjb25z
dCBNYXRjaFJlc3VsdCYsIE9wdGlvblNldDxDYXNjYWRlTGV2ZWw+LCBUZXh0RGlyZWN0aW9uLCBX
cml0aW5nTW9kZSwgSW5jbHVkZWRQcm9wZXJ0aWVzID0gSW5jbHVkZWRQcm9wZXJ0aWVzOjpBbGwp
OwogICAgIH5Qcm9wZXJ0eUNhc2NhZGUoKTsKIAogICAgIFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVz
b2x2ZXIoKSB7IHJldHVybiBtX3N0eWxlUmVzb2x2ZXI7IH0KIAogICAgIHN0cnVjdCBQcm9wZXJ0
eSB7Ci0gICAgICAgIHZvaWQgYXBwbHkoUHJvcGVydHlDYXNjYWRlJik7Ci0KICAgICAgICAgQ1NT
UHJvcGVydHlJRCBpZDsKICAgICAgICAgQ2FzY2FkZUxldmVsIGxldmVsOwogICAgICAgICBTY29w
ZU9yZGluYWwgc3R5bGVTY29wZU9yZGluYWw7CkBAIC02NCw5ICs2NSw2IEBAIHB1YmxpYzoKICAg
ICBib29sIGhhc0N1c3RvbVByb3BlcnR5KGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIFByb3Bl
cnR5IGN1c3RvbVByb3BlcnR5KGNvbnN0IFN0cmluZyYpIGNvbnN0OwogCi0gICAgdm9pZCBhZGRO
b3JtYWxNYXRjaGVzKENhc2NhZGVMZXZlbCwgYm9vbCBpbmhlcml0ZWRPbmx5ID0gZmFsc2UpOwot
ICAgIHZvaWQgYWRkSW1wb3J0YW50TWF0Y2hlcyhDYXNjYWRlTGV2ZWwsIGJvb2wgaW5oZXJpdGVk
T25seSA9IGZhbHNlKTsKLQogICAgIGJvb2wgaGFzQXBwbGllZFByb3BlcnR5KENTU1Byb3BlcnR5
SUQpIGNvbnN0OwogCiAgICAgdm9pZCBhcHBseVByb3BlcnRpZXMoaW50IGZpcnN0UHJvcGVydHks
IGludCBsYXN0UHJvcGVydHkpOwpAQCAtNzgsNyArNzYsMTAgQEAgcHVibGljOgogICAgIFByb3Bl
cnR5Q2FzY2FkZSogcHJvcGVydHlDYXNjYWRlRm9yUm9sbGJhY2soQ2FzY2FkZUxldmVsKTsKIAog
cHJpdmF0ZToKLSAgICB2b2lkIGFkZE1hdGNoKGNvbnN0IE1hdGNoZWRQcm9wZXJ0aWVzJiwgQ2Fz
Y2FkZUxldmVsLCBib29sIGlzSW1wb3J0YW50LCBib29sIGluaGVyaXRlZE9ubHkpOworICAgIGJv
b2wgYWRkTm9ybWFsTWF0Y2hlcyhDYXNjYWRlTGV2ZWwpOworICAgIHZvaWQgYWRkSW1wb3J0YW50
TWF0Y2hlcyhDYXNjYWRlTGV2ZWwpOworICAgIGJvb2wgYWRkTWF0Y2goY29uc3QgTWF0Y2hlZFBy
b3BlcnRpZXMmLCBDYXNjYWRlTGV2ZWwsIGJvb2wgaW1wb3J0YW50KTsKKwogICAgIHZvaWQgc2V0
KENTU1Byb3BlcnR5SUQsIENTU1ZhbHVlJiwgdW5zaWduZWQgbGlua01hdGNoVHlwZSwgQ2FzY2Fk
ZUxldmVsLCBTY29wZU9yZGluYWwpOwogICAgIHZvaWQgc2V0RGVmZXJyZWQoQ1NTUHJvcGVydHlJ
RCwgQ1NTVmFsdWUmLCB1bnNpZ25lZCBsaW5rTWF0Y2hUeXBlLCBDYXNjYWRlTGV2ZWwsIFNjb3Bl
T3JkaW5hbCk7CiAgICAgc3RhdGljIHZvaWQgc2V0UHJvcGVydHlJbnRlcm5hbChQcm9wZXJ0eSYs
IENTU1Byb3BlcnR5SUQsIENTU1ZhbHVlJiwgdW5zaWduZWQgbGlua01hdGNoVHlwZSwgQ2FzY2Fk
ZUxldmVsLCBTY29wZU9yZGluYWwpOwpAQCAtODYsOSArODcsMTEgQEAgcHJpdmF0ZToKICAgICBl
bnVtIEN1c3RvbVByb3BlcnR5Q3ljbGVUcmFja2luZyB7IEVuYWJsZWQgPSAwLCBEaXNhYmxlZCB9
OwogICAgIHRlbXBsYXRlPEN1c3RvbVByb3BlcnR5Q3ljbGVUcmFja2luZyB0cmFja0N5Y2xlcz4K
ICAgICB2b2lkIGFwcGx5UHJvcGVydGllc0ltcGwoaW50IGZpcnN0UHJvcGVydHksIGludCBsYXN0
UHJvcGVydHkpOworICAgIHZvaWQgYXBwbHlQcm9wZXJ0eShjb25zdCBQcm9wZXJ0eSYpOwogCiAg
ICAgU3R5bGVSZXNvbHZlciYgbV9zdHlsZVJlc29sdmVyOwogICAgIGNvbnN0IE1hdGNoUmVzdWx0
JiBtX21hdGNoUmVzdWx0OworICAgIEluY2x1ZGVkUHJvcGVydGllcyBtX2luY2x1ZGVkUHJvcGVy
dGllczsKIAogICAgIFRleHREaXJlY3Rpb24gbV9kaXJlY3Rpb247CiAgICAgV3JpdGluZ01vZGUg
bV93cml0aW5nTW9kZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382010</attachid>
            <date>2019-10-26 04:05:12 -0700</date>
            <delta_ts>2019-10-26 05:47:11 -0700</delta_ts>
            <desc>patch</desc>
            <filename>propertycascade-constructor-2.patch</filename>
            <type>text/plain</type>
            <size>18724</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhMzc2OWQwMjRiMS4uYjg4NjhhNmJiMWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxOS0xMC0yNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgQnVpbGQgY2FzY2FkZSBpbiBQcm9wZXJ0eUNhc2NhZGUgY29uc3RydWN0b3IK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQ1NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluc3RlYWQg
b2YgY2FsbGluZyBhZGROb3JtYWxNYXRjaGVzL2FkZEltcG9ydGFudE1hdGNoZXMgc2V2ZXJhbCB0
aW1lcywgY2xpZW50cyBub3cgc2ltcGx5CisgICAgICAgIHBhc3MgdGhlIGRlc2lyZWQgY2FzY2Fk
ZSBsZXZlbHMgdG8gdGhlIGNvbnN0cnVjdG9yLgorCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JLZXlmcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpzdHlsZUZvclBhZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwbHlNYXRjaGVkUHJvcGVydGllcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5VG9DdXJyZW50U3R5
bGUpOgorICAgICAgICAqIHN0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjpQcm9wZXJ0eUNhc2NhZGUpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6YWRkTWF0Y2gpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6YWRkTm9ybWFsTWF0Y2hlcyk6CisKKyAgICAg
ICAgUmV0dXJuIGlmIHRoZXJlIHdlcmUgYW55IGltcG9ydGFudCBtYXRjaGVzIHNvIHdlIG1heSBz
a2lwIHRoZSBzdGVwIGxhdGVyLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UHJvcGVydHlD
YXNjYWRlOjphZGRJbXBvcnRhbnRNYXRjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpQ
cm9wZXJ0eUNhc2NhZGU6OmFwcGx5RGVmZXJyZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpQcm9wZXJ0eUNhc2NhZGU6OmFwcGx5UHJvcGVydGllc0ltcGwpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6cHJvcGVydHlDYXNjYWRlRm9yUm9s
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6YXBwbHlQ
cm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjpQcm9w
ZXJ0eTo6YXBwbHkpOiBEZWxldGVkLgorCisgICAgICAgIEFsc28gbWFrZSB0aGlzIFByb3BlcnR5
Q2FzY2FkZTo6YXBwbHlQcm9wZXJ0eQorCisgICAgICAgICogc3R5bGUvUHJvcGVydHlDYXNjYWRl
Lmg6CisKIDIwMTktMTAtMjUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgU3VwcG9ydCBmb3IgY2FsbGJhY2tzIGZvciBtYW5pZmVzdCBldmVudHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCAxZjg2YmQ3ZTMxMi4uODFjZWM5N2Q2
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTM3MiwxMCArMzcyLDcg
QEAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvcktl
eWZyYW1lKGNvbnN0IFJlbmRlclN0eWxlKgogICAgIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlOwog
ICAgIGV4dHJhY3REaXJlY3Rpb25BbmRXcml0aW5nTW9kZSgqc3RhdGUuc3R5bGUoKSwgcmVzdWx0
LCBkaXJlY3Rpb24sIHdyaXRpbmdNb2RlKTsKIAotICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gYm90
aGVyIHdpdGggIWltcG9ydGFudC4gU2luY2UgdGhlcmUgaXMgb25seSBldmVyIG9uZQotICAgIC8v
IGRlY2wsIHRoZXJlJ3Mgbm90aGluZyB0byBvdmVycmlkZS4gU28ganVzdCBhZGQgdGhlIGZpcnN0
IHByb3BlcnRpZXMuCi0gICAgU3R5bGU6OlByb3BlcnR5Q2FzY2FkZSBjYXNjYWRlKCp0aGlzLCBy
ZXN1bHQsIGRpcmVjdGlvbiwgd3JpdGluZ01vZGUpOwotICAgIGNhc2NhZGUuYWRkTm9ybWFsTWF0
Y2hlcyhTdHlsZTo6Q2FzY2FkZUxldmVsOjpBdXRob3IpOworICAgIFN0eWxlOjpQcm9wZXJ0eUNh
c2NhZGUgY2FzY2FkZSgqdGhpcywgcmVzdWx0LCB7IFN0eWxlOjpDYXNjYWRlTGV2ZWw6OkF1dGhv
ciB9LCBkaXJlY3Rpb24sIHdyaXRpbmdNb2RlKTsKIAogICAgIGNhc2NhZGUuYXBwbHlQcm9wZXJ0
aWVzKGZpcnN0Q1NTUHJvcGVydHksIGxhc3RIaWdoUHJpb3JpdHlQcm9wZXJ0eSk7CiAKQEAgLTU3
OSw4ICs1NzYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6
OnN0eWxlRm9yUGFnZShpbnQgcGFnZUluZGV4KQogICAgIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2Rl
OwogICAgIGV4dHJhY3REaXJlY3Rpb25BbmRXcml0aW5nTW9kZSgqbV9zdGF0ZS5zdHlsZSgpLCBy
ZXN1bHQsIGRpcmVjdGlvbiwgd3JpdGluZ01vZGUpOwogCi0gICAgU3R5bGU6OlByb3BlcnR5Q2Fz
Y2FkZSBjYXNjYWRlKCp0aGlzLCByZXN1bHQsIGRpcmVjdGlvbiwgd3JpdGluZ01vZGUpOwotICAg
IGNhc2NhZGUuYWRkTm9ybWFsTWF0Y2hlcyhTdHlsZTo6Q2FzY2FkZUxldmVsOjpBdXRob3IpOwor
ICAgIFN0eWxlOjpQcm9wZXJ0eUNhc2NhZGUgY2FzY2FkZSgqdGhpcywgcmVzdWx0LCB7IFN0eWxl
OjpDYXNjYWRlTGV2ZWw6OkF1dGhvciB9LCBkaXJlY3Rpb24sIHdyaXRpbmdNb2RlKTsKIAogICAg
IGNhc2NhZGUuYXBwbHlQcm9wZXJ0aWVzKGZpcnN0Q1NTUHJvcGVydHksIGxhc3RIaWdoUHJpb3Jp
dHlQcm9wZXJ0eSk7CiAKQEAgLTEzNDksNyArMTM0NSw4IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6
YXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQsIGNv
bnN0CiB7CiAgICAgU3RhdGUmIHN0YXRlID0gbV9zdGF0ZTsKICAgICB1bnNpZ25lZCBjYWNoZUhh
c2ggPSBzaG91bGRVc2VNYXRjaGVkUHJvcGVydGllc0NhY2hlICYmIG1hdGNoUmVzdWx0LmlzQ2Fj
aGVhYmxlID8gY29tcHV0ZU1hdGNoZWRQcm9wZXJ0aWVzSGFzaChtYXRjaFJlc3VsdCkgOiAwOwot
ICAgIGJvb2wgYXBwbHlJbmhlcml0ZWRPbmx5ID0gZmFsc2U7CisgICAgYXV0byBpbmNsdWRlZFBy
b3BlcnRpZXMgPSBTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjpJbmNsdWRlZFByb3BlcnRpZXM6OkFs
bDsKKwogICAgIGNvbnN0IE1hdGNoZWRQcm9wZXJ0aWVzQ2FjaGVJdGVtKiBjYWNoZUl0ZW0gPSBu
dWxscHRyOwogICAgIGlmIChjYWNoZUhhc2ggJiYgKGNhY2hlSXRlbSA9IGZpbmRGcm9tTWF0Y2hl
ZFByb3BlcnRpZXNDYWNoZShjYWNoZUhhc2gsIG1hdGNoUmVzdWx0KSkKICAgICAgICAgJiYgaXND
YWNoZWFibGVJbk1hdGNoZWRQcm9wZXJ0aWVzQ2FjaGUoZWxlbWVudCwgc3RhdGUuc3R5bGUoKSwg
c3RhdGUucGFyZW50U3R5bGUoKSkpIHsKQEAgLTEzNjcsNyArMTM2NCw3IEBAIHZvaWQgU3R5bGVS
ZXNvbHZlcjo6YXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hS
ZXN1bHQsIGNvbnN0CiAgICAgICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRJbnNpZGVMaW5rKGxp
bmtTdGF0dXMpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGFwcGx5
SW5oZXJpdGVkT25seSA9IHRydWU7IAorICAgICAgICBpbmNsdWRlZFByb3BlcnRpZXMgPSBTdHls
ZTo6UHJvcGVydHlDYXNjYWRlOjpJbmNsdWRlZFByb3BlcnRpZXM6OkluaGVyaXRlZE9ubHk7CiAg
ICAgfQogCiAgICAgLy8gRGlyZWN0aW9uYWwgcHJvcGVydGllcyAoKi1iZWZvcmUvYWZ0ZXIpIGFy
ZSBhbGlhc2VzIHRoYXQgZGVwZW5kIG9uIHRoZSBUZXh0RGlyZWN0aW9uIGFuZCBXcml0aW5nTW9k
ZS4KQEAgLTEzODEsOSArMTM3OCw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlNYXRjaGVk
UHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQsIGNvbnN0CiAgICAgICAg
IC8vIEZpbmQgb3V0IGlmIHRoZXJlJ3MgYSAtd2Via2l0LWFwcGVhcmFuY2UgcHJvcGVydHkgaW4g
ZWZmZWN0IGZyb20gdGhlIFVBIHNoZWV0LgogICAgICAgICAvLyBJZiBzbywgd2UgY2FjaGUgdGhl
IGJvcmRlciBhbmQgYmFja2dyb3VuZCBzdHlsZXMgc28gdGhhdCBSZW5kZXJUaGVtZTo6YWRqdXN0
U3R5bGUoKQogICAgICAgICAvLyBjYW4gbG9vayBhdCB0aGVtIGxhdGVyIHRvIGZpZ3VyZSBvdXQg
aWYgdGhpcyBpcyBhIHN0eWxlZCBmb3JtIGNvbnRyb2wgb3Igbm90LgotICAgICAgICBTdHlsZTo6
UHJvcGVydHlDYXNjYWRlIGNhc2NhZGUoKnRoaXMsIG1hdGNoUmVzdWx0LCBkaXJlY3Rpb24sIHdy
aXRpbmdNb2RlKTsKLSAgICAgICAgY2FzY2FkZS5hZGROb3JtYWxNYXRjaGVzKFN0eWxlOjpDYXNj
YWRlTGV2ZWw6OlVzZXJBZ2VudCwgYXBwbHlJbmhlcml0ZWRPbmx5KTsKLSAgICAgICAgY2FzY2Fk
ZS5hZGRJbXBvcnRhbnRNYXRjaGVzKFN0eWxlOjpDYXNjYWRlTGV2ZWw6OlVzZXJBZ2VudCwgYXBw
bHlJbmhlcml0ZWRPbmx5KTsKKyAgICAgICAgU3R5bGU6OlByb3BlcnR5Q2FzY2FkZSBjYXNjYWRl
KCp0aGlzLCBtYXRjaFJlc3VsdCwgeyBTdHlsZTo6Q2FzY2FkZUxldmVsOjpVc2VyQWdlbnQgfSwg
ZGlyZWN0aW9uLCB3cml0aW5nTW9kZSwgaW5jbHVkZWRQcm9wZXJ0aWVzKTsKIAogICAgICAgICBj
YXNjYWRlLmFwcGx5UHJvcGVydGllcyhDU1NQcm9wZXJ0eVdlYmtpdFJ1YnlQb3NpdGlvbiwgQ1NT
UHJvcGVydHlXZWJraXRSdWJ5UG9zaXRpb24pOwogICAgICAgICBhZGp1c3RTdHlsZUZvckludGVy
Q2hhcmFjdGVyUnVieSgpOwpAQCAtMTQwNiwxMyArMTQwMSw3IEBAIHZvaWQgU3R5bGVSZXNvbHZl
cjo6YXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQs
IGNvbnN0CiAgICAgICAgIHN0YXRlLmNhY2hlQm9yZGVyQW5kQmFja2dyb3VuZCgpOwogICAgIH0K
IAotICAgIFN0eWxlOjpQcm9wZXJ0eUNhc2NhZGUgY2FzY2FkZSgqdGhpcywgbWF0Y2hSZXN1bHQs
IGRpcmVjdGlvbiwgd3JpdGluZ01vZGUpOwotICAgIGNhc2NhZGUuYWRkTm9ybWFsTWF0Y2hlcyhT
dHlsZTo6Q2FzY2FkZUxldmVsOjpVc2VyQWdlbnQsIGFwcGx5SW5oZXJpdGVkT25seSk7Ci0gICAg
Y2FzY2FkZS5hZGROb3JtYWxNYXRjaGVzKFN0eWxlOjpDYXNjYWRlTGV2ZWw6OlVzZXIsIGFwcGx5
SW5oZXJpdGVkT25seSk7Ci0gICAgY2FzY2FkZS5hZGROb3JtYWxNYXRjaGVzKFN0eWxlOjpDYXNj
YWRlTGV2ZWw6OkF1dGhvciwgYXBwbHlJbmhlcml0ZWRPbmx5KTsKLSAgICBjYXNjYWRlLmFkZElt
cG9ydGFudE1hdGNoZXMoU3R5bGU6OkNhc2NhZGVMZXZlbDo6QXV0aG9yLCBhcHBseUluaGVyaXRl
ZE9ubHkpOwotICAgIGNhc2NhZGUuYWRkSW1wb3J0YW50TWF0Y2hlcyhTdHlsZTo6Q2FzY2FkZUxl
dmVsOjpVc2VyLCBhcHBseUluaGVyaXRlZE9ubHkpOwotICAgIGNhc2NhZGUuYWRkSW1wb3J0YW50
TWF0Y2hlcyhTdHlsZTo6Q2FzY2FkZUxldmVsOjpVc2VyQWdlbnQsIGFwcGx5SW5oZXJpdGVkT25s
eSk7CisgICAgU3R5bGU6OlByb3BlcnR5Q2FzY2FkZSBjYXNjYWRlKCp0aGlzLCBtYXRjaFJlc3Vs
dCwgU3R5bGU6OmFsbENhc2NhZGVMZXZlbHMoKSwgZGlyZWN0aW9uLCB3cml0aW5nTW9kZSwgaW5j
bHVkZWRQcm9wZXJ0aWVzKTsKIAogICAgIGNhc2NhZGUuYXBwbHlQcm9wZXJ0aWVzKENTU1Byb3Bl
cnR5V2Via2l0UnVieVBvc2l0aW9uLCBDU1NQcm9wZXJ0eVdlYmtpdFJ1YnlQb3NpdGlvbik7CiAg
ICAgYWRqdXN0U3R5bGVGb3JJbnRlckNoYXJhY3RlclJ1YnkoKTsKQEAgLTE0NjUsNyArMTQ1NCw3
IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eVRvU3R5bGUoQ1NTUHJvcGVydHlJ
RCBpZCwgQ1NTVmFsdWUqIHZhbHVlLCBzdGQ6CiB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJv
cGVydHlUb0N1cnJlbnRTdHlsZShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiB7
CiAgICAgTWF0Y2hSZXN1bHQgbWF0Y2hSZXN1bHQ7Ci0gICAgU3R5bGU6OlByb3BlcnR5Q2FzY2Fk
ZSBjYXNjYWRlKCp0aGlzLCBtYXRjaFJlc3VsdCwgeyB9LCB7IH0pOworICAgIFN0eWxlOjpQcm9w
ZXJ0eUNhc2NhZGUgY2FzY2FkZSgqdGhpcywgbWF0Y2hSZXN1bHQsIHsgfSwgeyB9LCB7IH0pOwog
ICAgIGlmICh2YWx1ZSkKICAgICAgICAgYXBwbHlQcm9wZXJ0eShpZCwgdmFsdWUsIGNhc2NhZGUp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNjYWRlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHAKaW5kZXggNzE1YjBm
MTY4ZGIuLjUzZjI1OTRiM2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9w
ZXJ0eUNhc2NhZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2Fk
ZS5jcHAKQEAgLTE0MCwxMiArMTQwLDI2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkQ3Vl
U3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkKQogfQogI2VuZGlmCiAKLVByb3BlcnR5Q2Fz
Y2FkZTo6UHJvcGVydHlDYXNjYWRlKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIGNvbnN0
IE1hdGNoUmVzdWx0JiBtYXRjaFJlc3VsdCwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24sIFdyaXRp
bmdNb2RlIHdyaXRpbmdNb2RlKQorUHJvcGVydHlDYXNjYWRlOjpQcm9wZXJ0eUNhc2NhZGUoU3R5
bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgY29uc3QgTWF0Y2hSZXN1bHQmIG1hdGNoUmVzdWx0
LCBPcHRpb25TZXQ8Q2FzY2FkZUxldmVsPiBjYXNjYWRlTGV2ZWxzLCBUZXh0RGlyZWN0aW9uIGRp
cmVjdGlvbiwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIEluY2x1ZGVkUHJvcGVydGllcyBpbmNs
dWRlZFByb3BlcnRpZXMpCiAgICAgOiBtX3N0eWxlUmVzb2x2ZXIoc3R5bGVSZXNvbHZlcikKICAg
ICAsIG1fbWF0Y2hSZXN1bHQobWF0Y2hSZXN1bHQpCisgICAgLCBtX2luY2x1ZGVkUHJvcGVydGll
cyhpbmNsdWRlZFByb3BlcnRpZXMpCiAgICAgLCBtX2RpcmVjdGlvbihkaXJlY3Rpb24pCiAgICAg
LCBtX3dyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKQogeworICAgIE9wdGlvblNldDxDYXNjYWRlTGV2
ZWw+IGNhc2NhZGVMZXZlbHNXaXRoSW1wb3J0YW50OworCisgICAgZm9yIChhdXRvIGNhc2NhZGVM
ZXZlbCA6IGNhc2NhZGVMZXZlbHMpIHsKKyAgICAgICAgYm9vbCBoYXNJbXBvcnRhbnQgPSBhZGRO
b3JtYWxNYXRjaGVzKGNhc2NhZGVMZXZlbCk7CisgICAgICAgIGlmIChoYXNJbXBvcnRhbnQpCisg
ICAgICAgICAgICBjYXNjYWRlTGV2ZWxzV2l0aEltcG9ydGFudC5hZGQoY2FzY2FkZUxldmVsKTsK
KyAgICB9CisKKyAgICBmb3IgKGF1dG8gY2FzY2FkZUxldmVsIDogeyBDYXNjYWRlTGV2ZWw6OkF1
dGhvciwgQ2FzY2FkZUxldmVsOjpVc2VyLCBDYXNjYWRlTGV2ZWw6OlVzZXJBZ2VudCB9KSB7Cisg
ICAgICAgIGlmICghY2FzY2FkZUxldmVsc1dpdGhJbXBvcnRhbnQuY29udGFpbnMoY2FzY2FkZUxl
dmVsKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBhZGRJbXBvcnRhbnRNYXRjaGVz
KGNhc2NhZGVMZXZlbCk7CisgICAgfQogfQogCiBQcm9wZXJ0eUNhc2NhZGU6On5Qcm9wZXJ0eUNh
c2NhZGUoKSA9IGRlZmF1bHQ7CkBAIC0yMDksMTYgKzIyMywyMSBAQCB2b2lkIFByb3BlcnR5Q2Fz
Y2FkZTo6c2V0RGVmZXJyZWQoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUmIGNzc1ZhbHVlLCB1
bnNpZ25lZAogfQogCiAKLXZvaWQgUHJvcGVydHlDYXNjYWRlOjphZGRNYXRjaChjb25zdCBNYXRj
aGVkUHJvcGVydGllcyYgbWF0Y2hlZFByb3BlcnRpZXMsIENhc2NhZGVMZXZlbCBjYXNjYWRlTGV2
ZWwsIGJvb2wgaXNJbXBvcnRhbnQsIGJvb2wgaW5oZXJpdGVkT25seSkKK2Jvb2wgUHJvcGVydHlD
YXNjYWRlOjphZGRNYXRjaChjb25zdCBNYXRjaGVkUHJvcGVydGllcyYgbWF0Y2hlZFByb3BlcnRp
ZXMsIENhc2NhZGVMZXZlbCBjYXNjYWRlTGV2ZWwsIGJvb2wgaW1wb3J0YW50KQogewogICAgIGF1
dG8mIHN0eWxlUHJvcGVydGllcyA9ICptYXRjaGVkUHJvcGVydGllcy5wcm9wZXJ0aWVzOwogICAg
IGF1dG8gcHJvcGVydHlXaGl0ZWxpc3RUeXBlID0gc3RhdGljX2Nhc3Q8UHJvcGVydHlXaGl0ZWxp
c3RUeXBlPihtYXRjaGVkUHJvcGVydGllcy53aGl0ZWxpc3RUeXBlKTsKKyAgICBib29sIGhhc0lt
cG9ydGFudFByb3BlcnRpZXMgPSBmYWxzZTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGNv
dW50ID0gc3R5bGVQcm9wZXJ0aWVzLnByb3BlcnR5Q291bnQoKTsgaSA8IGNvdW50OyArK2kpIHsK
ICAgICAgICAgYXV0byBjdXJyZW50ID0gc3R5bGVQcm9wZXJ0aWVzLnByb3BlcnR5QXQoaSk7Ci0g
ICAgICAgIGlmIChpc0ltcG9ydGFudCAhPSBjdXJyZW50LmlzSW1wb3J0YW50KCkpCisKKyAgICAg
ICAgaWYgKGN1cnJlbnQuaXNJbXBvcnRhbnQoKSkKKyAgICAgICAgICAgIGhhc0ltcG9ydGFudFBy
b3BlcnRpZXMgPSB0cnVlOworICAgICAgICBpZiAoaW1wb3J0YW50ICE9IGN1cnJlbnQuaXNJbXBv
cnRhbnQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoaW5oZXJpdGVkT25s
eSAmJiAhY3VycmVudC5pc0luaGVyaXRlZCgpKSB7CisKKyAgICAgICAgaWYgKG1faW5jbHVkZWRQ
cm9wZXJ0aWVzID09IEluY2x1ZGVkUHJvcGVydGllczo6SW5oZXJpdGVkT25seSAmJiAhY3VycmVu
dC5pc0luaGVyaXRlZCgpKSB7CiAgICAgICAgICAgICAvLyBJbmhlcml0ZWQgb25seSBtb2RlIGlz
IHVzZWQgYWZ0ZXIgbWF0Y2hlZCBwcm9wZXJ0aWVzIGNhY2hlIGhpdC4KICAgICAgICAgICAgIC8v
IEEgbWF0Y2ggd2l0aCBhIHZhbHVlIHRoYXQgaXMgZXhwbGljaXRseSBpbmhlcml0ZWQgc2hvdWxk
IG5ldmVyIGhhdmUgYmVlbiBjYWNoZWQuCiAgICAgICAgICAgICBBU1NFUlQoIWN1cnJlbnQudmFs
dWUoKS0+aXNJbmhlcml0ZWRWYWx1ZSgpKTsKQEAgLTIzOCw2ICsyNTcsOCBAQCB2b2lkIFByb3Bl
cnR5Q2FzY2FkZTo6YWRkTWF0Y2goY29uc3QgTWF0Y2hlZFByb3BlcnRpZXMmIG1hdGNoZWRQcm9w
ZXJ0aWVzLCBDYXNjYQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzZXQocHJvcGVydHlJRCwg
KmN1cnJlbnQudmFsdWUoKSwgbWF0Y2hlZFByb3BlcnRpZXMubGlua01hdGNoVHlwZSwgY2FzY2Fk
ZUxldmVsLCBtYXRjaGVkUHJvcGVydGllcy5zdHlsZVNjb3BlT3JkaW5hbCk7CiAgICAgfQorCisg
ICAgcmV0dXJuIGhhc0ltcG9ydGFudFByb3BlcnRpZXM7CiB9CiAKIHN0YXRpYyBhdXRvJiBkZWNs
YXJhdGlvbnNGb3JDYXNjYWRlTGV2ZWwoY29uc3QgTWF0Y2hSZXN1bHQmIG1hdGNoUmVzdWx0LCBD
YXNjYWRlTGV2ZWwgY2FzY2FkZUxldmVsKQpAQCAtMjUxLDEwICsyNzIsMTMgQEAgc3RhdGljIGF1
dG8mIGRlY2xhcmF0aW9uc0ZvckNhc2NhZGVMZXZlbChjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hS
ZXN1bHQsIENhc2NhZGUKICAgICByZXR1cm4gbWF0Y2hSZXN1bHQuYXV0aG9yRGVjbGFyYXRpb25z
OwogfQogCi12b2lkIFByb3BlcnR5Q2FzY2FkZTo6YWRkTm9ybWFsTWF0Y2hlcyhDYXNjYWRlTGV2
ZWwgY2FzY2FkZUxldmVsLCBib29sIGluaGVyaXRlZE9ubHkpCitib29sIFByb3BlcnR5Q2FzY2Fk
ZTo6YWRkTm9ybWFsTWF0Y2hlcyhDYXNjYWRlTGV2ZWwgY2FzY2FkZUxldmVsKQogeworICAgIGJv
b2wgaGFzSW1wb3J0YW50ID0gZmFsc2U7CiAgICAgZm9yIChhdXRvJiBtYXRjaGVkRGVjbGFyYXRp
b25zIDogZGVjbGFyYXRpb25zRm9yQ2FzY2FkZUxldmVsKG1fbWF0Y2hSZXN1bHQsIGNhc2NhZGVM
ZXZlbCkpCi0gICAgICAgIGFkZE1hdGNoKG1hdGNoZWREZWNsYXJhdGlvbnMsIGNhc2NhZGVMZXZl
bCwgZmFsc2UsIGluaGVyaXRlZE9ubHkpOworICAgICAgICBoYXNJbXBvcnRhbnQgfD0gYWRkTWF0
Y2gobWF0Y2hlZERlY2xhcmF0aW9ucywgY2FzY2FkZUxldmVsLCBmYWxzZSk7CisKKyAgICByZXR1
cm4gaGFzSW1wb3J0YW50OwogfQogCiBzdGF0aWMgYm9vbCBoYXNJbXBvcnRhbnRQcm9wZXJ0aWVz
KGNvbnN0IFN0eWxlUHJvcGVydGllcyYgcHJvcGVydGllcykKQEAgLTI2Niw3ICsyOTAsNyBAQCBz
dGF0aWMgYm9vbCBoYXNJbXBvcnRhbnRQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVydGllcyYg
cHJvcGVydGllcykKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUHJvcGVydHlDYXNjYWRl
OjphZGRJbXBvcnRhbnRNYXRjaGVzKENhc2NhZGVMZXZlbCBjYXNjYWRlTGV2ZWwsIGJvb2wgaW5o
ZXJpdGVkT25seSkKK3ZvaWQgUHJvcGVydHlDYXNjYWRlOjphZGRJbXBvcnRhbnRNYXRjaGVzKENh
c2NhZGVMZXZlbCBjYXNjYWRlTGV2ZWwpCiB7CiAgICAgc3RydWN0IEluZGV4QW5kT3JkaW5hbCB7
CiAgICAgICAgIHVuc2lnbmVkIGluZGV4OwpAQCAtMzAxLDEzICszMjUsMTMgQEAgdm9pZCBQcm9w
ZXJ0eUNhc2NhZGU6OmFkZEltcG9ydGFudE1hdGNoZXMoQ2FzY2FkZUxldmVsIGNhc2NhZGVMZXZl
bCwgYm9vbCBpbmhlcmkKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIG1hdGNoIDogaW1wb3J0YW50
TWF0Y2hlcykKLSAgICAgICAgYWRkTWF0Y2gobWF0Y2hlZERlY2xhcmF0aW9uc1ttYXRjaC5pbmRl
eF0sIGNhc2NhZGVMZXZlbCwgdHJ1ZSwgaW5oZXJpdGVkT25seSk7CisgICAgICAgIGFkZE1hdGNo
KG1hdGNoZWREZWNsYXJhdGlvbnNbbWF0Y2guaW5kZXhdLCBjYXNjYWRlTGV2ZWwsIHRydWUpOwog
fQogCiB2b2lkIFByb3BlcnR5Q2FzY2FkZTo6YXBwbHlEZWZlcnJlZFByb3BlcnRpZXMoKQogewog
ICAgIGZvciAoYXV0byYgcHJvcGVydHkgOiBtX2RlZmVycmVkUHJvcGVydGllcykKLSAgICAgICAg
cHJvcGVydHkuYXBwbHkoKnRoaXMpOworICAgICAgICBhcHBseVByb3BlcnR5KHByb3BlcnR5KTsK
IH0KIAogdm9pZCBQcm9wZXJ0eUNhc2NhZGU6OmFwcGx5UHJvcGVydGllcyhpbnQgZmlyc3RQcm9w
ZXJ0eSwgaW50IGxhc3RQcm9wZXJ0eSkKQEAgLTMzOSwxNCArMzYzLDE0IEBAIGlubGluZSB2b2lk
IFByb3BlcnR5Q2FzY2FkZTo6YXBwbHlQcm9wZXJ0aWVzSW1wbChpbnQgZmlyc3RQcm9wZXJ0eSwg
aW50IGxhc3RQcm9wCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG1fYXBwbHlTdGF0ZS5p
blByb2dyZXNzUHJvcGVydGllcy5zZXQocHJvcGVydHlJRCk7Ci0gICAgICAgICAgICBwcm9wZXJ0
eS5hcHBseSgqdGhpcyk7CisgICAgICAgICAgICBhcHBseVByb3BlcnR5KHByb3BlcnR5KTsKICAg
ICAgICAgICAgIG1fYXBwbHlTdGF0ZS5hcHBsaWVkUHJvcGVydGllcy5zZXQocHJvcGVydHlJRCk7
CiAgICAgICAgICAgICBtX2FwcGx5U3RhdGUuaW5Qcm9ncmVzc1Byb3BlcnRpZXMuc2V0KHByb3Bl
cnR5SUQsIGZhbHNlKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAg
ICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhbnkgY3VzdG9tIHByb3BlcnRpZXMsIHRoZW4gdGhlcmUg
Y2FuJ3QgYmUgYW55IGN5Y2xlcy4KLSAgICAgICAgcHJvcGVydHkuYXBwbHkoKnRoaXMpOworICAg
ICAgICBhcHBseVByb3BlcnR5KHByb3BlcnR5KTsKICAgICB9CiB9CiAKQEAgLTQzMywyMyArNDU3
LDE1IEBAIFByb3BlcnR5Q2FzY2FkZSogUHJvcGVydHlDYXNjYWRlOjpwcm9wZXJ0eUNhc2NhZGVG
b3JSb2xsYmFjayhDYXNjYWRlTGV2ZWwgY2FzY2FkCiAgICAgc3dpdGNoIChjYXNjYWRlTGV2ZWwp
IHsKICAgICBjYXNlIENhc2NhZGVMZXZlbDo6QXV0aG9yOgogICAgICAgICBpZiAoIW1fYXV0aG9y
Um9sbGJhY2tDYXNjYWRlKSB7Ci0gICAgICAgICAgICBtX2F1dGhvclJvbGxiYWNrQ2FzY2FkZSA9
IG1ha2VVbmlxdWU8UHJvcGVydHlDYXNjYWRlPihtX3N0eWxlUmVzb2x2ZXIsIG1fbWF0Y2hSZXN1
bHQsIG1fZGlyZWN0aW9uLCBtX3dyaXRpbmdNb2RlKTsKLQotICAgICAgICAgICAgLy8gVGhpcyBz
cGVjaWFsIHJvbGxiYWNrIGNhc2NhZGUgY29udGFpbnMgVUEgcnVsZXMgYW5kIHVzZXIgcnVsZXMg
YnV0IG5vIGF1dGhvciBydWxlcy4KLSAgICAgICAgICAgIG1fYXV0aG9yUm9sbGJhY2tDYXNjYWRl
LT5hZGROb3JtYWxNYXRjaGVzKENhc2NhZGVMZXZlbDo6VXNlckFnZW50LCBmYWxzZSk7Ci0gICAg
ICAgICAgICBtX2F1dGhvclJvbGxiYWNrQ2FzY2FkZS0+YWRkTm9ybWFsTWF0Y2hlcyhDYXNjYWRl
TGV2ZWw6OlVzZXIsIGZhbHNlKTsKLSAgICAgICAgICAgIG1fYXV0aG9yUm9sbGJhY2tDYXNjYWRl
LT5hZGRJbXBvcnRhbnRNYXRjaGVzKENhc2NhZGVMZXZlbDo6VXNlciwgZmFsc2UpOwotICAgICAg
ICAgICAgbV9hdXRob3JSb2xsYmFja0Nhc2NhZGUtPmFkZEltcG9ydGFudE1hdGNoZXMoQ2FzY2Fk
ZUxldmVsOjpVc2VyQWdlbnQsIGZhbHNlKTsKKyAgICAgICAgICAgIGF1dG8gY2FzY2FkZUxldmVs
cyA9IE9wdGlvblNldDxDYXNjYWRlTGV2ZWw+IHsgQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQsIENh
c2NhZGVMZXZlbDo6VXNlciB9OworICAgICAgICAgICAgbV9hdXRob3JSb2xsYmFja0Nhc2NhZGUg
PSBtYWtlVW5pcXVlPFByb3BlcnR5Q2FzY2FkZT4obV9zdHlsZVJlc29sdmVyLCBtX21hdGNoUmVz
dWx0LCBjYXNjYWRlTGV2ZWxzLCBtX2RpcmVjdGlvbiwgbV93cml0aW5nTW9kZSwgbV9pbmNsdWRl
ZFByb3BlcnRpZXMpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2F1dGhvclJvbGxiYWNr
Q2FzY2FkZS5nZXQoKTsKIAogICAgIGNhc2UgQ2FzY2FkZUxldmVsOjpVc2VyOgogICAgICAgICBp
ZiAoIW1fdXNlclJvbGxiYWNrQ2FzY2FkZSkgewotICAgICAgICAgICAgbV91c2VyUm9sbGJhY2tD
YXNjYWRlID0gbWFrZVVuaXF1ZTxQcm9wZXJ0eUNhc2NhZGU+KG1fc3R5bGVSZXNvbHZlciwgbV9t
YXRjaFJlc3VsdCwgbV9kaXJlY3Rpb24sIG1fd3JpdGluZ01vZGUpOwotCi0gICAgICAgICAgICAv
LyBUaGlzIHNwZWNpYWwgcm9sbGJhY2sgY2FzY2FkZSBjb250YWlucyBvbmx5IFVBIHJ1bGVzLgot
ICAgICAgICAgICAgbV91c2VyUm9sbGJhY2tDYXNjYWRlLT5hZGROb3JtYWxNYXRjaGVzKENhc2Nh
ZGVMZXZlbDo6VXNlckFnZW50LCBmYWxzZSk7Ci0gICAgICAgICAgICBtX3VzZXJSb2xsYmFja0Nh
c2NhZGUtPmFkZEltcG9ydGFudE1hdGNoZXMoQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQsIGZhbHNl
KTsKKyAgICAgICAgICAgIGF1dG8gY2FzY2FkZUxldmVscyA9IE9wdGlvblNldDxDYXNjYWRlTGV2
ZWw+IHsgQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQgfTsKKyAgICAgICAgICAgIG1fdXNlclJvbGxi
YWNrQ2FzY2FkZSA9IG1ha2VVbmlxdWU8UHJvcGVydHlDYXNjYWRlPihtX3N0eWxlUmVzb2x2ZXIs
IG1fbWF0Y2hSZXN1bHQsIGNhc2NhZGVMZXZlbHMsIG1fZGlyZWN0aW9uLCBtX3dyaXRpbmdNb2Rl
LCBtX2luY2x1ZGVkUHJvcGVydGllcyk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fdXNl
clJvbGxiYWNrQ2FzY2FkZS5nZXQoKTsKIApAQCAtNDYwLDMyICs0NzYsMzEgQEAgUHJvcGVydHlD
YXNjYWRlKiBQcm9wZXJ0eUNhc2NhZGU6OnByb3BlcnR5Q2FzY2FkZUZvclJvbGxiYWNrKENhc2Nh
ZGVMZXZlbCBjYXNjYWQKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBQcm9wZXJ0eUNh
c2NhZGU6OlByb3BlcnR5OjphcHBseShQcm9wZXJ0eUNhc2NhZGUmIGNhc2NhZGUpCitpbmxpbmUg
dm9pZCBQcm9wZXJ0eUNhc2NhZGU6OmFwcGx5UHJvcGVydHkoY29uc3QgUHJvcGVydHkmIHByb3Bl
cnR5KQogewotICAgIGF1dG8mIHJlc29sdmVyID0gY2FzY2FkZS5zdHlsZVJlc29sdmVyKCk7Ci0g
ICAgU3R5bGVSZXNvbHZlcjo6U3RhdGUmIHN0YXRlID0gcmVzb2x2ZXIuc3RhdGUoKTsKLSAgICBz
dGF0ZS5zZXRDYXNjYWRlTGV2ZWwobGV2ZWwpOwotICAgIHN0YXRlLnNldFN0eWxlU2NvcGVPcmRp
bmFsKHN0eWxlU2NvcGVPcmRpbmFsKTsKKyAgICBTdHlsZVJlc29sdmVyOjpTdGF0ZSYgc3RhdGUg
PSBtX3N0eWxlUmVzb2x2ZXIuc3RhdGUoKTsKKyAgICBzdGF0ZS5zZXRDYXNjYWRlTGV2ZWwocHJv
cGVydHkubGV2ZWwpOworICAgIHN0YXRlLnNldFN0eWxlU2NvcGVPcmRpbmFsKHByb3BlcnR5LnN0
eWxlU2NvcGVPcmRpbmFsKTsKIAotICAgIGlmIChjc3NWYWx1ZVtTZWxlY3RvckNoZWNrZXI6Ok1h
dGNoRGVmYXVsdF0pIHsKKyAgICBpZiAocHJvcGVydHkuY3NzVmFsdWVbU2VsZWN0b3JDaGVja2Vy
OjpNYXRjaERlZmF1bHRdKSB7CiAgICAgICAgIHN0YXRlLnNldEFwcGx5UHJvcGVydHlUb1JlZ3Vs
YXJTdHlsZSh0cnVlKTsKICAgICAgICAgc3RhdGUuc2V0QXBwbHlQcm9wZXJ0eVRvVmlzaXRlZExp
bmtTdHlsZShmYWxzZSk7Ci0gICAgICAgIHJlc29sdmVyLmFwcGx5UHJvcGVydHkoaWQsIGNzc1Zh
bHVlW1NlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hEZWZhdWx0XSwgY2FzY2FkZSwgU2VsZWN0b3JDaGVj
a2VyOjpNYXRjaERlZmF1bHQpOworICAgICAgICBtX3N0eWxlUmVzb2x2ZXIuYXBwbHlQcm9wZXJ0
eShwcm9wZXJ0eS5pZCwgcHJvcGVydHkuY3NzVmFsdWVbU2VsZWN0b3JDaGVja2VyOjpNYXRjaERl
ZmF1bHRdLCAqdGhpcywgU2VsZWN0b3JDaGVja2VyOjpNYXRjaERlZmF1bHQpOwogICAgIH0KIAog
ICAgIGlmIChzdGF0ZS5zdHlsZSgpLT5pbnNpZGVMaW5rKCkgPT0gSW5zaWRlTGluazo6Tm90SW5z
aWRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoY3NzVmFsdWVbU2VsZWN0b3JDaGVja2Vy
OjpNYXRjaExpbmtdKSB7CisgICAgaWYgKHByb3BlcnR5LmNzc1ZhbHVlW1NlbGVjdG9yQ2hlY2tl
cjo6TWF0Y2hMaW5rXSkgewogICAgICAgICBzdGF0ZS5zZXRBcHBseVByb3BlcnR5VG9SZWd1bGFy
U3R5bGUodHJ1ZSk7CiAgICAgICAgIHN0YXRlLnNldEFwcGx5UHJvcGVydHlUb1Zpc2l0ZWRMaW5r
U3R5bGUoZmFsc2UpOwotICAgICAgICByZXNvbHZlci5hcHBseVByb3BlcnR5KGlkLCBjc3NWYWx1
ZVtTZWxlY3RvckNoZWNrZXI6Ok1hdGNoTGlua10sIGNhc2NhZGUsIFNlbGVjdG9yQ2hlY2tlcjo6
TWF0Y2hMaW5rKTsKKyAgICAgICAgbV9zdHlsZVJlc29sdmVyLmFwcGx5UHJvcGVydHkocHJvcGVy
dHkuaWQsIHByb3BlcnR5LmNzc1ZhbHVlW1NlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hMaW5rXSwgKnRo
aXMsIFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hMaW5rKTsKICAgICB9CiAKLSAgICBpZiAoY3NzVmFs
dWVbU2VsZWN0b3JDaGVja2VyOjpNYXRjaFZpc2l0ZWRdKSB7CisgICAgaWYgKHByb3BlcnR5LmNz
c1ZhbHVlW1NlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hWaXNpdGVkXSkgewogICAgICAgICBzdGF0ZS5z
ZXRBcHBseVByb3BlcnR5VG9SZWd1bGFyU3R5bGUoZmFsc2UpOwogICAgICAgICBzdGF0ZS5zZXRB
cHBseVByb3BlcnR5VG9WaXNpdGVkTGlua1N0eWxlKHRydWUpOwotICAgICAgICByZXNvbHZlci5h
cHBseVByb3BlcnR5KGlkLCBjc3NWYWx1ZVtTZWxlY3RvckNoZWNrZXI6Ok1hdGNoVmlzaXRlZF0s
IGNhc2NhZGUsIFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hWaXNpdGVkKTsKKyAgICAgICAgbV9zdHls
ZVJlc29sdmVyLmFwcGx5UHJvcGVydHkocHJvcGVydHkuaWQsIHByb3BlcnR5LmNzc1ZhbHVlW1Nl
bGVjdG9yQ2hlY2tlcjo6TWF0Y2hWaXNpdGVkXSwgKnRoaXMsIFNlbGVjdG9yQ2hlY2tlcjo6TWF0
Y2hWaXNpdGVkKTsKICAgICB9CiAKICAgICBzdGF0ZS5zZXRBcHBseVByb3BlcnR5VG9SZWd1bGFy
U3R5bGUodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNh
c2NhZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5oCmluZGV4IGJl
YmM2MmYzNWVhLi40Mjg4YjliOWQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
UHJvcGVydHlDYXNjYWRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNj
YWRlLmgKQEAgLTM2LDIyICszNiwyMyBAQCBjbGFzcyBTdHlsZVJlc29sdmVyOwogbmFtZXNwYWNl
IFN0eWxlIHsKIAogZW51bSBjbGFzcyBDYXNjYWRlTGV2ZWwgOiB1aW50OF90IHsKLSAgICBVc2Vy
QWdlbnQsCi0gICAgVXNlciwKLSAgICBBdXRob3IKKyAgICBVc2VyQWdlbnQgICA9IDEgPDwgMCwK
KyAgICBVc2VyICAgICAgICA9IDEgPDwgMSwKKyAgICBBdXRob3IgICAgICA9IDEgPDwgMgogfTsK
IAorc3RhdGljIGNvbnN0ZXhwciBPcHRpb25TZXQ8Q2FzY2FkZUxldmVsPiBhbGxDYXNjYWRlTGV2
ZWxzKCkgeyByZXR1cm4geyBTdHlsZTo6Q2FzY2FkZUxldmVsOjpVc2VyQWdlbnQsIFN0eWxlOjpD
YXNjYWRlTGV2ZWw6OlVzZXIsIFN0eWxlOjpDYXNjYWRlTGV2ZWw6OkF1dGhvciB9OyB9CisKIGNs
YXNzIFByb3BlcnR5Q2FzY2FkZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgUHJvcGVydHlDYXNjYWRlKFN0eWxlUmVzb2x2ZXImLCBjb25zdCBNYXRjaFJlc3Vs
dCYsIFRleHREaXJlY3Rpb24sIFdyaXRpbmdNb2RlKTsKKyAgICBlbnVtIEluY2x1ZGVkUHJvcGVy
dGllcyB7IEFsbCwgSW5oZXJpdGVkT25seSB9OworICAgIFByb3BlcnR5Q2FzY2FkZShTdHlsZVJl
c29sdmVyJiwgY29uc3QgTWF0Y2hSZXN1bHQmLCBPcHRpb25TZXQ8Q2FzY2FkZUxldmVsPiwgVGV4
dERpcmVjdGlvbiwgV3JpdGluZ01vZGUsIEluY2x1ZGVkUHJvcGVydGllcyA9IEluY2x1ZGVkUHJv
cGVydGllczo6QWxsKTsKICAgICB+UHJvcGVydHlDYXNjYWRlKCk7CiAKICAgICBTdHlsZVJlc29s
dmVyJiBzdHlsZVJlc29sdmVyKCkgeyByZXR1cm4gbV9zdHlsZVJlc29sdmVyOyB9CiAKICAgICBz
dHJ1Y3QgUHJvcGVydHkgewotICAgICAgICB2b2lkIGFwcGx5KFByb3BlcnR5Q2FzY2FkZSYpOwot
CiAgICAgICAgIENTU1Byb3BlcnR5SUQgaWQ7CiAgICAgICAgIENhc2NhZGVMZXZlbCBsZXZlbDsK
ICAgICAgICAgU2NvcGVPcmRpbmFsIHN0eWxlU2NvcGVPcmRpbmFsOwpAQCAtNjQsOSArNjUsNiBA
QCBwdWJsaWM6CiAgICAgYm9vbCBoYXNDdXN0b21Qcm9wZXJ0eShjb25zdCBTdHJpbmcmKSBjb25z
dDsKICAgICBQcm9wZXJ0eSBjdXN0b21Qcm9wZXJ0eShjb25zdCBTdHJpbmcmKSBjb25zdDsKIAot
ICAgIHZvaWQgYWRkTm9ybWFsTWF0Y2hlcyhDYXNjYWRlTGV2ZWwsIGJvb2wgaW5oZXJpdGVkT25s
eSA9IGZhbHNlKTsKLSAgICB2b2lkIGFkZEltcG9ydGFudE1hdGNoZXMoQ2FzY2FkZUxldmVsLCBi
b29sIGluaGVyaXRlZE9ubHkgPSBmYWxzZSk7Ci0KICAgICBib29sIGhhc0FwcGxpZWRQcm9wZXJ0
eShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKIAogICAgIHZvaWQgYXBwbHlQcm9wZXJ0aWVzKGludCBm
aXJzdFByb3BlcnR5LCBpbnQgbGFzdFByb3BlcnR5KTsKQEAgLTc4LDcgKzc2LDEwIEBAIHB1Ymxp
YzoKICAgICBQcm9wZXJ0eUNhc2NhZGUqIHByb3BlcnR5Q2FzY2FkZUZvclJvbGxiYWNrKENhc2Nh
ZGVMZXZlbCk7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBhZGRNYXRjaChjb25zdCBNYXRjaGVkUHJv
cGVydGllcyYsIENhc2NhZGVMZXZlbCwgYm9vbCBpc0ltcG9ydGFudCwgYm9vbCBpbmhlcml0ZWRP
bmx5KTsKKyAgICBib29sIGFkZE5vcm1hbE1hdGNoZXMoQ2FzY2FkZUxldmVsKTsKKyAgICB2b2lk
IGFkZEltcG9ydGFudE1hdGNoZXMoQ2FzY2FkZUxldmVsKTsKKyAgICBib29sIGFkZE1hdGNoKGNv
bnN0IE1hdGNoZWRQcm9wZXJ0aWVzJiwgQ2FzY2FkZUxldmVsLCBib29sIGltcG9ydGFudCk7CisK
ICAgICB2b2lkIHNldChDU1NQcm9wZXJ0eUlELCBDU1NWYWx1ZSYsIHVuc2lnbmVkIGxpbmtNYXRj
aFR5cGUsIENhc2NhZGVMZXZlbCwgU2NvcGVPcmRpbmFsKTsKICAgICB2b2lkIHNldERlZmVycmVk
KENTU1Byb3BlcnR5SUQsIENTU1ZhbHVlJiwgdW5zaWduZWQgbGlua01hdGNoVHlwZSwgQ2FzY2Fk
ZUxldmVsLCBTY29wZU9yZGluYWwpOwogICAgIHN0YXRpYyB2b2lkIHNldFByb3BlcnR5SW50ZXJu
YWwoUHJvcGVydHkmLCBDU1NQcm9wZXJ0eUlELCBDU1NWYWx1ZSYsIHVuc2lnbmVkIGxpbmtNYXRj
aFR5cGUsIENhc2NhZGVMZXZlbCwgU2NvcGVPcmRpbmFsKTsKQEAgLTg2LDkgKzg3LDExIEBAIHBy
aXZhdGU6CiAgICAgZW51bSBDdXN0b21Qcm9wZXJ0eUN5Y2xlVHJhY2tpbmcgeyBFbmFibGVkID0g
MCwgRGlzYWJsZWQgfTsKICAgICB0ZW1wbGF0ZTxDdXN0b21Qcm9wZXJ0eUN5Y2xlVHJhY2tpbmcg
dHJhY2tDeWNsZXM+CiAgICAgdm9pZCBhcHBseVByb3BlcnRpZXNJbXBsKGludCBmaXJzdFByb3Bl
cnR5LCBpbnQgbGFzdFByb3BlcnR5KTsKKyAgICB2b2lkIGFwcGx5UHJvcGVydHkoY29uc3QgUHJv
cGVydHkmKTsKIAogICAgIFN0eWxlUmVzb2x2ZXImIG1fc3R5bGVSZXNvbHZlcjsKICAgICBjb25z
dCBNYXRjaFJlc3VsdCYgbV9tYXRjaFJlc3VsdDsKKyAgICBJbmNsdWRlZFByb3BlcnRpZXMgbV9p
bmNsdWRlZFByb3BlcnRpZXM7CiAKICAgICBUZXh0RGlyZWN0aW9uIG1fZGlyZWN0aW9uOwogICAg
IFdyaXRpbmdNb2RlIG1fd3JpdGluZ01vZGU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>