<?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>124213</bug_id>
          
          <creation_ts>2013-11-12 10:56:24 -0800</creation_ts>
          <short_desc>Simplify ImmutableArray creation</short_desc>
          <delta_ts>2013-11-12 11:22:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>949737</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-11-12 10:56:24 -0800</bug_when>
    <thetext>Simplify ImmutableArray creation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949742</commentid>
    <comment_count>1</comment_count>
      <attachid>216696</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-11-12 11:09:07 -0800</bug_when>
    <thetext>Created attachment 216696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949743</commentid>
    <comment_count>2</comment_count>
      <attachid>216696</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-11-12 11:12:56 -0800</bug_when>
    <thetext>Comment on attachment 216696
Patch

Shaping up pretty nicely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949751</commentid>
    <comment_count>3</comment_count>
      <attachid>216696</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-11-12 11:21:26 -0800</bug_when>
    <thetext>Comment on attachment 216696
Patch

Attachment 216696 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/22779662</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949752</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-11-12 11:22:18 -0800</bug_when>
    <thetext>Committed r159129: &lt;http://trac.webkit.org/changeset/159129&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216696</attachid>
            <date>2013-11-12 11:09:07 -0800</date>
            <delta_ts>2013-11-12 11:21:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124213-20131112110907.patch</filename>
            <type>text/plain</type>
            <size>28680</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5MTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjc2YjFhOTIzMTEyNjVl
OWQzNzFmZTRhMmUwYzQ2OWY0NDkzM2JhMy4uMjM5YjQ0MTc2NWU1YTc3NTBiNmRiYzcyMTM3YTMz
ZjVjZGExMTIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc2IEBACiAyMDEzLTExLTEyICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgU2ltcGxpZnkgSW1t
dXRhYmxlQXJyYXkgY3JlYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyNDIxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEdldCByaWQgb2YgdGhlIHZhcmlvdXMgSW1tdXRhYmxlQXJyYXk6OmFkb3B0
IGZ1bmN0aW9ucyBhbmQgaGF2ZSBhIHNpbmdsZSBjcmVhdGUgZnVuY3Rpb24gaW5zdGVhZC4KKyAg
ICAgICAgVXNlIHN0ZDo6bW92ZSB0byBhdm9pZCB1bm5lY2Vzc2FyaWx5IGNvcHlpbmcgdmVjdG9y
IGRhdGEuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tBcnJheS5jcHA6CisgICAgICAgIChX
S0FycmF5Q3JlYXRlKToKKyAgICAgICAgKFdLQXJyYXlDcmVhdGVBZG9wdGluZ1ZhbHVlcyk6Cisg
ICAgICAgICogU2hhcmVkL0NvY29hL1dLTlNBcnJheS5tbToKKyAgICAgICAgKC1bV0tOU0FycmF5
IGNvcHlXaXRoWm9uZTpdKToKKyAgICAgICAgKiBTaGFyZWQvSW1tdXRhYmxlQXJyYXkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpJbW11dGFibGVBcnJheTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6SW1tdXRhYmxlQXJyYXk6OmNyZWF0ZVN0cmluZ0FycmF5KToKKyAgICAgICAgKFdlYktpdDo6
SW1tdXRhYmxlQXJyYXk6OkltbXV0YWJsZUFycmF5KToKKyAgICAgICAgKiBTaGFyZWQvSW1tdXRh
YmxlQXJyYXkuaDoKKyAgICAgICAgKFdlYktpdDo6SW1tdXRhYmxlQXJyYXk6OmF0KToKKyAgICAg
ICAgKFdlYktpdDo6SW1tdXRhYmxlQXJyYXk6OnNpemUpOgorICAgICAgICAoV2ViS2l0OjpJbW11
dGFibGVBcnJheTo6ZW50cmllcyk6CisgICAgICAgICogU2hhcmVkL0ltbXV0YWJsZURpY3Rpb25h
cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbW11dGFibGVEaWN0aW9uYXJ5OjprZXlzKToKKyAg
ICAgICAgKiBTaGFyZWQvTXV0YWJsZUFycmF5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TXV0YWJs
ZUFycmF5OjpNdXRhYmxlQXJyYXkpOgorICAgICAgICAoV2ViS2l0OjpNdXRhYmxlQXJyYXk6OmFw
cGVuZCk6CisgICAgICAgIChXZWJLaXQ6Ok11dGFibGVBcnJheTo6cmVzZXJ2ZUNhcGFjaXR5KToK
KyAgICAgICAgKFdlYktpdDo6TXV0YWJsZUFycmF5OjpyZW1vdmVJdGVtQXRJbmRleCk6CisgICAg
ICAgICogU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnBl
cmZvcm1BUElDYWxsYmFja1dpdGhTZWN1cml0eU9yaWdpbkRhdGFWZWN0b3IpOgorICAgICAgICAq
IFNoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVzc2Fn
ZURlY29kZXI6OmJhc2VEZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJBcmNoaXZlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQXJjaGl2ZTo6c3VicmVzb3VyY2VzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQXJjaGl2ZTo6c3ViZnJhbWVBcmNoaXZlcyk6CisgICAgICAgICogU2hhcmVkL1dl
YkNvbnRleHRNZW51SXRlbS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRl
bTo6c3VibWVudUl0ZW1zQXNJbW11dGFibGVBcnJheSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFjLm1tOgorICAgICAgICAoV0tDb250ZXh0R2V0SW5m
b0Zvckluc3RhbGxlZFBsdWdJbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TdGF0aXN0aWNzUmVx
dWVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0YXRpc3RpY3NSZXF1ZXN0Ojpjb21wbGV0ZWRS
ZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0OjpiYWNrTGlzdEFzSW1tdXRhYmxlQXJy
YXlXaXRoTGltaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3Q6OmZvcndh
cmRMaXN0QXNJbW11dGFibGVBcnJheVdpdGhMaW1pdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbHVnaW5JbmZvU3Rv
cmVEaWRMb2FkUGx1Z2lucyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdl
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmRp
ZEdldERhdGFiYXNlc0J5T3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YWJhc2VNYW5h
Z2VyUHJveHk6OmRpZEdldERhdGFiYXNlT3JpZ2lucyk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpkaWRHZXRLZXlW
YWx1ZVN0b3JhZ2VPcmlnaW5zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyQ2xpZW50OjpkaWRDaGFuZ2VCYWNrRm9y
d2FyZExpc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQ6OnNob3dDb250
ZXh0TWVudSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVsYXRlZFBhZ2VzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkaWRGaW5kU3RyaW5nTWF0Y2hlcyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlOjpvcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVt
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVt
OjpjaGlsZHJlbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVQYWdlRm9ybUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZTo6Y2hpbGRGcmFtZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dHJhY2tlZFJlcGFpbnRSZWN0cyk6CisKKzIw
MTMtMTEtMTIgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAg
ICBBZGQgSW1tdXRhYmxlQXJyYXk6OmNyZWF0ZVN0cmluZ0FycmF5CiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQyMTAKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQXJyYXkuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLQXJyYXkuY3BwCmluZGV4IDViZjM1ZTNjM2VkZjcwNDVkMmU4ZmE4ZmViNzI5
ODI5M2I0NmYxNDQuLmFlZDQyN2Y5YmM2ZGZiYjFhYjEwYWYxNzgzYzVjM2IxYzAwMGEwMjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0FycmF5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tBcnJheS5jcHAKQEAgLTM4LDE0ICszOCwyNCBA
QCBXS1R5cGVJRCBXS0FycmF5R2V0VHlwZUlEKCkKIAogV0tBcnJheVJlZiBXS0FycmF5Q3JlYXRl
KFdLVHlwZVJlZiogdmFsdWVzLCBzaXplX3QgbnVtYmVyT2ZWYWx1ZXMpCiB7Ci0gICAgUmVmUHRy
PEltbXV0YWJsZUFycmF5PiBhcnJheSA9IEltbXV0YWJsZUFycmF5OjpjcmVhdGUocmVpbnRlcnBy
ZXRfY2FzdDxBUElPYmplY3QqKj4oY29uc3RfY2FzdDx2b2lkKio+KHZhbHVlcykpLCBudW1iZXJP
ZlZhbHVlcyk7Ci0gICAgcmV0dXJuIHRvQVBJKGFycmF5LnJlbGVhc2UoKS5sZWFrUmVmKCkpOwor
ICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0Pj4gZWxlbWVudHM7CisgICAgZWxlbWVudHMucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eShudW1iZXJPZlZhbHVlcyk7CisKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG51bWJlck9mVmFsdWVzOyArK2kpCisgICAgICAgIGVsZW1lbnRzLnVuY2hlY2tl
ZEFwcGVuZChjb25zdF9jYXN0PEFQSU9iamVjdCo+KHN0YXRpY19jYXN0PGNvbnN0IEFQSU9iamVj
dCo+KHZhbHVlc1tpXSkpKTsKKworICAgIHJldHVybiB0b0FQSShJbW11dGFibGVBcnJheTo6Y3Jl
YXRlKHN0ZDo6bW92ZShlbGVtZW50cykpLmxlYWtSZWYoKSk7CiB9CiAKIFdLQXJyYXlSZWYgV0tB
cnJheUNyZWF0ZUFkb3B0aW5nVmFsdWVzKFdLVHlwZVJlZiogdmFsdWVzLCBzaXplX3QgbnVtYmVy
T2ZWYWx1ZXMpCiB7Ci0gICAgUmVmUHRyPEltbXV0YWJsZUFycmF5PiBhcnJheSA9IEltbXV0YWJs
ZUFycmF5OjphZG9wdChyZWludGVycHJldF9jYXN0PEFQSU9iamVjdCoqPihjb25zdF9jYXN0PHZv
aWQqKj4odmFsdWVzKSksIG51bWJlck9mVmFsdWVzKTsKLSAgICByZXR1cm4gdG9BUEkoYXJyYXku
cmVsZWFzZSgpLmxlYWtSZWYoKSk7CisgICAgVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+PiBlbGVt
ZW50czsKKyAgICBlbGVtZW50cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG51bWJlck9mVmFsdWVz
KTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtYmVyT2ZWYWx1ZXM7ICsraSkKKyAg
ICAgICAgZWxlbWVudHMudW5jaGVja2VkQXBwZW5kKGFkb3B0UmVmKGNvbnN0X2Nhc3Q8QVBJT2Jq
ZWN0Kj4oc3RhdGljX2Nhc3Q8Y29uc3QgQVBJT2JqZWN0Kj4odmFsdWVzW2ldKSkpKTsKKworICAg
IHJldHVybiB0b0FQSShJbW11dGFibGVBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShlbGVtZW50cykp
LmxlYWtSZWYoKSk7CiB9CiAKIFdLVHlwZVJlZiBXS0FycmF5R2V0SXRlbUF0SW5kZXgoV0tBcnJh
eVJlZiBhcnJheVJlZiwgc2l6ZV90IGluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0NvY29hL1dLTlNBcnJheS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9X
S05TQXJyYXkubW0KaW5kZXggZTMyMWEzYzA3NzBmMWRmOGEwNWE2NDdmNTU2ZTg4YmVkNGQ3Yjc5
Ny4uYWUzODdiOGEyZGM4YjA2MDk1YmUwZTkwMWRiNDEzMDcwNDY5NDJjNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL1dLTlNBcnJheS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29jb2EvV0tOU0FycmF5Lm1tCkBAIC02Miw3ICs2Miw3IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAgICAgICAgIHJldHVybiBbc2VsZiByZXRhaW5dOwogCiAgICAgYXV0
byBlbnRyaWVzID0gcmVpbnRlcnByZXRfY2FzdDxJbW11dGFibGVBcnJheSo+KCZfYXJyYXkpLT5l
bnRyaWVzKCk7Ci0gICAgcmV0dXJuIEltbXV0YWJsZUFycmF5OjphZG9wdChlbnRyaWVzKS5sZWFr
UmVmKCktPndyYXBwZXIoKTsKKyAgICByZXR1cm4gSW1tdXRhYmxlQXJyYXk6OmNyZWF0ZShzdGQ6
Om1vdmUoZW50cmllcykpLmxlYWtSZWYoKS0+d3JhcHBlcigpOwogfQogCiAjcHJhZ21hIG1hcmsg
V0tPYmplY3QgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9JbW11dGFibGVBcnJheS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW1t
dXRhYmxlQXJyYXkuY3BwCmluZGV4IGY5MjM5NDM1Y2Q1OGUzMTljNGMxNWU3ZWQ3NWQ2NmViYmY3
N2Q2OWYuLmJjMDFhNjU3YmZhZDJmZGIzMGI1ZTUxYWQ3NDkxMmU2NjI3ZjVlNmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbW11dGFibGVBcnJheS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0ltbXV0YWJsZUFycmF5LmNwcApAQCAtMzAsMzggKzMwLDMwIEBACiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPEltbXV0YWJsZUFycmF5PiBJbW11dGFi
bGVBcnJheTo6Y3JlYXRlU3RyaW5nQXJyYXkoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3Mp
CitQYXNzUmVmUHRyPEltbXV0YWJsZUFycmF5PiBJbW11dGFibGVBcnJheTo6Y3JlYXRlKCkKIHsK
LSAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4+IGVsZW1lbnRzOwotICAgIGVsZW1lbnRzLnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkoc3RyaW5ncy5zaXplKCkpOwotCi0gICAgZm9yIChjb25zdCBh
dXRvJiBzdHJpbmcgOiBzdHJpbmdzKQotICAgICAgICBlbGVtZW50cy51bmNoZWNrZWRBcHBlbmQo
V2ViU3RyaW5nOjpjcmVhdGUoc3RyaW5nKSk7Ci0KLSAgICByZXR1cm4gYWRvcHQoZWxlbWVudHMp
OworICAgIHJldHVybiBjcmVhdGUoVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+PigpKTsKIH0KIAot
SW1tdXRhYmxlQXJyYXk6OkltbXV0YWJsZUFycmF5KCkKK1Bhc3NSZWZQdHI8SW1tdXRhYmxlQXJy
YXk+IEltbXV0YWJsZUFycmF5OjpjcmVhdGUoVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+PiBlbGVt
ZW50cykKIHsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEltbXV0YWJsZUFycmF5KHN0ZDo6bW92
ZShlbGVtZW50cykpKTsKIH0KIAotSW1tdXRhYmxlQXJyYXk6OkltbXV0YWJsZUFycmF5KEFkb3B0
VGFnLCBBUElPYmplY3QqKiBlbnRyaWVzLCBzaXplX3Qgc2l6ZSkKLSAgICA6IG1fZW50cmllcyhz
aXplKQorUGFzc1JlZlB0cjxJbW11dGFibGVBcnJheT4gSW1tdXRhYmxlQXJyYXk6OmNyZWF0ZVN0
cmluZ0FycmF5KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdHJpbmdzKQogewotICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBtX2VudHJpZXNbaV0gPSBhZG9wdFJl
ZihlbnRyaWVzW2ldKTsKLX0KKyAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4+IGVsZW1lbnRz
OworICAgIGVsZW1lbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc3RyaW5ncy5zaXplKCkpOwog
Ci1JbW11dGFibGVBcnJheTo6SW1tdXRhYmxlQXJyYXkoQVBJT2JqZWN0KiogZW50cmllcywgc2l6
ZV90IHNpemUpCi0gICAgOiBtX2VudHJpZXMoc2l6ZSkKLXsKLSAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9lbnRyaWVzW2ldID0gZW50cmllc1tpXTsKKyAg
ICBmb3IgKGNvbnN0IGF1dG8mIHN0cmluZyA6IHN0cmluZ3MpCisgICAgICAgIGVsZW1lbnRzLnVu
Y2hlY2tlZEFwcGVuZChXZWJTdHJpbmc6OmNyZWF0ZShzdHJpbmcpKTsKKworICAgIHJldHVybiBj
cmVhdGUoc3RkOjptb3ZlKGVsZW1lbnRzKSk7CiB9CiAKLUltbXV0YWJsZUFycmF5OjpJbW11dGFi
bGVBcnJheShWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4+JiBlbnRyaWVzKQorSW1tdXRhYmxlQXJy
YXk6OkltbXV0YWJsZUFycmF5KFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0Pj4gZWxlbWVudHMpCisg
ICAgOiBtX2VsZW1lbnRzKHN0ZDo6bW92ZShlbGVtZW50cykpCiB7Ci0gICAgbV9lbnRyaWVzLnN3
YXAoZW50cmllcyk7CiB9CiAKIEltbXV0YWJsZUFycmF5Ojp+SW1tdXRhYmxlQXJyYXkoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0ltbXV0YWJsZUFycmF5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvSW1tdXRhYmxlQXJyYXkuaAppbmRleCBkYTFlODk3YzM4ZGI0NDA0YzE4
MTljOGE2MGI1OGI3MjA1NWI1ODExLi5hN2U4ZWU5MDg5Y2IwYjcyZGM1MjVmNGYyYzcwMWY3ZGE4
ZjkyMmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW1tdXRhYmxlQXJyYXku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW1tdXRhYmxlQXJyYXkuaApAQCAtMzcsMjQg
KzM3LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEltbXV0YWJsZUFycmF5IDogcHVi
bGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZUFycmF5PiB7CiBwdWJsaWM6Ci0gICAg
ZW51bSBBZG9wdFRhZyB7IEFkb3B0IH07Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbW11dGFi
bGVBcnJheT4gY3JlYXRlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW1t
dXRhYmxlQXJyYXkpOwotICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbW11dGFibGVBcnJh
eT4gY3JlYXRlKEFQSU9iamVjdCoqIGVudHJpZXMsIHNpemVfdCBzaXplKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbW11dGFibGVBcnJheShlbnRyaWVzLCBzaXplKSk7Ci0g
ICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEltbXV0YWJsZUFycmF5PiBhZG9wdChBUElPYmpl
Y3QqKiBlbnRyaWVzLCBzaXplX3Qgc2l6ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgSW1tdXRhYmxlQXJyYXkoQWRvcHQsIGVudHJpZXMsIHNpemUpKTsKLSAgICB9Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IGFkb3B0KFZlY3RvcjxSZWZQdHI8QVBJ
T2JqZWN0Pj4mIGVudHJpZXMpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IElt
bXV0YWJsZUFycmF5KGVudHJpZXMpKTsKLSAgICB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SW1t
dXRhYmxlQXJyYXk+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEltbXV0YWJsZUFy
cmF5PiBjcmVhdGUoVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+PiBlbGVtZW50cyk7CiAKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxJbW11dGFibGVBcnJheT4gY3JlYXRlU3RyaW5nQXJyYXkoY29uc3Qg
VmVjdG9yPFN0cmluZz4mKTsKIApAQCAtNjMsMjcgKzQ3LDI0IEBAIHB1YmxpYzoKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgogICAgIFQqIGF0KHNpemVfdCBpKSBjb25zdAogICAgIHsKLSAgICAg
ICAgaWYgKG1fZW50cmllc1tpXS0+dHlwZSgpICE9IFQ6OkFQSVR5cGUpCisgICAgICAgIGlmICht
X2VsZW1lbnRzW2ldLT50eXBlKCkgIT0gVDo6QVBJVHlwZSkKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKj4obV9lbnRyaWVzW2ldLmdl
dCgpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQqPihtX2VsZW1lbnRzW2ldLmdldCgp
KTsKICAgICB9CiAKLSAgICBBUElPYmplY3QqIGF0KHNpemVfdCBpKSBjb25zdCB7IHJldHVybiBt
X2VudHJpZXNbaV0uZ2V0KCk7IH0KLSAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZW50cmllcy5zaXplKCk7IH0KKyAgICBBUElPYmplY3QqIGF0KHNpemVfdCBpKSBjb25zdCB7IHJl
dHVybiBtX2VsZW1lbnRzW2ldLmdldCgpOyB9CisgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJl
dHVybiBtX2VsZW1lbnRzLnNpemUoKTsgfQogCiAgICAgdmlydHVhbCBib29sIGlzTXV0YWJsZSgp
IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICBjb25zdCBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4+
JiBlbnRyaWVzKCkgY29uc3QgeyByZXR1cm4gbV9lbnRyaWVzOyB9Ci0gICAgVmVjdG9yPFJlZlB0
cjxBUElPYmplY3Q+PiYgZW50cmllcygpIHsgcmV0dXJuIG1fZW50cmllczsgfQorICAgIGNvbnN0
IFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0Pj4mIGVudHJpZXMoKSBjb25zdCB7IHJldHVybiBtX2Vs
ZW1lbnRzOyB9CisgICAgVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+PiYgZW50cmllcygpIHsgcmV0
dXJuIG1fZWxlbWVudHM7IH0KIAogcHJvdGVjdGVkOgotICAgIEltbXV0YWJsZUFycmF5KCk7Ci0g
ICAgSW1tdXRhYmxlQXJyYXkoQWRvcHRUYWcsIEFQSU9iamVjdCoqIGVudHJpZXMsIHNpemVfdCk7
Ci0gICAgSW1tdXRhYmxlQXJyYXkoQVBJT2JqZWN0KiogZW50cmllcywgc2l6ZV90KTsKLSAgICBJ
bW11dGFibGVBcnJheShWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4+JiBlbnRyaWVzKTsKKyAgICBJ
bW11dGFibGVBcnJheShWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4+IGVsZW1lbnRzKTsKIAotICAg
IFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0Pj4gbV9lbnRyaWVzOworICAgIFZlY3RvcjxSZWZQdHI8
QVBJT2JqZWN0Pj4gbV9lbGVtZW50czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0ltbXV0YWJsZURpY3Rpb25hcnkuY3BwIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0ltbXV0YWJsZURpY3Rpb25hcnkuY3BwCmluZGV4IGE4MTMw
Nzc2NzI0ODNhMTQ0NzU3MjJiNDU4ZGY3NDQ3YTU5OTViOWYuLmE5ODkxYWQ3NTU4NmUxZjVkYTIw
MzljYTI3Y2Y0Y2EyOTYzZWJhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9J
bW11dGFibGVEaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW1tdXRh
YmxlRGljdGlvbmFyeS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgUGFzc1JlZlB0cjxJbW11dGFibGVB
cnJheT4gSW1tdXRhYmxlRGljdGlvbmFyeTo6a2V5cygpIGNvbnN0CiAgICAgZm9yIChjb25zdCBh
dXRvJiBrZXkgOiBtX21hcC5rZXlzKCkpCiAgICAgICAgIGtleXMudW5jaGVja2VkQXBwZW5kKFdl
YlN0cmluZzo6Y3JlYXRlKGtleSkpOwogCi0gICAgcmV0dXJuIEltbXV0YWJsZUFycmF5OjphZG9w
dChrZXlzKTsKKyAgICByZXR1cm4gSW1tdXRhYmxlQXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUoa2V5
cykpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9NdXRhYmxlQXJyYXkuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL011dGFi
bGVBcnJheS5jcHAKaW5kZXggYzI5M2ZkZGQ4YjVlMmVjZDYxYTMzOGIwZmIzNzhkOGE4ZjQ5MTRm
OC4uODBiMjNmZGM0YzQyMDkwNzI1YzliODk0NTFmNmFkMWQ1ODBmNGYyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL011dGFibGVBcnJheS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL011dGFibGVBcnJheS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBNdXRhYmxlQXJyYXk6Ok11dGFibGVBcnJheSgpCisgICAgOiBJbW11dGFibGVB
cnJheShWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4+KCkpCiB7CiB9CiAKQEAgLTM4LDE3ICszOSwx
NyBAQCBNdXRhYmxlQXJyYXk6On5NdXRhYmxlQXJyYXkoKQogCiB2b2lkIE11dGFibGVBcnJheTo6
YXBwZW5kKFBhc3NSZWZQdHI8QVBJT2JqZWN0PiBpdGVtKQogewotICAgIG1fZW50cmllcy5hcHBl
bmQoaXRlbSk7CisgICAgbV9lbGVtZW50cy5hcHBlbmQoaXRlbSk7CiB9CiAKIHZvaWQgTXV0YWJs
ZUFycmF5OjpyZXNlcnZlQ2FwYWNpdHkodW5zaWduZWQgY2FwYWNpdHkpCiB7Ci0gICAgbV9lbnRy
aWVzLnJlc2VydmVDYXBhY2l0eShjYXBhY2l0eSk7CisgICAgbV9lbGVtZW50cy5yZXNlcnZlQ2Fw
YWNpdHkoY2FwYWNpdHkpOwogfQogCiB2b2lkIE11dGFibGVBcnJheTo6cmVtb3ZlSXRlbUF0SW5k
ZXgodW5zaWduZWQgaW5kZXgpCiB7Ci0gICAgbV9lbnRyaWVzLnJlbW92ZShpbmRleCk7CisgICAg
bV9lbGVtZW50cy5yZW1vdmUoaW5kZXgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuY3BwIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAKaW5kZXggOGM3OWIx
ODUwNWUwMzQ1ZTg4MzFmNjVmN2M0MDg1NDFlZDU1ZTI2Yi4uNGI2MTI1OTgwYWE5YTUyMjg2ZTdk
ZDI1NzI4NTRlZmIwMzEwYzZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nl
Y3VyaXR5T3JpZ2luRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5
T3JpZ2luRGF0YS5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBwZXJmb3JtQVBJQ2FsbGJhY2tX
aXRoU2VjdXJpdHlPcmlnaW5EYXRhVmVjdG9yKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkQK
ICAgICAgICAgc2VjdXJpdHlPcmlnaW5zLnVuY2hlY2tlZEFwcGVuZChzdGQ6Om1vdmUob3JpZ2lu
KSk7CiAgICAgfQogCi0gICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1
ZShJbW11dGFibGVBcnJheTo6YWRvcHQoc2VjdXJpdHlPcmlnaW5zKS5nZXQoKSk7CisgICAgY2Fs
bGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShJbW11dGFibGVBcnJheTo6Y3Jl
YXRlKHN0ZDo6bW92ZShzZWN1cml0eU9yaWdpbnMpKS5nZXQoKSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdl
Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaAppbmRl
eCAwMDIyZjMxMDU1ZTk0YzY4NTgwZmJhY2Q0NGRlMzZiMGY3ZDA0ZThiLi5iNTY4ZjA3MjZjNTk5
MDA5NjJhODk5MDA3MzI2NTAzZGQ0ZDIyZTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNl
ck1lc3NhZ2VDb2RlcnMuaApAQCAtMjgzLDcgKzI4Myw3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
ICAgICB2ZWN0b3IuYXBwZW5kKGVsZW1lbnQucmVsZWFzZSgpKTsKICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgY29kZXIubV9yb290ID0gSW1tdXRhYmxlQXJyYXk6OmFkb3B0KHZlY3Rvcik7
CisgICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBJbW11dGFibGVBcnJheTo6Y3JlYXRlKHN0ZDo6
bW92ZSh2ZWN0b3IpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2UgQVBJT2JqZWN0OjpUeXBlRGljdGlvbmFyeTogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkFyY2hpdmUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkFyY2hp
dmUuY3BwCmluZGV4IDJiYjhlYTNlNTJmYmFmMTMzOTkyNzA3MTFiZWNmZDdhNWFjMTc1ZDMuLjA1
MjRkNTNiNzk0OWEyMjg1NGNjMGZkNTI1OGJjNjNmNDUzNTJmY2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQXJjaGl2ZS5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCBJbW11dGFibGVBcnJheSogV2Vi
QXJjaGl2ZTo6c3VicmVzb3VyY2VzKCkKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBzdWJyZXNv
dXJjZSA6IG1fbGVnYWN5V2ViQXJjaGl2ZS0+c3VicmVzb3VyY2VzKCkpCiAgICAgICAgICAgICBz
dWJyZXNvdXJjZXMudW5jaGVja2VkQXBwZW5kKFdlYkFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKHN1
YnJlc291cmNlKSk7CiAKLSAgICAgICAgbV9jYWNoZWRTdWJyZXNvdXJjZXMgPSBJbW11dGFibGVB
cnJheTo6YWRvcHQoc3VicmVzb3VyY2VzKTsKKyAgICAgICAgbV9jYWNoZWRTdWJyZXNvdXJjZXMg
PSBJbW11dGFibGVBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShzdWJyZXNvdXJjZXMpKTsKICAgICB9
CiAKICAgICByZXR1cm4gbV9jYWNoZWRTdWJyZXNvdXJjZXMuZ2V0KCk7CkBAIC0xMjgsNyArMTI4
LDcgQEAgSW1tdXRhYmxlQXJyYXkqIFdlYkFyY2hpdmU6OnN1YmZyYW1lQXJjaGl2ZXMoKQogICAg
ICAgICBmb3IgKGNvbnN0IGF1dG8mIHN1YmZyYW1lQXJjaGl2ZSA6IG1fbGVnYWN5V2ViQXJjaGl2
ZS0+c3ViZnJhbWVBcmNoaXZlcygpKQogICAgICAgICAgICAgc3ViZnJhbWVXZWJBcmNoaXZlcy51
bmNoZWNrZWRBcHBlbmQoV2ViQXJjaGl2ZTo6Y3JlYXRlKHN0YXRpY19jYXN0PExlZ2FjeVdlYkFy
Y2hpdmUqPihzdWJmcmFtZUFyY2hpdmUuZ2V0KCkpKSk7CiAKLSAgICAgICAgbV9jYWNoZWRTdWJm
cmFtZUFyY2hpdmVzID0gSW1tdXRhYmxlQXJyYXk6OmFkb3B0KHN1YmZyYW1lV2ViQXJjaGl2ZXMp
OworICAgICAgICBtX2NhY2hlZFN1YmZyYW1lQXJjaGl2ZXMgPSBJbW11dGFibGVBcnJheTo6Y3Jl
YXRlKHN0ZDo6bW92ZShzdWJmcmFtZVdlYkFyY2hpdmVzKSk7CiAgICAgfQogCiAgICAgcmV0dXJu
IG1fY2FjaGVkU3ViZnJhbWVBcmNoaXZlcy5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvbnRleHRNZW51SXRlbS5jcHAKaW5kZXggNDZhNmQyYzEzMjczMjkyMTI4OGE4ODc1ODVj
ODk4NjVkYTNkMTA4MC4uMmJkOTVjMjE0YzUxYWI1M2JhYWU4MjU0YzUzZGNhYWY4OGFiMjI1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbS5jcHAKQEAgLTcy
LDcgKzcyLDcgQEAgUGFzc1JlZlB0cjxJbW11dGFibGVBcnJheT4gV2ViQ29udGV4dE1lbnVJdGVt
OjpzdWJtZW51SXRlbXNBc0ltbXV0YWJsZUFycmF5KCkgY28KICAgICBmb3IgKGNvbnN0IGF1dG8m
IGl0ZW0gOiBtX3dlYkNvbnRleHRNZW51SXRlbURhdGEuc3VibWVudSgpKQogICAgICAgICBzdWJt
ZW51SXRlbXMudW5jaGVja2VkQXBwZW5kKFdlYkNvbnRleHRNZW51SXRlbTo6Y3JlYXRlKGl0ZW0p
KTsKIAotICAgIHJldHVybiBJbW11dGFibGVBcnJheTo6YWRvcHQoc3VibWVudUl0ZW1zKTsKKyAg
ICByZXR1cm4gSW1tdXRhYmxlQXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUoc3VibWVudUl0ZW1zKSk7
CiB9CiAKIEFQSU9iamVjdCogV2ViQ29udGV4dE1lbnVJdGVtOjp1c2VyRGF0YSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFBy
aXZhdGVNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4
dFByaXZhdGVNYWMubW0KaW5kZXggNjEzNjNmMTM1MjM0OWM0MzE1NzQxMzkzNzBkMjM0MDZjOGI5
NWIyYy4uNzdlMDMzZGMyNDMwMTJjOWM4OTMyMzViZjc0ZDdhYTE3ZDNmN2ZiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJp
dmF0ZU1hYy5tbQpAQCAtNzksNyArNzksNyBAQCB2b2lkIFdLQ29udGV4dEdldEluZm9Gb3JJbnN0
YWxsZWRQbHVnSW5zKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS0NvbnRleHRHZXRJbgogICAg
IGZvciAoY29uc3QgYXV0byYgcGx1Z2luOiBwbHVnaW5zKQogICAgICAgICBwbHVnaW5JbmZvRGlj
dGlvbmFyaWVzLnVuY2hlY2tlZEFwcGVuZChjcmVhdGVQbHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25h
cnkocGx1Z2luKSk7CiAKLSAgICBSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IGFycmF5ID0gSW1tdXRh
YmxlQXJyYXk6OmFkb3B0KHBsdWdpbkluZm9EaWN0aW9uYXJpZXMpOworICAgIFJlZlB0cjxJbW11
dGFibGVBcnJheT4gYXJyYXkgPSBJbW11dGFibGVBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShwbHVn
aW5JbmZvRGljdGlvbmFyaWVzKSk7CiAKICAgICB0b0ltcGwoY29udGV4dFJlZiktPnJlZigpOwog
ICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF4oKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcAppbmRleCA0MWZi
MDJjZjIxY2U3OGVlMTNhN2ZhM2U5ZDc4YzE5NDE2ZDkxY2I3Li4zZWJhY2M3OTg0NDBkODAwNzM4
MzVjZDlhNzk2MjcxMTA2YWZkOGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9T
dGF0aXN0aWNzUmVxdWVzdC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBTdGF0aXN0aWNzUmVx
dWVzdDo6Y29tcGxldGVkUmVxdWVzdCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0YXRpc3Rp
Y3NEYXQKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBzdGF0aXN0aWMgOiBkYXRhLndlYkNvcmVD
YWNoZVN0YXRpc3RpY3MpCiAgICAgICAgICAgICBjYWNoZVN0YXRpc3RpY3MudW5jaGVja2VkQXBw
ZW5kKGNyZWF0ZURpY3Rpb25hcnlGcm9tSGFzaE1hcChzdGF0aXN0aWMpKTsKIAotICAgICAgICBt
X3Jlc3BvbnNlRGljdGlvbmFyeS0+c2V0KCJXZWJDb3JlQ2FjaGVTdGF0aXN0aWNzIiwgSW1tdXRh
YmxlQXJyYXk6OmFkb3B0KGNhY2hlU3RhdGlzdGljcykuZ2V0KCkpOworICAgICAgICBtX3Jlc3Bv
bnNlRGljdGlvbmFyeS0+c2V0KCJXZWJDb3JlQ2FjaGVTdGF0aXN0aWNzIiwgSW1tdXRhYmxlQXJy
YXk6OmNyZWF0ZShzdGQ6Om1vdmUoY2FjaGVTdGF0aXN0aWNzKSkuZ2V0KCkpOwogICAgIH0KIAog
ICAgIGlmIChtX291dHN0YW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCmluZGV4IDE4YzkzZWNkNGFl
MzRjNzM3YTFhMWQ3NjVkOGVmMDg2ZmU5NjIyNjkuLjQxZDZhNjQ0Y2QyY2FjMGRhNzhhM2ZkYzQy
NzAzMjJiN2ExYjA3NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJC
YWNrRm9yd2FyZExpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNr
Rm9yd2FyZExpc3QuY3BwCkBAIC0yMjEsNyArMjIxLDcgQEAgUGFzc1JlZlB0cjxJbW11dGFibGVB
cnJheT4gV2ViQmFja0ZvcndhcmRMaXN0OjpiYWNrTGlzdEFzSW1tdXRhYmxlQXJyYXlXaXRoTGlt
aXQKICAgICAgICAgdmVjdG9yLnVuY2hlY2tlZEFwcGVuZChtX2VudHJpZXNbaV0uZ2V0KCkpOwog
ICAgIH0KIAotICAgIHJldHVybiBJbW11dGFibGVBcnJheTo6YWRvcHQodmVjdG9yKTsKKyAgICBy
ZXR1cm4gSW1tdXRhYmxlQXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUodmVjdG9yKSk7CiB9CiAKIFBh
c3NSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IFdlYkJhY2tGb3J3YXJkTGlzdDo6Zm9yd2FyZExpc3RB
c0ltbXV0YWJsZUFycmF5V2l0aExpbWl0KHVuc2lnbmVkIGxpbWl0KSBjb25zdApAQCAtMjQ1LDcg
KzI0NSw3IEBAIFBhc3NSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IFdlYkJhY2tGb3J3YXJkTGlzdDo6
Zm9yd2FyZExpc3RBc0ltbXV0YWJsZUFycmF5V2l0aExpCiAgICAgICAgIHZlY3Rvci51bmNoZWNr
ZWRBcHBlbmQobV9lbnRyaWVzW2ldLmdldCgpKTsKICAgICB9CiAKLSAgICByZXR1cm4gSW1tdXRh
YmxlQXJyYXk6OmFkb3B0KHZlY3Rvcik7CisgICAgcmV0dXJuIEltbXV0YWJsZUFycmF5OjpjcmVh
dGUoc3RkOjptb3ZlKHZlY3RvcikpOwogfQogCiB2b2lkIFdlYkJhY2tGb3J3YXJkTGlzdDo6Y2xl
YXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IGVjMjBjMmQ5
ZGRiNmRiY2Y0MDRlMDFiYjMzMjlkZDU4OWQzM2JlMGQuLjY2MTc2NTBlOTE5MGFjODI4NTY5NjY1
ZGFkYjFlMjEwYmYxOWJhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAKQEAgLTEyNzIsNyArMTI3Miw3IEBAIHZvaWQgV2ViQ29udGV4dDo6cGx1Z2luSW5mb1N0b3Jl
RGlkTG9hZFBsdWdpbnMoUGx1Z2luSW5mb1N0b3JlKiBzdG9yZSkKICAgICAgICAgbWltZVR5cGVz
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocGx1Z2luTW9kdWxlLmluZm8ubWltZXMuc2l6ZSgpKTsK
ICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBtaW1lQ2xhc3NJbmZvIDogcGx1Z2luTW9kdWxlLmlu
Zm8ubWltZXMpCiAgICAgICAgICAgICBtaW1lVHlwZXMudW5jaGVja2VkQXBwZW5kKFdlYlN0cmlu
Zzo6Y3JlYXRlKG1pbWVDbGFzc0luZm8udHlwZSkpOwotICAgICAgICBtYXAuc2V0KEFTQ0lJTGl0
ZXJhbCgibWltZXMiKSwgSW1tdXRhYmxlQXJyYXk6OmFkb3B0KG1pbWVUeXBlcykpOworICAgICAg
ICBtYXAuc2V0KEFTQ0lJTGl0ZXJhbCgibWltZXMiKSwgSW1tdXRhYmxlQXJyYXk6OmNyZWF0ZShz
dGQ6Om1vdmUobWltZVR5cGVzKSkpOwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBtYXAu
c2V0KEFTQ0lJTGl0ZXJhbCgiYnVuZGxlSWQiKSwgV2ViU3RyaW5nOjpjcmVhdGUocGx1Z2luTW9k
dWxlLmJ1bmRsZUlkZW50aWZpZXIpKTsKQEAgLTEyODIsNyArMTI4Miw3IEBAIHZvaWQgV2ViQ29u
dGV4dDo6cGx1Z2luSW5mb1N0b3JlRGlkTG9hZFBsdWdpbnMoUGx1Z2luSW5mb1N0b3JlKiBzdG9y
ZSkKICAgICAgICAgcGx1Z2lucy51bmNoZWNrZWRBcHBlbmQoSW1tdXRhYmxlRGljdGlvbmFyeTo6
YWRvcHQobWFwKSk7CiAgICAgfQogCi0gICAgbV9jbGllbnQucGx1Z0luSW5mb3JtYXRpb25CZWNh
bWVBdmFpbGFibGUodGhpcywgSW1tdXRhYmxlQXJyYXk6OmFkb3B0KHBsdWdpbnMpLmdldCgpKTsK
KyAgICBtX2NsaWVudC5wbHVnSW5JbmZvcm1hdGlvbkJlY2FtZUF2YWlsYWJsZSh0aGlzLCBJbW11
dGFibGVBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShwbHVnaW5zKSkuZ2V0KCkpOwogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFn
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2Vy
UHJveHkuY3BwCmluZGV4IDhhOGNmOTlmODc4YmIxNzQ2ZDQ4MTdjMTJhYzU0ZjViMzlkNjgyNzEu
LjQzMWE1YjJkYTJhMWMxZTFiNTE2MTY0MTk5NmJjNDU3M2RiN2Q1ZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmNwcApAQCAt
MTgwLDEyICsxODAsMTIgQEAgdm9pZCBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTo6ZGlkR2V0RGF0
YWJhc2VzQnlPcmlnaW4oY29uc3QgVmVjdG9yPE9yaWdpbkFuZERhdGEKICAgICAgICAgb3JpZ2lu
QW5kRGF0YWJhc2VzTWFwLnNldChvcmlnaW5LZXkoKSwgb3JpZ2luKTsKICAgICAgICAgb3JpZ2lu
QW5kRGF0YWJhc2VzTWFwLnNldChvcmlnaW5RdW90YUtleSgpLCBXZWJVSW50NjQ6OmNyZWF0ZShv
cmlnaW5BbmREYXRhYmFzZXMub3JpZ2luUXVvdGEpKTsKICAgICAgICAgb3JpZ2luQW5kRGF0YWJh
c2VzTWFwLnNldChvcmlnaW5Vc2FnZUtleSgpLCBXZWJVSW50NjQ6OmNyZWF0ZShvcmlnaW5BbmRE
YXRhYmFzZXMub3JpZ2luVXNhZ2UpKTsKLSAgICAgICAgb3JpZ2luQW5kRGF0YWJhc2VzTWFwLnNl
dChkYXRhYmFzZURldGFpbHNLZXkoKSwgSW1tdXRhYmxlQXJyYXk6OmFkb3B0KGRhdGFiYXNlcykp
OworICAgICAgICBvcmlnaW5BbmREYXRhYmFzZXNNYXAuc2V0KGRhdGFiYXNlRGV0YWlsc0tleSgp
LCBJbW11dGFibGVBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShkYXRhYmFzZXMpKSk7CiAKICAgICAg
ICAgcmVzdWx0LnVuY2hlY2tlZEFwcGVuZChJbW11dGFibGVEaWN0aW9uYXJ5OjphZG9wdChvcmln
aW5BbmREYXRhYmFzZXNNYXApKTsKICAgICB9CiAKLSAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxi
YWNrV2l0aFJldHVyblZhbHVlKEltbXV0YWJsZUFycmF5OjphZG9wdChyZXN1bHQpLmdldCgpKTsK
KyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKEltbXV0YWJsZUFy
cmF5OjpjcmVhdGUoc3RkOjptb3ZlKHJlc3VsdCkpLmdldCgpKTsKIH0KIAogdm9pZCBXZWJEYXRh
YmFzZU1hbmFnZXJQcm94eTo6Z2V0RGF0YWJhc2VPcmlnaW5zKFBhc3NSZWZQdHI8QXJyYXlDYWxs
YmFjaz4gcHJwQ2FsbGJhY2spCkBAIC0yMTEsNyArMjExLDcgQEAgdm9pZCBXZWJEYXRhYmFzZU1h
bmFnZXJQcm94eTo6ZGlkR2V0RGF0YWJhc2VPcmlnaW5zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBv
cmlnaW4KICAgICBmb3IgKGNvbnN0IGF1dG8mIG9yaWdpbklkZW50aWZpZXIgOiBvcmlnaW5JZGVu
dGlmaWVycykKICAgICAgICAgc2VjdXJpdHlPcmlnaW5zLnVuY2hlY2tlZEFwcGVuZChXZWJTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcihvcmlnaW5JZGVudGlmaWVy
KSk7CiAKLSAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKEltbXV0
YWJsZUFycmF5OjphZG9wdChzZWN1cml0eU9yaWdpbnMpLmdldCgpKTsKKyAgICBjYWxsYmFjay0+
cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKEltbXV0YWJsZUFycmF5OjpjcmVhdGUoc3Rk
Ojptb3ZlKHNlY3VyaXR5T3JpZ2lucykpLmdldCgpKTsKIH0KIAogdm9pZCBXZWJEYXRhYmFzZU1h
bmFnZXJQcm94eTo6ZGVsZXRlRGF0YWJhc2VXaXRoTmFtZUZvck9yaWdpbihjb25zdCBTdHJpbmcm
IGRhdGFiYXNlSWRlbnRpZmllciwgV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNw
cAppbmRleCA4NTA3NTQzYzBiODIwODRiNDI0ZDZkYWFjMmE0OTdlOWJhNzI2ZjZkLi42MTg0ODY5
NjUyNTkxMWFmZjIzNDY3ODVmM2NlYThhM2YyY2NmNDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC03NSw3
ICs3NSw3IEBAIHN0YXRpYyB2b2lkIGRpZEdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnMoY29uc3Qg
VmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yCiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHNlY3VyaXR5T3JpZ2lucy5zaXplKCk7ICsraSkKICAgICAgICAgd2ViU2VjdXJpdHlP
cmlnaW5zLnVuY2hlY2tlZEFwcGVuZChXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHNlY3VyaXR5
T3JpZ2luc1tpXSkpOwogCi0gICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5W
YWx1ZShJbW11dGFibGVBcnJheTo6YWRvcHQod2ViU2VjdXJpdHlPcmlnaW5zKS5nZXQoKSk7Cisg
ICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShJbW11dGFibGVBcnJh
eTo6Y3JlYXRlKHN0ZDo6bW92ZSh3ZWJTZWN1cml0eU9yaWdpbnMpKS5nZXQoKSk7CiB9CiAKIHZv
aWQgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6Z2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyhQ
YXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+IHBycENhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcAppbmRleCA5YTkxNjRhYmUyMzY2MDhhMjRhZTQz
MDNmZjI0NWZmYzgwMWFjYWNhLi40N2E0YWFlOWIzOWY3ZTQ2ZGIwY2FlODdmZGVjMWJlNTJlZjQ3
MTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcApA
QCAtMjQ1LDcgKzI0NSw3IEBAIHZvaWQgV2ViTG9hZGVyQ2xpZW50OjpkaWRDaGFuZ2VCYWNrRm9y
d2FyZExpc3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJCYWNrRm9yd2FyCiAKICAgICBSZWZQdHI8
SW1tdXRhYmxlQXJyYXk+IHJlbW92ZWRJdGVtc0FycmF5OwogICAgIGlmIChyZW1vdmVkSXRlbXMg
JiYgIXJlbW92ZWRJdGVtcy0+aXNFbXB0eSgpKQotICAgICAgICByZW1vdmVkSXRlbXNBcnJheSA9
IEltbXV0YWJsZUFycmF5OjphZG9wdCgqcmVtb3ZlZEl0ZW1zKTsKKyAgICAgICAgcmVtb3ZlZEl0
ZW1zQXJyYXkgPSBJbW11dGFibGVBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZSgqcmVtb3ZlZEl0ZW1z
KSk7CiAKICAgICBtX2NsaWVudC5kaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QodG9BUEkocGFnZSks
IHRvQVBJKGFkZGVkSXRlbSksIHRvQVBJKHJlbW92ZWRJdGVtc0FycmF5LmdldCgpKSwgbV9jbGll
bnQuY2xpZW50SW5mbyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IGU3N2ZjOWNhYzA0MDVmMDk3ZTc2MjBj
ZTRkOTdlOGI0NjIzNDZlZjguLjhkOTIwN2I1YzQ4ZGI5ZjI0Y2Y5MjkwZTk2NGUzYTU3NzZiNTAy
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1l
bnVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlQ29udGV4
dE1lbnVDbGllbnQuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgYm9vbCBXZWJQYWdlQ29udGV4dE1l
bnVDbGllbnQ6OnNob3dDb250ZXh0TWVudShXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFdlYkNv
cmUKICAgICBmb3IgKGNvbnN0IGF1dG8mIG1lbnVJdGVtIDogbWVudUl0ZW1zVmVjdG9yKQogICAg
ICAgICBtZW51SXRlbXMudW5jaGVja2VkQXBwZW5kKFdlYkNvbnRleHRNZW51SXRlbTo6Y3JlYXRl
KG1lbnVJdGVtKSk7CiAKLSAgICBtX2NsaWVudC5zaG93Q29udGV4dE1lbnUodG9BUEkocGFnZSks
IHRvQVBJKG1lbnVMb2NhdGlvbiksIHRvQVBJKEltbXV0YWJsZUFycmF5OjphZG9wdChtZW51SXRl
bXMpLmdldCgpKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgbV9jbGllbnQuc2hvd0NvbnRl
eHRNZW51KHRvQVBJKHBhZ2UpLCB0b0FQSShtZW51TG9jYXRpb24pLCB0b0FQSShJbW11dGFibGVB
cnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShtZW51SXRlbXMpKS5nZXQoKSksIG1fY2xpZW50LmNsaWVu
dEluZm8pOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDdjNjUxM2I1NTgxMzNhZWIzZmVhZWVjNmNmZTBjZDg5YTEy
NTUyZGUuLmViZTA5Y2RiODAyYzljMTE0MzY3Zjg2ZmFiZGMyZmEyM2VmOWJlMjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC00MDAsNyArNDAwLDcgQEAg
UGFzc1JlZlB0cjxJbW11dGFibGVBcnJheT4gV2ViUGFnZVByb3h5OjpyZWxhdGVkUGFnZXMoKSBj
b25zdAogICAgICAgICAgICAgcmVzdWx0LnVuY2hlY2tlZEFwcGVuZChwYWdlKTsKICAgICB9CiAK
LSAgICByZXR1cm4gSW1tdXRhYmxlQXJyYXk6OmFkb3B0KHJlc3VsdCk7CisgICAgcmV0dXJuIElt
bXV0YWJsZUFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKHJlc3VsdCkpOwogfQogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6aW5pdGlhbGl6ZUxvYWRlckNsaWVudChjb25zdCBXS1BhZ2VMb2FkZXJDbGllbnQq
IGxvYWRDbGllbnQpCkBAIC0zMDQ3LDEwICszMDQ3LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRGaW5kU3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmIHN0cmluZywgVmVjdG9yPFZlY3RvcjxX
ZWJDCiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgcmVjdCA6IHJlY3RzKQogICAgICAgICAgICAg
YXBpUmVjdHMudW5jaGVja2VkQXBwZW5kKFdlYlJlY3Q6OmNyZWF0ZSh0b0FQSShyZWN0KSkpOwog
Ci0gICAgICAgIG1hdGNoZXMudW5jaGVja2VkQXBwZW5kKEltbXV0YWJsZUFycmF5OjphZG9wdChh
cGlSZWN0cykpOworICAgICAgICBtYXRjaGVzLnVuY2hlY2tlZEFwcGVuZChJbW11dGFibGVBcnJh
eTo6Y3JlYXRlKHN0ZDo6bW92ZShhcGlSZWN0cykpKTsKICAgICB9CiAKLSAgICBtX2ZpbmRNYXRj
aGVzQ2xpZW50LmRpZEZpbmRTdHJpbmdNYXRjaGVzKHRoaXMsIHN0cmluZywgSW1tdXRhYmxlQXJy
YXk6OmFkb3B0KG1hdGNoZXMpLmdldCgpLCBmaXJzdEluZGV4QWZ0ZXJTZWxlY3Rpb24pOworICAg
IG1fZmluZE1hdGNoZXNDbGllbnQuZGlkRmluZFN0cmluZ01hdGNoZXModGhpcywgc3RyaW5nLCBJ
bW11dGFibGVBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShtYXRjaGVzKSkuZ2V0KCksIGZpcnN0SW5k
ZXhBZnRlclNlbGVjdGlvbik7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsVG9GaW5k
U3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA2
MmE4Mjc0MGNkMjEzZTFiODM1NTNlMzZlYTQyMjU0YjUwYzllOTM0Li5hNTNhY2YxZTdlOTIwYzAy
NTg3OTAyNmZhMzAwYmY4YWRiZGIwZDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNDE0
LDcgKzQxNCw3IEBAIFBhc3NSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IEluamVjdGVkQnVuZGxlOjpv
cmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUoKQogICAgIGZvciAoY29uc3QgYXV0byYgb3JpZ2lu
IDogb3JpZ2lucykKICAgICAgICAgb3JpZ2luSWRlbnRpZmllcnMudW5jaGVja2VkQXBwZW5kKFdl
YlN0cmluZzo6Y3JlYXRlKG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCkpKTsKIAotICAgIHJl
dHVybiBJbW11dGFibGVBcnJheTo6YWRvcHQob3JpZ2luSWRlbnRpZmllcnMpOworICAgIHJldHVy
biBJbW11dGFibGVBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShvcmlnaW5JZGVudGlmaWVycykpOwog
fQogCiBpbnQgSW5qZWN0ZWRCdW5kbGU6Om51bWJlck9mUGFnZXMoV2ViRnJhbWUqIGZyYW1lLCBk
b3VibGUgcGFnZVdpZHRoSW5QaXhlbHMsIGRvdWJsZSBwYWdlSGVpZ2h0SW5QaXhlbHMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKaW5k
ZXggNGFiYmQ0ZGJiMjUyN2I0NGY0NzE0ZjdhYmM0MDEzMDlhODgzZmRiNS4uMDM5Zjc4MDJiMWZk
N2IwMjFlNTFmOTA4Y2U2NjU1OWE2YjUyNjkxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0
ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcApAQCAtNDAsNyArNDAsNyBAQCBQYXNz
UmVmUHRyPEltbXV0YWJsZUFycmF5PiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW06
OmNoaWxkcmVuKCkgY29uc3QKICAgICBmb3IgKGNvbnN0IGF1dG8mIGNoaWxkIDogbV9pdGVtLT5j
aGlsZHJlbigpKQogICAgICAgICBjaGlsZHJlbi51bmNoZWNrZWRBcHBlbmQoSW5qZWN0ZWRCdW5k
bGVCYWNrRm9yd2FyZExpc3RJdGVtOjpjcmVhdGUoY2hpbGQpKTsKIAotICAgIHJldHVybiBJbW11
dGFibGVBcnJheTo6YWRvcHQoY2hpbGRyZW4pOworICAgIHJldHVybiBJbW11dGFibGVBcnJheTo6
Y3JlYXRlKHN0ZDo6bW92ZShjaGlsZHJlbikpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwCmluZGV4IDY0
OWNmMjVmYWU4MjZhZTBmMDZmMGQwODc1Zjk3NWJkN2RlNTljZjUuLmMzM2IwMjY4OTVkM2IwMmQ2
MjM3ZmUzYTViYTM2YmE5NjNmMWU3YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VGb3JtQ2xpZW50LmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5k
bGVQYWdlRm9ybUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKFdlYlBhZ2UqIHBhZ2Us
IGNvbnN0CiAgICAgZm9yIChjb25zdCBhdXRvJiBlbGVtZW50IDogZWxlbWVudHMpCiAgICAgICAg
IGVsZW1lbnRIYW5kbGVzLnVuY2hlY2tlZEFwcGVuZChJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6
OmdldE9yQ3JlYXRlKGVsZW1lbnQuZ2V0KCkpKTsKIAotICAgIG1fY2xpZW50LmRpZEFzc29jaWF0
ZUZvcm1Db250cm9scyh0b0FQSShwYWdlKSwgdG9BUEkoSW1tdXRhYmxlQXJyYXk6OmFkb3B0KGVs
ZW1lbnRIYW5kbGVzKS5nZXQoKSksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50
LmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyh0b0FQSShwYWdlKSwgdG9BUEkoSW1tdXRhYmxlQXJy
YXk6OmNyZWF0ZShzdGQ6Om1vdmUoZWxlbWVudEhhbmRsZXMpKS5nZXQoKSksIG1fY2xpZW50LmNs
aWVudEluZm8pOwogfQogCiBib29sIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OnNob3Vs
ZE5vdGlmeU9uRm9ybUNoYW5nZXMoV2ViUGFnZSogcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4IGUzYzc3YWU5MWY3MzE4OTA2ZTIw
OGMyNzM4NDNiMDYwYmI5NjBkMzIuLjhhZjI0YWRlNzY2NjA5YmMzZmJmZDc5ODUxNzY2YmEyZjI2
MjBjOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1l
LmNwcApAQCAtNDMxLDcgKzQzMSw3IEBAIFBhc3NSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IFdlYkZy
YW1lOjpjaGlsZEZyYW1lcygpCiAgICAgICAgIHZlY3Rvci51bmNoZWNrZWRBcHBlbmQod2ViRnJh
bWUpOwogICAgIH0KIAotICAgIHJldHVybiBJbW11dGFibGVBcnJheTo6YWRvcHQodmVjdG9yKTsK
KyAgICByZXR1cm4gSW1tdXRhYmxlQXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUodmVjdG9yKSk7CiB9
CiAKIFN0cmluZyBXZWJGcmFtZTo6bGF5ZXJUcmVlQXNUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAzMDEyODVhZDkxMDFl
NDllM2QxNmE2MzcyOWJkYjcyMGM4MDc4ODE2Li40NzM4NThkNmViYjhhOGY4Njc1NGRjYjViOTZm
YzYwZDFjM2IyZTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC02NjgsNyArNjY4LDcgQEAgUGFzc1JlZlB0cjxJbW11dGFibGVBcnJheT4g
V2ViUGFnZTo6dHJhY2tlZFJlcGFpbnRSZWN0cygpCiAgICAgZm9yIChjb25zdCBhdXRvJiByZXBh
aW50UmVjdCA6IHZpZXctPnRyYWNrZWRSZXBhaW50UmVjdHMoKSkKICAgICAgICAgcmVwYWludFJl
Y3RzLnVuY2hlY2tlZEFwcGVuZChXZWJSZWN0OjpjcmVhdGUodG9BUEkocmVwYWludFJlY3QpKSk7
CiAKLSAgICByZXR1cm4gSW1tdXRhYmxlQXJyYXk6OmFkb3B0KHJlcGFpbnRSZWN0cyk7CisgICAg
cmV0dXJuIEltbXV0YWJsZUFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKHJlcGFpbnRSZWN0cykpOwog
fQogCiBQbHVnaW5WaWV3KiBXZWJQYWdlOjpmb2N1c2VkUGx1Z2luVmlld0ZvckZyYW1lKEZyYW1l
JiBmcmFtZSkK
</data>
<flag name="review"
          id="239718"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="239719"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>