<?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>101488</bug_id>
          
          <creation_ts>2012-11-07 10:46:42 -0800</creation_ts>
          <short_desc>IndexedDB: Rename methods and remove dead code from IDBBackingStore</short_desc>
          <delta_ts>2012-11-08 00:06:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>101486</dependson>
          <blocked>101415</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alec Flett">alecflett</reporter>
          <assigned_to name="Alec Flett">alecflett</assigned_to>
          <cc>dgrogan</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>760864</commentid>
    <comment_count>0</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-07 10:46:42 -0800</bug_when>
    <thetext>IndexedDB: Rename methods and remove dead code from IDBBackingStore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760876</commentid>
    <comment_count>1</comment_count>
      <attachid>172839</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-07 10:50:56 -0800</bug_when>
    <thetext>Created attachment 172839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760929</commentid>
    <comment_count>2</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-07 11:34:44 -0800</bug_when>
    <thetext>The next patch in the series...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761410</commentid>
    <comment_count>3</comment_count>
      <attachid>172839</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-08 00:06:27 -0800</bug_when>
    <thetext>Comment on attachment 172839
Patch

Clearing flags on attachment: 172839

Committed r133858: &lt;http://trac.webkit.org/changeset/133858&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761411</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-08 00:06:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172839</attachid>
            <date>2012-11-07 10:50:56 -0800</date>
            <delta_ts>2012-11-08 00:06:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101488-20121107104907.patch</filename>
            <type>text/plain</type>
            <size>34222</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWNkNzE1ZWEzYWNiNWU5
NjVmNDdlZGVkNjk4YWI4NTc1YjhmNDM1NS4uYTRhNTNlYjZjOTQ3YzdiMTBmMjVlNmE5Y2IxZGRj
OTNjZmY4NjkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ4IEBACiAyMDEyLTExLTA3ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KIAorICAgICAgICBJbmRleGVkREI6IFJl
bmFtZSBtZXRob2RzIGFuZCByZW1vdmUgZGVhZCBjb2RlIGZyb20gSURCQmFja2luZ1N0b3JlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0ODgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBwcmVwYXJh
dGlvbiBmb3IgbWVyZ2luZyBJREJCYWNraW5nU3RvcmUgYW5kIElEQkxldmVsREJCYWNraW5nU3Rv
cmU6CisKKyAgICAgICAgMSkgcmVuYW1lIE9iamVjdFN0b3JlUmVjb3JkSWRlbnRpZmllciB0byBS
ZWNvcmRJZGVudGlmaWVyCisgICAgICAgIDIpIHJlbW92ZSBJREJCYWNraW5nU3RvcmU6OmZvckVh
Y2hSZWNvcmQgYW5kIGZyaWVuZHMKKyAgICAgICAgMykgcmVtb3ZlIElEQkJhY2tpbmdTdG9yZTo6
Q3Vyc29yOjpjbG9zZSwgc2luY2UgaXQgd2FzIGFuIGVtcHR5IG1ldGhvZC4KKworICAgICAgICBO
byBuZXcgdGVzdHMgYXMgdGhpcyBpcyBwdXJlbHkgY29kZSBjbGVhbnVwLgorCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQkxldmVsREJCYWNraW5nU3RvcmU6OmdldFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkxldmVsREJCYWNraW5nU3RvcmU6OnB1dFJlY29yZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJMZXZlbERCQmFja2luZ1N0b3JlOjpjcmVhdGVJbnZhbGlkUmVj
b3JkSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpJREJMZXZlbERCQmFja2luZ1N0b3Jl
OjpkZWxldGVSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCTGV2ZWxEQkJhY2tpbmdTdG9y
ZTo6a2V5RXhpc3RzSW5PYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJMZXZlbERC
QmFja2luZ1N0b3JlOjpwdXRJbmRleERhdGFGb3JSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6
SURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlSW5kZXhEYXRhRm9yUmVjb3JkKToKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQkJhY2tpbmdTdG9yZTo6UmVjb3JkSWRlbnRpZmllcjo6flJlY29yZElkZW50aWZpZXIp
OgorICAgICAgICAoSURCQmFja2luZ1N0b3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JC
YWNrZW5kSW1wbDo6Y2xvc2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4
QmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW1wbDo6
Y291bnRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEJhY2tlbmRJbXBsOjpn
ZXRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEJhY2tlbmRJbXBsOjpnZXRL
ZXlJbnRlcm5hbCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tp
bmdTdG9yZS5oOgorICAgICAgICAoSURCTGV2ZWxEQkJhY2tpbmdTdG9yZSk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpnZXRJbnRlcm5hbCk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZElt
cGw6OnNldEluZGV4S2V5cyk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tl
bmRJbXBsOjpwdXRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJh
Y2tlbmRJbXBsOjpkZWxldGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsOjpjb3VudEludGVybmFsKToKKworMjAxMi0xMS0wNyAgQWxlYyBGbGV0
dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgSW5kZXhlZERCOiBQcmVwYXJl
IGZvciBJREJCYWNraW5nU3RvcmUgbWVyZ2UgYnkgcmVuYW1pbmcgSURCTGV2ZWxEQkJhY2tpbmdT
dG9yZS5jcHAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMTQ4NgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDJjYmU2NjU4OTA0M2MyYmM3
NTdmNzAwNWRlNTQ3N2JhNDc3OGZiYzguLmE4ZmFkOTIxOGMzNjc2NWI2MTU0Y2VhNjVkM2U0ZTEx
NWU5ZmQxYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTItMTEtMDcgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IEluZGV4ZWREQjogUmVuYW1lIG1ldGhvZHMgYW5kIHJlbW92ZSBkZWFkIGNvZGUgZnJvbSBJREJC
YWNraW5nU3RvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMTQ4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwZGF0ZSBJREJGYWtlQmFja2luZ1N0b3JlIHRvIHJlZmxlY3QgbWV0aG9kIGNoYW5nZXMg
aW4gSURCQmFja2luZ1N0b3JlLgorCisgICAgICAgICogdGVzdHMvSURCRmFrZUJhY2tpbmdTdG9y
ZS5oOgorCiAyMDEyLTExLTA2ICBQZXRlciBCZXZlcmxvbyAgPHBldGVyQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbQ2hyb21pdW1dIEVuYWJsZSB0aGUgSmF2YVNjcmlwdCBpMThuIEFQSSBmb3Ig
QW5kcm9pZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
QmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJh
Y2tpbmdTdG9yZS5jcHAKaW5kZXggNmZkMTE5OTM5ZjE1MjEzODNlZWYwMGVjNWVjYWY4YWU3YzIy
NzZiMS4uNmI1YTYyYTA3NmUxZmFmNWNlNDE4MzI3ODdhNzNhNDE5ZWRjYmM0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuY3Bw
CkBAIC03MDYsOSArNzA2LDkgQEAgdm9pZCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpkZWxldGVP
YmplY3RTdG9yZShJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0cmEKICAgICBjbGVhck9i
amVjdFN0b3JlKHRyYW5zYWN0aW9uLCBkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkKTsKIH0KIAot
U3RyaW5nIElEQkxldmVsREJCYWNraW5nU3RvcmU6OmdldE9iamVjdFN0b3JlUmVjb3JkKElEQkJh
Y2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiBrZXkpCitTdHJpbmcgSURCTGV2
ZWxEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24q
IHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
Y29uc3QgSURCS2V5JiBrZXkpCiB7Ci0gICAgSURCX1RSQUNFKCJJREJMZXZlbERCQmFja2luZ1N0
b3JlOjpnZXRPYmplY3RTdG9yZVJlY29yZCIpOworICAgIElEQl9UUkFDRSgiSURCTGV2ZWxEQkJh
Y2tpbmdTdG9yZTo6Z2V0UmVjb3JkIik7CiAgICAgTGV2ZWxEQlRyYW5zYWN0aW9uKiBsZXZlbERC
VHJhbnNhY3Rpb24gPSBUcmFuc2FjdGlvbjo6bGV2ZWxEQlRyYW5zYWN0aW9uRnJvbSh0cmFuc2Fj
dGlvbik7CiAKICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gbGV2ZWxkYktleSA9IE9iamVjdFN0b3Jl
RGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGtleSk7CkBAIC03Mjks
NyArNzI5LDcgQEAgU3RyaW5nIElEQkxldmVsREJCYWNraW5nU3RvcmU6OmdldE9iamVjdFN0b3Jl
UmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24KIH0KIAogbmFtZXNwYWNlIHsKLWNs
YXNzIExldmVsREJSZWNvcmRJZGVudGlmaWVyIDogcHVibGljIElEQkJhY2tpbmdTdG9yZTo6T2Jq
ZWN0U3RvcmVSZWNvcmRJZGVudGlmaWVyIHsKK2NsYXNzIExldmVsREJSZWNvcmRJZGVudGlmaWVy
IDogcHVibGljIElEQkJhY2tpbmdTdG9yZTo6UmVjb3JkSWRlbnRpZmllciB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8TGV2ZWxEQlJlY29yZElkZW50aWZpZXI+IGNyZWF0ZShjb25z
dCBWZWN0b3I8Y2hhcj4mIHByaW1hcnlLZXksIGludDY0X3QgdmVyc2lvbikgeyByZXR1cm4gYWRv
cHRSZWYobmV3IExldmVsREJSZWNvcmRJZGVudGlmaWVyKHByaW1hcnlLZXksIHZlcnNpb24pKTsg
fQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPExldmVsREJSZWNvcmRJZGVudGlmaWVyPiBjcmVhdGUo
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgTGV2ZWxEQlJlY29yZElkZW50aWZpZXIoKSk7IH0KQEAg
LTc2OCw5ICs3NjgsOSBAQCBzdGF0aWMgaW50NjRfdCBnZXROZXdWZXJzaW9uTnVtYmVyKExldmVs
REJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YQogICAgIHJldHVybiB2ZXJz
aW9uOwogfQogCi1ib29sIElEQkxldmVsREJCYWNraW5nU3RvcmU6OnB1dE9iamVjdFN0b3JlUmVj
b3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRh
dGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiBrZXksIGNvbnN0
IFN0cmluZyYgdmFsdWUsIE9iamVjdFN0b3JlUmVjb3JkSWRlbnRpZmllciogcmVjb3JkSWRlbnRp
ZmllcikKK2Jvb2wgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6cHV0UmVjb3JkKElEQkJhY2tpbmdT
dG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUs
IFJlY29yZElkZW50aWZpZXIqIHJlY29yZElkZW50aWZpZXIpCiB7Ci0gICAgSURCX1RSQUNFKCJJ
REJMZXZlbERCQmFja2luZ1N0b3JlOjpwdXRPYmplY3RTdG9yZVJlY29yZCIpOworICAgIElEQl9U
UkFDRSgiSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6cHV0UmVjb3JkIik7CiAgICAgQVNTRVJUKGtl
eS5pc1ZhbGlkKCkpOwogICAgIExldmVsREJUcmFuc2FjdGlvbiogbGV2ZWxEQlRyYW5zYWN0aW9u
ID0gVHJhbnNhY3Rpb246OmxldmVsREJUcmFuc2FjdGlvbkZyb20odHJhbnNhY3Rpb24pOwogICAg
IGludDY0X3QgdmVyc2lvbiA9IGdldE5ld1ZlcnNpb25OdW1iZXIobGV2ZWxEQlRyYW5zYWN0aW9u
LCBkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkKTsKQEAgLTgwNywxNCArODA3LDE0IEBAIHZvaWQg
SURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6Y2xlYXJPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmU6
OlRyYW5zYWN0aW9uKiB0cmFuCiAgICAgZGVsZXRlUmFuZ2UobGV2ZWxEQlRyYW5zYWN0aW9uLCBz
dGFydEtleSwgc3RvcEtleSk7CiB9CiAKLVBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpPYmpl
Y3RTdG9yZVJlY29yZElkZW50aWZpZXI+IElEQkxldmVsREJCYWNraW5nU3RvcmU6OmNyZWF0ZUlu
dmFsaWRSZWNvcmRJZGVudGlmaWVyKCkKK1Bhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpSZWNv
cmRJZGVudGlmaWVyPiBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpjcmVhdGVJbnZhbGlkUmVjb3Jk
SWRlbnRpZmllcigpCiB7CiAgICAgcmV0dXJuIExldmVsREJSZWNvcmRJZGVudGlmaWVyOjpjcmVh
dGUoKTsKIH0KIAotdm9pZCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpkZWxldGVPYmplY3RTdG9y
ZVJlY29yZChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IE9iamVjdFN0b3JlUmVj
b3JkSWRlbnRpZmllciogcmVjb3JkSWRlbnRpZmllcikKK3ZvaWQgSURCTGV2ZWxEQkJhY2tpbmdT
dG9yZTo6ZGVsZXRlUmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0
aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgUmVj
b3JkSWRlbnRpZmllciogcmVjb3JkSWRlbnRpZmllcikKIHsKLSAgICBJREJfVFJBQ0UoIklEQkxl
dmVsREJCYWNraW5nU3RvcmU6OmRlbGV0ZU9iamVjdFN0b3JlUmVjb3JkIik7CisgICAgSURCX1RS
QUNFKCJJREJMZXZlbERCQmFja2luZ1N0b3JlOjpkZWxldGVSZWNvcmQiKTsKICAgICBMZXZlbERC
VHJhbnNhY3Rpb24qIGxldmVsREJUcmFuc2FjdGlvbiA9IFRyYW5zYWN0aW9uOjpsZXZlbERCVHJh
bnNhY3Rpb25Gcm9tKHRyYW5zYWN0aW9uKTsKICAgICBjb25zdCBMZXZlbERCUmVjb3JkSWRlbnRp
ZmllciogbGV2ZWxEQlJlY29yZElkZW50aWZpZXIgPSBzdGF0aWNfY2FzdDxjb25zdCBMZXZlbERC
UmVjb3JkSWRlbnRpZmllcio+KHJlY29yZElkZW50aWZpZXIpOwogCkBAIC04ODcsNyArODg3LDcg
QEAgYm9vbCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjptYXliZVVwZGF0ZUtleUdlbmVyYXRvckN1
cnJlbnROdW1iZXIoSURCQmFja2luZ1N0b3IKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJ
REJMZXZlbERCQmFja2luZ1N0b3JlOjprZXlFeGlzdHNJbk9iamVjdFN0b3JlKElEQkJhY2tpbmdT
dG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiBrZXksIE9iamVjdFN0b3JlUmVjb3JkSWRl
bnRpZmllciogZm91bmRSZWNvcmRJZGVudGlmaWVyKQorYm9vbCBJREJMZXZlbERCQmFja2luZ1N0
b3JlOjprZXlFeGlzdHNJbk9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24q
IHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
Y29uc3QgSURCS2V5JiBrZXksIFJlY29yZElkZW50aWZpZXIqIGZvdW5kUmVjb3JkSWRlbnRpZmll
cikKIHsKICAgICBJREJfVFJBQ0UoIklEQkxldmVsREJCYWNraW5nU3RvcmU6OmtleUV4aXN0c0lu
T2JqZWN0U3RvcmUiKTsKICAgICBMZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJUcmFuc2FjdGlv
biA9IFRyYW5zYWN0aW9uOjpsZXZlbERCVHJhbnNhY3Rpb25Gcm9tKHRyYW5zYWN0aW9uKTsKQEAg
LTkwNywzOSArOTA3LDYgQEAgYm9vbCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjprZXlFeGlzdHNJ
bk9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24KICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpmb3JFYWNoT2JqZWN0U3RvcmVS
ZWNvcmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3Qg
ZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBPYmplY3RTdG9yZVJlY29yZENhbGxi
YWNrJiBjYWxsYmFjaykKLXsKLSAgICBMZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJUcmFuc2Fj
dGlvbiA9IFRyYW5zYWN0aW9uOjpsZXZlbERCVHJhbnNhY3Rpb25Gcm9tKHRyYW5zYWN0aW9uKTsK
LSAgICBjb25zdCBWZWN0b3I8Y2hhcj4gc3RhcnRLZXkgPSBPYmplY3RTdG9yZURhdGFLZXk6OmVu
Y29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBtaW5JREJLZXkoKSk7Ci0gICAgY29uc3Qg
VmVjdG9yPGNoYXI+IHN0b3BLZXkgPSBPYmplY3RTdG9yZURhdGFLZXk6OmVuY29kZShkYXRhYmFz
ZUlkLCBvYmplY3RTdG9yZUlkLCBtYXhJREJLZXkoKSk7Ci0KLSAgICBPd25QdHI8TGV2ZWxEQkl0
ZXJhdG9yPiBpdCA9IGxldmVsREJUcmFuc2FjdGlvbi0+Y3JlYXRlSXRlcmF0b3IoKTsKLSAgICBm
b3IgKGl0LT5zZWVrKHN0YXJ0S2V5KTsgaXQtPmlzVmFsaWQoKSAmJiBjb21wYXJlS2V5cyhpdC0+
a2V5KCksIHN0b3BLZXkpIDwgMDsgaXQtPm5leHQoKSkgewotICAgICAgICBjb25zdCBjaGFyKiBw
ID0gaXQtPmtleSgpLmJlZ2luKCk7Ci0gICAgICAgIGNvbnN0IGNoYXIqIGxpbWl0ID0gaXQtPmtl
eSgpLmVuZCgpOwotICAgICAgICBPYmplY3RTdG9yZURhdGFLZXkgZGF0YUtleTsKLSAgICAgICAg
cCA9IE9iamVjdFN0b3JlRGF0YUtleTo6ZGVjb2RlKHAsIGxpbWl0LCAmZGF0YUtleSk7Ci0gICAg
ICAgIEFTU0VSVChwKTsKLQotICAgICAgICBSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5ID0gZGF0
YUtleS51c2VyS2V5KCk7Ci0KLSAgICAgICAgaW50NjRfdCB2ZXJzaW9uOwotICAgICAgICBjb25z
dCBjaGFyKiBxID0gZGVjb2RlVmFySW50KGl0LT52YWx1ZSgpLmJlZ2luKCksIGl0LT52YWx1ZSgp
LmVuZCgpLCB2ZXJzaW9uKTsKLSAgICAgICAgaWYgKCFxKSB7Ci0gICAgICAgICAgICBJbnRlcm5h
bEVycm9yKElEQkxldmVsREJCYWNraW5nU3RvcmVSZWFkRXJyb3IpOwotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgUmVmUHRyPExldmVsREJSZWNvcmRJZGVu
dGlmaWVyPiByaSA9IExldmVsREJSZWNvcmRJZGVudGlmaWVyOjpjcmVhdGUoZW5jb2RlSURCS2V5
KCpwcmltYXJ5S2V5KSwgdmVyc2lvbik7Ci0gICAgICAgIFN0cmluZyBpZGJWYWx1ZSA9IGRlY29k
ZVN0cmluZyhxLCBpdC0+dmFsdWUoKS5lbmQoKSk7Ci0KLSAgICAgICAgaWYgKCFjYWxsYmFjay5j
YWxsYmFjayhyaS5nZXQoKSwgaWRiVmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLQotICAgIHJldHVybiB0cnVlOwotfQotCiBzdGF0aWMgYm9vbCBjaGVja0luZGV4QW5k
TWV0YURhdGFLZXkoY29uc3QgTGV2ZWxEQkl0ZXJhdG9yKiBpdCwgY29uc3QgVmVjdG9yPGNoYXI+
JiBzdG9wS2V5LCBpbnQ2NF90IGluZGV4SWQsIHVuc2lnbmVkIGNoYXIgbWV0YURhdGFUeXBlKQog
ewogICAgIGlmICghaXQtPmlzVmFsaWQoKSB8fCBjb21wYXJlS2V5cyhpdC0+a2V5KCksIHN0b3BL
ZXkpID49IDApCkBAIC0xMDkxLDcgKzEwNTgsNyBAQCB2b2lkIElEQkxldmVsREJCYWNraW5nU3Rv
cmU6OmRlbGV0ZUluZGV4KElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aQog
ICAgIH0KIH0KIAotYm9vbCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpwdXRJbmRleERhdGFGb3JS
ZWNvcmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3Qg
ZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0
IElEQktleSYga2V5LCBjb25zdCBPYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXIqIHJlY29yZElk
ZW50aWZpZXIpCitib29sIElEQkxldmVsREJCYWNraW5nU3RvcmU6OnB1dEluZGV4RGF0YUZvclJl
Y29yZChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBk
YXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3Qg
SURCS2V5JiBrZXksIGNvbnN0IFJlY29yZElkZW50aWZpZXIqIHJlY29yZElkZW50aWZpZXIpCiB7
CiAgICAgSURCX1RSQUNFKCJJREJMZXZlbERCQmFja2luZ1N0b3JlOjpwdXRJbmRleERhdGFGb3JS
ZWNvcmQiKTsKICAgICBBU1NFUlQoa2V5LmlzVmFsaWQoKSk7CkBAIC0xMTM2LDcgKzExMDMsNyBA
QCBzdGF0aWMgYm9vbCBmaW5kR3JlYXRlc3RLZXlMZXNzVGhhbk9yRXF1YWwoTGV2ZWxEQlRyYW5z
YWN0aW9uKiB0cmFuc2FjdGlvbiwgY29ucwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIElE
QkxldmVsREJCYWNraW5nU3RvcmU6OmRlbGV0ZUluZGV4RGF0YUZvclJlY29yZChJREJCYWNraW5n
U3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCwgaW50NjRfdCwgaW50NjRfdCwgY29uc3QgT2Jq
ZWN0U3RvcmVSZWNvcmRJZGVudGlmaWVyKikKK2Jvb2wgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6
ZGVsZXRlSW5kZXhEYXRhRm9yUmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBp
bnQ2NF90LCBpbnQ2NF90LCBpbnQ2NF90LCBjb25zdCBSZWNvcmRJZGVudGlmaWVyKikKIHsKICAg
ICAvLyBGSVhNRTogVGhpcyBpc24ndCBuZWVkZWQgc2luY2Ugd2UgaW52YWxpZGF0ZSBpbmRleCBk
YXRhIHZpYSB0aGUgdmVyc2lvbiBudW1iZXIgbWVjaGFuaXNtLgogICAgIHJldHVybiB0cnVlOwpA
QCAtMTIzMyw4ICsxMjAwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJL
ZXk+IGtleSgpIHsgcmV0dXJuIG1fY3VycmVudEtleTsgfQogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxJREJLZXk+IHByaW1hcnlLZXkoKSB7IHJldHVybiBtX2N1cnJlbnRLZXk7IH0KICAgICB2aXJ0
dWFsIFN0cmluZyB2YWx1ZSgpID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2lu
Z1N0b3JlOjpPYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXI+IG9iamVjdFN0b3JlUmVjb3JkSWRl
bnRpZmllcigpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSB7IH0KKyAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpSZWNvcmRJZGVudGlmaWVyPiBvYmplY3RTdG9y
ZVJlY29yZElkZW50aWZpZXIoKSA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgbG9hZEN1cnJlbnRS
b3coKSA9IDA7CiAgICAgYm9vbCBmaXJzdFNlZWsoKTsKQEAgLTE0MjUsNyArMTM5MSw3IEBAIHB1
YmxpYzoKIAogICAgIC8vIEN1cnNvckltcGxDb21tb24KICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1
ZSgpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBTdHJpbmcoKTsgfQotICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU6Ok9iamVjdFN0b3JlUmVjb3JkSWRlbnRpZmll
cj4gb2JqZWN0U3RvcmVSZWNvcmRJZGVudGlmaWVyKCkgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpSZWNvcmRJZGVudGlmaWVyPiBvYmplY3RTdG9yZVJl
Y29yZElkZW50aWZpZXIoKSBPVkVSUklERQogICAgIHsKICAgICAgICAgcmV0dXJuIG1faWRlbnRp
ZmllcjsKICAgICB9CkBAIC0xNDg2LDcgKzE0NTIsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBDdXJz
b3JJbXBsQ29tbW9uCiAgICAgdmlydHVhbCBTdHJpbmcgdmFsdWUoKSB7IHJldHVybiBtX2N1cnJl
bnRWYWx1ZTsgfQotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU6Ok9iamVj
dFN0b3JlUmVjb3JkSWRlbnRpZmllcj4gb2JqZWN0U3RvcmVSZWNvcmRJZGVudGlmaWVyKCkgT1ZF
UlJJREUKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpSZWNvcmRJZGVu
dGlmaWVyPiBvYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXIoKSBPVkVSUklERQogICAgIHsKICAg
ICAgICAgcmV0dXJuIG1faWRlbnRpZmllcjsKICAgICB9CkBAIC0xNTUyLDcgKzE1MTgsNyBAQCBw
dWJsaWM6CiAgICAgLy8gQ3Vyc29ySW1wbENvbW1vbgogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVl
KCkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIFN0cmluZygpOyB9CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSgpIHsgcmV0dXJuIG1fcHJpbWFyeUtleTsg
fQotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU6Ok9iamVjdFN0b3JlUmVj
b3JkSWRlbnRpZmllcj4gb2JqZWN0U3RvcmVSZWNvcmRJZGVudGlmaWVyKCkgeyBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2lu
Z1N0b3JlOjpSZWNvcmRJZGVudGlmaWVyPiBvYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXIoKSB7
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgYm9vbCBsb2Fk
Q3VycmVudFJvdygpOwogCiBwcml2YXRlOgpAQCAtMTYzMSw3ICsxNTk3LDcgQEAgcHVibGljOgog
ICAgIC8vIEN1cnNvckltcGxDb21tb24KICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIHsgcmV0
dXJuIG1fdmFsdWU7IH0KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5
KCkgeyByZXR1cm4gbV9wcmltYXJ5S2V5OyB9Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkJh
Y2tpbmdTdG9yZTo6T2JqZWN0U3RvcmVSZWNvcmRJZGVudGlmaWVyPiBvYmplY3RTdG9yZVJlY29y
ZElkZW50aWZpZXIoKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gMDsgfQorICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU6OlJlY29yZElkZW50aWZpZXI+IG9iamVj
dFN0b3JlUmVjb3JkSWRlbnRpZmllcigpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiAw
OyB9CiAgICAgYm9vbCBsb2FkQ3VycmVudFJvdygpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuaAppbmRleCBiZmMz
ODc2YTM0ZmQ3YjM1OGNmZDdkYjBjOTYyZTk5ODg0M2JiY2I2Li4zYzk0NTFjYzA3NGMyMGU2ZjIx
N2M0OTQ4N2EzZDgzNTJmMjcwMmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuaApAQCAtNjEsMzMgKzYxLDI2IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlT2JqZWN0U3RvcmUoVHJhbnNhY3Rpb24qLCBpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGRlbGV0ZU9iamVjdFN0b3JlKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQpID0gMDsKIAotICAgIGNsYXNzIE9iamVjdFN0b3JlUmVjb3Jk
SWRlbnRpZmllciA6IHB1YmxpYyBSZWZDb3VudGVkPE9iamVjdFN0b3JlUmVjb3JkSWRlbnRpZmll
cj4geworICAgIGNsYXNzIFJlY29yZElkZW50aWZpZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWNv
cmRJZGVudGlmaWVyPiB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxp
ZCgpIGNvbnN0ID0gMDsKLSAgICAgICAgdmlydHVhbCB+T2JqZWN0U3RvcmVSZWNvcmRJZGVudGlm
aWVyKCkge30KKyAgICAgICAgdmlydHVhbCB+UmVjb3JkSWRlbnRpZmllcigpIHsgfQogICAgIH07
Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPE9iamVjdFN0b3JlUmVjb3JkSWRlbnRpZmllcj4gY3Jl
YXRlSW52YWxpZFJlY29yZElkZW50aWZpZXIoKSA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFJlY29yZElkZW50aWZpZXI+IGNyZWF0ZUludmFsaWRSZWNvcmRJZGVudGlmaWVyKCkgPSAwOwog
Ci0gICAgdmlydHVhbCBTdHJpbmcgZ2V0T2JqZWN0U3RvcmVSZWNvcmQoVHJhbnNhY3Rpb24qLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5Jikg
PSAwOwotICAgIHZpcnR1YWwgYm9vbCBwdXRPYmplY3RTdG9yZVJlY29yZChUcmFuc2FjdGlvbios
IGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkm
LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBPYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXIqKSA9IDA7
CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0UmVjb3JkKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYpID0gMDsKKyAgICB2
aXJ0dWFsIGJvb2wgcHV0UmVjb3JkKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYsIGNvbnN0IFN0cmluZyYgdmFsdWUs
IFJlY29yZElkZW50aWZpZXIqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyT2JqZWN0U3Rv
cmUoVHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZVJlY29yZChUcmFuc2Fj
dGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBP
YmplY3RTdG9yZVJlY29yZElkZW50aWZpZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0
ZVJlY29yZChUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBjb25zdCBSZWNvcmRJZGVudGlmaWVyKikgPSAwOwogICAgIHZpcnR1YWwgaW50NjRf
dCBnZXRLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgbWF5
YmVVcGRhdGVLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBk
YXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgbmV3TnVtYmVyLCBib29s
IGNoZWNrQ3VycmVudCkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBrZXlFeGlzdHNJbk9iamVjdFN0
b3JlKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGNvbnN0IElEQktleSYsIE9iamVjdFN0b3JlUmVjb3JkSWRlbnRpZmllciogZm91bmRSZWNv
cmRJZGVudGlmaWVyKSA9IDA7Ci0KLSAgICBjbGFzcyBPYmplY3RTdG9yZVJlY29yZENhbGxiYWNr
IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgICB2aXJ0dWFsIGJvb2wgY2FsbGJhY2soY29uc3QgT2Jq
ZWN0U3RvcmVSZWNvcmRJZGVudGlmaWVyKiwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgPSAwOwotICAg
ICAgICAgdmlydHVhbCB+T2JqZWN0U3RvcmVSZWNvcmRDYWxsYmFjaygpIHt9OwotICAgIH07Ci0g
ICAgdmlydHVhbCBib29sIGZvckVhY2hPYmplY3RTdG9yZVJlY29yZChUcmFuc2FjdGlvbiosIGlu
dDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBPYmplY3RTdG9yZVJlY29y
ZENhbGxiYWNrJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBrZXlFeGlzdHNJbk9iamVjdFN0b3Jl
KFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQs
IGNvbnN0IElEQktleSYsIFJlY29yZElkZW50aWZpZXIqIGZvdW5kUmVjb3JkSWRlbnRpZmllcikg
PSAwOwogCiAgICAgdmlydHVhbCBWZWN0b3I8SURCSW5kZXhNZXRhZGF0YT4gZ2V0SW5kZXhlcyhp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkgPSAwOwogICAgIHZpcnR1
YWwgYm9vbCBjcmVhdGVJbmRleChUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50
NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgSURCS2V5UGF0aCYsIGJvb2wgaXNVbmlxdWUsIGJvb2wgaXNNdWx0aUVudHJ5KSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUluZGV4KFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCkgPSAwOwotICAg
IHZpcnR1YWwgYm9vbCBwdXRJbmRleERhdGFGb3JSZWNvcmQoVHJhbnNhY3Rpb24qLCBpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25z
dCBJREJLZXkmLCBjb25zdCBPYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXIqKSA9IDA7Ci0gICAg
dmlydHVhbCBib29sIGRlbGV0ZUluZGV4RGF0YUZvclJlY29yZChUcmFuc2FjdGlvbiosIGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNv
bnN0IE9iamVjdFN0b3JlUmVjb3JkSWRlbnRpZmllciopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wg
cHV0SW5kZXhEYXRhRm9yUmVjb3JkKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiwgY29u
c3QgUmVjb3JkSWRlbnRpZmllciopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlSW5kZXhE
YXRhRm9yUmVjb3JkKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgUmVjb3JkSWRlbnRpZmllciopID0g
MDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5PiBnZXRQcmltYXJ5S2V5VmlhSW5kZXgo
VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
aW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGtl
eUV4aXN0c0luSW5kZXgoVHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlaWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmIGluZGV4S2V5LCBS
ZWZQdHI8SURCS2V5PiYgZm91bmRQcmltYXJ5S2V5KSA9IDA7CiAKQEAgLTEwNCw4ICs5Nyw3IEBA
IHB1YmxpYzoKICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQktleT4ga2V5KCkgPSAwOwog
ICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5KCkgPSAwOwogICAg
ICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpID0gMDsKLSAgICAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPE9iamVjdFN0b3JlUmVjb3JkSWRlbnRpZmllcj4gb2JqZWN0U3RvcmVSZWNvcmRJZGVudGlm
aWVyKCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSA9IDA7CisgICAgICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxSZWNvcmRJZGVudGlmaWVyPiBvYmplY3RTdG9yZVJlY29yZElkZW50
aWZpZXIoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgfkN1cnNvcigpIHsgfTsKICAgICB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNr
ZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JC
YWNrZW5kSW1wbC5jcHAKaW5kZXggNDI4Y2MwNDEyYzJiNjM0NDQwNzQwMzJmODJjZTViODc5ZGU4
YmIyMi4uYjQ5NDRjYTg5NWM4ZDAyZDAxNTRlMDVkNjE1MzY3MzFjMDVhM2NjNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tl
bmRJbXBsLmNwcApAQCAtMTk4LDggKzE5OCw2IEBAIHZvaWQgSURCQ3Vyc29yQmFja2VuZEltcGw6
OmNsb3NlKCkKIHsKICAgICBJREJfVFJBQ0UoIklEQkN1cnNvckJhY2tlbmRJbXBsOjpjbG9zZSIp
OwogICAgIG1fY2xvc2VkID0gdHJ1ZTsKLSAgICBpZiAobV9jdXJzb3IpCi0gICAgICAgIG1fY3Vy
c29yLT5jbG9zZSgpOwogICAgIG1fY3Vyc29yLmNsZWFyKCk7CiAgICAgbV9zYXZlZEN1cnNvci5j
bGVhcigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCSW5kZXhCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJJbmRleEJhY2tlbmRJbXBsLmNwcAppbmRleCA0MDJiNzU5ZGNhMWJiM2M4Zjc2ZGU1YWU2
M2ZmZmE5MDM3ODUzNTRlLi4xM2U2OTlmOTY2NjgyMWNmYjAwYjkwNTBkYTgxOTllMDE0NzQzMzJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJh
Y2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleEJhY2tlbmRJbXBsLmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgSURCSW5kZXhCYWNr
ZW5kSW1wbDo6Y291bnRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0
cjxJREJJCiAgICAgZG8gewogICAgICAgICArK2NvdW50OwogICAgIH0gd2hpbGUgKGJhY2tpbmdT
dG9yZUN1cnNvci0+Y29udGludWVGdW5jdGlvbigwKSk7Ci0gICAgYmFja2luZ1N0b3JlQ3Vyc29y
LT5jbG9zZSgpOworCiAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoY291bnQpOwogfQogCkBAIC0x
NTUsMTIgKzE1NSwxMSBAQCB2b2lkIElEQkluZGV4QmFja2VuZEltcGw6OmdldEludGVybmFsKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkluZAogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgIGtleSA9IGJhY2tpbmdTdG9yZUN1cnNvci0+a2V5KCk7
Ci0gICAgICAgIGJhY2tpbmdTdG9yZUN1cnNvci0+Y2xvc2UoKTsKICAgICB9CiAKICAgICBSZWZQ
dHI8SURCS2V5PiBwcmltYXJ5S2V5ID0gaW5kZXgtPmJhY2tpbmdTdG9yZSgpLT5nZXRQcmltYXJ5
S2V5VmlhSW5kZXgodHJhbnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCksIGluZGV4
LT5kYXRhYmFzZUlkKCksIGluZGV4LT5tX29iamVjdFN0b3JlQmFja2VuZC0+aWQoKSwgaW5kZXgt
PmlkKCksICprZXkpOwogCi0gICAgU3RyaW5nIHZhbHVlID0gaW5kZXgtPmJhY2tpbmdTdG9yZSgp
LT5nZXRPYmplY3RTdG9yZVJlY29yZCh0cmFuc2FjdGlvbi0+YmFja2luZ1N0b3JlVHJhbnNhY3Rp
b24oKSwgaW5kZXgtPmRhdGFiYXNlSWQoKSwgaW5kZXgtPm1fb2JqZWN0U3RvcmVCYWNrZW5kLT5p
ZCgpLCAqcHJpbWFyeUtleSk7CisgICAgU3RyaW5nIHZhbHVlID0gaW5kZXgtPmJhY2tpbmdTdG9y
ZSgpLT5nZXRSZWNvcmQodHJhbnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCksIGlu
ZGV4LT5kYXRhYmFzZUlkKCksIGluZGV4LT5tX29iamVjdFN0b3JlQmFja2VuZC0+aWQoKSwgKnBy
aW1hcnlLZXkpOwogCiAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKSB7CiAgICAgICAgIGNhbGxiYWNr
cy0+b25TdWNjZXNzKCk7CkBAIC0xODksMTEgKzE4OCw5IEBAIHZvaWQgSURCSW5kZXhCYWNrZW5k
SW1wbDo6Z2V0S2V5SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFz
c1JlCiAgICAgUmVmUHRyPElEQktleT4ga2V5UmVzdWx0ID0gaW5kZXgtPmJhY2tpbmdTdG9yZSgp
LT5nZXRQcmltYXJ5S2V5VmlhSW5kZXgodHJhbnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRyYW5zYWN0
aW9uKCksIGluZGV4LT5kYXRhYmFzZUlkKCksIGluZGV4LT5tX29iamVjdFN0b3JlQmFja2VuZC0+
aWQoKSwgaW5kZXgtPmlkKCksICpiYWNraW5nU3RvcmVDdXJzb3ItPmtleSgpKTsKICAgICBpZiAo
IWtleVJlc3VsdCkgewogICAgICAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhzdGF0aWNfY2FzdDxJ
REJLZXkqPigwKSk7Ci0gICAgICAgIGJhY2tpbmdTdG9yZUN1cnNvci0+Y2xvc2UoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhrZXlSZXN1bHQuZ2V0
KCkpOwotICAgIGJhY2tpbmdTdG9yZUN1cnNvci0+Y2xvc2UoKTsKIH0KIAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3Jl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0
b3JlLmgKaW5kZXggMjZkNmY5MGE5YjljYzNjNDM5ZmFiOTIxYmQ1NzNjNmI3YTBhMTg1My4uMWNi
MjcyNTE0YTFmMjgxMjAzNTA4MzUzYTM5NDIxMDcyM2M0YjM4NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNraW5nU3RvcmUu
aApAQCAtNTQsMjIgKzU0LDIwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFZlY3RvcjxJREJPYmpl
Y3RTdG9yZU1ldGFkYXRhPiBnZXRPYmplY3RTdG9yZXMoaW50NjRfdCBkYXRhYmFzZUlkKTsKICAg
ICB2aXJ0dWFsIGJvb2wgY3JlYXRlT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlOjpUcmFuc2Fj
dGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQpOwogICAg
IHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0
aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpOwotICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxPYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXI+IGNyZWF0ZUludmFs
aWRSZWNvcmRJZGVudGlmaWVyKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgZ2V0T2JqZWN0U3RvcmVS
ZWNvcmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmKTsKLSAgICB2aXJ0dWFsIGJvb2wg
cHV0T2JqZWN0U3RvcmVSZWNvcmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmLCBjb25z
dCBTdHJpbmcmIHZhbHVlLCBPYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXIqKTsKKyAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8UmVjb3JkSWRlbnRpZmllcj4gY3JlYXRlSW52YWxpZFJlY29yZElkZW50
aWZpZXIoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRSZWNvcmQoSURCQmFja2luZ1N0b3JlOjpU
cmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBj
b25zdCBJREJLZXkmKTsKKyAgICB2aXJ0dWFsIGJvb2wgcHV0UmVjb3JkKElEQkJhY2tpbmdTdG9y
ZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgY29uc3QgSURCS2V5JiwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgUmVjb3JkSWRlbnRpZmllciop
OwogICAgIHZpcnR1YWwgdm9pZCBjbGVhck9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZTo6VHJh
bnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCk7Ci0g
ICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlUmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6
VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
Y29uc3QgT2JqZWN0U3RvcmVSZWNvcmRJZGVudGlmaWVyKik7CisgICAgdmlydHVhbCB2b2lkIGRl
bGV0ZVJlY29yZChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFJlY29yZElkZW50aWZpZXIqKTsKICAg
ICB2aXJ0dWFsIGludDY0X3QgZ2V0S2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcihJREJCYWNraW5n
U3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQpOwogICAgIHZpcnR1YWwgYm9vbCBtYXliZVVwZGF0ZUtleUdlbmVyYXRvckN1cnJlbnRO
dW1iZXIoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IG5ld1N0YXRlLCBib29sIGNoZWNrQ3VycmVu
dCk7Ci0gICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0
b3JlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBjb25zdCBJREJLZXkmLCBPYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXIqIGZvdW5kUmVj
b3JkSWRlbnRpZmllcik7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgZm9yRWFjaE9iamVjdFN0b3JlUmVj
b3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgT2JqZWN0U3RvcmVSZWNvcmRDYWxsYmFjayYpOworICAgIHZp
cnR1YWwgYm9vbCBrZXlFeGlzdHNJbk9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNh
Y3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3Qg
SURCS2V5JiwgUmVjb3JkSWRlbnRpZmllciogZm91bmRSZWNvcmRJZGVudGlmaWVyKTsKIAogICAg
IHZpcnR1YWwgVmVjdG9yPElEQkluZGV4TWV0YWRhdGE+IGdldEluZGV4ZXMoaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpOwogICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVJ
bmRleChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBpc1VuaXF1ZSwgYm9vbCBpc011bHRpRW50cnkpOwog
ICAgIHZpcnR1YWwgdm9pZCBkZWxldGVJbmRleChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9u
KiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5k
ZXhJZCk7Ci0gICAgdmlydHVhbCBib29sIHB1dEluZGV4RGF0YUZvclJlY29yZChJREJCYWNraW5n
U3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiwgY29uc3QgT2JqZWN0U3RvcmVS
ZWNvcmRJZGVudGlmaWVyKik7Ci0gICAgdmlydHVhbCBib29sIGRlbGV0ZUluZGV4RGF0YUZvclJl
Y29yZChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgT2JqZWN0U3RvcmVS
ZWNvcmRJZGVudGlmaWVyKik7CisgICAgdmlydHVhbCBib29sIHB1dEluZGV4RGF0YUZvclJlY29y
ZChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiwgY29uc3Qg
UmVjb3JkSWRlbnRpZmllciopOworICAgIHZpcnR1YWwgYm9vbCBkZWxldGVJbmRleERhdGFGb3JS
ZWNvcmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IFJlY29yZElkZW50
aWZpZXIqKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5PiBnZXRQcmltYXJ5S2V5Vmlh
SW5kZXgoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYpOwog
ICAgIHZpcnR1YWwgYm9vbCBrZXlFeGlzdHNJbkluZGV4KElEQkJhY2tpbmdTdG9yZTo6VHJhbnNh
Y3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRf
dCBpbmRleElkLCBjb25zdCBJREJLZXkmIGluZGV4S2V5LCBSZWZQdHI8SURCS2V5PiYgZm91bmRQ
cmltYXJ5S2V5KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAppbmRleCA5NzZhZDBiZGI3
Yjk3YjhiZGFiNzIyMmU5OTA2OTVkZWNjYmE1YTYyLi40NjQwYzEzZGQyZTNjNzdiMmRlODBjYzBk
YjdhZGJmNTkwM2UwM2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcApAQCAtODksMTAg
Kzg5LDkgQEAgdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpnZXRJbnRlcm5hbChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjwKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgICAgICBrZXkgPSBiYWNraW5nU3RvcmVDdXJzb3ItPmtleSgpOwotICAgICAg
ICBiYWNraW5nU3RvcmVDdXJzb3ItPmNsb3NlKCk7CiAgICAgfQogCi0gICAgU3RyaW5nIHdpcmVE
YXRhID0gb2JqZWN0U3RvcmUtPmJhY2tpbmdTdG9yZSgpLT5nZXRPYmplY3RTdG9yZVJlY29yZCh0
cmFuc2FjdGlvbi0+YmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSwgb2JqZWN0U3RvcmUtPmRhdGFi
YXNlSWQoKSwgb2JqZWN0U3RvcmUtPmlkKCksICprZXkpOworICAgIFN0cmluZyB3aXJlRGF0YSA9
IG9iamVjdFN0b3JlLT5iYWNraW5nU3RvcmUoKS0+Z2V0UmVjb3JkKHRyYW5zYWN0aW9uLT5iYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbigpLCBvYmplY3RTdG9yZS0+ZGF0YWJhc2VJZCgpLCBvYmplY3RT
dG9yZS0+aWQoKSwgKmtleSk7CiAgICAgaWYgKHdpcmVEYXRhLmlzTnVsbCgpKSB7CiAgICAgICAg
IGNhbGxiYWNrcy0+b25TdWNjZXNzKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTE2MCw3ICsxNTks
NyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIGJvb2wgd3Jp
dGVJbmRleEtleXMoY29uc3QgSURCQmFja2luZ1N0b3JlOjpPYmplY3RTdG9yZVJlY29yZElkZW50
aWZpZXIqIHJlY29yZElkZW50aWZpZXIsIElEQkJhY2tpbmdTdG9yZSYgYmFja2luZ1N0b3JlLCBJ
REJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIGNvbnN0CisgICAgYm9vbCB3cml0ZUluZGV4S2V5
cyhjb25zdCBJREJCYWNraW5nU3RvcmU6OlJlY29yZElkZW50aWZpZXIqIHJlY29yZElkZW50aWZp
ZXIsIElEQkJhY2tpbmdTdG9yZSYgYmFja2luZ1N0b3JlLCBJREJCYWNraW5nU3RvcmU6OlRyYW5z
YWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQpIGNvbnN0CiAgICAgewogICAgICAgICBpbnQ2NF90IGluZGV4SWQgPSBtX2luZGV4TWV0
YWRhdGEuaWQ7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9pbmRleEtleXMuc2l6
ZSgpOyArK2kpIHsKQEAgLTIzNyw3ICsyMzYsNyBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGw6OnNldEluZGV4S2V5cyhQYXNzUmVmUHRyPElEQktleT4gcHJwUHJpbWFyeUtleSwgYwog
ICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiB0cmFuc2FjdGlvbiA9IElEQlRy
YW5zYWN0aW9uQmFja2VuZEltcGw6OmZyb20odHJhbnNhY3Rpb25QdHIpOwogCiAgICAgLy8gRklY
TUU6IFRoaXMgbWV0aG9kIGNvdWxkIGJlIGFzeW5jaHJvbm91cywgYnV0IHdlIG5lZWQgdG8gZXZh
bHVhdGUgaWYgaXQncyB3b3J0aCB0aGUgZXh0cmEgY29tcGxleGl0eS4KLSAgICBSZWZQdHI8SURC
QmFja2luZ1N0b3JlOjpPYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXI+IHJlY29yZElkZW50aWZp
ZXIgPSBiYWNraW5nU3RvcmUoKS0+Y3JlYXRlSW52YWxpZFJlY29yZElkZW50aWZpZXIoKTsKKyAg
ICBSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpSZWNvcmRJZGVudGlmaWVyPiByZWNvcmRJZGVudGlm
aWVyID0gYmFja2luZ1N0b3JlKCktPmNyZWF0ZUludmFsaWRSZWNvcmRJZGVudGlmaWVyKCk7CiAg
ICAgaWYgKCFiYWNraW5nU3RvcmUoKS0+a2V5RXhpc3RzSW5PYmplY3RTdG9yZSh0cmFuc2FjdGlv
bi0+YmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSwgZGF0YWJhc2VJZCgpLCBpZCgpLCAqcHJpbWFy
eUtleSwgcmVjb3JkSWRlbnRpZmllci5nZXQoKSkpIHsKICAgICAgICAgdHJhbnNhY3Rpb24tPmFi
b3J0KCk7CiAgICAgICAgIHJldHVybjsKQEAgLTMzMCw3ICszMjksNyBAQCB2b2lkIElEQk9iamVj
dFN0b3JlQmFja2VuZEltcGw6OnB1dEludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQ
YXNzUmVmUHRyPAogCiAgICAgQVNTRVJUKGtleSAmJiBrZXktPmlzVmFsaWQoKSk7CiAKLSAgICBS
ZWZQdHI8SURCQmFja2luZ1N0b3JlOjpPYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXI+IHJlY29y
ZElkZW50aWZpZXIgPSBvYmplY3RTdG9yZS0+YmFja2luZ1N0b3JlKCktPmNyZWF0ZUludmFsaWRS
ZWNvcmRJZGVudGlmaWVyKCk7CisgICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZTo6UmVjb3JkSWRl
bnRpZmllcj4gcmVjb3JkSWRlbnRpZmllciA9IG9iamVjdFN0b3JlLT5iYWNraW5nU3RvcmUoKS0+
Y3JlYXRlSW52YWxpZFJlY29yZElkZW50aWZpZXIoKTsKICAgICBpZiAocHV0TW9kZSA9PSBBZGRP
bmx5ICYmIG9iamVjdFN0b3JlLT5iYWNraW5nU3RvcmUoKS0+a2V5RXhpc3RzSW5PYmplY3RTdG9y
ZSh0cmFuc2FjdGlvbi0+YmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSwgb2JqZWN0U3RvcmUtPmRh
dGFiYXNlSWQoKSwgb2JqZWN0U3RvcmUtPmlkKCksICprZXksIHJlY29yZElkZW50aWZpZXIuZ2V0
KCkpKSB7CiAgICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVh
dGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkNPTlNUUkFJTlRfRVJSLCAiS2V5IGFscmVhZHkgZXhp
c3RzIGluIHRoZSBvYmplY3Qgc3RvcmUuIikpOwogICAgICAgICByZXR1cm47CkBAIC0zNDUsNyAr
MzQ0LDcgQEAgdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpwdXRJbnRlcm5hbChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjwKIAogICAgIC8vIEJlZm9yZSB0aGlzIHBv
aW50LCBkb24ndCBkbyBhbnkgbXV0YXRpb24uICBBZnRlciB0aGlzIHBvaW50LCByb2xsYmFjayB0
aGUgdHJhbnNhY3Rpb24gaW4gY2FzZSBvZiBlcnJvci4KIAotICAgIGlmICghb2JqZWN0U3RvcmUt
PmJhY2tpbmdTdG9yZSgpLT5wdXRPYmplY3RTdG9yZVJlY29yZCh0cmFuc2FjdGlvbi0+YmFja2lu
Z1N0b3JlVHJhbnNhY3Rpb24oKSwgb2JqZWN0U3RvcmUtPmRhdGFiYXNlSWQoKSwgb2JqZWN0U3Rv
cmUtPmlkKCksICprZXksIHZhbHVlLT50b1dpcmVTdHJpbmcoKSwgcmVjb3JkSWRlbnRpZmllci5n
ZXQoKSkpIHsKKyAgICBpZiAoIW9iamVjdFN0b3JlLT5iYWNraW5nU3RvcmUoKS0+cHV0UmVjb3Jk
KHRyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBvYmplY3RTdG9yZS0+ZGF0
YWJhc2VJZCgpLCBvYmplY3RTdG9yZS0+aWQoKSwgKmtleSwgdmFsdWUtPnRvV2lyZVN0cmluZygp
LCByZWNvcmRJZGVudGlmaWVyLmdldCgpKSkgewogICAgICAgICBSZWZQdHI8SURCRGF0YWJhc2VF
cnJvcj4gZXJyb3IgPSBJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRp
b246OlVOS05PV05fRVJSLCAiRXJyb3Igd3JpdGluZyBkYXRhIHRvIHN0YWJsZSBzdG9yYWdlLiIp
OwogICAgICAgICBjYWxsYmFja3MtPm9uRXJyb3IoZXJyb3IpOwogICAgICAgICB0cmFuc2FjdGlv
bi0+YWJvcnQoZXJyb3IpOwpAQCAtMzg4LDcgKzM4Nyw3IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbDo6ZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcHJwS2V5
UmFuCiB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmRlbGV0ZUludGVybmFsKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+
IG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsPiB0cmFuc2FjdGlvbikKIHsKICAgICBJREJfVFJBQ0UoIklEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGw6OmRlbGV0ZUludGVybmFsIik7Ci0gICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZTo6
T2JqZWN0U3RvcmVSZWNvcmRJZGVudGlmaWVyPiByZWNvcmRJZGVudGlmaWVyOworICAgIFJlZlB0
cjxJREJCYWNraW5nU3RvcmU6OlJlY29yZElkZW50aWZpZXI+IHJlY29yZElkZW50aWZpZXI7CiAK
ICAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvciA9
IG9iamVjdFN0b3JlLT5iYWNraW5nU3RvcmUoKS0+b3Blbk9iamVjdFN0b3JlQ3Vyc29yKHRyYW5z
YWN0aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBvYmplY3RTdG9yZS0+ZGF0YWJhc2VJ
ZCgpLCBvYmplY3RTdG9yZS0+aWQoKSwga2V5UmFuZ2UuZ2V0KCksIElEQkN1cnNvcjo6TkVYVCk7
CiAgICAgaWYgKGJhY2tpbmdTdG9yZUN1cnNvcikgewpAQCAtNDAxLDExICs0MDAsOSBAQCB2b2lk
IElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmRlbGV0ZUludGVybmFsKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzUmVmUAogICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQoc3VjY2Vz
cywgc3VjY2Vzcyk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIG9iamVjdFN0b3JlLT5i
YWNraW5nU3RvcmUoKS0+ZGVsZXRlT2JqZWN0U3RvcmVSZWNvcmQodHJhbnNhY3Rpb24tPmJhY2tp
bmdTdG9yZVRyYW5zYWN0aW9uKCksIG9iamVjdFN0b3JlLT5kYXRhYmFzZUlkKCksIG9iamVjdFN0
b3JlLT5pZCgpLCByZWNvcmRJZGVudGlmaWVyLmdldCgpKTsKKyAgICAgICAgICAgIG9iamVjdFN0
b3JlLT5iYWNraW5nU3RvcmUoKS0+ZGVsZXRlUmVjb3JkKHRyYW5zYWN0aW9uLT5iYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbigpLCBvYmplY3RTdG9yZS0+ZGF0YWJhc2VJZCgpLCBvYmplY3RTdG9yZS0+
aWQoKSwgcmVjb3JkSWRlbnRpZmllci5nZXQoKSk7CiAKICAgICAgICAgfSB3aGlsZSAoYmFja2lu
Z1N0b3JlQ3Vyc29yLT5jb250aW51ZUZ1bmN0aW9uKDApKTsKLQotICAgICAgICBiYWNraW5nU3Rv
cmVDdXJzb3ItPmNsb3NlKCk7CiAgICAgfQogCiAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoKTsK
QEAgLTU4MSw3ICs1NzgsNiBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNvdW50
SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdAogICAgICAgICArK2Nv
dW50OwogICAgIH0gd2hpbGUgKGJhY2tpbmdTdG9yZUN1cnNvci0+Y29udGludWVGdW5jdGlvbigw
KSk7CiAKLSAgICBiYWNraW5nU3RvcmVDdXJzb3ItPmNsb3NlKCk7CiAgICAgY2FsbGJhY2tzLT5v
blN1Y2Nlc3MoY291bnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0lEQkZha2VCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvSURCRmFrZUJhY2tpbmdTdG9yZS5oCmluZGV4IDFmMTY0MDg0MTA2N2JkY2VhZDBmOGRkZDgy
YTkyNzI1NTc2MjE5MmUuLjRlMzdkM2VhYTkwNGY2YjkyMmYyOGQyMGI4OWVlMGIxZDUwYzFiZjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRmFrZUJhY2tpbmdT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRmFrZUJhY2tpbmdT
dG9yZS5oCkBAIC00MywyMyArNDMsMjEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjcmVh
dGVPYmplY3RTdG9yZShUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29s
IGF1dG9JbmNyZW1lbnQpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9OwogICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVPYmplY3RTdG9yZShUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkKSBPVkVSUklERSB7IH0KIAotICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxPYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXI+IGNyZWF0ZUludmFsaWRSZWNvcmRJZGVu
dGlmaWVyKCkgT1ZFUlJJREUgeyByZXR1cm4gUGFzc1JlZlB0cjxPYmplY3RTdG9yZVJlY29yZElk
ZW50aWZpZXI+KCk7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UmVjb3JkSWRlbnRpZmllcj4g
Y3JlYXRlSW52YWxpZFJlY29yZElkZW50aWZpZXIoKSBPVkVSUklERSB7IHJldHVybiBQYXNzUmVm
UHRyPFJlY29yZElkZW50aWZpZXI+KCk7IH0KIAotICAgIHZpcnR1YWwgU3RyaW5nIGdldE9iamVj
dFN0b3JlUmVjb3JkKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYpIE9WRVJSSURFIHsgcmV0dXJuIFN0cmluZygpOyB9
Ci0gICAgdmlydHVhbCBib29sIHB1dE9iamVjdFN0b3JlUmVjb3JkKFRyYW5zYWN0aW9uKiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYsIGNv
bnN0IFN0cmluZyYgdmFsdWUsIE9iamVjdFN0b3JlUmVjb3JkSWRlbnRpZmllciopIE9WRVJSSURF
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0UmVjb3JkKFRyYW5zYWN0
aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElE
QktleSYpIE9WRVJSSURFIHsgcmV0dXJuIFN0cmluZygpOyB9CisgICAgdmlydHVhbCBib29sIHB1
dFJlY29yZChUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBjb25zdCBJREJLZXkmLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBSZWNvcmRJZGVudGlm
aWVyKikgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJP
YmplY3RTdG9yZShUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3Rv
cmVSZWNvcmQoVHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgY29uc3QgT2JqZWN0U3RvcmVSZWNvcmRJZGVudGlmaWVyKikgT1ZFUlJJREUgeyB9
CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVJlY29yZChUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0
YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBSZWNvcmRJZGVudGlmaWVyKikg
T1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCBpbnQ2NF90IGdldEtleUdlbmVyYXRvckN1cnJlbnRO
dW1iZXIoVHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCkgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgYm9vbCBtYXliZVVwZGF0
ZUtleUdlbmVyYXRvckN1cnJlbnROdW1iZXIoVHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBuZXdOdW1iZXIsIGJvb2wgY2hlY2tD
dXJyZW50KSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBrZXlF
eGlzdHNJbk9iamVjdFN0b3JlKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYsIE9iamVjdFN0b3JlUmVjb3JkSWRlbnRp
ZmllciogZm91bmRSZWNvcmRJZGVudGlmaWVyKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQot
Ci0gICAgdmlydHVhbCBib29sIGZvckVhY2hPYmplY3RTdG9yZVJlY29yZChUcmFuc2FjdGlvbios
IGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBPYmplY3RTdG9yZVJl
Y29yZENhbGxiYWNrJikgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wga2V5RXhpc3RzSW5PYmplY3RTdG9yZShUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJ
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmLCBSZWNvcmRJZGVudGlmaWVy
KiBmb3VuZFJlY29yZElkZW50aWZpZXIpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAg
ICB2aXJ0dWFsIFZlY3RvcjxJREJJbmRleE1ldGFkYXRhPiBnZXRJbmRleGVzKGludDY0X3QgZGF0
YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSBPVkVSUklERSB7IHJldHVybiBWZWN0b3I8
SURCSW5kZXhNZXRhZGF0YT4oKTsgfQogICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVJbmRleChUcmFu
c2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2
NF90IGluZGV4SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wg
aXNVbmlxdWUsIGJvb2wgaXNNdWx0aUVudHJ5KSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlSW5kZXgoVHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFi
YXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKSBPVkVSUklERSB7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgcHV0SW5kZXhEYXRhRm9yUmVjb3JkKFRyYW5zYWN0aW9uKiwg
aW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJ
ZCwgY29uc3QgSURCS2V5JiwgY29uc3QgT2JqZWN0U3RvcmVSZWNvcmRJZGVudGlmaWVyKikgT1ZF
UlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlSW5kZXhEYXRh
Rm9yUmVjb3JkKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgT2JqZWN0U3RvcmVSZWNvcmRJZGVudGlm
aWVyKikgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcHV0SW5k
ZXhEYXRhRm9yUmVjb3JkKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiwgY29uc3QgUmVj
b3JkSWRlbnRpZmllciopIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBi
b29sIGRlbGV0ZUluZGV4RGF0YUZvclJlY29yZChUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJh
c2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IFJlY29y
ZElkZW50aWZpZXIqKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxJREJLZXk+IGdldFByaW1hcnlLZXlWaWFJbmRleChUcmFuc2FjdGlvbiosIGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNv
bnN0IElEQktleSYpIE9WRVJSSURFIHsgcmV0dXJuIFBhc3NSZWZQdHI8SURCS2V5PigpOyB9CiAg
ICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luSW5kZXgoVHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRh
dGFiYXNlaWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJ
REJLZXkmIGluZGV4S2V5LCBSZWZQdHI8SURCS2V5PiYgZm91bmRQcmltYXJ5S2V5KSBPVkVSUklE
RSB7IHJldHVybiBmYWxzZTsgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>