<?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>27181</bug_id>
          
          <creation_ts>2009-07-11 13:30:12 -0700</creation_ts>
          <short_desc>StorageArea should only contain methods we intend to proxy</short_desc>
          <delta_ts>2009-07-17 18:43:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          <dependson>27180</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>beidson</cc>
    
    <cc>fishd</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>131131</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-07-11 13:30:12 -0700</bug_when>
    <thetext>Right now, StorageAreaSync takes in a StorageArea* and calls methods like impotItem.  Really, StorageAreaSync should be operating directly on StorageAreaImpl* and those methods should be removed from StorageArea since StorageAreaSync should never be attached to anything other than a StorageAreaImpl.

This was pointed out in the review for
https://bugs.webkit.org/show_bug.cgi?id=27072

But depends on some other cleanup
https://bugs.webkit.org/show_bug.cgi?id=27180</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132129</commentid>
    <comment_count>1</comment_count>
      <attachid>32828</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-07-15 21:17:57 -0700</bug_when>
    <thetext>Created attachment 32828
v1

StorageArea should only contain methods we intend to proxy.
https://bugs.webkit.org/show_bug.cgi?id=27181

Right now, StorageAreaSync takes in a StorageArea* and calls methods
like importItem.  Really, StorageAreaSync should be operating directly
on StorageAreaImpl* and those methods should be removed from StorageArea
since StorageAreaSync should never be attached to anything other than a
StorageAreaImpl.
This was pointed out in the review for
https://bugs.webkit.org/show_bug.cgi?id=27072

Also clean up StorageNamespaceImpl to operate directly on
StorageAreaImpl.  Also, get rid of the factory for StorageArea
since nothing should ever create a StorageArea directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132815</commentid>
    <comment_count>2</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-07-17 18:43:11 -0700</bug_when>
    <thetext>Landed in r46075</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32828</attachid>
            <date>2009-07-15 21:17:57 -0700</date>
            <delta_ts>2009-07-17 16:05:10 -0700</delta_ts>
            <desc>v1</desc>
            <filename>impl.v1.patch</filename>
            <type>text/plain</type>
            <size>18146</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTk2NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDIgQEAKKzIwMDktMDctMTUgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3RvcmFnZUFyZWEgc2hvdWxkIG9ubHkgY29udGFpbiBtZXRob2RzIHdlIGludGVuZCB0byBwcm94
eS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MTgx
CisKKyAgICAgICAgUmlnaHQgbm93LCBTdG9yYWdlQXJlYVN5bmMgdGFrZXMgaW4gYSBTdG9yYWdl
QXJlYSogYW5kIGNhbGxzIG1ldGhvZHMKKyAgICAgICAgbGlrZSBpbXBvcnRJdGVtLiAgUmVhbGx5
LCBTdG9yYWdlQXJlYVN5bmMgc2hvdWxkIGJlIG9wZXJhdGluZyBkaXJlY3RseQorICAgICAgICBv
biBTdG9yYWdlQXJlYUltcGwqIGFuZCB0aG9zZSBtZXRob2RzIHNob3VsZCBiZSByZW1vdmVkIGZy
b20gU3RvcmFnZUFyZWEKKyAgICAgICAgc2luY2UgU3RvcmFnZUFyZWFTeW5jIHNob3VsZCBuZXZl
ciBiZSBhdHRhY2hlZCB0byBhbnl0aGluZyBvdGhlciB0aGFuIGEKKyAgICAgICAgU3RvcmFnZUFy
ZWFJbXBsLgorCisgICAgICAgIFRoaXMgd2FzIHBvaW50ZWQgb3V0IGluIHRoZSByZXZpZXcgZm9y
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzA3Mgor
CisgICAgICAgIEFsc28gY2xlYW4gdXAgU3RvcmFnZU5hbWVzcGFjZUltcGwgdG8gb3BlcmF0ZSBk
aXJlY3RseSBvbgorICAgICAgICBTdG9yYWdlQXJlYUltcGwuICBBbHNvLCBnZXQgcmlkIG9mIHRo
ZSBmYWN0b3J5IGZvciBTdG9yYWdlQXJlYQorICAgICAgICBzaW5jZSBub3RoaW5nIHNob3VsZCBl
dmVyIGNyZWF0ZSBhIFN0b3JhZ2VBcmVhIGRpcmVjdGx5LgorCisgICAgICAgICogR05VbWFrZWZp
bGUuYW06CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYkNvcmVT
b3VyY2VzLmJrbDoKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVhLmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVhLmg6CisgICAgICAgIChXZWJDb3JlOjpTdG9y
YWdlQXJlYTo6flN0b3JhZ2VBcmVhKToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVhSW1w
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYUltcGw6OmNvcHkpOgorICAgICAg
ICAqIHN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmg6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdl
QXJlYVN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjpTdG9yYWdlQXJlYVN5bmMpOgor
ICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmg6CisgICAgICAgICogc3RvcmFnZS9T
dG9yYWdlTmFtZXNwYWNlSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTmFtZXNw
YWNlSW1wbDo6Y29weSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6
c3RvcmFnZUFyZWEpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaDoK
KwogMjAwOS0wNy0xNSAgQWRhbSBMYW5nbGV5ICA8YWdsQGdvb2dsZS5jb20+CiAKICAgICAgICAg
Tm8gcmV2aWV3OiByZXZlcnRpbmcgcHJldmlvdXMgY2hhbmdlLgpJbmRleDogV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lv
biA0NTk2NCkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTIx
MTksNyArMjExOSw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9zdG9yYWdlL0xv
Y2FsU3RvcmFnZVRocmVhZC5oIFwKIAlXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5jcHAgXAogCVdl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlLmggXAotCVdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYS5j
cHAgXAogCVdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYS5oIFwKIAlXZWJDb3JlL3N0b3JhZ2Uv
U3RvcmFnZUFyZWFJbXBsLmNwcCBcCiAJV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5o
IFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvV2ViQ29yZVNvdXJjZXMuYmtsCShyZXZpc2lvbiA0NTk2NCkKKysrIFdlYkNvcmUvV2ViQ29y
ZVNvdXJjZXMuYmtsCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIyLDcgKzEwMjIsNiBAQCBUaGlzIGZp
bGUgY29udGFpbnMgdGhlIGxpc3Qgb2YgZmlsZXMgbmVlCiAgICAgICAgIHN0b3JhZ2UvU1FMU3Rh
dGVtZW50LmNwcAogICAgICAgICBzdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmNwcAogICAgICAgICBz
dG9yYWdlL1N0b3JhZ2UuY3BwCi0gICAgICAgIHN0b3JhZ2UvU3RvcmFnZUFyZWEuY3BwCiAgICAg
ICAgIHN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAogICAgICAgICBzdG9yYWdlL1N0b3JhZ2VB
cmVhU3luYy5jcHAKICAgICAgICAgc3RvcmFnZS9TdG9yYWdlRXZlbnQuY3BwCkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDQ1OTY0KQorKysgV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMzAxMzEs
MTAgKzMwMTMxLDYgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0
aXZlUGF0aD0iLi5cc3RvcmFnZVxTdG9yYWdlQXJlYS5jcHAiDQotCQkJCT4NCi0JCQk8L0ZpbGU+
DQotCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXFN0b3JhZ2VBcmVhLmgi
DQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDQ1OTY0KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTg1NCw3ICs4NTQsNiBAQAog
CQk1MUE5MjY3RjBENTNGMDU3MDA2M0VDQzIgLyogT3JpZ2luVXNhZ2VSZWNvcmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQTkyNjdCMEQ1M0YwNTcw
MDYzRUNDMiAvKiBPcmlnaW5Vc2FnZVJlY29yZC5oICovOyB9OwogCQk1MUFBM0Y2RjBCRDVBQTlF
MDA4OTI5NzEgLyogUmVzb3VyY2VMb2FkZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFBM0Y2RTBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3Vy
Y2VMb2FkZXJNYWMubW0gKi87IH07CiAJCTUxQjI0MTdCMEQ5MzFGM0YwMEU4M0Y1QyAvKiBMZWdh
Y3lXZWJBcmNoaXZlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFCMjQxN0EwRDkzMUYzRjAwRTgzRjVDIC8qIExlZ2FjeVdlYkFyY2hpdmVNYWMu
bW0gKi87IH07Ci0JCTUxQkUzN0RGMERBRUUwMEUwMDEwODVGQyAvKiBTdG9yYWdlQXJlYS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUJFMzdERDBE
QUVFMDBFMDAxMDg1RkMgLyogU3RvcmFnZUFyZWEuY3BwICovOyB9OwogCQk1MUJFMzdFMDBEQUVF
MDBFMDAxMDg1RkMgLyogU3RvcmFnZUFyZWEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxQkUzN0RFMERBRUUwMEUwMDEwODVGQyAvKiBTdG9yYWdlQXJl
YS5oICovOyB9OwogCQk1MUMwQUEzOTBGMkFBMTBBMDAxNjQ4QzIgLyogQ2FjaGVkRnJhbWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQzBBQTM4MEYy
QUExMEEwMDE2NDhDMiAvKiBDYWNoZWRGcmFtZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxQzBBQTQxMEYyQUExNUUwMDE2NDhDMiAvKiBDYWNo
ZWRGcmFtZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUMwQUE0MDBGMkFBMTVFMDAxNjQ4QzIgLyogQ2FjaGVkRnJhbWUuY3BwICovOyB9OwpAQCAt
NTg0Myw3ICs1ODQyLDYgQEAKIAkJNTFBOTI2N0IwRDUzRjA1NzAwNjNFQ0MyIC8qIE9yaWdpblVz
YWdlUmVjb3JkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9yaWdpblVzYWdl
UmVjb3JkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQUEzRjZFMEJENUFBOUUw
MDg5Mjk3MSAvKiBSZXNvdXJjZUxvYWRlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFJlc291cmNlTG9hZGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MUIyNDE3QTBEOTMxRjNGMDBFODNGNUMgLyogTGVnYWN5V2ViQXJjaGl2ZU1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExlZ2FjeVdlYkFy
Y2hpdmVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxQkUzN0REMERBRUUw
MEUwMDEwODVGQyAvKiBTdG9yYWdlQXJlYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTdG9yYWdlQXJlYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxQkUzN0RFMERBRUUwMEUwMDEwODVGQyAvKiBTdG9yYWdlQXJlYS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlQXJlYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MUMwQUEzODBGMkFBMTBBMDAxNjQ4QzIgLyogQ2FjaGVkRnJhbWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTFDMEFBNDAwRjJBQTE1RTAwMTY0OEMyIC8qIENhY2hlZEZyYW1lLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZEZyYW1lLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk3NTYsNyArOTc1NCw2IEBACiAJCQkJNTFF
M0Y5QzUwREEwNTlEQzAwMjUwOTExIC8qIFN0b3JhZ2UuY3BwICovLAogCQkJCTUxRTNGOUM0MERB
MDU5REMwMDI1MDkxMSAvKiBTdG9yYWdlLmggKi8sCiAJCQkJNTFFM0Y5RDEwREEwNUQ3MTAwMjUw
OTExIC8qIFN0b3JhZ2UuaWRsICovLAotCQkJCTUxQkUzN0REMERBRUUwMEUwMDEwODVGQyAvKiBT
dG9yYWdlQXJlYS5jcHAgKi8sCiAJCQkJNTFCRTM3REUwREFFRTAwRTAwMTA4NUZDIC8qIFN0b3Jh
Z2VBcmVhLmggKi8sCiAJCQkJQzUxNjBFRTgxMDA0NTQzQTAwQTdDRUUyIC8qIFN0b3JhZ2VBcmVh
SW1wbC5jcHAgKi8sCiAJCQkJQzUxNjBFRTkxMDA0NTQzQTAwQTdDRUUyIC8qIFN0b3JhZ2VBcmVh
SW1wbC5oICovLApAQCAtMTg2NjgsNyArMTg2NjUsNiBAQAogCQkJCTkzRjE5QUU2MDgyNDVFNTkw
MDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzdG
QTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTFFM0Y5QzcwREEwNTlEQzAwMjUwOTExIC8qIFN0b3JhZ2UuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNTFCRTM3REYwREFFRTAwRTAwMTA4NUZDIC8qIFN0b3JhZ2VBcmVhLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUM1MTYwRUVBMTAwNDU0M0EwMEE3Q0VFMiAvKiBTdG9yYWdlQXJlYUlt
cGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzUxMDJFRDAwRkQ5RUY4QzAwRkFGRjA0IC8qIFN0
b3JhZ2VBcmVhU3luYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUUwQkFCQzBEQTU1NDcxMDBB
OUU0MTcgLyogU3RvcmFnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VBcmVhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZUFyZWEuY3BwCShyZXZpc2lvbiA0NTk2NCkKKysrIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
QXJlYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotIAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCi0KLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSNlcnJvciAi
Q2hyb21pdW0gc2hvdWxkIG5vdCBjb21waWxlIHRoaXMgZmlsZSBhbmQgaW5zdGVhZCBkZWZpbmUg
aXRzIG93biB2ZXJzaW9uIG9mIHRoZXNlIGZhY3RvcmllcyB0aGF0IG5hdmlnYXRlIHRoZSBtdWx0
aS1wcm9jZXNzIGJvdW5kcnkuIgotI2VuZGlmCi0KLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCi0K
LSNpbmNsdWRlICJTdG9yYWdlQXJlYUltcGwuaCIKLSNpbmNsdWRlICJTdG9yYWdlU3luY01hbmFn
ZXIuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXNzUmVmUHRyPFN0b3JhZ2VBcmVhPiBT
dG9yYWdlQXJlYTo6Y3JlYXRlKFN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlLCBTZWN1cml0eU9yaWdp
biogb3JpZ2luLCBQYXNzUmVmUHRyPFN0b3JhZ2VTeW5jTWFuYWdlcj4gc3luY01hbmFnZXIpCi17
Ci0gICAgcmV0dXJuIFN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRlKHN0b3JhZ2VUeXBlLCBvcmlnaW4s
IHN5bmNNYW5hZ2VyKTsKLX0KLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKERPTV9TVE9SQUdFKQot
CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWEuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWEuaAkocmV2aXNpb24gNDU5NjQpCisrKyBXZWJDb3JlL3N0
b3JhZ2UvU3RvcmFnZUFyZWEuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsOSArNDQsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgLy8gVGhpcyBpbnRlcmZhY2UgaXMgcmVxdWlyZWQgZm9yIENo
cm9taXVtIHNpbmNlIHRoZXNlIGFjdGlvbnMgbmVlZCB0byBiZSBwcm94aWVkIGJldHdlZW4gcHJv
Y2Vzc2VzLgogICAgIGNsYXNzIFN0b3JhZ2VBcmVhIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8
U3RvcmFnZUFyZWE+IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0
b3JhZ2VBcmVhPiBjcmVhdGUoU3RvcmFnZVR5cGUsIFNlY3VyaXR5T3JpZ2luKiwgUGFzc1JlZlB0
cjxTdG9yYWdlU3luY01hbmFnZXI+KTsKICAgICAgICAgdmlydHVhbCB+U3RvcmFnZUFyZWEoKSB7
IH0KLSAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhPiBjb3B5KFNlY3VyaXR5
T3JpZ2luKikgPSAwOwogCiAgICAgICAgIC8vIFRoZSBIVE1MNSBET00gU3RvcmFnZSBBUEkKICAg
ICAgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCA9IDA7CkBAIC01NSwxMyArNTMs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtKGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYywg
RnJhbWUqIHNvdXJjZUZyYW1lKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJdGVt
KGNvbnN0IFN0cmluZyYga2V5LCBGcmFtZSogc291cmNlRnJhbWUpID0gMDsKICAgICAgICAgdmly
dHVhbCB2b2lkIGNsZWFyKEZyYW1lKiBzb3VyY2VGcmFtZSkgPSAwOwotCiAgICAgICAgIHZpcnR1
YWwgYm9vbCBjb250YWlucyhjb25zdCBTdHJpbmcmIGtleSkgY29uc3QgPSAwOwotICAgICAgICB2
aXJ0dWFsIHZvaWQgY2xvc2UoKSA9IDA7Ci0KLSAgICAgICAgLy8gQ291bGQgYmUgY2FsbGVkIGZy
b20gYSBiYWNrZ3JvdW5kIHRocmVhZC4KLSAgICAgICAgdmlydHVhbCB2b2lkIGltcG9ydEl0ZW0o
Y29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpID0gMDsKLSAgICAgICAgdmly
dHVhbCBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKSA9IDA7CiAgICAgfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhSW1w
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAJ
KHJldmlzaW9uIDQ1OTY0KQorKysgV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQyLDExICs0Miw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUGFzc1JlZlB0cjxTdG9yYWdlQXJlYT4gU3RvcmFnZUFyZWFJbXBsOjpjcmVhdGUoU3RvcmFn
ZVR5cGUgc3RvcmFnZVR5cGUsIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIFBhc3NSZWZQdHI8U3Rv
cmFnZVN5bmNNYW5hZ2VyPiBzeW5jTWFuYWdlcikKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFN0b3JhZ2VBcmVhSW1wbChzdG9yYWdlVHlwZSwgb3JpZ2luLCBzeW5jTWFuYWdlcikpOwotfQot
CiBTdG9yYWdlQXJlYUltcGw6On5TdG9yYWdlQXJlYUltcGwoKQogewogfQpAQCAtNzEsNyArNjYs
NyBAQCBTdG9yYWdlQXJlYUltcGw6OlN0b3JhZ2VBcmVhSW1wbChTdG9yYWdlCiAgICAgfQogfQog
Ci1QYXNzUmVmUHRyPFN0b3JhZ2VBcmVhPiBTdG9yYWdlQXJlYUltcGw6OmNvcHkoU2VjdXJpdHlP
cmlnaW4qIG9yaWdpbikKK1Bhc3NSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPiBTdG9yYWdlQXJlYUlt
cGw6OmNvcHkoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKIHsKICAgICBBU1NFUlQoIW1faXNTaHV0
ZG93bik7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdG9yYWdlQXJlYUltcGwob3JpZ2luLCB0
aGlzKSk7CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCShyZXZpc2lvbiA0NTk2NCkK
KysrIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaAkod29ya2luZyBjb3B5KQpAQCAt
NDAsMjcgKzQwLDI2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFN0b3JhZ2VB
cmVhSW1wbCA6IHB1YmxpYyBTdG9yYWdlQXJlYSB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYT4gY3JlYXRlKFN0b3JhZ2VUeXBlLCBTZWN1cml0eU9y
aWdpbiosIFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2VyPik7CisgICAgICAgIFN0b3JhZ2VB
cmVhSW1wbChTdG9yYWdlVHlwZSwgU2VjdXJpdHlPcmlnaW4qLCBQYXNzUmVmUHRyPFN0b3JhZ2VT
eW5jTWFuYWdlcj4pOwogICAgICAgICB2aXJ0dWFsIH5TdG9yYWdlQXJlYUltcGwoKTsKLSAgICAg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhPiBjb3B5KFNlY3VyaXR5T3JpZ2luKik7
CiAKLSAgICAgICAgLy8gVGhlIEhUTUw1IERPTSBTdG9yYWdlIEFQSQorICAgICAgICAvLyBUaGUg
SFRNTDUgRE9NIFN0b3JhZ2UgQVBJIChhbmQgY29udGFpbnMpCiAgICAgICAgIHZpcnR1YWwgdW5z
aWduZWQgbGVuZ3RoKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgU3RyaW5nIGtleSh1bnNpZ25l
ZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIFN0cmlu
ZyBnZXRJdGVtKGNvbnN0IFN0cmluZyYga2V5KSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lk
IHNldEl0ZW0oY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlv
bkNvZGUmIGVjLCBGcmFtZSogc291cmNlRnJhbWUpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVt
b3ZlSXRlbShjb25zdCBTdHJpbmcmIGtleSwgRnJhbWUqIHNvdXJjZUZyYW1lKTsKICAgICAgICAg
dmlydHVhbCB2b2lkIGNsZWFyKEZyYW1lKiBzb3VyY2VGcmFtZSk7Ci0KICAgICAgICAgdmlydHVh
bCBib29sIGNvbnRhaW5zKGNvbnN0IFN0cmluZyYga2V5KSBjb25zdDsKLSAgICAgICAgdmlydHVh
bCB2b2lkIGNsb3NlKCk7CisKKyAgICAgICAgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYUltcGw+IGNv
cHkoU2VjdXJpdHlPcmlnaW4qKTsKKyAgICAgICAgdm9pZCBjbG9zZSgpOwogCiAgICAgICAgIC8v
IENvdWxkIGJlIGNhbGxlZCBmcm9tIGEgYmFja2dyb3VuZCB0aHJlYWQuCiAgICAgICAgIHZvaWQg
aW1wb3J0SXRlbShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAgICAg
ICAgIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpOwogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgU3RvcmFnZUFyZWFJbXBsKFN0b3JhZ2VUeXBlLCBTZWN1cml0eU9yaWdpbiosIFBhc3NS
ZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2VyPik7CiAgICAgICAgIFN0b3JhZ2VBcmVhSW1wbChTZWN1
cml0eU9yaWdpbiosIFN0b3JhZ2VBcmVhSW1wbCopOwogCiAgICAgICAgIHZvaWQgYmxvY2tVbnRp
bEltcG9ydENvbXBsZXRlKCkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFy
ZWFTeW5jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5j
LmNwcAkocmV2aXNpb24gNDU5NjQpCisrKyBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5j
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIlNRTGl0ZVN0YXRlbWVu
dC5oIgotI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCisjaW5jbHVkZSAiU3RvcmFnZUFyZWFJbXBs
LmgiCiAjaW5jbHVkZSAiU3RvcmFnZVN5bmNNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU3VkZGVuVGVy
bWluYXRpb24uaCIKIApAQCAtNDIsMTIgKzQyLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8v
IEluc3RlYWQsIHF1ZXVlIHVwIGEgYmF0Y2ggb2YgaXRlbXMgdG8gc3luYyBhbmQgYWN0dWFsbHkg
ZG8gdGhlIHN5bmMgYXQgdGhlIGZvbGxvd2luZyBpbnRlcnZhbC4KIHN0YXRpYyBjb25zdCBkb3Vi
bGUgU3RvcmFnZVN5bmNJbnRlcnZhbCA9IDEuMDsKIAotUGFzc1JlZlB0cjxTdG9yYWdlQXJlYVN5
bmM+IFN0b3JhZ2VBcmVhU3luYzo6Y3JlYXRlKFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2Vy
PiBzdG9yYWdlU3luY01hbmFnZXIsIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVh
KQorUGFzc1JlZlB0cjxTdG9yYWdlQXJlYVN5bmM+IFN0b3JhZ2VBcmVhU3luYzo6Y3JlYXRlKFBh
c3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2VyPiBzdG9yYWdlU3luY01hbmFnZXIsIFBhc3NSZWZQ
dHI8U3RvcmFnZUFyZWFJbXBsPiBzdG9yYWdlQXJlYSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFN0b3JhZ2VBcmVhU3luYyhzdG9yYWdlU3luY01hbmFnZXIsIHN0b3JhZ2VBcmVhKSk7CiB9
CiAKLVN0b3JhZ2VBcmVhU3luYzo6U3RvcmFnZUFyZWFTeW5jKFBhc3NSZWZQdHI8U3RvcmFnZVN5
bmNNYW5hZ2VyPiBzdG9yYWdlU3luY01hbmFnZXIsIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWE+IHN0
b3JhZ2VBcmVhKQorU3RvcmFnZUFyZWFTeW5jOjpTdG9yYWdlQXJlYVN5bmMoUGFzc1JlZlB0cjxT
dG9yYWdlU3luY01hbmFnZXI+IHN0b3JhZ2VTeW5jTWFuYWdlciwgUGFzc1JlZlB0cjxTdG9yYWdl
QXJlYUltcGw+IHN0b3JhZ2VBcmVhKQogICAgIDogbV9zeW5jVGltZXIodGhpcywgJlN0b3JhZ2VB
cmVhU3luYzo6c3luY1RpbWVyRmlyZWQpCiAgICAgLCBtX2l0ZW1zQ2xlYXJlZChmYWxzZSkKICAg
ICAsIG1fZmluYWxTeW5jU2NoZWR1bGVkKGZhbHNlKQpJbmRleDogV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VBcmVhU3luYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJl
YVN5bmMuaAkocmV2aXNpb24gNDU5NjQpCisrKyBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFT
eW5jLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDEyICszNywxMiBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgY2xhc3MgRnJhbWU7Ci0gICAgY2xhc3MgU3RvcmFnZUFyZWE7CisgICAgY2xh
c3MgU3RvcmFnZUFyZWFJbXBsOwogICAgIGNsYXNzIFN0b3JhZ2VTeW5jTWFuYWdlcjsKICAgICAK
ICAgICBjbGFzcyBTdG9yYWdlQXJlYVN5bmMgOiBwdWJsaWMgUmVmQ291bnRlZDxTdG9yYWdlQXJl
YVN5bmM+IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0b3JhZ2VB
cmVhU3luYz4gY3JlYXRlKFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2VyPiBzdG9yYWdlU3lu
Y01hbmFnZXIsIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVhKTsKKyAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFTeW5jPiBjcmVhdGUoUGFzc1JlZlB0cjxTdG9y
YWdlU3luY01hbmFnZXI+IHN0b3JhZ2VTeW5jTWFuYWdlciwgUGFzc1JlZlB0cjxTdG9yYWdlQXJl
YUltcGw+IHN0b3JhZ2VBcmVhKTsKICAgICAgICAgflN0b3JhZ2VBcmVhU3luYygpOwogCiAgICAg
ICAgIHZvaWQgc2NoZWR1bGVGaW5hbFN5bmMoKTsKQEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2b2lkIHNjaGVkdWxlQ2xlYXIoKTsKICAgICAgICAgCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgU3RvcmFnZUFyZWFTeW5jKFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNN
YW5hZ2VyPiBzdG9yYWdlU3luY01hbmFnZXIsIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3Jh
Z2VBcmVhKTsKKyAgICAgICAgU3RvcmFnZUFyZWFTeW5jKFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNN
YW5hZ2VyPiBzdG9yYWdlU3luY01hbmFnZXIsIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPiBz
dG9yYWdlQXJlYSk7CiAKICAgICAgICAgdm9pZCBkaXNwYXRjaFN0b3JhZ2VFdmVudChjb25zdCBT
dHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1
ZSwgRnJhbWUqIHNvdXJjZUZyYW1lKTsKIApAQCAtNjIsNyArNjIsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIAogICAgICAgICBib29sIG1fZmluYWxTeW5jU2NoZWR1bGVkOwogCi0g
ICAgICAgIFJlZlB0cjxTdG9yYWdlQXJlYT4gbV9zdG9yYWdlQXJlYTsKKyAgICAgICAgUmVmUHRy
PFN0b3JhZ2VBcmVhSW1wbD4gbV9zdG9yYWdlQXJlYTsKICAgICAgICAgUmVmUHRyPFN0b3JhZ2VT
eW5jTWFuYWdlcj4gbV9zeW5jTWFuYWdlcjsKIAogICAgICAgICAvLyBUaGUgZGF0YWJhc2UgaGFu
ZGxlIHdpbGwgb25seSBldmVyIGJlIG9wZW5lZCBhbmQgdXNlZCBvbiB0aGUgYmFja2dyb3VuZCB0
aHJlYWQuCkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAJKHJl
dmlzaW9uIDQ1OTY0KQorKysgV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW5IYXNoLmgiCiAjaW5jbHVkZSAiU3RyaW5nSGFzaC5oIgotI2luY2x1ZGUgIlN0b3JhZ2VB
cmVhLmgiCisjaW5jbHVkZSAiU3RvcmFnZUFyZWFJbXBsLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVN5
bmNNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCkBAIC05Myw3ICs5
Myw3IEBAIFBhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWUKIAogICAgIFN0
b3JhZ2VBcmVhTWFwOjppdGVyYXRvciBlbmQgPSBtX3N0b3JhZ2VBcmVhTWFwLmVuZCgpOwogICAg
IGZvciAoU3RvcmFnZUFyZWFNYXA6Oml0ZXJhdG9yIGkgPSBtX3N0b3JhZ2VBcmVhTWFwLmJlZ2lu
KCk7IGkgIT0gZW5kOyArK2kpIHsKLSAgICAgICAgUmVmUHRyPFN0b3JhZ2VBcmVhPiBhcmVhQ29w
eSA9IGktPnNlY29uZC0+Y29weShpLT5maXJzdC5nZXQoKSk7CisgICAgICAgIFJlZlB0cjxTdG9y
YWdlQXJlYUltcGw+IGFyZWFDb3B5ID0gaS0+c2Vjb25kLT5jb3B5KGktPmZpcnN0LmdldCgpKTsK
ICAgICAgICAgbmV3TmFtZXNwYWNlLT5tX3N0b3JhZ2VBcmVhTWFwLnNldChpLT5maXJzdCwgYXJl
YUNvcHkucmVsZWFzZSgpKTsKICAgICB9CiAKQEAgLTEwNSwxMSArMTA1LDExIEBAIFBhc3NSZWZQ
dHI8U3RvcmFnZUFyZWE+IFN0b3JhZ2VOYW1lc3BhY2UKICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogICAgIEFTU0VSVCghbV9pc1NodXRkb3duKTsKIAotICAgIFJlZlB0cjxTdG9yYWdlQXJl
YT4gc3RvcmFnZUFyZWE7CisgICAgUmVmUHRyPFN0b3JhZ2VBcmVhSW1wbD4gc3RvcmFnZUFyZWE7
CiAgICAgaWYgKHN0b3JhZ2VBcmVhID0gbV9zdG9yYWdlQXJlYU1hcC5nZXQob3JpZ2luKSkKICAg
ICAgICAgcmV0dXJuIHN0b3JhZ2VBcmVhLnJlbGVhc2UoKTsKIAotICAgIHN0b3JhZ2VBcmVhID0g
U3RvcmFnZUFyZWE6OmNyZWF0ZShtX3N0b3JhZ2VUeXBlLCBvcmlnaW4sIG1fc3luY01hbmFnZXIp
OworICAgIHN0b3JhZ2VBcmVhID0gbmV3IFN0b3JhZ2VBcmVhSW1wbChtX3N0b3JhZ2VUeXBlLCBv
cmlnaW4sIG1fc3luY01hbmFnZXIpOwogICAgIG1fc3RvcmFnZUFyZWFNYXAuc2V0KG9yaWdpbiwg
c3RvcmFnZUFyZWEpOwogICAgIHJldHVybiBzdG9yYWdlQXJlYS5yZWxlYXNlKCk7CiB9CkluZGV4
OiBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAkocmV2aXNpb24gNDU5NjQpCisr
KyBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAkod29ya2luZyBjb3B5KQpA
QCAtMzgsNiArMzgsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyAgICBjbGFzcyBTdG9y
YWdlQXJlYUltcGw7CisKICAgICBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlSW1wbCA6IHB1YmxpYyBT
dG9yYWdlTmFtZXNwYWNlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFN0b3JhZ2VOYW1lc3BhY2U+IGxvY2FsU3RvcmFnZU5hbWVzcGFjZShjb25zdCBTdHJpbmcmIHBh
dGgpOwpAQCAtNTEsNyArNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHJpdmF0ZToK
ICAgICAgICAgU3RvcmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGUsIGNvbnN0IFN0cmluZyYg
cGF0aCk7CiAKLSAgICAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4s
IFJlZlB0cjxTdG9yYWdlQXJlYT4sIFNlY3VyaXR5T3JpZ2luSGFzaD4gU3RvcmFnZUFyZWFNYXA7
CisgICAgICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBSZWZQdHI8
U3RvcmFnZUFyZWFJbXBsPiwgU2VjdXJpdHlPcmlnaW5IYXNoPiBTdG9yYWdlQXJlYU1hcDsKICAg
ICAgICAgU3RvcmFnZUFyZWFNYXAgbV9zdG9yYWdlQXJlYU1hcDsKIAogICAgICAgICBTdG9yYWdl
VHlwZSBtX3N0b3JhZ2VUeXBlOwo=
</data>
<flag name="review"
          id="17188"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>