<?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>123775</bug_id>
          
          <creation_ts>2013-11-04 19:22:22 -0800</creation_ts>
          <short_desc>IDB: Make opening/establishing a database asynchronous</short_desc>
          <delta_ts>2013-11-04 21:18:33 -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>946964</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-11-04 19:22:22 -0800</bug_when>
    <thetext>IDB: Make opening/establishing a database asynchronous

Currently opening a database involves main thread I/O.

Let&apos;s make it asynchronous instead.

The LevelDB implementation will still be main thread synchronous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946970</commentid>
    <comment_count>1</comment_count>
      <attachid>215987</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-11-04 20:03:12 -0800</bug_when>
    <thetext>Created attachment 215987
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946973</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-04 20:04:09 -0800</bug_when>
    <thetext>Attachment 215987 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBBackingStoreInterface.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h&apos;]&quot; exit_code: 1
Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:183:  The parameter name &quot;metadata&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 6 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>946974</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-11-04 20:06:10 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 215987 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBBackingStoreInterface.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h&apos;]&quot; exit_code: 1
&gt; Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:183:  The parameter name &quot;metadata&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Total errors found: 1 in 6 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

Fixed locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947000</commentid>
    <comment_count>4</comment_count>
      <attachid>215987</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-11-04 21:01:56 -0800</bug_when>
    <thetext>Comment on attachment 215987
Patch v1 

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

r=me

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:450
&gt; +            RefPtr&lt;IDBDatabaseError&gt; error;

This looks unused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947001</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-11-04 21:04:30 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 215987 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=215987&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:450
&gt; &gt; +            RefPtr&lt;IDBDatabaseError&gt; error;
&gt; 
&gt; This looks unused.

INDEED!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947003</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-11-04 21:06:37 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/158641</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947008</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-11-04 21:18:33 -0800</bug_when>
    <thetext>And that additional review feedback in http://trac.webkit.org/changeset/158642</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215987</attachid>
            <date>2013-11-04 20:03:12 -0800</date>
            <delta_ts>2013-11-04 21:01:55 -0800</delta_ts>
            <desc>Patch v1 </desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>18733</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlNmM0Mzk3Li4wN2JlODc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMTMtMTEtMDQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIElEQjogTWFrZSBvcGVuaW5nL2VzdGFibGlzaGluZyBhIGRhdGFiYXNlIGFzeW5jaHJvbm91
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzc3
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyAoTm8gYmVoYXZpb3IgY2hhbmdlIGZvciBhIHRlc3RlZCBwb3J0KS4KKworICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5oOiBBZGQgZ2V0
T3JFc3RhYmxpc2hJREJEYXRhYmFzZU1ldGFkYXRhIHdpdGggYSBjYWxsYmFjaywKKyAgICAgICAg
ICByZW1vdmluZyBnZXRJREJEYXRhYmFzZU1ldGFEYXRhLCBnZXRPYmplY3RTdG9yZXMsIGFuZCBj
cmVhdGVJREJEYXRhYmFzZU1ldGFEYXRhIGluIHRoZSBwcm9jZXNzLgorCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVsREI6OmdldE9yRXN0YWJsaXNoSURCRGF0
YWJhc2VNZXRhZGF0YSk6IEFkYXB0ZWQgZnJvbSBnZXRJREJEYXRhYmFzZU1ldGFEYXRhLAorICAg
ICAgICAgIGltcGxlbWVudCB0aGUgYXN5bmNocm9ub3VzIGludGVyZmFjZSBpbiB0ZXJtcyBvZiBv
dGhlciBMZXZlbERCIG1ldGhvZHMsIGFsd2F5cyBjYWxsaW5nIGJhY2sgc3luY2hyb25vdXNseS4K
KyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVsREI6OmNyZWF0ZUlEQkRhdGFi
YXNlTWV0YURhdGEpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQi5oOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tl
bmRJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1w
bDo6b3BlbkludGVybmFsQXN5bmMpOiBCcm9rZW4gb2ZmIGZyb20gb3BlbkludGVybmFsLgorICAg
ICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6ZGlkT3BlbkludGVybmFsQXN5
bmMpOiBCcm9rZW4gb2ZmIGZyb20gb3BlbkludGVybmFsLgorICAgICAgICAoV2ViQ29yZTo6SURC
RGF0YWJhc2VCYWNrZW5kSW1wbDo6cHJvY2Vzc1BlbmRpbmdDYWxscyk6CisgICAgICAgIChXZWJD
b3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpwcm9jZXNzUGVuZGluZ09wZW5DYWxscyk6IEJy
b2tlbiBvZmYgdG8gYWxsb3cgZGlkT3BlbkludGVybmFsQXN5bmMKKyAgICAgICAgICB0byBwZXJm
b3JtIG9wZW4gY2FsbGJhY2tzIGluIHRoZSBmYWlsdXJlIGNhc2UuCisgICAgICAgIChXZWJDb3Jl
OjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpvcGVuQ29ubmVjdGlvbik6IEFsd2F5cyBxdWV1ZSBv
cGVuIGNvbm5lY3Rpb24gY2FsbHMsIHRoZW4gaW1tZWRpYXRlbHkgcHJvY2Vzc1BlbmRpbmdDYWxs
cy4KKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6Om9wZW5Db25uZWN0
aW9uSW50ZXJuYWwpOiBBY3R1YWxseSBwZXJmb3JtIG9wZW4gY29ubmVjdGlvbiBjYWxscy4KKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmg6CisKKwog
MjAxMy0xMS0wNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE1ODUyNi4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlSW50ZXJmYWNl
LmgKaW5kZXggZGFkNjY5MC4uZmZjNTAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmgKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJJREJNZXRhZGF0YS5oIgogI2luY2x1ZGUgIkluZGV4ZWRE
Qi5oIgogCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KQEAgLTgxLDkgKzgyLDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9w
dHI8VHJhbnNhY3Rpb24+IGNyZWF0ZUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCkgPSAwOwogCi0g
ICAgdmlydHVhbCBib29sIGdldElEQkRhdGFiYXNlTWV0YURhdGEoY29uc3QgU3RyaW5nJiBuYW1l
LCBJREJEYXRhYmFzZU1ldGFkYXRhKiwgYm9vbCYgZm91bmQpID0gMDsKLSAgICB2aXJ0dWFsIGJv
b2wgZ2V0T2JqZWN0U3RvcmVzKGludDY0X3QgZGF0YWJhc2VJZCwgSURCRGF0YWJhc2VNZXRhZGF0
YTo6T2JqZWN0U3RvcmVNYXAqIG9iamVjdFN0b3JlcykgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBj
cmVhdGVJREJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiB2ZXJzaW9uLCBpbnQ2NF90IGludFZlcnNpb24sIGludDY0X3QmIHJvd0lkKSA9IDA7CisgICAg
dHlwZWRlZiBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmLCBi
b29sIHN1Y2Nlc3MpPiBHZXRJREJEYXRhYmFzZU1ldGFkYXRhRnVuY3Rpb247CisgICAgdmlydHVh
bCB2b2lkIGdldE9yRXN0YWJsaXNoSURCRGF0YWJhc2VNZXRhZGF0YShjb25zdCBTdHJpbmcmIG5h
bWUsIEdldElEQkRhdGFiYXNlTWV0YWRhdGFGdW5jdGlvbikgPSAwOworCiAgICAgdmlydHVhbCBi
b29sIGtleUV4aXN0c0luT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFu
c2FjdGlvbiYsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25z
dCBJREJLZXkmLCBSZWZQdHI8SURCUmVjb3JkSWRlbnRpZmllcj4mIGZvdW5kSURCUmVjb3JkSWRl
bnRpZmllcikgPSAwOwogCiAgICAgdmlydHVhbCBib29sIHB1dEluZGV4RGF0YUZvclJlY29yZChJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uJiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5Jiwg
Y29uc3QgSURCUmVjb3JkSWRlbnRpZmllciopID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKaW5k
ZXggMjQyZDNjNy4uNmIwMTk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKQEAgLTQ3LDggKzQ3
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJ
bXBsPiBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2UqIGJhY2tpbmdTdG9yZSwgSURCRmFjdG9yeUJhY2tlbmRJ
bnRlcmZhY2UqIGZhY3RvcnksIGNvbnN0IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcikKIHsKICAg
ICBSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4gYmFja2VuZCA9IGFkb3B0UmVmKG5ldyBJ
REJEYXRhYmFzZUJhY2tlbmRJbXBsKG5hbWUsIGJhY2tpbmdTdG9yZSwgZmFjdG9yeSwgdW5pcXVl
SWRlbnRpZmllcikpOwotICAgIGlmICghYmFja2VuZC0+b3BlbkludGVybmFsKCkpCi0gICAgICAg
IHJldHVybiAwOworICAgIGJhY2tlbmQtPm9wZW5JbnRlcm5hbEFzeW5jKCk7CisgICAgCiAgICAg
cmV0dXJuIGJhY2tlbmQucmVsZWFzZSgpOwogfQogCkBAIC0xMDMsMTcgKzEwMywyNCBAQCB2b2lk
IElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnJlbW92ZUluZGV4KGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgaW50NjRfdCBpbmRleElkKQogICAgIG1fbWV0YWRhdGEub2JqZWN0U3RvcmVzLnNldChvYmpl
Y3RTdG9yZUlkLCBvYmplY3RTdG9yZSk7CiB9CiAKLWJvb2wgSURCRGF0YWJhc2VCYWNrZW5kSW1w
bDo6b3BlbkludGVybmFsKCkKK3ZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6b3BlbkludGVy
bmFsQXN5bmMoKQogewotICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwotICAgIGJvb2wgb2sgPSBt
X2JhY2tpbmdTdG9yZS0+Z2V0SURCRGF0YWJhc2VNZXRhRGF0YShtX21ldGFkYXRhLm5hbWUsICZt
X21ldGFkYXRhLCBzdWNjZXNzKTsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKHN1Y2Nlc3MgPT0g
KG1fbWV0YWRhdGEuaWQgIT0gSW52YWxpZElkKSwgInN1Y2Nlc3MgPSAlcywgbV9pZCA9ICVsbGQi
LCBzdWNjZXNzID8gInRydWUiIDogImZhbHNlIiwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihtX21l
dGFkYXRhLmlkKSk7Ci0gICAgaWYgKCFvaykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
IChzdWNjZXNzKQotICAgICAgICByZXR1cm4gbV9iYWNraW5nU3RvcmUtPmdldE9iamVjdFN0b3Jl
cyhtX21ldGFkYXRhLmlkLCAmbV9tZXRhZGF0YS5vYmplY3RTdG9yZXMpOworICAgIFJlZlB0cjxJ
REJEYXRhYmFzZUJhY2tlbmRJbXBsPiBzZWxmID0gdGhpczsKKyAgICBtX2JhY2tpbmdTdG9yZS0+
Z2V0T3JFc3RhYmxpc2hJREJEYXRhYmFzZU1ldGFkYXRhKG1fbWV0YWRhdGEubmFtZSwgW3NlbGZd
KGNvbnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmIG1ldGFkYXRhLCBib29sIHN1Y2Nlc3MpIHsKKyAg
ICAgICAgc2VsZi0+ZGlkT3BlbkludGVybmFsQXN5bmMobWV0YWRhdGEsIHN1Y2Nlc3MpOworICAg
IH0pOworfQorCit2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmRpZE9wZW5JbnRlcm5hbEFz
eW5jKGNvbnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmIG1ldGFkYXRhLCBib29sIHN1Y2Nlc3MpCit7
CisgICAgaWYgKCFzdWNjZXNzKSB7CisgICAgICAgIHByb2Nlc3NQZW5kaW5nT3BlbkNhbGxzKGZh
bHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIHJldHVybiBtX2JhY2tpbmdTdG9y
ZS0+Y3JlYXRlSURCRGF0YWJhc2VNZXRhRGF0YShtX21ldGFkYXRhLm5hbWUsIFN0cmluZzo6bnVt
YmVyKG1fbWV0YWRhdGEudmVyc2lvbiksIG1fbWV0YWRhdGEudmVyc2lvbiwgbV9tZXRhZGF0YS5p
ZCk7CisgICAgbV9tZXRhZGF0YSA9IG1ldGFkYXRhOworCisgICAgcHJvY2Vzc1BlbmRpbmdDYWxs
cygpOwogfQogCiBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp+SURCRGF0YWJhc2VCYWNrZW5kSW1w
bCgpCkBAIC00MTMsMTcgKzQyMCw0MCBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnBy
b2Nlc3NQZW5kaW5nQ2FsbHMoKQogICAgIC8vIGRlbGV0ZURhdGFiYXNlRmluYWwgc2hvdWxkIG5l
dmVyIHJlLXF1ZXVlIGNhbGxzLgogICAgIEFTU0VSVChtX3BlbmRpbmdEZWxldGVDYWxscy5pc0Vt
cHR5KCkpOwogCi0gICAgLy8gVGhpcyBjaGVjayBpcyBhbHNvIG5vdCByZWFsbHkgbmVlZGVkLCBv
cGVuQ29ubmVjdGlvbiB3b3VsZCBqdXN0IHJlcXVldWUgaXRzIGNhbGxzLgogICAgIGlmIChtX3J1
bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIC8v
IE9wZW4gY2FsbHMgY2FuIGJlIHJlcXVldWVkIGlmIGFuIG9wZW4gY2FsbCBzdGFydGVkIGEgdmVy
c2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24uCisgICAgcHJvY2Vzc1BlbmRpbmdPcGVuQ2FsbHModHJ1
ZSk7Cit9CisKK3ZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cHJvY2Vzc1BlbmRpbmdPcGVu
Q2FsbHMoYm9vbCBzdWNjZXNzKQoreworICAgIC8vIE9wZW4gY2FsbHMgY2FuIGJlIHJlcXVldWVk
IGlmIGFuIG9wZW4gY2FsbCBzdGFydGVkIGEgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gb3Ig
ZGVsZXRlcyB0aGUgZGF0YWJhc2UuCiAgICAgRGVxdWU8T3duUHRyPElEQlBlbmRpbmdPcGVuQ2Fs
bD4+IHBlbmRpbmdPcGVuQ2FsbHM7CiAgICAgbV9wZW5kaW5nT3BlbkNhbGxzLnN3YXAocGVuZGlu
Z09wZW5DYWxscyk7CiAKICAgICB3aGlsZSAoIXBlbmRpbmdPcGVuQ2FsbHMuaXNFbXB0eSgpKSB7
CiAgICAgICAgIE93blB0cjxJREJQZW5kaW5nT3BlbkNhbGw+IHBlbmRpbmdPcGVuQ2FsbCA9IHBl
bmRpbmdPcGVuQ2FsbHMudGFrZUZpcnN0KCk7Ci0gICAgICAgIG9wZW5Db25uZWN0aW9uKHBlbmRp
bmdPcGVuQ2FsbC0+Y2FsbGJhY2tzKCksIHBlbmRpbmdPcGVuQ2FsbC0+ZGF0YWJhc2VDYWxsYmFj
a3MoKSwgcGVuZGluZ09wZW5DYWxsLT50cmFuc2FjdGlvbklkKCksIHBlbmRpbmdPcGVuQ2FsbC0+
dmVyc2lvbigpKTsKKyAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICAgICAgICAgIGlmIChtX21l
dGFkYXRhLmlkID09IEludmFsaWRJZCkgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgZGF0YWJh
c2Ugd2FzIGRlbGV0ZWQgdGhlbiBxdWlja2x5IHJlLW9wZW5lZC4KKyAgICAgICAgICAgICAgICAv
LyBvcGVuSW50ZXJuYWxBc3luYygpIHdpbGwgcmVjcmVhdGUgaXQgaW4gdGhlIGJhY2tpbmcgc3Rv
cmUgYW5kIHRoZW4gcmVzdW1lIHByb2Nlc3NpbmcgcGVuZGluZyBjYWxsYmFja3MuCisgICAgICAg
ICAgICAgICAgcGVuZGluZ09wZW5DYWxscy5wcmVwZW5kKHBlbmRpbmdPcGVuQ2FsbC5yZWxlYXNl
KCkpOworICAgICAgICAgICAgICAgIHBlbmRpbmdPcGVuQ2FsbHMuc3dhcChtX3BlbmRpbmdPcGVu
Q2FsbHMpOworCisgICAgICAgICAgICAgICAgb3BlbkludGVybmFsQXN5bmMoKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvcGVuQ29ubmVjdGlv
bkludGVybmFsKHBlbmRpbmdPcGVuQ2FsbC0+Y2FsbGJhY2tzKCksIHBlbmRpbmdPcGVuQ2FsbC0+
ZGF0YWJhc2VDYWxsYmFja3MoKSwgcGVuZGluZ09wZW5DYWxsLT50cmFuc2FjdGlvbklkKCksIHBl
bmRpbmdPcGVuQ2FsbC0+dmVyc2lvbigpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IFN0cmluZyBtZXNzYWdlOworICAgICAgICAgICAgUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IGVy
cm9yOworICAgICAgICAgICAgaWYgKHBlbmRpbmdPcGVuQ2FsbC0+dmVyc2lvbigpID09IElEQkRh
dGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbikKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0g
IkludGVybmFsIGVycm9yIG9wZW5pbmcgZGF0YWJhc2Ugd2l0aCBubyB2ZXJzaW9uIHNwZWNpZmll
ZC4iOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBTdHJpbmc6
OmZvcm1hdCgiSW50ZXJuYWwgZXJyb3Igb3BlbmluZyBkYXRhYmFzZSB3aXRoIHZlcnNpb24gJWxs
dSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4ocGVuZGluZ09wZW5DYWxsLT52ZXJz
aW9uKCkpKTsKKyAgICAgICAgICAgIHBlbmRpbmdPcGVuQ2FsbC0+Y2FsbGJhY2tzKCktPm9uRXJy
b3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3du
RXJyb3IsIG1lc3NhZ2UpKTsKKyAgICAgICAgfQogICAgIH0KIH0KIApAQCAtNDQwLDMwICs0NzAs
MjMgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbihpbnQ2
NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHIKIAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJ
bXBsOjpvcGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tz
LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBwcnBEYXRhYmFzZUNhbGxiYWNrcywg
aW50NjRfdCB0cmFuc2FjdGlvbklkLCB1aW50NjRfdCB2ZXJzaW9uKQogewotICAgIEFTU0VSVCht
X2JhY2tpbmdTdG9yZS5nZXQoKSk7CiAgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tz
ID0gcHJwQ2FsbGJhY2tzOwogICAgIFJlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJh
c2VDYWxsYmFja3MgPSBwcnBEYXRhYmFzZUNhbGxiYWNrczsKIAotICAgIGlmICghbV9wZW5kaW5n
RGVsZXRlQ2FsbHMuaXNFbXB0eSgpIHx8IG1fcnVubmluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlv
bikgewotICAgICAgICBtX3BlbmRpbmdPcGVuQ2FsbHMuYXBwZW5kKElEQlBlbmRpbmdPcGVuQ2Fs
bDo6Y3JlYXRlKCpjYWxsYmFja3MsICpkYXRhYmFzZUNhbGxiYWNrcywgdHJhbnNhY3Rpb25JZCwg
dmVyc2lvbikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIG1fcGVuZGluZ09wZW5DYWxs
cy5hcHBlbmQoSURCUGVuZGluZ09wZW5DYWxsOjpjcmVhdGUoKmNhbGxiYWNrcywgKmRhdGFiYXNl
Q2FsbGJhY2tzLCB0cmFuc2FjdGlvbklkLCB2ZXJzaW9uKSk7CiAKLSAgICBpZiAobV9tZXRhZGF0
YS5pZCA9PSBJbnZhbGlkSWQpIHsKLSAgICAgICAgLy8gVGhlIGRhdGFiYXNlIHdhcyBkZWxldGVk
IHRoZW4gaW1tZWRpYXRlbHkgcmUtb3BlbmVkOyBvcGVuSW50ZXJuYWwoKSByZWNyZWF0ZXMgaXQg
aW4gdGhlIGJhY2tpbmcgc3RvcmUuCi0gICAgICAgIGlmIChvcGVuSW50ZXJuYWwoKSkKLSAgICAg
ICAgICAgIEFTU0VSVChtX21ldGFkYXRhLnZlcnNpb24gPT0gSURCRGF0YWJhc2VNZXRhZGF0YTo6
Tm9JbnRWZXJzaW9uKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBTdHJpbmcgbWVzc2Fn
ZTsKLSAgICAgICAgICAgIFJlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcjsKLSAgICAgICAg
ICAgIGlmICh2ZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbikKLSAg
ICAgICAgICAgICAgICBtZXNzYWdlID0gIkludGVybmFsIGVycm9yIG9wZW5pbmcgZGF0YWJhc2Ug
d2l0aCBubyB2ZXJzaW9uIHNwZWNpZmllZC4iOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgIG1lc3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiSW50ZXJuYWwgZXJyb3Igb3BlbmluZyBk
YXRhYmFzZSB3aXRoIHZlcnNpb24gJWxsdSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9u
Zz4odmVyc2lvbikpOwotICAgICAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNl
RXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBtZXNzYWdl
KSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9CisgICAgcHJvY2Vzc1Bl
bmRpbmdDYWxscygpOworfQorCisKK3ZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6b3BlbkNv
bm5lY3Rpb25JbnRlcm5hbChQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBwcnBEYXRhYmFzZUNhbGxiYWNrcywgaW50
NjRfdCB0cmFuc2FjdGlvbklkLCB1aW50NjRfdCB2ZXJzaW9uKQoreworICAgIEFTU0VSVChtX2Jh
Y2tpbmdTdG9yZS5nZXQoKSk7CisgICAgQVNTRVJUKG1fcGVuZGluZ0RlbGV0ZUNhbGxzLmlzRW1w
dHkoKSk7CisgICAgQVNTRVJUKCFtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24pOwor
CisgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzID0gcHJwQ2FsbGJhY2tzOworICAg
IFJlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MgPSBwcnBEYXRh
YmFzZUNhbGxiYWNrczsKIAogICAgIC8vIFdlIGluZmVyIHRoYXQgdGhlIGRhdGFiYXNlIGRpZG4n
dCBleGlzdCBmcm9tIGl0cyBsYWNrIG9mIGVpdGhlciB0eXBlIG9mIHZlcnNpb24uCiAgICAgYm9v
bCBpc05ld0RhdGFiYXNlID0gbV9tZXRhZGF0YS52ZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRh
dGE6Ok5vSW50VmVyc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAppbmRleCA2ZTVlNTRlLi42ZmJhOWY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5oCkBAIC0xMDUsMTAgKzEwNSwxNSBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIElEQkRhdGFiYXNlQmFja2VuZEltcGwoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJC
YWNraW5nU3RvcmVJbnRlcmZhY2UqLCBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSosIGNvbnN0
IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcik7CiAKLSAgICBib29sIG9wZW5JbnRlcm5hbCgpOwor
ICAgIHZvaWQgb3BlbkNvbm5lY3Rpb25JbnRlcm5hbChQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4s
IFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQs
IHVpbnQ2NF90IHZlcnNpb24pOworCisgICAgdm9pZCBvcGVuSW50ZXJuYWxBc3luYygpOworICAg
IHZvaWQgZGlkT3BlbkludGVybmFsQXN5bmMoY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYsIGJv
b2wgc3VjY2Vzcyk7CisKICAgICB2b2lkIHJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+
LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7CiAgICAg
c2l6ZV90IGNvbm5lY3Rpb25Db3VudCgpOwogICAgIHZvaWQgcHJvY2Vzc1BlbmRpbmdDYWxscygp
OworICAgIHZvaWQgcHJvY2Vzc1BlbmRpbmdPcGVuQ2FsbHMoYm9vbCBzdWNjZXNzKTsKIAogICAg
IGJvb2wgaXNEZWxldGVEYXRhYmFzZUJsb2NrZWQoKTsKICAgICB2b2lkIGRlbGV0ZURhdGFiYXNl
RmluYWwoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9y
ZUxldmVsREIuY3BwCmluZGV4IGFhNjAyNDQuLjgxZGY0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNr
aW5nU3RvcmVMZXZlbERCLmNwcApAQCAtNTQzLDYgKzU0Myw2NCBAQCBib29sIElEQkJhY2tpbmdT
dG9yZUxldmVsREI6OmdldElEQkRhdGFiYXNlTWV0YURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBJ
REJEYXRhYgogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIElEQkJhY2tpbmdTdG9yZUxldmVs
REI6OmdldE9yRXN0YWJsaXNoSURCRGF0YWJhc2VNZXRhZGF0YShjb25zdCBTdHJpbmcmIG5hbWUs
IEdldElEQkRhdGFiYXNlTWV0YWRhdGFGdW5jdGlvbiBtZXRhZGF0YUZ1bmN0aW9uKQoreworICAg
IGNvbnN0IFZlY3RvcjxjaGFyPiBrZXkgPSBEYXRhYmFzZU5hbWVLZXk6OmVuY29kZShtX2lkZW50
aWZpZXIsIG5hbWUpOworICAgIGJvb2wgZm91bmQgPSBmYWxzZTsKKworICAgIElEQkRhdGFiYXNl
TWV0YWRhdGEgcmVzdWx0TWV0YWRhdGE7CisgICAgCisgICAgYm9vbCBvayA9IGdldEludChtX2Ri
LmdldCgpLCBrZXksIHJlc3VsdE1ldGFkYXRhLmlkLCBmb3VuZCk7CisgICAgaWYgKCFvaykgewor
ICAgICAgICBJTlRFUk5BTF9SRUFEX0VSUk9SKEdldElEQkRhdGFiYXNlTWV0YURhdGEpOworICAg
ICAgICBtZXRhZGF0YUZ1bmN0aW9uKHJlc3VsdE1ldGFkYXRhLCBmYWxzZSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpZiAoIWZvdW5kKSB7CisgICAgICAgIHJlc3VsdE1ldGFkYXRh
Lm5hbWUgPSBuYW1lOworICAgICAgICByZXN1bHRNZXRhZGF0YS52ZXJzaW9uID0gSURCRGF0YWJh
c2VNZXRhZGF0YTo6RGVmYXVsdEludFZlcnNpb247CisKKyAgICAgICAgbWV0YWRhdGFGdW5jdGlv
bihyZXN1bHRNZXRhZGF0YSwgY3JlYXRlSURCRGF0YWJhc2VNZXRhRGF0YShyZXN1bHRNZXRhZGF0
YSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaW50NjRfdCB2ZXJzaW9uOworICAg
IG9rID0gZ2V0VmFySW50KG1fZGIuZ2V0KCksIERhdGFiYXNlTWV0YURhdGFLZXk6OmVuY29kZShy
ZXN1bHRNZXRhZGF0YS5pZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNlckludFZlcnNpb24pLCB2
ZXJzaW9uLCBmb3VuZCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBJTlRFUk5BTF9SRUFEX0VS
Uk9SKEdldElEQkRhdGFiYXNlTWV0YURhdGEpOworICAgICAgICBtZXRhZGF0YUZ1bmN0aW9uKHJl
c3VsdE1ldGFkYXRhLCBmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCFm
b3VuZCkgeworICAgICAgICBJTlRFUk5BTF9DT05TSVNURU5DWV9FUlJPUihHZXRJREJEYXRhYmFz
ZU1ldGFEYXRhKTsKKyAgICAgICAgbWV0YWRhdGFGdW5jdGlvbihyZXN1bHRNZXRhZGF0YSwgZmFs
c2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRklYTUU6IFRoZSB2ZXJzaW9u
aW5nIHNlbWFudGljcyBoYXZlIGNoYW5nZWQgc2luY2UgdGhpcyBvcmlnaW5hbCBjb2RlIHdhcyB3
cml0dGVuLCBhbmQgd2hhdCB3YXMgb25jZSBhIG5lZ2F0aXZlIG51bWJlcgorICAgIC8vIHN0b3Jl
ZCBpbiB0aGUgZGF0YWJhc2UgaXMgbm8gbG9uZ2VyIGEgdmFsaWQgdmVyc2lvbi4KKyAgICBpZiAo
dmVyc2lvbiA8IDApCisgICAgICAgIHZlcnNpb24gPSAwOworICAgIHJlc3VsdE1ldGFkYXRhLnZl
cnNpb24gPSB2ZXJzaW9uOworCisgICAgb2sgPSBnZXRNYXhPYmplY3RTdG9yZUlkKG1fZGIuZ2V0
KCksIHJlc3VsdE1ldGFkYXRhLmlkLCByZXN1bHRNZXRhZGF0YS5tYXhPYmplY3RTdG9yZUlkKTsK
KyAgICBpZiAoIW9rKSB7CisgICAgICAgIElOVEVSTkFMX1JFQURfRVJST1IoR2V0SURCRGF0YWJh
c2VNZXRhRGF0YSk7CisgICAgICAgIG1ldGFkYXRhRnVuY3Rpb24ocmVzdWx0TWV0YWRhdGEsIGZh
bHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG9rID0gZ2V0T2JqZWN0U3RvcmVz
KHJlc3VsdE1ldGFkYXRhLmlkLCAmcmVzdWx0TWV0YWRhdGEub2JqZWN0U3RvcmVzKTsKKyAgICBp
ZiAoIW9rKSB7CisgICAgICAgIElOVEVSTkFMX1JFQURfRVJST1IoR2V0SURCRGF0YWJhc2VNZXRh
RGF0YSk7CisgICAgICAgIG1ldGFkYXRhRnVuY3Rpb24ocmVzdWx0TWV0YWRhdGEsIGZhbHNlKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1ldGFkYXRhRnVuY3Rpb24ocmVzdWx0TWV0
YWRhdGEsIHRydWUpOworfQorCiBXQVJOX1VOVVNFRF9SRVRVUk4gc3RhdGljIGJvb2wgZ2V0TmV3
RGF0YWJhc2VJZChMZXZlbERCRGF0YWJhc2UqIGRiLCBpbnQ2NF90JiBuZXdJZCkKIHsKICAgICBS
ZWZQdHI8TGV2ZWxEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbiA9IExldmVsREJUcmFuc2FjdGlv
bjo6Y3JlYXRlKGRiKTsKQEAgLTU3MCwyMSArNjI4LDE3IEBAIFdBUk5fVU5VU0VEX1JFVFVSTiBz
dGF0aWMgYm9vbCBnZXROZXdEYXRhYmFzZUlkKExldmVsREJEYXRhYmFzZSogZGIsIGludDY0X3Qm
IG5lCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLS8vIEZJWE1FOiBUaGUgdmVyc2lvbiBzZW1hbnRp
Y3MgaGF2ZSBjaGFuZ2VkLiBTdHJpbmcgdmVyc2lvbnMgbm8gbG9uZ2VyIGV4aXN0LCBhbmQgdGhl
IGludGVnZXIgdmVyc2lvbiBpcyBub3cgYSB1aW50NjRfdAotYm9vbCBJREJCYWNraW5nU3RvcmVM
ZXZlbERCOjpjcmVhdGVJREJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgU3RyaW5nJiB2ZXJzaW9uLCBpbnQ2NF90IGludFZlcnNpb24sIGludDY0X3QmIHJvd0lkKQor
Ly8gRklYTUU6IExldmVsREIgbmVlZHMgdG8gc3VwcG9ydCB1aW50NjRfdCBhcyB0aGUgdmVyc2lv
biB0eXBlLgorYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpjcmVhdGVJREJEYXRhYmFzZU1l
dGFEYXRhKElEQkRhdGFiYXNlTWV0YWRhdGEmIG1ldGFkYXRhKQogewotICAgIGJvb2wgb2sgPSBn
ZXROZXdEYXRhYmFzZUlkKG1fZGIuZ2V0KCksIHJvd0lkKTsKKyAgICBib29sIG9rID0gZ2V0TmV3
RGF0YWJhc2VJZChtX2RiLmdldCgpLCBtZXRhZGF0YS5pZCk7CiAgICAgaWYgKCFvaykKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIEFTU0VSVChyb3dJZCA+PSAwKTsKLQotICAgIGlmIChpbnRW
ZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbikKLSAgICAgICAgaW50
VmVyc2lvbiA9IElEQkRhdGFiYXNlTWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJzaW9uOworICAgIEFT
U0VSVChtZXRhZGF0YS5pZCA+PSAwKTsKIAogICAgIFJlZlB0cjxMZXZlbERCVHJhbnNhY3Rpb24+
IHRyYW5zYWN0aW9uID0gTGV2ZWxEQlRyYW5zYWN0aW9uOjpjcmVhdGUobV9kYi5nZXQoKSk7Ci0g
ICAgcHV0SW50KHRyYW5zYWN0aW9uLmdldCgpLCBEYXRhYmFzZU5hbWVLZXk6OmVuY29kZShtX2lk
ZW50aWZpZXIsIG5hbWUpLCByb3dJZCk7Ci0gICAgcHV0U3RyaW5nKHRyYW5zYWN0aW9uLmdldCgp
LCBEYXRhYmFzZU1ldGFEYXRhS2V5OjplbmNvZGUocm93SWQsIERhdGFiYXNlTWV0YURhdGFLZXk6
OlVzZXJWZXJzaW9uKSwgdmVyc2lvbik7Ci0gICAgcHV0VmFySW50KHRyYW5zYWN0aW9uLmdldCgp
LCBEYXRhYmFzZU1ldGFEYXRhS2V5OjplbmNvZGUocm93SWQsIERhdGFiYXNlTWV0YURhdGFLZXk6
OlVzZXJJbnRWZXJzaW9uKSwgaW50VmVyc2lvbik7CisgICAgcHV0SW50KHRyYW5zYWN0aW9uLmdl
dCgpLCBEYXRhYmFzZU5hbWVLZXk6OmVuY29kZShtX2lkZW50aWZpZXIsIG1ldGFkYXRhLm5hbWUp
LCBtZXRhZGF0YS5pZCk7CisgICAgcHV0VmFySW50KHRyYW5zYWN0aW9uLmdldCgpLCBEYXRhYmFz
ZU1ldGFEYXRhS2V5OjplbmNvZGUobWV0YWRhdGEuaWQsIERhdGFiYXNlTWV0YURhdGFLZXk6OlVz
ZXJJbnRWZXJzaW9uKSwgbWV0YWRhdGEudmVyc2lvbik7CiAgICAgaWYgKCF0cmFuc2FjdGlvbi0+
Y29tbWl0KCkpIHsKICAgICAgICAgSU5URVJOQUxfV1JJVEVfRVJST1IoQ3JlYXRlSURCRGF0YWJh
c2VNZXRhRGF0YSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTYwMCwxMiArNjU0LDYgQEAg
Ym9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjp1cGRhdGVJREJEYXRhYmFzZVZlcnNpb24oSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlOjoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJREJC
YWNraW5nU3RvcmVMZXZlbERCOjp1cGRhdGVJREJEYXRhYmFzZU1ldGFEYXRhKElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBpbnQ2NF90IHJvd0lkLCBj
b25zdCBTdHJpbmcmIHZlcnNpb24pCi17Ci0gICAgcHV0U3RyaW5nKFRyYW5zYWN0aW9uOjpsZXZl
bERCVHJhbnNhY3Rpb25Gcm9tKHRyYW5zYWN0aW9uKSwgRGF0YWJhc2VNZXRhRGF0YUtleTo6ZW5j
b2RlKHJvd0lkLCBEYXRhYmFzZU1ldGFEYXRhS2V5OjpVc2VyVmVyc2lvbiksIHZlcnNpb24pOwot
ICAgIHJldHVybiB0cnVlOwotfQotCiBzdGF0aWMgdm9pZCBkZWxldGVSYW5nZShMZXZlbERCVHJh
bnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGJlZ2luLCBjb25zdCBW
ZWN0b3I8Y2hhcj4mIGVuZCkKIHsKICAgICBPd25QdHI8TGV2ZWxEQkl0ZXJhdG9yPiBpdCA9IHRy
YW5zYWN0aW9uLT5jcmVhdGVJdGVyYXRvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxldmVs
REIuaAppbmRleCBlOTIyMTg2Li41NTgxMzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxl
dmVsREIuaApAQCAtNzAsMTMgKzcwLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHN0ZDo6dW5p
cXVlX3B0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uPiBjcmVhdGVCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbigpOwogCiAgICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBnZXRE
YXRhYmFzZU5hbWVzKCk7Ci0gICAgdmlydHVhbCBib29sIGdldElEQkRhdGFiYXNlTWV0YURhdGEo
Y29uc3QgU3RyaW5nJiBuYW1lLCBJREJEYXRhYmFzZU1ldGFkYXRhKiwgYm9vbCYgc3VjY2Vzcykg
T1ZFUlJJREUgV0FSTl9VTlVTRURfUkVUVVJOOwotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVJREJE
YXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9u
LCBpbnQ2NF90IGludFZlcnNpb24sIGludDY0X3QmIHJvd0lkKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgdXBkYXRlSURCRGF0YWJhc2VNZXRhRGF0YShJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OlRyYW5zYWN0aW9uJiwgaW50NjRfdCByb3dJZCwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsK
KworICAgIHZpcnR1YWwgdm9pZCBnZXRPckVzdGFibGlzaElEQkRhdGFiYXNlTWV0YWRhdGEoY29u
c3QgU3RyaW5nJiBuYW1lLCBHZXRJREJEYXRhYmFzZU1ldGFkYXRhRnVuY3Rpb24pIE9WRVJSSURF
OworCiAgICAgdmlydHVhbCBib29sIHVwZGF0ZUlEQkRhdGFiYXNlVmVyc2lvbihJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uJiwgaW50NjRfdCByb3dJZCwgdWludDY0X3QgdmVy
c2lvbikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0
cmluZyYgbmFtZSkgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T2JqZWN0U3RvcmVz
KGludDY0X3QgZGF0YWJhc2VJZCwgSURCRGF0YWJhc2VNZXRhZGF0YTo6T2JqZWN0U3RvcmVNYXAq
KSBPVkVSUklERSBXQVJOX1VOVVNFRF9SRVRVUk47CiAgICAgdmlydHVhbCBib29sIGNyZWF0ZU9i
amVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGJvb2wgZGVsZXRlT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFu
c2FjdGlvbiYsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSBPVkVS
UklERSBXQVJOX1VOVVNFRF9SRVRVUk47CiAKQEAgLTE4MCw2ICsxNzksMTEgQEAgcHJvdGVjdGVk
OgogcHJpdmF0ZToKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERC
PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBQYXNzT3duUHRyPExldmVsREJEYXRh
YmFzZT4sIFBhc3NPd25QdHI8TGV2ZWxEQkNvbXBhcmF0b3I+KTsKIAorICAgIC8vIEZJWE1FOiBM
ZXZlbERCIG5lZWRzIHRvIHN1cHBvcnQgdWludDY0X3QgYXMgdGhlIHZlcnNpb24gdHlwZS4KKyAg
ICBib29sIGNyZWF0ZUlEQkRhdGFiYXNlTWV0YURhdGEoSURCRGF0YWJhc2VNZXRhZGF0YSYgbWV0
YWRhdGEpOworICAgIGJvb2wgZ2V0SURCRGF0YWJhc2VNZXRhRGF0YShjb25zdCBTdHJpbmcmIG5h
bWUsIElEQkRhdGFiYXNlTWV0YWRhdGEqLCBib29sJiBzdWNjZXNzKSBXQVJOX1VOVVNFRF9SRVRV
Uk47CisgICAgYm9vbCBnZXRPYmplY3RTdG9yZXMoaW50NjRfdCBkYXRhYmFzZUlkLCBJREJEYXRh
YmFzZU1ldGFkYXRhOjpPYmplY3RTdG9yZU1hcCogb2JqZWN0U3RvcmVzKSBXQVJOX1VOVVNFRF9S
RVRVUk47CisKICAgICBib29sIGZpbmRLZXlJbkluZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmLCBWZWN0b3I8Y2hhcj4mIGZvdW5kRW5j
b2RlZFByaW1hcnlLZXksIGJvb2wmIGZvdW5kKTsKICAgICBib29sIGdldEluZGV4ZXMoaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIElEQk9iamVjdFN0b3JlTWV0YWRh
dGE6OkluZGV4TWFwKikgV0FSTl9VTlVTRURfUkVUVVJOOwogCg==
</data>
<flag name="review"
          id="238859"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>