<?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>179389</bug_id>
          
          <creation_ts>2017-11-07 13:09:59 -0800</creation_ts>
          <short_desc>Introduce a default RegisterSet constructor so that we can use { } notation.</short_desc>
          <delta_ts>2017-11-15 12:09:45 -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>JavaScriptCore</component>
          <version>WebKit Local 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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1369162</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-11-07 13:09:59 -0800</bug_when>
    <thetext>Refactor code that are obviously able to pass RegisterSet by value to do so instead of passing a reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369167</commentid>
    <comment_count>1</comment_count>
      <attachid>326251</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-11-07 13:23:40 -0800</bug_when>
    <thetext>Created attachment 326251
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369171</commentid>
    <comment_count>2</comment_count>
      <attachid>326251</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-11-07 13:30:31 -0800</bug_when>
    <thetext>Comment on attachment 326251
proposed patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=326251&amp;action=review

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        Refactored code that are obviously able to pass RegisterSet by value to do so
&gt; +        instead of passing a reference.

It turns out that even for primitive values that can/should be passed by value, doing const T&amp; is essentially doing just that.  For example,

const int&amp; foo() const { return m_foo; }

means that the actual load of the int will happen if the caller to foo() actually needs the value, and then it happens at the moment that the value is really needed.

So, I don&apos;t think that your patch&apos;s change is consistent with what you&apos;re saying you&apos;re doing - RegisterSet is already being &quot;passed by value&quot; under the loose C++ definition of that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369173</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-11-07 13:33:49 -0800</bug_when>
    <thetext>(In reply to Filip Pizlo from comment #2)
&gt; It turns out that even for primitive values that can/should be passed by
&gt; value, doing const T&amp; is essentially doing just that.

OK.  I should have known compilers are smart enough for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369191</commentid>
    <comment_count>4</comment_count>
      <attachid>326257</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-11-07 14:02:53 -0800</bug_when>
    <thetext>Created attachment 326257
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369231</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-11-07 14:53:25 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r224550: &lt;http://trac.webkit.org/r224550&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372084</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 12:09:45 -0800</bug_when>
    <thetext>&lt;rdar://problem/35567060&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326251</attachid>
            <date>2017-11-07 13:23:40 -0800</date>
            <delta_ts>2017-11-07 14:02:53 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-179389.patch</filename>
            <type>text/plain</type>
            <size>30455</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI0NTQ0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkxIEBA
CisyMDE3LTExLTA3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZWZhY3RvcmluZzogUmVnaXN0ZXJTZXQgaXMgbWVhbnQgdG8gYmUgcGFzc2VkIGJ5IHZhbHVlLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5Mzg5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jl
ZCBjb2RlIHRoYXQgYXJlIG9idmlvdXNseSBhYmxlIHRvIHBhc3MgUmVnaXN0ZXJTZXQgYnkgdmFs
dWUgdG8gZG8gc28KKyAgICAgICAgaW5zdGVhZCBvZiBwYXNzaW5nIGEgcmVmZXJlbmNlLgorCisg
ICAgICAgIEFsc28gaW50cm9kdWNlZCBhIGRlZmF1bHQgY29uc3RydWN0b3IgZm9yIFJlZ2lzdGVy
U2V0IHNvIHRoYXQgd2UgY2FuIHVzZSB0aGUgbW9yZQorICAgICAgICBjb21wYWN0IHsgfSBub3Rh
dGlvbiBmb3IgcmV0dXJuaW5nIG9yIGluaXRpYWxpemluZyBlbXB0eSBSZWdpc3RlclNldHMgKG5v
dCB0byBiZQorICAgICAgICBjb25mdXNlZCB3aXRoIHRoZSBSZWdpc3RlclNldChFbXB0eVZhbHVl
VGFnKSB1c2VkIGZvciBIYXNoVGFibGUgZW1wdHkgZW50cmllcykuCisgICAgICAgIEkgYWxzbyBy
ZXBsYWNlZCB1c2VzIG9mICJSZWdpc3RlclNldCgpIiB3aXRoICJ7IH0iIHdoZXJlIHRoZSB1c2Ug
b2YgIlJlZ2lzdGVyU2V0KCkiCisgICAgICAgIGRvZXMgbm90IGFkZCBhbnkgY29kZSBkb2N1bWVu
dGF0aW9uIHZhbHVlLgorCisgICAgICAgICogYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMu
Y3BwOgorICAgICAgICAoSlNDOjpCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjp1c2VkUmVn
aXN0ZXJzIGNvbnN0KToKKyAgICAgICAgKiBiMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5o
OgorICAgICAgICAqIGIzL0IzU3RhY2ttYXBTcGVjaWFsLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OlN0YWNrbWFwU3BlY2lhbDo6cmVwb3J0VXNlZFJlZ2lzdGVycyk6CisgICAgICAgICogYjMvQjNT
dGFja21hcFNwZWNpYWwuaDoKKyAgICAgICAgKiBiMy9CM1N0YWNrbWFwVmFsdWUuaDoKKyAgICAg
ICAgKiBiMy9haXIvQWlyQWxsb2NhdGVSZWdpc3RlcnNBbmRTdGFja0J5TGluZWFyU2Nhbi5jcHA6
CisgICAgICAgICogYjMvYWlyL0FpckNDYWxsU3BlY2lhbC5jcHA6CisgICAgICAgIChKU0M6OkIz
OjpBaXI6OkNDYWxsU3BlY2lhbDo6cmVwb3J0VXNlZFJlZ2lzdGVycyk6CisgICAgICAgICogYjMv
YWlyL0FpckNDYWxsU3BlY2lhbC5oOgorICAgICAgICAqIGIzL2Fpci9BaXJDb2RlLmNwcDoKKyAg
ICAgICAgKEpTQzo6QjM6OkFpcjo6Q29kZTo6c2V0UmVnc0luUHJpb3JpdHlPcmRlcik6CisgICAg
ICAgICogYjMvYWlyL0FpckNvZGUuaDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6Q29kZTo6bXV0
YWJsZVJlZ3MgY29uc3QpOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICog
YjMvYWlyL0Fpckluc3RJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6OnJl
cG9ydFVzZWRSZWdpc3RlcnMpOgorICAgICAgICAqIGIzL2Fpci9BaXJQcmludFNwZWNpYWwuY3Bw
OgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpQcmludFNwZWNpYWw6OnJlcG9ydFVzZWRSZWdpc3Rl
cnMpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpQcmludFNwZWNpYWw6OmV4dHJhRWFybHlDbG9i
YmVyZWRSZWdzKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6UHJpbnRTcGVjaWFsOjpleHRyYUNs
b2JiZXJlZFJlZ3MpOgorICAgICAgICAqIGIzL2Fpci9BaXJQcmludFNwZWNpYWwuaDoKKyAgICAg
ICAgKiBiMy9haXIvQWlyUmVnTGl2ZW5lc3MuaDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6UmVn
TGl2ZW5lc3M6OkxvY2FsQ2FsY0Jhc2U6OmxpdmUgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpSZWdMaXZlbmVzczo6bGl2ZUF0SGVhZCBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpB
aXI6OlJlZ0xpdmVuZXNzOjpsaXZlQXRUYWlsIGNvbnN0KToKKyAgICAgICAgKiBiMy9haXIvQWly
U3BlY2lhbC5oOgorICAgICAgICAqIGIzL2Fpci90ZXN0YWlyLmNwcDoKKyAgICAgICAgKiBieXRl
Y29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkFjY2Vzc0dlbmVyYXRp
b25TdGF0ZTo6bGl2ZVJlZ2lzdGVyc0ZvckNhbGwpOgorICAgICAgICAoSlNDOjpBY2Nlc3NHZW5l
cmF0aW9uU3RhdGU6OmxpdmVSZWdpc3RlcnNUb1ByZXNlcnZlQXRFeGNlcHRpb25IYW5kbGluZ0Nh
bGxTaXRlKToKKyAgICAgICAgKEpTQzo6QWNjZXNzR2VuZXJhdGlvblN0YXRlOjpjYWxjdWxhdGVM
aXZlUmVnaXN0ZXJzRm9yQ2FsbEFuZEV4Y2VwdGlvbkhhbmRsaW5nKToKKyAgICAgICAgKEpTQzo6
QWNjZXNzR2VuZXJhdGlvblN0YXRlOjpwcmVzZXJ2ZUxpdmVSZWdpc3RlcnNUb1N0YWNrRm9yQ2Fs
bCk6CisgICAgICAgIChKU0M6OkFjY2Vzc0dlbmVyYXRpb25TdGF0ZTo6cmVzdG9yZUxpdmVSZWdp
c3RlcnNGcm9tU3RhY2tGb3JDYWxsKToKKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0Fj
Y2Vzcy5oOgorICAgICAgICAoSlNDOjpBY2Nlc3NHZW5lcmF0aW9uU3RhdGU6OnByZXNlcnZlTGl2
ZVJlZ2lzdGVyc1RvU3RhY2tGb3JDYWxsKToKKyAgICAgICAgKEpTQzo6QWNjZXNzR2VuZXJhdGlv
blN0YXRlOjpyZXN0b3JlTGl2ZVJlZ2lzdGVyc0Zyb21TdGFja0ZvckNhbGwpOgorICAgICAgICAq
IGRmZy9ERkdKSVRDb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb2RlOjpsaXZlUmVn
aXN0ZXJzVG9QcmVzZXJ2ZUF0RXhjZXB0aW9uSGFuZGxpbmdDYWxsU2l0ZSk6CisgICAgICAgICog
ZnRsL0ZUTEpJVENvZGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpJVENvZGU6OmxpdmVSZWdp
c3RlcnNUb1ByZXNlcnZlQXRFeGNlcHRpb25IYW5kbGluZ0NhbGxTaXRlKToKKyAgICAgICAgKiBm
dGwvRlRMTGF6eVNsb3dQYXRoLmg6CisgICAgICAgIChKU0M6OkZUTDo6TGF6eVNsb3dQYXRoOjp1
c2VkUmVnaXN0ZXJzIGNvbnN0KToKKyAgICAgICAgKiBmdGwvRlRMU2xvd1BhdGhDYWxsS2V5Lmg6
CisgICAgICAgIChKU0M6OkZUTDo6U2xvd1BhdGhDYWxsS2V5Ojp1c2VkUmVnaXN0ZXJzIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6RlRMOjpTbG93UGF0aENhbGxLZXk6OmFyZ3VtZW50UmVnaXN0ZXJz
IGNvbnN0KToKKyAgICAgICAgKiBqaXQvSklUQ29kZS5jcHA6CisgICAgICAgIChKU0M6OkpJVENv
ZGU6OmxpdmVSZWdpc3RlcnNUb1ByZXNlcnZlQXRFeGNlcHRpb25IYW5kbGluZ0NhbGxTaXRlKToK
KyAgICAgICAgKiBqaXQvUmVnaXN0ZXJTZXQuY3BwOgorICAgICAgICAoSlNDOjpSZWdpc3RlclNl
dDo6cmVzZXJ2ZWRIYXJkd2FyZVJlZ2lzdGVycyk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyU2V0
OjpydW50aW1lUmVnaXN0ZXJzKToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJTZXQ6Om1hY3JvU2Ny
YXRjaFJlZ2lzdGVycyk6CisgICAgICAgICogaml0L1JlZ2lzdGVyU2V0Lmg6CisgICAgICAgIChK
U0M6OlJlZ2lzdGVyU2V0OjpSZWdpc3RlclNldCk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyU2V0
OjptZXJnZSk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyU2V0OjpmaWx0ZXIpOgorICAgICAgICAo
SlNDOjpSZWdpc3RlclNldDo6ZXhjbHVkZSk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyU2V0Ojpz
dWJzdW1lcyBjb25zdCk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyU2V0OjpvcGVyYXRvcj09IGNv
bnN0KToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJTZXQ6Om9wZXJhdG9yIT0gY29uc3QpOgorICAg
ICAgICAoSlNDOjpSZWdpc3RlclNldDo6c2V0QW55KToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJT
ZXRIYXNoOjplcXVhbCk6CisgICAgICAgICogaml0L1NjcmF0Y2hSZWdpc3RlckFsbG9jYXRvci5j
cHA6CisgICAgICAgIChKU0M6OlNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvcjo6U2NyYXRjaFJlZ2lz
dGVyQWxsb2NhdG9yKToKKyAgICAgICAgKiBqaXQvU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmg6
CisgICAgICAgICogaml0L1RlbXBSZWdpc3RlclNldC5jcHA6CisgICAgICAgIChKU0M6OlRlbXBS
ZWdpc3RlclNldDo6VGVtcFJlZ2lzdGVyU2V0KToKKyAgICAgICAgKiBqaXQvVGVtcFJlZ2lzdGVy
U2V0Lmg6CisgICAgICAgICogd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHA6CisgICAgICAgIChK
U0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OmVtaXRUaWVyVXBDaGVjayk6CisKIDIwMTctMTEtMDcg
IE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFjY2Vzc0Nhc2U6Omdl
bmVyYXRlSW1wbCgpIHNob3VsZCBleGNsdWRlIHRoZSByZXN1bHQgcmVnaXN0ZXIgd2hlbiByZXN0
b3JpbmcgcmVnaXN0ZXJzIGFmdGVyIGEgY2FsbC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcAkocmV2aXNp
b24gMjI0NTM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0
aW9uUGFyYW1zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY29uc3QgUmVnaXN0ZXJTZXQmIFN0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtczo6dXNlZFJlZ2lzdGVycygpIGNvbnN0Citjb25zdCBSZWdpc3RlclNldCBT
dGFja21hcEdlbmVyYXRpb25QYXJhbXM6OnVzZWRSZWdpc3RlcnMoKSBjb25zdAogewogICAgIEFT
U0VSVChtX2NvbnRleHQuY29kZS0+bmVlZHNVc2VkUmVnaXN0ZXJzKCkpOwogICAgIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zLmgJKHJldmlzaW9uIDIyNDUzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3
IEBAIHB1YmxpYzoKICAgICAKICAgICAvLyBUaGlzIHRlbGxzIHlvdSB0aGUgcmVnaXN0ZXJzIHRo
YXQgd2VyZSB1c2VkLgogICAgIC8vIE5PVEU6IFRoaXMgd2lsbCByZXBvcnQgYm9ndXMgaW5mb3Jt
YXRpb24gaWYgeW91IGRpZCBwcm9jLnNldE5lZWRzVXNlZFJlZ2lzdGVycyhmYWxzZSkuCi0gICAg
Y29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMoKSBjb25zdDsKKyAgICBjb25zdCBSZWdp
c3RlclNldCB1c2VkUmVnaXN0ZXJzKCkgY29uc3Q7CiAKICAgICAvLyBUaGlzIGlzIGEgdXNlZnVs
IGhlbHBlciBpZiB5b3Ugd2FudCB0byBkbyByZWdpc3RlciBhbGxvY2F0aW9uIGluc2lkZSBvZiBh
IHBhdGNocG9pbnQuIFRoZQogICAgIC8vIHVzZWRSZWdpc3RlcnMoKSBzZXQgaXMgbm90IGRpcmVj
dGx5IHVzZWZ1bCBmb3IgdGhpcyBwdXJwb3NlIGJlY2F1c2U6CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNTdGFja21hcFNwZWNpYWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwU3BlY2lhbC5jcHAJKHJldmlzaW9uIDIyNDUzOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwU3BlY2lhbC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgU3RhY2ttYXBTcGVjaWFsOjp+U3RhY2ttYXBTcGVj
aWFsKCkKIHsKIH0KIAotdm9pZCBTdGFja21hcFNwZWNpYWw6OnJlcG9ydFVzZWRSZWdpc3RlcnMo
SW5zdCYgaW5zdCwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMpCit2b2lkIFN0YWNr
bWFwU3BlY2lhbDo6cmVwb3J0VXNlZFJlZ2lzdGVycyhJbnN0JiBpbnN0LCBjb25zdCBSZWdpc3Rl
clNldCB1c2VkUmVnaXN0ZXJzKQogewogICAgIFN0YWNrbWFwVmFsdWUqIHZhbHVlID0gaW5zdC5v
cmlnaW4tPmFzPFN0YWNrbWFwVmFsdWU+KCk7CiAgICAgQVNTRVJUKHZhbHVlKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwU3BlY2lhbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwU3BlY2lhbC5oCShyZXZpc2lvbiAy
MjQ1MzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFNwZWNpYWwuaAko
d29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogcHJvdGVj
dGVkOgotICAgIHZvaWQgcmVwb3J0VXNlZFJlZ2lzdGVycyhBaXI6Okluc3QmLCBjb25zdCBSZWdp
c3RlclNldCYpIGZpbmFsOworICAgIHZvaWQgcmVwb3J0VXNlZFJlZ2lzdGVycyhBaXI6Okluc3Qm
LCBjb25zdCBSZWdpc3RlclNldCkgZmluYWw7CiAgICAgUmVnaXN0ZXJTZXQgZXh0cmFFYXJseUNs
b2JiZXJlZFJlZ3MoQWlyOjpJbnN0JikgZmluYWw7CiAgICAgUmVnaXN0ZXJTZXQgZXh0cmFDbG9i
YmVyZWRSZWdzKEFpcjo6SW5zdCYpIGZpbmFsOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNTdGFja21hcFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzU3RhY2ttYXBWYWx1ZS5oCShyZXZpc2lvbiAyMjQ1MzkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NSwx
NyArMTc1LDE3IEBAIHB1YmxpYzoKICAgICAvLyBidWdzIGFyZToKICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMzM1IChMYXRlVXNlKQogICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE4MTEgKHdhcm0gQW55KQot
ICAgIHZvaWQgY2xvYmJlckVhcmx5KGNvbnN0IFJlZ2lzdGVyU2V0JiBzZXQpCisgICAgdm9pZCBj
bG9iYmVyRWFybHkoY29uc3QgUmVnaXN0ZXJTZXQgc2V0KQogICAgIHsKICAgICAgICAgbV9lYXJs
eUNsb2JiZXJlZC5tZXJnZShzZXQpOwogICAgIH0KIAotICAgIHZvaWQgY2xvYmJlckxhdGUoY29u
c3QgUmVnaXN0ZXJTZXQmIHNldCkKKyAgICB2b2lkIGNsb2JiZXJMYXRlKGNvbnN0IFJlZ2lzdGVy
U2V0IHNldCkKICAgICB7CiAgICAgICAgIG1fbGF0ZUNsb2JiZXJlZC5tZXJnZShzZXQpOwogICAg
IH0KIAotICAgIHZvaWQgY2xvYmJlcihjb25zdCBSZWdpc3RlclNldCYgc2V0KQorICAgIHZvaWQg
Y2xvYmJlcihjb25zdCBSZWdpc3RlclNldCBzZXQpCiAgICAgewogICAgICAgICBjbG9iYmVyRWFy
bHkoc2V0KTsKICAgICAgICAgY2xvYmJlckxhdGUoc2V0KTsKQEAgLTE5Myw4ICsxOTMsOCBAQCBw
dWJsaWM6CiAKICAgICBSZWdpc3RlclNldCYgZWFybHlDbG9iYmVyZWQoKSB7IHJldHVybiBtX2Vh
cmx5Q2xvYmJlcmVkOyB9CiAgICAgUmVnaXN0ZXJTZXQmIGxhdGVDbG9iYmVyZWQoKSB7IHJldHVy
biBtX2xhdGVDbG9iYmVyZWQ7IH0KLSAgICBjb25zdCBSZWdpc3RlclNldCYgZWFybHlDbG9iYmVy
ZWQoKSBjb25zdCB7IHJldHVybiBtX2Vhcmx5Q2xvYmJlcmVkOyB9Ci0gICAgY29uc3QgUmVnaXN0
ZXJTZXQmIGxhdGVDbG9iYmVyZWQoKSBjb25zdCB7IHJldHVybiBtX2xhdGVDbG9iYmVyZWQ7IH0K
KyAgICBjb25zdCBSZWdpc3RlclNldCBlYXJseUNsb2JiZXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZWFybHlDbG9iYmVyZWQ7IH0KKyAgICBjb25zdCBSZWdpc3RlclNldCBsYXRlQ2xvYmJlcmVkKCkg
Y29uc3QgeyByZXR1cm4gbV9sYXRlQ2xvYmJlcmVkOyB9CiAKICAgICB2b2lkIHNldEdlbmVyYXRv
cihSZWZQdHI8U3RhY2ttYXBHZW5lcmF0b3I+IGdlbmVyYXRvcikKICAgICB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlUmVnaXN0ZXJzQW5kU3RhY2tCeUxp
bmVhclNjYW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyQWxsb2NhdGVSZWdpc3RlcnNBbmRTdGFja0J5TGluZWFyU2Nhbi5jcHAJKHJldmlzaW9uIDIy
NDUzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVSZWdpc3Rl
cnNBbmRTdGFja0J5TGluZWFyU2Nhbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0MCw3ICsyNDAs
NyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIC8vIGxpdmVuZXNzIGNvbnN0cmFpbnRzLiBF
eGNlcHQgd2Ugd2FudCB0aG9zZSBjb25zdHJhaW50cyB0byBzZXBhcmF0ZSB0aGUgbGF0ZQogICAg
ICAgICAgICAgICAgIC8vIGFjdGlvbnMgb2Ygb25lIGluc3RydWN0aW9uIGZyb20gdGhlIGVhcmx5
IGFjdGlvbnMgb2YgdGhlIG5leHQuCiAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDg1MAotICAgICAgICAgICAgICAgIGNvbnN0IFJl
Z2lzdGVyU2V0JiByZWdzID0gbG9jYWxDYWxjLmxpdmUoKTsKKyAgICAgICAgICAgICAgICBjb25z
dCBSZWdpc3RlclNldCByZWdzID0gbG9jYWxDYWxjLmxpdmUoKTsKICAgICAgICAgICAgICAgICBp
ZiAoSW5zdCogcHJldiA9IGJsb2NrLT5nZXQoaW5zdEluZGV4IC0gMSkpIHsKICAgICAgICAgICAg
ICAgICAgICAgUmVnaXN0ZXJTZXQgcHJldlJlZ3MgPSByZWdzOwogICAgICAgICAgICAgICAgICAg
ICBwcmV2LT5mb3JFYWNoPFJlZz4oCkBAIC0zNzEsNyArMzcxLDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgLy8gaHR0cDovL2RsLmFjbS5vcmcvY2l0YXRpb24uY2ZtP2lkPTMzMDI1MC4KIAogICAgICAg
ICBtX2FjdGl2ZS5jbGVhcigpOwotICAgICAgICBtX2FjdGl2ZVJlZ3MgPSBSZWdpc3RlclNldCgp
OworICAgICAgICBtX2FjdGl2ZVJlZ3MgPSB7IH07CiAgICAgICAgIAogICAgICAgICBzaXplX3Qg
Y2xvYmJlckluZGV4ID0gMDsKICAgICAgICAgZm9yIChUbXAmIHRtcCA6IG1fdG1wcykgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFsLmNw
cAkocmV2aXNpb24gMjI0NTM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJD
Q2FsbFNwZWNpYWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsNyArMTI0LDcgQEAgYm9vbCBD
Q2FsbFNwZWNpYWw6OmFkbWl0c0V4dGVuZGVkT2Zmc2V0QQogICAgIHJldHVybiBhZG1pdHNTdGFj
ayhpbnN0LCBhcmdJbmRleCk7CiB9CiAKLXZvaWQgQ0NhbGxTcGVjaWFsOjpyZXBvcnRVc2VkUmVn
aXN0ZXJzKEluc3QmLCBjb25zdCBSZWdpc3RlclNldCYpCit2b2lkIENDYWxsU3BlY2lhbDo6cmVw
b3J0VXNlZFJlZ2lzdGVycyhJbnN0JiwgY29uc3QgUmVnaXN0ZXJTZXQpCiB7CiB9CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwuaAkocmV2
aXNpb24gMjI0NTM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNw
ZWNpYWwuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
Ym9vbCBpc1ZhbGlkKEluc3QmKSBmaW5hbDsKICAgICBib29sIGFkbWl0c1N0YWNrKEluc3QmLCB1
bnNpZ25lZCBhcmdJbmRleCkgZmluYWw7CiAgICAgYm9vbCBhZG1pdHNFeHRlbmRlZE9mZnNldEFk
ZHIoSW5zdCYsIHVuc2lnbmVkKSBmaW5hbDsKLSAgICB2b2lkIHJlcG9ydFVzZWRSZWdpc3RlcnMo
SW5zdCYsIGNvbnN0IFJlZ2lzdGVyU2V0JikgZmluYWw7CisgICAgdm9pZCByZXBvcnRVc2VkUmVn
aXN0ZXJzKEluc3QmLCBjb25zdCBSZWdpc3RlclNldCkgZmluYWw7CiAgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wIGdlbmVyYXRlKEluc3QmLCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYp
IGZpbmFsOwogICAgIFJlZ2lzdGVyU2V0IGV4dHJhRWFybHlDbG9iYmVyZWRSZWdzKEluc3QmKSBm
aW5hbDsKICAgICBSZWdpc3RlclNldCBleHRyYUNsb2JiZXJlZFJlZ3MoSW5zdCYpIGZpbmFsOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCShyZXZpc2lvbiAy
MjQ1MzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3IEBAIENvZGU6On5Db2RlKCkKIHZvaWQgQ29kZTo6c2V0
UmVnc0luUHJpb3JpdHlPcmRlcihCYW5rIGJhbmssIGNvbnN0IFZlY3RvcjxSZWc+JiByZWdzKQog
ewogICAgIHJlZ3NJblByaW9yaXR5T3JkZXJJbXBsKGJhbmspID0gcmVnczsKLSAgICBtX211dGFi
bGVSZWdzID0gUmVnaXN0ZXJTZXQoKTsKKyAgICBtX211dGFibGVSZWdzID0geyB9OwogICAgIGZv
ckVhY2hCYW5rKAogICAgICAgICBbJl0gKEJhbmsgYmFuaykgewogICAgICAgICAgICAgZm9yIChS
ZWcgcmVnIDogcmVnc0luUHJpb3JpdHlPcmRlcihiYW5rKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyQ29kZS5oCShyZXZpc2lvbiAyMjQ1MzkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtODcsNyArODcsNyBA
QCBwdWJsaWM6CiAgICAgCiAgICAgLy8gVGhpcyBpcyB0aGUgc2V0IG9mIHJlZ2lzdGVycyB0aGF0
IEFpciBpcyBhbGxvd2VkIHRvIGVtaXQgY29kZSB0byBtdXRhdGUuIEl0J3MgZGVyaXZlZCBmcm9t
CiAgICAgLy8gcmVnc0luUHJpb3JpdHlPcmRlci4gQW55IHJlZ2lzdGVycyBub3QgaW4gdGhpcyBz
ZXQgYXJlIHNhaWQgdG8gYmUgInBpbm5lZCIuCi0gICAgY29uc3QgUmVnaXN0ZXJTZXQmIG11dGFi
bGVSZWdzKCkgY29uc3QgeyByZXR1cm4gbV9tdXRhYmxlUmVnczsgfQorICAgIGNvbnN0IFJlZ2lz
dGVyU2V0IG11dGFibGVSZWdzKCkgY29uc3QgeyByZXR1cm4gbV9tdXRhYmxlUmVnczsgfQogICAg
IAogICAgIGJvb2wgaXNQaW5uZWQoUmVnIHJlZykgY29uc3QgeyByZXR1cm4gIW11dGFibGVSZWdz
KCkuZ2V0KHJlZyk7IH0KICAgICB2b2lkIHBpblJlZ2lzdGVyKFJlZyk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAkocmV2aXNpb24gMjI0NTM5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1Miw3
ICsxNTIsNyBAQCBzdHJ1Y3QgSW5zdCB7CiAgICAgCiAgICAgLy8gVXNlIHRoaXMgdG8gcmVwb3J0
IHdoaWNoIHJlZ2lzdGVycyBhcmUgbGl2ZS4gVGhpcyBzaG91bGQgYmUgZG9uZSBqdXN0IGJlZm9y
ZSBjb2RlZ2VuLiBOb3RlCiAgICAgLy8gdGhhdCBmb3IgZWZmaWNpZW5jeSwgcmVwb3J0VXNlZFJl
Z2lzdGVycygpIG9ubHkgd29ya3MgZm9yIHRoZSBQYXRjaCBvcGNvZGUuCi0gICAgdm9pZCByZXBv
cnRVc2VkUmVnaXN0ZXJzKGNvbnN0IFJlZ2lzdGVyU2V0Jik7CisgICAgdm9pZCByZXBvcnRVc2Vk
UmVnaXN0ZXJzKGNvbnN0IFJlZ2lzdGVyU2V0KTsKIAogICAgIC8vIElzIHRoaXMgaW5zdHJ1Y3Rp
b24gaW4gb25lIG9mIHRoZSB2YWxpZCBmb3JtcyByaWdodCBub3c/IFRoaXMgZnVuY3Rpb24gaXMg
YXV0by1nZW5lcmF0ZWQgYnkKICAgICAvLyBvcGNvZGVfZ2VuZXJhdG9yLnJiLgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0SW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdElubGluZXMuaAkocmV2aXNpb24g
MjI0NTM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0SW5saW5lcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNyArMTAwLDcgQEAgaW5saW5lIHZvaWQgSW5zdDo6Zm9y
RWFjaERlZldpdGhFeHRyYUNsbwogICAgIH0KIH0KIAotaW5saW5lIHZvaWQgSW5zdDo6cmVwb3J0
VXNlZFJlZ2lzdGVycyhjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycykKK2lubGluZSB2
b2lkIEluc3Q6OnJlcG9ydFVzZWRSZWdpc3RlcnMoY29uc3QgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lz
dGVycykKIHsKICAgICBBU1NFUlQoa2luZC5vcGNvZGUgPT0gUGF0Y2gpOwogICAgIGFyZ3NbMF0u
c3BlY2lhbCgpLT5yZXBvcnRVc2VkUmVnaXN0ZXJzKCp0aGlzLCB1c2VkUmVnaXN0ZXJzKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5j
cHAJKHJldmlzaW9uIDIyNDUzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
UHJpbnRTcGVjaWFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBib29sIFBy
aW50U3BlY2lhbDo6YWRtaXRzRXh0ZW5kZWRPZmZzZXRBCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci12b2lkIFByaW50U3BlY2lhbDo6cmVwb3J0VXNlZFJlZ2lzdGVycyhJbnN0JiwgY29uc3QgUmVn
aXN0ZXJTZXQmKQordm9pZCBQcmludFNwZWNpYWw6OnJlcG9ydFVzZWRSZWdpc3RlcnMoSW5zdCYs
IGNvbnN0IFJlZ2lzdGVyU2V0KQogewogfQogCkBAIC05MSwxMiArOTEsMTIgQEAgQ0NhbGxIZWxw
ZXJzOjpKdW1wIFByaW50U3BlY2lhbDo6Z2VuZXJhdAogCiBSZWdpc3RlclNldCBQcmludFNwZWNp
YWw6OmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzKEluc3QmKQogewotICAgIHJldHVybiBSZWdpc3Rl
clNldCgpOworICAgIHJldHVybiB7IH07CiB9CiAKIFJlZ2lzdGVyU2V0IFByaW50U3BlY2lhbDo6
ZXh0cmFDbG9iYmVyZWRSZWdzKEluc3QmKQogewotICAgIHJldHVybiBSZWdpc3RlclNldCgpOwor
ICAgIHJldHVybiB7IH07CiB9CiAKIHZvaWQgUHJpbnRTcGVjaWFsOjpkdW1wSW1wbChQcmludFN0
cmVhbSYgb3V0KSBjb25zdApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQ
cmludFNwZWNpYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpclByaW50U3BlY2lhbC5oCShyZXZpc2lvbiAyMjQ1MzkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNyAr
MTA0LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNWYWxpZChJbnN0JikgZmluYWw7CiAgICAg
Ym9vbCBhZG1pdHNTdGFjayhJbnN0JiwgdW5zaWduZWQgYXJnSW5kZXgpIGZpbmFsOwogICAgIGJv
b2wgYWRtaXRzRXh0ZW5kZWRPZmZzZXRBZGRyKEluc3QmLCB1bnNpZ25lZCkgZmluYWw7Ci0gICAg
dm9pZCByZXBvcnRVc2VkUmVnaXN0ZXJzKEluc3QmLCBjb25zdCBSZWdpc3RlclNldCYpIGZpbmFs
OworICAgIHZvaWQgcmVwb3J0VXNlZFJlZ2lzdGVycyhJbnN0JiwgY29uc3QgUmVnaXN0ZXJTZXQp
IGZpbmFsOwogICAgIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxw
ZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKSBmaW5hbDsKICAgICBSZWdpc3RlclNldCBleHRyYUVh
cmx5Q2xvYmJlcmVkUmVncyhJbnN0JikgZmluYWw7CiAgICAgUmVnaXN0ZXJTZXQgZXh0cmFDbG9i
YmVyZWRSZWdzKEluc3QmKSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyUmVnTGl2ZW5lc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpclJlZ0xpdmVuZXNzLmgJKHJldmlzaW9uIDIyNDUzOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyUmVnTGl2ZW5lc3MuaAkod29ya2luZyBjb3B5KQpAQCAtNjMs
NyArNjMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHsKICAgICAgICAgfQogICAgICAgICAKLSAgICAg
ICAgY29uc3QgUmVnaXN0ZXJTZXQmIGxpdmUoKSBjb25zdAorICAgICAgICBjb25zdCBSZWdpc3Rl
clNldCBsaXZlKCkgY29uc3QKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIG1fd29ya3Nl
dDsKICAgICAgICAgfQpAQCAtMTExLDEyICsxMTEsMTIgQEAgcHVibGljOgogICAgICAgICBVbmlm
aWVkVG1wTGl2ZW5lc3M6OkFjdGlvbnNGb3JCb3VuZGFyeSYgbV9hY3Rpb25zOwogICAgIH07CiAg
ICAgCi0gICAgY29uc3QgUmVnaXN0ZXJTZXQmIGxpdmVBdEhlYWQoQmFzaWNCbG9jayogYmxvY2sp
IGNvbnN0CisgICAgY29uc3QgUmVnaXN0ZXJTZXQgbGl2ZUF0SGVhZChCYXNpY0Jsb2NrKiBibG9j
aykgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX2xpdmVBdEhlYWRbYmxvY2tdOwogICAg
IH0KICAgICAKLSAgICBjb25zdCBSZWdpc3RlclNldCYgbGl2ZUF0VGFpbChCYXNpY0Jsb2NrKiBi
bG9jaykgY29uc3QKKyAgICBjb25zdCBSZWdpc3RlclNldCBsaXZlQXRUYWlsKEJhc2ljQmxvY2sq
IGJsb2NrKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fbGl2ZUF0VGFpbFtibG9ja107
CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmgJ
KHJldmlzaW9uIDIyNDUzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3Bl
Y2lhbC5oCSh3b3JraW5nIGNvcHkpCkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKICAgICAvLyBw
ZXJmb3JtYW5jZSBvZiB0aGUgbGl2ZW5lc3MgYW5hbHlzaXMuCiAgICAgLy8KICAgICAvLyBDdXJy
ZW50bHksIHdlIGRvICgxKSBmb3IgQjMgc3RhY2ttYXBzLgotICAgIHZpcnR1YWwgdm9pZCByZXBv
cnRVc2VkUmVnaXN0ZXJzKEluc3QmLCBjb25zdCBSZWdpc3RlclNldCYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVwb3J0VXNlZFJlZ2lzdGVycyhJbnN0JiwgY29uc3QgUmVnaXN0ZXJTZXQpID0g
MDsKICAgICAKICAgICB2aXJ0dWFsIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShJbnN0Jiwg
Q0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKSA9IDA7CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcAkocmV2aXNpb24gMjI0NTM5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTg3Niw3ICsxODc2LDcgQEAgdm9pZCB0ZXN0QXJndW1lbnRSZWdQaW5uZWQyKCkKIAogICAgIEIz
OjpCYXNpY0Jsb2NrKiBiM1Jvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQjM6OlBhdGNocG9p
bnRWYWx1ZSogcGF0Y2hwb2ludCA9IGIzUm9vdC0+YXBwZW5kTmV3PEIzOjpQYXRjaHBvaW50VmFs
dWU+KHByb2MsIEIzOjpWb2lkLCBCMzo6T3JpZ2luKCkpOwotICAgIHBhdGNocG9pbnQtPmNsb2Ji
ZXIoUmVnaXN0ZXJTZXQoKSk7IAorICAgIHBhdGNocG9pbnQtPmNsb2JiZXIoeyB9KTsgCiAgICAg
cGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAogICAgICAgICBbPV0gKENDYWxsSGVscGVycyYgaml0
LCBjb25zdCBCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgewogICAgICAgICAgICAgaml0
Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoNDIpLCBwaW5uZWQpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3Mu
Y3BwCShyZXZpc2lvbiAyMjQ1MzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
UG9seW1vcnBoaWNBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MiwxNCArNzIsMTQgQEAg
dm9pZCBBY2Nlc3NHZW5lcmF0aW9uU3RhdGU6OnN1Y2NlZWQoKQogICAgIHN1Y2Nlc3MuYXBwZW5k
KGppdC0+anVtcCgpKTsKIH0KIAotY29uc3QgUmVnaXN0ZXJTZXQmIEFjY2Vzc0dlbmVyYXRpb25T
dGF0ZTo6bGl2ZVJlZ2lzdGVyc0ZvckNhbGwoKQorY29uc3QgUmVnaXN0ZXJTZXQgQWNjZXNzR2Vu
ZXJhdGlvblN0YXRlOjpsaXZlUmVnaXN0ZXJzRm9yQ2FsbCgpCiB7CiAgICAgaWYgKCFtX2NhbGN1
bGF0ZWRSZWdpc3RlcnNGb3JDYWxsQW5kRXhjZXB0aW9uSGFuZGxpbmcpCiAgICAgICAgIGNhbGN1
bGF0ZUxpdmVSZWdpc3RlcnNGb3JDYWxsQW5kRXhjZXB0aW9uSGFuZGxpbmcoKTsKICAgICByZXR1
cm4gbV9saXZlUmVnaXN0ZXJzRm9yQ2FsbDsKIH0KIAotY29uc3QgUmVnaXN0ZXJTZXQmIEFjY2Vz
c0dlbmVyYXRpb25TdGF0ZTo6bGl2ZVJlZ2lzdGVyc1RvUHJlc2VydmVBdEV4Y2VwdGlvbkhhbmRs
aW5nQ2FsbFNpdGUoKQorY29uc3QgUmVnaXN0ZXJTZXQgQWNjZXNzR2VuZXJhdGlvblN0YXRlOjps
aXZlUmVnaXN0ZXJzVG9QcmVzZXJ2ZUF0RXhjZXB0aW9uSGFuZGxpbmdDYWxsU2l0ZSgpCiB7CiAg
ICAgaWYgKCFtX2NhbGN1bGF0ZWRSZWdpc3RlcnNGb3JDYWxsQW5kRXhjZXB0aW9uSGFuZGxpbmcp
CiAgICAgICAgIGNhbGN1bGF0ZUxpdmVSZWdpc3RlcnNGb3JDYWxsQW5kRXhjZXB0aW9uSGFuZGxp
bmcoKTsKQEAgLTkzLDcgKzkzLDcgQEAgc3RhdGljIFJlZ2lzdGVyU2V0IGNhbGxlZVNhdmVSZWdp
c3RlcnMoKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWNvbnN0IFJlZ2lzdGVyU2V0JiBBY2Nl
c3NHZW5lcmF0aW9uU3RhdGU6OmNhbGN1bGF0ZUxpdmVSZWdpc3RlcnNGb3JDYWxsQW5kRXhjZXB0
aW9uSGFuZGxpbmcoKQorY29uc3QgUmVnaXN0ZXJTZXQgQWNjZXNzR2VuZXJhdGlvblN0YXRlOjpj
YWxjdWxhdGVMaXZlUmVnaXN0ZXJzRm9yQ2FsbEFuZEV4Y2VwdGlvbkhhbmRsaW5nKCkKIHsKICAg
ICBpZiAoIW1fY2FsY3VsYXRlZFJlZ2lzdGVyc0ZvckNhbGxBbmRFeGNlcHRpb25IYW5kbGluZykg
ewogICAgICAgICBtX2NhbGN1bGF0ZWRSZWdpc3RlcnNGb3JDYWxsQW5kRXhjZXB0aW9uSGFuZGxp
bmcgPSB0cnVlOwpAQCAtMTA5LDcgKzEwOSw3IEBAIGNvbnN0IFJlZ2lzdGVyU2V0JiBBY2Nlc3NH
ZW5lcmF0aW9uU3RhdGUKICAgICByZXR1cm4gbV9saXZlUmVnaXN0ZXJzRm9yQ2FsbDsKIH0KIAot
YXV0byBBY2Nlc3NHZW5lcmF0aW9uU3RhdGU6OnByZXNlcnZlTGl2ZVJlZ2lzdGVyc1RvU3RhY2tG
b3JDYWxsKGNvbnN0IFJlZ2lzdGVyU2V0JiBleHRyYSkgLT4gU3BpbGxTdGF0ZQorYXV0byBBY2Nl
c3NHZW5lcmF0aW9uU3RhdGU6OnByZXNlcnZlTGl2ZVJlZ2lzdGVyc1RvU3RhY2tGb3JDYWxsKGNv
bnN0IFJlZ2lzdGVyU2V0IGV4dHJhKSAtPiBTcGlsbFN0YXRlCiB7CiAgICAgUmVnaXN0ZXJTZXQg
bGl2ZVJlZ2lzdGVycyA9IGxpdmVSZWdpc3RlcnNGb3JDYWxsKCk7CiAgICAgbGl2ZVJlZ2lzdGVy
cy5tZXJnZShleHRyYSk7CkBAIC0xNDAsNyArMTQwLDcgQEAgdm9pZCBBY2Nlc3NHZW5lcmF0aW9u
U3RhdGU6OnJlc3RvcmVMaXZlUgogICAgIHJlc3RvcmVMaXZlUmVnaXN0ZXJzRnJvbVN0YWNrRm9y
Q2FsbChzcGlsbFN0YXRlLCBkb250UmVzdG9yZSk7CiB9CiAKLXZvaWQgQWNjZXNzR2VuZXJhdGlv
blN0YXRlOjpyZXN0b3JlTGl2ZVJlZ2lzdGVyc0Zyb21TdGFja0ZvckNhbGwoY29uc3QgU3BpbGxT
dGF0ZSYgc3BpbGxTdGF0ZSwgY29uc3QgUmVnaXN0ZXJTZXQmIGRvbnRSZXN0b3JlKQordm9pZCBB
Y2Nlc3NHZW5lcmF0aW9uU3RhdGU6OnJlc3RvcmVMaXZlUmVnaXN0ZXJzRnJvbVN0YWNrRm9yQ2Fs
bChjb25zdCBTcGlsbFN0YXRlJiBzcGlsbFN0YXRlLCBjb25zdCBSZWdpc3RlclNldCBkb250UmVz
dG9yZSkKIHsKICAgICB1bnNpZ25lZCBleHRyYVN0YWNrUGFkZGluZyA9IDA7CiAgICAgU2NyYXRj
aFJlZ2lzdGVyQWxsb2NhdG9yOjpyZXN0b3JlUmVnaXN0ZXJzRnJvbVN0YWNrRm9yQ2FsbCgqaml0
LCBzcGlsbFN0YXRlLnNwaWxsZWRSZWdpc3RlcnMsIGRvbnRSZXN0b3JlLCBzcGlsbFN0YXRlLm51
bWJlck9mU3RhY2tCeXRlc1VzZWRGb3JSZWdpc3RlclByZXNlcnZhdGlvbiwgZXh0cmFTdGFja1Bh
ZGRpbmcpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGlj
QWNjZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Bv
bHltb3JwaGljQWNjZXNzLmgJKHJldmlzaW9uIDIyNDUzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMx
LDE0ICsyMzEsMTQgQEAgc3RydWN0IEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSB7CiAgICAgICAgIGJv
b2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG51bWJlck9mU3RhY2tCeXRlc1VzZWRGb3JSZWdp
c3RlclByZXNlcnZhdGlvbiA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCk7
IH0KICAgICB9OwogCi0gICAgY29uc3QgUmVnaXN0ZXJTZXQmIGNhbGN1bGF0ZUxpdmVSZWdpc3Rl
cnNGb3JDYWxsQW5kRXhjZXB0aW9uSGFuZGxpbmcoKTsKKyAgICBjb25zdCBSZWdpc3RlclNldCBj
YWxjdWxhdGVMaXZlUmVnaXN0ZXJzRm9yQ2FsbEFuZEV4Y2VwdGlvbkhhbmRsaW5nKCk7CiAKLSAg
ICBTcGlsbFN0YXRlIHByZXNlcnZlTGl2ZVJlZ2lzdGVyc1RvU3RhY2tGb3JDYWxsKGNvbnN0IFJl
Z2lzdGVyU2V0JiBleHRyYSA9IFJlZ2lzdGVyU2V0KCkpOworICAgIFNwaWxsU3RhdGUgcHJlc2Vy
dmVMaXZlUmVnaXN0ZXJzVG9TdGFja0ZvckNhbGwoY29uc3QgUmVnaXN0ZXJTZXQgZXh0cmEgPSB7
IH0pOwogCiAgICAgdm9pZCByZXN0b3JlTGl2ZVJlZ2lzdGVyc0Zyb21TdGFja0ZvckNhbGxXaXRo
VGhyb3duRXhjZXB0aW9uKGNvbnN0IFNwaWxsU3RhdGUmKTsKLSAgICB2b2lkIHJlc3RvcmVMaXZl
UmVnaXN0ZXJzRnJvbVN0YWNrRm9yQ2FsbChjb25zdCBTcGlsbFN0YXRlJiwgY29uc3QgUmVnaXN0
ZXJTZXQmIGRvbnRSZXN0b3JlID0gUmVnaXN0ZXJTZXQoKSk7CisgICAgdm9pZCByZXN0b3JlTGl2
ZVJlZ2lzdGVyc0Zyb21TdGFja0ZvckNhbGwoY29uc3QgU3BpbGxTdGF0ZSYsIGNvbnN0IFJlZ2lz
dGVyU2V0IGRvbnRSZXN0b3JlID0geyB9KTsKIAotICAgIGNvbnN0IFJlZ2lzdGVyU2V0JiBsaXZl
UmVnaXN0ZXJzRm9yQ2FsbCgpOworICAgIGNvbnN0IFJlZ2lzdGVyU2V0IGxpdmVSZWdpc3RlcnNG
b3JDYWxsKCk7CiAKICAgICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5kZXhGb3JFeGNlcHRpb25I
YW5kbGluZ09yT3JpZ2luYWwoKTsKICAgICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5kZXhGb3JF
eGNlcHRpb25IYW5kbGluZygpCkBAIC0yNjcsNyArMjY3LDcgQEAgc3RydWN0IEFjY2Vzc0dlbmVy
YXRpb25TdGF0ZSB7CiAgICAgU3BpbGxTdGF0ZSBzcGlsbFN0YXRlRm9ySlNHZXR0ZXJTZXR0ZXIo
KSBjb25zdCB7IHJldHVybiBtX3NwaWxsU3RhdGVGb3JKU0dldHRlclNldHRlcjsgfQogICAgIAog
cHJpdmF0ZToKLSAgICBjb25zdCBSZWdpc3RlclNldCYgbGl2ZVJlZ2lzdGVyc1RvUHJlc2VydmVB
dEV4Y2VwdGlvbkhhbmRsaW5nQ2FsbFNpdGUoKTsKKyAgICBjb25zdCBSZWdpc3RlclNldCBsaXZl
UmVnaXN0ZXJzVG9QcmVzZXJ2ZUF0RXhjZXB0aW9uSGFuZGxpbmdDYWxsU2l0ZSgpOwogICAgIAog
ICAgIFJlZ2lzdGVyU2V0IG1fbGl2ZVJlZ2lzdGVyc1RvUHJlc2VydmVBdEV4Y2VwdGlvbkhhbmRs
aW5nQ2FsbFNpdGU7CiAgICAgUmVnaXN0ZXJTZXQgbV9saXZlUmVnaXN0ZXJzRm9yQ2FsbDsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAkocmV2aXNpb24gMjI0
NTM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTE3LDcgKzExNyw3IEBAIFJlZ2lzdGVyU2V0IEpJVENvZGU6OmxpdmVSZWdp
c3RlcnNUb1ByZXMKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBSZWdpc3RlclNldCgp
OworICAgIHJldHVybiB7IH07CiB9CiAKICNpZiBFTkFCTEUoRlRMX0pJVCkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmNwcAkocmV2aXNpb24gMjI0NTM5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTQzLDcgKzE0Myw3IEBAIFJlZ2lzdGVyU2V0IEpJVENvZGU6OmxpdmVSZWdpc3RlcnNUb1By
ZXMKICAgICAgICAgICAgIHJldHVybiBWYWx1ZVJlcDo6dXNlZFJlZ2lzdGVycyhleGl0Lm1fdmFs
dWVSZXBzKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gUmVnaXN0ZXJTZXQoKTsKKyAg
ICByZXR1cm4geyB9OwogfQogCiBzdGQ6Om9wdGlvbmFsPENvZGVPcmlnaW4+IEpJVENvZGU6OmZp
bmRQQyhDb2RlQmxvY2sqIGNvZGVCbG9jaywgdm9pZCogcGMpCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExhenlTbG93UGF0aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTGF6eVNsb3dQYXRoLmgJKHJldmlzaW9uIDIyNDUzOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGF6eVNsb3dQYXRoLmgJKHdvcmtpbmcgY29weSkK
QEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogCiAgICAgQ29kZUxvY2F0aW9uSnVtcCBwYXRjaGFi
bGVKdW1wKCkgY29uc3QgeyByZXR1cm4gbV9wYXRjaGFibGVKdW1wOyB9CiAgICAgQ29kZUxvY2F0
aW9uTGFiZWwgZG9uZSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9uZTsgfQotICAgIGNvbnN0IFJlZ2lz
dGVyU2V0JiB1c2VkUmVnaXN0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV91c2VkUmVnaXN0ZXJzOyB9
CisgICAgY29uc3QgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycygpIGNvbnN0IHsgcmV0dXJuIG1f
dXNlZFJlZ2lzdGVyczsgfQogICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2FsbFNpdGVJbmRleDsgfQogCiAgICAgdm9pZCBnZW5lcmF0ZShDb2RlQmxv
Y2sqKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsS2V5
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENh
bGxLZXkuaAkocmV2aXNpb24gMjI0NTM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExTbG93UGF0aENhbGxLZXkuaAkod29ya2luZyBjb3B5KQpAQCAtNTksOSArNTksOSBAQCBwdWJs
aWM6CiAgICAgewogICAgIH0KICAgICAKLSAgICBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lz
dGVycygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlZFJlZ2lzdGVyczsgfQorICAgIGNvbnN0IFJlZ2lz
dGVyU2V0IHVzZWRSZWdpc3RlcnMoKSBjb25zdCB7IHJldHVybiBtX3VzZWRSZWdpc3RlcnM7IH0K
ICAgICB2b2lkKiBjYWxsVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9jYWxsVGFyZ2V0OyB9Ci0g
ICAgY29uc3QgUmVnaXN0ZXJTZXQmIGFyZ3VtZW50UmVnaXN0ZXJzKCkgY29uc3QgeyByZXR1cm4g
bV9hcmd1bWVudFJlZ2lzdGVyczsgfQorICAgIGNvbnN0IFJlZ2lzdGVyU2V0IGFyZ3VtZW50UmVn
aXN0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9hcmd1bWVudFJlZ2lzdGVyczsgfQogICAgIHB0cmRp
ZmZfdCBvZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX29mZnNldDsgfQogICAgIAogICAgIFNsb3dQ
YXRoQ2FsbEtleSB3aXRoQ2FsbFRhcmdldCh2b2lkKiBjYWxsVGFyZ2V0KQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVENvZGUuY3BwCShyZXZpc2lvbiAyMjQ1MzkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjIsNyAr
MjIyLDcgQEAgSklUQ29kZTo6Q29kZVB0ciBOYXRpdmVKSVRDb2RlOjphZGRyZXNzRgogI2lmIEVO
QUJMRShKSVQpCiBSZWdpc3RlclNldCBKSVRDb2RlOjpsaXZlUmVnaXN0ZXJzVG9QcmVzZXJ2ZUF0
RXhjZXB0aW9uSGFuZGxpbmdDYWxsU2l0ZShDb2RlQmxvY2sqLCBDYWxsU2l0ZUluZGV4KQogewot
ICAgIHJldHVybiBSZWdpc3RlclNldCgpOworICAgIHJldHVybiB7IH07CiB9CiAjZW5kaWYKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5jcHAJKHJldmlzaW9u
IDIyNDUzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIFJlZ2lzdGVyU2V0IFJlZ2lzdGVyU2V0Ojpy
ZXNlcnZlZEhhcmR3YXIKICNlbGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNX1RSQURJVElP
TkFMKQogICAgIHJldHVybiBSZWdpc3RlclNldChBUk1SZWdpc3RlcnM6OmxyLCBBUk1SZWdpc3Rl
cnM6OnBjKTsKICNlbHNlCi0gICAgcmV0dXJuIFJlZ2lzdGVyU2V0KCk7CisgICAgcmV0dXJuIHsg
fTsKICNlbmRpZgogfQogCkBAIC02Myw3ICs2Myw3IEBAIFJlZ2lzdGVyU2V0IFJlZ2lzdGVyU2V0
OjpydW50aW1lUmVnaXN0ZXIKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIHJldHVybiBSZWdpc3Rl
clNldChHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIEdQUkluZm86OnRhZ01hc2tSZWdp
c3Rlcik7CiAjZWxzZQotICAgIHJldHVybiBSZWdpc3RlclNldCgpOworICAgIHJldHVybiB7IH07
CiAjZW5kaWYKIH0KIApAQCAtMTAxLDcgKzEwMSw3IEBAIFJlZ2lzdGVyU2V0IFJlZ2lzdGVyU2V0
OjptYWNyb1NjcmF0Y2hSZWcKICAgICByZXN1bHQuc2V0KE1hY3JvQXNzZW1ibGVyOjpjbXBUZW1w
UmVnaXN0ZXIpOwogICAgIHJldHVybiByZXN1bHQ7CiAjZWxzZQotICAgIHJldHVybiBSZWdpc3Rl
clNldCgpOworICAgIHJldHVybiB7IH07CiAjZW5kaWYKIH0KIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuaAkocmV2aXNpb24gMjI0NTM5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0
MCw4IEBAIGNsYXNzIFJlZ2lzdGVyQXRPZmZzZXRMaXN0OwogCiBjbGFzcyBSZWdpc3RlclNldCB7
CiBwdWJsaWM6CisgICAgUmVnaXN0ZXJTZXQoKSB7IH0KKwogICAgIHRlbXBsYXRlPHR5cGVuYW1l
Li4uIFJlZ3M+CiAgICAgZXhwbGljaXQgUmVnaXN0ZXJTZXQoUmVncy4uLiByZWdzKQogICAgIHsK
QEAgLTExNSwxMSArMTE3LDExIEBAIHB1YmxpYzoKICAgICB9CiAgICAgYm9vbCBjb250YWlucyhS
ZWcgcmVnKSBjb25zdCB7IHJldHVybiBnZXQocmVnKTsgfQogICAgIAotICAgIHZvaWQgbWVyZ2Uo
Y29uc3QgUmVnaXN0ZXJTZXQmIG90aGVyKSB7IG1fYml0cy5tZXJnZShvdGhlci5tX2JpdHMpOyB9
Ci0gICAgdm9pZCBmaWx0ZXIoY29uc3QgUmVnaXN0ZXJTZXQmIG90aGVyKSB7IG1fYml0cy5maWx0
ZXIob3RoZXIubV9iaXRzKTsgfQotICAgIHZvaWQgZXhjbHVkZShjb25zdCBSZWdpc3RlclNldCYg
b3RoZXIpIHsgbV9iaXRzLmV4Y2x1ZGUob3RoZXIubV9iaXRzKTsgfQorICAgIHZvaWQgbWVyZ2Uo
Y29uc3QgUmVnaXN0ZXJTZXQgb3RoZXIpIHsgbV9iaXRzLm1lcmdlKG90aGVyLm1fYml0cyk7IH0K
KyAgICB2b2lkIGZpbHRlcihjb25zdCBSZWdpc3RlclNldCBvdGhlcikgeyBtX2JpdHMuZmlsdGVy
KG90aGVyLm1fYml0cyk7IH0KKyAgICB2b2lkIGV4Y2x1ZGUoY29uc3QgUmVnaXN0ZXJTZXQgb3Ro
ZXIpIHsgbV9iaXRzLmV4Y2x1ZGUob3RoZXIubV9iaXRzKTsgfQogICAgIAotICAgIGJvb2wgc3Vi
c3VtZXMoY29uc3QgUmVnaXN0ZXJTZXQmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2JpdHMuc3Vi
c3VtZXMob3RoZXIubV9iaXRzKTsgfQorICAgIGJvb2wgc3Vic3VtZXMoY29uc3QgUmVnaXN0ZXJT
ZXQgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fYml0cy5zdWJzdW1lcyhvdGhlci5tX2JpdHMpOyB9
CiAgICAgCiAgICAgc2l6ZV90IG51bWJlck9mU2V0R1BScygpIGNvbnN0OwogICAgIHNpemVfdCBu
dW1iZXJPZlNldEZQUnMoKSBjb25zdDsKQEAgLTE1Myw4ICsxNTUsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBtX2JpdHMuZ2V0KGhhc2hTcGVjaWFsQml0SW5kZXgpICYmIG1fYml0cy5nZXQo
ZGVsZXRlZEJpdEluZGV4KTsKICAgICB9CiAgICAgCi0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IFJlZ2lzdGVyU2V0JiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9iaXRzID09IG90aGVyLm1fYml0
czsgfQotICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBSZWdpc3RlclNldCYgb3RoZXIpIGNvbnN0
IHsgcmV0dXJuIG1fYml0cyAhPSBvdGhlci5tX2JpdHM7IH0KKyAgICBib29sIG9wZXJhdG9yPT0o
Y29uc3QgUmVnaXN0ZXJTZXQgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyA9PSBvdGhlci5t
X2JpdHM7IH0KKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgUmVnaXN0ZXJTZXQgb3RoZXIpIGNv
bnN0IHsgcmV0dXJuIG1fYml0cyAhPSBvdGhlci5tX2JpdHM7IH0KICAgICAKICAgICB1bnNpZ25l
ZCBoYXNoKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzLmhhc2goKTsgfQogICAgIApAQCAtMjA1LDcg
KzIwNyw3IEBAIHB1YmxpYzoKICAgICAKIHByaXZhdGU6CiAgICAgdm9pZCBzZXRBbnkoUmVnIHJl
ZykgeyBzZXQocmVnKTsgfQotICAgIHZvaWQgc2V0QW55KGNvbnN0IFJlZ2lzdGVyU2V0JiBzZXQp
IHsgbWVyZ2Uoc2V0KTsgfQorICAgIHZvaWQgc2V0QW55KGNvbnN0IFJlZ2lzdGVyU2V0IHNldCkg
eyBtZXJnZShzZXQpOyB9CiAgICAgdm9pZCBzZXRNYW55KCkgeyB9CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgUmVnVHlwZSwgdHlwZW5hbWUuLi4gUmVncz4KICAgICB2b2lkIHNldE1hbnkoUmVnVHlw
ZSByZWcsIFJlZ3MuLi4gcmVncykKQEAgLTIyNSw3ICsyMjcsNyBAQCBwcml2YXRlOgogCiBzdHJ1
Y3QgUmVnaXN0ZXJTZXRIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBSZWdp
c3RlclNldCYgc2V0KSB7IHJldHVybiBzZXQuaGFzaCgpOyB9Ci0gICAgc3RhdGljIGJvb2wgZXF1
YWwoY29uc3QgUmVnaXN0ZXJTZXQmIGEsIGNvbnN0IFJlZ2lzdGVyU2V0JiBiKSB7IHJldHVybiBh
ID09IGI7IH0KKyAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBSZWdpc3RlclNldCBhLCBjb25z
dCBSZWdpc3RlclNldCBiKSB7IHJldHVybiBhID09IGI7IH0KICAgICBzdGF0aWMgY29uc3QgYm9v
bCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogfTsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU2NyYXRjaFJlZ2lzdGVyQWxsb2Nh
dG9yLmNwcAkocmV2aXNpb24gMjI0NTM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9T
Y3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3
IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1TY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3I6OlNjcmF0
Y2hSZWdpc3RlckFsbG9jYXRvcihjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycykKK1Nj
cmF0Y2hSZWdpc3RlckFsbG9jYXRvcjo6U2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yKGNvbnN0IFJl
Z2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMpCiAgICAgOiBtX3VzZWRSZWdpc3RlcnModXNlZFJlZ2lz
dGVycykKICAgICAsIG1fbnVtYmVyT2ZSZXVzZWRSZWdpc3RlcnMoMCkKIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3Iu
aAkocmV2aXNpb24gMjI0NTM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TY3JhdGNo
UmVnaXN0ZXJBbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBzdHJ1
Y3QgU2NyYXRjaEJ1ZmZlcjsKIGNsYXNzIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciB7CiBwdWJs
aWM6CiAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yKCkgeyB9Ci0gICAgU2NyYXRjaFJlZ2lz
dGVyQWxsb2NhdG9yKGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzKTsKKyAgICBTY3Jh
dGNoUmVnaXN0ZXJBbGxvY2F0b3IoY29uc3QgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyk7CiAg
ICAgflNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvcigpOwogCiAgICAgdm9pZCBsb2NrKEdQUlJlZyk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RlbXBSZWdpc3RlclNldC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UZW1wUmVnaXN0ZXJTZXQuY3Bw
CShyZXZpc2lvbiAyMjQ1MzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RlbXBSZWdp
c3RlclNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLVRlbXBSZWdpc3RlclNldDo6VGVtcFJlZ2lzdGVyU2V0KGNvbnN0IFJlZ2lzdGVy
U2V0JiBvdGhlcikKK1RlbXBSZWdpc3RlclNldDo6VGVtcFJlZ2lzdGVyU2V0KGNvbnN0IFJlZ2lz
dGVyU2V0IG90aGVyKQogewogICAgIGNsZWFyQWxsKCk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvVGVtcFJlZ2lzdGVyU2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9UZW1wUmVnaXN0ZXJTZXQuaAkocmV2aXNpb24gMjI0NTM5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UZW1wUmVnaXN0ZXJTZXQuaAkod29ya2luZyBjb3B5KQpA
QCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNsZWFyQWxsKCk7CiAgICAgfQogICAg
IAotICAgIFRlbXBSZWdpc3RlclNldChjb25zdCBSZWdpc3RlclNldCYpOworICAgIFRlbXBSZWdp
c3RlclNldChjb25zdCBSZWdpc3RlclNldCk7CiAgICAgCiAgICAgdm9pZCBzZXQoR1BSUmVnIHJl
ZykKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVy
YXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIz
SVJHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMjQ1MzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkxOSw3ICs5
MTksNyBAQCB2b2lkIEIzSVJHZW5lcmF0b3I6OmVtaXRUaWVyVXBDaGVjayh1aW50CiAgICAgICAg
ICAgICB0aWVyVXAubGluaygmaml0KTsKIAogICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgZXh0
cmFQYWRkaW5nQnl0ZXMgPSAwOwotICAgICAgICAgICAgUmVnaXN0ZXJTZXQgcmVnaXN0ZXJzVG9T
cGlsbCA9IFJlZ2lzdGVyU2V0KCk7CisgICAgICAgICAgICBSZWdpc3RlclNldCByZWdpc3RlcnNU
b1NwaWxsID0geyB9OwogICAgICAgICAgICAgcmVnaXN0ZXJzVG9TcGlsbC5hZGQoR1BSSW5mbzo6
YXJndW1lbnRHUFIxKTsKICAgICAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mU3RhY2tCeXRlc1Vz
ZWRGb3JSZWdpc3RlclByZXNlcnZhdGlvbiA9IFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvcjo6cHJl
c2VydmVSZWdpc3RlcnNUb1N0YWNrRm9yQ2FsbChqaXQsIHJlZ2lzdGVyc1RvU3BpbGwsIGV4dHJh
UGFkZGluZ0J5dGVzKTsKIAo=
</data>
<flag name="review"
          id="345586"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326257</attachid>
            <date>2017-11-07 14:02:53 -0800</date>
            <delta_ts>2017-11-07 14:09:33 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-179389.patch</filename>
            <type>text/plain</type>
            <size>9065</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI0NTQ2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBA
CisyMDE3LTExLTA3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJ
bnRyb2R1Y2UgYSBkZWZhdWx0IFJlZ2lzdGVyU2V0IGNvbnN0cnVjdG9yIHNvIHRoYXQgd2UgY2Fu
IHVzZSB7IH0gbm90YXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzkzODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJIGFsc28gcmVwbGFjZWQgdXNlcyBvZiAiUmVnaXN0ZXJTZXQoKSIgd2l0aCAi
eyB9IiB3aGVyZSB0aGUgdXNlIG9mICJSZWdpc3RlclNldCgpIgorICAgICAgICBkb2VzIG5vdCBh
ZGQgYW55IGNvZGUgZG9jdW1lbnRhdGlvbiB2YWx1ZS4KKworICAgICAgICAqIGIzL2Fpci9BaXJB
bGxvY2F0ZVJlZ2lzdGVyc0FuZFN0YWNrQnlMaW5lYXJTY2FuLmNwcDoKKyAgICAgICAgKiBiMy9h
aXIvQWlyQ29kZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkNvZGU6OnNldFJlZ3NJblBy
aW9yaXR5T3JkZXIpOgorICAgICAgICAqIGIzL2Fpci9BaXJQcmludFNwZWNpYWwuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6QWlyOjpQcmludFNwZWNpYWw6OmV4dHJhRWFybHlDbG9iYmVyZWRSZWdz
KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6UHJpbnRTcGVjaWFsOjpleHRyYUNsb2JiZXJlZFJl
Z3MpOgorICAgICAgICAqIGIzL2Fpci90ZXN0YWlyLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9Q
b2x5bW9ycGhpY0FjY2Vzcy5oOgorICAgICAgICAoSlNDOjpBY2Nlc3NHZW5lcmF0aW9uU3RhdGU6
OnByZXNlcnZlTGl2ZVJlZ2lzdGVyc1RvU3RhY2tGb3JDYWxsKToKKyAgICAgICAgKEpTQzo6QWNj
ZXNzR2VuZXJhdGlvblN0YXRlOjpyZXN0b3JlTGl2ZVJlZ2lzdGVyc0Zyb21TdGFja0ZvckNhbGwp
OgorICAgICAgICAqIGRmZy9ERkdKSVRDb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRD
b2RlOjpsaXZlUmVnaXN0ZXJzVG9QcmVzZXJ2ZUF0RXhjZXB0aW9uSGFuZGxpbmdDYWxsU2l0ZSk6
CisgICAgICAgICogZnRsL0ZUTEpJVENvZGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpJVENv
ZGU6OmxpdmVSZWdpc3RlcnNUb1ByZXNlcnZlQXRFeGNlcHRpb25IYW5kbGluZ0NhbGxTaXRlKToK
KyAgICAgICAgKiBqaXQvSklUQ29kZS5jcHA6CisgICAgICAgIChKU0M6OkpJVENvZGU6OmxpdmVS
ZWdpc3RlcnNUb1ByZXNlcnZlQXRFeGNlcHRpb25IYW5kbGluZ0NhbGxTaXRlKToKKyAgICAgICAg
KiBqaXQvUmVnaXN0ZXJTZXQuY3BwOgorICAgICAgICAoSlNDOjpSZWdpc3RlclNldDo6cmVzZXJ2
ZWRIYXJkd2FyZVJlZ2lzdGVycyk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyU2V0OjpydW50aW1l
UmVnaXN0ZXJzKToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lz
dGVycyk6CisgICAgICAgICogaml0L1JlZ2lzdGVyU2V0Lmg6CisgICAgICAgIChKU0M6OlJlZ2lz
dGVyU2V0OjpSZWdpc3RlclNldCk6CisgICAgICAgICogd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5j
cHA6CisgICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OmVtaXRUaWVyVXBDaGVjayk6
CisKIDIwMTctMTEtMDcgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IEFjY2Vzc0Nhc2U6OmdlbmVyYXRlSW1wbCgpIHNob3VsZCBleGNsdWRlIHRoZSByZXN1bHQgcmVn
aXN0ZXIgd2hlbiByZXN0b3JpbmcgcmVnaXN0ZXJzIGFmdGVyIGEgY2FsbC4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVSZWdpc3RlcnNBbmRTdGFja0J5TGlu
ZWFyU2Nhbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJBbGxvY2F0ZVJlZ2lzdGVyc0FuZFN0YWNrQnlMaW5lYXJTY2FuLmNwcAkocmV2aXNpb24gMjI0
NTM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVJlZ2lzdGVy
c0FuZFN0YWNrQnlMaW5lYXJTY2FuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcxLDcgKzM3MSw3
IEBAIHByaXZhdGU6CiAgICAgICAgIC8vIGh0dHA6Ly9kbC5hY20ub3JnL2NpdGF0aW9uLmNmbT9p
ZD0zMzAyNTAuCiAKICAgICAgICAgbV9hY3RpdmUuY2xlYXIoKTsKLSAgICAgICAgbV9hY3RpdmVS
ZWdzID0gUmVnaXN0ZXJTZXQoKTsKKyAgICAgICAgbV9hY3RpdmVSZWdzID0geyB9OwogICAgICAg
ICAKICAgICAgICAgc2l6ZV90IGNsb2JiZXJJbmRleCA9IDA7CiAgICAgICAgIGZvciAoVG1wJiB0
bXAgOiBtX3RtcHMpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29k
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2Rl
LmNwcAkocmV2aXNpb24gMjI0NTM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJDb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODksNyArODksNyBAQCBDb2RlOjp+Q29kZSgp
CiB2b2lkIENvZGU6OnNldFJlZ3NJblByaW9yaXR5T3JkZXIoQmFuayBiYW5rLCBjb25zdCBWZWN0
b3I8UmVnPiYgcmVncykKIHsKICAgICByZWdzSW5Qcmlvcml0eU9yZGVySW1wbChiYW5rKSA9IHJl
Z3M7Ci0gICAgbV9tdXRhYmxlUmVncyA9IFJlZ2lzdGVyU2V0KCk7CisgICAgbV9tdXRhYmxlUmVn
cyA9IHsgfTsKICAgICBmb3JFYWNoQmFuaygKICAgICAgICAgWyZdIChCYW5rIGJhbmspIHsKICAg
ICAgICAgICAgIGZvciAoUmVnIHJlZyA6IHJlZ3NJblByaW9yaXR5T3JkZXIoYmFuaykpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQcmludFNwZWNpYWwuY3Bw
CShyZXZpc2lvbiAyMjQ1MzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclBy
aW50U3BlY2lhbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkxLDEyICs5MSwxMiBAQCBDQ2FsbEhl
bHBlcnM6Okp1bXAgUHJpbnRTcGVjaWFsOjpnZW5lcmF0CiAKIFJlZ2lzdGVyU2V0IFByaW50U3Bl
Y2lhbDo6ZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MoSW5zdCYpCiB7Ci0gICAgcmV0dXJuIFJlZ2lz
dGVyU2V0KCk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogUmVnaXN0ZXJTZXQgUHJpbnRTcGVjaWFs
OjpleHRyYUNsb2JiZXJlZFJlZ3MoSW5zdCYpCiB7Ci0gICAgcmV0dXJuIFJlZ2lzdGVyU2V0KCk7
CisgICAgcmV0dXJuIHsgfTsKIH0KIAogdm9pZCBQcmludFNwZWNpYWw6OmR1bXBJbXBsKFByaW50
U3RyZWFtJiBvdXQpIGNvbnN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rl
c3RhaXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVz
dGFpci5jcHAJKHJldmlzaW9uIDIyNDUzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvdGVzdGFpci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4NzYsNyArMTg3Niw3IEBAIHZvaWQg
dGVzdEFyZ3VtZW50UmVnUGlubmVkMigpCiAKICAgICBCMzo6QmFzaWNCbG9jayogYjNSb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIEIzOjpQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9pbnQgPSBi
M1Jvb3QtPmFwcGVuZE5ldzxCMzo6UGF0Y2hwb2ludFZhbHVlPihwcm9jLCBCMzo6Vm9pZCwgQjM6
Ok9yaWdpbigpKTsKLSAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0KCkpOyAKKyAg
ICBwYXRjaHBvaW50LT5jbG9iYmVyKHsgfSk7IAogICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRv
cigKICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtcyYpIHsKICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTMyKDQyKSwgcGlubmVkKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCShyZXZpc2lvbiAyMjQ1MzkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTIzMywxMCArMjMzLDEwIEBAIHN0cnVjdCBBY2Nlc3NHZW5lcmF0aW9uU3Rh
dGUgewogCiAgICAgY29uc3QgUmVnaXN0ZXJTZXQmIGNhbGN1bGF0ZUxpdmVSZWdpc3RlcnNGb3JD
YWxsQW5kRXhjZXB0aW9uSGFuZGxpbmcoKTsKIAotICAgIFNwaWxsU3RhdGUgcHJlc2VydmVMaXZl
UmVnaXN0ZXJzVG9TdGFja0ZvckNhbGwoY29uc3QgUmVnaXN0ZXJTZXQmIGV4dHJhID0gUmVnaXN0
ZXJTZXQoKSk7CisgICAgU3BpbGxTdGF0ZSBwcmVzZXJ2ZUxpdmVSZWdpc3RlcnNUb1N0YWNrRm9y
Q2FsbChjb25zdCBSZWdpc3RlclNldCYgZXh0cmEgPSB7IH0pOwogCiAgICAgdm9pZCByZXN0b3Jl
TGl2ZVJlZ2lzdGVyc0Zyb21TdGFja0ZvckNhbGxXaXRoVGhyb3duRXhjZXB0aW9uKGNvbnN0IFNw
aWxsU3RhdGUmKTsKLSAgICB2b2lkIHJlc3RvcmVMaXZlUmVnaXN0ZXJzRnJvbVN0YWNrRm9yQ2Fs
bChjb25zdCBTcGlsbFN0YXRlJiwgY29uc3QgUmVnaXN0ZXJTZXQmIGRvbnRSZXN0b3JlID0gUmVn
aXN0ZXJTZXQoKSk7CisgICAgdm9pZCByZXN0b3JlTGl2ZVJlZ2lzdGVyc0Zyb21TdGFja0ZvckNh
bGwoY29uc3QgU3BpbGxTdGF0ZSYsIGNvbnN0IFJlZ2lzdGVyU2V0JiBkb250UmVzdG9yZSA9IHsg
fSk7CiAKICAgICBjb25zdCBSZWdpc3RlclNldCYgbGl2ZVJlZ2lzdGVyc0ZvckNhbGwoKTsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuY3BwCShyZXZpc2lvbiAy
MjQ1MzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTcsNyArMTE3LDcgQEAgUmVnaXN0ZXJTZXQgSklUQ29kZTo6bGl2ZVJl
Z2lzdGVyc1RvUHJlcwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIFJlZ2lzdGVyU2V0
KCk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogI2lmIEVOQUJMRShGVExfSklUKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuY3BwCShyZXZpc2lvbiAyMjQ1MzkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNDMsNyArMTQzLDcgQEAgUmVnaXN0ZXJTZXQgSklUQ29kZTo6bGl2ZVJlZ2lzdGVyc1Rv
UHJlcwogICAgICAgICAgICAgcmV0dXJuIFZhbHVlUmVwOjp1c2VkUmVnaXN0ZXJzKGV4aXQubV92
YWx1ZVJlcHMpOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBSZWdpc3RlclNldCgpOwor
ICAgIHJldHVybiB7IH07CiB9CiAKIHN0ZDo6b3B0aW9uYWw8Q29kZU9yaWdpbj4gSklUQ29kZTo6
ZmluZFBDKENvZGVCbG9jayogY29kZUJsb2NrLCB2b2lkKiBwYykKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQ29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRDb2RlLmNwcAkocmV2aXNpb24gMjI0NTM5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRDb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIyLDcgKzIyMiw3
IEBAIEpJVENvZGU6OkNvZGVQdHIgTmF0aXZlSklUQ29kZTo6YWRkcmVzc0YKICNpZiBFTkFCTEUo
SklUKQogUmVnaXN0ZXJTZXQgSklUQ29kZTo6bGl2ZVJlZ2lzdGVyc1RvUHJlc2VydmVBdEV4Y2Vw
dGlvbkhhbmRsaW5nQ2FsbFNpdGUoQ29kZUJsb2NrKiwgQ2FsbFNpdGVJbmRleCkKIHsKLSAgICBy
ZXR1cm4gUmVnaXN0ZXJTZXQoKTsKKyAgICByZXR1cm4geyB9OwogfQogI2VuZGlmCiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwCShyZXZpc2lvbiAyMjQ1
MzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBSZWdpc3RlclNldCBSZWdpc3RlclNldDo6cmVzZXJ2
ZWRIYXJkd2FyCiAjZWxpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTV9UUkFESVRJT05BTCkK
ICAgICByZXR1cm4gUmVnaXN0ZXJTZXQoQVJNUmVnaXN0ZXJzOjpsciwgQVJNUmVnaXN0ZXJzOjpw
Yyk7CiAjZWxzZQotICAgIHJldHVybiBSZWdpc3RlclNldCgpOworICAgIHJldHVybiB7IH07CiAj
ZW5kaWYKIH0KIApAQCAtNjMsNyArNjMsNyBAQCBSZWdpc3RlclNldCBSZWdpc3RlclNldDo6cnVu
dGltZVJlZ2lzdGVyCiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICByZXR1cm4gUmVnaXN0ZXJTZXQo
R1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIp
OwogI2Vsc2UKLSAgICByZXR1cm4gUmVnaXN0ZXJTZXQoKTsKKyAgICByZXR1cm4geyB9OwogI2Vu
ZGlmCiB9CiAKQEAgLTEwMSw3ICsxMDEsNyBAQCBSZWdpc3RlclNldCBSZWdpc3RlclNldDo6bWFj
cm9TY3JhdGNoUmVnCiAgICAgcmVzdWx0LnNldChNYWNyb0Fzc2VtYmxlcjo6Y21wVGVtcFJlZ2lz
dGVyKTsKICAgICByZXR1cm4gcmVzdWx0OwogI2Vsc2UKLSAgICByZXR1cm4gUmVnaXN0ZXJTZXQo
KTsKKyAgICByZXR1cm4geyB9OwogI2VuZGlmCiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvUmVnaXN0ZXJTZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1JlZ2lzdGVyU2V0LmgJKHJldmlzaW9uIDIyNDUzOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsOCBA
QCBjbGFzcyBSZWdpc3RlckF0T2Zmc2V0TGlzdDsKIAogY2xhc3MgUmVnaXN0ZXJTZXQgewogcHVi
bGljOgorICAgIFJlZ2lzdGVyU2V0KCkgeyB9CisKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBS
ZWdzPgogICAgIGV4cGxpY2l0IFJlZ2lzdGVyU2V0KFJlZ3MuLi4gcmVncykKICAgICB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3Bw
CShyZXZpc2lvbiAyMjQ1MzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJ
UkdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkxOSw3ICs5MTksNyBAQCB2b2lkIEIz
SVJHZW5lcmF0b3I6OmVtaXRUaWVyVXBDaGVjayh1aW50CiAgICAgICAgICAgICB0aWVyVXAubGlu
aygmaml0KTsKIAogICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgZXh0cmFQYWRkaW5nQnl0ZXMg
PSAwOwotICAgICAgICAgICAgUmVnaXN0ZXJTZXQgcmVnaXN0ZXJzVG9TcGlsbCA9IFJlZ2lzdGVy
U2V0KCk7CisgICAgICAgICAgICBSZWdpc3RlclNldCByZWdpc3RlcnNUb1NwaWxsID0geyB9Owog
ICAgICAgICAgICAgcmVnaXN0ZXJzVG9TcGlsbC5hZGQoR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsK
ICAgICAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mU3RhY2tCeXRlc1VzZWRGb3JSZWdpc3RlclBy
ZXNlcnZhdGlvbiA9IFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvcjo6cHJlc2VydmVSZWdpc3RlcnNU
b1N0YWNrRm9yQ2FsbChqaXQsIHJlZ2lzdGVyc1RvU3BpbGwsIGV4dHJhUGFkZGluZ0J5dGVzKTsK
IAo=
</data>
<flag name="review"
          id="345588"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>