<?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>142183</bug_id>
          
          <creation_ts>2015-03-02 11:24:47 -0800</creation_ts>
          <short_desc>Add way to dump cache meta data to file</short_desc>
          <delta_ts>2015-03-02 13:51:38 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1073392</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-03-02 11:24:47 -0800</bug_when>
    <thetext>For debugging purposes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073406</commentid>
    <comment_count>1</comment_count>
      <attachid>247688</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-03-02 11:56:14 -0800</bug_when>
    <thetext>Created attachment 247688
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073408</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-02 11:58:24 -0800</bug_when>
    <thetext>Attachment 247688 did not pass style-queue:


ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h:152:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheStorageCocoa.mm:493:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073424</commentid>
    <comment_count>3</comment_count>
      <attachid>247688</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-03-02 12:53:02 -0800</bug_when>
    <thetext>Comment on attachment 247688
patch

OK!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073432</commentid>
    <comment_count>4</comment_count>
      <attachid>247688</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-02 13:51:35 -0800</bug_when>
    <thetext>Comment on attachment 247688
patch

Clearing flags on attachment: 247688

Committed r180894: &lt;http://trac.webkit.org/changeset/180894&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073433</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-02 13:51:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247688</attachid>
            <date>2015-03-02 11:56:14 -0800</date>
            <delta_ts>2015-03-02 13:51:35 -0800</delta_ts>
            <desc>patch</desc>
            <filename>disk-cache-dump.patch</filename>
            <type>text/plain</type>
            <size>17453</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgwODkwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDE1LTAzLTAyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgd2F5IHRvIGR1bXAgY2FjaGUgbWV0YSBkYXRhIHRvIGZpbGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjE4MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9ydCBhcHBlbmRRdW90ZWRKU09O
U3RyaW5nVG9CdWlsZGVyLgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5j
cHA6CisgICAgICAgIChKU0M6Ok9iamVjdFBhdHRlcm5Ob2RlOjp0b1N0cmluZyk6CisgICAgICAg
ICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6YXBwZW5kUXVvdGVkSlNP
TlN0cmluZ1RvQnVpbGRlcik6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjphcHBlbmRRdW90
ZWRTdHJpbmcpOgorICAgICAgICAoSlNDOjplc2NhcGVTdHJpbmdUb0J1aWxkZXIpOiBEZWxldGVk
LgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5oOgorCiAyMDE1LTAzLTAxICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgQnl0ZWNvZGVHZW5lcmF0b3Igc2hv
dWxkbid0IGVtaXQgb3BfcmVzb2x2ZV9zY29wZSBhcyBhIHJvdW5kYWJvdXQgd2F5IG9mIHJldHVy
bmluZyB0aGUgc2NvcGVSZWdpc3RlcgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkocmV2aXNpb24gMTgwODgyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOTI3LDExICsyOTI3LDkgQEAgdm9pZCBPYmplY3RQYXR0ZXJuTm9kZTo6
dG9TdHJpbmcoU3RyaW5nQgogewogICAgIGJ1aWxkZXIuYXBwZW5kKCd7Jyk7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBtX3RhcmdldFBhdHRlcm5zLnNpemUoKTsgaSsrKSB7Ci0gICAgICAg
IGlmIChtX3RhcmdldFBhdHRlcm5zW2ldLndhc1N0cmluZykgewotICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJyInKTsKLSAgICAgICAgICAgIGVzY2FwZVN0cmluZ1RvQnVpbGRlcihidWlsZGVy
LCBtX3RhcmdldFBhdHRlcm5zW2ldLnByb3BlcnR5TmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnIicpOwotICAgICAgICB9IGVsc2UKKyAgICAgICAgaWYgKG1fdGFy
Z2V0UGF0dGVybnNbaV0ud2FzU3RyaW5nKQorICAgICAgICAgICAgYXBwZW5kUXVvdGVkSlNPTlN0
cmluZ1RvQnVpbGRlcihidWlsZGVyLCBtX3RhcmdldFBhdHRlcm5zW2ldLnByb3BlcnR5TmFtZS5z
dHJpbmcoKSk7CisgICAgICAgIGVsc2UKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1fdGFy
Z2V0UGF0dGVybnNbaV0ucHJvcGVydHlOYW1lLnN0cmluZygpKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoJzonKTsKICAgICAgICAgbV90YXJnZXRQYXR0ZXJuc1tpXS5wYXR0ZXJuLT50b1N0cmlu
ZyhidWlsZGVyKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05P
YmplY3QuY3BwCShyZXZpc2lvbiAxODA4ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzA0LDI2ICszMDQsMjEgQEAg
c3RhdGljIHZvaWQgYXBwZW5kU3RyaW5nVG9TdHJpbmdCdWlsZGVyKAogICAgIH0KIH0KIAotdm9p
ZCBlc2NhcGVTdHJpbmdUb0J1aWxkZXIoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQordm9pZCBhcHBlbmRRdW90ZWRKU09OU3RyaW5nVG9CdWlsZGVyKFN0cmlu
Z0J1aWxkZXImIGJ1aWxkZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKKyAgICBidWlsZGVy
LmFwcGVuZCgnIicpOworCiAgICAgaWYgKG1lc3NhZ2UuaXM4Qml0KCkpCiAgICAgICAgIGFwcGVu
ZFN0cmluZ1RvU3RyaW5nQnVpbGRlcihidWlsZGVyLCBtZXNzYWdlLmNoYXJhY3RlcnM4KCksIG1l
c3NhZ2UubGVuZ3RoKCkpOwogICAgIGVsc2UKICAgICAgICAgYXBwZW5kU3RyaW5nVG9TdHJpbmdC
dWlsZGVyKGJ1aWxkZXIsIG1lc3NhZ2UuY2hhcmFjdGVyczE2KCksIG1lc3NhZ2UubGVuZ3RoKCkp
OworCisgICAgYnVpbGRlci5hcHBlbmQoJyInKTsKIH0KIAogdm9pZCBTdHJpbmdpZmllcjo6YXBw
ZW5kUXVvdGVkU3RyaW5nKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGNvbnN0IFN0cmluZyYgdmFs
dWUpCiB7Ci0gICAgaW50IGxlbmd0aCA9IHZhbHVlLmxlbmd0aCgpOwotCi0gICAgYnVpbGRlci5h
cHBlbmQoJyInKTsKLQotICAgIGlmICh2YWx1ZS5pczhCaXQoKSkKLSAgICAgICAgYXBwZW5kU3Ry
aW5nVG9TdHJpbmdCdWlsZGVyPExDaGFyPihidWlsZGVyLCB2YWx1ZS5jaGFyYWN0ZXJzOCgpLCBs
ZW5ndGgpOwotICAgIGVsc2UKLSAgICAgICAgYXBwZW5kU3RyaW5nVG9TdHJpbmdCdWlsZGVyPFVD
aGFyPihidWlsZGVyLCB2YWx1ZS5jaGFyYWN0ZXJzMTYoKSwgbGVuZ3RoKTsKLQotICAgIGJ1aWxk
ZXIuYXBwZW5kKCciJyk7CisgICAgYXBwZW5kUXVvdGVkSlNPTlN0cmluZ1RvQnVpbGRlcihidWls
ZGVyLCB2YWx1ZSk7CiB9CiAKIGlubGluZSBKU1ZhbHVlIFN0cmluZ2lmaWVyOjp0b0pTT04oSlNW
YWx1ZSB2YWx1ZSwgY29uc3QgUHJvcGVydHlOYW1lRm9yRnVuY3Rpb25DYWxsJiBwcm9wZXJ0eU5h
bWUpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCShy
ZXZpc2lvbiAxODA4ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDggQEAgcHJpdmF0ZToKIEpTX0VYUE9S
VF9QUklWQVRFIEpTVmFsdWUgSlNPTlBhcnNlKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYpOwog
SlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIEpTT05TdHJpbmdpZnkoRXhlY1N0YXRlKiwgSlNWYWx1
ZSwgdW5zaWduZWQgaW5kZW50KTsKIAotdm9pZCBlc2NhcGVTdHJpbmdUb0J1aWxkZXIoU3RyaW5n
QnVpbGRlciYsIGNvbnN0IFN0cmluZyYpOworSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRR
dW90ZWRKU09OU3RyaW5nVG9CdWlsZGVyKFN0cmluZ0J1aWxkZXImLCBjb25zdCBTdHJpbmcmKTsK
KwogICAgIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4
MDg5MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQwIEBACisyMDE1LTAzLTAyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4K
KworICAgICAgICBBZGQgd2F5IHRvIGR1bXAgY2FjaGUgbWV0YSBkYXRhIHRvIGZpbGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjE4MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIER1bXAgZ29lcyB0byBX
ZWJLaXRDYWNoZS9kdW1wLmpzb24uIE9uIE9TWCBpdCBjYW4gYmUgdHJpZ2dlcmVkIHdpdGgKKwor
ICAgICAgICBub3RpZnl1dGlsIC1wIGNvbS5hcHBsZS5XZWJLaXQuQ2FjaGUuZHVtcAorCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0NhY2hlOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0NhY2hlOjpkdW1wRmlsZVBhdGgpOgorICAgICAgICAoV2ViS2l0OjplbnRyeUFzSlNPTik6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6ZHVtcENvbnRlbnRzVG9GaWxlKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpjbGVhcik6CisKKyAgICAgICAgICAgIEFsc28gY2xl
YXIgYW55IGR1bXBzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFn
ZS5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGVTdG9yYWdlOjpiYXNlRGlyZWN0b3J5
UGF0aCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFn
ZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpmaWxlTmFtZUZvcktleSk6CisgICAgICAgIChX
ZWJLaXQ6OmZpbGVQYXRoRm9yS2V5KToKKyAgICAgICAgKFdlYktpdDo6b3BlbkZpbGUpOgorICAg
ICAgICAoV2ViS2l0OjpvcGVuRmlsZUZvcktleSk6CisgICAgICAgIChXZWJLaXQ6OmRlY29kZUVu
dHJ5SGVhZGVyKToKKworICAgICAgICAgICAgU2VwYXJhdGUgaGVhZGVyIGRlY29kaW5nLgorCisg
ICAgICAgIChXZWJLaXQ6OmRlY29kZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nh
Y2hlU3RvcmFnZTo6dHJhdmVyc2UpOgorCisgICAgICAgICAgICBBZGQgYXN5bmNocm9ub3VzIGNh
Y2hlIHRyYXZlcnNhbCBpbnRlZmFjZS4KKwogMjAxNS0wMy0wMiAgQW5kZXJzIENhcmxzc29uICA8
YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYnNpdGVEYXRhU3RvcmUgc2hvdWxkIHN1
cHBvcnQgZ2V0dGluZyBjb29raWUgaG9zdCBuYW1lcwpJbmRleDogU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCShyZXZpc2lvbiAx
ODA4ODIpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw5IEBACiAjaW5jbHVkZSAiTmV0d29y
a0NhY2hlU3RvcmFnZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTT05PYmplY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlVmFsaWRhdGlvbi5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRUUEhlYWRl
ck5hbWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTQyLDYgKzQ0LDEwIEBACiAjaW5jbHVkZSA8
d3RmL1N0cmluZ0hhc2hlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
IAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgPG5vdGlmeS5oPgorI2VuZGlmCisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBOZXR3b3JrQ2FjaGUmIE5ldHdvcmtDYWNoZTo6c2luZ2xldG9u
KCkKQEAgLTU3LDYgKzYzLDE2IEBAIGJvb2wgTmV0d29ya0NhY2hlOjppbml0aWFsaXplKGNvbnN0
IFN0cmkKICAgICBpZiAoZW5hYmxlRWZmaWNhY3lMb2dnaW5nKQogICAgICAgICBtX3N0YXRpc3Rp
Y3MgPSBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzOjpvcGVuKGNhY2hlUGF0aCk7CiAKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICAvLyBUcmlnZ2VycyB3aXRoICJub3RpZnl1dGlsIC1wIGNvbS5hcHBs
ZS5XZWJLaXQuQ2FjaGUuZHVtcCIuCisgICAgaWYgKG1fc3RvcmFnZSkgeworICAgICAgICBpbnQg
dG9rZW47CisgICAgICAgIG5vdGlmeV9yZWdpc3Rlcl9kaXNwYXRjaCgiY29tLmFwcGxlLldlYktp
dC5DYWNoZS5kdW1wIiwgJnRva2VuLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeKGludCkg
eworICAgICAgICAgICAgZHVtcENvbnRlbnRzVG9GaWxlKCk7CisgICAgICAgIH0pOworICAgIH0K
KyNlbmRpZgorCiAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJvY2Vzcykgb3BlbmVk
IGNhY2hlIHN0b3JhZ2UsIHN1Y2Nlc3MgJWQiLCAhIW1fc3RvcmFnZSk7CiAgICAgcmV0dXJuICEh
bV9zdG9yYWdlOwogfQpAQCAtMzU0LDExICszNzAsODEgQEAgdm9pZCBOZXR3b3JrQ2FjaGU6OnVw
ZGF0ZShjb25zdCBXZWJDb3JlOgogICAgIH0pOwogfQogCitTdHJpbmcgTmV0d29ya0NhY2hlOjpk
dW1wRmlsZVBhdGgoKSBjb25zdAoreworICAgIHJldHVybiBXZWJDb3JlOjpwYXRoQnlBcHBlbmRp
bmdDb21wb25lbnQobV9zdG9yYWdlLT5iYXNlRGlyZWN0b3J5UGF0aCgpLCAiZHVtcC5qc29uIik7
Cit9CisKK3N0YXRpYyBib29sIGVudHJ5QXNKU09OKFN0cmluZ0J1aWxkZXImIGpzb24sIGNvbnN0
IE5ldHdvcmtDYWNoZUtleSYga2V5LCBjb25zdCBOZXR3b3JrQ2FjaGVTdG9yYWdlOjpFbnRyeSYg
ZW50cnkpCit7CisgICAgTmV0d29ya0NhY2hlRGVjb2RlciBkZWNvZGVyKGVudHJ5LmhlYWRlci5k
YXRhKCksIGVudHJ5LmhlYWRlci5zaXplKCkpOworICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UgY2FjaGVkUmVzcG9uc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjYWNoZWRSZXNwb25z
ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBqc29uLmFwcGVuZCgie1xuIik7CisgICAg
anNvbi5hcHBlbmQoIlwiaGFzaFwiOiAiKTsKKyAgICBKU0M6OmFwcGVuZFF1b3RlZEpTT05TdHJp
bmdUb0J1aWxkZXIoanNvbiwga2V5Lmhhc2hBc1N0cmluZygpKTsKKyAgICBqc29uLmFwcGVuZCgi
LFxuIik7CisgICAganNvbi5hcHBlbmQoIlwicGFydGl0aW9uXCI6ICIpOworICAgIEpTQzo6YXBw
ZW5kUXVvdGVkSlNPTlN0cmluZ1RvQnVpbGRlcihqc29uLCBrZXkucGFydGl0aW9uKCkpOworICAg
IGpzb24uYXBwZW5kKCIsXG4iKTsKKyAgICBqc29uLmFwcGVuZCgiXCJ0aW1lc3RhbXBcIjogIik7
CisgICAganNvbi5hcHBlbmROdW1iZXIoZW50cnkudGltZVN0YW1wLmNvdW50KCkpOworICAgIGpz
b24uYXBwZW5kKCIsXG4iKTsKKyAgICBqc29uLmFwcGVuZCgiXCJVUkxcIjogIik7CisgICAgSlND
OjphcHBlbmRRdW90ZWRKU09OU3RyaW5nVG9CdWlsZGVyKGpzb24sIGNhY2hlZFJlc3BvbnNlLnVy
bCgpLnN0cmluZygpKTsKKyAgICBqc29uLmFwcGVuZCgiLFxuIik7CisgICAganNvbi5hcHBlbmQo
IlwiaGVhZGVyc1wiOiB7XG4iKTsKKyAgICBib29sIGZpcnN0SGVhZGVyID0gdHJ1ZTsKKyAgICBm
b3IgKGF1dG8mIGhlYWRlciA6IGNhY2hlZFJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZHMoKSkgewor
ICAgICAgICBpZiAoIWZpcnN0SGVhZGVyKQorICAgICAgICAgICAganNvbi5hcHBlbmQoIixcbiIp
OworICAgICAgICBmaXJzdEhlYWRlciA9IGZhbHNlOworICAgICAgICBqc29uLmFwcGVuZCgiICAg
ICIpOworICAgICAgICBKU0M6OmFwcGVuZFF1b3RlZEpTT05TdHJpbmdUb0J1aWxkZXIoanNvbiwg
aGVhZGVyLmtleSk7CisgICAgICAgIGpzb24uYXBwZW5kKCI6ICIpOworICAgICAgICBKU0M6OmFw
cGVuZFF1b3RlZEpTT05TdHJpbmdUb0J1aWxkZXIoanNvbiwgaGVhZGVyLnZhbHVlKTsKKyAgICB9
CisgICAganNvbi5hcHBlbmQoIlxufVxuIik7CisgICAganNvbi5hcHBlbmQoIn0iKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBOZXR3b3JrQ2FjaGU6OmR1bXBDb250ZW50c1RvRmlsZSgp
Cit7CisgICAgaWYgKCFtX3N0b3JhZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGR1bXBG
aWxlSGFuZGxlID0gV2ViQ29yZTo6b3BlbkZpbGUoZHVtcEZpbGVQYXRoKCksIFdlYkNvcmU6Ok9w
ZW5Gb3JXcml0ZSk7CisgICAgaWYgKCFkdW1wRmlsZUhhbmRsZSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIFdlYkNvcmU6OndyaXRlVG9GaWxlKGR1bXBGaWxlSGFuZGxlLCAiW1xuIiwgMik7CisgICAg
bV9zdG9yYWdlLT50cmF2ZXJzZShbZHVtcEZpbGVIYW5kbGVdKGNvbnN0IE5ldHdvcmtDYWNoZUtl
eSYga2V5LCBjb25zdCBOZXR3b3JrQ2FjaGVTdG9yYWdlOjpFbnRyeSogZW50cnkpIHsKKyAgICAg
ICAgaWYgKCFlbnRyeSkgeworICAgICAgICAgICAgV2ViQ29yZTo6d3JpdGVUb0ZpbGUoZHVtcEZp
bGVIYW5kbGUsICJ7fVxuXVxuIiwgNSk7CisgICAgICAgICAgICBhdXRvIGhhbmRsZSA9IGR1bXBG
aWxlSGFuZGxlOworICAgICAgICAgICAgV2ViQ29yZTo6Y2xvc2VGaWxlKGhhbmRsZSk7CisgICAg
ICAgIH0KKyAgICAgICAgU3RyaW5nQnVpbGRlciBqc29uOworICAgICAgICBpZiAoIWVudHJ5QXNK
U09OKGpzb24sIGtleSwgKmVudHJ5KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAganNv
bi5hcHBlbmQoIixcbiIpOworICAgICAgICBhdXRvIHdyaXRlRGF0YSA9IGpzb24udG9TdHJpbmco
KS51dGY4KCk7CisgICAgICAgIFdlYkNvcmU6OndyaXRlVG9GaWxlKGR1bXBGaWxlSGFuZGxlLCB3
cml0ZURhdGEuZGF0YSgpLCB3cml0ZURhdGEubGVuZ3RoKCkpOworICAgIH0pOworfQorCiB2b2lk
IE5ldHdvcmtDYWNoZTo6Y2xlYXIoKQogewogICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29y
a1Byb2Nlc3MpIGNsZWFyaW5nIGNhY2hlIik7Ci0gICAgaWYgKG1fc3RvcmFnZSkKKyAgICBpZiAo
bV9zdG9yYWdlKSB7CiAgICAgICAgIG1fc3RvcmFnZS0+Y2xlYXIoKTsKKworICAgICAgICBhdXRv
IHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ2FjaGUuZGVsZXRl
Iik7CisgICAgICAgIFN0cmluZ0NhcHR1cmUgZHVtcEZpbGVQYXRoQ2FwdHVyZShkdW1wRmlsZVBh
dGgoKSk7CisgICAgICAgIHF1ZXVlLT5kaXNwYXRjaChbZHVtcEZpbGVQYXRoQ2FwdHVyZV0gewor
ICAgICAgICAgICAgV2ViQ29yZTo6ZGVsZXRlRmlsZShkdW1wRmlsZVBhdGhDYXB0dXJlLnN0cmlu
ZygpKTsKKyAgICAgICAgfSk7CisgICAgfQogICAgIGlmIChtX3N0YXRpc3RpY3MpCiAgICAgICAg
IG1fc3RhdGlzdGljcy0+Y2xlYXIoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCShyZXZpc2lvbiAxODA4ODIpCisr
KyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMTAxLDEyICsxMDEsMTYgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbGVh
cigpOwogCisgICAgdm9pZCBkdW1wQ29udGVudHNUb0ZpbGUoKTsKKwogICAgIFN0cmluZyBzdG9y
YWdlUGF0aCgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIE5ldHdvcmtDYWNoZSgpID0gZGVmYXVs
dDsKICAgICB+TmV0d29ya0NhY2hlKCkgPSBkZWxldGU7CiAKKyAgICBTdHJpbmcgZHVtcEZpbGVQ
YXRoKCkgY29uc3Q7CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlU3RvcmFnZT4g
bV9zdG9yYWdlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzPiBt
X3N0YXRpc3RpY3M7CiB9OwpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3RvcmFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuaAkocmV2aXNpb24gMTgwODgy
KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3Rv
cmFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDgsMTEgKzE0OCwxNSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzdG9yZShjb25zdCBOZXR3b3JrQ2FjaGVLZXkmLCBjb25zdCBFbnRyeSYsIFN0b3JlQ29t
cGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCB1cGRhdGUoY29uc3QgTmV0d29ya0NhY2hlS2V5
JiwgY29uc3QgRW50cnkmIHVwZGF0ZUVudHJ5LCBjb25zdCBFbnRyeSYgZXhpc3RpbmdFbnRyeSwg
U3RvcmVDb21wbGV0aW9uSGFuZGxlciYmKTsKIAorICAgIC8vIE51bGwgZW50cnkgc2lnbmFscyBl
bmQuCisgICAgdm9pZCB0cmF2ZXJzZShzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IE5ldHdvcmtD
YWNoZUtleSYsIGNvbnN0IEVudHJ5Kik+JiYpOworCiAgICAgdm9pZCBzZXRNYXhpbXVtU2l6ZShz
aXplX3QpOwogICAgIHZvaWQgY2xlYXIoKTsKIAogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2
ZXJzaW9uID0gMjsKIAorICAgIGNvbnN0IFN0cmluZyYgYmFzZURpcmVjdG9yeVBhdGgoKSBjb25z
dCB7IHJldHVybiBtX2Jhc2VEaXJlY3RvcnlQYXRoOyB9CiAgICAgY29uc3QgU3RyaW5nJiBkaXJl
Y3RvcnlQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9kaXJlY3RvcnlQYXRoOyB9CiAKIHByaXZhdGU6
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
dG9yYWdlQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZUNvY29hLm1tCShyZXZpc2lvbiAxODA4ODIpCisr
KyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdl
Q29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTE0MCwxMyArMTQwLDE4IEBAIHN0YXRpYyBTdHJp
bmcgZGlyZWN0b3J5UGF0aEZvcktleShjb25zdCAKICAgICByZXR1cm4gV2ViQ29yZTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KGNhY2hlUGF0aCwga2V5LnBhcnRpdGlvbigpKTsKIH0KIAorc3Rh
dGljIFN0cmluZyBmaWxlTmFtZUZvcktleShjb25zdCBOZXR3b3JrQ2FjaGVLZXkmIGtleSkKK3sK
KyAgICByZXR1cm4ga2V5Lmhhc2hBc1N0cmluZygpOworfQorCiBzdGF0aWMgU3RyaW5nIGZpbGVQ
YXRoRm9yS2V5KGNvbnN0IE5ldHdvcmtDYWNoZUtleSYga2V5LCBjb25zdCBTdHJpbmcmIGNhY2hl
UGF0aCkKIHsKLSAgICByZXR1cm4gV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRp
cmVjdG9yeVBhdGhGb3JLZXkoa2V5LCBjYWNoZVBhdGgpLCBrZXkuaGFzaEFzU3RyaW5nKCkpOwor
ICAgIHJldHVybiBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGlyZWN0b3J5UGF0
aEZvcktleShrZXksIGNhY2hlUGF0aCksIGZpbGVOYW1lRm9yS2V5KGtleSkpOwogfQogCiBlbnVt
IGNsYXNzIEZpbGVPcGVuVHlwZSB7IFJlYWQsIFdyaXRlLCBDcmVhdGUgfTsKLXN0YXRpYyBEaXNw
YXRjaFB0cjxkaXNwYXRjaF9pb190PiBvcGVuRmlsZUZvcktleShjb25zdCBOZXR3b3JrQ2FjaGVL
ZXkmIGtleSwgRmlsZU9wZW5UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgY2FjaGVQYXRoLCBpbnQm
IGZkKQorc3RhdGljIERpc3BhdGNoUHRyPGRpc3BhdGNoX2lvX3Q+IG9wZW5GaWxlKGNvbnN0IFN0
cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5UGF0aCwgRmlsZU9wZW5UeXBl
IHR5cGUsIGludCYgZmQpCiB7CiAgICAgaW50IG9mbGFnOwogICAgIG1vZGVfdCBtb2RlOwpAQCAt
MTU1LDcgKzE2MCw3IEBAIHN0YXRpYyBEaXNwYXRjaFB0cjxkaXNwYXRjaF9pb190PiBvcGVuRmkK
ICAgICBjYXNlIEZpbGVPcGVuVHlwZTo6Q3JlYXRlOgogICAgICAgICBvZmxhZyA9IE9fUkRXUiB8
IE9fQ1JFQVQgfCBPX1RSVU5DIHwgT19OT05CTE9DSzsKICAgICAgICAgbW9kZSA9IFNfSVJVU1Ig
fCBTX0lXVVNSOwotICAgICAgICBXZWJDb3JlOjptYWtlQWxsRGlyZWN0b3JpZXMoZGlyZWN0b3J5
UGF0aEZvcktleShrZXksIGNhY2hlUGF0aCkpOworICAgICAgICBXZWJDb3JlOjptYWtlQWxsRGly
ZWN0b3JpZXMoZGlyZWN0b3J5UGF0aCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmlsZU9w
ZW5UeXBlOjpXcml0ZToKICAgICAgICAgb2ZsYWcgPSBPX1dST05MWSB8IE9fTk9OQkxPQ0s7CkBA
IC0xNjYsNyArMTcxLDcgQEAgc3RhdGljIERpc3BhdGNoUHRyPGRpc3BhdGNoX2lvX3Q+IG9wZW5G
aQogICAgICAgICBtb2RlID0gMDsKICAgICB9CiAKLSAgICBDU3RyaW5nIHBhdGggPSBXZWJDb3Jl
OjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZmlsZVBhdGhGb3JLZXkoa2V5LCBjYWNoZVBhdGgp
KTsKKyAgICBDU3RyaW5nIHBhdGggPSBXZWJDb3JlOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24o
V2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRpcmVjdG9yeVBhdGgsIGZpbGVOYW1l
KSk7CiAgICAgZmQgPSA6Om9wZW4ocGF0aC5kYXRhKCksIG9mbGFnLCBtb2RlKTsKIAogICAgIExP
RyhOZXR3b3JrQ2FjaGVTdG9yYWdlLCAiKE5ldHdvcmtQcm9jZXNzKSBvcGVuaW5nICVzIHR5cGU9
JWQiLCBwYXRoLmRhdGEoKSwgdHlwZSk7CkBAIC0xODMsNiArMTg4LDExIEBAIHN0YXRpYyBEaXNw
YXRjaFB0cjxkaXNwYXRjaF9pb190PiBvcGVuRmkKICAgICByZXR1cm4gY2hhbm5lbDsKIH0KIAor
c3RhdGljIERpc3BhdGNoUHRyPGRpc3BhdGNoX2lvX3Q+IG9wZW5GaWxlRm9yS2V5KGNvbnN0IE5l
dHdvcmtDYWNoZUtleSYga2V5LCBGaWxlT3BlblR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBjYWNo
ZVBhdGgsIGludCYgZmQpCit7CisgICAgcmV0dXJuIG9wZW5GaWxlKGZpbGVOYW1lRm9yS2V5KGtl
eSksIGRpcmVjdG9yeVBhdGhGb3JLZXkoa2V5LCBjYWNoZVBhdGgpLCB0eXBlLCBmZCk7Cit9CisK
IHN0YXRpYyB1bnNpZ25lZCBoYXNoRGF0YShkaXNwYXRjaF9kYXRhX3QgZGF0YSkKIHsKICAgICBp
ZiAoIWRhdGEgfHwgIWRpc3BhdGNoX2RhdGFfZ2V0X3NpemUoZGF0YSkpCkBAIC0yNTAsMjYgKzI2
MCwzNSBAQCBzdGF0aWMgRGlzcGF0Y2hQdHI8ZGlzcGF0Y2hfZGF0YV90PiBtYXBGCiAgICAgcmV0
dXJuIGJvZHlNYXA7CiB9CiAKLXN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlU3Rv
cmFnZTo6RW50cnk+IGRlY29kZUVudHJ5KGRpc3BhdGNoX2RhdGFfdCBmaWxlRGF0YSwgaW50IGZk
LCBjb25zdCBOZXR3b3JrQ2FjaGVLZXkmIGtleSkKK3N0YXRpYyBib29sIGRlY29kZUVudHJ5SGVh
ZGVyKGRpc3BhdGNoX2RhdGFfdCBmaWxlRGF0YSwgRW50cnlNZXRhRGF0YSYgbWV0YURhdGEsIE5l
dHdvcmtDYWNoZVN0b3JhZ2U6OkRhdGEmIGRhdGEpCiB7Ci0gICAgRW50cnlNZXRhRGF0YSBtZXRh
RGF0YTsKICAgICBpZiAoIWRlY29kZUVudHJ5TWV0YURhdGEobWV0YURhdGEsIGZpbGVEYXRhKSkK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
IChtZXRhRGF0YS5jYWNoZVN0b3JhZ2VWZXJzaW9uICE9IE5ldHdvcmtDYWNoZVN0b3JhZ2U6OnZl
cnNpb24pCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGlmIChtZXRhRGF0YS5rZXkgIT0g
a2V5KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmIChtZXRhRGF0YS5oZWFkZXJPZmZzZXQgKyBtZXRhRGF0YS5oZWFkZXJTaXplID4gbWV0YURh
dGEuYm9keU9mZnNldCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgaWYgKG1ldGFEYXRh
LmJvZHlPZmZzZXQgKyBtZXRhRGF0YS5ib2R5U2l6ZSAhPSBkaXNwYXRjaF9kYXRhX2dldF9zaXpl
KGZpbGVEYXRhKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIGF1dG8gaGVhZGVyRGF0YSA9IGFkb3B0RGlzcGF0Y2goZGlzcGF0Y2hfZGF0YV9j
cmVhdGVfc3VicmFuZ2UoZmlsZURhdGEsIG1ldGFEYXRhLmhlYWRlck9mZnNldCwgbWV0YURhdGEu
aGVhZGVyU2l6ZSkpOwogICAgIGlmIChtZXRhRGF0YS5oZWFkZXJDaGVja3N1bSAhPSBoYXNoRGF0
YShoZWFkZXJEYXRhLmdldCgpKSkgewogICAgICAgICBMT0coTmV0d29ya0NhY2hlU3RvcmFnZSwg
IihOZXR3b3JrUHJvY2VzcykgaGVhZGVyIGNoZWNrc3VtIG1pc21hdGNoIik7Ci0gICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorICAgIGRhdGEgPSAg
TmV0d29ya0NhY2hlU3RvcmFnZTo6RGF0YSB7IGhlYWRlckRhdGEgfTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKworc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGVTdG9yYWdlOjpFbnRy
eT4gZGVjb2RlRW50cnkoZGlzcGF0Y2hfZGF0YV90IGZpbGVEYXRhLCBpbnQgZmQsIGNvbnN0IE5l
dHdvcmtDYWNoZUtleSYga2V5KQoreworICAgIEVudHJ5TWV0YURhdGEgbWV0YURhdGE7CisgICAg
TmV0d29ya0NhY2hlU3RvcmFnZTo6RGF0YSBoZWFkZXJEYXRhOworICAgIGlmICghZGVjb2RlRW50
cnlIZWFkZXIoZmlsZURhdGEsIG1ldGFEYXRhLCBoZWFkZXJEYXRhKSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICBpZiAobWV0YURhdGEua2V5ICE9IGtleSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgaWYgKG1ldGFEYXRhLmJvZHlPZmZzZXQgKyBtZXRhRGF0YS5ib2R5U2l6
ZSAhPSBkaXNwYXRjaF9kYXRhX2dldF9zaXplKGZpbGVEYXRhKSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICBhdXRvIGJvZHlEYXRhID0gbWFwRmlsZShmZCwgbWV0YURhdGEuYm9keU9m
ZnNldCwgbWV0YURhdGEuYm9keVNpemUpOwogICAgIGlmICghYm9keURhdGEpIHsKQEAgLTI4NCw3
ICszMDMsNyBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYWNoZVN0b3JhCiAKICAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrQ2FjaGVTdG9yYWdlOjpFbnRyeT4oTmV0
d29ya0NhY2hlU3RvcmFnZTo6RW50cnkgewogICAgICAgICBtZXRhRGF0YS50aW1lU3RhbXAsCi0g
ICAgICAgIE5ldHdvcmtDYWNoZVN0b3JhZ2U6OkRhdGEgeyBoZWFkZXJEYXRhIH0sCisgICAgICAg
IGhlYWRlckRhdGEsCiAgICAgICAgIE5ldHdvcmtDYWNoZVN0b3JhZ2U6OkRhdGEgeyBib2R5RGF0
YSwgTmV0d29ya0NhY2hlU3RvcmFnZTo6RGF0YTo6QmFja2luZzo6TWFwIH0KICAgICB9KTsKIH0K
QEAgLTQ3MSw2ICs0OTAsMzQgQEAgdm9pZCBOZXR3b3JrQ2FjaGVTdG9yYWdlOjp1cGRhdGUoY29u
c3QgTgogICAgIGRpc3BhdGNoUGVuZGluZ1dyaXRlT3BlcmF0aW9ucygpOwogfQogCit2b2lkIE5l
dHdvcmtDYWNoZVN0b3JhZ2U6OnRyYXZlcnNlKHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgTmV0
d29ya0NhY2hlS2V5JiwgY29uc3QgRW50cnkqKT4mJiB0cmF2ZXJzZUhhbmRsZXIpCit7CisgICAg
U3RyaW5nQ2FwdHVyZSBjYWNoZVBhdGhDYXB0dXJlKG1fZGlyZWN0b3J5UGF0aCk7CisgICAgZGlz
cGF0Y2hfYXN5bmMobV9pb1F1ZXVlLmdldCgpLCBbdGhpcywgY2FjaGVQYXRoQ2FwdHVyZSwgdHJh
dmVyc2VIYW5kbGVyXSB7CisgICAgICAgIFN0cmluZyBjYWNoZVBhdGggPSBjYWNoZVBhdGhDYXB0
dXJlLnN0cmluZygpOworICAgICAgICBhdXRvIHNlbWFwaG9yZSA9IGFkb3B0RGlzcGF0Y2goZGlz
cGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKSk7CisgICAgICAgIHRyYXZlcnNlQ2FjaGVGaWxlcyhj
YWNoZVBhdGgsIFt0aGlzLCAmc2VtYXBob3JlLCAmdHJhdmVyc2VIYW5kbGVyXShjb25zdCBTdHJp
bmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIHBhcnRpdGlvblBhdGgpIHsKKyAgICAgICAgICAg
IGludCBmZDsKKyAgICAgICAgICAgIGF1dG8gY2hhbm5lbCA9IG9wZW5GaWxlKGZpbGVOYW1lLCBw
YXJ0aXRpb25QYXRoLCBGaWxlT3BlblR5cGU6OlJlYWQsIGZkKTsKKyAgICAgICAgICAgIGNvbnN0
IHNpemVfdCBoZWFkZXJSZWFkU2l6ZSA9IDE2IDw8IDEwOworICAgICAgICAgICAgZGlzcGF0Y2hf
aW9fcmVhZChjaGFubmVsLmdldCgpLCAwLCBoZWFkZXJSZWFkU2l6ZSwgZGlzcGF0Y2hfZ2V0X21h
aW5fcXVldWUoKSwgW3RoaXMsIGZkLCAmc2VtYXBob3JlLCAmdHJhdmVyc2VIYW5kbGVyXShib29s
IGRvbmUsIGRpc3BhdGNoX2RhdGFfdCBmaWxlRGF0YSwgaW50KSB7CisgICAgICAgICAgICAgICAg
RW50cnlNZXRhRGF0YSBtZXRhRGF0YTsKKyAgICAgICAgICAgICAgICBOZXR3b3JrQ2FjaGVTdG9y
YWdlOjpEYXRhIGhlYWRlckRhdGE7CisgICAgICAgICAgICAgICAgaWYgKGRlY29kZUVudHJ5SGVh
ZGVyKGZpbGVEYXRhLCBtZXRhRGF0YSwgaGVhZGVyRGF0YSkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgRW50cnkgZW50cnkgeyBtZXRhRGF0YS50aW1lU3RhbXAsIGhlYWRlckRhdGEsIERhdGEoKSB9
OworICAgICAgICAgICAgICAgICAgICB0cmF2ZXJzZUhhbmRsZXIobWV0YURhdGEua2V5LCAmZW50
cnkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZG9uZSkKKyAgICAg
ICAgICAgICAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChzZW1hcGhvcmUuZ2V0KCkp
OworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChz
ZW1hcGhvcmUuZ2V0KCksIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CisgICAgICAgIH0pOworICAg
ICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbdGhpcywgdHJh
dmVyc2VIYW5kbGVyXSB7CisgICAgICAgICAgICB0cmF2ZXJzZUhhbmRsZXIoeyB9LCBudWxscHRy
KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKIHZvaWQgTmV0d29ya0NhY2hlU3RvcmFnZTo6
ZGlzcGF0Y2hQZW5kaW5nV3JpdGVPcGVyYXRpb25zKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>