<?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>132812</bug_id>
          
          <creation_ts>2014-05-12 00:42:01 -0700</creation_ts>
          <short_desc>Make a few icon database improvements</short_desc>
          <delta_ts>2014-05-13 07:45:16 -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>WebKit Misc.</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gordon_sheridan</cc>
    
    <cc>japhet</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1008498</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-12 00:42:01 -0700</bug_when>
    <thetext>Make a few icon database improvements</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008500</commentid>
    <comment_count>1</comment_count>
      <attachid>231276</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-12 00:52:30 -0700</bug_when>
    <thetext>Created attachment 231276
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008502</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-12 00:54:04 -0700</bug_when>
    <thetext>Attachment 231276 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/WebIconDatabase.cpp:312:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/WebIconDatabase.cpp:312:  Missing space before {  [whitespace/braces] [5]
Total errors found: 2 in 10 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>1008503</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-12 00:54:12 -0700</bug_when>
    <thetext>This takes care of a mistake I noticed after reviewing bug 132805 and quite a bit of other tidying I noticed while fixing that mistake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008634</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-12 10:11:15 -0700</bug_when>
    <thetext>These are mostly minor refactoring and removing unused things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008646</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-12 10:38:06 -0700</bug_when>
    <thetext>Brady said he’d likely review this later today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008658</commentid>
    <comment_count>6</comment_count>
      <attachid>231276</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-05-12 11:05:54 -0700</bug_when>
    <thetext>Comment on attachment 231276
Patch

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

&gt; ERROR: Source/WebKit2/UIProcess/WebIconDatabase.cpp:312:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Stylebot is wrong about this, and the bugzilla has been filed.  But...

&gt; ERROR: Source/WebKit2/UIProcess/WebIconDatabase.cpp:312:  Missing space before {  [whitespace/braces] [5]
Stylebot is right about this.  For c++ lambas we put a space between the close paren and the open bracket.

&gt; Source/WebKit2/UIProcess/WebIconDatabase.cpp:311
&gt; +    return API::Data::createWithoutCopying(reinterpret_cast&lt;const unsigned char*&gt;(sharedBuffer-&gt;data()), sharedBuffer-&gt;size(),

I didn&apos;t know about this - brilliant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008938</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-13 07:45:16 -0700</bug_when>
    <thetext>Committed r168680: &lt;http://trac.webkit.org/changeset/168680&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231276</attachid>
            <date>2014-05-12 00:52:30 -0700</date>
            <delta_ts>2014-05-12 11:05:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132812-20140512005207.patch</filename>
            <type>text/plain</type>
            <size>27534</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4NjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGIwYjM0ZjhkNTJkZTIx
N2YxYWYyMDcyNzExMDdhYzE1OTU5Yzk4Ni4uOGIxZDkxZjAwNzc0ZDZkN2FhMzhkNmU5MjI4MWNh
M2Q0YzE4MDNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA1LTEyICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGEgZmV3IGljb24gZGF0
YWJhc2UgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzI4MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBFeHBvcnQgbW9yZSBJY29uRGF0YWJhc2UgZnVu
Y3Rpb25zLCBzaW5jZSB0aGV5IGFyZSBub3cgY2FsbGVkCisgICAgICAgIGJ5IFdlYktpdDIgdGhy
b3VnaCBwb2ludGVycyB0byBhIGNsYXNzIG1hcmtlZCBmaW5hbC4KKworICAgICAgICAqIGxvYWRl
ci9pY29uL0ljb25EYXRhYmFzZS5jcHA6IFJlbW92ZWQgdW5uZWVkZWQgaW5jbHVkZXMuIFVzZSBv
dmVycmlkZSBmb3IKKyAgICAgICAgdmlydHVhbCBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBsb2Fk
ZXIvaWNvbi9JY29uRGF0YWJhc2UuaDogUmVtb3ZlZCB1bm5lZWRlZCBpbmNsdWRlcy4gTWFya2Vk
IHRoZSBjbGFzcyBmaW5hbC4KKyAgICAgICAgVXNlIG92ZXJyaWRlIGZvciB2aXJ0dWFsIGZ1bmN0
aW9ucy4gVXNlIGEgcHVibGljIGNvbnN0cnVjdG9yIGluc3RlYWQgb2YgYSBjcmVhdGUKKyAgICAg
ICAgZnVuY3Rpb24uCisKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2VCYXNlLmg6
IFJlbW92ZWQgdW5uZWVkZWQgaW5jbHVkZXMuCisKIDIwMTQtMDUtMTEgIEJlbmphbWluIFBvdWxh
aW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIERvIG5vdCBjcmVhdGUgYSB0ZW1w
b3Jhcnkgc3RyaW5nIHRvIGFwcGVuZCB0aGUgU1ZHTGVuZ3RoJ3MgdW5pdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDBmYzIyMDQyOGFhYWZlNzI2NzE2ODE2OGQyZDBjNmQ5ZmZiYjUwNjQuLjllNDcxMWEzZjQ2ZTU2
MjgwMTNjZGY0OTgyZGQ0OTU3NmRkZTJjODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAor
MjAxNC0wNS0xMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFr
ZSBhIGZldyBpY29uIGRhdGFiYXNlIGltcHJvdmVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyODEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tJY29uRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV0tJY29uRGF0YWJhc2VDb3B5SWNvbkRhdGFGb3JQYWdlVVJMKTog
TW92ZWQgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzCisgICAgICAgIG91dCBvZiB0
aGUgYmluZGluZ3MgaW50byB0aGUgV2ViSWNvbkRhdGFiYXNlIGNsYXNzLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLSWNvbkRhdGFiYXNlLmg6IEZpeGVkIGFyZ3VtZW50IG5hbWVzIHRo
YXQgd2VyZSBpbmNvbnNpc3RlbnQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSWNvbkRhdGFi
YXNlLmNwcDogUmVtb3ZlZCB1bm5lZWRlZCBpbmNsdWRlcy4KKyAgICAgICAgKFdlYktpdDo6V2Vi
SWNvbkRhdGFiYXNlOjpjcmVhdGUpOiBQYXNzIGEgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBwb2lu
dGVyLgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uRGF0YWJhc2U6OldlYkljb25EYXRhYmFzZSk6
IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisgICAgICAgIChXZWJLaXQ6
OldlYkljb25EYXRhYmFzZTo6aW52YWxpZGF0ZSk6IFVzZSBudWxscHRyLgorICAgICAgICAoV2Vi
S2l0OjpXZWJJY29uRGF0YWJhc2U6OnNldERhdGFiYXNlUGF0aCk6IFVzZSBtYWtlX3VuaXF1ZS4K
KyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkRhdGFiYXNlOjpzZXRJY29uRGF0YUZvckljb25VUkwp
OiBSZW1vdmVkIHVubmVlZGVkIGxvY2FsIHZhcmlhYmxlLgorICAgICAgICAoV2ViS2l0OjpXZWJJ
Y29uRGF0YWJhc2U6OmltYWdlRm9yUGFnZVVSTCk6IFVzZSBudWxscHRyLgorICAgICAgICAoV2Vi
S2l0OjpXZWJJY29uRGF0YWJhc2U6Om5hdGl2ZUltYWdlRm9yUGFnZVVSTCk6IERpdHRvLgorICAg
ICAgICAoV2ViS2l0OjpXZWJJY29uRGF0YWJhc2U6OmRpZEZpbmlzaFVSTEltcG9ydCk6IFVzZSBh
IG1vZGVybiBmb3IgbG9vcC4KKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkRhdGFiYXNlOjppY29u
RGF0YUZvclBhZ2VVUkwpOiBBZGRlZC4gTW92ZWQgdGhpcyBoZXJlIGZyb20KKyAgICAgICAgV0tJ
Y29uRGF0YWJhc2UuY3BwLCBidXQgYWxzbyBjaGFuZ2VkIHRvIHVzZSBjcmVhdGVXaXRob3V0Q29w
eWluZyB0byBhdm9pZCBtYWtpbmcKKyAgICAgICAgYW5vdGhlciBjb3B5IG9mIHRoZSBkYXRhIGZv
ciBlYWNoIGljb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmg6IFJl
bW92ZWQgdW5uZWVkZWQgaW5jbHVkZXMuIERlcml2ZSBmcm9tCisgICAgICAgIEljb25EYXRhYmFz
ZUNsaWVudCBwcml2YXRlbHkuIFVzZSBudWxscHRyLiBBZGRlZCBpY29uRGF0YUZvclBhZ2VVUkwg
bWVtYmVyCisgICAgICAgIGZ1bmN0aW9uLiBVc2UgYSByZWZlcmVuY2UgZm9yIHRoZSBjb25zdHJ1
Y3RvciBhcmd1bWVudC4gVXNlIG92ZXJyaWRlIGZvcgorICAgICAgICB2aXJ0dWFsIGZ1bmN0aW9u
cy4gVXNlIHVuaXF1ZV9wdHIgaW5zdGVhZCBvZiBPd25QdHIuCisKIDIwMTQtMDUtMTEgIEdvcmRv
biBTaGVyaWRhbiAgPGdvcmRvbl9zaGVyaWRhbkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3Nl
IGEgZnVuY3Rpb24gdG8gY29weSBmYXZpY29uIGRhdGEgd2l0aG91dCBpbWFnZSBjb252ZXJzaW9u
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA4ZDNkZTdlZjE2ZjAwOTU5MjYyYTA0YzM4ODA2OTM2
N2I1ODQzMWZjLi5lYzhiYWE3ZjY4NTc5YjY4M2Y0ZWY1Y2FhMDBiODU3NTJkY2ZhNThlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjk4NiwxNiArMjk4NiwyMyBAQCBfX1pON1dlYkNvcmUxMklj
b25EYXRhYmFzZTIwYWxsb3dEYXRhYmFzZUNsZWFudXBFdgogX19aTjdXZWJDb3JlMTJJY29uRGF0
YWJhc2UyMGRlbGF5RGF0YWJhc2VDbGVhbnVwRXYKIF9fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNl
MjByZXRhaW5JY29uRm9yUGFnZVVSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTEySWNv
bkRhdGFiYXNlMjByZXRhaW5lZFBhZ2VVUkxDb3VudEV2CitfX1pON1dlYkNvcmUxMkljb25EYXRh
YmFzZTIwc2V0SWNvblVSTEZvclBhZ2VVUkxFUktOM1dURjZTdHJpbmdFUzRfCiBfX1pON1dlYkNv
cmUxMkljb25EYXRhYmFzZTIxcmVsZWFzZUljb25Gb3JQYWdlVVJMRVJLTjNXVEY2U3RyaW5nRQor
X19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2UyMXNldEljb25EYXRhRm9ySWNvblVSTEVOM1dURjEw
UGFzc1JlZlB0cklOU18xMlNoYXJlZEJ1ZmZlckVFRVJLTlMxXzZTdHJpbmdFCiBfX1pON1dlYkNv
cmUxMkljb25EYXRhYmFzZTIzZGVmYXVsdERhdGFiYXNlRmlsZW5hbWVFdgogX19aTjdXZWJDb3Jl
MTJJY29uRGF0YWJhc2UyM2ljb25SZWNvcmRDb3VudFdpdGhEYXRhRXYKIF9fWk43V2ViQ29yZTEy
SWNvbkRhdGFiYXNlMjVzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkRWIKK19fWk43V2ViQ29yZTEy
SWNvbkRhdGFiYXNlMjVzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMRVJLTjNXVEY2U3RyaW5nRVJL
TlNfN0ludFNpemVFCiBfX1pON1dlYkNvcmUxMkljb25EYXRhYmFzZTI3Y2hlY2tJbnRlZ3JpdHlC
ZWZvcmVPcGVuaW5nRXYKK19fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlMjhzeW5jaHJvbm91c0lj
b25VUkxGb3JQYWdlVVJMRVJLTjNXVEY2U3RyaW5nRQorX19aTjdXZWJDb3JlMTJJY29uRGF0YWJh
c2UzM3N5bmNocm9ub3VzTG9hZERlY2lzaW9uRm9ySWNvblVSTEVSS04zV1RGNlN0cmluZ0VQTlNf
MTREb2N1bWVudExvYWRlckUKK19fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlNG9wZW5FUktOM1dU
RjZTdHJpbmdFUzRfCiBfX1pON1dlYkNvcmUxMkljb25EYXRhYmFzZTVjbG9zZUV2CiBfX1pON1dl
YkNvcmUxMkljb25EYXRhYmFzZTlzZXRDbGllbnRFUE5TXzE4SWNvbkRhdGFiYXNlQ2xpZW50RQog
X19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2VDMUV2CiBfX1pOSzdXZWJDb3JlMTJJY29uRGF0YWJh
c2UxMmRhdGFiYXNlUGF0aEV2CiBfX1pOSzdXZWJDb3JlMTJJY29uRGF0YWJhc2UyNHNob3VsZFN0
b3BUaHJlYWRBY3Rpdml0eUV2CitfX1pOSzdXZWJDb3JlMTJJY29uRGF0YWJhc2U2aXNPcGVuRXYK
IF9fWk5LN1dlYkNvcmUxMkljb25EYXRhYmFzZTlpc0VuYWJsZWRFdgogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCmluZGV4IDI4YzEwMTRmNzQ3
ZjIzNDBiMTg1OGYyMDhjZjhiMmFhYjcxNDRkNjAuLjJiZmVkZjVjZTUxN2Y2MTJhN2FlYjA5MWM2
ZjRiOWJmZWI4ZThkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0lj
b25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFi
YXNlLmNwcApAQCAtMzQsMTYgKzM0LDEzIEBACiAjaW5jbHVkZSAiSWNvbkRhdGFiYXNlQ2xpZW50
LmgiCiAjaW5jbHVkZSAiSWNvblJlY29yZC5oIgogI2luY2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVk
ZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTUUxpdGVTdGF0
ZW1lbnQuaCIKICNpbmNsdWRlICJTUUxpdGVUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgIlN1ZGRl
blRlcm1pbmF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0F1dG9kcmFpbmVkUG9vbC5oPgotI2luY2x1
ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5j
bHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAogLy8gRm9yIG1ldGhvZHMgdGhhdCBhcmUgbWVhbnQgdG8gc3VwcG9ydCBBUEkgZnJvbSB0aGUg
bWFpbiB0aHJlYWQgLSBzaG91bGQgbm90IGJlIGNhbGxlZCBpbnRlcm5hbGx5CiAjZGVmaW5lIEFT
U0VSVF9OT1RfU1lOQ19USFJFQUQoKSBBU1NFUlQoIW1fc3luY1RocmVhZFJ1bm5pbmcgfHwgIUlT
X0lDT05fU1lOQ19USFJFQUQoKSkKQEAgLTkwLDE5ICs4NywxOSBAQCBzdGF0aWMgU3RyaW5nIHVy
bEZvckxvZ2dpbmcoY29uc3QgU3RyaW5nJiB1cmwpCiB9CiAjZW5kaWYKIAotY2xhc3MgRGVmYXVs
dEljb25EYXRhYmFzZUNsaWVudCA6IHB1YmxpYyBJY29uRGF0YWJhc2VDbGllbnQgeworY2xhc3Mg
RGVmYXVsdEljb25EYXRhYmFzZUNsaWVudCBmaW5hbCA6IHB1YmxpYyBJY29uRGF0YWJhc2VDbGll
bnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHZpcnR1YWwg
dm9pZCBkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKSB7IH0gCi0gICAg
dmlydHVhbCB2b2lkIGRpZEltcG9ydEljb25EYXRhRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5n
JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZUFsbEljb25zKCkgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIGRpZEZpbmlzaFVSTEltcG9ydCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRJ
bXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKSBvdmVycmlkZSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGlkSW1wb3J0SWNvbkRhdGFGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpIG92
ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VJY29uRm9yUGFnZVVSTChjb25z
dCBTdHJpbmcmKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlQWxsSWNv
bnMoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoVVJMSW1wb3J0KCkg
b3ZlcnJpZGUgeyB9CiB9OwogCiBzdGF0aWMgSWNvbkRhdGFiYXNlQ2xpZW50KiBkZWZhdWx0Q2xp
ZW50KCkgCiB7Ci0gICAgc3RhdGljIEljb25EYXRhYmFzZUNsaWVudCogZGVmYXVsdENsaWVudCA9
IG5ldyBEZWZhdWx0SWNvbkRhdGFiYXNlQ2xpZW50KCk7CisgICAgc3RhdGljIEljb25EYXRhYmFz
ZUNsaWVudCogZGVmYXVsdENsaWVudCA9IG5ldyBEZWZhdWx0SWNvbkRhdGFiYXNlQ2xpZW50Owog
ICAgIHJldHVybiBkZWZhdWx0Q2xpZW50OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25EYXRhYmFzZS5oCmluZGV4IDFkM2NmN2RmODFkNDRiODgyNTE2YmM4Y2Q1OWY1NDA1NWI1
ODkyNDYuLjU2OWJmN2I0ZjBmYThhMDJiNTJkM2UzNmVlMjc1NjlmNmRlZDMzYjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oCkBAIC0yOCw5OSArMjgsODQgQEAK
ICNkZWZpbmUgSWNvbkRhdGFiYXNlX2gKIAogI2luY2x1ZGUgIkljb25EYXRhYmFzZUJhc2UuaCIK
KworI2lmIEVOQUJMRShJQ09OREFUQUJBU0UpCisjaW5jbHVkZSAiU1FMaXRlRGF0YWJhc2UuaCIK
ICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLSNpZiBFTkFCTEUoSUNPTkRBVEFCQVNFKQot
I2luY2x1ZGUgIlNRTGl0ZURhdGFiYXNlLmgiCi0jaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgot
I2VuZGlmIC8vIEVOQUJMRShJQ09OREFUQUJBU0UpCisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNv
cmUgeyAKIAotY2xhc3MgRG9jdW1lbnRMb2FkZXI7Ci1jbGFzcyBJbWFnZTsKLWNsYXNzIEludFNp
emU7Ci1jbGFzcyBJY29uRGF0YWJhc2VDbGllbnQ7Ci1jbGFzcyBJY29uUmVjb3JkOwotY2xhc3Mg
SWNvblNuYXBzaG90OwotY2xhc3MgVVJMOwotY2xhc3MgUGFnZVVSTFJlY29yZDsKLWNsYXNzIFBh
Z2VVUkxTbmFwc2hvdDsKLWNsYXNzIFNoYXJlZEJ1ZmZlcjsKLWNsYXNzIFN1ZGRlblRlcm1pbmF0
aW9uRGlzYWJsZXI7Ci0KLSNpZiBFTkFCTEUoSUNPTkRBVEFCQVNFKQotY2xhc3MgU1FMVHJhbnNh
Y3Rpb247Ci0jZW5kaWYKLQogI2lmICFFTkFCTEUoSUNPTkRBVEFCQVNFKQotLy8gRm9yIGJ1aWxk
cyB3aXRoIEljb25EYXRhYmFzZSBkaXNhYmxlZCwgdGhleSdsbCBqdXN0IHVzZSBhIGRlZmF1bHQg
ZGVyaXZhdGlvbiBvZiBJY29uRGF0YWJhc2VCYXNlLiBXaGljaCBkb2VzIG5vdGhpbmcuCi1jbGFz
cyBJY29uRGF0YWJhc2UgOiBwdWJsaWMgSWNvbkRhdGFiYXNlQmFzZSB7CisKKy8vIER1bW15IHZl
cnNpb24gb2YgSWNvbkRhdGFiYXNlIHRoYXQgZG9lcyBub3RoaW5nLgorY2xhc3MgSWNvbkRhdGFi
YXNlIGZpbmFsIDogcHVibGljIEljb25EYXRhYmFzZUJhc2UgeworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEljb25EYXRhYmFzZT4g
Y3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IEljb25EYXRhYmFzZSk7IH0KICAgICBzdGF0
aWMgdm9pZCBkZWxheURhdGFiYXNlQ2xlYW51cCgpIHsgfQogICAgIHN0YXRpYyB2b2lkIGFsbG93
RGF0YWJhc2VDbGVhbnVwKCkgeyB9CiAgICAgc3RhdGljIHZvaWQgY2hlY2tJbnRlZ3JpdHlCZWZv
cmVPcGVuaW5nKCkgeyB9CiAgICAgc3RhdGljIFN0cmluZyBkZWZhdWx0RGF0YWJhc2VGaWxlbmFt
ZSgpIHsgcmV0dXJuICJXZWJwYWdlSWNvbnMuZGIiOyB9CiB9OwotI2Vsc2UgCiAKLWNsYXNzIElj
b25EYXRhYmFzZSA6IHB1YmxpYyBJY29uRGF0YWJhc2VCYXNlIHsKKyNlbHNlCisKK2NsYXNzIElj
b25SZWNvcmQ7CitjbGFzcyBJY29uU25hcHNob3Q7CitjbGFzcyBQYWdlVVJMUmVjb3JkOworY2xh
c3MgUGFnZVVSTFNuYXBzaG90OworY2xhc3MgU3VkZGVuVGVybWluYXRpb25EaXNhYmxlcjsKKwor
Y2xhc3MgSWNvbkRhdGFiYXNlIGZpbmFsIDogcHVibGljIEljb25EYXRhYmFzZUJhc2UgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIAogLy8gKioqIE1haW4gVGhyZWFkIE9ubHkg
KioqCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SWNvbkRhdGFiYXNlPiBjcmVhdGUo
KSB7IHJldHVybiBhZG9wdFB0cihuZXcgSWNvbkRhdGFiYXNlKTsgfQorICAgIEljb25EYXRhYmFz
ZSgpOwogICAgIH5JY29uRGF0YWJhc2UoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQo
SWNvbkRhdGFiYXNlQ2xpZW50Kik7CisgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChJY29uRGF0
YWJhc2VDbGllbnQqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBvcGVuKGNvbnN0IFN0
cmluZyYgZGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lKTsKLSAgICB2aXJ0dWFsIHZv
aWQgY2xvc2UoKTsKKyAgICB2aXJ0dWFsIGJvb2wgb3Blbihjb25zdCBTdHJpbmcmIGRpcmVjdG9y
eSwgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNs
b3NlKCkgb3ZlcnJpZGU7CiAgICAgICAgICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQWxs
SWNvbnMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQWxsSWNvbnMoKSBvdmVycmlkZTsKIAog
ICAgIHZvaWQgcmVhZEljb25Gb3JQYWdlVVJMRnJvbURpc2soY29uc3QgU3RyaW5nJik7CiAKLSAg
ICB2aXJ0dWFsIEltYWdlKiBkZWZhdWx0SWNvbihjb25zdCBJbnRTaXplJik7CisgICAgdmlydHVh
bCBJbWFnZSogZGVmYXVsdEljb24oY29uc3QgSW50U2l6ZSYpIG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCB2b2lkIHJldGFpbkljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpOwotICAgIHZpcnR1
YWwgdm9pZCByZWxlYXNlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7Ci0gICAgdmlydHVh
bCB2b2lkIHNldEljb25EYXRhRm9ySWNvblVSTChQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0
YSwgY29uc3QgU3RyaW5nJik7Ci0gICAgdmlydHVhbCB2b2lkIHNldEljb25VUkxGb3JQYWdlVVJM
KGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiBwYWdlVVJMKTsKKyAgICB2aXJ0
dWFsIHZvaWQgcmV0YWluSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHJlbGVhc2VJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SWNvbkRhdGFGb3JJY29uVVJMKFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiBkYXRhLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBT
dHJpbmcmIHBhZ2VVUkwpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBJbWFnZSogc3luY2hyb25v
dXNJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRTaXplJik7Ci0gICAgdmly
dHVhbCBQYXNzTmF0aXZlSW1hZ2VQdHIgc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChj
b25zdCBTdHJpbmcmIHBhZ2VVUkxPcmlnaW5hbCwgY29uc3QgSW50U2l6ZSYpOwotICAgIHZpcnR1
YWwgU3RyaW5nIHN5bmNocm9ub3VzSWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7Ci0g
ICAgdmlydHVhbCBib29sIHN5bmNocm9ub3VzSWNvbkRhdGFLbm93bkZvckljb25VUkwoY29uc3Qg
U3RyaW5nJik7Ci0gICAgdmlydHVhbCBJY29uTG9hZERlY2lzaW9uIHN5bmNocm9ub3VzTG9hZERl
Y2lzaW9uRm9ySWNvblVSTChjb25zdCBTdHJpbmcmLCBEb2N1bWVudExvYWRlciopOyAgICAKLSAg
ICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlZChib29sKTsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNFbmFibGVkKCkgY29uc3Q7Ci0gICAgCi0gICAgdmlydHVhbCB2b2lkIHNldFByaXZhdGVCcm93
c2luZ0VuYWJsZWQoYm9vbCBmbGFnKTsKKyAgICB2aXJ0dWFsIEltYWdlKiBzeW5jaHJvbm91c0lj
b25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYsIGNvbnN0IEludFNpemUmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFBhc3NOYXRpdmVJbWFnZVB0ciBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdl
VVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTE9yaWdpbmFsLCBjb25zdCBJbnRTaXplJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBTdHJpbmcgc3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTChjb25z
dCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc3luY2hyb25vdXNJY29uRGF0
YUtub3duRm9ySWNvblVSTChjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIElj
b25Mb2FkRGVjaXNpb24gc3luY2hyb25vdXNMb2FkRGVjaXNpb25Gb3JJY29uVVJMKGNvbnN0IFN0
cmluZyYsIERvY3VtZW50TG9hZGVyKikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
RW5hYmxlZChib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKCkgY29u
c3Qgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZChib29sIGZsYWcpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVk
KCkgY29uc3Q7Ci0gICAgCisKICAgICBzdGF0aWMgdm9pZCBkZWxheURhdGFiYXNlQ2xlYW51cCgp
OwogICAgIHN0YXRpYyB2b2lkIGFsbG93RGF0YWJhc2VDbGVhbnVwKCk7CiAgICAgc3RhdGljIHZv
aWQgY2hlY2tJbnRlZ3JpdHlCZWZvcmVPcGVuaW5nKCk7Ci0gICAgICAgIAorCiAgICAgLy8gU3Vw
cG9ydCBmb3IgV2ViQ29yZVN0YXRpc3RpY3MgaW4gV2ViS2l0Ci0gICAgdmlydHVhbCBzaXplX3Qg
cGFnZVVSTE1hcHBpbmdDb3VudCgpOwotICAgIHZpcnR1YWwgc2l6ZV90IHJldGFpbmVkUGFnZVVS
TENvdW50KCk7Ci0gICAgdmlydHVhbCBzaXplX3QgaWNvblJlY29yZENvdW50KCk7Ci0gICAgdmly
dHVhbCBzaXplX3QgaWNvblJlY29yZENvdW50V2l0aERhdGEoKTsKKyAgICB2aXJ0dWFsIHNpemVf
dCBwYWdlVVJMTWFwcGluZ0NvdW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBzaXplX3QgcmV0
YWluZWRQYWdlVVJMQ291bnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHNpemVfdCBpY29uUmVj
b3JkQ291bnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHNpemVfdCBpY29uUmVjb3JkQ291bnRX
aXRoRGF0YSgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIEljb25EYXRhYmFzZSgpOwogICAg
IGZyaWVuZCBJY29uRGF0YWJhc2VCYXNlJiBpY29uRGF0YWJhc2UoKTsKIAogICAgIHN0YXRpYyB2
b2lkIG5vdGlmeVBlbmRpbmdMb2FkRGVjaXNpb25zT25NYWluVGhyZWFkKHZvaWQqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaAppbmRleCA1NjNkY2Nj
NzgzN2YwYzg4OTNmNmI1N2U3OThjOWU0MGJkNzRiYzAzLi4xNmJjYmM2ODA2NTRiYzg3OTA2ZWQ0
YjMzNDgzODIyYThmNGViMTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2VCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkRhdGFiYXNlQmFzZS5oCkBAIC0yNiwxMiArMjYsMTEgQEAKICNpZm5kZWYgSWNvbkRhdGFiYXNl
QmFzZV9oCiAjZGVmaW5lIEljb25EYXRhYmFzZUJhc2VfaAogCi0jaW5jbHVkZSAiSW1hZ2VTb3Vy
Y2UuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKLQorI2luY2x1ZGUgIk5hdGl2ZUltYWdl
UHRyLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzksNiArMzgsNyBAQCBjbGFzcyBE
b2N1bWVudExvYWRlcjsKIGNsYXNzIEljb25EYXRhYmFzZUNsaWVudDsKIGNsYXNzIEltYWdlOwog
Y2xhc3MgSW50U2l6ZTsKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKIAogZW51bSBJY29uTG9hZERlY2lz
aW9uIHsKICAgICBJY29uTG9hZFllcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0ljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tJY29uRGF0YWJhc2UuY3BwCmluZGV4IGE3Y2Y2MWU5OTRiOGE3MjlmZTQwMTc5NTdl
Mjk5ZDIzYzM1YmNjY2UuLjM5MDA2NjMxZjQyMzVjMTYzMTg5NTk5ZGM4NGZiMGE3OTBjYmMzNWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0ljb25EYXRhYmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLSWNvbkRhdGFiYXNl
LmNwcApAQCAtMjksOSArMjksNiBAQAogI2luY2x1ZGUgIkFQSURhdGEuaCIKICNpbmNsdWRlICJX
S0FQSUNhc3QuaCIKICNpbmNsdWRlICJXZWJJY29uRGF0YWJhc2UuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL0ltYWdlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KLSNpbmNsdWRl
IDxXZWJLaXQvV0tEYXRhLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTc0LDE1
ICs3MSw3IEBAIFdLVVJMUmVmIFdLSWNvbkRhdGFiYXNlQ29weUljb25VUkxGb3JQYWdlVVJMKFdL
SWNvbkRhdGFiYXNlUmVmIGljb25EYXRhYmFzZVJlZiwKIAogV0tEYXRhUmVmIFdLSWNvbkRhdGFi
YXNlQ29weUljb25EYXRhRm9yUGFnZVVSTChXS0ljb25EYXRhYmFzZVJlZiBpY29uRGF0YWJhc2VS
ZWYsIFdLVVJMUmVmIHBhZ2VVUkwpCiB7Ci0gICAgV2ViQ29yZTo6SW1hZ2UqIGltYWdlID0gdG9J
bXBsKGljb25EYXRhYmFzZVJlZiktPmltYWdlRm9yUGFnZVVSTCh0b1dURlN0cmluZyhwYWdlVVJM
KSk7Ci0gICAgaWYgKCFpbWFnZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBXZWJD
b3JlOjpTaGFyZWRCdWZmZXIqIGljb25EYXRhID0gaW1hZ2UtPmRhdGEoKTsKLSAgICBpZiAoIWlj
b25EYXRhKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBXS0RhdGFDcmVh
dGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oaWNvbkRhdGEtPmRhdGEo
KSksIGljb25EYXRhLT5zaXplKCkpOworICAgIHJldHVybiB0b0FQSSh0b0ltcGwoaWNvbkRhdGFi
YXNlUmVmKS0+aWNvbkRhdGFGb3JQYWdlVVJMKHRvV1RGU3RyaW5nKHBhZ2VVUkwpKS5sZWFrUmVm
KCkpOwogfQogCiB2b2lkIFdLSWNvbkRhdGFiYXNlRW5hYmxlRGF0YWJhc2VDbGVhbnVwKFdLSWNv
bkRhdGFiYXNlUmVmIGljb25EYXRhYmFzZVJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0ljb25EYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLSWNvbkRhdGFiYXNlLmgKaW5kZXggOTdkYzQxYzZkODA2OGFiMDdhMWY4ZDE3
ZGIzMDY5MTJmOGQ5Mjk0NC4uNDNhMWIxMWY4Y2RiYzZhNzA4ZmNmYWY1ODQ5ZWViZGZhOGJlZTIy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLSWNvbkRhdGFi
YXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLSWNvbkRhdGFiYXNl
LmgKQEAgLTgxLDkgKzgxLDkgQEAgV0tfRVhQT1JUIHZvaWQgV0tJY29uRGF0YWJhc2VTZXRJY29u
RGF0YWJhc2VDbGllbnQoV0tJY29uRGF0YWJhc2VSZWYgaWNvbkRhdGFiYXMKIFdLX0VYUE9SVCB2
b2lkIFdLSWNvbkRhdGFiYXNlUmV0YWluSWNvbkZvclVSTChXS0ljb25EYXRhYmFzZVJlZiBpY29u
RGF0YWJhc2UsIFdLVVJMUmVmIHBhZ2VVUkwpOwogV0tfRVhQT1JUIHZvaWQgV0tJY29uRGF0YWJh
c2VSZWxlYXNlSWNvbkZvclVSTChXS0ljb25EYXRhYmFzZVJlZiBpY29uRGF0YWJhc2UsIFdLVVJM
UmVmIHBhZ2VVUkwpOwogV0tfRVhQT1JUIHZvaWQgV0tJY29uRGF0YWJhc2VTZXRJY29uRGF0YUZv
ckljb25VUkwoV0tJY29uRGF0YWJhc2VSZWYgaWNvbkRhdGFiYXNlLCBXS0RhdGFSZWYgaWNvbkRh
dGEsIFdLVVJMUmVmIGljb25VUkwpOwotV0tfRVhQT1JUIHZvaWQgV0tJY29uRGF0YWJhc2VTZXRJ
Y29uVVJMRm9yUGFnZVVSTChXS0ljb25EYXRhYmFzZVJlZiBpY29uRGF0YWJhc2VSZWYsIFdLVVJM
UmVmIGljb25VUkxSZWYsIFdLVVJMUmVmIHBhZ2VVUkxSZWYpOwotV0tfRVhQT1JUIFdLVVJMUmVm
IFdLSWNvbkRhdGFiYXNlQ29weUljb25VUkxGb3JQYWdlVVJMKFdLSWNvbkRhdGFiYXNlUmVmIGlj
b25EYXRhYmFzZVJlZiwgV0tVUkxSZWYgcGFnZVVSTFJlZik7Ci1XS19FWFBPUlQgV0tEYXRhUmVm
IFdLSWNvbkRhdGFiYXNlQ29weUljb25EYXRhRm9yUGFnZVVSTChXS0ljb25EYXRhYmFzZVJlZiBp
Y29uRGF0YWJhc2VSZWYsIFdLVVJMUmVmIHBhZ2VVUkwpOworV0tfRVhQT1JUIHZvaWQgV0tJY29u
RGF0YWJhc2VTZXRJY29uVVJMRm9yUGFnZVVSTChXS0ljb25EYXRhYmFzZVJlZiBpY29uRGF0YWJh
c2UsIFdLVVJMUmVmIGljb25VUkwsIFdLVVJMUmVmIHBhZ2VVUkwpOworV0tfRVhQT1JUIFdLVVJM
UmVmIFdLSWNvbkRhdGFiYXNlQ29weUljb25VUkxGb3JQYWdlVVJMKFdLSWNvbkRhdGFiYXNlUmVm
IGljb25EYXRhYmFzZSwgV0tVUkxSZWYgcGFnZVVSTCk7CitXS19FWFBPUlQgV0tEYXRhUmVmIFdL
SWNvbkRhdGFiYXNlQ29weUljb25EYXRhRm9yUGFnZVVSTChXS0ljb25EYXRhYmFzZVJlZiBpY29u
RGF0YWJhc2UsIFdLVVJMUmVmIHBhZ2VVUkwpOwogCiBXS19FWFBPUlQgdm9pZCBXS0ljb25EYXRh
YmFzZUVuYWJsZURhdGFiYXNlQ2xlYW51cChXS0ljb25EYXRhYmFzZVJlZiBpY29uRGF0YWJhc2Up
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuY3BwCmluZGV4
IDdhZGFlODkxMjNiYmQzYTU0NzU5MGUwNTU3NDg2Y2QxYjNkZWUyNmUuLjZjMTZhYWZmNjhjNzZk
MDdhNTM5NTZhNmIwYjQxZTY0NzQ5NjAxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJJY29uRGF0YWJhc2UuY3BwCkBAIC0yNiwxNyArMjYsMTQgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJXZWJJY29uRGF0YWJhc2UuaCIKIAotI2luY2x1ZGUgIkRhdGFSZWZl
cmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgog
I2luY2x1ZGUgIldlYkljb25EYXRhYmFzZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViSWNvbkRh
dGFiYXNlUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JY29uRGF0YWJh
c2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0ljb25EYXRhYmFzZUJhc2UuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9JbWFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00NCwxNSArNDEsMTUgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKIFBhc3NSZWZQdHI8V2ViSWNvbkRhdGFiYXNlPiBXZWJJY29uRGF0YWJh
c2U6OmNyZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0KQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViSWNvbkRhdGFiYXNlKGNvbnRleHQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdl
Ykljb25EYXRhYmFzZSgqY29udGV4dCkpOwogfQogCiBXZWJJY29uRGF0YWJhc2U6On5XZWJJY29u
RGF0YWJhc2UoKQogewogfQogCi1XZWJJY29uRGF0YWJhc2U6OldlYkljb25EYXRhYmFzZShXZWJD
b250ZXh0KiBjb250ZXh0KQotICAgIDogbV93ZWJDb250ZXh0KGNvbnRleHQpCitXZWJJY29uRGF0
YWJhc2U6OldlYkljb25EYXRhYmFzZShXZWJDb250ZXh0JiBjb250ZXh0KQorICAgIDogbV93ZWJD
b250ZXh0KCZjb250ZXh0KQogICAgICwgbV91cmxJbXBvcnRDb21wbGV0ZWQoZmFsc2UpCiAgICAg
LCBtX2RhdGFiYXNlQ2xlYW51cERpc2FibGVkKGZhbHNlKQogewpAQCAtNjEsNyArNTgsNyBAQCBX
ZWJJY29uRGF0YWJhc2U6OldlYkljb25EYXRhYmFzZShXZWJDb250ZXh0KiBjb250ZXh0KQogCiB2
b2lkIFdlYkljb25EYXRhYmFzZTo6aW52YWxpZGF0ZSgpCiB7Ci0gICAgc2V0R2xvYmFsSWNvbkRh
dGFiYXNlKDApOworICAgIHNldEdsb2JhbEljb25EYXRhYmFzZShudWxscHRyKTsKIH0KIAogdm9p
ZCBXZWJJY29uRGF0YWJhc2U6OnNldERhdGFiYXNlUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCkBA
IC03MSw3ICs2OCw3IEBAIHZvaWQgV2ViSWNvbkRhdGFiYXNlOjpzZXREYXRhYmFzZVBhdGgoY29u
c3QgU3RyaW5nJiBwYXRoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9pY29uRGF0
YWJhc2VJbXBsID0gIEljb25EYXRhYmFzZTo6Y3JlYXRlKCk7CisgICAgbV9pY29uRGF0YWJhc2VJ
bXBsID0gc3RkOjptYWtlX3VuaXF1ZTxJY29uRGF0YWJhc2U+KCk7CiAgICAgbV9pY29uRGF0YWJh
c2VJbXBsLT5zZXRDbGllbnQodGhpcyk7CiAgICAgSWNvbkRhdGFiYXNlOjpkZWxheURhdGFiYXNl
Q2xlYW51cCgpOwogICAgIG1fZGF0YWJhc2VDbGVhbnVwRGlzYWJsZWQgPSB0cnVlOwpAQCAtODMs
OCArODAsOCBAQCB2b2lkIFdlYkljb25EYXRhYmFzZTo6c2V0RGF0YWJhc2VQYXRoKGNvbnN0IFN0
cmluZyYgcGF0aCkKIAogICAgIGlmICghbV9pY29uRGF0YWJhc2VJbXBsLT5vcGVuKGRpcmVjdG9y
eU5hbWUocGF0aCksIHBhdGhHZXRGaWxlTmFtZShwYXRoKSkpIHsKICAgICAgICAgTE9HX0VSUk9S
KCJVbmFibGUgdG8gb3BlbiBXZWJLaXQyIGljb24gZGF0YWJhc2Ugb24gZGlzayIpOwotICAgICAg
ICBtX2ljb25EYXRhYmFzZUltcGwuY2xlYXIoKTsKLSAgICAgICAgc2V0R2xvYmFsSWNvbkRhdGFi
YXNlKDApOworICAgICAgICBtX2ljb25EYXRhYmFzZUltcGwgPSBudWxscHRyOworICAgICAgICBz
ZXRHbG9iYWxJY29uRGF0YWJhc2UobnVsbHB0cik7CiAgICAgICAgIEljb25EYXRhYmFzZTo6YWxs
b3dEYXRhYmFzZUNsZWFudXAoKTsKICAgICAgICAgbV9kYXRhYmFzZUNsZWFudXBEaXNhYmxlZCA9
IGZhbHNlOwogICAgIH0KQEAgLTEwMyw3ICsxMDAsNyBAQCB2b2lkIFdlYkljb25EYXRhYmFzZTo6
ZW5hYmxlRGF0YWJhc2VDbGVhbnVwKCkKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCisKICAgICBJY29uRGF0YWJhc2U6OmFsbG93RGF0
YWJhc2VDbGVhbnVwKCk7CiAgICAgbV9kYXRhYmFzZUNsZWFudXBEaXNhYmxlZCA9IGZhbHNlOwog
fQpAQCAtMTMyLDkgKzEyOSw3IEBAIHZvaWQgV2ViSWNvbkRhdGFiYXNlOjpzZXRJY29uRGF0YUZv
ckljb25VUkwoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBpY29uRGF0YSwKICAgICBMT0coSWNv
bkRhdGFiYXNlLCAiV0syIFVJUHJvY2VzcyBzZXR0aW5nIGljb24gZGF0YSAoJWkgYnl0ZXMpIGZv
ciBwYWdlIFVSTCAlcyIsIChpbnQpaWNvbkRhdGEuc2l6ZSgpLCBpY29uVVJMLmFzY2lpKCkuZGF0
YSgpKTsKICAgICBpZiAoIW1faWNvbkRhdGFiYXNlSW1wbCkKICAgICAgICAgcmV0dXJuOwotCi0g
ICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoaWNv
bkRhdGEuZGF0YSgpLCBpY29uRGF0YS5zaXplKCkpOwotICAgIG1faWNvbkRhdGFiYXNlSW1wbC0+
c2V0SWNvbkRhdGFGb3JJY29uVVJMKGJ1ZmZlci5yZWxlYXNlKCksIGljb25VUkwpOworICAgIG1f
aWNvbkRhdGFiYXNlSW1wbC0+c2V0SWNvbkRhdGFGb3JJY29uVVJMKFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKGljb25EYXRhLmRhdGEoKSwgaWNvbkRhdGEuc2l6ZSgpKSwgaWNvblVSTCk7CiB9CiAKIHZv
aWQgV2ViSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0ljb25EYXRhRm9yUGFnZVVSTChjb25zdCBT
dHJpbmcmLCBJUEM6OkRhdGFSZWZlcmVuY2UmIGljb25EYXRhKQpAQCAtMTQ4LDcgKzE0Myw2IEBA
IHZvaWQgV2ViSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0ljb25VUkxGb3JQYWdlVVJMKGNvbnN0
IFN0cmluZyYgcGFnZVVSTCwgU3RyaW5nCiAgICAgICAgIGljb25VUkwgPSBTdHJpbmcoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLQogICAgIGljb25VUkwgPSBtX2ljb25EYXRhYmFzZUltcGwt
PnN5bmNocm9ub3VzSWNvblVSTEZvclBhZ2VVUkwocGFnZVVSTCk7CiB9CiAKQEAgLTE4Miw3ICsx
NzYsNyBAQCB2b2lkIFdlYkljb25EYXRhYmFzZTo6Z2V0TG9hZERlY2lzaW9uRm9ySWNvblVSTChj
b25zdCBTdHJpbmcmIGljb25VUkwsIHVpbnQ2NF90CiAgICAgICAgIEFTU0VSVCghbV91cmxJbXBv
cnRDb21wbGV0ZWQpOwogICAgICAgICAKICAgICAgICAgbV9wZW5kaW5nTG9hZERlY2lzaW9uVVJM
TWFwLnNldChjYWxsYmFja0lELCBpY29uVVJMKTsKLSAgICAgICAgcmV0dXJuOyAgICAKKyAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8vIEZJWE1FIChNdWx0aS1XZWJQcm9jZXNzKTogPHJk
YXI6Ly9wcm9ibGVtLzEyMjQwMjIzPiBXZSBuZWVkIHRvIGtub3cgd2hpY2ggY29ubmVjdGlvbiB0
byBzZW5kIHRoaXMgbWVzc2FnZSB0by4KQEAgLTE5NCwyMCArMTg4LDIwIEBAIHZvaWQgV2ViSWNv
bkRhdGFiYXNlOjpkaWRSZWNlaXZlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJM
KQogICAgIG5vdGlmeUljb25EYXRhUmVhZHlGb3JQYWdlVVJMKHBhZ2VVUkwpOwogfQogCi1JbWFn
ZSogV2ViSWNvbkRhdGFiYXNlOjppbWFnZUZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJM
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpY29uU2l6ZSkKK0ltYWdlKiBXZWJJY29uRGF0YWJh
c2U6OmltYWdlRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkwsIGNvbnN0IEludFNpemUm
IGljb25TaXplKQogewogICAgIGlmICghbV93ZWJDb250ZXh0IHx8ICFtX2ljb25EYXRhYmFzZUlt
cGwgfHwgIW1faWNvbkRhdGFiYXNlSW1wbC0+aXNPcGVuKCkgfHwgcGFnZVVSTC5pc0VtcHR5KCkp
Ci0gICAgICAgIHJldHVybiAwOyAgICAKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAv
LyBUaGUgV2ViQ29yZSBJY29uRGF0YWJhc2UgaWdub3JlcyB0aGUgcGFzc2VkIGluIHNpemUgcGFy
YW1ldGVyLgogICAgIC8vIElmIHRoYXQgY2hhbmdlcyB3ZSdsbCBuZWVkIHRvIHJldGhpbmsgaG93
IHRoaXMgQVBJIGlzIGV4cG9zZWQuCiAgICAgcmV0dXJuIG1faWNvbkRhdGFiYXNlSW1wbC0+c3lu
Y2hyb25vdXNJY29uRm9yUGFnZVVSTChwYWdlVVJMLCBpY29uU2l6ZSk7CiB9CiAKLVdlYkNvcmU6
Ok5hdGl2ZUltYWdlUHRyIFdlYkljb25EYXRhYmFzZTo6bmF0aXZlSW1hZ2VGb3JQYWdlVVJMKGNv
bnN0IFN0cmluZyYgcGFnZVVSTCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaWNvblNpemUpCitO
YXRpdmVJbWFnZVB0ciBXZWJJY29uRGF0YWJhc2U6Om5hdGl2ZUltYWdlRm9yUGFnZVVSTChjb25z
dCBTdHJpbmcmIHBhZ2VVUkwsIGNvbnN0IEludFNpemUmIGljb25TaXplKQogewogICAgIGlmICgh
bV93ZWJDb250ZXh0IHx8ICFtX2ljb25EYXRhYmFzZUltcGwgfHwgIW1faWNvbkRhdGFiYXNlSW1w
bC0+aXNPcGVuKCkgfHwgcGFnZVVSTC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAwOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVybiBtX2ljb25EYXRhYmFzZUltcGwtPnN5
bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwocGFnZVVSTCwgaWNvblNpemUpOwogfQpAQCAt
MjI0LDcgKzIxOCw3IEBAIGJvb2wgV2ViSWNvbkRhdGFiYXNlOjppc1VybEltcG9ydENvbXBsZXRl
ZCgpCiAKIHZvaWQgV2ViSWNvbkRhdGFiYXNlOjpyZW1vdmVBbGxJY29ucygpCiB7Ci0gICAgbV9p
Y29uRGF0YWJhc2VJbXBsLT5yZW1vdmVBbGxJY29ucygpOyAgIAorICAgIG1faWNvbkRhdGFiYXNl
SW1wbC0+cmVtb3ZlQWxsSWNvbnMoKTsKIH0KIAogdm9pZCBXZWJJY29uRGF0YWJhc2U6OmNoZWNr
SW50ZWdyaXR5QmVmb3JlT3BlbmluZygpCkBAIC0yNjksMjcgKzI2MywyNCBAQCB2b2lkIFdlYklj
b25EYXRhYmFzZTo6ZGlkRmluaXNoVVJMSW1wb3J0KCkKIHsKICAgICBpZiAoIW1fd2ViQ29udGV4
dCkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgQVNTRVJUKCFtX3VybEltcG9ydENvbXBs
ZXRlZCk7CiAKICAgICBMT0coSWNvbkRhdGFiYXNlLCAiV0syIFVJUHJvY2VzcyBVUkwgaW1wb3J0
IGNvbXBsZXRlLCBub3RpZnlpbmcgYWxsICVpIHBlbmRpbmcgcGFnZSBVUkwgbG9hZCBkZWNpc2lv
bnMiLCBtX3BlbmRpbmdMb2FkRGVjaXNpb25VUkxNYXAuc2l6ZSgpKTsKLQotICAgIEhhc2hNYXA8
dWludDY0X3QsIFN0cmluZz46Oml0ZXJhdG9yIGkgPSBtX3BlbmRpbmdMb2FkRGVjaXNpb25VUkxN
YXAuYmVnaW4oKTsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBTdHJpbmc+OjppdGVyYXRvciBlbmQg
PSBtX3BlbmRpbmdMb2FkRGVjaXNpb25VUkxNYXAuZW5kKCk7CiAgICAgCi0gICAgZm9yICg7IGkg
IT0gZW5kOyArK2kpIHsKLSAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIldLMiBVSVByb2Nlc3Mg
cGVyZm9ybWluZyBkZWxheWVkIGNhbGxiYWNrIG9uIGNhbGxiYWNrIElEICVpIGZvciBwYWdlIHVy
bCAlcyIsIChpbnQpaS0+a2V5LCBpLT52YWx1ZS5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgIElj
b25Mb2FkRGVjaXNpb24gZGVjaXNpb24gPSBtX2ljb25EYXRhYmFzZUltcGwtPnN5bmNocm9ub3Vz
TG9hZERlY2lzaW9uRm9ySWNvblVSTChpLT52YWx1ZSwgMCk7CisgICAgZm9yIChhdXRvJiBzbG90
IDogbV9wZW5kaW5nTG9hZERlY2lzaW9uVVJMTWFwKSB7CisgICAgICAgIExPRyhJY29uRGF0YWJh
c2UsICJXSzIgVUlQcm9jZXNzIHBlcmZvcm1pbmcgZGVsYXllZCBjYWxsYmFjayBvbiBjYWxsYmFj
ayBJRCAlaSBmb3IgcGFnZSB1cmwgJXMiLCAoaW50KXNsb3Qua2V5LCBzbG90LnZhbHVlLmFzY2lp
KCkuZGF0YSgpKTsKKyAgICAgICAgSWNvbkxvYWREZWNpc2lvbiBkZWNpc2lvbiA9IG1faWNvbkRh
dGFiYXNlSW1wbC0+c3luY2hyb25vdXNMb2FkRGVjaXNpb25Gb3JJY29uVVJMKHNsb3QudmFsdWUs
IG51bGxwdHIpOwogCi0gICAgICAgIC8vIERlY2lzaW9ucyBzaG91bGQgbmV2ZXIgYmUgdW5rbm93
biBhZnRlciB0aGUgaW5pdGFsIGltcG9ydCBpcyBjb21wbGV0ZQorICAgICAgICAvLyBEZWNpc2lv
bnMgc2hvdWxkIG5ldmVyIGJlIHVua25vd24gYWZ0ZXIgdGhlIGluaXRhbCBpbXBvcnQgaXMgY29t
cGxldGUuCiAgICAgICAgIEFTU0VSVChkZWNpc2lvbiAhPSBJY29uTG9hZFVua25vd24pOwogCiAg
ICAgICAgIC8vIEZJWE1FIChNdWx0aS1XZWJQcm9jZXNzKTogPHJkYXI6Ly9wcm9ibGVtLzEyMjQw
MjIzPiBXZSBuZWVkIHRvIGtub3cgd2hpY2ggY29ubmVjdGlvbiB0byBzZW5kIHRoaXMgbWVzc2Fn
ZSB0by4KLSAgICAgICAgbV93ZWJDb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6
OldlYkljb25EYXRhYmFzZVByb3h5OjpSZWNlaXZlZEljb25Mb2FkRGVjaXNpb24oc3RhdGljX2Nh
c3Q8aW50PihkZWNpc2lvbiksIGktPmtleSkpOworICAgICAgICBtX3dlYkNvbnRleHQtPnNlbmRU
b0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViSWNvbkRhdGFiYXNlUHJveHk6OlJlY2VpdmVkSWNv
bkxvYWREZWNpc2lvbihzdGF0aWNfY2FzdDxpbnQ+KGRlY2lzaW9uKSwgc2xvdC5rZXkpKTsKICAg
ICB9Ci0gICAgCisKICAgICBtX3BlbmRpbmdMb2FkRGVjaXNpb25VUkxNYXAuY2xlYXIoKTsKLSAg
ICAKKwogICAgIG1fdXJsSW1wb3J0Q29tcGxldGVkID0gdHJ1ZTsKIH0KIApAQCAtMzA1LDQgKzI5
NiwyMyBAQCB2b2lkIFdlYkljb25EYXRhYmFzZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChi
b29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCiAgICAgICAgIG1faWNvbkRhdGFiYXNlSW1wbC0+
c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChwcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKIH0KIAor
UGFzc1JlZlB0cjxBUEk6OkRhdGE+IFdlYkljb25EYXRhYmFzZTo6aWNvbkRhdGFGb3JQYWdlVVJM
KGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKK3sKKyAgICBhdXRvKiBpbWFnZSA9IGltYWdlRm9yUGFn
ZVVSTChwYWdlVVJMKTsKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIFNoYXJlZEJ1ZmZlciogc2hhcmVkQnVmZmVyID0gaW1hZ2UtPmRhdGEoKTsKKyAgICBp
ZiAoIXNoYXJlZEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAvLyBCYWxh
bmNlZCBieSBkZXJlZigpIGJlbG93LgorICAgIHNoYXJlZEJ1ZmZlci0+cmVmKCk7CisgICAgcmV0
dXJuIEFQSTo6RGF0YTo6Y3JlYXRlV2l0aG91dENvcHlpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCB1bnNpZ25lZCBjaGFyKj4oc2hhcmVkQnVmZmVyLT5kYXRhKCkpLCBzaGFyZWRCdWZmZXItPnNp
emUoKSwKKyAgICAgICAgW10odW5zaWduZWQgY2hhciosIGNvbnN0IHZvaWQqIHVudHlwZWRTaGFy
ZWRCdWZmZXIpeworICAgICAgICAgICAgLy8gQmFsYW5jZWQgYnkgcmVmKCkgYWJvdmUuCisgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxTaGFyZWRCdWZmZXIqPihjb25zdF9jYXN0PHZvaWQqPih1bnR5
cGVkU2hhcmVkQnVmZmVyKSktPmRlcmVmKCk7CisgICAgICAgIH0sIHNoYXJlZEJ1ZmZlcik7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkljb25EYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYklj
b25EYXRhYmFzZS5oCmluZGV4IDgxNmIyMGQ0YjQ2OTAxNzJkNWQ0YzFlMjkyYmQ0YjY5N2I0ZDUy
MDcuLmYzMjQ0NWM0Yzc0Y2ViZGQ3MWUyMjU3ZDcwNTE5MmQ0N2ViZTZjOGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgKQEAgLTI3LDIxICsyNywxNCBAQAog
I2RlZmluZSBXZWJJY29uRGF0YWJhc2VfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0KICNp
bmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViSWNvbkRhdGFiYXNlQ2xpZW50Lmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9JY29uRGF0YWJhc2VDbGllbnQuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL0ltYWdlU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+Ci0jaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgotCi1uYW1lc3BhY2UgSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2Rl
cjsKLWNsYXNzIERhdGFSZWZlcmVuY2U7CisjaW5jbHVkZSA8V2ViQ29yZS9OYXRpdmVJbWFnZVB0
ci5oPgorCituYW1lc3BhY2UgQVBJIHsKK2NsYXNzIERhdGE7CiB9CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTUzLDEzICs0NiwxMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2Vi
Q29udGV4dDsKIAotY2xhc3MgV2ViSWNvbkRhdGFiYXNlIDogcHVibGljIEFQSTo6T2JqZWN0SW1w
bDxBUEk6Ok9iamVjdDo6VHlwZTo6SWNvbkRhdGFiYXNlPiwgcHVibGljIFdlYkNvcmU6Okljb25E
YXRhYmFzZUNsaWVudCwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitjbGFzcyBXZWJJ
Y29uRGF0YWJhc2UgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpJ
Y29uRGF0YWJhc2U+LCBwcml2YXRlIFdlYkNvcmU6Okljb25EYXRhYmFzZUNsaWVudCwgcHJpdmF0
ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
V2ViSWNvbkRhdGFiYXNlPiBjcmVhdGUoV2ViQ29udGV4dCopOwogICAgIHZpcnR1YWwgfldlYklj
b25EYXRhYmFzZSgpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7Ci0gICAgdm9pZCBjbGVhckNv
bnRleHQoKSB7IG1fd2ViQ29udGV4dCA9IDA7IH0KKyAgICB2b2lkIGNsZWFyQ29udGV4dCgpIHsg
bV93ZWJDb250ZXh0ID0gbnVsbHB0cjsgfQogICAgIHZvaWQgc2V0RGF0YWJhc2VQYXRoKGNvbnN0
IFN0cmluZyYpOwogICAgIHZvaWQgZW5hYmxlRGF0YWJhc2VDbGVhbnVwKCk7CiAKQEAgLTY3LDE3
ICs2MCwxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWxlYXNlSWNvbkZvclBhZ2VVUkwoY29uc3Qg
U3RyaW5nJik7CiAgICAgdm9pZCBzZXRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNldEljb25EYXRhRm9ySWNvblVSTChjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmKTsKLSAgICAKKwogICAgIHZvaWQgc3luY2hy
b25vdXNJY29uRGF0YUZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiwgSVBDOjpEYXRhUmVmZXJlbmNl
Jik7CiAgICAgdm9pZCBzeW5jaHJvbm91c0ljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYs
IFN0cmluZyYpOwogICAgIHZvaWQgc3luY2hyb25vdXNJY29uRGF0YUtub3duRm9ySWNvblVSTChj
b25zdCBTdHJpbmcmLCBib29sJikgY29uc3Q7CiAgICAgdm9pZCBzeW5jaHJvbm91c0xvYWREZWNp
c2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiwgaW50JikgY29uc3Q7Ci0gICAgCisKICAgICB2
b2lkIGdldExvYWREZWNpc2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiwgdWludDY0X3QgY2Fs
bGJhY2tJRCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5n
Jik7CiAKICAgICBXZWJDb3JlOjpJbWFnZSogaW1hZ2VGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGljb25TaXplID0gV2ViQ29yZTo6SW50U2l6ZSgzMiwg
MzIpKTsKICAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZUZvclBhZ2VVUkwo
Y29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaWNvblNpemUgPSBXZWJDb3Jl
OjpJbnRTaXplKDMyLCAzMikpOworICAgIFBhc3NSZWZQdHI8QVBJOjpEYXRhPiBpY29uRGF0YUZv
clBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMKTsKKwogICAgIGJvb2wgaXNPcGVuKCk7CiAg
ICAgYm9vbCBpc1VybEltcG9ydENvbXBsZXRlZCgpOwogCkBAIC04OCwxNiArODMsMTYgQEAgcHVi
bGljOgogICAgIHZvaWQgaW5pdGlhbGl6ZUljb25EYXRhYmFzZUNsaWVudChjb25zdCBXS0ljb25E
YXRhYmFzZUNsaWVudEJhc2UqKTsKIAogICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZChib29sKTsKLSAgICAKKwogcHJpdmF0ZToKLSAgICBXZWJJY29uRGF0YWJhc2UoV2ViQ29udGV4
dCopOworICAgIGV4cGxpY2l0IFdlYkljb25EYXRhYmFzZShXZWJDb250ZXh0Jik7CiAKICAgICAv
LyBXZWJDb3JlOjpJY29uRGF0YWJhc2VDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkSW1wb3J0
SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZElt
cG9ydEljb25EYXRhRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZFJlbW92ZUFsbEljb25zKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaFVSTEltcG9y
dCgpOworICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBT
dHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkSW1wb3J0SWNvbkRhdGFGb3JQ
YWdlVVJMKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFu
Z2VJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVtb3ZlQWxsSWNvbnMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoVVJMSW1wb3J0KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6
Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CkBAIC0xMDYsOCArMTAxLDggQEAgcHJpdmF0ZToK
ICAgICB2b2lkIG5vdGlmeUljb25EYXRhUmVhZHlGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpOwog
CiAgICAgV2ViQ29udGV4dCogbV93ZWJDb250ZXh0OwotICAgIAotICAgIE93blB0cjxXZWJDb3Jl
OjpJY29uRGF0YWJhc2U+IG1faWNvbkRhdGFiYXNlSW1wbDsKKworICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpJY29uRGF0YWJhc2U+IG1faWNvbkRhdGFiYXNlSW1wbDsKICAgICBib29sIG1f
dXJsSW1wb3J0Q29tcGxldGVkOwogICAgIGJvb2wgbV9kYXRhYmFzZUNsZWFudXBEaXNhYmxlZDsK
ICAgICBIYXNoTWFwPHVpbnQ2NF90LCBTdHJpbmc+IG1fcGVuZGluZ0xvYWREZWNpc2lvblVSTE1h
cDsK
</data>
<flag name="review"
          id="255712"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>