<?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>157392</bug_id>
          
          <creation_ts>2016-05-05 15:20:33 -0700</creation_ts>
          <short_desc>Modern IDB (Workers): Move TransactionOperation management from IDBConnectionToServer to IDBConnectionProxy</short_desc>
          <delta_ts>2016-05-05 16:11:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149953</blocked>
    
    <blocked>157394</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1190478</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-05-05 15:20:33 -0700</bug_when>
    <thetext>Modern IDB (Workers): Move TransactionOperation management from IDBConnectionToServer to IDBConnectionProxy

This gets us closer to IDBConnectionToServer being a thin layer of a main-thread-only object.

It also thins out the public interface of TransactionOperation to discourage future thread-unsafe usage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190482</commentid>
    <comment_count>1</comment_count>
      <attachid>278197</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-05-05 15:24:24 -0700</bug_when>
    <thetext>Created attachment 278197
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190496</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-05-05 16:09:53 -0700</bug_when>
    <thetext>The failures on mac-debug are unrelated to this patch.

Landing manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190498</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-05-05 16:11:25 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/200489</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278197</attachid>
            <date>2016-05-05 15:24:24 -0700</date>
            <delta_ts>2016-05-05 15:58:35 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>35624</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZGNkMDJhLi40MGNhNjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODYg
QEAKKzIwMTYtMDUtMDUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vZGVybiBJREIgKFdvcmtlcnMpOiBNb3ZlIFRyYW5zYWN0aW9uT3BlcmF0aW9uIG1hbmFn
ZW1lbnQgZnJvbSBJREJDb25uZWN0aW9uVG9TZXJ2ZXIgdG8gSURCQ29ubmVjdGlvblByb3h5Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MzkyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIChObyBjdXJyZW50IGNoYW5nZSBpbiBiZWhhdmlvciwgd2lsbCBiZSB0ZXN0ZWQgYXMgYnVn
IDE0OTk1MyBtYWtlcyBwcm9ncmVzcykuCisKKyAgICAgICAgU2V0IHVwIFRyYW5zYWN0aW9uT3Bl
cmF0aW9ucyBvbiB0aGUgSURCQ29ubmVjdGlvblByb3h5IGluc3RlYWQgb2YgdGhlIElEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6Y3JlYXRlT2JqZWN0U3Rv
cmVPblNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6Y3JlYXRlSW5k
ZXhPblNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6b3BlbkN1cnNv
ck9uU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjppdGVyYXRlQ3Vy
c29yT25TZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmdldFJlY29y
ZE9uU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpnZXRDb3VudE9u
U2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpkZWxldGVSZWNvcmRP
blNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6Y2xlYXJPYmplY3RT
dG9yZU9uU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpwdXRPckFk
ZE9uU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpkZWxldGVPYmpl
Y3RTdG9yZU9uU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpkZWxl
dGVJbmRleE9uU2VydmVyKToKKyAgICAgICAgCisgICAgICAgIElEQkNvbm5lY3Rpb25Qcm94eSBp
cyBub3cgdGhlIG93bmVyIG9mIGRpc3BhdGNoZWQgVHJhbnNhY3Rpb25PcGVyYXRpb25zOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmNyZWF0ZU9i
amVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblBy
b3h5OjpkZWxldGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklE
QkNvbm5lY3Rpb25Qcm94eTo6Y2xlYXJPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6Y3JlYXRlSW5kZXgpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmRlbGV0ZUluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5OjpwdXRPckFkZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6Z2V0UmVjb3Jk
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5OjpnZXRD
b3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6
ZGVsZXRlUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlv
blByb3h5OjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29u
bmVjdGlvblByb3h5OjppdGVyYXRlQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVu
dDo6SURCQ29ubmVjdGlvblByb3h5OjpzYXZlT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5Ojpjb21wbGV0ZU9wZXJhdGlvbik6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oOgorICAg
ICAgICAKKyAgICAgICAgUHJveHkgdGhpcyBpbi1hbmQtb3V0IGNhbGxzIHRvIHRoZSBDb25uZWN0
aW9uUHJveHk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Ub1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Ub1NlcnZlcjo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xp
ZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZENyZWF0ZU9iamVjdFN0b3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpkZWxldGVPYmpl
Y3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6ZGlkRGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50
OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNsZWFyT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZENsZWFyT2JqZWN0U3Rv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6
OmNyZWF0ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlv
blRvU2VydmVyOjpkaWRDcmVhdGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6
OklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGVsZXRlSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZERlbGV0ZUluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpwdXRPckFkZCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlk
UHV0T3JBZGQpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OmdldFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6ZGlkR2V0UmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVu
dDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0Q291bnQpOgorICAgICAgICAo
V2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRlbGV0ZVJlY29yZCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlk
RGVsZXRlUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlv
blRvU2VydmVyOjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURC
Q29ubmVjdGlvblRvU2VydmVyOjpkaWRPcGVuQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjppdGVyYXRlQ3Vyc29yKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRJdGVyYXRlQ3Vy
c29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVy
OjpzYXZlT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6
SURCQ29ubmVjdGlvblRvU2VydmVyOjpjb21wbGV0ZU9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOgor
CisgICAgICAgIC0gR2l2ZSBUcmFuc2FjdGlvbk9wZXJhdGlvbiBhIFRocmVhZElkZW50aWZpZXIg
bWVtYmVyCisgICAgICAgIC0gUHJpdmF0aXplIG1vc3QgcHVibGljIG1ldGhvZHMgZnJvbSBUcmFu
c2FjdGlvbk9wZXJhdGlvbgorICAgICAgICAtIE1ha2UgSURCUmVxdWVzdERhdGEgYSBmcmllbmQg
c28gaXQgY2FuIGdldCBhdCB0aGUgcHJpdmF0ZSBtZXRob2RzCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uOjp+VHJhbnNhY3Rpb25PcGVyYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpUcmFuc2FjdGlvbk9wZXJhdGlvbjo6cGVy
Zm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9u
Ojpjb21wbGV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpUcmFuc2FjdGlvbk9w
ZXJhdGlvbjo6b3JpZ2luVGhyZWFkSUQpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpU
cmFuc2FjdGlvbk9wZXJhdGlvbjo6dHJhbnNhY3Rpb25JZGVudGlmaWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkNsaWVudDo6VHJhbnNhY3Rpb25PcGVyYXRpb246Om9iamVjdFN0b3JlSWRlbnRp
Zmllcik6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9u
OjppbmRleElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpUcmFuc2Fj
dGlvbk9wZXJhdGlvbjo6Y3Vyc29ySWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpJREJD
bGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uOjp0cmFuc2FjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uOjppbmRleFJlY29yZFR5cGUpOgor
CiAyMDE2LTA1LTA0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNb2Rlcm4gSURCOiBNb3ZlIGFsbCBJREIgRE9NIG9iamVjdCBtYW5hZ2VtZW50IGZyb20gSURC
Q29ubmVjdGlvblRvU2VydmVyIHRvIElEQkNvbm5lY3Rpb25Qcm94eS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCAyMTM4
NjY5Li42OTI2NjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb24uY3BwCkBAIC01ODgsNyArNTg4LDcgQEAgdm9pZCBJREJUcmFuc2Fj
dGlvbjo6Y3JlYXRlT2JqZWN0U3RvcmVPblNlcnZlcihJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3Bl
cmF0aW9uJgogICAgIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV9kYXRhYmFzZS0+b3JpZ2lu
VGhyZWFkSUQoKSk7CiAgICAgQVNTRVJUKGlzVmVyc2lvbkNoYW5nZSgpKTsKIAotICAgIG1fZGF0
YWJhc2UtPnNlcnZlckNvbm5lY3Rpb24oKS5jcmVhdGVPYmplY3RTdG9yZShvcGVyYXRpb24sIGlu
Zm8pOworICAgIG1fZGF0YWJhc2UtPmNvbm5lY3Rpb25Qcm94eSgpLmNyZWF0ZU9iamVjdFN0b3Jl
KG9wZXJhdGlvbiwgaW5mbyk7CiB9CiAKIHZvaWQgSURCVHJhbnNhY3Rpb246OmRpZENyZWF0ZU9i
amVjdFN0b3JlT25TZXJ2ZXIoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKQEAgLTYx
OSw3ICs2MTksNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpjcmVhdGVJbmRleE9uU2VydmVyKElE
QkNsaWVudDo6VHJhbnNhY3Rpb25PcGVyYXRpb24mIG9wZXJhdAogICAgIEFTU0VSVChjdXJyZW50
VGhyZWFkKCkgPT0gbV9kYXRhYmFzZS0+b3JpZ2luVGhyZWFkSUQoKSk7CiAgICAgQVNTRVJUKGlz
VmVyc2lvbkNoYW5nZSgpKTsKIAotICAgIG1fZGF0YWJhc2UtPnNlcnZlckNvbm5lY3Rpb24oKS5j
cmVhdGVJbmRleChvcGVyYXRpb24sIGluZm8pOworICAgIG1fZGF0YWJhc2UtPmNvbm5lY3Rpb25Q
cm94eSgpLmNyZWF0ZUluZGV4KG9wZXJhdGlvbiwgaW5mbyk7CiB9CiAKIHZvaWQgSURCVHJhbnNh
Y3Rpb246OmRpZENyZWF0ZUluZGV4T25TZXJ2ZXIoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0
RGF0YSkKQEAgLTY3OCw3ICs2NzgsNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpvcGVuQ3Vyc29y
T25TZXJ2ZXIoSURCQ2xpZW50OjpUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aQogICAgIExP
RyhJbmRleGVkREIsICJJREJUcmFuc2FjdGlvbjo6b3BlbkN1cnNvck9uU2VydmVyIik7CiAgICAg
QVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX2RhdGFiYXNlLT5vcmlnaW5UaHJlYWRJRCgpKTsK
IAotICAgIG1fZGF0YWJhc2UtPnNlcnZlckNvbm5lY3Rpb24oKS5vcGVuQ3Vyc29yKG9wZXJhdGlv
biwgaW5mbyk7CisgICAgbV9kYXRhYmFzZS0+Y29ubmVjdGlvblByb3h5KCkub3BlbkN1cnNvcihv
cGVyYXRpb24sIGluZm8pOwogfQogCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpkaWRPcGVuQ3Vyc29y
T25TZXJ2ZXIoSURCUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0
RGF0YSkKQEAgLTcwNyw3ICs3MDcsNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjppdGVyYXRlQ3Vy
c29yT25TZXJ2ZXIoSURCQ2xpZW50OjpUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcgogICAgIExP
RyhJbmRleGVkREIsICJJREJUcmFuc2FjdGlvbjo6aXRlcmF0ZUN1cnNvck9uU2VydmVyIik7CiAg
ICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX2RhdGFiYXNlLT5vcmlnaW5UaHJlYWRJRCgp
KTsKIAotICAgIHNlcnZlckNvbm5lY3Rpb24oKS5pdGVyYXRlQ3Vyc29yKG9wZXJhdGlvbiwga2V5
LCBjb3VudCk7CisgICAgbV9kYXRhYmFzZS0+Y29ubmVjdGlvblByb3h5KCkuaXRlcmF0ZUN1cnNv
cihvcGVyYXRpb24sIGtleSwgY291bnQpOwogfQogCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpkaWRJ
dGVyYXRlQ3Vyc29yT25TZXJ2ZXIoSURCUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgSURCUmVzdWx0
RGF0YSYgcmVzdWx0RGF0YSkKQEAgLTc3MSw3ICs3NzEsNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9u
OjpnZXRSZWNvcmRPblNlcnZlcihJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVy
YXRpbwogICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2FjdGlvbjo6Z2V0UmVjb3JkT25TZXJ2
ZXIiKTsKICAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1fZGF0YWJhc2UtPm9yaWdpblRo
cmVhZElEKCkpOwogCi0gICAgc2VydmVyQ29ubmVjdGlvbigpLmdldFJlY29yZChvcGVyYXRpb24s
IGtleVJhbmdlKTsKKyAgICBtX2RhdGFiYXNlLT5jb25uZWN0aW9uUHJveHkoKS5nZXRSZWNvcmQo
b3BlcmF0aW9uLCBrZXlSYW5nZSk7CiB9CiAKIHZvaWQgSURCVHJhbnNhY3Rpb246OmRpZEdldFJl
Y29yZE9uU2VydmVyKElEQlJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IElEQlJlc3VsdERhdGEmIHJl
c3VsdERhdGEpCkBAIC04MzgsNyArODM4LDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6Z2V0Q291
bnRPblNlcnZlcihJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24KICAg
ICBMT0coSW5kZXhlZERCLCAiSURCVHJhbnNhY3Rpb246OmdldENvdW50T25TZXJ2ZXIiKTsKICAg
ICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1fZGF0YWJhc2UtPm9yaWdpblRocmVhZElEKCkp
OwogCi0gICAgc2VydmVyQ29ubmVjdGlvbigpLmdldENvdW50KG9wZXJhdGlvbiwga2V5UmFuZ2Up
OworICAgIG1fZGF0YWJhc2UtPmNvbm5lY3Rpb25Qcm94eSgpLmdldENvdW50KG9wZXJhdGlvbiwg
a2V5UmFuZ2UpOwogfQogCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpkaWRHZXRDb3VudE9uU2VydmVy
KElEQlJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCkBA
IC04NjksNyArODY5LDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6ZGVsZXRlUmVjb3JkT25TZXJ2
ZXIoSURCQ2xpZW50OjpUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmEKICAgICBMT0coSW5kZXhl
ZERCLCAiSURCVHJhbnNhY3Rpb246OmRlbGV0ZVJlY29yZE9uU2VydmVyIik7CiAgICAgQVNTRVJU
KGN1cnJlbnRUaHJlYWQoKSA9PSBtX2RhdGFiYXNlLT5vcmlnaW5UaHJlYWRJRCgpKTsKIAotICAg
IHNlcnZlckNvbm5lY3Rpb24oKS5kZWxldGVSZWNvcmQob3BlcmF0aW9uLCBrZXlSYW5nZSk7Cisg
ICAgbV9kYXRhYmFzZS0+Y29ubmVjdGlvblByb3h5KCkuZGVsZXRlUmVjb3JkKG9wZXJhdGlvbiwg
a2V5UmFuZ2UpOwogfQogCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpkaWREZWxldGVSZWNvcmRPblNl
cnZlcihJREJSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHREYXRh
KQpAQCAtOTAyLDcgKzkwMiw3IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246OmNsZWFyT2JqZWN0U3Rv
cmVPblNlcnZlcihJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvCiAgICAgTE9HKElu
ZGV4ZWREQiwgIklEQlRyYW5zYWN0aW9uOjpjbGVhck9iamVjdFN0b3JlT25TZXJ2ZXIiKTsKICAg
ICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1fZGF0YWJhc2UtPm9yaWdpblRocmVhZElEKCkp
OwogCi0gICAgc2VydmVyQ29ubmVjdGlvbigpLmNsZWFyT2JqZWN0U3RvcmUob3BlcmF0aW9uLCBv
YmplY3RTdG9yZUlkZW50aWZpZXIpOworICAgIG1fZGF0YWJhc2UtPmNvbm5lY3Rpb25Qcm94eSgp
LmNsZWFyT2JqZWN0U3RvcmUob3BlcmF0aW9uLCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogfQog
CiB2b2lkIElEQlRyYW5zYWN0aW9uOjpkaWRDbGVhck9iamVjdFN0b3JlT25TZXJ2ZXIoSURCUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKQEAgLTkzOSw3
ICs5MzksNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpwdXRPckFkZE9uU2VydmVyKElEQkNsaWVu
dDo6VHJhbnNhY3Rpb25PcGVyYXRpb24mIG9wZXJhdGlvbgogICAgIEFTU0VSVCh2YWx1ZSk7CiAK
ICAgICBpZiAoIXZhbHVlLT5oYXNCbG9iVVJMcygpKSB7Ci0gICAgICAgIHNlcnZlckNvbm5lY3Rp
b24oKS5wdXRPckFkZChvcGVyYXRpb24sIGtleS5nZXQoKSwgKnZhbHVlLCBvdmVyd3JpdGVNb2Rl
KTsKKyAgICAgICAgbV9kYXRhYmFzZS0+Y29ubmVjdGlvblByb3h5KCkucHV0T3JBZGQob3BlcmF0
aW9uLCBrZXkuZ2V0KCksICp2YWx1ZSwgb3ZlcndyaXRlTW9kZSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTk0Nyw3ICs5NDcsNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpwdXRPckFk
ZE9uU2VydmVyKElEQkNsaWVudDo6VHJhbnNhY3Rpb25PcGVyYXRpb24mIG9wZXJhdGlvbgogICAg
IFJlZlB0cjxJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uPiBvcGVyYXRpb25SZWYoJm9w
ZXJhdGlvbik7CiAgICAgdmFsdWUtPndyaXRlQmxvYnNUb0Rpc2tGb3JJbmRleGVkREIoW3Byb3Rl
Y3RvciwgdGhpcywgb3BlcmF0aW9uUmVmLCBrZXksIHZhbHVlLCBvdmVyd3JpdGVNb2RlXShjb25z
dCBJREJWYWx1ZSYgaWRiVmFsdWUpIHsKICAgICAgICAgaWYgKGlkYlZhbHVlLmRhdGEoKS5kYXRh
KCkpIHsKLSAgICAgICAgICAgIHNlcnZlckNvbm5lY3Rpb24oKS5wdXRPckFkZCgqb3BlcmF0aW9u
UmVmLCBrZXkuZ2V0KCksIGlkYlZhbHVlLCBvdmVyd3JpdGVNb2RlKTsKKyAgICAgICAgICAgIG1f
ZGF0YWJhc2UtPmNvbm5lY3Rpb25Qcm94eSgpLnB1dE9yQWRkKCpvcGVyYXRpb25SZWYsIGtleS5n
ZXQoKSwgaWRiVmFsdWUsIG92ZXJ3cml0ZU1vZGUpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAKQEAgLTk5MSw3ICs5OTEsNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpkZWxldGVP
YmplY3RTdG9yZU9uU2VydmVyKElEQkNsaWVudDo6VHJhbnNhY3Rpb25PcGVyYXRpb24mCiAgICAg
QVNTRVJUKGlzVmVyc2lvbkNoYW5nZSgpKTsKICAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09
IG1fZGF0YWJhc2UtPm9yaWdpblRocmVhZElEKCkpOwogCi0gICAgc2VydmVyQ29ubmVjdGlvbigp
LmRlbGV0ZU9iamVjdFN0b3JlKG9wZXJhdGlvbiwgb2JqZWN0U3RvcmVOYW1lKTsKKyAgICBtX2Rh
dGFiYXNlLT5jb25uZWN0aW9uUHJveHkoKS5kZWxldGVPYmplY3RTdG9yZShvcGVyYXRpb24sIG9i
amVjdFN0b3JlTmFtZSk7CiB9CiAKIHZvaWQgSURCVHJhbnNhY3Rpb246OmRpZERlbGV0ZU9iamVj
dFN0b3JlT25TZXJ2ZXIoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKQEAgLTEwMTcs
NyArMTAxNyw3IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246OmRlbGV0ZUluZGV4T25TZXJ2ZXIoSURC
Q2xpZW50OjpUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0CiAgICAgQVNTRVJUKGlzVmVyc2lv
bkNoYW5nZSgpKTsKICAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1fZGF0YWJhc2UtPm9y
aWdpblRocmVhZElEKCkpOwogCi0gICAgc2VydmVyQ29ubmVjdGlvbigpLmRlbGV0ZUluZGV4KG9w
ZXJhdGlvbiwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleE5hbWUpOworICAgIG1fZGF0YWJh
c2UtPmNvbm5lY3Rpb25Qcm94eSgpLmRlbGV0ZUluZGV4KG9wZXJhdGlvbiwgb2JqZWN0U3RvcmVJ
ZGVudGlmaWVyLCBpbmRleE5hbWUpOwogfQogCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpkaWREZWxl
dGVJbmRleE9uU2VydmVyKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlv
blByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJD
b25uZWN0aW9uUHJveHkuY3BwCmluZGV4IDVkZmMxZjcuLjU5M2JkYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uUHJveHkuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSURCT3BlbkRCUmVx
dWVzdC5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3REYXRhLmgiCiAjaW5jbHVkZSAiSURCUmVzdWx0
RGF0YS5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTMzLDYgKzEzNCwxMzkgQEAgdm9p
ZCBJREJDb25uZWN0aW9uUHJveHk6OmNvbXBsZXRlT3BlbkRCUmVxdWVzdChjb25zdCBJREJSZXN1
bHREYXRhJiByZXN1bHREYXRhKQogICAgIHJlcXVlc3QtPnJlcXVlc3RDb21wbGV0ZWQocmVzdWx0
RGF0YSk7CiB9CiAKK3ZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpjcmVhdGVPYmplY3RTdG9yZShU
cmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8m
IGluZm8pCit7CisgICAgSURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEob3BlcmF0aW9uKTsKKyAg
ICBzYXZlT3BlcmF0aW9uKG9wZXJhdGlvbik7CisKKyAgICAvLyBGSVhNRTogSGFuZGxlIHdvcmtl
ciB0aHJlYWQgbWFyc2hhbGxpbmcuCisKKyAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci5jcmVhdGVP
YmplY3RTdG9yZShyZXF1ZXN0RGF0YSwgaW5mbyk7Cit9CisKK3ZvaWQgSURCQ29ubmVjdGlvblBy
b3h5OjpkZWxldGVPYmplY3RTdG9yZShUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBj
b25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSkKK3sKKyAgICBJREJSZXF1ZXN0RGF0YSByZXF1
ZXN0RGF0YShvcGVyYXRpb24pOworICAgIHNhdmVPcGVyYXRpb24ob3BlcmF0aW9uKTsKKworICAg
IC8vIEZJWE1FOiBIYW5kbGUgd29ya2VyIHRocmVhZCBtYXJzaGFsbGluZy4KKworICAgIG1fY29u
bmVjdGlvblRvU2VydmVyLmRlbGV0ZU9iamVjdFN0b3JlKHJlcXVlc3REYXRhLCBvYmplY3RTdG9y
ZU5hbWUpOworfQorCit2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6Y2xlYXJPYmplY3RTdG9yZShU
cmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50
aWZpZXIpCit7CisgICAgSURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEob3BlcmF0aW9uKTsKKyAg
ICBzYXZlT3BlcmF0aW9uKG9wZXJhdGlvbik7CisKKyAgICAvLyBGSVhNRTogSGFuZGxlIHdvcmtl
ciB0aHJlYWQgbWFyc2hhbGxpbmcuCisKKyAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci5jbGVhck9i
amVjdFN0b3JlKHJlcXVlc3REYXRhLCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOworfQorCit2b2lk
IElEQkNvbm5lY3Rpb25Qcm94eTo6Y3JlYXRlSW5kZXgoVHJhbnNhY3Rpb25PcGVyYXRpb24mIG9w
ZXJhdGlvbiwgY29uc3QgSURCSW5kZXhJbmZvJiBpbmZvKQoreworICAgIElEQlJlcXVlc3REYXRh
IHJlcXVlc3REYXRhKG9wZXJhdGlvbik7CisgICAgc2F2ZU9wZXJhdGlvbihvcGVyYXRpb24pOwor
CisgICAgLy8gRklYTUU6IEhhbmRsZSB3b3JrZXIgdGhyZWFkIG1hcnNoYWxsaW5nLgorCisgICAg
bV9jb25uZWN0aW9uVG9TZXJ2ZXIuY3JlYXRlSW5kZXgocmVxdWVzdERhdGEsIGluZm8pOworfQor
Cit2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6ZGVsZXRlSW5kZXgoVHJhbnNhY3Rpb25PcGVyYXRp
b24mIG9wZXJhdGlvbiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIGluZGV4TmFtZSkKK3sKKyAgICBJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YShvcGVyYXRp
b24pOworICAgIHNhdmVPcGVyYXRpb24ob3BlcmF0aW9uKTsKKworICAgIC8vIEZJWE1FOiBIYW5k
bGUgd29ya2VyIHRocmVhZCBtYXJzaGFsbGluZy4KKworICAgIG1fY29ubmVjdGlvblRvU2VydmVy
LmRlbGV0ZUluZGV4KHJlcXVlc3REYXRhLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4TmFt
ZSk7Cit9CisKK3ZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpwdXRPckFkZChUcmFuc2FjdGlvbk9w
ZXJhdGlvbiYgb3BlcmF0aW9uLCBJREJLZXkqIGtleSwgY29uc3QgSURCVmFsdWUmIHZhbHVlLCBj
b25zdCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSBtb2RlKQoreworICAgIElE
QlJlcXVlc3REYXRhIHJlcXVlc3REYXRhKG9wZXJhdGlvbik7CisgICAgc2F2ZU9wZXJhdGlvbihv
cGVyYXRpb24pOworCisgICAgLy8gRklYTUU6IEhhbmRsZSB3b3JrZXIgdGhyZWFkIG1hcnNoYWxs
aW5nLgorCisgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXIucHV0T3JBZGQocmVxdWVzdERhdGEsIGtl
eSwgdmFsdWUsIG1vZGUpOworfQorCit2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6Z2V0UmVjb3Jk
KFRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24sIGNvbnN0IElEQktleVJhbmdlRGF0YSYg
a2V5UmFuZ2UpCit7CisgICAgSURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEob3BlcmF0aW9uKTsK
KyAgICBzYXZlT3BlcmF0aW9uKG9wZXJhdGlvbik7CisKKyAgICAvLyBGSVhNRTogSGFuZGxlIHdv
cmtlciB0aHJlYWQgbWFyc2hhbGxpbmcuCisKKyAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci5nZXRS
ZWNvcmQocmVxdWVzdERhdGEsIGtleVJhbmdlKTsKK30KKwordm9pZCBJREJDb25uZWN0aW9uUHJv
eHk6OmdldENvdW50KFRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24sIGNvbnN0IElEQktl
eVJhbmdlRGF0YSYga2V5UmFuZ2UpCit7CisgICAgSURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEo
b3BlcmF0aW9uKTsKKyAgICBzYXZlT3BlcmF0aW9uKG9wZXJhdGlvbik7CisKKyAgICAvLyBGSVhN
RTogSGFuZGxlIHdvcmtlciB0aHJlYWQgbWFyc2hhbGxpbmcuCisKKyAgICBtX2Nvbm5lY3Rpb25U
b1NlcnZlci5nZXRDb3VudChyZXF1ZXN0RGF0YSwga2V5UmFuZ2UpOworfQorCit2b2lkIElEQkNv
bm5lY3Rpb25Qcm94eTo6ZGVsZXRlUmVjb3JkKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRp
b24sIGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2UpCit7CisgICAgSURCUmVxdWVzdERh
dGEgcmVxdWVzdERhdGEob3BlcmF0aW9uKTsKKyAgICBzYXZlT3BlcmF0aW9uKG9wZXJhdGlvbik7
CisKKyAgICAvLyBGSVhNRTogSGFuZGxlIHdvcmtlciB0aHJlYWQgbWFyc2hhbGxpbmcuCisKKyAg
ICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci5kZWxldGVSZWNvcmQocmVxdWVzdERhdGEsIGtleVJhbmdl
KTsKK30KKwordm9pZCBJREJDb25uZWN0aW9uUHJveHk6Om9wZW5DdXJzb3IoVHJhbnNhY3Rpb25P
cGVyYXRpb24mIG9wZXJhdGlvbiwgY29uc3QgSURCQ3Vyc29ySW5mbyYgaW5mbykKK3sKKyAgICBJ
REJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YShvcGVyYXRpb24pOworICAgIHNhdmVPcGVyYXRpb24o
b3BlcmF0aW9uKTsKKworICAgIC8vIEZJWE1FOiBIYW5kbGUgd29ya2VyIHRocmVhZCBtYXJzaGFs
bGluZy4KKworICAgIG1fY29ubmVjdGlvblRvU2VydmVyLm9wZW5DdXJzb3IocmVxdWVzdERhdGEs
IGluZm8pOworfQorCit2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6aXRlcmF0ZUN1cnNvcihUcmFu
c2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCBJREJLZXlEYXRhJiBrZXksIHVuc2ln
bmVkIGxvbmcgY291bnQpCit7CisgICAgSURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEob3BlcmF0
aW9uKTsKKyAgICBzYXZlT3BlcmF0aW9uKG9wZXJhdGlvbik7CisKKyAgICAvLyBGSVhNRTogSGFu
ZGxlIHdvcmtlciB0aHJlYWQgbWFyc2hhbGxpbmcuCisKKyAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZl
ci5pdGVyYXRlQ3Vyc29yKHJlcXVlc3REYXRhLCBrZXksIGNvdW50KTsKK30KKwordm9pZCBJREJD
b25uZWN0aW9uUHJveHk6OnNhdmVPcGVyYXRpb24oVHJhbnNhY3Rpb25PcGVyYXRpb24mIG9wZXJh
dGlvbikKK3sKKyAgICBMb2NrZXI8TG9jaz4gbG9ja2VyKG1fdHJhbnNhY3Rpb25PcGVyYXRpb25M
b2NrKTsKKworICAgIEFTU0VSVCghbV9hY3RpdmVPcGVyYXRpb25zLmNvbnRhaW5zKG9wZXJhdGlv
bi5pZGVudGlmaWVyKCkpKTsKKyAgICBtX2FjdGl2ZU9wZXJhdGlvbnMuc2V0KG9wZXJhdGlvbi5p
ZGVudGlmaWVyKCksICZvcGVyYXRpb24pOworfQorCit2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6
Y29tcGxldGVPcGVyYXRpb24oY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKK3sKKyAg
ICBSZWZQdHI8VHJhbnNhY3Rpb25PcGVyYXRpb24+IG9wZXJhdGlvbjsKKyAgICB7CisgICAgICAg
IExvY2tlcjxMb2NrPiBsb2NrZXIobV90cmFuc2FjdGlvbk9wZXJhdGlvbkxvY2spOworICAgICAg
ICBvcGVyYXRpb24gPSBtX2FjdGl2ZU9wZXJhdGlvbnMudGFrZShyZXN1bHREYXRhLnJlcXVlc3RJ
ZGVudGlmaWVyKCkpOworICAgIH0KKworICAgIEFTU0VSVChvcGVyYXRpb24pOworCisgICAgLy8g
RklYTUU6IEhhbmRsZSBnZXR0aW5nIG9wZXJhdGlvbi0+Y29tcGxldGVkKCkgb250byB0aGUgY29y
cmVjdCB0aHJlYWQgdmlhIHRoZSBJREJUcmFuc2FjdGlvbi4KKyAgICAKKyAgICBvcGVyYXRpb24t
PmNvbXBsZXRlZChyZXN1bHREYXRhKTsKK30KKwogdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmZp
cmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmll
ciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0
X3QgcmVxdWVzdGVkVmVyc2lvbikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5l
Y3Rpb25Qcm94eS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lE
QkNvbm5lY3Rpb25Qcm94eS5oCmluZGV4IDhiZDk3NWQuLjhmYzg5NzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVj
dGlvblByb3h5LmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25U
b1NlcnZlci5oIgogI2luY2x1ZGUgIklEQlJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUg
IlRyYW5zYWN0aW9uT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTYwLDYgKzYxLDE4
IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gZGVsZXRlRGF0YWJhc2Uo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYpOwog
ICAgIHZvaWQgZGlkRGVsZXRlRGF0YWJhc2UoY29uc3QgSURCUmVzdWx0RGF0YSYpOwogCisgICAg
dm9pZCBjcmVhdGVPYmplY3RTdG9yZShUcmFuc2FjdGlvbk9wZXJhdGlvbiYsIGNvbnN0IElEQk9i
amVjdFN0b3JlSW5mbyYpOworICAgIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoVHJhbnNhY3Rpb25P
cGVyYXRpb24mLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSk7CisgICAgdm9pZCBjbGVh
ck9iamVjdFN0b3JlKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZUluZGV4KFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwg
Y29uc3QgSURCSW5kZXhJbmZvJik7CisgICAgdm9pZCBkZWxldGVJbmRleChUcmFuc2FjdGlvbk9w
ZXJhdGlvbiYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBp
bmRleE5hbWUpOworICAgIHZvaWQgcHV0T3JBZGQoVHJhbnNhY3Rpb25PcGVyYXRpb24mLCBJREJL
ZXkqLCBjb25zdCBJREJWYWx1ZSYsIGNvbnN0IEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3Jp
dGVNb2RlKTsKKyAgICB2b2lkIGdldFJlY29yZChUcmFuc2FjdGlvbk9wZXJhdGlvbiYsIGNvbnN0
IElEQktleVJhbmdlRGF0YSYpOworICAgIHZvaWQgZ2V0Q291bnQoVHJhbnNhY3Rpb25PcGVyYXRp
b24mLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKTsKKyAgICB2b2lkIGRlbGV0ZVJlY29yZChUcmFu
c2FjdGlvbk9wZXJhdGlvbiYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpOworICAgIHZvaWQgb3Bl
bkN1cnNvcihUcmFuc2FjdGlvbk9wZXJhdGlvbiYsIGNvbnN0IElEQkN1cnNvckluZm8mKTsKKyAg
ICB2b2lkIGl0ZXJhdGVDdXJzb3IoVHJhbnNhY3Rpb25PcGVyYXRpb24mLCBjb25zdCBJREJLZXlE
YXRhJiwgdW5zaWduZWQgbG9uZyBjb3VudCk7CisgICAgCiAgICAgdm9pZCBmaXJlVmVyc2lvbkNo
YW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3Rl
ZFZlcnNpb24pOwogICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHJlcXVlc3RJZGVudGlmaWVyKTsKIApAQCAtNzYsNiArODksOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihJREJUcmFuc2FjdGlv
biYpOwogICAgIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKElEQkRhdGFiYXNlJik7CiAK
KyAgICB2b2lkIGNvbXBsZXRlT3BlcmF0aW9uKGNvbnN0IElEQlJlc3VsdERhdGEmKTsKKwogICAg
IHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9z
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsgfQogCiAgICAgLy8gRklYTUU6IFRlbXBvcmFyaWx5
IHJlcXVpcmVkIGR1cmluZyBicmluZ3VwIG9mIElEQi1pbi1Xb3JrZXJzLgpAQCAtOTUsNiArMTEw
LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbXBsZXRlT3BlbkRCUmVxdWVzdChjb25zdCBJREJS
ZXN1bHREYXRhJik7CiAgICAgYm9vbCBoYXNSZWNvcmRPZlRyYW5zYWN0aW9uKGNvbnN0IElEQlRy
YW5zYWN0aW9uJikgY29uc3Q7CiAKKyAgICB2b2lkIHNhdmVPcGVyYXRpb24oVHJhbnNhY3Rpb25P
cGVyYXRpb24mKTsKKwogICAgIElEQkNvbm5lY3Rpb25Ub1NlcnZlciYgbV9jb25uZWN0aW9uVG9T
ZXJ2ZXI7CiAgICAgdWludDY0X3QgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsKIApAQCAt
MTA4LDYgKzEyNSw5IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxJREJSZXNvdXJjZUlkZW50aWZp
ZXIsIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4+IG1fY29tbWl0dGluZ1RyYW5zYWN0aW9uczsKICAg
ICBIYXNoTWFwPElEQlJlc291cmNlSWRlbnRpZmllciwgUmVmUHRyPElEQlRyYW5zYWN0aW9uPj4g
bV9hYm9ydGluZ1RyYW5zYWN0aW9uczsKICAgICBMb2NrIG1fdHJhbnNhY3Rpb25NYXBMb2NrOwor
CisgICAgSGFzaE1hcDxJREJSZXNvdXJjZUlkZW50aWZpZXIsIFJlZlB0cjxUcmFuc2FjdGlvbk9w
ZXJhdGlvbj4+IG1fYWN0aXZlT3BlcmF0aW9uczsKKyAgICBMb2NrIG1fdHJhbnNhY3Rpb25PcGVy
YXRpb25Mb2NrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSURCQ2xpZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuY3BwCmluZGV4IDczMTlmM2IuLjY3ZjcwOGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJD
b25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBAIC04NywxNjkgKzg3LDE2MSBAQCB2b2lkIElEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6ZGlkT3BlbkRhdGFiYXNlKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3Vs
dERhdGEpCiAgICAgbV9wcm94eS0+ZGlkT3BlbkRhdGFiYXNlKHJlc3VsdERhdGEpOwogfQogCi12
b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y3JlYXRlT2JqZWN0U3RvcmUoVHJhbnNhY3Rpb25P
cGVyYXRpb24mIG9wZXJhdGlvbiwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiBpbmZvKQordm9p
ZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVl
c3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiBpbmZvKQogewog
ICAgIExPRyhJbmRleGVkREIsICJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZU9iamVjdFN0
b3JlIik7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIHNhdmVPcGVyYXRpb24o
b3BlcmF0aW9uKTsKLQotICAgIG1fZGVsZWdhdGUtPmNyZWF0ZU9iamVjdFN0b3JlKElEQlJlcXVl
c3REYXRhKG9wZXJhdGlvbiksIGluZm8pOworICAgIG1fZGVsZWdhdGUtPmNyZWF0ZU9iamVjdFN0
b3JlKHJlcXVlc3REYXRhLCBpbmZvKTsKIH0KIAogdm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6
OmRpZENyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCiB7
CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkQ3JlYXRlT2Jq
ZWN0U3RvcmUiKTsKLSAgICBjb21wbGV0ZU9wZXJhdGlvbihyZXN1bHREYXRhKTsKKyAgICBtX3By
b3h5LT5jb21wbGV0ZU9wZXJhdGlvbihyZXN1bHREYXRhKTsKIH0KIAotdm9pZCBJREJDb25uZWN0
aW9uVG9TZXJ2ZXI6OmRlbGV0ZU9iamVjdFN0b3JlKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVy
YXRpb24sIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKQordm9pZCBJREJDb25uZWN0aW9u
VG9TZXJ2ZXI6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0
RGF0YSwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpCiB7CiAgICAgTE9HKEluZGV4ZWRE
QiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGVsZXRlT2JqZWN0U3RvcmUiKTsKKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgc2F2ZU9wZXJhdGlvbihvcGVyYXRpb24pOwotCi0g
ICAgbV9kZWxlZ2F0ZS0+ZGVsZXRlT2JqZWN0U3RvcmUoSURCUmVxdWVzdERhdGEob3BlcmF0aW9u
KSwgb2JqZWN0U3RvcmVOYW1lKTsKKyAgICBtX2RlbGVnYXRlLT5kZWxldGVPYmplY3RTdG9yZShy
ZXF1ZXN0RGF0YSwgb2JqZWN0U3RvcmVOYW1lKTsKIH0KIAogdm9pZCBJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OmRpZERlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdERh
dGEpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkRGVs
ZXRlT2JqZWN0U3RvcmUiKTsKLSAgICBjb21wbGV0ZU9wZXJhdGlvbihyZXN1bHREYXRhKTsKKyAg
ICBtX3Byb3h5LT5jb21wbGV0ZU9wZXJhdGlvbihyZXN1bHREYXRhKTsKIH0KIAotdm9pZCBJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OmNsZWFyT2JqZWN0U3RvcmUoVHJhbnNhY3Rpb25PcGVyYXRpb24m
IG9wZXJhdGlvbiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKQordm9pZCBJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OmNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmIHJl
cXVlc3REYXRhLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpCiB7CiAgICAgTE9HKElu
ZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y2xlYXJPYmplY3RTdG9yZSIpOworICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBzYXZlT3BlcmF0aW9uKG9wZXJhdGlvbik7
Ci0KLSAgICBtX2RlbGVnYXRlLT5jbGVhck9iamVjdFN0b3JlKElEQlJlcXVlc3REYXRhKG9wZXJh
dGlvbiksIG9iamVjdFN0b3JlSWRlbnRpZmllcik7CisgICAgbV9kZWxlZ2F0ZS0+Y2xlYXJPYmpl
Y3RTdG9yZShyZXF1ZXN0RGF0YSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZENsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzdWx0
RGF0YSYgcmVzdWx0RGF0YSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRv
U2VydmVyOjpkaWRDbGVhck9iamVjdFN0b3JlIik7Ci0gICAgY29tcGxldGVPcGVyYXRpb24ocmVz
dWx0RGF0YSk7CisgICAgbV9wcm94eS0+Y29tcGxldGVPcGVyYXRpb24ocmVzdWx0RGF0YSk7CiB9
CiAKLXZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVhdGVJbmRleChUcmFuc2FjdGlvbk9w
ZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCBJREJJbmRleEluZm8mIGluZm8pCit2b2lkIElEQkNv
bm5lY3Rpb25Ub1NlcnZlcjo6Y3JlYXRlSW5kZXgoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVl
c3REYXRhLCBjb25zdCBJREJJbmRleEluZm8mIGluZm8pCiB7CiAgICAgTE9HKEluZGV4ZWREQiwg
IklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y3JlYXRlSW5kZXgiKTsKKyAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogCi0gICAgc2F2ZU9wZXJhdGlvbihvcGVyYXRpb24pOwotCi0gICAgbV9kZWxl
Z2F0ZS0+Y3JlYXRlSW5kZXgoSURCUmVxdWVzdERhdGEob3BlcmF0aW9uKSwgaW5mbyk7CisgICAg
bV9kZWxlZ2F0ZS0+Y3JlYXRlSW5kZXgocmVxdWVzdERhdGEsIGluZm8pOwogfQogCiB2b2lkIElE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkQ3JlYXRlSW5kZXgoY29uc3QgSURCUmVzdWx0RGF0YSYg
cmVzdWx0RGF0YSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVy
OjpkaWRDcmVhdGVJbmRleCIpOwotICAgIGNvbXBsZXRlT3BlcmF0aW9uKHJlc3VsdERhdGEpOwor
ICAgIG1fcHJveHktPmNvbXBsZXRlT3BlcmF0aW9uKHJlc3VsdERhdGEpOwogfQogCi12b2lkIElE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGVsZXRlSW5kZXgoVHJhbnNhY3Rpb25PcGVyYXRpb24mIG9w
ZXJhdGlvbiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlu
ZGV4TmFtZSkKK3ZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpkZWxldGVJbmRleChjb25zdCBJ
REJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBpbmRleE5hbWUpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQkNv
bm5lY3Rpb25Ub1NlcnZlcjo6ZGVsZXRlSW5kZXgiKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogCi0gICAgc2F2ZU9wZXJhdGlvbihvcGVyYXRpb24pOwotCi0gICAgbV9kZWxlZ2F0ZS0+
ZGVsZXRlSW5kZXgoSURCUmVxdWVzdERhdGEob3BlcmF0aW9uKSwgb2JqZWN0U3RvcmVJZGVudGlm
aWVyLCBpbmRleE5hbWUpOworICAgIG1fZGVsZWdhdGUtPmRlbGV0ZUluZGV4KHJlcXVlc3REYXRh
LCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4TmFtZSk7CiB9CiAKIHZvaWQgSURCQ29ubmVj
dGlvblRvU2VydmVyOjpkaWREZWxldGVJbmRleChjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHRE
YXRhKQogewogICAgIExPRyhJbmRleGVkREIsICJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZERl
bGV0ZUluZGV4Iik7Ci0gICAgY29tcGxldGVPcGVyYXRpb24ocmVzdWx0RGF0YSk7CisgICAgbV9w
cm94eS0+Y29tcGxldGVPcGVyYXRpb24ocmVzdWx0RGF0YSk7CiB9CiAKLXZvaWQgSURCQ29ubmVj
dGlvblRvU2VydmVyOjpwdXRPckFkZChUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBJ
REJLZXkqIGtleSwgY29uc3QgSURCVmFsdWUmIHZhbHVlLCBjb25zdCBJbmRleGVkREI6Ok9iamVj
dFN0b3JlT3ZlcndyaXRlTW9kZSBvdmVyd3JpdGVNb2RlKQordm9pZCBJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgSURCS2V5
KiBrZXksIGNvbnN0IElEQlZhbHVlJiB2YWx1ZSwgY29uc3QgSW5kZXhlZERCOjpPYmplY3RTdG9y
ZU92ZXJ3cml0ZU1vZGUgb3ZlcndyaXRlTW9kZSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURC
Q29ubmVjdGlvblRvU2VydmVyOjpwdXRPckFkZCIpOworICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAKLSAgICBzYXZlT3BlcmF0aW9uKG9wZXJhdGlvbik7Ci0gICAgbV9kZWxlZ2F0ZS0+cHV0
T3JBZGQoSURCUmVxdWVzdERhdGEob3BlcmF0aW9uKSwga2V5LCB2YWx1ZSwgb3ZlcndyaXRlTW9k
ZSk7CisgICAgbV9kZWxlZ2F0ZS0+cHV0T3JBZGQocmVxdWVzdERhdGEsIGtleSwgdmFsdWUsIG92
ZXJ3cml0ZU1vZGUpOwogfQogCiB2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkUHV0T3JB
ZGQoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKIHsKICAgICBMT0coSW5kZXhlZERC
LCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRQdXRPckFkZCIpOwotICAgIGNvbXBsZXRlT3Bl
cmF0aW9uKHJlc3VsdERhdGEpOworICAgIG1fcHJveHktPmNvbXBsZXRlT3BlcmF0aW9uKHJlc3Vs
dERhdGEpOwogfQogCi12b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0UmVjb3JkKFRyYW5z
YWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24sIGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFu
Z2VEYXRhKQordm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldFJlY29yZChjb25zdCBJREJS
ZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2VE
YXRhKQogewogICAgIExPRyhJbmRleGVkREIsICJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldFJl
Y29yZCIpOwotCisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoIWtleVJh
bmdlRGF0YS5pc051bGwpOwogCi0gICAgc2F2ZU9wZXJhdGlvbihvcGVyYXRpb24pOwotICAgIG1f
ZGVsZWdhdGUtPmdldFJlY29yZChJREJSZXF1ZXN0RGF0YShvcGVyYXRpb24pLCBrZXlSYW5nZURh
dGEpOworICAgIG1fZGVsZWdhdGUtPmdldFJlY29yZChyZXF1ZXN0RGF0YSwga2V5UmFuZ2VEYXRh
KTsKIH0KIAogdm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldFJlY29yZChjb25zdCBJ
REJSZXN1bHREYXRhJiByZXN1bHREYXRhKQogewogICAgIExPRyhJbmRleGVkREIsICJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldFJlY29yZCIpOwotICAgIGNvbXBsZXRlT3BlcmF0aW9uKHJl
c3VsdERhdGEpOworICAgIG1fcHJveHktPmNvbXBsZXRlT3BlcmF0aW9uKHJlc3VsdERhdGEpOwog
fQogCi12b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0Q291bnQoVHJhbnNhY3Rpb25PcGVy
YXRpb24mIG9wZXJhdGlvbiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZURhdGEpCit2
b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0Q291bnQoY29uc3QgSURCUmVxdWVzdERhdGEm
IHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlRGF0YSkKIHsKICAg
ICBMT0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRDb3VudCIpOwotCisg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoIWtleVJhbmdlRGF0YS5pc051
bGwpOwogCi0gICAgc2F2ZU9wZXJhdGlvbihvcGVyYXRpb24pOwotICAgIG1fZGVsZWdhdGUtPmdl
dENvdW50KElEQlJlcXVlc3REYXRhKG9wZXJhdGlvbiksIGtleVJhbmdlRGF0YSk7CisgICAgbV9k
ZWxlZ2F0ZS0+Z2V0Q291bnQocmVxdWVzdERhdGEsIGtleVJhbmdlRGF0YSk7CiB9CiAKIHZvaWQg
SURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRDb3VudChjb25zdCBJREJSZXN1bHREYXRhJiBy
ZXN1bHREYXRhKQogewogICAgIExPRyhJbmRleGVkREIsICJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6
OmRpZEdldENvdW50Iik7Ci0gICAgY29tcGxldGVPcGVyYXRpb24ocmVzdWx0RGF0YSk7CisgICAg
bV9wcm94eS0+Y29tcGxldGVPcGVyYXRpb24ocmVzdWx0RGF0YSk7CiB9CiAKLXZvaWQgSURCQ29u
bmVjdGlvblRvU2VydmVyOjpkZWxldGVSZWNvcmQoVHJhbnNhY3Rpb25PcGVyYXRpb24mIG9wZXJh
dGlvbiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZURhdGEpCit2b2lkIElEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6ZGVsZXRlUmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0
RGF0YSwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZURhdGEpCiB7CiAgICAgTE9HKElu
ZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGVsZXRlUmVjb3JkIik7Ci0KKyAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVCgha2V5UmFuZ2VEYXRhLmlzTnVsbCk7
CiAKLSAgICBzYXZlT3BlcmF0aW9uKG9wZXJhdGlvbik7Ci0gICAgbV9kZWxlZ2F0ZS0+ZGVsZXRl
UmVjb3JkKElEQlJlcXVlc3REYXRhKG9wZXJhdGlvbiksIGtleVJhbmdlRGF0YSk7CisgICAgbV9k
ZWxlZ2F0ZS0+ZGVsZXRlUmVjb3JkKHJlcXVlc3REYXRhLCBrZXlSYW5nZURhdGEpOwogfQogCiB2
b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkRGVsZXRlUmVjb3JkKGNvbnN0IElEQlJlc3Vs
dERhdGEmIHJlc3VsdERhdGEpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6ZGlkRGVsZXRlUmVjb3JkIik7Ci0gICAgY29tcGxldGVPcGVyYXRpb24ocmVzdWx0
RGF0YSk7CisgICAgbV9wcm94eS0+Y29tcGxldGVPcGVyYXRpb24ocmVzdWx0RGF0YSk7CiB9CiAK
LXZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpvcGVuQ3Vyc29yKFRyYW5zYWN0aW9uT3BlcmF0
aW9uJiBvcGVyYXRpb24sIGNvbnN0IElEQkN1cnNvckluZm8mIGluZm8pCit2b2lkIElEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6b3BlbkN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERh
dGEsIGNvbnN0IElEQkN1cnNvckluZm8mIGluZm8pCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6b3BlbkN1cnNvciIpOworICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAKLSAgICBzYXZlT3BlcmF0aW9uKG9wZXJhdGlvbik7Ci0gICAgbV9kZWxlZ2F0ZS0+
b3BlbkN1cnNvcihJREJSZXF1ZXN0RGF0YShvcGVyYXRpb24pLCBpbmZvKTsKKyAgICBtX2RlbGVn
YXRlLT5vcGVuQ3Vyc29yKHJlcXVlc3REYXRhLCBpbmZvKTsKIH0KIAogdm9pZCBJREJDb25uZWN0
aW9uVG9TZXJ2ZXI6OmRpZE9wZW5DdXJzb3IoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0
YSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRPcGVu
Q3Vyc29yIik7Ci0gICAgY29tcGxldGVPcGVyYXRpb24ocmVzdWx0RGF0YSk7CisgICAgbV9wcm94
eS0+Y29tcGxldGVPcGVyYXRpb24ocmVzdWx0RGF0YSk7CiB9CiAKLXZvaWQgSURCQ29ubmVjdGlv
blRvU2VydmVyOjppdGVyYXRlQ3Vyc29yKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24s
IGNvbnN0IElEQktleURhdGEmIGtleSwgdW5zaWduZWQgbG9uZyBjb3VudCkKK3ZvaWQgSURCQ29u
bmVjdGlvblRvU2VydmVyOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1
ZXN0RGF0YSwgY29uc3QgSURCS2V5RGF0YSYga2V5LCB1bnNpZ25lZCBsb25nIGNvdW50KQogewog
ICAgIExPRyhJbmRleGVkREIsICJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Oml0ZXJhdGVDdXJzb3Ii
KTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgc2F2ZU9wZXJhdGlvbihvcGVy
YXRpb24pOwotICAgIG1fZGVsZWdhdGUtPml0ZXJhdGVDdXJzb3IoSURCUmVxdWVzdERhdGEob3Bl
cmF0aW9uKSwga2V5LCBjb3VudCk7CisgICAgbV9kZWxlZ2F0ZS0+aXRlcmF0ZUN1cnNvcihyZXF1
ZXN0RGF0YSwga2V5LCBjb3VudCk7CiB9CiAKIHZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpk
aWRJdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCiB7CiAgICAg
TE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkSXRlcmF0ZUN1cnNvciIp
OwotICAgIGNvbXBsZXRlT3BlcmF0aW9uKHJlc3VsdERhdGEpOworICAgIG1fcHJveHktPmNvbXBs
ZXRlT3BlcmF0aW9uKHJlc3VsdERhdGEpOwogfQogCiB2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6ZXN0YWJsaXNoVHJhbnNhY3Rpb24odWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRp
ZmllciwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvKQpAQCAtMzQ3LDIwICszMzksNiBA
QCB2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1
aW50NjRfdCBkYXRhYmFzZUNvbm5lY3RpbwogICAgIG1fZGVsZWdhdGUtPmFib3J0T3BlbkFuZFVw
Z3JhZGVOZWVkZWQoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyKTsKIH0KIAotdm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OnNhdmVPcGVyYXRpb24o
VHJhbnNhY3Rpb25PcGVyYXRpb24mIG9wZXJhdGlvbikKLXsKLSAgICBBU1NFUlQoIW1fYWN0aXZl
T3BlcmF0aW9ucy5jb250YWlucyhvcGVyYXRpb24uaWRlbnRpZmllcigpKSk7Ci0gICAgbV9hY3Rp
dmVPcGVyYXRpb25zLnNldChvcGVyYXRpb24uaWRlbnRpZmllcigpLCAmb3BlcmF0aW9uKTsKLX0K
LQotdm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNvbXBsZXRlT3BlcmF0aW9uKGNvbnN0IElE
QlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCi17Ci0gICAgYXV0byBvcGVyYXRpb24gPSBtX2FjdGl2
ZU9wZXJhdGlvbnMudGFrZShyZXN1bHREYXRhLnJlcXVlc3RJZGVudGlmaWVyKCkpOwotICAgIEFT
U0VSVChvcGVyYXRpb24pOwotCi0gICAgb3BlcmF0aW9uLT5jb21wbGV0ZWQocmVzdWx0RGF0YSk7
Ci19Ci0KIHZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JiBvcGVuaW5nT3JpZ2luLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+
Jik+IGNhbGxiYWNrKQogewogICAgIHN0YXRpYyB1aW50NjRfdCBjYWxsYmFja0lEID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAppbmRleCAxYWJkNDkxLi4yMzRmNzBjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlv
blRvU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiSURC
Q29ubmVjdGlvblByb3h5LmgiCiAjaW5jbHVkZSAiSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdh
dGUuaCIKICNpbmNsdWRlICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJUcmFu
c2FjdGlvbk9wZXJhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CkBAIC00NCwxMSArNDMsMTAgQEAg
Y2xhc3MgSURCRXJyb3I7CiBjbGFzcyBJREJPYmplY3RTdG9yZUluZm87CiBjbGFzcyBJREJSZXN1
bHREYXRhOwogY2xhc3MgSURCVmFsdWU7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKIAogbmFtZXNw
YWNlIElEQkNsaWVudCB7CiAKLWNsYXNzIFRyYW5zYWN0aW9uT3BlcmF0aW9uOwotCiBjbGFzcyBJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURCQ29u
bmVjdGlvblRvU2VydmVyPiB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJl
ZjxJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IGNyZWF0ZShJREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxl
Z2F0ZSYpOwpAQCAtNjMsMzcgKzYxLDM3IEBAIHB1YmxpYzoKICAgICB2b2lkIG9wZW5EYXRhYmFz
ZShjb25zdCBJREJSZXF1ZXN0RGF0YSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkT3Bl
bkRhdGFiYXNlKGNvbnN0IElEQlJlc3VsdERhdGEmKTsKIAotICAgIHZvaWQgY3JlYXRlT2JqZWN0
U3RvcmUoVHJhbnNhY3Rpb25PcGVyYXRpb24mLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mKTsK
KyAgICB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3Qg
SURCT2JqZWN0U3RvcmVJbmZvJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRDcmVhdGVP
YmplY3RTdG9yZShjb25zdCBJREJSZXN1bHREYXRhJik7CiAKLSAgICB2b2lkIGRlbGV0ZU9iamVj
dFN0b3JlKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5h
bWUpOworICAgIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCBj
b25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
aWREZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXN1bHREYXRhJik7CiAKLSAgICB2b2lkIGNs
ZWFyT2JqZWN0U3RvcmUoVHJhbnNhY3Rpb25PcGVyYXRpb24mLCB1aW50NjRfdCBvYmplY3RTdG9y
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgY2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0
RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBkaWRDbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJlc3VsdERhdGEmKTsKIAotICAg
IHZvaWQgY3JlYXRlSW5kZXgoVHJhbnNhY3Rpb25PcGVyYXRpb24mLCBjb25zdCBJREJJbmRleElu
Zm8mKTsKKyAgICB2b2lkIGNyZWF0ZUluZGV4KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3Qg
SURCSW5kZXhJbmZvJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRDcmVhdGVJbmRleChj
b25zdCBJREJSZXN1bHREYXRhJik7CiAKLSAgICB2b2lkIGRlbGV0ZUluZGV4KFRyYW5zYWN0aW9u
T3BlcmF0aW9uJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IGluZGV4TmFtZSk7CisgICAgdm9pZCBkZWxldGVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYs
IHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpbmRleE5hbWUp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRGVsZXRlSW5kZXgoY29uc3QgSURCUmVzdWx0
RGF0YSYpOwogCi0gICAgdm9pZCBwdXRPckFkZChUcmFuc2FjdGlvbk9wZXJhdGlvbiYsIElEQktl
eSosIGNvbnN0IElEQlZhbHVlJiwgY29uc3QgSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0
ZU1vZGUpOworICAgIHZvaWQgcHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBJREJLZXkq
LCBjb25zdCBJREJWYWx1ZSYsIGNvbnN0IEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVN
b2RlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZFB1dE9yQWRkKGNvbnN0IElEQlJlc3Vs
dERhdGEmKTsKIAotICAgIHZvaWQgZ2V0UmVjb3JkKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgY29u
c3QgSURCS2V5UmFuZ2VEYXRhJik7CisgICAgdm9pZCBnZXRSZWNvcmQoY29uc3QgSURCUmVxdWVz
dERhdGEmLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGRpZEdldFJlY29yZChjb25zdCBJREJSZXN1bHREYXRhJik7CiAKLSAgICB2b2lkIGdldENvdW50
KFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CisgICAgdm9p
ZCBnZXRDb3VudChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkR2V0Q291bnQoY29uc3QgSURCUmVzdWx0RGF0
YSYpOwogCi0gICAgdm9pZCBkZWxldGVSZWNvcmQoVHJhbnNhY3Rpb25PcGVyYXRpb24mLCBjb25z
dCBJREJLZXlSYW5nZURhdGEmKTsKKyAgICB2b2lkIGRlbGV0ZVJlY29yZChjb25zdCBJREJSZXF1
ZXN0RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZGlkRGVsZXRlUmVjb3JkKGNvbnN0IElEQlJlc3VsdERhdGEmKTsKIAotICAgIHZvaWQgb3Bl
bkN1cnNvcihUcmFuc2FjdGlvbk9wZXJhdGlvbiYsIGNvbnN0IElEQkN1cnNvckluZm8mKTsKKyAg
ICB2b2lkIG9wZW5DdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJDdXJzb3JJ
bmZvJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRPcGVuQ3Vyc29yKGNvbnN0IElEQlJl
c3VsdERhdGEmKTsKIAotICAgIHZvaWQgaXRlcmF0ZUN1cnNvcihUcmFuc2FjdGlvbk9wZXJhdGlv
biYsIGNvbnN0IElEQktleURhdGEmLCB1bnNpZ25lZCBsb25nIGNvdW50KTsKKyAgICB2b2lkIGl0
ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlEYXRhJiwgdW5z
aWduZWQgbG9uZyBjb3VudCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRJdGVyYXRlQ3Vy
c29yKGNvbnN0IElEQlJlc3VsdERhdGEmKTsKIAogICAgIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24o
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwpAQCAt
MTI0LDEzICsxMjIsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIElEQkNvbm5lY3Rpb25Ub1Nl
cnZlcihJREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZSYpOwogCi0gICAgdm9pZCBzYXZlT3Bl
cmF0aW9uKFRyYW5zYWN0aW9uT3BlcmF0aW9uJik7Ci0gICAgdm9pZCBjb21wbGV0ZU9wZXJhdGlv
bihjb25zdCBJREJSZXN1bHREYXRhJik7Ci0KICAgICBSZWY8SURCQ29ubmVjdGlvblRvU2VydmVy
RGVsZWdhdGU+IG1fZGVsZWdhdGU7CiAKLSAgICBIYXNoTWFwPElEQlJlc291cmNlSWRlbnRpZmll
ciwgUmVmUHRyPFRyYW5zYWN0aW9uT3BlcmF0aW9uPj4gbV9hY3RpdmVPcGVyYXRpb25zOwotCiAg
ICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjpmdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpPj4gbV9nZXRBbGxEYXRhYmFzZU5hbWVzQ2FsbGJhY2tzOwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPElEQkNvbm5lY3Rpb25Qcm94eT4gbV9wcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9UcmFuc2FjdGlvbk9wZXJhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0
aW9uLmgKaW5kZXggNjVkMjk5MS4uMTE4YmNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0aW9u
LmgKQEAgLTI5LDggKzI5LDEwIEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNp
bmNsdWRlICJJREJSZXF1ZXN0LmgiCisjaW5jbHVkZSAiSURCUmVxdWVzdERhdGEuaCIKICNpbmNs
dWRlICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbi5o
IgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC00Myw5ICs0NSwxNiBAQCBlbnVtIGNsYXNzIEluZGV4UmVjb3JkVHlwZTsKIG5hbWVzcGFjZSBJ
REJDbGllbnQgewogCiBjbGFzcyBUcmFuc2FjdGlvbk9wZXJhdGlvbiA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxUcmFuc2FjdGlvbk9wZXJhdGlvbj4geworICAgIGZyaWVuZCBJREJSZXF1
ZXN0RGF0YTo6SURCUmVxdWVzdERhdGEoVHJhbnNhY3Rpb25PcGVyYXRpb24mKTsKIHB1YmxpYzoK
KyAgICB2aXJ0dWFsIH5UcmFuc2FjdGlvbk9wZXJhdGlvbigpCisgICAgeworICAgICAgICBBU1NF
UlQobV9vcmlnaW5UaHJlYWRJRCA9PSBjdXJyZW50VGhyZWFkKCkpOworICAgIH0KKwogICAgIHZv
aWQgcGVyZm9ybSgpCiAgICAgeworICAgICAgICBBU1NFUlQobV9vcmlnaW5UaHJlYWRJRCA9PSBj
dXJyZW50VGhyZWFkKCkpOwogICAgICAgICBBU1NFUlQobV9wZXJmb3JtRnVuY3Rpb24pOwogICAg
ICAgICBtX3BlcmZvcm1GdW5jdGlvbigpOwogICAgICAgICBtX3BlcmZvcm1GdW5jdGlvbiA9IHsg
fTsKQEAgLTUzLDYgKzYyLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjb21wbGV0ZWQoY29uc3Qg
SURCUmVzdWx0RGF0YSYgZGF0YSkKICAgICB7CisgICAgICAgIEFTU0VSVChtX29yaWdpblRocmVh
ZElEID09IGN1cnJlbnRUaHJlYWQoKSk7CiAgICAgICAgIEFTU0VSVChtX2NvbXBsZXRlRnVuY3Rp
b24pOwogICAgICAgICBtX2NvbXBsZXRlRnVuY3Rpb24oZGF0YSk7CiAgICAgICAgIG1fdHJhbnNh
Y3Rpb24tPm9wZXJhdGlvbkRpZENvbXBsZXRlKCp0aGlzKTsKQEAgLTYwLDEyICs3MCw4IEBAIHB1
YmxpYzoKICAgICB9CiAKICAgICBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGlkZW50aWZp
ZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KLSAgICBJREJSZXNvdXJjZUlkZW50
aWZpZXIgdHJhbnNhY3Rpb25JZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2FjdGlv
bi0+aW5mbygpLmlkZW50aWZpZXIoKTsgfQotICAgIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0U3RvcmVJZGVudGlmaWVyOyB9Ci0gICAgdWlu
dDY0X3QgaW5kZXhJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pbmRleElkZW50aWZpZXI7
IH0KLSAgICBJREJSZXNvdXJjZUlkZW50aWZpZXIqIGN1cnNvcklkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX2N1cnNvcklkZW50aWZpZXIuZ2V0KCk7IH0KLSAgICBJREJUcmFuc2FjdGlvbiYg
dHJhbnNhY3Rpb24oKSB7IHJldHVybiBtX3RyYW5zYWN0aW9uLmdldCgpOyB9Ci0gICAgSW5kZXhl
ZERCOjpJbmRleFJlY29yZFR5cGUgaW5kZXhSZWNvcmRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9p
bmRleFJlY29yZFR5cGU7IH0KKworICAgIFRocmVhZElkZW50aWZpZXIgb3JpZ2luVGhyZWFkSUQo
KSBjb25zdCB7IHJldHVybiBtX29yaWdpblRocmVhZElEOyB9CiAKIHByb3RlY3RlZDoKICAgICBU
cmFuc2FjdGlvbk9wZXJhdGlvbihJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCkBAIC04NCw2
ICs5MCwxNiBAQCBwcm90ZWN0ZWQ6CiAgICAgSW5kZXhlZERCOjpJbmRleFJlY29yZFR5cGUgbV9p
bmRleFJlY29yZFR5cGU7CiAgICAgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBtX3BlcmZvcm1GdW5j
dGlvbjsKICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IElEQlJlc3VsdERhdGEmKT4gbV9j
b21wbGV0ZUZ1bmN0aW9uOworCitwcml2YXRlOgorICAgIElEQlJlc291cmNlSWRlbnRpZmllciB0
cmFuc2FjdGlvbklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zYWN0aW9uLT5pbmZv
KCkuaWRlbnRpZmllcigpOyB9CisgICAgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9vYmplY3RTdG9yZUlkZW50aWZpZXI7IH0KKyAgICB1aW50NjRfdCBp
bmRleElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2luZGV4SWRlbnRpZmllcjsgfQorICAg
IElEQlJlc291cmNlSWRlbnRpZmllciogY3Vyc29ySWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1fY3Vyc29ySWRlbnRpZmllci5nZXQoKTsgfQorICAgIElEQlRyYW5zYWN0aW9uJiB0cmFuc2Fj
dGlvbigpIHsgcmV0dXJuIG1fdHJhbnNhY3Rpb24uZ2V0KCk7IH0KKyAgICBJbmRleGVkREI6Oklu
ZGV4UmVjb3JkVHlwZSBpbmRleFJlY29yZFR5cGUoKSBjb25zdCB7IHJldHVybiBtX2luZGV4UmVj
b3JkVHlwZTsgfQorCisgICAgVGhyZWFkSWRlbnRpZmllciBtX29yaWdpblRocmVhZElEIHsgY3Vy
cmVudFRocmVhZCgpIH07CiB9OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgo=
</data>
<flag name="review"
          id="302320"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>