<?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>124301</bug_id>
          
          <creation_ts>2013-11-13 12:09:22 -0800</creation_ts>
          <short_desc>Move setIndexKeys() to the IDBServerConnection</short_desc>
          <delta_ts>2013-11-13 15:07:24 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>950290</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-11-13 12:09:22 -0800</bug_when>
    <thetext>Move setIndexKeys() to the IDBServerConnection

This is a big step towards moving knowledge of the backing store out of the frontend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950293</commentid>
    <comment_count>1</comment_count>
      <attachid>216837</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-11-13 12:11:54 -0800</bug_when>
    <thetext>Created attachment 216837
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950397</commentid>
    <comment_count>2</comment_count>
      <attachid>216837</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-11-13 14:59:32 -0800</bug_when>
    <thetext>Comment on attachment 216837
Patch v1 

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

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackend.cpp:254
&gt; +    RefPtr&lt;IDBDatabaseBackend&gt; backend(this);

Is this used?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950398</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-11-13 15:07:24 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/159245</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216837</attachid>
            <date>2013-11-13 12:11:54 -0800</date>
            <delta_ts>2013-11-13 14:59:32 -0800</delta_ts>
            <desc>Patch v1 </desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>18005</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwOWQwYmI3Li4xY2MxODI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTMtMTEtMTMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vdmUgc2V0SW5kZXhLZXlzKCkgdG8gdGhlIElEQlNlcnZlckNvbm5lY3Rpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDMwMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBiaWcg
c3RlcCB0b3dhcmRzIG1vdmluZyBrbm93bGVkZ2Ugb2YgdGhlIGJhY2tpbmcgc3RvcmUgb3V0IG9m
IHRoZSBmcm9udGVuZC4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdT
dG9yZUludGVyZmFjZS5oOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZDo6c2V0
SW5kZXhLZXlzKToKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlNlcnZlckNvbm5l
Y3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlNlcnZlckNv
bm5lY3Rpb25MZXZlbERCLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlckNvbm5lY3Rp
b25MZXZlbERCOjpzZXRJbmRleEtleXMpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xl
dmVsZGIvSURCU2VydmVyQ29ubmVjdGlvbkxldmVsREIuaDoKKworICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UHV0T3BlcmF0aW9uOjpwZXJmb3JtKToKKworICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjptYWtlSW5kZXhXcml0ZXJzKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuaDoKKwog
MjAxMy0xMS0xMiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
TW92ZSBiYXNpYyBJREJCYWNraW5nU3RvcmVUcmFuc2FjdGlvbiBvcGVyYXRpb25zIHRvIElEQlNl
cnZlckNvbm5lY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmgKaW5kZXggMzdjODczZC4uMmM4ZDBm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBnZXRLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKElEQkJhY2tpbmdTdG9y
ZVRyYW5zYWN0aW9uSW50ZXJmYWNlJiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGludDY0X3QmIGtleUdlbmVyYXRvckN1cnJlbnROdW1iZXIpID0gMDsKICAgICB2
aXJ0dWFsIGJvb2wgbWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKElEQkJhY2tp
bmdTdG9yZVRyYW5zYWN0aW9uSW50ZXJmYWNlJiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGludDY0X3QgbmV3U3RhdGUsIGJvb2wgY2hlY2tDdXJyZW50KSA9IDA7
CiAKLSAgICB2aXJ0dWFsIGJvb2wgbWFrZUluZGV4V3JpdGVycyhJREJUcmFuc2FjdGlvbkJhY2tl
bmQmLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmLCBJ
REJLZXkmIHByaW1hcnlLZXksIGJvb2wga2V5V2FzR2VuZXJhdGVkLCBjb25zdCBWZWN0b3I8aW50
NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8VmVjdG9yPFJlZlB0cjxJREJLZXk+Pj4mLCBW
ZWN0b3I8UmVmUHRyPElEQkluZGV4V3JpdGVyPj4mIGluZGV4V3JpdGVycywgU3RyaW5nKiBlcnJv
ck1lc3NhZ2UsIGJvb2wmIGNvbXBsZXRlZCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBtYWtlSW5k
ZXhXcml0ZXJzKGludDY0X3QgdHJhbnNhY3Rpb25JRCwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25z
dCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiwgSURCS2V5JiBwcmltYXJ5S2V5LCBib29sIGtleVdh
c0dlbmVyYXRlZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9y
PFZlY3RvcjxSZWZQdHI8SURCS2V5Pj4+JiwgVmVjdG9yPFJlZlB0cjxJREJJbmRleFdyaXRlcj4+
JiBpbmRleFdyaXRlcnMsIFN0cmluZyogZXJyb3JNZXNzYWdlLCBib29sJiBjb21wbGV0ZWQpID0g
MDsKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IGdlbmVyYXRlS2V5KElEQlRyYW5z
YWN0aW9uQmFja2VuZCYsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
KSA9IDA7CiAgICAgdmlydHVhbCBib29sIHVwZGF0ZUtleUdlbmVyYXRvcihJREJUcmFuc2FjdGlv
bkJhY2tlbmQmLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29u
c3QgSURCS2V5JiwgYm9vbCBjaGVja0N1cnJlbnQpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3BwCmluZGV4IGVk
MTZiOGQuLjg2OTUzNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcApAQCAtMjgsMTIgKzI4LDEwIEBACiAKICNp
ZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAotI2luY2x1ZGUgIklEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQkN1cnNvckJhY2tlbmQuaCIKICNpbmNsdWRlICJJREJE
YXRhYmFzZUNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCiAj
aW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKLSNpbmNsdWRlICJJREJJbmRl
eFdyaXRlci5oIgogI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCUmVjb3Jk
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2VuZC5oIgpAQCAtMjQx
LDUwICsyMzksMjMgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmQ6OnB1dChpbnQ2NF90IHRyYW5z
YWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1IKICAgICB0cmFuc2FjdGlvbi0+
c2NoZWR1bGVQdXRPcGVyYXRpb24ob2JqZWN0U3RvcmVNZXRhZGF0YSwgdmFsdWUsIGtleSwgcHV0
TW9kZSwgY2FsbGJhY2tzLCBpbmRleElkcywgaW5kZXhLZXlzKTsKIH0KIAotdm9pZCBJREJEYXRh
YmFzZUJhY2tlbmQ6OnNldEluZGV4S2V5cyhpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJLZXk+IHBycFByaW1hcnlLZXksIGNvbnN0IFZl
Y3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JiBpbmRleEtl
eXMpCit2b2lkIElEQkRhdGFiYXNlQmFja2VuZDo6c2V0SW5kZXhLZXlzKGludDY0X3QgdHJhbnNh
Y3Rpb25JRCwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBQYXNzUmVmUHRyPElEQktleT4gcHJwUHJp
bWFyeUtleSwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElEcywgY29uc3QgVmVjdG9yPElu
ZGV4S2V5cz4mIGluZGV4S2V5cykKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkRhdGFiYXNl
QmFja2VuZDo6c2V0SW5kZXhLZXlzIik7CiAgICAgQVNTRVJUKHBycFByaW1hcnlLZXkpOworICAg
IEFTU0VSVChtX21ldGFkYXRhLm9iamVjdFN0b3Jlcy5jb250YWlucyhvYmplY3RTdG9yZUlEKSk7
CiAKLSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmQqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlv
bnMuZ2V0KHRyYW5zYWN0aW9uSWQpOworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmQ+
IHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSUQpOwogICAgIGlm
ICghdHJhbnNhY3Rpb24pCiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQodHJhbnNhY3Rpb24t
Pm1vZGUoKSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uVmVyc2lvbkNoYW5nZSk7CiAKICAgICBS
ZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5ID0gcHJwUHJpbWFyeUtleTsKLSAgICBSZWZQdHI8SURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlPiBzdG9yZSA9IG1fc2VydmVyQ29ubmVjdGlvbi0+ZGVwcmVj
YXRlZEJhY2tpbmdTdG9yZSgpOwotICAgIC8vIEZJWE1FOiBUaGlzIG1ldGhvZCBjb3VsZCBiZSBh
c3luY2hyb25vdXMsIGJ1dCB3ZSBuZWVkIHRvIGV2YWx1YXRlIGlmIGl0J3Mgd29ydGggdGhlIGV4
dHJhIGNvbXBsZXhpdHkuCi0gICAgUmVmUHRyPElEQlJlY29yZElkZW50aWZpZXI+IHJlY29yZElk
ZW50aWZpZXI7Ci0gICAgYm9vbCBvayA9IHN0b3JlLT5rZXlFeGlzdHNJbk9iamVjdFN0b3JlKHRy
YW5zYWN0aW9uLT5kZXByZWNhdGVkQmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSwgbV9tZXRhZGF0
YS5pZCwgb2JqZWN0U3RvcmVJZCwgKnByaW1hcnlLZXksIHJlY29yZElkZW50aWZpZXIpOwotICAg
IGlmICghb2spIHsKLSAgICAgICAgdHJhbnNhY3Rpb24tPmFib3J0KElEQkRhdGFiYXNlRXJyb3I6
OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCAiSW50ZXJuYWwgZXJy
b3Igc2V0dGluZyBpbmRleCBrZXlzLiIpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBp
ZiAoIXJlY29yZElkZW50aWZpZXIpIHsKLSAgICAgICAgUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+
IGVycm9yID0gSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpV
bmtub3duRXJyb3IsIFN0cmluZzo6Zm9ybWF0KCJJbnRlcm5hbCBlcnJvciBzZXR0aW5nIGluZGV4
IGtleXMgZm9yIG9iamVjdCBzdG9yZS4iKSk7Ci0gICAgICAgIHRyYW5zYWN0aW9uLT5hYm9ydChl
cnJvci5yZWxlYXNlKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgVmVjdG9yPFJl
ZlB0cjxJREJJbmRleFdyaXRlcj4+IGluZGV4V3JpdGVyczsKLSAgICBTdHJpbmcgZXJyb3JNZXNz
YWdlOwotICAgIGJvb2wgb2JleXNDb25zdHJhaW50cyA9IGZhbHNlOwotICAgIEFTU0VSVChtX21l
dGFkYXRhLm9iamVjdFN0b3Jlcy5jb250YWlucyhvYmplY3RTdG9yZUlkKSk7Ci0gICAgY29uc3Qg
SURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2JqZWN0U3RvcmVNZXRhZGF0YSA9IG1fbWV0YWRhdGEu
b2JqZWN0U3RvcmVzLmdldChvYmplY3RTdG9yZUlkKTsKLSAgICBib29sIGJhY2tpbmdTdG9yZVN1
Y2Nlc3MgPSBzdG9yZS0+bWFrZUluZGV4V3JpdGVycygqdHJhbnNhY3Rpb24sIGlkKCksIG9iamVj
dFN0b3JlTWV0YWRhdGEsICpwcmltYXJ5S2V5LCBmYWxzZSwgaW5kZXhJZHMsIGluZGV4S2V5cywg
aW5kZXhXcml0ZXJzLCAmZXJyb3JNZXNzYWdlLCBvYmV5c0NvbnN0cmFpbnRzKTsKLSAgICBpZiAo
IWJhY2tpbmdTdG9yZVN1Y2Nlc3MpIHsKLSAgICAgICAgdHJhbnNhY3Rpb24tPmFib3J0KElEQkRh
dGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCAi
SW50ZXJuYWwgZXJyb3I6IGJhY2tpbmcgc3RvcmUgZXJyb3IgdXBkYXRpbmcgaW5kZXgga2V5cy4i
KSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKCFvYmV5c0NvbnN0cmFpbnRzKSB7
Ci0gICAgICAgIHRyYW5zYWN0aW9uLT5hYm9ydChJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURC
RGF0YWJhc2VFeGNlcHRpb246OkNvbnN0cmFpbnRFcnJvciwgZXJyb3JNZXNzYWdlKSk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGluZGV4V3Jp
dGVycy5zaXplKCk7ICsraSkgewotICAgICAgICBJREJJbmRleFdyaXRlciogaW5kZXhXcml0ZXIg
PSBpbmRleFdyaXRlcnNbaV0uZ2V0KCk7Ci0gICAgICAgIGluZGV4V3JpdGVyLT53cml0ZUluZGV4
S2V5cyhyZWNvcmRJZGVudGlmaWVyLmdldCgpLCAqc3RvcmUuZ2V0KCksIHRyYW5zYWN0aW9uLT5k
ZXByZWNhdGVkQmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSwgaWQoKSwgb2JqZWN0U3RvcmVJZCk7
Ci0gICAgfQorICAgIFJlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmQ+IGJhY2tlbmQodGhpcyk7Cisg
ICAgbV9zZXJ2ZXJDb25uZWN0aW9uLT5zZXRJbmRleEtleXModHJhbnNhY3Rpb25JRCwgbV9tZXRh
ZGF0YS5pZCwgb2JqZWN0U3RvcmVJRCwgbV9tZXRhZGF0YS5vYmplY3RTdG9yZXMuZ2V0KG9iamVj
dFN0b3JlSUQpLCAqcHJpbWFyeUtleSwgaW5kZXhJRHMsIGluZGV4S2V5cywgW3RyYW5zYWN0aW9u
XShQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IGVycm9yKSB7CisgICAgICAgIGlmIChlcnJv
cikKKyAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5hYm9ydChlcnJvcik7CisgICAgfSk7CiB9CiAK
IHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kOjpzZXRJbmRleGVzUmVhZHkoaW50NjRfdCB0cmFuc2Fj
dGlvbklkLCBpbnQ2NF90LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCU2VydmVyQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCU2VydmVyQ29ubmVjdGlv
bi5oCmluZGV4IGJlZTYzNzIuLjc3YmU5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlNlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJTZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTM5LDYgKzM5LDEw
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
OwogY2xhc3MgSURCQmFja2luZ1N0b3JlVHJhbnNhY3Rpb25JbnRlcmZhY2U7CitjbGFzcyBJREJE
YXRhYmFzZUVycm9yOworY2xhc3MgSURCS2V5OworCitzdHJ1Y3QgSURCT2JqZWN0U3RvcmVNZXRh
ZGF0YTsKIAogLy8gVGhpcyBpbnRlcmZhY2UgcHJvdmlkZXMgYSBzaW5nbGUgYXN5bmNocm9ub3Vz
IGxheWVyIGJldHdlZW4gdGhlIHdlYi1mYWNpbmcgZnJvbnRlbmQKIC8vIGFuZCB0aGUgSS9PIHBl
cmZvcm1pbmcgYmFja2VuZCBvZiBJbmRleGVkRGF0YWJhc2UuCkBAIC02OCw2ICs3Miw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2Fj
dGlvbklELCBCb29sQ2FsbGJhY2tGdW5jdGlvbiBzdWNjZXNzQ2FsbGJhY2spID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgcmVzZXRUcmFuc2FjdGlvbihpbnQ2NF90IHRyYW5zYWN0aW9uSUQsIHN0ZDo6
ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uQ2FsbGJhY2spID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgcm9sbGJhY2tUcmFuc2FjdGlvbihpbnQ2NF90IHRyYW5zYWN0aW9uSUQsIHN0ZDo6ZnVuY3Rp
b248dm9pZCgpPiBjb21wbGV0aW9uQ2FsbGJhY2spID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
SW5kZXhLZXlzKGludDY0X3QgdHJhbnNhY3Rpb25JRCwgaW50NjRfdCBkYXRhYmFzZUlELCBpbnQ2
NF90IG9iamVjdFN0b3JlSUQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmLCBJREJLZXkm
IHByaW1hcnlLZXksIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJRHMsIGNvbnN0IFZlY3Rv
cjxWZWN0b3I8UmVmUHRyPElEQktleT4+PiYgaW5kZXhLZXlzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQo
UGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykgPSAwOwor
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRPcGVyYXRpb25zLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZE9w
ZXJhdGlvbnMuY3BwCmluZGV4IDI5NTllZmEuLjI5ZjQyZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
QmFja2VuZE9wZXJhdGlvbnMuY3BwCkBAIC0yMzUsNyArMjM1LDcgQEAgdm9pZCBQdXRPcGVyYXRp
b246OnBlcmZvcm0oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25DYWxsYmFjaykKICAg
ICBWZWN0b3I8UmVmUHRyPElEQkluZGV4V3JpdGVyPj4gaW5kZXhXcml0ZXJzOwogICAgIFN0cmlu
ZyBlcnJvck1lc3NhZ2U7CiAgICAgYm9vbCBvYmV5c0NvbnN0cmFpbnRzID0gZmFsc2U7Ci0gICAg
Ym9vbCBiYWNraW5nU3RvcmVTdWNjZXNzID0gbV90cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS5zZXJ2
ZXJDb25uZWN0aW9uKCkuZGVwcmVjYXRlZEJhY2tpbmdTdG9yZSgpLT5tYWtlSW5kZXhXcml0ZXJz
KCptX3RyYW5zYWN0aW9uLCBtX2RhdGFiYXNlSWQsIG1fb2JqZWN0U3RvcmUsICprZXksIGtleVdh
c0dlbmVyYXRlZCwgbV9pbmRleElkcywgbV9pbmRleEtleXMsIGluZGV4V3JpdGVycywgJmVycm9y
TWVzc2FnZSwgb2JleXNDb25zdHJhaW50cyk7CisgICAgYm9vbCBiYWNraW5nU3RvcmVTdWNjZXNz
ID0gbV90cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS5zZXJ2ZXJDb25uZWN0aW9uKCkuZGVwcmVjYXRl
ZEJhY2tpbmdTdG9yZSgpLT5tYWtlSW5kZXhXcml0ZXJzKG1fdHJhbnNhY3Rpb24tPmlkKCksIG1f
ZGF0YWJhc2VJZCwgbV9vYmplY3RTdG9yZSwgKmtleSwga2V5V2FzR2VuZXJhdGVkLCBtX2luZGV4
SWRzLCBtX2luZGV4S2V5cywgaW5kZXhXcml0ZXJzLCAmZXJyb3JNZXNzYWdlLCBvYmV5c0NvbnN0
cmFpbnRzKTsKICAgICBpZiAoIWJhY2tpbmdTdG9yZVN1Y2Nlc3MpIHsKICAgICAgICAgbV9jYWxs
YmFja3MtPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0
aW9uOjpVbmtub3duRXJyb3IsICJJbnRlcm5hbCBlcnJvcjogYmFja2luZyBzdG9yZSBlcnJvciB1
cGRhdGluZyBpbmRleCBrZXlzLiIpKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZl
bERCLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQi5jcHAKaW5kZXggNzJjOTQwNS4uMGViZDJlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNraW5nU3RvcmVM
ZXZlbERCLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRi
L0lEQkJhY2tpbmdTdG9yZUxldmVsREIuY3BwCkBAIC0xMzgzLDE0ICsxMzgzLDE0IEBAIGJvb2wg
SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6a2V5RXhpc3RzSW5JbmRleChJREJCYWNraW5nU3RvcmVU
cmFuc2FjdGlvbkludGVyZmFjCiB9CiAKIAotYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpt
YWtlSW5kZXhXcml0ZXJzKElEQlRyYW5zYWN0aW9uQmFja2VuZCYgdHJhbnNhY3Rpb24sIGludDY0
X3QgZGF0YWJhc2VJZCwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2JqZWN0U3RvcmUs
IElEQktleSYgcHJpbWFyeUtleSwgYm9vbCBrZXlXYXNHZW5lcmF0ZWQsIGNvbnN0IFZlY3Rvcjxp
bnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JiBpbmRleEtleXMsIFZl
Y3RvcjxSZWZQdHI8SURCSW5kZXhXcml0ZXI+PiYgaW5kZXhXcml0ZXJzLCBTdHJpbmcqIGVycm9y
TWVzc2FnZSwgYm9vbCYgY29tcGxldGVkKQorYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpt
YWtlSW5kZXhXcml0ZXJzKGludDY0X3QgdHJhbnNhY3Rpb25JRCwgaW50NjRfdCBkYXRhYmFzZUlE
LCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZSwgSURCS2V5JiBwcmlt
YXJ5S2V5LCBib29sIGtleVdhc0dlbmVyYXRlZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRl
eElEcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mIGluZGV4S2V5cywgVmVjdG9yPFJlZlB0cjxJ
REJJbmRleFdyaXRlcj4+JiBpbmRleFdyaXRlcnMsIFN0cmluZyogZXJyb3JNZXNzYWdlLCBib29s
JiBjb21wbGV0ZWQpCiB7Ci0gICAgQVNTRVJUKGluZGV4SWRzLnNpemUoKSA9PSBpbmRleEtleXMu
c2l6ZSgpKTsKKyAgICBBU1NFUlQoaW5kZXhJRHMuc2l6ZSgpID09IGluZGV4S2V5cy5zaXplKCkp
OwogICAgIGNvbXBsZXRlZCA9IGZhbHNlOwogCiAgICAgSGFzaE1hcDxpbnQ2NF90LCBJbmRleEtl
eXM+IGluZGV4S2V5TWFwOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaW5kZXhJZHMuc2l6
ZSgpOyArK2kpCi0gICAgICAgIGluZGV4S2V5TWFwLmFkZChpbmRleElkc1tpXSwgaW5kZXhLZXlz
W2ldKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGluZGV4SURzLnNpemUoKTsgKytpKQor
ICAgICAgICBpbmRleEtleU1hcC5hZGQoaW5kZXhJRHNbaV0sIGluZGV4S2V5c1tpXSk7CiAKICAg
ICBmb3IgKElEQk9iamVjdFN0b3JlTWV0YWRhdGE6OkluZGV4TWFwOjpjb25zdF9pdGVyYXRvciBp
dCA9IG9iamVjdFN0b3JlLmluZGV4ZXMuYmVnaW4oKTsgaXQgIT0gb2JqZWN0U3RvcmUuaW5kZXhl
cy5lbmQoKTsgKytpdCkgewogICAgICAgICBjb25zdCBJREJJbmRleE1ldGFkYXRhJiBpbmRleCA9
IGl0LT52YWx1ZTsKQEAgLTE0MDIsOCArMTQwMiw4IEBAIGJvb2wgSURCQmFja2luZ1N0b3JlTGV2
ZWxEQjo6bWFrZUluZGV4V3JpdGVycyhJREJUcmFuc2FjdGlvbkJhY2tlbmQmIHRyYW5zYWN0aW9u
CiAKICAgICAgICAgUmVmUHRyPElEQkluZGV4V3JpdGVyPiBpbmRleFdyaXRlciA9IElEQkluZGV4
V3JpdGVyOjpjcmVhdGUoaW5kZXgsIGtleXMpOwogICAgICAgICBib29sIGNhbkFkZEtleXMgPSBm
YWxzZTsKLSAgICAgICAgQVNTRVJUKG1fYmFja2luZ1N0b3JlVHJhbnNhY3Rpb25zLmNvbnRhaW5z
KHRyYW5zYWN0aW9uLmlkKCkpKTsKLSAgICAgICAgYm9vbCBiYWNraW5nU3RvcmVTdWNjZXNzID0g
aW5kZXhXcml0ZXItPnZlcmlmeUluZGV4S2V5cygqdGhpcywgKm1fYmFja2luZ1N0b3JlVHJhbnNh
Y3Rpb25zLmdldCh0cmFuc2FjdGlvbi5pZCgpKSwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmUuaWQs
IGluZGV4LmlkLCBjYW5BZGRLZXlzLCAmcHJpbWFyeUtleSwgZXJyb3JNZXNzYWdlKTsKKyAgICAg
ICAgQVNTRVJUKG1fYmFja2luZ1N0b3JlVHJhbnNhY3Rpb25zLmNvbnRhaW5zKHRyYW5zYWN0aW9u
SUQpKTsKKyAgICAgICAgYm9vbCBiYWNraW5nU3RvcmVTdWNjZXNzID0gaW5kZXhXcml0ZXItPnZl
cmlmeUluZGV4S2V5cygqdGhpcywgKm1fYmFja2luZ1N0b3JlVHJhbnNhY3Rpb25zLmdldCh0cmFu
c2FjdGlvbklEKSwgZGF0YWJhc2VJRCwgb2JqZWN0U3RvcmUuaWQsIGluZGV4LmlkLCBjYW5BZGRL
ZXlzLCAmcHJpbWFyeUtleSwgZXJyb3JNZXNzYWdlKTsKICAgICAgICAgaWYgKCFiYWNraW5nU3Rv
cmVTdWNjZXNzKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoIWNhbkFk
ZEtleXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZl
bGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oCmluZGV4IDVlMmZiOGQuLjNk
YTRmYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVs
ZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oCkBAIC0xMDEsNyArMTAx
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVDdXJz
b3JJbnRlcmZhY2U+IG9wZW5JbmRleEtleUN1cnNvcihJREJCYWNraW5nU3RvcmVUcmFuc2FjdGlv
bkludGVyZmFjZSYsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBp
bnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhlZERCOjpDdXJzb3JEaXJl
Y3Rpb24pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVD
dXJzb3JJbnRlcmZhY2U+IG9wZW5JbmRleEN1cnNvcihJREJCYWNraW5nU3RvcmVUcmFuc2FjdGlv
bkludGVyZmFjZSYsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBp
bnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhlZERCOjpDdXJzb3JEaXJl
Y3Rpb24pIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBib29sIG1ha2VJbmRleFdyaXRlcnMoSURC
VHJhbnNhY3Rpb25CYWNrZW5kJiwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RT
dG9yZU1ldGFkYXRhJiwgSURCS2V5JiBwcmltYXJ5S2V5LCBib29sIGtleVdhc0dlbmVyYXRlZCwg
Y29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4m
LCBWZWN0b3I8UmVmUHRyPElEQkluZGV4V3JpdGVyPj4mIGluZGV4V3JpdGVycywgU3RyaW5nKiBl
cnJvck1lc3NhZ2UsIGJvb2wmIGNvbXBsZXRlZCkgT1ZFUlJJREUgV0FSTl9VTlVTRURfUkVUVVJO
OworICAgIHZpcnR1YWwgYm9vbCBtYWtlSW5kZXhXcml0ZXJzKGludDY0X3QgdHJhbnNhY3Rpb25J
RCwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiwgSURC
S2V5JiBwcmltYXJ5S2V5LCBib29sIGtleVdhc0dlbmVyYXRlZCwgY29uc3QgVmVjdG9yPGludDY0
X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mLCBWZWN0b3I8UmVmUHRyPElE
QkluZGV4V3JpdGVyPj4mIGluZGV4V3JpdGVycywgU3RyaW5nKiBlcnJvck1lc3NhZ2UsIGJvb2wm
IGNvbXBsZXRlZCkgT1ZFUlJJREUgV0FSTl9VTlVTRURfUkVUVVJOOwogCiAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPElEQktleT4gZ2VuZXJhdGVLZXkoSURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCB1cGRhdGVLZXlHZW5lcmF0b3IoSURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYsIGJv
b2wgY2hlY2tDdXJyZW50KSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCU2VydmVyQ29ubmVjdGlvbkxldmVsREIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJTZXJ2ZXJDb25uZWN0
aW9uTGV2ZWxEQi5jcHAKaW5kZXggZjYwYzRlOWQuLmI1Y2Y4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCU2VydmVyQ29ubmVjdGlvbkxl
dmVsREIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIv
SURCU2VydmVyQ29ubmVjdGlvbkxldmVsREIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNs
dWRlICJJREJCYWNraW5nU3RvcmVMZXZlbERCLmgiCiAjaW5jbHVkZSAiSURCQmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb25MZXZlbERCLmgiCisjaW5jbHVkZSAiSURCSW5kZXhXcml0ZXIuaCIKICNpbmNs
dWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMzcsNiAr
MTM4LDU1IEBAIHZvaWQgSURCU2VydmVyQ29ubmVjdGlvbkxldmVsREI6OnJvbGxiYWNrVHJhbnNh
Y3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklELCBzdGQ6CiAgICAgY2FsbE9uTWFpblRocmVhZChj
b21wbGV0aW9uQ2FsbGJhY2spOwogfQogCit2b2lkIElEQlNlcnZlckNvbm5lY3Rpb25MZXZlbERC
OjpzZXRJbmRleEtleXMoaW50NjRfdCB0cmFuc2FjdGlvbklELCBpbnQ2NF90IGRhdGFiYXNlSUQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2Jq
ZWN0U3RvcmVNZXRhZGF0YSwgSURCS2V5JiBwcmltYXJ5S2V5LCBjb25zdCBWZWN0b3I8aW50NjRf
dD4mIGluZGV4SURzLCBjb25zdCBWZWN0b3I8VmVjdG9yPFJlZlB0cjxJREJLZXk+Pj4mIGluZGV4
S2V5cywgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pPiBj
b21wbGV0aW9uQ2FsbGJhY2spCit7CisgICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZVRyYW5zYWN0
aW9uTGV2ZWxEQj4gYmFja2luZ1N0b3JlVHJhbnNhY3Rpb24gPSBtX2JhY2tpbmdTdG9yZVRyYW5z
YWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JRCk7CisgICAgQVNTRVJUKGJhY2tpbmdTdG9yZVRyYW5z
YWN0aW9uKTsKKworICAgIFJlZlB0cjxJREJSZWNvcmRJZGVudGlmaWVyPiByZWNvcmRJZGVudGlm
aWVyOworICAgIGJvb2wgb2sgPSBtX2JhY2tpbmdTdG9yZS0+a2V5RXhpc3RzSW5PYmplY3RTdG9y
ZSgqYmFja2luZ1N0b3JlVHJhbnNhY3Rpb24sIGRhdGFiYXNlSUQsIG9iamVjdFN0b3JlSUQsIHBy
aW1hcnlLZXksIHJlY29yZElkZW50aWZpZXIpOworICAgIGlmICghb2spIHsKKyAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChbY29tcGxldGlvbkNhbGxiYWNrXSgpIHsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25DYWxsYmFjayhJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRp
b246OlVua25vd25FcnJvciwgIkludGVybmFsIGVycm9yOiBzZXR0aW5nIGluZGV4IGtleXMuIikp
OworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoIXJlY29yZElk
ZW50aWZpZXIpIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbY29tcGxldGlvbkNhbGxiYWNr
XSgpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25DYWxsYmFjayhJREJEYXRhYmFzZUVycm9yOjpj
cmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgIkludGVybmFsIGVycm9y
OiBzZXR0aW5nIGluZGV4IGtleXMgZm9yIG9iamVjdCBzdG9yZS4iKSk7CisgICAgICAgIH0pOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgVmVjdG9yPFJlZlB0cjxJREJJbmRleFdyaXRl
cj4+IGluZGV4V3JpdGVyczsKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGJvb2wgb2Jl
eXNDb25zdHJhaW50cyA9IGZhbHNlOworCisgICAgYm9vbCBiYWNraW5nU3RvcmVTdWNjZXNzID0g
bV9iYWNraW5nU3RvcmUtPm1ha2VJbmRleFdyaXRlcnModHJhbnNhY3Rpb25JRCwgZGF0YWJhc2VJ
RCwgb2JqZWN0U3RvcmVNZXRhZGF0YSwgcHJpbWFyeUtleSwgZmFsc2UsIGluZGV4SURzLCBpbmRl
eEtleXMsIGluZGV4V3JpdGVycywgJmVycm9yTWVzc2FnZSwgb2JleXNDb25zdHJhaW50cyk7Cisg
ICAgaWYgKCFiYWNraW5nU3RvcmVTdWNjZXNzKSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQo
W2NvbXBsZXRpb25DYWxsYmFja10oKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uQ2FsbGJhY2so
SURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJy
b3IsICJJbnRlcm5hbCBlcnJvcjogYmFja2luZyBzdG9yZSBlcnJvciB1cGRhdGluZyBpbmRleCBr
ZXlzLiIpKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCFv
YmV5c0NvbnN0cmFpbnRzKSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2NvbXBsZXRpb25D
YWxsYmFjaywgZXJyb3JNZXNzYWdlXSgpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25DYWxsYmFj
ayhJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkNvbnN0cmFp
bnRFcnJvciwgZXJyb3JNZXNzYWdlKSk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbmRleFdyaXRlcnMuc2l6ZSgpOyAr
K2kpIHsKKyAgICAgICAgSURCSW5kZXhXcml0ZXIqIGluZGV4V3JpdGVyID0gaW5kZXhXcml0ZXJz
W2ldLmdldCgpOworICAgICAgICBpbmRleFdyaXRlci0+d3JpdGVJbmRleEtleXMocmVjb3JkSWRl
bnRpZmllci5nZXQoKSwgKm1fYmFja2luZ1N0b3JlLCAqYmFja2luZ1N0b3JlVHJhbnNhY3Rpb24s
IGRhdGFiYXNlSUQsIG9iamVjdFN0b3JlSUQpOworICAgIH0KKworICAgIGNhbGxPbk1haW5UaHJl
YWQoW2NvbXBsZXRpb25DYWxsYmFja10oKSB7CisgICAgICAgIGNvbXBsZXRpb25DYWxsYmFjaygw
KTsKKyAgICB9KTsKK30KKworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBV
U0UoTEVWRUxEQikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2xldmVsZGIvSURCU2VydmVyQ29ubmVjdGlvbkxldmVsREIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCU2VydmVyQ29ubmVjdGlvbkxldmVsREIuaAppbmRl
eCBkZjBkZmU4Li42YzQ4YjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9sZXZlbGRiL0lEQlNlcnZlckNvbm5lY3Rpb25MZXZlbERCLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJTZXJ2ZXJDb25uZWN0aW9uTGV2
ZWxEQi5oCkBAIC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0
VHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklELCBCb29sQ2FsbGJhY2tGdW5jdGlvbiBz
dWNjZXNzQ2FsbGJhY2spIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZXNldFRyYW5zYWN0
aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JRCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRp
b25DYWxsYmFjaykgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJvbGxiYWNrVHJhbnNhY3Rp
b24oaW50NjRfdCB0cmFuc2FjdGlvbklELCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlv
bkNhbGxiYWNrKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SW5kZXhLZXlzKGludDY0
X3QgdHJhbnNhY3Rpb25JRCwgaW50NjRfdCBkYXRhYmFzZUlELCBpbnQ2NF90IG9iamVjdFN0b3Jl
SUQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmLCBJREJLZXkmIHByaW1hcnlLZXksIGNv
bnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJRHMsIGNvbnN0IFZlY3RvcjxWZWN0b3I8UmVmUHRy
PElEQktleT4+PiYgaW5kZXhLZXlzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjayk7CiAKIHByaXZhdGU6CiAgICAgSURC
U2VydmVyQ29ubmVjdGlvbkxldmVsREIoSURCQmFja2luZ1N0b3JlTGV2ZWxEQiopOwo=
</data>
<flag name="review"
          id="239883"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>