<?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>141652</bug_id>
          
          <creation_ts>2015-02-16 10:18:36 -0800</creation_ts>
          <short_desc>Add nullability qualifiers to all API headers</short_desc>
          <delta_ts>2015-02-16 11:38:16 -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>New Bugs</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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1069478</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-02-16 10:18:36 -0800</bug_when>
    <thetext>Add nullability qualifiers to all API headers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069480</commentid>
    <comment_count>1</comment_count>
      <attachid>246660</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-02-16 10:20:09 -0800</bug_when>
    <thetext>Created attachment 246660
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069482</commentid>
    <comment_count>2</comment_count>
      <attachid>246660</attachid>
    <who name="">mitz</who>
    <bug_when>2015-02-16 10:27:55 -0800</bug_when>
    <thetext>Comment on attachment 246660
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegate.h:108
&gt; +- (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(nullable NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(WK_NULLABLE_SPECIFIER NSString *result))completionHandler;

nullable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069483</commentid>
    <comment_count>3</comment_count>
      <attachid>246661</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-02-16 10:28:30 -0800</bug_when>
    <thetext>Created attachment 246661
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069489</commentid>
    <comment_count>4</comment_count>
      <attachid>246662</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-02-16 10:47:01 -0800</bug_when>
    <thetext>Created attachment 246662
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069520</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-02-16 11:38:16 -0800</bug_when>
    <thetext>Committed r180162: &lt;http://trac.webkit.org/changeset/180162&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246660</attachid>
            <date>2015-02-16 10:20:09 -0800</date>
            <delta_ts>2015-02-16 10:28:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141652-20150216102017.patch</filename>
            <type>text/plain</type>
            <size>27603</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwMTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDY4ZGNmNGYyZjIyODky
YjhmYWU4MjMzMmYwOTc0OTYyYWJlMzRiOS4uYmFjYjljN2ExMGI4YWQ1N2U5NmY4NGM4NWE3ODdl
MWJlMDViYzhkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTAyLTE2ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIG51bGxhYmls
aXR5IHF1YWxpZmllcnMgdG8gYWxsIEFQSSBoZWFkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE2NTIKKyAgICAgICAgcmRhcjovL3Byb2JsZW0v
MTk3OTM2MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNoYXJlZC9BUEkvQ29jb2EvV0tGb3VuZGF0aW9uLmg6CisgICAgICAgIEFkZCBhIFdLX05V
TExBQkxFX1NQRUNJRklFUiBtYWNyby4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tCYWNrRm9yd2FyZExpc3RJdGVtLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0ZyYW1lSW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
QWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxl
Z2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9u
c2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlSGFuZGxlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2luZG93RmVhdHVyZXMuaDoKKworICAgICAgICAqIG1hYy9wb3N0cHJvY2Vzcy1mcmFtZXdvcmst
aGVhZGVycy5zaDoKKyAgICAgICAgSGFuZGxlIHRoZSBXS19OVUxMQUJMRV9TUEVDSUZJRVIgbWFj
cm8uIENoYW5nZSB0aGUgV0tfTlVMTEFCTEUgc2VkIGNvbW1hbmQgdG8gcmVwbGFjZQorICAgICAg
ICBhbGwgb2NjdXJyZW5jZXMgb2YgV0tfTlVMTEFCTEUgaW5zdGVhZCBvZiBqdXN0IHRoZSBmaXJz
dCBvbmUuCisKIDIwMTUtMDItMTMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgbnVsbGFiaWxpdHkgdG8gdGhlIGhlYWRlciBw
b3N0cHJvY2Vzc2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2Nv
YS9XS0ZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tGb3Vu
ZGF0aW9uLmgKaW5kZXggZmNiZDdjYTU4MjZjYzAxY2MxYWVhYTUxOWQ0ZThmMWZiNjIwZmZiMy4u
NGQyMGU3NzEyMDNkYjlhMWIyMmFmOTRjYzk4NzNiMzBhNzU1NDIzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS0ZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLRm91bmRhdGlvbi5oCkBAIC04MCwxMCArODAsMTIg
QEAKICNpZiAhX19oYXNfYXR0cmlidXRlKG5vZXNjYXBlKQogI2RlZmluZSBXS19OVUxMQUJMRQog
I2RlZmluZSBXS19OVUxMX1VOU1BFQ0lGSUVECisjZGVmaW5lIFdLX05VTExBQkxFX1NQRUNJRklF
UgogI2RlZmluZSBXS19OVUxMQUJMRV9QUk9QRVJUWQogI2Vsc2UKICNkZWZpbmUgV0tfTlVMTEFC
TEUgbnVsbGFibGUKICNkZWZpbmUgV0tfTlVMTF9VTlNQRUNJRklFRCBudWxsX3Vuc3BlY2lmaWVk
CisjZGVmaW5lIFdLX05VTExBQkxFX1NQRUNJRklFUiBfX251bGxhYmxlCiAjZGVmaW5lIFdLX05V
TExBQkxFX1BST1BFUlRZIG51bGxhYmxlLAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oCmlu
ZGV4IDZjZDhkMjc4YzVlNDNjNGY1MGEwNzRlYmNhMTQ0M2JiYTJlY2I5NDQuLjE0NjQ5OTllMTYz
ZGQ2NGEwMGNmNTE5ZTMzMDNlMmU5MjQ5ZmI5YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaApAQCAt
MzEsNiArMzEsOCBAQAogCiAvKiEgQSBXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gb2JqZWN0IHJlcHJl
c2VudHMgYSB3ZWJwYWdlIGluIHRoZSBiYWNrLWZvcndhcmQgbGlzdCBvZiBhIHdlYiB2aWV3Lgog
ICovCitXS19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAs
IDhfMCkKIEBpbnRlcmZhY2UgV0tCYWNrRm9yd2FyZExpc3RJdGVtIDogTlNPYmplY3QKIApAQCAt
NDAsNyArNDIsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIAogLyohIEBhYnN0
cmFjdCBUaGUgdGl0bGUgb2YgdGhlIHdlYnBhZ2UgcmVwcmVzZW50ZWQgYnkgdGhpcyBpdGVtLgog
ICovCi1AcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqdGl0bGU7CitAcHJvcGVy
dHkgKFdLX05VTExBQkxFLCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKnRpdGxlOwogCiAvKiEg
QGFic3RyYWN0IFRoZSBVUkwgb2YgdGhlIGluaXRpYWwgcmVxdWVzdCB0aGF0IGNyZWF0ZWQgdGhp
cyBpdGVtLgogICovCkBAIC00OCw0ICs1MCw2IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwg
OF8wKQogCiBAZW5kCiAKK1dLX0FTU1VNRV9OT05OVUxMX0VORAorCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm8uaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm8uaAppbmRleCAxNWRk
ZmFjNmY5NWQ4NmQ4OTJhMWE4ZjZkNGE1MzQ5MzY1NzBmYmUzLi5lZDExYmUzZTBmNWJiODA3ZDU3
OTM4ZjVhOTE4MGVkOTljM2ZhM2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5oCkBAIC0zNCw2ICszNCw4IEBACiAgaXQgZG9lcyBub3Qg
dW5pcXVlbHkgaWRlbnRpZnkgYSBmcmFtZSBhY3Jvc3MgbXVsdGlwbGUgZGVsZWdhdGUgbWV0aG9k
CiAgY2FsbHMuCiAgKi8KK1dLX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKIFdLX0NMQVNTX0FWQUlM
QUJMRSgxMF8xMCwgOF8wKQogQGludGVyZmFjZSBXS0ZyYW1lSW5mbyA6IE5TT2JqZWN0IDxOU0Nv
cHlpbmc+CiAKQEAgLTQ4LDQgKzUwLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzAp
CiAKIEBlbmQKIAorV0tfQVNTVU1FX05PTk5VTExfRU5ECisKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLmgK
aW5kZXggOGNiYmJlM2Q3NDg0ZWUyNzVmYWYyNGE4ODM0NjRiNDJmZjgwMGUyNi4uMWNjZDkwMWNk
YmMzOTZiMTM5ODhhMzVmMGVlMTQ0ODAyMTgyMDA3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5oCkBAIC0zMyw2
ICszMyw4IEBACiAjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+CiAjZW5kaWYKIAorV0tfQVNTVU1F
X05PTk5VTExfQkVHSU4KKwogQGNsYXNzIFdLRnJhbWVJbmZvOwogCiAvKiEgQGVudW0gV0tOYXZp
Z2F0aW9uVHlwZQpAQCAtNjUsNyArNjcsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhf
MCkKIAogLyohIEBhYnN0cmFjdCBUaGUgdGFyZ2V0IGZyYW1lLCBvciBuaWwgaWYgdGhpcyBpcyBh
IG5ldyB3aW5kb3cgbmF2aWdhdGlvbi4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5LCBjb3B5KSBXS0ZyYW1lSW5mbyAqdGFyZ2V0RnJhbWU7CitAcHJvcGVydHkgKFdLX05VTExB
QkxFX1BST1BFUlRZIG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIFdLRnJhbWVJbmZvICp0YXJn
ZXRGcmFtZTsKIAogLyohIEBhYnN0cmFjdCBUaGUgdHlwZSBvZiBhY3Rpb24gdGhhdCB0cmlnZ2Vy
ZWQgdGhlIG5hdmlnYXRpb24uCiAgQGRpc2N1c3Npb24gVGhlIHZhbHVlIGlzIG9uZSBvZiB0aGUg
Y29uc3RhbnRzIG9mIHRoZSBlbnVtZXJhdGVkIHR5cGUgV0tOYXZpZ2F0aW9uVHlwZS4KQEAgLTkw
LDQgKzkyLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAKIEBlbmQKIAorV0tf
QVNTVU1FX05PTk5VTExfRU5ECisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oCmluZGV4IGI3ZGQw
MjkwODg5YzZhNjg2N2IxN2RlZGViYzE3NjcxZWE1ODYzZjkuLjZlNWNkZDYzZjYwYmZiY2NiZGYz
ZjQ5MDJjNGE0ZmU1M2IzNWFmMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlLmgKQEAgLTI5LDYgKzI5LDgg
QEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKK1dLX0FTU1VNRV9OT05O
VUxMX0JFR0lOCisKIEBjbGFzcyBXS05hdmlnYXRpb247CiBAY2xhc3MgV0tOYXZpZ2F0aW9uQWN0
aW9uOwogQGNsYXNzIFdLTmF2aWdhdGlvblJlc3BvbnNlOwpAQCAtODgsMTQgKzkwLDE0IEBAIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5KSB7CiAg
QHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2Qu
CiAgQHBhcmFtIG5hdmlnYXRpb24gVGhlIG5hdmlnYXRpb24uCiAgKi8KLS0gKHZvaWQpd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tO
YXZpZ2F0aW9uICopbmF2aWdhdGlvbjsKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tfTlVMTF9VTlNQRUNJRklFRCBX
S05hdmlnYXRpb24gKiluYXZpZ2F0aW9uOwogCiAvKiEgQGFic3RyYWN0IEludm9rZWQgd2hlbiBh
IHNlcnZlciByZWRpcmVjdCBpcyByZWNlaXZlZCBmb3IgdGhlIG1haW4KICBmcmFtZS4KICBAcGFy
YW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KICBA
cGFyYW0gbmF2aWdhdGlvbiBUaGUgbmF2aWdhdGlvbi4KICAqLwotLSAodm9pZCl3ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbjsKKy0gKHZvaWQpd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bE5hdmlnYXRpb246KFdLX05VTExfVU5TUEVDSUZJRUQgV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlv
bjsKIAogLyohIEBhYnN0cmFjdCBJbnZva2VkIHdoZW4gYW4gZXJyb3Igb2NjdXJzIHdoaWxlIHN0
YXJ0aW5nIHRvIGxvYWQgZGF0YSBmb3IKICB0aGUgbWFpbiBmcmFtZS4KQEAgLTEwMywxOSArMTA1
LDE5IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9s
aWN5KSB7CiAgQHBhcmFtIG5hdmlnYXRpb24gVGhlIG5hdmlnYXRpb24uCiAgQHBhcmFtIGVycm9y
IFRoZSBlcnJvciB0aGF0IG9jY3VycmVkLgogICovCi0tICh2b2lkKXdlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICop
bmF2aWdhdGlvbiB3aXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcjsKKy0gKHZvaWQpd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uOihXS19OVUxM
X1VOU1BFQ0lGSUVEIFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24gd2l0aEVycm9yOihOU0Vycm9y
ICopZXJyb3I7CiAKIC8qISBAYWJzdHJhY3QgSW52b2tlZCB3aGVuIGNvbnRlbnQgc3RhcnRzIGFy
cml2aW5nIGZvciB0aGUgbWFpbiBmcmFtZS4KICBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcg
aW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KICBAcGFyYW0gbmF2aWdhdGlvbiBUaGUgbmF2
aWdhdGlvbi4KICAqLwotLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENv
bW1pdE5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb247CistICh2b2lkKXdlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkQ29tbWl0TmF2aWdhdGlvbjooV0tfTlVMTF9VTlNQ
RUNJRklFRCBXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uOwogCiAvKiEgQGFic3RyYWN0IEludm9r
ZWQgd2hlbiBhIG1haW4gZnJhbWUgbmF2aWdhdGlvbiBjb21wbGV0ZXMuCiAgQHBhcmFtIHdlYlZp
ZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2QuCiAgQHBhcmFtIG5h
dmlnYXRpb24gVGhlIG5hdmlnYXRpb24uCiAgKi8KLS0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBkaWRGaW5pc2hOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9u
OworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRp
b246KFdLX05VTExfVU5TUEVDSUZJRUQgV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbjsKIAogLyoh
IEBhYnN0cmFjdCBJbnZva2VkIHdoZW4gYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBhIGNvbW1pdHRl
ZCBtYWluIGZyYW1lCiAgbmF2aWdhdGlvbi4KQEAgLTEyMyw3ICsxMjUsNyBAQCB0eXBlZGVmIE5T
X0VOVU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSkgewogIEBwYXJhbSBu
YXZpZ2F0aW9uIFRoZSBuYXZpZ2F0aW9uLgogIEBwYXJhbSBlcnJvciBUaGUgZXJyb3IgdGhhdCBv
Y2N1cnJlZC4KICAqLwotLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZh
aWxOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uIHdpdGhFcnJvcjooTlNFcnJv
ciAqKWVycm9yOworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZhaWxO
YXZpZ2F0aW9uOihXS19OVUxMX1VOU1BFQ0lGSUVEIFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24g
d2l0aEVycm9yOihOU0Vycm9yICopZXJyb3I7CiAKIC8qISBAYWJzdHJhY3QgSW52b2tlZCB3aGVu
IHRoZSB3ZWIgdmlldyBuZWVkcyB0byByZXNwb25kIHRvIGFuIGF1dGhlbnRpY2F0aW9uIGNoYWxs
ZW5nZS4KICBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgdGhhdCByZWNlaXZlZCB0aGUgYXV0
aGVudGljYXRpb24gY2hhbGxlbmdlLgpAQCAtMTM1LDggKzEzNywxMCBAQCB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSkgewogIGNyZWRlbnRpYWwu
CiAgQGRpc2N1c3Npb24gSWYgeW91IGRvIG5vdCBpbXBsZW1lbnQgdGhpcyBtZXRob2QsIHRoZSB3
ZWIgdmlldyB3aWxsIHJlc3BvbmQgdG8gdGhlIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSB3aXRo
IHRoZSBOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlUmVqZWN0UHJvdGVjdGlvblNwYWNlIGRpc3Bv
c2l0aW9uLgogICovCi0tICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
ICopY2hhbGxlbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFNlc3Npb25BdXRo
Q2hhbGxlbmdlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVudGlhbCAqY3JlZGVu
dGlhbCkpY29tcGxldGlvbkhhbmRsZXI7CistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VS
TFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIFdLX05VTExBQkxF
X1NQRUNJRklFUiBOU1VSTENyZWRlbnRpYWwgKmNyZWRlbnRpYWwpKWNvbXBsZXRpb25IYW5kbGVy
OwogCiBAZW5kCiAKK1dLX0FTU1VNRV9OT05OVUxMX0VORAorCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2Uu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9u
c2UuaAppbmRleCBlMzY3ZmIzOWEzMDJiMWNkNDljNGVlNjBmMTMzZGYyZjQ3M2ZlZWViLi43NWUx
NDdmNTM2OWI2Zjg5ZjIzYzZiNzZjYjJkNWQ4MTNhNWU3YmUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5o
CkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgog
CitXS19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiBAY2xhc3MgV0tGcmFtZUluZm87CiAKIC8qISBD
b250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhIG5hdmlnYXRpb24gcmVzcG9uc2UsIHVzZWQgZm9y
IG1ha2luZyBwb2xpY3kgZGVjaXNpb25zLgpAQCAtNTEsNCArNTMsNiBAQCBXS19DTEFTU19BVkFJ
TEFCTEUoMTBfMTAsIDhfMCkKIAogQGVuZAogCitXS19BU1NVTUVfTk9OTlVMTF9FTkQKKwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2Ny
aXB0TWVzc2FnZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Njcmlw
dE1lc3NhZ2UuaAppbmRleCAxODcxZWJjZDk1MDEyNWYyMDk0ZmQ0YzIzNjE4ODEyMzAxOTVjNTYx
Li45MmQ1ODZlNDEzZTIwOTg5ZGZhYTg5NjRhMGFhNWZkMWI4NGZlM2IxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlLmgKQEAg
LTI5LDYgKzI5LDggQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKK1dL
X0FTU1VNRV9OT05OVUxMX0JFR0lOCisKIEBjbGFzcyBXS0ZyYW1lSW5mbzsKIEBjbGFzcyBXS1dl
YlZpZXc7CiAKQEAgLTQ1LDcgKzQ3LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzAp
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIGlkIGJvZHk7CiAKIC8qISBA
YWJzdHJhY3QgVGhlIHdlYiB2aWV3IHNlbmRpbmcgdGhlIG1lc3NhZ2UuICovCi1AcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHksIHdlYWspIFdLV2ViVmlldyAqd2ViVmlldzsKK0Bwcm9wZXJ0
eSAoV0tfTlVMTEFCTEVfUFJPUEVSVFkgbm9uYXRvbWljLCByZWFkb25seSwgd2VhaykgV0tXZWJW
aWV3ICp3ZWJWaWV3OwogCiAvKiEgQGFic3RyYWN0IFRoZSBmcmFtZSBzZW5kaW5nIHRoZSBtZXNz
YWdlLiAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBXS0ZyYW1lSW5m
byAqZnJhbWVJbmZvOwpAQCAtNTYsNCArNTgsNiBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAs
IDhfMCkKIAogQGVuZAogCitXS19BU1NVTUVfTk9OTlVMTF9FTkQKKwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZUhh
bmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNz
YWdlSGFuZGxlci5oCmluZGV4IDI0MTFmMGZmMTA0MjE2ZjVlZTUzZWU1OWYyZDdiNjJkZWFiMTJl
NDAuLjlkMjRiYzU5NDRkNmNiYTk1YmI2NWFhZTkzYmE4NDY3ODVmMWNiNDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlSGFuZGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNz
YWdlSGFuZGxlci5oCkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91
bmRhdGlvbi5oPgogCitXS19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiBAY2xhc3MgV0tTY3JpcHRN
ZXNzYWdlOwogQGNsYXNzIFdLVXNlckNvbnRlbnRDb250cm9sbGVyOwogCkBAIC00OCw0ICs1MCw2
IEBACiAKIEBlbmQKIAorV0tfQVNTVU1FX05PTk5VTExfRU5ECisKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgKaW5kZXggNGMx
OWY2YmVkYmNiN2FlYmNmMzE3YTdmMmQxNTAyYWM3NGNiNzI1YS4uOTQxMmViODc2YTNjOGM0ZTIx
ODVkZWQ1MDY3NmRmMmVmMGRjNzgwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oCkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbXBvcnQg
PEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCitXS19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiBA
Y2xhc3MgV0tGcmFtZUluZm87CiBAY2xhc3MgV0tOYXZpZ2F0aW9uQWN0aW9uOwogQGNsYXNzIFdL
V2ViVmlld0NvbmZpZ3VyYXRpb247CkBAIC01Myw3ICs1NSw3IEBACiAKICBJZiB5b3UgZG8gbm90
IGltcGxlbWVudCB0aGlzIG1ldGhvZCwgdGhlIHdlYiB2aWV3IHdpbGwgY2FuY2VsIHRoZSBuYXZp
Z2F0aW9uLgogICovCi0tIChXS1dlYlZpZXcgKil3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGNyZWF0ZVdlYlZpZXdXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAq
KWNvbmZpZ3VyYXRpb24gZm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICop
bmF2aWdhdGlvbkFjdGlvbiB3aW5kb3dGZWF0dXJlczooV0tXaW5kb3dGZWF0dXJlcyAqKXdpbmRv
d0ZlYXR1cmVzOworLSAoV0tfTlVMTEFCTEUgV0tXZWJWaWV3ICopd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBjcmVhdGVXZWJWaWV3V2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZp
Z3VyYXRpb24gKiljb25maWd1cmF0aW9uIGZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlv
bkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gd2luZG93RmVhdHVyZXM6KFdLV2luZG93RmVhdHVy
ZXMgKil3aW5kb3dGZWF0dXJlczsKIAogLyohIEBhYnN0cmFjdCBEaXNwbGF5cyBhIEphdmFTY3Jp
cHQgYWxlcnQgcGFuZWwuCiAgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRo
ZSBkZWxlZ2F0ZSBtZXRob2QuCkBAIC0xMDMsOCArMTA1LDEwIEBACiAKICBJZiB5b3UgZG8gbm90
IGltcGxlbWVudCB0aGlzIG1ldGhvZCwgdGhlIHdlYiB2aWV3IHdpbGwgYmVoYXZlIGFzIGlmIHRo
ZSB1c2VyIHNlbGVjdGVkIHRoZSBDYW5jZWwgYnV0dG9uLgogICovCi0tICh2b2lkKXdlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21w
dDooTlNTdHJpbmcgKilwcm9tcHQgZGVmYXVsdFRleHQ6KE5TU3RyaW5nICopZGVmYXVsdFRleHQg
aW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoTlNTdHJpbmcgKnJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXI7CistICh2b2lkKXdl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0
aFByb21wdDooTlNTdHJpbmcgKilwcm9tcHQgZGVmYXVsdFRleHQ6KG51bGxhYmxlIE5TU3RyaW5n
ICopZGVmYXVsdFRleHQgaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tfTlVMTEFCTEVfU1BFQ0lGSUVSIE5TU3RyaW5nICpy
ZXN1bHQpKWNvbXBsZXRpb25IYW5kbGVyOwogCiBAZW5kCiAKK1dLX0FTU1VNRV9OT05OVUxMX0VO
RAorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIuaAppbmRleCBhYjYzMDNiZTVkNWNiYzBl
NDg0Mjc1Yjg0Mjg2ODhmNjAyZTRkOWViLi5mMDQ5OTU3MTY4YTVjZTA1NDc5MWVkMTg0NDY0ZTNh
N2ZjMTM0N2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVXNlckNvbnRlbnRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oCkBAIC0yOSw2ICsyOSw4IEBACiAK
ICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCitXS19BU1NVTUVfTk9OTlVMTF9C
RUdJTgorCiBAY2xhc3MgV0tVc2VyU2NyaXB0OwogQHByb3RvY29sIFdLU2NyaXB0TWVzc2FnZUhh
bmRsZXI7CiAKQEAgLTcwLDQgKzcyLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzAp
CiAKIEBlbmQKIAorV0tfQVNTVU1FX05PTk5VTExfRU5ECisKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0LmgKaW5kZXggNDliOWRh
ZDQ0NDA4YzAzMGU0ZTcwNTQ1NmQ0YTYyN2JmZTczMWJjYy4uM2E0ODBlMTdhMTk4ODg4NmFmMGEy
NDliYWRiMzM5NWYzYjNkZDBhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVXNlclNjcmlwdC5oCkBAIC0zNCw2ICszNCw4IEBACiAgQGNvbnN0YW50IFdL
VXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQgICAgSW5qZWN0IHRoZSBzY3Jp
cHQgYWZ0ZXIgdGhlIGRvY3VtZW50IGVsZW1lbnQgaGFzIGJlZW4gY3JlYXRlZCwgYnV0IGJlZm9y
ZSBhbnkgb3RoZXIgY29udGVudCBoYXMgYmVlbiBsb2FkZWQuCiAgQGNvbnN0YW50IFdLVXNlclNj
cmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50RW5kICAgICAgSW5qZWN0IHRoZSBzY3JpcHQgYWZ0
ZXIgdGhlIGRvY3VtZW50IGhhcyBmaW5pc2hlZCBsb2FkaW5nLCBidXQgYmVmb3JlIGFueSBzdWJy
ZXNvdXJjZXMgbWF5IGhhdmUgZmluaXNoZWQgbG9hZGluZy4KICAqLworV0tfQVNTVU1FX05PTk5V
TExfQkVHSU4KKwogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZSkgewogICAgIFdLVXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQs
CiAgICAgV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRFbmQKQEAgLTYyLDQgKzY0
LDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAKIEBlbmQKIAorV0tfQVNTVU1F
X05PTk5VTExfRU5ECisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3LmgKaW5kZXggMDE1ZjU5YzMyNTk0NmIzMmY1ZDQ2YTNiZjkzMWQ2MjUw
YzU0ZDVlZi4uMDA4MzJmZGQzOTAzOTlkMmRlN2M1ZWY1NWVkY2EzZDU4NTcxYjU5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCkBAIC0zMyw2
ICszMyw4IEBACiAjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+CiAjZW5kaWYKIAorV0tfQVNTVU1F
X05PTk5VTExfQkVHSU4KKwogQGNsYXNzIFdLQmFja0ZvcndhcmRMaXN0OwogQGNsYXNzIFdLQmFj
a0ZvcndhcmRMaXN0SXRlbTsKIEBjbGFzcyBXS05hdmlnYXRpb247CkBAIC01OSwxMCArNjEsMTAg
QEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHksIGNvcHkpIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb247CiAK
IC8qISBAYWJzdHJhY3QgVGhlIHdlYiB2aWV3J3MgbmF2aWdhdGlvbiBkZWxlZ2F0ZS4gKi8KLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrKSBpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IG5hdmln
YXRpb25EZWxlZ2F0ZTsKK0Bwcm9wZXJ0eSAoV0tfTlVMTEFCTEVfUFJPUEVSVFkgbm9uYXRvbWlj
LCB3ZWFrKSBpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IG5hdmlnYXRpb25EZWxlZ2F0ZTsKIAog
LyohIEBhYnN0cmFjdCBUaGUgd2ViIHZpZXcncyB1c2VyIGludGVyZmFjZSBkZWxlZ2F0ZS4gKi8K
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrKSBpZCA8V0tVSURlbGVnYXRlPiBVSURlbGVnYXRl
OworQHByb3BlcnR5IChXS19OVUxMQUJMRV9QUk9QRVJUWSBub25hdG9taWMsIHdlYWspIGlkIDxX
S1VJRGVsZWdhdGU+IFVJRGVsZWdhdGU7CiAKIC8qISBAYWJzdHJhY3QgVGhlIHdlYiB2aWV3J3Mg
YmFjay1mb3J3YXJkIGxpc3QuICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIHN0
cm9uZykgV0tCYWNrRm9yd2FyZExpc3QgKmJhY2tGb3J3YXJkTGlzdDsKQEAgLTg3LDcgKzg5LDcg
QEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAgQHBhcmFtIHJlcXVlc3QgVGhlIHJl
cXVlc3Qgc3BlY2lmeWluZyB0aGUgVVJMIHRvIHdoaWNoIHRvIG5hdmlnYXRlLgogIEByZXN1bHQg
QSBuZXcgbmF2aWdhdGlvbiBmb3IgdGhlIGdpdmVuIHJlcXVlc3QuCiAgKi8KLS0gKFdLTmF2aWdh
dGlvbiAqKWxvYWRSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0OworLSAoV0tfTlVMTEFC
TEUgV0tOYXZpZ2F0aW9uICopbG9hZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Q7CiAK
IC8qISBAYWJzdHJhY3QgTmF2aWdhdGVzIHRvIHRoZSByZXF1ZXN0ZWQgZmlsZSBVUkwgb24gdGhl
IGZpbGVzeXN0ZW0uCiAgQHBhcmFtIFVSTCBUaGUgZmlsZSBVUkwgdG8gd2hpY2ggdG8gbmF2aWdh
dGUuCkBAIC05NiwxNCArOTgsMTQgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAg
SWYgcmVhZEFjY2Vzc1VSTCByZWZlcmVuY2VzIGEgZGlyZWN0b3J5LCBmaWxlcyBpbnNpZGUgdGhh
dCBmaWxlIG1heSBiZSBsb2FkZWQgYnkgV2ViS2l0LgogIEByZXN1bHQgQSBuZXcgbmF2aWdhdGlv
biBmb3IgdGhlIGdpdmVuIGZpbGUgVVJMLgogICovCi0tIChXS05hdmlnYXRpb24gKilsb2FkRmls
ZVVSTDooTlNVUkwgKilVUkwgYWxsb3dpbmdSZWFkQWNjZXNzVG9VUkw6KE5TVVJMICopcmVhZEFj
Y2Vzc1VSTCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CistIChXS19OVUxM
QUJMRSBXS05hdmlnYXRpb24gKilsb2FkRmlsZVVSTDooTlNVUkwgKilVUkwgYWxsb3dpbmdSZWFk
QWNjZXNzVG9VUkw6KE5TVVJMICopcmVhZEFjY2Vzc1VSTCBXS19BVkFJTEFCTEUoV0tfTUFDX1RC
QSwgV0tfSU9TX1RCQSk7CiAKIC8qISBAYWJzdHJhY3QgU2V0cyB0aGUgd2VicGFnZSBjb250ZW50
cyBhbmQgYmFzZSBVUkwuCiAgQHBhcmFtIHN0cmluZyBUaGUgc3RyaW5nIHRvIHVzZSBhcyB0aGUg
Y29udGVudHMgb2YgdGhlIHdlYnBhZ2UuCiAgQHBhcmFtIGJhc2VVUkwgQSBVUkwgdGhhdCBpcyB1
c2VkIHRvIHJlc29sdmUgcmVsYXRpdmUgVVJMcyB3aXRoaW4gdGhlIGRvY3VtZW50LgogIEByZXN1
bHQgQSBuZXcgbmF2aWdhdGlvbi4KICAqLwotLSAoV0tOYXZpZ2F0aW9uICopbG9hZEhUTUxTdHJp
bmc6KE5TU3RyaW5nICopc3RyaW5nIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTDsKKy0gKFdLX05V
TExBQkxFIFdLTmF2aWdhdGlvbiAqKWxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyBi
YXNlVVJMOihXS19OVUxMQUJMRSBOU1VSTCAqKWJhc2VVUkw7CiAKIC8qISBAYWJzdHJhY3QgU2V0
cyB0aGUgd2VicGFnZSBjb250ZW50cyBhbmQgYmFzZSBVUkwuCiAgQHBhcmFtIGRhdGEgVGhlIGRh
dGEgdG8gdXNlIGFzIHRoZSBjb250ZW50cyBvZiB0aGUgd2VicGFnZS4KQEAgLTExMiw3ICsxMTQs
NyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKICBAcGFyYW0gYmFzZVVSTCBBIFVS
TCB0aGF0IGlzIHVzZWQgdG8gcmVzb2x2ZSByZWxhdGl2ZSBVUkxzIHdpdGhpbiB0aGUgZG9jdW1l
bnQuCiAgQHJlc3VsdCBBIG5ldyBuYXZpZ2F0aW9uLgogICovCi0tIChXS05hdmlnYXRpb24gKils
b2FkRGF0YTooTlNEYXRhICopZGF0YSBNSU1FVHlwZTooTlNTdHJpbmcgKilNSU1FVHlwZSBjaGFy
YWN0ZXJFbmNvZGluZ05hbWU6KE5TU3RyaW5nICopY2hhcmFjdGVyRW5jb2RpbmdOYW1lIGJhc2VV
Ukw6KE5TVVJMICopYmFzZVVSTCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7
CistIChXS19OVUxMQUJMRSBXS05hdmlnYXRpb24gKilsb2FkRGF0YTooTlNEYXRhICopZGF0YSBN
SU1FVHlwZTooTlNTdHJpbmcgKilNSU1FVHlwZSBjaGFyYWN0ZXJFbmNvZGluZ05hbWU6KE5TU3Ry
aW5nICopY2hhcmFjdGVyRW5jb2RpbmdOYW1lIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCBXS19B
VkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CiAKIC8qISBAYWJzdHJhY3QgTmF2aWdh
dGVzIHRvIGFuIGl0ZW0gZnJvbSB0aGUgYmFjay1mb3J3YXJkIGxpc3QgYW5kIHNldHMgaXQKICBh
cyB0aGUgY3VycmVudCBpdGVtLgpAQCAtMTIyLDEzICsxMjQsMTMgQEAgV0tfQ0xBU1NfQVZBSUxB
QkxFKDEwXzEwLCA4XzApCiAgdGhlIGN1cnJlbnQgaXRlbSBvciBpcyBub3QgcGFydCBvZiB0aGUg
d2ViIHZpZXcncyBiYWNrLWZvcndhcmQgbGlzdC4KICBAc2VlYWxzbyBiYWNrRm9yd2FyZExpc3QK
ICAqLwotLSAoV0tOYXZpZ2F0aW9uICopZ29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW06KFdLQmFja0Zv
cndhcmRMaXN0SXRlbSAqKWl0ZW07CistIChXS19OVUxMQUJMRSBXS05hdmlnYXRpb24gKilnb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbTsKIAogLyoh
IEBhYnN0cmFjdCBUaGUgcGFnZSB0aXRsZS4KICBAZGlzY3Vzc2lvbiBAbGluayBXS1dlYlZpZXcg
QC9saW5rIGlzIGtleS12YWx1ZSBvYnNlcnZpbmcgKEtWTykgY29tcGxpYW50CiAgZm9yIHRoaXMg
cHJvcGVydHkuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNT
dHJpbmcgKnRpdGxlOworQHByb3BlcnR5IChXS19OVUxMQUJMRV9QUk9QRVJUWSBub25hdG9taWMs
IHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqdGl0bGU7CiAKIC8qISBAYWJzdHJhY3QgVGhlIGFj
dGl2ZSBVUkwuCiAgQGRpc2N1c3Npb24gVGhpcyBpcyB0aGUgVVJMIHRoYXQgc2hvdWxkIGJlIHJl
ZmxlY3RlZCBpbiB0aGUgdXNlcgpAQCAtMTM2LDcgKzEzOCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJM
RSgxMF8xMCwgOF8wKQogIEBsaW5rIFdLV2ViVmlldyBAL2xpbmsgaXMga2V5LXZhbHVlIG9ic2Vy
dmluZyAoS1ZPKSBjb21wbGlhbnQgZm9yIHRoaXMKICBwcm9wZXJ0eS4KICAqLwotQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU1VSTCAqVVJMOworQHByb3BlcnR5IChXS19O
VUxMQUJMRV9QUk9QRVJUWSBub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU1VSTCAqVVJMOwog
CiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHZp
ZXcgaXMgY3VycmVudGx5CiAgbG9hZGluZyBjb250ZW50LgpAQCAtMTgyLDI0ICsxODQsMjQgQEAg
V0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAgQHJlc3VsdCBBIG5ldyBuYXZpZ2F0aW9u
IHRvIHRoZSByZXF1ZXN0ZWQgaXRlbSwgb3IgbmlsIGlmIHRoZXJlIGlzIG5vIGJhY2sKICBpdGVt
IGluIHRoZSBiYWNrLWZvcndhcmQgbGlzdC4KICAqLwotLSAoV0tOYXZpZ2F0aW9uICopZ29CYWNr
OworLSAoV0tfTlVMTEFCTEUgV0tOYXZpZ2F0aW9uICopZ29CYWNrOwogCiAvKiEgQGFic3RyYWN0
IE5hdmlnYXRlcyB0byB0aGUgZm9yd2FyZCBpdGVtIGluIHRoZSBiYWNrLWZvcndhcmQgbGlzdC4K
ICBAcmVzdWx0IEEgbmV3IG5hdmlnYXRpb24gdG8gdGhlIHJlcXVlc3RlZCBpdGVtLCBvciBuaWwg
aWYgdGhlcmUgaXMgbm8KICBmb3J3YXJkIGl0ZW0gaW4gdGhlIGJhY2stZm9yd2FyZCBsaXN0Lgog
ICovCi0tIChXS05hdmlnYXRpb24gKilnb0ZvcndhcmQ7CistIChXS19OVUxMQUJMRSBXS05hdmln
YXRpb24gKilnb0ZvcndhcmQ7CiAKIC8qISBAYWJzdHJhY3QgUmVsb2FkcyB0aGUgY3VycmVudCBw
YWdlLgogIEByZXN1bHQgQSBuZXcgbmF2aWdhdGlvbiByZXByZXNlbnRpbmcgdGhlIHJlbG9hZC4K
ICAqLwotLSAoV0tOYXZpZ2F0aW9uICopcmVsb2FkOworLSAoV0tfTlVMTEFCTEUgV0tOYXZpZ2F0
aW9uICopcmVsb2FkOwogCiAvKiEgQGFic3RyYWN0IFJlbG9hZHMgdGhlIGN1cnJlbnQgcGFnZSwg
cGVyZm9ybWluZyBlbmQtdG8tZW5kIHJldmFsaWRhdGlvbgogIHVzaW5nIGNhY2hlLXZhbGlkYXRp
bmcgY29uZGl0aW9uYWxzIGlmIHBvc3NpYmxlLgogIEByZXN1bHQgQSBuZXcgbmF2aWdhdGlvbiBy
ZXByZXNlbnRpbmcgdGhlIHJlbG9hZC4KICAqLwotLSAoV0tOYXZpZ2F0aW9uICopcmVsb2FkRnJv
bU9yaWdpbjsKKy0gKFdLX05VTExBQkxFIFdLTmF2aWdhdGlvbiAqKXJlbG9hZEZyb21PcmlnaW47
CiAKIC8qISBAYWJzdHJhY3QgU3RvcHMgbG9hZGluZyBhbGwgcmVzb3VyY2VzIG9uIHRoZSBjdXJy
ZW50IHBhZ2UuCiAgKi8KQEAgLTIxMCw3ICsyMTIsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBf
MTAsIDhfMCkKICBAcGFyYW0gY29tcGxldGlvbkhhbmRsZXIgQSBibG9jayB0byBpbnZva2Ugd2hl
biBzY3JpcHQgZXZhbHVhdGlvbiBjb21wbGV0ZXMgb3IgZmFpbHMuCiAgQGRpc2N1c3Npb24gVGhl
IGNvbXBsZXRpb25IYW5kbGVyIGlzIHBhc3NlZCB0aGUgcmVzdWx0IG9mIHRoZSBzY3JpcHQgZXZh
bHVhdGlvbiBvciBhbiBlcnJvci4KICovCi0tICh2b2lkKWV2YWx1YXRlSmF2YVNjcmlwdDooTlNT
dHJpbmcgKilqYXZhU2NyaXB0U3RyaW5nIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwg
TlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZvaWQpZXZhbHVhdGVKYXZhU2NyaXB0
OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4g
V0tfTlVMTEFCTEVfU1BFQ0lGSUVSKShXS19OVUxMQUJMRV9TUEVDSUZJRVIgaWQsIFdLX05VTExB
QkxFX1NQRUNJRklFUiBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyOwogCiAvKiEgQGFic3Ry
YWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgaG9yaXpvbnRhbCBzd2lwZSBn
ZXN0dXJlcwogIHdpbGwgdHJpZ2dlciBiYWNrLWZvcndhcmQgbGlzdCBuYXZpZ2F0aW9ucy4KQEAg
LTIyMCw3ICsyMjIsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIAogLyohIEBh
YnN0cmFjdCBUaGUgY3VzdG9tIHVzZXIgYWdlbnQgc3RyaW5nIG9yIG5pbCBpZiBubyBjdXN0b20g
dXNlciBhZ2VudCBzdHJpbmcgaGFzIGJlZW4gc2V0LgogKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tVXNlckFnZW50IFdLX0FWQUlMQUJMRShXS19NQUNfVEJB
LCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAoV0tfTlVMTEFCTEVfUFJPUEVSVFkgbm9uYXRvbWlj
LCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tVXNlckFnZW50IFdLX0FWQUlMQUJMRShXS19NQUNfVEJB
LCBXS19JT1NfVEJBKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC8qISBAYWJzdHJhY3QgVGhl
IHNjcm9sbCB2aWV3IGFzc29jaWF0ZWQgd2l0aCB0aGUgd2ViIHZpZXcuCkBAIC0yNjEsMzMgKzI2
MywzNSBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKICBiYWNrLWZvcndhcmQgbGlz
dC4KICBAcGFyYW0gc2VuZGVyIFRoZSBvYmplY3QgdGhhdCBzZW50IHRoaXMgbWVzc2FnZS4KICAq
LwotLSAoSUJBY3Rpb24pZ29CYWNrOihpZClzZW5kZXI7CistIChJQkFjdGlvbilnb0JhY2s6KFdL
X05VTExBQkxFIGlkKXNlbmRlcjsKIAogLyohIEBhYnN0cmFjdCBBY3Rpb24gbWV0aG9kIHRoYXQg
bmF2aWdhdGVzIHRvIHRoZSBmb3J3YXJkIGl0ZW0gaW4gdGhlCiAgYmFjay1mb3J3YXJkIGxpc3Qu
CiAgQHBhcmFtIHNlbmRlciBUaGUgb2JqZWN0IHRoYXQgc2VudCB0aGlzIG1lc3NhZ2UuCiAgKi8K
LS0gKElCQWN0aW9uKWdvRm9yd2FyZDooaWQpc2VuZGVyOworLSAoSUJBY3Rpb24pZ29Gb3J3YXJk
OihXS19OVUxMQUJMRSBpZClzZW5kZXI7CiAKIC8qISBAYWJzdHJhY3QgQWN0aW9uIG1ldGhvZCB0
aGF0IHJlbG9hZHMgdGhlIGN1cnJlbnQgcGFnZS4KICBAcGFyYW0gc2VuZGVyIFRoZSBvYmplY3Qg
dGhhdCBzZW50IHRoaXMgbWVzc2FnZS4KICAqLwotLSAoSUJBY3Rpb24pcmVsb2FkOihpZClzZW5k
ZXI7CistIChJQkFjdGlvbilyZWxvYWQ6KFdLX05VTExBQkxFIGlkKXNlbmRlcjsKIAogLyohIEBh
YnN0cmFjdCBBY3Rpb24gbWV0aG9kIHRoYXQgcmVsb2FkcyB0aGUgY3VycmVudCBwYWdlLCBwZXJm
b3JtaW5nCiAgZW5kLXRvLWVuZCByZXZhbGlkYXRpb24gdXNpbmcgY2FjaGUtdmFsaWRhdGluZyBj
b25kaXRpb25hbHMgaWYgcG9zc2libGUuCiAgQHBhcmFtIHNlbmRlciBUaGUgb2JqZWN0IHRoYXQg
c2VudCB0aGlzIG1lc3NhZ2UuCiAgKi8KLS0gKElCQWN0aW9uKXJlbG9hZEZyb21PcmlnaW46KGlk
KXNlbmRlcjsKKy0gKElCQWN0aW9uKXJlbG9hZEZyb21PcmlnaW46KFdLX05VTExBQkxFIGlkKXNl
bmRlcjsKIAogLyohIEBhYnN0cmFjdCBBY3Rpb24gbWV0aG9kIHRoYXQgc3RvcHMgbG9hZGluZyBh
bGwgcmVzb3VyY2VzIG9uIHRoZSBjdXJyZW50CiAgcGFnZS4KICBAcGFyYW0gc2VuZGVyIFRoZSBv
YmplY3QgdGhhdCBzZW50IHRoaXMgbWVzc2FnZS4KICAqLwotLSAoSUJBY3Rpb24pc3RvcExvYWRp
bmc6KGlkKXNlbmRlcjsKKy0gKElCQWN0aW9uKXN0b3BMb2FkaW5nOihXS19OVUxMQUJMRSBpZClz
ZW5kZXI7CiAKIEBlbmQKIAogI2VuZGlmCiAKK1dLX0FTU1VNRV9OT05OVUxMX0VORAorCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uLmgKaW5kZXggMDY3ZGU3NzE1ODYyZTg4NDY1OTBmNTIyNmMx
NTQ1MDZlOGNmM2VjNy4uMzBjODIyMTM3Mjc1MjViNDczNWJhOTM1MTExZjVlZDExYTEzMzdiYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uLmgKQEAgLTI5LDYgKzI5LDggQEAKIAogI2ltcG9ydCA8Rm91
bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKK1dLX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKIEBjbGFz
cyBXS1ByZWZlcmVuY2VzOwogQGNsYXNzIFdLUHJvY2Vzc1Bvb2w7CiBAY2xhc3MgV0tVc2VyQ29u
dGVudENvbnRyb2xsZXI7CkBAIC03OSw3ICs4MSw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8x
MCwgOF8wKQogCiAvKiEgQGFic3RyYWN0IFRoZSBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbiBhcyB1
c2VkIGluIHRoZSB1c2VyIGFnZW50IHN0cmluZy4KICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
Y29weSkgTlNTdHJpbmcgKmFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCBXS19BVkFJTEFCTEUo
V0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKFdLX05VTExBQkxFLCBub25hdG9t
aWMsIGNvcHkpIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQgV0tfQVZBSUxB
QkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogLyoh
IEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEhUTUw1IHZpZGVv
cyBwbGF5IGlubGluZQpAQCAtMTEwLDQgKzExMiw2IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8x
MCwgOF8wKQogCiBAZW5kCiAKK1dLX0FTU1VNRV9OT05OVUxMX0VORAorCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXaW5kb3dGZWF0dXJl
cy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dpbmRvd0ZlYXR1cmVz
LmgKaW5kZXggODkwZTU0MjBiNWRjN2E0ZjRkMDZjZjM4Y2YyMzIzOTg4YjljNmQ0NC4uZDljYzA1
YjgzM2QxYTllOTk0NmE5ZDk2ZTA5MjdmMDNmZGYxNWQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dpbmRvd0ZlYXR1cmVzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dpbmRvd0ZlYXR1cmVzLmgKQEAgLTMxLDQx
ICszMSw0NSBAQAogCiAvKiEgV0tXaW5kb3dGZWF0dXJlcyBzcGVjaWZpZXMgb3B0aW9uYWwgYXR0
cmlidXRlcyBmb3IgdGhlIGNvbnRhaW5pbmcgd2luZG93IHdoZW4gYSBuZXcgV0tXZWJWaWV3IGlz
IHJlcXVlc3RlZC4KICAqLworV0tfQVNTVU1FX05PTk5VTExfQkVHSU4KKwogV0tfQ0xBU1NfQVZB
SUxBQkxFKDEwXzEwLCA4XzApCiBAaW50ZXJmYWNlIFdLV2luZG93RmVhdHVyZXMgOiBOU09iamVj
dAogCiAvKiEgQGFic3RyYWN0IEJPT0wuIFdoZXRoZXIgdGhlIG1lbnUgYmFyIHNob3VsZCBiZSB2
aXNpYmxlLiBuaWwgaWYgbWVudSBiYXIgdmlzaWJpbGl0eSB3YXMgbm90IHNwZWNpZmllZC4KICAq
LwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU051bWJlciAqbWVudUJhclZpc2li
aWxpdHk7CitAcHJvcGVydHkgKFdLX05VTExBQkxFX1BST1BFUlRZIG5vbmF0b21pYywgcmVhZG9u
bHkpIE5TTnVtYmVyICptZW51QmFyVmlzaWJpbGl0eTsKIAogLyohIEBhYnN0cmFjdCBCT09MLiBX
aGV0aGVyIHRoZSBzdGF0dXMgYmFyIHNob3VsZCBiZSB2aXNpYmxlLiBuaWwgaWYgc3RhdHVzIGJh
ciB2aXNpYmlsaXR5IHdhcyBub3Qgc3BlY2lmaWVkLgogICovCi1AcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TTnVtYmVyICpzdGF0dXNCYXJWaXNpYmlsaXR5OworQHByb3BlcnR5IChX
S19OVUxMQUJMRV9QUk9QRVJUWSBub25hdG9taWMsIHJlYWRvbmx5KSBOU051bWJlciAqc3RhdHVz
QmFyVmlzaWJpbGl0eTsKIAogLyohIEBhYnN0cmFjdCBCT09MLiBXaGV0aGVyIHRvb2xiYXJzIHNo
b3VsZCBiZSB2aXNpYmxlLiBuaWwgaWYgdG9vbGJhciB2aXNpYmlsaXR5IHdhcyBub3Qgc3BlY2lm
aWVkLgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TTnVtYmVyICp0b29s
YmFyc1Zpc2liaWxpdHk7CitAcHJvcGVydHkgKFdLX05VTExBQkxFX1BST1BFUlRZIG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TTnVtYmVyICp0b29sYmFyc1Zpc2liaWxpdHk7CiAKIC8qISBAYWJzdHJh
Y3QgQk9PTC4gV2hldGhlciB0aGUgY29udGFpbmluZyB3aW5kb3cgc2hvdWxkIGJlIHJlc2l6YWJs
ZS4gbmlsIGlmIHJlc2l6YWJpbGl0eSB3YXMgbm90IHNwZWNpZmllZC4KICAqLwotQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBOU051bWJlciAqYWxsb3dzUmVzaXppbmc7CitAcHJvcGVy
dHkgKFdLX05VTExBQkxFX1BST1BFUlRZIG5vbmF0b21pYywgcmVhZG9ubHkpIE5TTnVtYmVyICph
bGxvd3NSZXNpemluZzsKIAogLyohIEBhYnN0cmFjdCBDR0Zsb2F0LiBUaGUgeCBjb29yZGluYXRl
IG9mIHRoZSBjb250YWluaW5nIHdpbmRvdy4gbmlsIGlmIHRoZSB4IGNvb3JkaW5hdGUgd2FzIG5v
dCBzcGVjaWZpZWQuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNOdW1i
ZXIgKng7CitAcHJvcGVydHkgKFdLX05VTExBQkxFX1BST1BFUlRZIG5vbmF0b21pYywgcmVhZG9u
bHkpIE5TTnVtYmVyICp4OwogCiAvKiEgQGFic3RyYWN0IENHRmxvYXQuIFRoZSB5IGNvb3JkaW5h
dGUgb2YgdGhlIGNvbnRhaW5pbmcgd2luZG93LiBuaWwgaWYgdGhlIHkgY29vcmRpbmF0ZSB3YXMg
bm90IHNwZWNpZmllZC4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU051
bWJlciAqeTsKK0Bwcm9wZXJ0eSAoV0tfTlVMTEFCTEVfUFJPUEVSVFkgbm9uYXRvbWljLCByZWFk
b25seSkgTlNOdW1iZXIgKnk7CiAKIC8qISBAYWJzdHJhY3QgQ0dGbG9hdC4gVGhlIHdpZHRoIGNv
b3JkaW5hdGUgb2YgdGhlIGNvbnRhaW5pbmcgd2luZG93LiBuaWwgaWYgdGhlIHdpZHRoIHdhcyBu
b3Qgc3BlY2lmaWVkLgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TTnVt
YmVyICp3aWR0aDsKK0Bwcm9wZXJ0eSAoV0tfTlVMTEFCTEVfUFJPUEVSVFkgbm9uYXRvbWljLCBy
ZWFkb25seSkgTlNOdW1iZXIgKndpZHRoOwogCiAvKiEgQGFic3RyYWN0IENHRmxvYXQuIFRoZSBo
ZWlnaHQgY29vcmRpbmF0ZSBvZiB0aGUgY29udGFpbmluZyB3aW5kb3cuIG5pbCBpZiB0aGUgaGVp
Z2h0IHdhcyBub3Qgc3BlY2lmaWVkLgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIE5TTnVtYmVyICpoZWlnaHQ7CitAcHJvcGVydHkgKFdLX05VTExBQkxFX1BST1BFUlRZIG5v
bmF0b21pYywgcmVhZG9ubHkpIE5TTnVtYmVyICpoZWlnaHQ7CiAKIEBlbmQKIAorV0tfQVNTVU1F
X05PTk5VTExfRU5ECisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvbWFjL3Bv
c3Rwcm9jZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoIGIvU291cmNlL1dlYktpdDIvbWFjL3Bvc3Rw
cm9jZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoCmluZGV4IGYyOWZmZGQ1NTY0N2UwZTk2ZGIxNzM0
NzFlZjc4MmE3MTUzY2UxY2QuLmIxZTUyZmU4NTQ5OTkzMWJlODRhN2QxYzhiZmU5ODZjMzdmMjUx
OGEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL21hYy9wb3N0cHJvY2Vzcy1mcmFtZXdvcmst
aGVhZGVycy5zaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9tYWMvcG9zdHByb2Nlc3MtZnJhbWV3b3Jr
LWhlYWRlcnMuc2gKQEAgLTQ1LDcgKzQ1LDcgQEAgZnVuY3Rpb24gcmV3cml0ZV9oZWFkZXJzICgp
IHsKIAogICAgIGZvciBIRUFERVJfUEFUSCBpbiAkMS8qLmg7IGRvCiAgICAgICAgIGlmIFtbICRI
RUFERVJfUEFUSCAtbnQgJFRJTUVTVEFNUF9QQVRIIF1dOyB0aGVuCi0gICAgICAgICAgICBzZWQg
LWUgcy9XS19NQUNfVEJBLyR7T1NYX1ZFUlNJT059LyAtZSBzL1dLX0lPU19UQkEvJHtJT1NfVkVS
U0lPTn0vIC1lIHMvXldLX0NMQVNTX0FWQUlMQUJMRS9OU19DTEFTU19BVkFJTEFCTEUvIC1lIHMv
V0tfQVZBSUxBQkxFL05TX0FWQUlMQUJMRS8gLWUgcy9XS19ERVBSRUNBVEVEL05TX0RFUFJFQ0FU
RUQvIC1lIHMvV0tfREVTSUdOQVRFRF9JTklUSUFMSVpFUi9OU19ERVNJR05BVEVEX0lOSVRJQUxJ
WkVSLyAtZSBzL1dLX0VOVU1fQVZBSUxBQkxFL05TX0VOVU1fQVZBSUxBQkxFLyAtZSBzL1dLX1VO
QVZBSUxBQkxFL05TX1VOQVZBSUxBQkxFLyAtZSBzL1dLX0FTU1VNRV9OT05OVUxMX0JFR0lOL05T
X0FTU1VNRV9OT05OVUxMX0JFR0lOLyAtZSBzL1dLX0FTU1VNRV9OT05OVUxMX0VORC9OU19BU1NV
TUVfTk9OTlVMTF9FTkQvIC1lIHMvV0tfTlVMTEFCTEVfUFJPUEVSVFkvbnVsbGFibGUsLyAtZSBz
L1dLX05VTExBQkxFL251bGxhYmxlLyAtZSBzL1dLX05VTExfVU5TUEVDSUZJRUQvbnVsbF91bnNw
ZWNpZmllZC8gJHtIRUFERVJfUEFUSH0gPiAke1RBUkdFVF9URU1QX0RJUn0vJHtIRUFERVJfUEFU
SCMjKi99IHx8IGV4aXQgJF87CisgICAgICAgICAgICBzZWQgLWUgcy9XS19NQUNfVEJBLyR7T1NY
X1ZFUlNJT059LyAtZSBzL1dLX0lPU19UQkEvJHtJT1NfVkVSU0lPTn0vIC1lIHMvXldLX0NMQVNT
X0FWQUlMQUJMRS9OU19DTEFTU19BVkFJTEFCTEUvIC1lIHMvV0tfQVZBSUxBQkxFL05TX0FWQUlM
QUJMRS8gLWUgcy9XS19ERVBSRUNBVEVEL05TX0RFUFJFQ0FURUQvIC1lIHMvV0tfREVTSUdOQVRF
RF9JTklUSUFMSVpFUi9OU19ERVNJR05BVEVEX0lOSVRJQUxJWkVSLyAtZSBzL1dLX0VOVU1fQVZB
SUxBQkxFL05TX0VOVU1fQVZBSUxBQkxFLyAtZSBzL1dLX1VOQVZBSUxBQkxFL05TX1VOQVZBSUxB
QkxFLyAtZSBzL1dLX0FTU1VNRV9OT05OVUxMX0JFR0lOL05TX0FTU1VNRV9OT05OVUxMX0JFR0lO
LyAtZSBzL1dLX0FTU1VNRV9OT05OVUxMX0VORC9OU19BU1NVTUVfTk9OTlVMTF9FTkQvIC1lIHMv
V0tfTlVMTEFCTEVfUFJPUEVSVFkvbnVsbGFibGUsLyAtZSBzL1dLX05VTExBQkxFX1NQRUNJRklF
Ui9fX251bGxhYmxlL2cgLWUgcy9XS19OVUxMQUJMRS9udWxsYWJsZS9nIC1lIHMvV0tfTlVMTF9V
TlNQRUNJRklFRC9udWxsX3Vuc3BlY2lmaWVkLyAke0hFQURFUl9QQVRIfSA+ICR7VEFSR0VUX1RF
TVBfRElSfS8ke0hFQURFUl9QQVRIIyMqL30gfHwgZXhpdCAkXzsKICAgICAgICAgICAgIG12ICR7
VEFSR0VUX1RFTVBfRElSfS8ke0hFQURFUl9QQVRIIyMqL30gJEhFQURFUl9QQVRIOwogICAgICAg
ICBmaQogICAgIGRvbmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246661</attachid>
            <date>2015-02-16 10:28:30 -0800</date>
            <delta_ts>2015-02-16 10:46:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141652-20150216102838.patch</filename>
            <type>text/plain</type>
            <size>27606</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwMTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDY4ZGNmNGYyZjIyODky
YjhmYWU4MjMzMmYwOTc0OTYyYWJlMzRiOS4uYmFjYjljN2ExMGI4YWQ1N2U5NmY4NGM4NWE3ODdl
MWJlMDViYzhkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTAyLTE2ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIG51bGxhYmls
aXR5IHF1YWxpZmllcnMgdG8gYWxsIEFQSSBoZWFkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE2NTIKKyAgICAgICAgcmRhcjovL3Byb2JsZW0v
MTk3OTM2MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNoYXJlZC9BUEkvQ29jb2EvV0tGb3VuZGF0aW9uLmg6CisgICAgICAgIEFkZCBhIFdLX05V
TExBQkxFX1NQRUNJRklFUiBtYWNyby4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tCYWNrRm9yd2FyZExpc3RJdGVtLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0ZyYW1lSW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
QWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxl
Z2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9u
c2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlSGFuZGxlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2luZG93RmVhdHVyZXMuaDoKKworICAgICAgICAqIG1hYy9wb3N0cHJvY2Vzcy1mcmFtZXdvcmst
aGVhZGVycy5zaDoKKyAgICAgICAgSGFuZGxlIHRoZSBXS19OVUxMQUJMRV9TUEVDSUZJRVIgbWFj
cm8uIENoYW5nZSB0aGUgV0tfTlVMTEFCTEUgc2VkIGNvbW1hbmQgdG8gcmVwbGFjZQorICAgICAg
ICBhbGwgb2NjdXJyZW5jZXMgb2YgV0tfTlVMTEFCTEUgaW5zdGVhZCBvZiBqdXN0IHRoZSBmaXJz
dCBvbmUuCisKIDIwMTUtMDItMTMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgbnVsbGFiaWxpdHkgdG8gdGhlIGhlYWRlciBw
b3N0cHJvY2Vzc2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2Nv
YS9XS0ZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tGb3Vu
ZGF0aW9uLmgKaW5kZXggZmNiZDdjYTU4MjZjYzAxY2MxYWVhYTUxOWQ0ZThmMWZiNjIwZmZiMy4u
NGQyMGU3NzEyMDNkYjlhMWIyMmFmOTRjYzk4NzNiMzBhNzU1NDIzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS0ZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLRm91bmRhdGlvbi5oCkBAIC04MCwxMCArODAsMTIg
QEAKICNpZiAhX19oYXNfYXR0cmlidXRlKG5vZXNjYXBlKQogI2RlZmluZSBXS19OVUxMQUJMRQog
I2RlZmluZSBXS19OVUxMX1VOU1BFQ0lGSUVECisjZGVmaW5lIFdLX05VTExBQkxFX1NQRUNJRklF
UgogI2RlZmluZSBXS19OVUxMQUJMRV9QUk9QRVJUWQogI2Vsc2UKICNkZWZpbmUgV0tfTlVMTEFC
TEUgbnVsbGFibGUKICNkZWZpbmUgV0tfTlVMTF9VTlNQRUNJRklFRCBudWxsX3Vuc3BlY2lmaWVk
CisjZGVmaW5lIFdLX05VTExBQkxFX1NQRUNJRklFUiBfX251bGxhYmxlCiAjZGVmaW5lIFdLX05V
TExBQkxFX1BST1BFUlRZIG51bGxhYmxlLAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oCmlu
ZGV4IDZjZDhkMjc4YzVlNDNjNGY1MGEwNzRlYmNhMTQ0M2JiYTJlY2I5NDQuLjE0NjQ5OTllMTYz
ZGQ2NGEwMGNmNTE5ZTMzMDNlMmU5MjQ5ZmI5YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaApAQCAt
MzEsNiArMzEsOCBAQAogCiAvKiEgQSBXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gb2JqZWN0IHJlcHJl
c2VudHMgYSB3ZWJwYWdlIGluIHRoZSBiYWNrLWZvcndhcmQgbGlzdCBvZiBhIHdlYiB2aWV3Lgog
ICovCitXS19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAs
IDhfMCkKIEBpbnRlcmZhY2UgV0tCYWNrRm9yd2FyZExpc3RJdGVtIDogTlNPYmplY3QKIApAQCAt
NDAsNyArNDIsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIAogLyohIEBhYnN0
cmFjdCBUaGUgdGl0bGUgb2YgdGhlIHdlYnBhZ2UgcmVwcmVzZW50ZWQgYnkgdGhpcyBpdGVtLgog
ICovCi1AcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqdGl0bGU7CitAcHJvcGVy
dHkgKFdLX05VTExBQkxFLCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKnRpdGxlOwogCiAvKiEg
QGFic3RyYWN0IFRoZSBVUkwgb2YgdGhlIGluaXRpYWwgcmVxdWVzdCB0aGF0IGNyZWF0ZWQgdGhp
cyBpdGVtLgogICovCkBAIC00OCw0ICs1MCw2IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwg
OF8wKQogCiBAZW5kCiAKK1dLX0FTU1VNRV9OT05OVUxMX0VORAorCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm8uaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm8uaAppbmRleCAxNWRk
ZmFjNmY5NWQ4NmQ4OTJhMWE4ZjZkNGE1MzQ5MzY1NzBmYmUzLi5lZDExYmUzZTBmNWJiODA3ZDU3
OTM4ZjVhOTE4MGVkOTljM2ZhM2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5oCkBAIC0zNCw2ICszNCw4IEBACiAgaXQgZG9lcyBub3Qg
dW5pcXVlbHkgaWRlbnRpZnkgYSBmcmFtZSBhY3Jvc3MgbXVsdGlwbGUgZGVsZWdhdGUgbWV0aG9k
CiAgY2FsbHMuCiAgKi8KK1dLX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKIFdLX0NMQVNTX0FWQUlM
QUJMRSgxMF8xMCwgOF8wKQogQGludGVyZmFjZSBXS0ZyYW1lSW5mbyA6IE5TT2JqZWN0IDxOU0Nv
cHlpbmc+CiAKQEAgLTQ4LDQgKzUwLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzAp
CiAKIEBlbmQKIAorV0tfQVNTVU1FX05PTk5VTExfRU5ECisKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLmgK
aW5kZXggOGNiYmJlM2Q3NDg0ZWUyNzVmYWYyNGE4ODM0NjRiNDJmZjgwMGUyNi4uMWNjZDkwMWNk
YmMzOTZiMTM5ODhhMzVmMGVlMTQ0ODAyMTgyMDA3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5oCkBAIC0zMyw2
ICszMyw4IEBACiAjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+CiAjZW5kaWYKIAorV0tfQVNTVU1F
X05PTk5VTExfQkVHSU4KKwogQGNsYXNzIFdLRnJhbWVJbmZvOwogCiAvKiEgQGVudW0gV0tOYXZp
Z2F0aW9uVHlwZQpAQCAtNjUsNyArNjcsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhf
MCkKIAogLyohIEBhYnN0cmFjdCBUaGUgdGFyZ2V0IGZyYW1lLCBvciBuaWwgaWYgdGhpcyBpcyBh
IG5ldyB3aW5kb3cgbmF2aWdhdGlvbi4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5LCBjb3B5KSBXS0ZyYW1lSW5mbyAqdGFyZ2V0RnJhbWU7CitAcHJvcGVydHkgKFdLX05VTExB
QkxFX1BST1BFUlRZIG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIFdLRnJhbWVJbmZvICp0YXJn
ZXRGcmFtZTsKIAogLyohIEBhYnN0cmFjdCBUaGUgdHlwZSBvZiBhY3Rpb24gdGhhdCB0cmlnZ2Vy
ZWQgdGhlIG5hdmlnYXRpb24uCiAgQGRpc2N1c3Npb24gVGhlIHZhbHVlIGlzIG9uZSBvZiB0aGUg
Y29uc3RhbnRzIG9mIHRoZSBlbnVtZXJhdGVkIHR5cGUgV0tOYXZpZ2F0aW9uVHlwZS4KQEAgLTkw
LDQgKzkyLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAKIEBlbmQKIAorV0tf
QVNTVU1FX05PTk5VTExfRU5ECisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oCmluZGV4IGI3ZGQw
MjkwODg5YzZhNjg2N2IxN2RlZGViYzE3NjcxZWE1ODYzZjkuLjZlNWNkZDYzZjYwYmZiY2NiZGYz
ZjQ5MDJjNGE0ZmU1M2IzNWFmMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlLmgKQEAgLTI5LDYgKzI5LDgg
QEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKK1dLX0FTU1VNRV9OT05O
VUxMX0JFR0lOCisKIEBjbGFzcyBXS05hdmlnYXRpb247CiBAY2xhc3MgV0tOYXZpZ2F0aW9uQWN0
aW9uOwogQGNsYXNzIFdLTmF2aWdhdGlvblJlc3BvbnNlOwpAQCAtODgsMTQgKzkwLDE0IEBAIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5KSB7CiAg
QHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2Qu
CiAgQHBhcmFtIG5hdmlnYXRpb24gVGhlIG5hdmlnYXRpb24uCiAgKi8KLS0gKHZvaWQpd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tO
YXZpZ2F0aW9uICopbmF2aWdhdGlvbjsKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tfTlVMTF9VTlNQRUNJRklFRCBX
S05hdmlnYXRpb24gKiluYXZpZ2F0aW9uOwogCiAvKiEgQGFic3RyYWN0IEludm9rZWQgd2hlbiBh
IHNlcnZlciByZWRpcmVjdCBpcyByZWNlaXZlZCBmb3IgdGhlIG1haW4KICBmcmFtZS4KICBAcGFy
YW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KICBA
cGFyYW0gbmF2aWdhdGlvbiBUaGUgbmF2aWdhdGlvbi4KICAqLwotLSAodm9pZCl3ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbjsKKy0gKHZvaWQpd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bE5hdmlnYXRpb246KFdLX05VTExfVU5TUEVDSUZJRUQgV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlv
bjsKIAogLyohIEBhYnN0cmFjdCBJbnZva2VkIHdoZW4gYW4gZXJyb3Igb2NjdXJzIHdoaWxlIHN0
YXJ0aW5nIHRvIGxvYWQgZGF0YSBmb3IKICB0aGUgbWFpbiBmcmFtZS4KQEAgLTEwMywxOSArMTA1
LDE5IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9s
aWN5KSB7CiAgQHBhcmFtIG5hdmlnYXRpb24gVGhlIG5hdmlnYXRpb24uCiAgQHBhcmFtIGVycm9y
IFRoZSBlcnJvciB0aGF0IG9jY3VycmVkLgogICovCi0tICh2b2lkKXdlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICop
bmF2aWdhdGlvbiB3aXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcjsKKy0gKHZvaWQpd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uOihXS19OVUxM
X1VOU1BFQ0lGSUVEIFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24gd2l0aEVycm9yOihOU0Vycm9y
ICopZXJyb3I7CiAKIC8qISBAYWJzdHJhY3QgSW52b2tlZCB3aGVuIGNvbnRlbnQgc3RhcnRzIGFy
cml2aW5nIGZvciB0aGUgbWFpbiBmcmFtZS4KICBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcg
aW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KICBAcGFyYW0gbmF2aWdhdGlvbiBUaGUgbmF2
aWdhdGlvbi4KICAqLwotLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENv
bW1pdE5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb247CistICh2b2lkKXdlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkQ29tbWl0TmF2aWdhdGlvbjooV0tfTlVMTF9VTlNQ
RUNJRklFRCBXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uOwogCiAvKiEgQGFic3RyYWN0IEludm9r
ZWQgd2hlbiBhIG1haW4gZnJhbWUgbmF2aWdhdGlvbiBjb21wbGV0ZXMuCiAgQHBhcmFtIHdlYlZp
ZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2QuCiAgQHBhcmFtIG5h
dmlnYXRpb24gVGhlIG5hdmlnYXRpb24uCiAgKi8KLS0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBkaWRGaW5pc2hOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9u
OworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRp
b246KFdLX05VTExfVU5TUEVDSUZJRUQgV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbjsKIAogLyoh
IEBhYnN0cmFjdCBJbnZva2VkIHdoZW4gYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBhIGNvbW1pdHRl
ZCBtYWluIGZyYW1lCiAgbmF2aWdhdGlvbi4KQEAgLTEyMyw3ICsxMjUsNyBAQCB0eXBlZGVmIE5T
X0VOVU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSkgewogIEBwYXJhbSBu
YXZpZ2F0aW9uIFRoZSBuYXZpZ2F0aW9uLgogIEBwYXJhbSBlcnJvciBUaGUgZXJyb3IgdGhhdCBv
Y2N1cnJlZC4KICAqLwotLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZh
aWxOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uIHdpdGhFcnJvcjooTlNFcnJv
ciAqKWVycm9yOworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZhaWxO
YXZpZ2F0aW9uOihXS19OVUxMX1VOU1BFQ0lGSUVEIFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24g
d2l0aEVycm9yOihOU0Vycm9yICopZXJyb3I7CiAKIC8qISBAYWJzdHJhY3QgSW52b2tlZCB3aGVu
IHRoZSB3ZWIgdmlldyBuZWVkcyB0byByZXNwb25kIHRvIGFuIGF1dGhlbnRpY2F0aW9uIGNoYWxs
ZW5nZS4KICBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgdGhhdCByZWNlaXZlZCB0aGUgYXV0
aGVudGljYXRpb24gY2hhbGxlbmdlLgpAQCAtMTM1LDggKzEzNywxMCBAQCB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSkgewogIGNyZWRlbnRpYWwu
CiAgQGRpc2N1c3Npb24gSWYgeW91IGRvIG5vdCBpbXBsZW1lbnQgdGhpcyBtZXRob2QsIHRoZSB3
ZWIgdmlldyB3aWxsIHJlc3BvbmQgdG8gdGhlIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSB3aXRo
IHRoZSBOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlUmVqZWN0UHJvdGVjdGlvblNwYWNlIGRpc3Bv
c2l0aW9uLgogICovCi0tICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
ICopY2hhbGxlbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFNlc3Npb25BdXRo
Q2hhbGxlbmdlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVudGlhbCAqY3JlZGVu
dGlhbCkpY29tcGxldGlvbkhhbmRsZXI7CistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VS
TFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIFdLX05VTExBQkxF
X1NQRUNJRklFUiBOU1VSTENyZWRlbnRpYWwgKmNyZWRlbnRpYWwpKWNvbXBsZXRpb25IYW5kbGVy
OwogCiBAZW5kCiAKK1dLX0FTU1VNRV9OT05OVUxMX0VORAorCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2Uu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9u
c2UuaAppbmRleCBlMzY3ZmIzOWEzMDJiMWNkNDljNGVlNjBmMTMzZGYyZjQ3M2ZlZWViLi43NWUx
NDdmNTM2OWI2Zjg5ZjIzYzZiNzZjYjJkNWQ4MTNhNWU3YmUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5o
CkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgog
CitXS19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiBAY2xhc3MgV0tGcmFtZUluZm87CiAKIC8qISBD
b250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhIG5hdmlnYXRpb24gcmVzcG9uc2UsIHVzZWQgZm9y
IG1ha2luZyBwb2xpY3kgZGVjaXNpb25zLgpAQCAtNTEsNCArNTMsNiBAQCBXS19DTEFTU19BVkFJ
TEFCTEUoMTBfMTAsIDhfMCkKIAogQGVuZAogCitXS19BU1NVTUVfTk9OTlVMTF9FTkQKKwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2Ny
aXB0TWVzc2FnZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Njcmlw
dE1lc3NhZ2UuaAppbmRleCAxODcxZWJjZDk1MDEyNWYyMDk0ZmQ0YzIzNjE4ODEyMzAxOTVjNTYx
Li45MmQ1ODZlNDEzZTIwOTg5ZGZhYTg5NjRhMGFhNWZkMWI4NGZlM2IxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlLmgKQEAg
LTI5LDYgKzI5LDggQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKK1dL
X0FTU1VNRV9OT05OVUxMX0JFR0lOCisKIEBjbGFzcyBXS0ZyYW1lSW5mbzsKIEBjbGFzcyBXS1dl
YlZpZXc7CiAKQEAgLTQ1LDcgKzQ3LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzAp
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIGlkIGJvZHk7CiAKIC8qISBA
YWJzdHJhY3QgVGhlIHdlYiB2aWV3IHNlbmRpbmcgdGhlIG1lc3NhZ2UuICovCi1AcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHksIHdlYWspIFdLV2ViVmlldyAqd2ViVmlldzsKK0Bwcm9wZXJ0
eSAoV0tfTlVMTEFCTEVfUFJPUEVSVFkgbm9uYXRvbWljLCByZWFkb25seSwgd2VhaykgV0tXZWJW
aWV3ICp3ZWJWaWV3OwogCiAvKiEgQGFic3RyYWN0IFRoZSBmcmFtZSBzZW5kaW5nIHRoZSBtZXNz
YWdlLiAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBXS0ZyYW1lSW5m
byAqZnJhbWVJbmZvOwpAQCAtNTYsNCArNTgsNiBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAs
IDhfMCkKIAogQGVuZAogCitXS19BU1NVTUVfTk9OTlVMTF9FTkQKKwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZUhh
bmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNz
YWdlSGFuZGxlci5oCmluZGV4IDI0MTFmMGZmMTA0MjE2ZjVlZTUzZWU1OWYyZDdiNjJkZWFiMTJl
NDAuLjlkMjRiYzU5NDRkNmNiYTk1YmI2NWFhZTkzYmE4NDY3ODVmMWNiNDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlSGFuZGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNz
YWdlSGFuZGxlci5oCkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91
bmRhdGlvbi5oPgogCitXS19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiBAY2xhc3MgV0tTY3JpcHRN
ZXNzYWdlOwogQGNsYXNzIFdLVXNlckNvbnRlbnRDb250cm9sbGVyOwogCkBAIC00OCw0ICs1MCw2
IEBACiAKIEBlbmQKIAorV0tfQVNTVU1FX05PTk5VTExfRU5ECisKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgKaW5kZXggNGMx
OWY2YmVkYmNiN2FlYmNmMzE3YTdmMmQxNTAyYWM3NGNiNzI1YS4uOWIwY2NhOTliMjVjODg0ZDcz
YWVhNTgzNTBhNTk5NGUyZmNjNGU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oCkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbXBvcnQg
PEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCitXS19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiBA
Y2xhc3MgV0tGcmFtZUluZm87CiBAY2xhc3MgV0tOYXZpZ2F0aW9uQWN0aW9uOwogQGNsYXNzIFdL
V2ViVmlld0NvbmZpZ3VyYXRpb247CkBAIC01Myw3ICs1NSw3IEBACiAKICBJZiB5b3UgZG8gbm90
IGltcGxlbWVudCB0aGlzIG1ldGhvZCwgdGhlIHdlYiB2aWV3IHdpbGwgY2FuY2VsIHRoZSBuYXZp
Z2F0aW9uLgogICovCi0tIChXS1dlYlZpZXcgKil3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGNyZWF0ZVdlYlZpZXdXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAq
KWNvbmZpZ3VyYXRpb24gZm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICop
bmF2aWdhdGlvbkFjdGlvbiB3aW5kb3dGZWF0dXJlczooV0tXaW5kb3dGZWF0dXJlcyAqKXdpbmRv
d0ZlYXR1cmVzOworLSAoV0tfTlVMTEFCTEUgV0tXZWJWaWV3ICopd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBjcmVhdGVXZWJWaWV3V2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZp
Z3VyYXRpb24gKiljb25maWd1cmF0aW9uIGZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlv
bkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gd2luZG93RmVhdHVyZXM6KFdLV2luZG93RmVhdHVy
ZXMgKil3aW5kb3dGZWF0dXJlczsKIAogLyohIEBhYnN0cmFjdCBEaXNwbGF5cyBhIEphdmFTY3Jp
cHQgYWxlcnQgcGFuZWwuCiAgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRo
ZSBkZWxlZ2F0ZSBtZXRob2QuCkBAIC0xMDMsOCArMTA1LDEwIEBACiAKICBJZiB5b3UgZG8gbm90
IGltcGxlbWVudCB0aGlzIG1ldGhvZCwgdGhlIHdlYiB2aWV3IHdpbGwgYmVoYXZlIGFzIGlmIHRo
ZSB1c2VyIHNlbGVjdGVkIHRoZSBDYW5jZWwgYnV0dG9uLgogICovCi0tICh2b2lkKXdlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21w
dDooTlNTdHJpbmcgKilwcm9tcHQgZGVmYXVsdFRleHQ6KE5TU3RyaW5nICopZGVmYXVsdFRleHQg
aW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoTlNTdHJpbmcgKnJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXI7CistICh2b2lkKXdl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0
aFByb21wdDooTlNTdHJpbmcgKilwcm9tcHQgZGVmYXVsdFRleHQ6KFdLX05VTExBQkxFIE5TU3Ry
aW5nICopZGVmYXVsdFRleHQgaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tfTlVMTEFCTEVfU1BFQ0lGSUVSIE5TU3RyaW5n
ICpyZXN1bHQpKWNvbXBsZXRpb25IYW5kbGVyOwogCiBAZW5kCiAKK1dLX0FTU1VNRV9OT05OVUxM
X0VORAorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIuaAppbmRleCBhYjYzMDNiZTVkNWNi
YzBlNDg0Mjc1Yjg0Mjg2ODhmNjAyZTRkOWViLi5mMDQ5OTU3MTY4YTVjZTA1NDc5MWVkMTg0NDY0
ZTNhN2ZjMTM0N2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oCkBAIC0yOSw2ICsyOSw4IEBA
CiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCitXS19BU1NVTUVfTk9OTlVM
TF9CRUdJTgorCiBAY2xhc3MgV0tVc2VyU2NyaXB0OwogQHByb3RvY29sIFdLU2NyaXB0TWVzc2Fn
ZUhhbmRsZXI7CiAKQEAgLTcwLDQgKzcyLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4
XzApCiAKIEBlbmQKIAorV0tfQVNTVU1FX05PTk5VTExfRU5ECisKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0LmgKaW5kZXggNDli
OWRhZDQ0NDA4YzAzMGU0ZTcwNTQ1NmQ0YTYyN2JmZTczMWJjYy4uM2E0ODBlMTdhMTk4ODg4NmFm
MGEyNDliYWRiMzM5NWYzYjNkZDBhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5oCkBAIC0zNCw2ICszNCw4IEBACiAgQGNvbnN0YW50
IFdLVXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQgICAgSW5qZWN0IHRoZSBz
Y3JpcHQgYWZ0ZXIgdGhlIGRvY3VtZW50IGVsZW1lbnQgaGFzIGJlZW4gY3JlYXRlZCwgYnV0IGJl
Zm9yZSBhbnkgb3RoZXIgY29udGVudCBoYXMgYmVlbiBsb2FkZWQuCiAgQGNvbnN0YW50IFdLVXNl
clNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50RW5kICAgICAgSW5qZWN0IHRoZSBzY3JpcHQg
YWZ0ZXIgdGhlIGRvY3VtZW50IGhhcyBmaW5pc2hlZCBsb2FkaW5nLCBidXQgYmVmb3JlIGFueSBz
dWJyZXNvdXJjZXMgbWF5IGhhdmUgZmluaXNoZWQgbG9hZGluZy4KICAqLworV0tfQVNTVU1FX05P
Tk5VTExfQkVHSU4KKwogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tVc2VyU2NyaXB0SW5q
ZWN0aW9uVGltZSkgewogICAgIFdLVXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50U3Rh
cnQsCiAgICAgV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRFbmQKQEAgLTYyLDQg
KzY0LDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAKIEBlbmQKIAorV0tfQVNT
VU1FX05PTk5VTExfRU5ECisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3LmgKaW5kZXggMDE1ZjU5YzMyNTk0NmIzMmY1ZDQ2YTNiZjkzMWQ2
MjUwYzU0ZDVlZi4uMDA4MzJmZGQzOTAzOTlkMmRlN2M1ZWY1NWVkY2EzZDU4NTcxYjU5MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCkBAIC0z
Myw2ICszMyw4IEBACiAjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+CiAjZW5kaWYKIAorV0tfQVNT
VU1FX05PTk5VTExfQkVHSU4KKwogQGNsYXNzIFdLQmFja0ZvcndhcmRMaXN0OwogQGNsYXNzIFdL
QmFja0ZvcndhcmRMaXN0SXRlbTsKIEBjbGFzcyBXS05hdmlnYXRpb247CkBAIC01OSwxMCArNjEs
MTAgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIGNvcHkpIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb247
CiAKIC8qISBAYWJzdHJhY3QgVGhlIHdlYiB2aWV3J3MgbmF2aWdhdGlvbiBkZWxlZ2F0ZS4gKi8K
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrKSBpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IG5h
dmlnYXRpb25EZWxlZ2F0ZTsKK0Bwcm9wZXJ0eSAoV0tfTlVMTEFCTEVfUFJPUEVSVFkgbm9uYXRv
bWljLCB3ZWFrKSBpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IG5hdmlnYXRpb25EZWxlZ2F0ZTsK
IAogLyohIEBhYnN0cmFjdCBUaGUgd2ViIHZpZXcncyB1c2VyIGludGVyZmFjZSBkZWxlZ2F0ZS4g
Ki8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrKSBpZCA8V0tVSURlbGVnYXRlPiBVSURlbGVn
YXRlOworQHByb3BlcnR5IChXS19OVUxMQUJMRV9QUk9QRVJUWSBub25hdG9taWMsIHdlYWspIGlk
IDxXS1VJRGVsZWdhdGU+IFVJRGVsZWdhdGU7CiAKIC8qISBAYWJzdHJhY3QgVGhlIHdlYiB2aWV3
J3MgYmFjay1mb3J3YXJkIGxpc3QuICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHks
IHN0cm9uZykgV0tCYWNrRm9yd2FyZExpc3QgKmJhY2tGb3J3YXJkTGlzdDsKQEAgLTg3LDcgKzg5
LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAgQHBhcmFtIHJlcXVlc3QgVGhl
IHJlcXVlc3Qgc3BlY2lmeWluZyB0aGUgVVJMIHRvIHdoaWNoIHRvIG5hdmlnYXRlLgogIEByZXN1
bHQgQSBuZXcgbmF2aWdhdGlvbiBmb3IgdGhlIGdpdmVuIHJlcXVlc3QuCiAgKi8KLS0gKFdLTmF2
aWdhdGlvbiAqKWxvYWRSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0OworLSAoV0tfTlVM
TEFCTEUgV0tOYXZpZ2F0aW9uICopbG9hZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Q7
CiAKIC8qISBAYWJzdHJhY3QgTmF2aWdhdGVzIHRvIHRoZSByZXF1ZXN0ZWQgZmlsZSBVUkwgb24g
dGhlIGZpbGVzeXN0ZW0uCiAgQHBhcmFtIFVSTCBUaGUgZmlsZSBVUkwgdG8gd2hpY2ggdG8gbmF2
aWdhdGUuCkBAIC05NiwxNCArOTgsMTQgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzAp
CiAgSWYgcmVhZEFjY2Vzc1VSTCByZWZlcmVuY2VzIGEgZGlyZWN0b3J5LCBmaWxlcyBpbnNpZGUg
dGhhdCBmaWxlIG1heSBiZSBsb2FkZWQgYnkgV2ViS2l0LgogIEByZXN1bHQgQSBuZXcgbmF2aWdh
dGlvbiBmb3IgdGhlIGdpdmVuIGZpbGUgVVJMLgogICovCi0tIChXS05hdmlnYXRpb24gKilsb2Fk
RmlsZVVSTDooTlNVUkwgKilVUkwgYWxsb3dpbmdSZWFkQWNjZXNzVG9VUkw6KE5TVVJMICopcmVh
ZEFjY2Vzc1VSTCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CistIChXS19O
VUxMQUJMRSBXS05hdmlnYXRpb24gKilsb2FkRmlsZVVSTDooTlNVUkwgKilVUkwgYWxsb3dpbmdS
ZWFkQWNjZXNzVG9VUkw6KE5TVVJMICopcmVhZEFjY2Vzc1VSTCBXS19BVkFJTEFCTEUoV0tfTUFD
X1RCQSwgV0tfSU9TX1RCQSk7CiAKIC8qISBAYWJzdHJhY3QgU2V0cyB0aGUgd2VicGFnZSBjb250
ZW50cyBhbmQgYmFzZSBVUkwuCiAgQHBhcmFtIHN0cmluZyBUaGUgc3RyaW5nIHRvIHVzZSBhcyB0
aGUgY29udGVudHMgb2YgdGhlIHdlYnBhZ2UuCiAgQHBhcmFtIGJhc2VVUkwgQSBVUkwgdGhhdCBp
cyB1c2VkIHRvIHJlc29sdmUgcmVsYXRpdmUgVVJMcyB3aXRoaW4gdGhlIGRvY3VtZW50LgogIEBy
ZXN1bHQgQSBuZXcgbmF2aWdhdGlvbi4KICAqLwotLSAoV0tOYXZpZ2F0aW9uICopbG9hZEhUTUxT
dHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTDsKKy0gKFdL
X05VTExBQkxFIFdLTmF2aWdhdGlvbiAqKWxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKXN0cmlu
ZyBiYXNlVVJMOihXS19OVUxMQUJMRSBOU1VSTCAqKWJhc2VVUkw7CiAKIC8qISBAYWJzdHJhY3Qg
U2V0cyB0aGUgd2VicGFnZSBjb250ZW50cyBhbmQgYmFzZSBVUkwuCiAgQHBhcmFtIGRhdGEgVGhl
IGRhdGEgdG8gdXNlIGFzIHRoZSBjb250ZW50cyBvZiB0aGUgd2VicGFnZS4KQEAgLTExMiw3ICsx
MTQsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKICBAcGFyYW0gYmFzZVVSTCBB
IFVSTCB0aGF0IGlzIHVzZWQgdG8gcmVzb2x2ZSByZWxhdGl2ZSBVUkxzIHdpdGhpbiB0aGUgZG9j
dW1lbnQuCiAgQHJlc3VsdCBBIG5ldyBuYXZpZ2F0aW9uLgogICovCi0tIChXS05hdmlnYXRpb24g
Kilsb2FkRGF0YTooTlNEYXRhICopZGF0YSBNSU1FVHlwZTooTlNTdHJpbmcgKilNSU1FVHlwZSBj
aGFyYWN0ZXJFbmNvZGluZ05hbWU6KE5TU3RyaW5nICopY2hhcmFjdGVyRW5jb2RpbmdOYW1lIGJh
c2VVUkw6KE5TVVJMICopYmFzZVVSTCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RC
QSk7CistIChXS19OVUxMQUJMRSBXS05hdmlnYXRpb24gKilsb2FkRGF0YTooTlNEYXRhICopZGF0
YSBNSU1FVHlwZTooTlNTdHJpbmcgKilNSU1FVHlwZSBjaGFyYWN0ZXJFbmNvZGluZ05hbWU6KE5T
U3RyaW5nICopY2hhcmFjdGVyRW5jb2RpbmdOYW1lIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCBX
S19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CiAKIC8qISBAYWJzdHJhY3QgTmF2
aWdhdGVzIHRvIGFuIGl0ZW0gZnJvbSB0aGUgYmFjay1mb3J3YXJkIGxpc3QgYW5kIHNldHMgaXQK
ICBhcyB0aGUgY3VycmVudCBpdGVtLgpAQCAtMTIyLDEzICsxMjQsMTMgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKDEwXzEwLCA4XzApCiAgdGhlIGN1cnJlbnQgaXRlbSBvciBpcyBub3QgcGFydCBvZiB0
aGUgd2ViIHZpZXcncyBiYWNrLWZvcndhcmQgbGlzdC4KICBAc2VlYWxzbyBiYWNrRm9yd2FyZExp
c3QKICAqLwotLSAoV0tOYXZpZ2F0aW9uICopZ29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW06KFdLQmFj
a0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW07CistIChXS19OVUxMQUJMRSBXS05hdmlnYXRpb24gKiln
b1RvQmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbTsKIAog
LyohIEBhYnN0cmFjdCBUaGUgcGFnZSB0aXRsZS4KICBAZGlzY3Vzc2lvbiBAbGluayBXS1dlYlZp
ZXcgQC9saW5rIGlzIGtleS12YWx1ZSBvYnNlcnZpbmcgKEtWTykgY29tcGxpYW50CiAgZm9yIHRo
aXMgcHJvcGVydHkuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkg
TlNTdHJpbmcgKnRpdGxlOworQHByb3BlcnR5IChXS19OVUxMQUJMRV9QUk9QRVJUWSBub25hdG9t
aWMsIHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqdGl0bGU7CiAKIC8qISBAYWJzdHJhY3QgVGhl
IGFjdGl2ZSBVUkwuCiAgQGRpc2N1c3Npb24gVGhpcyBpcyB0aGUgVVJMIHRoYXQgc2hvdWxkIGJl
IHJlZmxlY3RlZCBpbiB0aGUgdXNlcgpAQCAtMTM2LDcgKzEzOCw3IEBAIFdLX0NMQVNTX0FWQUlM
QUJMRSgxMF8xMCwgOF8wKQogIEBsaW5rIFdLV2ViVmlldyBAL2xpbmsgaXMga2V5LXZhbHVlIG9i
c2VydmluZyAoS1ZPKSBjb21wbGlhbnQgZm9yIHRoaXMKICBwcm9wZXJ0eS4KICAqLwotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU1VSTCAqVVJMOworQHByb3BlcnR5IChX
S19OVUxMQUJMRV9QUk9QRVJUWSBub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU1VSTCAqVVJM
OwogCiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhl
IHZpZXcgaXMgY3VycmVudGx5CiAgbG9hZGluZyBjb250ZW50LgpAQCAtMTgyLDI0ICsxODQsMjQg
QEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAgQHJlc3VsdCBBIG5ldyBuYXZpZ2F0
aW9uIHRvIHRoZSByZXF1ZXN0ZWQgaXRlbSwgb3IgbmlsIGlmIHRoZXJlIGlzIG5vIGJhY2sKICBp
dGVtIGluIHRoZSBiYWNrLWZvcndhcmQgbGlzdC4KICAqLwotLSAoV0tOYXZpZ2F0aW9uICopZ29C
YWNrOworLSAoV0tfTlVMTEFCTEUgV0tOYXZpZ2F0aW9uICopZ29CYWNrOwogCiAvKiEgQGFic3Ry
YWN0IE5hdmlnYXRlcyB0byB0aGUgZm9yd2FyZCBpdGVtIGluIHRoZSBiYWNrLWZvcndhcmQgbGlz
dC4KICBAcmVzdWx0IEEgbmV3IG5hdmlnYXRpb24gdG8gdGhlIHJlcXVlc3RlZCBpdGVtLCBvciBu
aWwgaWYgdGhlcmUgaXMgbm8KICBmb3J3YXJkIGl0ZW0gaW4gdGhlIGJhY2stZm9yd2FyZCBsaXN0
LgogICovCi0tIChXS05hdmlnYXRpb24gKilnb0ZvcndhcmQ7CistIChXS19OVUxMQUJMRSBXS05h
dmlnYXRpb24gKilnb0ZvcndhcmQ7CiAKIC8qISBAYWJzdHJhY3QgUmVsb2FkcyB0aGUgY3VycmVu
dCBwYWdlLgogIEByZXN1bHQgQSBuZXcgbmF2aWdhdGlvbiByZXByZXNlbnRpbmcgdGhlIHJlbG9h
ZC4KICAqLwotLSAoV0tOYXZpZ2F0aW9uICopcmVsb2FkOworLSAoV0tfTlVMTEFCTEUgV0tOYXZp
Z2F0aW9uICopcmVsb2FkOwogCiAvKiEgQGFic3RyYWN0IFJlbG9hZHMgdGhlIGN1cnJlbnQgcGFn
ZSwgcGVyZm9ybWluZyBlbmQtdG8tZW5kIHJldmFsaWRhdGlvbgogIHVzaW5nIGNhY2hlLXZhbGlk
YXRpbmcgY29uZGl0aW9uYWxzIGlmIHBvc3NpYmxlLgogIEByZXN1bHQgQSBuZXcgbmF2aWdhdGlv
biByZXByZXNlbnRpbmcgdGhlIHJlbG9hZC4KICAqLwotLSAoV0tOYXZpZ2F0aW9uICopcmVsb2Fk
RnJvbU9yaWdpbjsKKy0gKFdLX05VTExBQkxFIFdLTmF2aWdhdGlvbiAqKXJlbG9hZEZyb21Pcmln
aW47CiAKIC8qISBAYWJzdHJhY3QgU3RvcHMgbG9hZGluZyBhbGwgcmVzb3VyY2VzIG9uIHRoZSBj
dXJyZW50IHBhZ2UuCiAgKi8KQEAgLTIxMCw3ICsyMTIsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUo
MTBfMTAsIDhfMCkKICBAcGFyYW0gY29tcGxldGlvbkhhbmRsZXIgQSBibG9jayB0byBpbnZva2Ug
d2hlbiBzY3JpcHQgZXZhbHVhdGlvbiBjb21wbGV0ZXMgb3IgZmFpbHMuCiAgQGRpc2N1c3Npb24g
VGhlIGNvbXBsZXRpb25IYW5kbGVyIGlzIHBhc3NlZCB0aGUgcmVzdWx0IG9mIHRoZSBzY3JpcHQg
ZXZhbHVhdGlvbiBvciBhbiBlcnJvci4KICovCi0tICh2b2lkKWV2YWx1YXRlSmF2YVNjcmlwdDoo
TlNTdHJpbmcgKilqYXZhU2NyaXB0U3RyaW5nIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShp
ZCwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZvaWQpZXZhbHVhdGVKYXZhU2Ny
aXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4gV0tfTlVMTEFCTEVfU1BFQ0lGSUVSKShXS19OVUxMQUJMRV9TUEVDSUZJRVIgaWQsIFdLX05V
TExBQkxFX1NQRUNJRklFUiBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyOwogCiAvKiEgQGFi
c3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgaG9yaXpvbnRhbCBzd2lw
ZSBnZXN0dXJlcwogIHdpbGwgdHJpZ2dlciBiYWNrLWZvcndhcmQgbGlzdCBuYXZpZ2F0aW9ucy4K
QEAgLTIyMCw3ICsyMjIsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIAogLyoh
IEBhYnN0cmFjdCBUaGUgY3VzdG9tIHVzZXIgYWdlbnQgc3RyaW5nIG9yIG5pbCBpZiBubyBjdXN0
b20gdXNlciBhZ2VudCBzdHJpbmcgaGFzIGJlZW4gc2V0LgogKi8KLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tVXNlckFnZW50IFdLX0FWQUlMQUJMRShXS19NQUNf
VEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAoV0tfTlVMTEFCTEVfUFJPUEVSVFkgbm9uYXRv
bWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tVXNlckFnZW50IFdLX0FWQUlMQUJMRShXS19NQUNf
VEJBLCBXS19JT1NfVEJBKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC8qISBAYWJzdHJhY3Qg
VGhlIHNjcm9sbCB2aWV3IGFzc29jaWF0ZWQgd2l0aCB0aGUgd2ViIHZpZXcuCkBAIC0yNjEsMzMg
KzI2MywzNSBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKICBiYWNrLWZvcndhcmQg
bGlzdC4KICBAcGFyYW0gc2VuZGVyIFRoZSBvYmplY3QgdGhhdCBzZW50IHRoaXMgbWVzc2FnZS4K
ICAqLwotLSAoSUJBY3Rpb24pZ29CYWNrOihpZClzZW5kZXI7CistIChJQkFjdGlvbilnb0JhY2s6
KFdLX05VTExBQkxFIGlkKXNlbmRlcjsKIAogLyohIEBhYnN0cmFjdCBBY3Rpb24gbWV0aG9kIHRo
YXQgbmF2aWdhdGVzIHRvIHRoZSBmb3J3YXJkIGl0ZW0gaW4gdGhlCiAgYmFjay1mb3J3YXJkIGxp
c3QuCiAgQHBhcmFtIHNlbmRlciBUaGUgb2JqZWN0IHRoYXQgc2VudCB0aGlzIG1lc3NhZ2UuCiAg
Ki8KLS0gKElCQWN0aW9uKWdvRm9yd2FyZDooaWQpc2VuZGVyOworLSAoSUJBY3Rpb24pZ29Gb3J3
YXJkOihXS19OVUxMQUJMRSBpZClzZW5kZXI7CiAKIC8qISBAYWJzdHJhY3QgQWN0aW9uIG1ldGhv
ZCB0aGF0IHJlbG9hZHMgdGhlIGN1cnJlbnQgcGFnZS4KICBAcGFyYW0gc2VuZGVyIFRoZSBvYmpl
Y3QgdGhhdCBzZW50IHRoaXMgbWVzc2FnZS4KICAqLwotLSAoSUJBY3Rpb24pcmVsb2FkOihpZClz
ZW5kZXI7CistIChJQkFjdGlvbilyZWxvYWQ6KFdLX05VTExBQkxFIGlkKXNlbmRlcjsKIAogLyoh
IEBhYnN0cmFjdCBBY3Rpb24gbWV0aG9kIHRoYXQgcmVsb2FkcyB0aGUgY3VycmVudCBwYWdlLCBw
ZXJmb3JtaW5nCiAgZW5kLXRvLWVuZCByZXZhbGlkYXRpb24gdXNpbmcgY2FjaGUtdmFsaWRhdGlu
ZyBjb25kaXRpb25hbHMgaWYgcG9zc2libGUuCiAgQHBhcmFtIHNlbmRlciBUaGUgb2JqZWN0IHRo
YXQgc2VudCB0aGlzIG1lc3NhZ2UuCiAgKi8KLS0gKElCQWN0aW9uKXJlbG9hZEZyb21PcmlnaW46
KGlkKXNlbmRlcjsKKy0gKElCQWN0aW9uKXJlbG9hZEZyb21PcmlnaW46KFdLX05VTExBQkxFIGlk
KXNlbmRlcjsKIAogLyohIEBhYnN0cmFjdCBBY3Rpb24gbWV0aG9kIHRoYXQgc3RvcHMgbG9hZGlu
ZyBhbGwgcmVzb3VyY2VzIG9uIHRoZSBjdXJyZW50CiAgcGFnZS4KICBAcGFyYW0gc2VuZGVyIFRo
ZSBvYmplY3QgdGhhdCBzZW50IHRoaXMgbWVzc2FnZS4KICAqLwotLSAoSUJBY3Rpb24pc3RvcExv
YWRpbmc6KGlkKXNlbmRlcjsKKy0gKElCQWN0aW9uKXN0b3BMb2FkaW5nOihXS19OVUxMQUJMRSBp
ZClzZW5kZXI7CiAKIEBlbmQKIAogI2VuZGlmCiAKK1dLX0FTU1VNRV9OT05OVUxMX0VORAorCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmgKaW5kZXggMDY3ZGU3NzE1ODYyZTg4NDY1OTBmNTIy
NmMxNTQ1MDZlOGNmM2VjNy4uMzBjODIyMTM3Mjc1MjViNDczNWJhOTM1MTExZjVlZDExYTEzMzdi
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmgKQEAgLTI5LDYgKzI5LDggQEAKIAogI2ltcG9ydCA8
Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKK1dLX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKIEBj
bGFzcyBXS1ByZWZlcmVuY2VzOwogQGNsYXNzIFdLUHJvY2Vzc1Bvb2w7CiBAY2xhc3MgV0tVc2Vy
Q29udGVudENvbnRyb2xsZXI7CkBAIC03OSw3ICs4MSw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgx
MF8xMCwgOF8wKQogCiAvKiEgQGFic3RyYWN0IFRoZSBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbiBh
cyB1c2VkIGluIHRoZSB1c2VyIGFnZW50IHN0cmluZy4KICovCi1AcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSkgTlNTdHJpbmcgKmFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCBXS19BVkFJTEFC
TEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKFdLX05VTExBQkxFLCBub25h
dG9taWMsIGNvcHkpIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQgV0tfQVZB
SUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQog
LyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEhUTUw1IHZp
ZGVvcyBwbGF5IGlubGluZQpAQCAtMTEwLDQgKzExMiw2IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgx
MF8xMCwgOF8wKQogCiBAZW5kCiAKK1dLX0FTU1VNRV9OT05OVUxMX0VORAorCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXaW5kb3dGZWF0
dXJlcy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dpbmRvd0ZlYXR1
cmVzLmgKaW5kZXggODkwZTU0MjBiNWRjN2E0ZjRkMDZjZjM4Y2YyMzIzOTg4YjljNmQ0NC4uZDlj
YzA1YjgzM2QxYTllOTk0NmE5ZDk2ZTA5MjdmMDNmZGYxNWQ0MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dpbmRvd0ZlYXR1cmVzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dpbmRvd0ZlYXR1cmVzLmgKQEAgLTMx
LDQxICszMSw0NSBAQAogCiAvKiEgV0tXaW5kb3dGZWF0dXJlcyBzcGVjaWZpZXMgb3B0aW9uYWwg
YXR0cmlidXRlcyBmb3IgdGhlIGNvbnRhaW5pbmcgd2luZG93IHdoZW4gYSBuZXcgV0tXZWJWaWV3
IGlzIHJlcXVlc3RlZC4KICAqLworV0tfQVNTVU1FX05PTk5VTExfQkVHSU4KKwogV0tfQ0xBU1Nf
QVZBSUxBQkxFKDEwXzEwLCA4XzApCiBAaW50ZXJmYWNlIFdLV2luZG93RmVhdHVyZXMgOiBOU09i
amVjdAogCiAvKiEgQGFic3RyYWN0IEJPT0wuIFdoZXRoZXIgdGhlIG1lbnUgYmFyIHNob3VsZCBi
ZSB2aXNpYmxlLiBuaWwgaWYgbWVudSBiYXIgdmlzaWJpbGl0eSB3YXMgbm90IHNwZWNpZmllZC4K
ICAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU051bWJlciAqbWVudUJhclZp
c2liaWxpdHk7CitAcHJvcGVydHkgKFdLX05VTExBQkxFX1BST1BFUlRZIG5vbmF0b21pYywgcmVh
ZG9ubHkpIE5TTnVtYmVyICptZW51QmFyVmlzaWJpbGl0eTsKIAogLyohIEBhYnN0cmFjdCBCT09M
LiBXaGV0aGVyIHRoZSBzdGF0dXMgYmFyIHNob3VsZCBiZSB2aXNpYmxlLiBuaWwgaWYgc3RhdHVz
IGJhciB2aXNpYmlsaXR5IHdhcyBub3Qgc3BlY2lmaWVkLgogICovCi1AcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIE5TTnVtYmVyICpzdGF0dXNCYXJWaXNpYmlsaXR5OworQHByb3BlcnR5
IChXS19OVUxMQUJMRV9QUk9QRVJUWSBub25hdG9taWMsIHJlYWRvbmx5KSBOU051bWJlciAqc3Rh
dHVzQmFyVmlzaWJpbGl0eTsKIAogLyohIEBhYnN0cmFjdCBCT09MLiBXaGV0aGVyIHRvb2xiYXJz
IHNob3VsZCBiZSB2aXNpYmxlLiBuaWwgaWYgdG9vbGJhciB2aXNpYmlsaXR5IHdhcyBub3Qgc3Bl
Y2lmaWVkLgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TTnVtYmVyICp0
b29sYmFyc1Zpc2liaWxpdHk7CitAcHJvcGVydHkgKFdLX05VTExBQkxFX1BST1BFUlRZIG5vbmF0
b21pYywgcmVhZG9ubHkpIE5TTnVtYmVyICp0b29sYmFyc1Zpc2liaWxpdHk7CiAKIC8qISBAYWJz
dHJhY3QgQk9PTC4gV2hldGhlciB0aGUgY29udGFpbmluZyB3aW5kb3cgc2hvdWxkIGJlIHJlc2l6
YWJsZS4gbmlsIGlmIHJlc2l6YWJpbGl0eSB3YXMgbm90IHNwZWNpZmllZC4KICAqLwotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU051bWJlciAqYWxsb3dzUmVzaXppbmc7CitAcHJv
cGVydHkgKFdLX05VTExBQkxFX1BST1BFUlRZIG5vbmF0b21pYywgcmVhZG9ubHkpIE5TTnVtYmVy
ICphbGxvd3NSZXNpemluZzsKIAogLyohIEBhYnN0cmFjdCBDR0Zsb2F0LiBUaGUgeCBjb29yZGlu
YXRlIG9mIHRoZSBjb250YWluaW5nIHdpbmRvdy4gbmlsIGlmIHRoZSB4IGNvb3JkaW5hdGUgd2Fz
IG5vdCBzcGVjaWZpZWQuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNO
dW1iZXIgKng7CitAcHJvcGVydHkgKFdLX05VTExBQkxFX1BST1BFUlRZIG5vbmF0b21pYywgcmVh
ZG9ubHkpIE5TTnVtYmVyICp4OwogCiAvKiEgQGFic3RyYWN0IENHRmxvYXQuIFRoZSB5IGNvb3Jk
aW5hdGUgb2YgdGhlIGNvbnRhaW5pbmcgd2luZG93LiBuaWwgaWYgdGhlIHkgY29vcmRpbmF0ZSB3
YXMgbm90IHNwZWNpZmllZC4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBO
U051bWJlciAqeTsKK0Bwcm9wZXJ0eSAoV0tfTlVMTEFCTEVfUFJPUEVSVFkgbm9uYXRvbWljLCBy
ZWFkb25seSkgTlNOdW1iZXIgKnk7CiAKIC8qISBAYWJzdHJhY3QgQ0dGbG9hdC4gVGhlIHdpZHRo
IGNvb3JkaW5hdGUgb2YgdGhlIGNvbnRhaW5pbmcgd2luZG93LiBuaWwgaWYgdGhlIHdpZHRoIHdh
cyBub3Qgc3BlY2lmaWVkLgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5T
TnVtYmVyICp3aWR0aDsKK0Bwcm9wZXJ0eSAoV0tfTlVMTEFCTEVfUFJPUEVSVFkgbm9uYXRvbWlj
LCByZWFkb25seSkgTlNOdW1iZXIgKndpZHRoOwogCiAvKiEgQGFic3RyYWN0IENHRmxvYXQuIFRo
ZSBoZWlnaHQgY29vcmRpbmF0ZSBvZiB0aGUgY29udGFpbmluZyB3aW5kb3cuIG5pbCBpZiB0aGUg
aGVpZ2h0IHdhcyBub3Qgc3BlY2lmaWVkLgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIE5TTnVtYmVyICpoZWlnaHQ7CitAcHJvcGVydHkgKFdLX05VTExBQkxFX1BST1BFUlRZ
IG5vbmF0b21pYywgcmVhZG9ubHkpIE5TTnVtYmVyICpoZWlnaHQ7CiAKIEBlbmQKIAorV0tfQVNT
VU1FX05PTk5VTExfRU5ECisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvbWFj
L3Bvc3Rwcm9jZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoIGIvU291cmNlL1dlYktpdDIvbWFjL3Bv
c3Rwcm9jZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoCmluZGV4IGYyOWZmZGQ1NTY0N2UwZTk2ZGIx
NzM0NzFlZjc4MmE3MTUzY2UxY2QuLmIxZTUyZmU4NTQ5OTkzMWJlODRhN2QxYzhiZmU5ODZjMzdm
MjUxOGEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL21hYy9wb3N0cHJvY2Vzcy1mcmFtZXdv
cmstaGVhZGVycy5zaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9tYWMvcG9zdHByb2Nlc3MtZnJhbWV3
b3JrLWhlYWRlcnMuc2gKQEAgLTQ1LDcgKzQ1LDcgQEAgZnVuY3Rpb24gcmV3cml0ZV9oZWFkZXJz
ICgpIHsKIAogICAgIGZvciBIRUFERVJfUEFUSCBpbiAkMS8qLmg7IGRvCiAgICAgICAgIGlmIFtb
ICRIRUFERVJfUEFUSCAtbnQgJFRJTUVTVEFNUF9QQVRIIF1dOyB0aGVuCi0gICAgICAgICAgICBz
ZWQgLWUgcy9XS19NQUNfVEJBLyR7T1NYX1ZFUlNJT059LyAtZSBzL1dLX0lPU19UQkEvJHtJT1Nf
VkVSU0lPTn0vIC1lIHMvXldLX0NMQVNTX0FWQUlMQUJMRS9OU19DTEFTU19BVkFJTEFCTEUvIC1l
IHMvV0tfQVZBSUxBQkxFL05TX0FWQUlMQUJMRS8gLWUgcy9XS19ERVBSRUNBVEVEL05TX0RFUFJF
Q0FURUQvIC1lIHMvV0tfREVTSUdOQVRFRF9JTklUSUFMSVpFUi9OU19ERVNJR05BVEVEX0lOSVRJ
QUxJWkVSLyAtZSBzL1dLX0VOVU1fQVZBSUxBQkxFL05TX0VOVU1fQVZBSUxBQkxFLyAtZSBzL1dL
X1VOQVZBSUxBQkxFL05TX1VOQVZBSUxBQkxFLyAtZSBzL1dLX0FTU1VNRV9OT05OVUxMX0JFR0lO
L05TX0FTU1VNRV9OT05OVUxMX0JFR0lOLyAtZSBzL1dLX0FTU1VNRV9OT05OVUxMX0VORC9OU19B
U1NVTUVfTk9OTlVMTF9FTkQvIC1lIHMvV0tfTlVMTEFCTEVfUFJPUEVSVFkvbnVsbGFibGUsLyAt
ZSBzL1dLX05VTExBQkxFL251bGxhYmxlLyAtZSBzL1dLX05VTExfVU5TUEVDSUZJRUQvbnVsbF91
bnNwZWNpZmllZC8gJHtIRUFERVJfUEFUSH0gPiAke1RBUkdFVF9URU1QX0RJUn0vJHtIRUFERVJf
UEFUSCMjKi99IHx8IGV4aXQgJF87CisgICAgICAgICAgICBzZWQgLWUgcy9XS19NQUNfVEJBLyR7
T1NYX1ZFUlNJT059LyAtZSBzL1dLX0lPU19UQkEvJHtJT1NfVkVSU0lPTn0vIC1lIHMvXldLX0NM
QVNTX0FWQUlMQUJMRS9OU19DTEFTU19BVkFJTEFCTEUvIC1lIHMvV0tfQVZBSUxBQkxFL05TX0FW
QUlMQUJMRS8gLWUgcy9XS19ERVBSRUNBVEVEL05TX0RFUFJFQ0FURUQvIC1lIHMvV0tfREVTSUdO
QVRFRF9JTklUSUFMSVpFUi9OU19ERVNJR05BVEVEX0lOSVRJQUxJWkVSLyAtZSBzL1dLX0VOVU1f
QVZBSUxBQkxFL05TX0VOVU1fQVZBSUxBQkxFLyAtZSBzL1dLX1VOQVZBSUxBQkxFL05TX1VOQVZB
SUxBQkxFLyAtZSBzL1dLX0FTU1VNRV9OT05OVUxMX0JFR0lOL05TX0FTU1VNRV9OT05OVUxMX0JF
R0lOLyAtZSBzL1dLX0FTU1VNRV9OT05OVUxMX0VORC9OU19BU1NVTUVfTk9OTlVMTF9FTkQvIC1l
IHMvV0tfTlVMTEFCTEVfUFJPUEVSVFkvbnVsbGFibGUsLyAtZSBzL1dLX05VTExBQkxFX1NQRUNJ
RklFUi9fX251bGxhYmxlL2cgLWUgcy9XS19OVUxMQUJMRS9udWxsYWJsZS9nIC1lIHMvV0tfTlVM
TF9VTlNQRUNJRklFRC9udWxsX3Vuc3BlY2lmaWVkLyAke0hFQURFUl9QQVRIfSA+ICR7VEFSR0VU
X1RFTVBfRElSfS8ke0hFQURFUl9QQVRIIyMqL30gfHwgZXhpdCAkXzsKICAgICAgICAgICAgIG12
ICR7VEFSR0VUX1RFTVBfRElSfS8ke0hFQURFUl9QQVRIIyMqL30gJEhFQURFUl9QQVRIOwogICAg
ICAgICBmaQogICAgIGRvbmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246662</attachid>
            <date>2015-02-16 10:47:01 -0800</date>
            <delta_ts>2015-02-16 11:33:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141652-20150216104709.patch</filename>
            <type>text/plain</type>
            <size>27622</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwMTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDY4ZGNmNGYyZjIyODky
YjhmYWU4MjMzMmYwOTc0OTYyYWJlMzRiOS4uYmFjYjljN2ExMGI4YWQ1N2U5NmY4NGM4NWE3ODdl
MWJlMDViYzhkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTAyLTE2ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIG51bGxhYmls
aXR5IHF1YWxpZmllcnMgdG8gYWxsIEFQSSBoZWFkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE2NTIKKyAgICAgICAgcmRhcjovL3Byb2JsZW0v
MTk3OTM2MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNoYXJlZC9BUEkvQ29jb2EvV0tGb3VuZGF0aW9uLmg6CisgICAgICAgIEFkZCBhIFdLX05V
TExBQkxFX1NQRUNJRklFUiBtYWNyby4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tCYWNrRm9yd2FyZExpc3RJdGVtLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0ZyYW1lSW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
QWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxl
Z2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9u
c2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlSGFuZGxlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2luZG93RmVhdHVyZXMuaDoKKworICAgICAgICAqIG1hYy9wb3N0cHJvY2Vzcy1mcmFtZXdvcmst
aGVhZGVycy5zaDoKKyAgICAgICAgSGFuZGxlIHRoZSBXS19OVUxMQUJMRV9TUEVDSUZJRVIgbWFj
cm8uIENoYW5nZSB0aGUgV0tfTlVMTEFCTEUgc2VkIGNvbW1hbmQgdG8gcmVwbGFjZQorICAgICAg
ICBhbGwgb2NjdXJyZW5jZXMgb2YgV0tfTlVMTEFCTEUgaW5zdGVhZCBvZiBqdXN0IHRoZSBmaXJz
dCBvbmUuCisKIDIwMTUtMDItMTMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgbnVsbGFiaWxpdHkgdG8gdGhlIGhlYWRlciBw
b3N0cHJvY2Vzc2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2Nv
YS9XS0ZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tGb3Vu
ZGF0aW9uLmgKaW5kZXggZmNiZDdjYTU4MjZjYzAxY2MxYWVhYTUxOWQ0ZThmMWZiNjIwZmZiMy4u
NGQyMGU3NzEyMDNkYjlhMWIyMmFmOTRjYzk4NzNiMzBhNzU1NDIzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS0ZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLRm91bmRhdGlvbi5oCkBAIC04MCwxMCArODAsMTIg
QEAKICNpZiAhX19oYXNfYXR0cmlidXRlKG5vZXNjYXBlKQogI2RlZmluZSBXS19OVUxMQUJMRQog
I2RlZmluZSBXS19OVUxMX1VOU1BFQ0lGSUVECisjZGVmaW5lIFdLX05VTExBQkxFX1NQRUNJRklF
UgogI2RlZmluZSBXS19OVUxMQUJMRV9QUk9QRVJUWQogI2Vsc2UKICNkZWZpbmUgV0tfTlVMTEFC
TEUgbnVsbGFibGUKICNkZWZpbmUgV0tfTlVMTF9VTlNQRUNJRklFRCBudWxsX3Vuc3BlY2lmaWVk
CisjZGVmaW5lIFdLX05VTExBQkxFX1NQRUNJRklFUiBfX251bGxhYmxlCiAjZGVmaW5lIFdLX05V
TExBQkxFX1BST1BFUlRZIG51bGxhYmxlLAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oCmlu
ZGV4IDZjZDhkMjc4YzVlNDNjNGY1MGEwNzRlYmNhMTQ0M2JiYTJlY2I5NDQuLjIwNDQxM2MzZWMx
MWE4NmFiODZiZGE4NzVhMzBjYjQ1ZDdjOTEwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaApAQCAt
MzEsNiArMzEsOCBAQAogCiAvKiEgQSBXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gb2JqZWN0IHJlcHJl
c2VudHMgYSB3ZWJwYWdlIGluIHRoZSBiYWNrLWZvcndhcmQgbGlzdCBvZiBhIHdlYiB2aWV3Lgog
ICovCitXS19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAs
IDhfMCkKIEBpbnRlcmZhY2UgV0tCYWNrRm9yd2FyZExpc3RJdGVtIDogTlNPYmplY3QKIApAQCAt
NDAsNyArNDIsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIAogLyohIEBhYnN0
cmFjdCBUaGUgdGl0bGUgb2YgdGhlIHdlYnBhZ2UgcmVwcmVzZW50ZWQgYnkgdGhpcyBpdGVtLgog
ICovCi1AcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqdGl0bGU7CitAcHJvcGVy
dHkgKFdLX05VTExBQkxFX1BST1BFUlRZIHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqdGl0bGU7
CiAKIC8qISBAYWJzdHJhY3QgVGhlIFVSTCBvZiB0aGUgaW5pdGlhbCByZXF1ZXN0IHRoYXQgY3Jl
YXRlZCB0aGlzIGl0ZW0uCiAgKi8KQEAgLTQ4LDQgKzUwLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxF
KDEwXzEwLCA4XzApCiAKIEBlbmQKIAorV0tfQVNTVU1FX05PTk5VTExfRU5ECisKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5m
by5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5oCmlu
ZGV4IDE1ZGRmYWM2Zjk1ZDg2ZDg5MmExYThmNmQ0YTUzNDkzNjU3MGZiZTMuLmVkMTFiZTNlMGY1
YmI4MDdkNTc5MzhmNWE5MTgwZWQ5OWMzZmEzYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvLmgKQEAgLTM0LDYgKzM0LDggQEAKICBpdCBk
b2VzIG5vdCB1bmlxdWVseSBpZGVudGlmeSBhIGZyYW1lIGFjcm9zcyBtdWx0aXBsZSBkZWxlZ2F0
ZSBtZXRob2QKICBjYWxscy4KICAqLworV0tfQVNTVU1FX05PTk5VTExfQkVHSU4KKwogV0tfQ0xB
U1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiBAaW50ZXJmYWNlIFdLRnJhbWVJbmZvIDogTlNPYmpl
Y3QgPE5TQ29weWluZz4KIApAQCAtNDgsNCArNTAsNiBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBf
MTAsIDhfMCkKIAogQGVuZAogCitXS19BU1NVTUVfTk9OTlVMTF9FTkQKKwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFj
dGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25B
Y3Rpb24uaAppbmRleCA4Y2JiYmUzZDc0ODRlZTI3NWZhZjI0YTg4MzQ2NGI0MmZmODAwZTI2Li4x
Y2NkOTAxY2RiYzM5NmIxMzk4OGEzNWYwZWUxNDQ4MDIxODIwMDdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLmgK
QEAgLTMzLDYgKzMzLDggQEAKICNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4KICNlbmRpZgogCitX
S19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiBAY2xhc3MgV0tGcmFtZUluZm87CiAKIC8qISBAZW51
bSBXS05hdmlnYXRpb25UeXBlCkBAIC02NSw3ICs2Nyw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgx
MF8xMCwgOF8wKQogCiAvKiEgQGFic3RyYWN0IFRoZSB0YXJnZXQgZnJhbWUsIG9yIG5pbCBpZiB0
aGlzIGlzIGEgbmV3IHdpbmRvdyBuYXZpZ2F0aW9uLgogICovCi1AcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIGNvcHkpIFdLRnJhbWVJbmZvICp0YXJnZXRGcmFtZTsKK0Bwcm9wZXJ0eSAo
V0tfTlVMTEFCTEVfUFJPUEVSVFkgbm9uYXRvbWljLCByZWFkb25seSwgY29weSkgV0tGcmFtZUlu
Zm8gKnRhcmdldEZyYW1lOwogCiAvKiEgQGFic3RyYWN0IFRoZSB0eXBlIG9mIGFjdGlvbiB0aGF0
IHRyaWdnZXJlZCB0aGUgbmF2aWdhdGlvbi4KICBAZGlzY3Vzc2lvbiBUaGUgdmFsdWUgaXMgb25l
IG9mIHRoZSBjb25zdGFudHMgb2YgdGhlIGVudW1lcmF0ZWQgdHlwZSBXS05hdmlnYXRpb25UeXBl
LgpAQCAtOTAsNCArOTIsNiBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIAogQGVu
ZAogCitXS19BU1NVTUVfTk9OTlVMTF9FTkQKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlLmgKaW5k
ZXggYjdkZDAyOTA4ODljNmE2ODY3YjE3ZGVkZWJjMTc2NzFlYTU4NjNmOS4uNmU1Y2RkNjNmNjBi
ZmJjY2JkZjNmNDkwMmM0YTRmZTUzYjM1YWYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaApAQCAtMjks
NiArMjksOCBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAorV0tfQVNT
VU1FX05PTk5VTExfQkVHSU4KKwogQGNsYXNzIFdLTmF2aWdhdGlvbjsKIEBjbGFzcyBXS05hdmln
YXRpb25BY3Rpb247CiBAY2xhc3MgV0tOYXZpZ2F0aW9uUmVzcG9uc2U7CkBAIC04OCwxNCArOTAs
MTQgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xp
Y3kpIHsKICBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRl
IG1ldGhvZC4KICBAcGFyYW0gbmF2aWdhdGlvbiBUaGUgbmF2aWdhdGlvbi4KICAqLwotLSAodm9p
ZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0
aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uOworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOihXS19OVUxMX1VOU1BF
Q0lGSUVEIFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb247CiAKIC8qISBAYWJzdHJhY3QgSW52b2tl
ZCB3aGVuIGEgc2VydmVyIHJlZGlyZWN0IGlzIHJlY2VpdmVkIGZvciB0aGUgbWFpbgogIGZyYW1l
LgogIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUgbWV0
aG9kLgogIEBwYXJhbSBuYXZpZ2F0aW9uIFRoZSBuYXZpZ2F0aW9uLgogICovCi0tICh2b2lkKXdl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uOworLSAodm9pZCl3
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tfTlVMTF9VTlNQRUNJRklFRCBXS05hdmlnYXRpb24gKilu
YXZpZ2F0aW9uOwogCiAvKiEgQGFic3RyYWN0IEludm9rZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMg
d2hpbGUgc3RhcnRpbmcgdG8gbG9hZCBkYXRhIGZvcgogIHRoZSBtYWluIGZyYW1lLgpAQCAtMTAz
LDE5ICsxMDUsMTkgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tOYXZpZ2F0aW9uUmVz
cG9uc2VQb2xpY3kpIHsKICBAcGFyYW0gbmF2aWdhdGlvbiBUaGUgbmF2aWdhdGlvbi4KICBAcGFy
YW0gZXJyb3IgVGhlIGVycm9yIHRoYXQgb2NjdXJyZWQuCiAgKi8KLS0gKHZvaWQpd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uOihXS05hdmln
YXRpb24gKiluYXZpZ2F0aW9uIHdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yOworLSAodm9pZCl3
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb246
KFdLX05VTExfVU5TUEVDSUZJRUQgV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbiB3aXRoRXJyb3I6
KE5TRXJyb3IgKillcnJvcjsKIAogLyohIEBhYnN0cmFjdCBJbnZva2VkIHdoZW4gY29udGVudCBz
dGFydHMgYXJyaXZpbmcgZm9yIHRoZSBtYWluIGZyYW1lLgogIEBwYXJhbSB3ZWJWaWV3IFRoZSB3
ZWIgdmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUgbWV0aG9kLgogIEBwYXJhbSBuYXZpZ2F0aW9u
IFRoZSBuYXZpZ2F0aW9uLgogICovCi0tICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgZGlkQ29tbWl0TmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbjsKKy0gKHZv
aWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRDb21taXROYXZpZ2F0aW9uOihXS19O
VUxMX1VOU1BFQ0lGSUVEIFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb247CiAKIC8qISBAYWJzdHJh
Y3QgSW52b2tlZCB3aGVuIGEgbWFpbiBmcmFtZSBuYXZpZ2F0aW9uIGNvbXBsZXRlcy4KICBAcGFy
YW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KICBA
cGFyYW0gbmF2aWdhdGlvbiBUaGUgbmF2aWdhdGlvbi4KICAqLwotLSAodm9pZCl3ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5h
dmlnYXRpb247CistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmluaXNo
TmF2aWdhdGlvbjooV0tfTlVMTF9VTlNQRUNJRklFRCBXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9u
OwogCiAvKiEgQGFic3RyYWN0IEludm9rZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIGEg
Y29tbWl0dGVkIG1haW4gZnJhbWUKICBuYXZpZ2F0aW9uLgpAQCAtMTIzLDcgKzEyNSw3IEBAIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5KSB7CiAg
QHBhcmFtIG5hdmlnYXRpb24gVGhlIG5hdmlnYXRpb24uCiAgQHBhcmFtIGVycm9yIFRoZSBlcnJv
ciB0aGF0IG9jY3VycmVkLgogICovCi0tICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgZGlkRmFpbE5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24gd2l0aEVycm9y
OihOU0Vycm9yICopZXJyb3I7CistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
ZGlkRmFpbE5hdmlnYXRpb246KFdLX05VTExfVU5TUEVDSUZJRUQgV0tOYXZpZ2F0aW9uICopbmF2
aWdhdGlvbiB3aXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcjsKIAogLyohIEBhYnN0cmFjdCBJbnZv
a2VkIHdoZW4gdGhlIHdlYiB2aWV3IG5lZWRzIHRvIHJlc3BvbmQgdG8gYW4gYXV0aGVudGljYXRp
b24gY2hhbGxlbmdlLgogIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyB0aGF0IHJlY2VpdmVk
IHRoZSBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UuCkBAIC0xMzUsOCArMTM3LDEwIEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5KSB7CiAgY3Jl
ZGVudGlhbC4KICBAZGlzY3Vzc2lvbiBJZiB5b3UgZG8gbm90IGltcGxlbWVudCB0aGlzIG1ldGhv
ZCwgdGhlIHdlYiB2aWV3IHdpbGwgcmVzcG9uZCB0byB0aGUgYXV0aGVudGljYXRpb24gY2hhbGxl
bmdlIHdpdGggdGhlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VSZWplY3RQcm90ZWN0aW9uU3Bh
Y2UgZGlzcG9zaXRpb24uCiAgKi8KLS0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UgKiljaGFsbGVuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMU2Vz
c2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgTlNVUkxDcmVkZW50aWFs
ICpjcmVkZW50aWFsKSljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgV0tf
TlVMTEFCTEVfU1BFQ0lGSUVSIE5TVVJMQ3JlZGVudGlhbCAqY3JlZGVudGlhbCkpY29tcGxldGlv
bkhhbmRsZXI7CiAKIEBlbmQKIAorV0tfQVNTVU1FX05PTk5VTExfRU5ECisKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25S
ZXNwb25zZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRp
b25SZXNwb25zZS5oCmluZGV4IGUzNjdmYjM5YTMwMmIxY2Q0OWM0ZWU2MGYxMzNkZjJmNDczZmVl
ZWIuLjc1ZTE0N2Y1MzY5YjZmODlmMjNjNmI3NmNiMmQ1ZDgxM2E1ZTdiZTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJl
c3BvbnNlLmgKQEAgLTI5LDYgKzI5LDggQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0
aW9uLmg+CiAKK1dLX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKIEBjbGFzcyBXS0ZyYW1lSW5mbzsK
IAogLyohIENvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGEgbmF2aWdhdGlvbiByZXNwb25zZSwg
dXNlZCBmb3IgbWFraW5nIHBvbGljeSBkZWNpc2lvbnMuCkBAIC01MSw0ICs1Myw2IEBAIFdLX0NM
QVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogCiBAZW5kCiAKK1dLX0FTU1VNRV9OT05OVUxMX0VO
RAorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tTY3JpcHRNZXNzYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLU2NyaXB0TWVzc2FnZS5oCmluZGV4IDE4NzFlYmNkOTUwMTI1ZjIwOTRmZDRjMjM2MTg4MTIz
MDE5NWM1NjEuLjkyZDU4NmU0MTNlMjA5ODlkZmFhODk2NGEwYWE1ZmQxYjg0ZmUzYjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3Nh
Z2UuaApAQCAtMjksNiArMjksOCBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24u
aD4KIAorV0tfQVNTVU1FX05PTk5VTExfQkVHSU4KKwogQGNsYXNzIFdLRnJhbWVJbmZvOwogQGNs
YXNzIFdLV2ViVmlldzsKIApAQCAtNDUsNyArNDcsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBf
MTAsIDhfMCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgaWQgYm9keTsK
IAogLyohIEBhYnN0cmFjdCBUaGUgd2ViIHZpZXcgc2VuZGluZyB0aGUgbWVzc2FnZS4gKi8KLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgd2VhaykgV0tXZWJWaWV3ICp3ZWJWaWV3Owor
QHByb3BlcnR5IChXS19OVUxMQUJMRV9QUk9QRVJUWSBub25hdG9taWMsIHJlYWRvbmx5LCB3ZWFr
KSBXS1dlYlZpZXcgKndlYlZpZXc7CiAKIC8qISBAYWJzdHJhY3QgVGhlIGZyYW1lIHNlbmRpbmcg
dGhlIG1lc3NhZ2UuICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIFdL
RnJhbWVJbmZvICpmcmFtZUluZm87CkBAIC01Niw0ICs1OCw2IEBAIFdLX0NMQVNTX0FWQUlMQUJM
RSgxMF8xMCwgOF8wKQogCiBAZW5kCiAKK1dLX0FTU1VNRV9OT05OVUxMX0VORAorCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRN
ZXNzYWdlSGFuZGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nj
cmlwdE1lc3NhZ2VIYW5kbGVyLmgKaW5kZXggMjQxMWYwZmYxMDQyMTZmNWVlNTNlZTU5ZjJkN2I2
MmRlYWIxMmU0MC4uOWQyNGJjNTk0NGQ2Y2JhOTViYjY1YWFlOTNiYTg0Njc4NWYxY2I0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3Nh
Z2VIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nj
cmlwdE1lc3NhZ2VIYW5kbGVyLmgKQEAgLTI5LDYgKzI5LDggQEAKIAogI2ltcG9ydCA8Rm91bmRh
dGlvbi9Gb3VuZGF0aW9uLmg+CiAKK1dLX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKIEBjbGFzcyBX
S1NjcmlwdE1lc3NhZ2U7CiBAY2xhc3MgV0tVc2VyQ29udGVudENvbnRyb2xsZXI7CiAKQEAgLTQ4
LDQgKzUwLDYgQEAKIAogQGVuZAogCitXS19BU1NVTUVfTk9OTlVMTF9FTkQKKwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaApp
bmRleCA0YzE5ZjZiZWRiY2I3YWViY2YzMTdhN2YyZDE1MDJhYzc0Y2I3MjVhLi45YjBjY2E5OWIy
NWM4ODRkNzNhZWE1ODM1MGE1OTk0ZTJmY2M0ZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgKQEAgLTI5LDYgKzI5LDggQEAKIAog
I2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKK1dLX0FTU1VNRV9OT05OVUxMX0JF
R0lOCisKIEBjbGFzcyBXS0ZyYW1lSW5mbzsKIEBjbGFzcyBXS05hdmlnYXRpb25BY3Rpb247CiBA
Y2xhc3MgV0tXZWJWaWV3Q29uZmlndXJhdGlvbjsKQEAgLTUzLDcgKzU1LDcgQEAKIAogIElmIHlv
dSBkbyBub3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kLCB0aGUgd2ViIHZpZXcgd2lsbCBjYW5jZWwg
dGhlIG5hdmlnYXRpb24uCiAgKi8KLS0gKFdLV2ViVmlldyAqKXdlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgY3JlYXRlV2ViVmlld1dpdGhDb25maWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1
cmF0aW9uICopY29uZmlndXJhdGlvbiBmb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25B
Y3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHdpbmRvd0ZlYXR1cmVzOihXS1dpbmRvd0ZlYXR1cmVz
ICopd2luZG93RmVhdHVyZXM7CistIChXS19OVUxMQUJMRSBXS1dlYlZpZXcgKil3ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGNyZWF0ZVdlYlZpZXdXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24gZm9yTmF2aWdhdGlvbkFjdGlvbjooV0tO
YXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiB3aW5kb3dGZWF0dXJlczooV0tXaW5k
b3dGZWF0dXJlcyAqKXdpbmRvd0ZlYXR1cmVzOwogCiAvKiEgQGFic3RyYWN0IERpc3BsYXlzIGEg
SmF2YVNjcmlwdCBhbGVydCBwYW5lbC4KICBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52
b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KQEAgLTEwMyw4ICsxMDUsMTAgQEAKIAogIElmIHlv
dSBkbyBub3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kLCB0aGUgd2ViIHZpZXcgd2lsbCBiZWhhdmUg
YXMgaWYgdGhlIHVzZXIgc2VsZWN0ZWQgdGhlIENhbmNlbCBidXR0b24uCiAgKi8KLS0gKHZvaWQp
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBydW5KYXZhU2NyaXB0VGV4dElucHV0UGFuZWxX
aXRoUHJvbXB0OihOU1N0cmluZyAqKXByb21wdCBkZWZhdWx0VGV4dDooTlNTdHJpbmcgKilkZWZh
dWx0VGV4dCBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqcmVzdWx0KSljb21wbGV0aW9uSGFuZGxlcjsKKy0g
KHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBydW5KYXZhU2NyaXB0VGV4dElucHV0
UGFuZWxXaXRoUHJvbXB0OihOU1N0cmluZyAqKXByb21wdCBkZWZhdWx0VGV4dDooV0tfTlVMTEFC
TEUgTlNTdHJpbmcgKilkZWZhdWx0VGV4dCBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAq
KWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXS19OVUxMQUJMRV9TUEVDSUZJRVIg
TlNTdHJpbmcgKnJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXI7CiAKIEBlbmQKIAorV0tfQVNTVU1F
X05PTk5VTExfRU5ECisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oCmluZGV4IGFiNjMw
M2JlNWQ1Y2JjMGU0ODQyNzViODQyODY4OGY2MDJlNGQ5ZWIuLmYwNDk5NTcxNjhhNWNlMDU0Nzkx
ZWQxODQ0NjRlM2E3ZmMxMzQ3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLmgKQEAgLTI5LDYg
KzI5LDggQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKK1dLX0FTU1VN
RV9OT05OVUxMX0JFR0lOCisKIEBjbGFzcyBXS1VzZXJTY3JpcHQ7CiBAcHJvdG9jb2wgV0tTY3Jp
cHRNZXNzYWdlSGFuZGxlcjsKIApAQCAtNzAsNCArNzIsNiBAQCBXS19DTEFTU19BVkFJTEFCTEUo
MTBfMTAsIDhfMCkKIAogQGVuZAogCitXS19BU1NVTUVfTk9OTlVMTF9FTkQKKwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlw
dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQuaApp
bmRleCA0OWI5ZGFkNDQ0MDhjMDMwZTRlNzA1NDU2ZDRhNjI3YmZlNzMxYmNjLi4zYTQ4MGUxN2Ex
OTg4ODg2YWYwYTI0OWJhZGIzMzk1ZjNiM2RkMGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0LmgKQEAgLTM0LDYgKzM0LDggQEAKICBA
Y29uc3RhbnQgV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRTdGFydCAgICBJbmpl
Y3QgdGhlIHNjcmlwdCBhZnRlciB0aGUgZG9jdW1lbnQgZWxlbWVudCBoYXMgYmVlbiBjcmVhdGVk
LCBidXQgYmVmb3JlIGFueSBvdGhlciBjb250ZW50IGhhcyBiZWVuIGxvYWRlZC4KICBAY29uc3Rh
bnQgV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRFbmQgICAgICBJbmplY3QgdGhl
IHNjcmlwdCBhZnRlciB0aGUgZG9jdW1lbnQgaGFzIGZpbmlzaGVkIGxvYWRpbmcsIGJ1dCBiZWZv
cmUgYW55IHN1YnJlc291cmNlcyBtYXkgaGF2ZSBmaW5pc2hlZCBsb2FkaW5nLgogICovCitXS19B
U1NVTUVfTk9OTlVMTF9CRUdJTgorCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS1VzZXJT
Y3JpcHRJbmplY3Rpb25UaW1lKSB7CiAgICAgV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9j
dW1lbnRTdGFydCwKICAgICBXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVudEVuZApA
QCAtNjIsNCArNjQsNiBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIAogQGVuZAog
CitXS19BU1NVTUVfTk9OTlVMTF9FTkQKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaAppbmRleCAwMTVmNTljMzI1OTQ2YjMyZjVkNDZh
M2JmOTMxZDYyNTBjNTRkNWVmLi4wMDgzMmZkZDM5MDM5OWQyZGU3YzVlZjU1ZWRjYTNkNTg1NzFi
NTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
LmgKQEAgLTMzLDYgKzMzLDggQEAKICNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4KICNlbmRpZgog
CitXS19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiBAY2xhc3MgV0tCYWNrRm9yd2FyZExpc3Q7CiBA
Y2xhc3MgV0tCYWNrRm9yd2FyZExpc3RJdGVtOwogQGNsYXNzIFdLTmF2aWdhdGlvbjsKQEAgLTU5
LDEwICs2MSwxMCBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSwgY29weSkgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqY29uZmln
dXJhdGlvbjsKIAogLyohIEBhYnN0cmFjdCBUaGUgd2ViIHZpZXcncyBuYXZpZ2F0aW9uIGRlbGVn
YXRlLiAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHdlYWspIGlkIDxXS05hdmlnYXRpb25EZWxl
Z2F0ZT4gbmF2aWdhdGlvbkRlbGVnYXRlOworQHByb3BlcnR5IChXS19OVUxMQUJMRV9QUk9QRVJU
WSBub25hdG9taWMsIHdlYWspIGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4gbmF2aWdhdGlvbkRl
bGVnYXRlOwogCiAvKiEgQGFic3RyYWN0IFRoZSB3ZWIgdmlldydzIHVzZXIgaW50ZXJmYWNlIGRl
bGVnYXRlLiAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHdlYWspIGlkIDxXS1VJRGVsZWdhdGU+
IFVJRGVsZWdhdGU7CitAcHJvcGVydHkgKFdLX05VTExBQkxFX1BST1BFUlRZIG5vbmF0b21pYywg
d2VhaykgaWQgPFdLVUlEZWxlZ2F0ZT4gVUlEZWxlZ2F0ZTsKIAogLyohIEBhYnN0cmFjdCBUaGUg
d2ViIHZpZXcncyBiYWNrLWZvcndhcmQgbGlzdC4gKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSwgc3Ryb25nKSBXS0JhY2tGb3J3YXJkTGlzdCAqYmFja0ZvcndhcmRMaXN0OwpAQCAt
ODcsNyArODksNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKICBAcGFyYW0gcmVx
dWVzdCBUaGUgcmVxdWVzdCBzcGVjaWZ5aW5nIHRoZSBVUkwgdG8gd2hpY2ggdG8gbmF2aWdhdGUu
CiAgQHJlc3VsdCBBIG5ldyBuYXZpZ2F0aW9uIGZvciB0aGUgZ2l2ZW4gcmVxdWVzdC4KICAqLwot
LSAoV0tOYXZpZ2F0aW9uICopbG9hZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Q7Cist
IChXS19OVUxMQUJMRSBXS05hdmlnYXRpb24gKilsb2FkUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICop
cmVxdWVzdDsKIAogLyohIEBhYnN0cmFjdCBOYXZpZ2F0ZXMgdG8gdGhlIHJlcXVlc3RlZCBmaWxl
IFVSTCBvbiB0aGUgZmlsZXN5c3RlbS4KICBAcGFyYW0gVVJMIFRoZSBmaWxlIFVSTCB0byB3aGlj
aCB0byBuYXZpZ2F0ZS4KQEAgLTk2LDE0ICs5OCwxNCBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBf
MTAsIDhfMCkKICBJZiByZWFkQWNjZXNzVVJMIHJlZmVyZW5jZXMgYSBkaXJlY3RvcnksIGZpbGVz
IGluc2lkZSB0aGF0IGZpbGUgbWF5IGJlIGxvYWRlZCBieSBXZWJLaXQuCiAgQHJlc3VsdCBBIG5l
dyBuYXZpZ2F0aW9uIGZvciB0aGUgZ2l2ZW4gZmlsZSBVUkwuCiAgKi8KLS0gKFdLTmF2aWdhdGlv
biAqKWxvYWRGaWxlVVJMOihOU1VSTCAqKVVSTCBhbGxvd2luZ1JlYWRBY2Nlc3NUb1VSTDooTlNV
UkwgKilyZWFkQWNjZXNzVVJMIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsK
Ky0gKFdLX05VTExBQkxFIFdLTmF2aWdhdGlvbiAqKWxvYWRGaWxlVVJMOihOU1VSTCAqKVVSTCBh
bGxvd2luZ1JlYWRBY2Nlc3NUb1VSTDooTlNVUkwgKilyZWFkQWNjZXNzVVJMIFdLX0FWQUlMQUJM
RShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKIAogLyohIEBhYnN0cmFjdCBTZXRzIHRoZSB3ZWJw
YWdlIGNvbnRlbnRzIGFuZCBiYXNlIFVSTC4KICBAcGFyYW0gc3RyaW5nIFRoZSBzdHJpbmcgdG8g
dXNlIGFzIHRoZSBjb250ZW50cyBvZiB0aGUgd2VicGFnZS4KICBAcGFyYW0gYmFzZVVSTCBBIFVS
TCB0aGF0IGlzIHVzZWQgdG8gcmVzb2x2ZSByZWxhdGl2ZSBVUkxzIHdpdGhpbiB0aGUgZG9jdW1l
bnQuCiAgQHJlc3VsdCBBIG5ldyBuYXZpZ2F0aW9uLgogICovCi0tIChXS05hdmlnYXRpb24gKils
b2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgYmFzZVVSTDooTlNVUkwgKiliYXNlVVJM
OworLSAoV0tfTlVMTEFCTEUgV0tOYXZpZ2F0aW9uICopbG9hZEhUTUxTdHJpbmc6KE5TU3RyaW5n
ICopc3RyaW5nIGJhc2VVUkw6KFdLX05VTExBQkxFIE5TVVJMICopYmFzZVVSTDsKIAogLyohIEBh
YnN0cmFjdCBTZXRzIHRoZSB3ZWJwYWdlIGNvbnRlbnRzIGFuZCBiYXNlIFVSTC4KICBAcGFyYW0g
ZGF0YSBUaGUgZGF0YSB0byB1c2UgYXMgdGhlIGNvbnRlbnRzIG9mIHRoZSB3ZWJwYWdlLgpAQCAt
MTEyLDcgKzExNCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogIEBwYXJhbSBi
YXNlVVJMIEEgVVJMIHRoYXQgaXMgdXNlZCB0byByZXNvbHZlIHJlbGF0aXZlIFVSTHMgd2l0aGlu
IHRoZSBkb2N1bWVudC4KICBAcmVzdWx0IEEgbmV3IG5hdmlnYXRpb24uCiAgKi8KLS0gKFdLTmF2
aWdhdGlvbiAqKWxvYWREYXRhOihOU0RhdGEgKilkYXRhIE1JTUVUeXBlOihOU1N0cmluZyAqKU1J
TUVUeXBlIGNoYXJhY3RlckVuY29kaW5nTmFtZTooTlNTdHJpbmcgKiljaGFyYWN0ZXJFbmNvZGlu
Z05hbWUgYmFzZVVSTDooTlNVUkwgKiliYXNlVVJMIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBX
S19JT1NfVEJBKTsKKy0gKFdLX05VTExBQkxFIFdLTmF2aWdhdGlvbiAqKWxvYWREYXRhOihOU0Rh
dGEgKilkYXRhIE1JTUVUeXBlOihOU1N0cmluZyAqKU1JTUVUeXBlIGNoYXJhY3RlckVuY29kaW5n
TmFtZTooTlNTdHJpbmcgKiljaGFyYWN0ZXJFbmNvZGluZ05hbWUgYmFzZVVSTDooTlNVUkwgKili
YXNlVVJMIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKIAogLyohIEBhYnN0
cmFjdCBOYXZpZ2F0ZXMgdG8gYW4gaXRlbSBmcm9tIHRoZSBiYWNrLWZvcndhcmQgbGlzdCBhbmQg
c2V0cyBpdAogIGFzIHRoZSBjdXJyZW50IGl0ZW0uCkBAIC0xMjIsMTMgKzEyNCwxMyBAQCBXS19D
TEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKICB0aGUgY3VycmVudCBpdGVtIG9yIGlzIG5vdCBw
YXJ0IG9mIHRoZSB3ZWIgdmlldydzIGJhY2stZm9yd2FyZCBsaXN0LgogIEBzZWVhbHNvIGJhY2tG
b3J3YXJkTGlzdAogICovCi0tIChXS05hdmlnYXRpb24gKilnb1RvQmFja0ZvcndhcmRMaXN0SXRl
bTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbTsKKy0gKFdLX05VTExBQkxFIFdLTmF2aWdh
dGlvbiAqKWdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilp
dGVtOwogCiAvKiEgQGFic3RyYWN0IFRoZSBwYWdlIHRpdGxlLgogIEBkaXNjdXNzaW9uIEBsaW5r
IFdLV2ViVmlldyBAL2xpbmsgaXMga2V5LXZhbHVlIG9ic2VydmluZyAoS1ZPKSBjb21wbGlhbnQK
ICBmb3IgdGhpcyBwcm9wZXJ0eS4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
LCBjb3B5KSBOU1N0cmluZyAqdGl0bGU7CitAcHJvcGVydHkgKFdLX05VTExBQkxFX1BST1BFUlRZ
IG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICp0aXRsZTsKIAogLyohIEBhYnN0
cmFjdCBUaGUgYWN0aXZlIFVSTC4KICBAZGlzY3Vzc2lvbiBUaGlzIGlzIHRoZSBVUkwgdGhhdCBz
aG91bGQgYmUgcmVmbGVjdGVkIGluIHRoZSB1c2VyCkBAIC0xMzYsNyArMTM4LDcgQEAgV0tfQ0xB
U1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAgQGxpbmsgV0tXZWJWaWV3IEAvbGluayBpcyBrZXkt
dmFsdWUgb2JzZXJ2aW5nIChLVk8pIGNvbXBsaWFudCBmb3IgdGhpcwogIHByb3BlcnR5LgogICov
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TVVJMICpVUkw7CitAcHJv
cGVydHkgKFdLX05VTExBQkxFX1BST1BFUlRZIG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5T
VVJMICpVUkw7CiAKIC8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hl
dGhlciB0aGUgdmlldyBpcyBjdXJyZW50bHkKICBsb2FkaW5nIGNvbnRlbnQuCkBAIC0xODIsMjQg
KzE4NCwyNCBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKICBAcmVzdWx0IEEgbmV3
IG5hdmlnYXRpb24gdG8gdGhlIHJlcXVlc3RlZCBpdGVtLCBvciBuaWwgaWYgdGhlcmUgaXMgbm8g
YmFjawogIGl0ZW0gaW4gdGhlIGJhY2stZm9yd2FyZCBsaXN0LgogICovCi0tIChXS05hdmlnYXRp
b24gKilnb0JhY2s7CistIChXS19OVUxMQUJMRSBXS05hdmlnYXRpb24gKilnb0JhY2s7CiAKIC8q
ISBAYWJzdHJhY3QgTmF2aWdhdGVzIHRvIHRoZSBmb3J3YXJkIGl0ZW0gaW4gdGhlIGJhY2stZm9y
d2FyZCBsaXN0LgogIEByZXN1bHQgQSBuZXcgbmF2aWdhdGlvbiB0byB0aGUgcmVxdWVzdGVkIGl0
ZW0sIG9yIG5pbCBpZiB0aGVyZSBpcyBubwogIGZvcndhcmQgaXRlbSBpbiB0aGUgYmFjay1mb3J3
YXJkIGxpc3QuCiAgKi8KLS0gKFdLTmF2aWdhdGlvbiAqKWdvRm9yd2FyZDsKKy0gKFdLX05VTExB
QkxFIFdLTmF2aWdhdGlvbiAqKWdvRm9yd2FyZDsKIAogLyohIEBhYnN0cmFjdCBSZWxvYWRzIHRo
ZSBjdXJyZW50IHBhZ2UuCiAgQHJlc3VsdCBBIG5ldyBuYXZpZ2F0aW9uIHJlcHJlc2VudGluZyB0
aGUgcmVsb2FkLgogICovCi0tIChXS05hdmlnYXRpb24gKilyZWxvYWQ7CistIChXS19OVUxMQUJM
RSBXS05hdmlnYXRpb24gKilyZWxvYWQ7CiAKIC8qISBAYWJzdHJhY3QgUmVsb2FkcyB0aGUgY3Vy
cmVudCBwYWdlLCBwZXJmb3JtaW5nIGVuZC10by1lbmQgcmV2YWxpZGF0aW9uCiAgdXNpbmcgY2Fj
aGUtdmFsaWRhdGluZyBjb25kaXRpb25hbHMgaWYgcG9zc2libGUuCiAgQHJlc3VsdCBBIG5ldyBu
YXZpZ2F0aW9uIHJlcHJlc2VudGluZyB0aGUgcmVsb2FkLgogICovCi0tIChXS05hdmlnYXRpb24g
KilyZWxvYWRGcm9tT3JpZ2luOworLSAoV0tfTlVMTEFCTEUgV0tOYXZpZ2F0aW9uICopcmVsb2Fk
RnJvbU9yaWdpbjsKIAogLyohIEBhYnN0cmFjdCBTdG9wcyBsb2FkaW5nIGFsbCByZXNvdXJjZXMg
b24gdGhlIGN1cnJlbnQgcGFnZS4KICAqLwpAQCAtMjEwLDcgKzIxMiw3IEBAIFdLX0NMQVNTX0FW
QUlMQUJMRSgxMF8xMCwgOF8wKQogIEBwYXJhbSBjb21wbGV0aW9uSGFuZGxlciBBIGJsb2NrIHRv
IGludm9rZSB3aGVuIHNjcmlwdCBldmFsdWF0aW9uIGNvbXBsZXRlcyBvciBmYWlscy4KICBAZGlz
Y3Vzc2lvbiBUaGUgY29tcGxldGlvbkhhbmRsZXIgaXMgcGFzc2VkIHRoZSByZXN1bHQgb2YgdGhl
IHNjcmlwdCBldmFsdWF0aW9uIG9yIGFuIGVycm9yLgogKi8KLS0gKHZvaWQpZXZhbHVhdGVKYXZh
U2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKGlkLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9pZClldmFsdWF0
ZUphdmFTY3JpcHQ6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXiBXS19OVUxMQUJMRV9TUEVDSUZJRVIpKFdLX05VTExBQkxFX1NQRUNJRklFUiBp
ZCwgV0tfTlVMTEFCTEVfU1BFQ0lGSUVSIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXI7CiAK
IC8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBob3Jpem9u
dGFsIHN3aXBlIGdlc3R1cmVzCiAgd2lsbCB0cmlnZ2VyIGJhY2stZm9yd2FyZCBsaXN0IG5hdmln
YXRpb25zLgpAQCAtMjIwLDcgKzIyMiw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8w
KQogCiAvKiEgQGFic3RyYWN0IFRoZSBjdXN0b20gdXNlciBhZ2VudCBzdHJpbmcgb3IgbmlsIGlm
IG5vIGN1c3RvbSB1c2VyIGFnZW50IHN0cmluZyBoYXMgYmVlbiBzZXQuCiAqLwotQHByb3BlcnR5
IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21Vc2VyQWdlbnQgV0tfQVZBSUxBQkxF
KFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChXS19OVUxMQUJMRV9QUk9QRVJU
WSBub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21Vc2VyQWdlbnQgV0tfQVZBSUxBQkxF
KFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogLyohIEBh
YnN0cmFjdCBUaGUgc2Nyb2xsIHZpZXcgYXNzb2NpYXRlZCB3aXRoIHRoZSB3ZWIgdmlldy4KQEAg
LTI2MSwzMyArMjYzLDM1IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogIGJhY2st
Zm9yd2FyZCBsaXN0LgogIEBwYXJhbSBzZW5kZXIgVGhlIG9iamVjdCB0aGF0IHNlbnQgdGhpcyBt
ZXNzYWdlLgogICovCi0tIChJQkFjdGlvbilnb0JhY2s6KGlkKXNlbmRlcjsKKy0gKElCQWN0aW9u
KWdvQmFjazooV0tfTlVMTEFCTEUgaWQpc2VuZGVyOwogCiAvKiEgQGFic3RyYWN0IEFjdGlvbiBt
ZXRob2QgdGhhdCBuYXZpZ2F0ZXMgdG8gdGhlIGZvcndhcmQgaXRlbSBpbiB0aGUKICBiYWNrLWZv
cndhcmQgbGlzdC4KICBAcGFyYW0gc2VuZGVyIFRoZSBvYmplY3QgdGhhdCBzZW50IHRoaXMgbWVz
c2FnZS4KICAqLwotLSAoSUJBY3Rpb24pZ29Gb3J3YXJkOihpZClzZW5kZXI7CistIChJQkFjdGlv
bilnb0ZvcndhcmQ6KFdLX05VTExBQkxFIGlkKXNlbmRlcjsKIAogLyohIEBhYnN0cmFjdCBBY3Rp
b24gbWV0aG9kIHRoYXQgcmVsb2FkcyB0aGUgY3VycmVudCBwYWdlLgogIEBwYXJhbSBzZW5kZXIg
VGhlIG9iamVjdCB0aGF0IHNlbnQgdGhpcyBtZXNzYWdlLgogICovCi0tIChJQkFjdGlvbilyZWxv
YWQ6KGlkKXNlbmRlcjsKKy0gKElCQWN0aW9uKXJlbG9hZDooV0tfTlVMTEFCTEUgaWQpc2VuZGVy
OwogCiAvKiEgQGFic3RyYWN0IEFjdGlvbiBtZXRob2QgdGhhdCByZWxvYWRzIHRoZSBjdXJyZW50
IHBhZ2UsIHBlcmZvcm1pbmcKICBlbmQtdG8tZW5kIHJldmFsaWRhdGlvbiB1c2luZyBjYWNoZS12
YWxpZGF0aW5nIGNvbmRpdGlvbmFscyBpZiBwb3NzaWJsZS4KICBAcGFyYW0gc2VuZGVyIFRoZSBv
YmplY3QgdGhhdCBzZW50IHRoaXMgbWVzc2FnZS4KICAqLwotLSAoSUJBY3Rpb24pcmVsb2FkRnJv
bU9yaWdpbjooaWQpc2VuZGVyOworLSAoSUJBY3Rpb24pcmVsb2FkRnJvbU9yaWdpbjooV0tfTlVM
TEFCTEUgaWQpc2VuZGVyOwogCiAvKiEgQGFic3RyYWN0IEFjdGlvbiBtZXRob2QgdGhhdCBzdG9w
cyBsb2FkaW5nIGFsbCByZXNvdXJjZXMgb24gdGhlIGN1cnJlbnQKICBwYWdlLgogIEBwYXJhbSBz
ZW5kZXIgVGhlIG9iamVjdCB0aGF0IHNlbnQgdGhpcyBtZXNzYWdlLgogICovCi0tIChJQkFjdGlv
bilzdG9wTG9hZGluZzooaWQpc2VuZGVyOworLSAoSUJBY3Rpb24pc3RvcExvYWRpbmc6KFdLX05V
TExBQkxFIGlkKXNlbmRlcjsKIAogQGVuZAogCiAjZW5kaWYKIAorV0tfQVNTVU1FX05PTk5VTExf
RU5ECisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaAppbmRleCAwNjdkZTc3MTU4NjJlODg0
NjU5MGY1MjI2YzE1NDUwNmU4Y2YzZWM3Li44NDhjMjIyMjQ5Mjc4YWNlMjBkOTE3MzgyMDJjZWVm
YmMxZGRkNWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaApAQCAtMjksNiArMjksOCBAQAogCiAj
aW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAorV0tfQVNTVU1FX05PTk5VTExfQkVH
SU4KKwogQGNsYXNzIFdLUHJlZmVyZW5jZXM7CiBAY2xhc3MgV0tQcm9jZXNzUG9vbDsKIEBjbGFz
cyBXS1VzZXJDb250ZW50Q29udHJvbGxlcjsKQEAgLTc5LDcgKzgxLDcgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKDEwXzEwLCA4XzApCiAKIC8qISBAYWJzdHJhY3QgVGhlIG5hbWUgb2YgdGhlIGFwcGxp
Y2F0aW9uIGFzIHVzZWQgaW4gdGhlIHVzZXIgYWdlbnQgc3RyaW5nLgogKi8KLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50IFdL
X0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAoV0tfTlVMTEFC
TEVfUFJPUEVSVFkgbm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1lRm9y
VXNlckFnZW50IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKIAogI2lmIFRB
UkdFVF9PU19JUEhPTkUKIC8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcg
d2hldGhlciBIVE1MNSB2aWRlb3MgcGxheSBpbmxpbmUKQEAgLTExMCw0ICsxMTIsNiBAQCBXS19D
TEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIAogQGVuZAogCitXS19BU1NVTUVfTk9OTlVMTF9F
TkQKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2luZG93RmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXaW5kb3dGZWF0dXJlcy5oCmluZGV4IDg5MGU1NDIwYjVkYzdhNGY0ZDA2Y2YzOGNmMjMy
Mzk4OGI5YzZkNDQuLmQ5Y2MwNWI4MzNkMWE5ZTk5NDZhOWQ5NmUwOTI3ZjAzZmRmMTVkNDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXaW5kb3dGZWF0
dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXaW5kb3dG
ZWF0dXJlcy5oCkBAIC0zMSw0MSArMzEsNDUgQEAKIAogLyohIFdLV2luZG93RmVhdHVyZXMgc3Bl
Y2lmaWVzIG9wdGlvbmFsIGF0dHJpYnV0ZXMgZm9yIHRoZSBjb250YWluaW5nIHdpbmRvdyB3aGVu
IGEgbmV3IFdLV2ViVmlldyBpcyByZXF1ZXN0ZWQuCiAgKi8KK1dLX0FTU1VNRV9OT05OVUxMX0JF
R0lOCisKIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogQGludGVyZmFjZSBXS1dpbmRv
d0ZlYXR1cmVzIDogTlNPYmplY3QKIAogLyohIEBhYnN0cmFjdCBCT09MLiBXaGV0aGVyIHRoZSBt
ZW51IGJhciBzaG91bGQgYmUgdmlzaWJsZS4gbmlsIGlmIG1lbnUgYmFyIHZpc2liaWxpdHkgd2Fz
IG5vdCBzcGVjaWZpZWQuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNO
dW1iZXIgKm1lbnVCYXJWaXNpYmlsaXR5OworQHByb3BlcnR5IChXS19OVUxMQUJMRV9QUk9QRVJU
WSBub25hdG9taWMsIHJlYWRvbmx5KSBOU051bWJlciAqbWVudUJhclZpc2liaWxpdHk7CiAKIC8q
ISBAYWJzdHJhY3QgQk9PTC4gV2hldGhlciB0aGUgc3RhdHVzIGJhciBzaG91bGQgYmUgdmlzaWJs
ZS4gbmlsIGlmIHN0YXR1cyBiYXIgdmlzaWJpbGl0eSB3YXMgbm90IHNwZWNpZmllZC4KICAqLwot
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU051bWJlciAqc3RhdHVzQmFyVmlzaWJp
bGl0eTsKK0Bwcm9wZXJ0eSAoV0tfTlVMTEFCTEVfUFJPUEVSVFkgbm9uYXRvbWljLCByZWFkb25s
eSkgTlNOdW1iZXIgKnN0YXR1c0JhclZpc2liaWxpdHk7CiAKIC8qISBAYWJzdHJhY3QgQk9PTC4g
V2hldGhlciB0b29sYmFycyBzaG91bGQgYmUgdmlzaWJsZS4gbmlsIGlmIHRvb2xiYXIgdmlzaWJp
bGl0eSB3YXMgbm90IHNwZWNpZmllZC4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBOU051bWJlciAqdG9vbGJhcnNWaXNpYmlsaXR5OworQHByb3BlcnR5IChXS19OVUxMQUJM
RV9QUk9QRVJUWSBub25hdG9taWMsIHJlYWRvbmx5KSBOU051bWJlciAqdG9vbGJhcnNWaXNpYmls
aXR5OwogCiAvKiEgQGFic3RyYWN0IEJPT0wuIFdoZXRoZXIgdGhlIGNvbnRhaW5pbmcgd2luZG93
IHNob3VsZCBiZSByZXNpemFibGUuIG5pbCBpZiByZXNpemFiaWxpdHkgd2FzIG5vdCBzcGVjaWZp
ZWQuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNOdW1iZXIgKmFsbG93
c1Jlc2l6aW5nOworQHByb3BlcnR5IChXS19OVUxMQUJMRV9QUk9QRVJUWSBub25hdG9taWMsIHJl
YWRvbmx5KSBOU051bWJlciAqYWxsb3dzUmVzaXppbmc7CiAKIC8qISBAYWJzdHJhY3QgQ0dGbG9h
dC4gVGhlIHggY29vcmRpbmF0ZSBvZiB0aGUgY29udGFpbmluZyB3aW5kb3cuIG5pbCBpZiB0aGUg
eCBjb29yZGluYXRlIHdhcyBub3Qgc3BlY2lmaWVkLgogICovCi1AcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TTnVtYmVyICp4OworQHByb3BlcnR5IChXS19OVUxMQUJMRV9QUk9QRVJU
WSBub25hdG9taWMsIHJlYWRvbmx5KSBOU051bWJlciAqeDsKIAogLyohIEBhYnN0cmFjdCBDR0Zs
b2F0LiBUaGUgeSBjb29yZGluYXRlIG9mIHRoZSBjb250YWluaW5nIHdpbmRvdy4gbmlsIGlmIHRo
ZSB5IGNvb3JkaW5hdGUgd2FzIG5vdCBzcGVjaWZpZWQuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgTlNOdW1iZXIgKnk7CitAcHJvcGVydHkgKFdLX05VTExBQkxFX1BST1BF
UlRZIG5vbmF0b21pYywgcmVhZG9ubHkpIE5TTnVtYmVyICp5OwogCiAvKiEgQGFic3RyYWN0IENH
RmxvYXQuIFRoZSB3aWR0aCBjb29yZGluYXRlIG9mIHRoZSBjb250YWluaW5nIHdpbmRvdy4gbmls
IGlmIHRoZSB3aWR0aCB3YXMgbm90IHNwZWNpZmllZC4KICAqLwotQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBOU051bWJlciAqd2lkdGg7CitAcHJvcGVydHkgKFdLX05VTExBQkxFX1BS
T1BFUlRZIG5vbmF0b21pYywgcmVhZG9ubHkpIE5TTnVtYmVyICp3aWR0aDsKIAogLyohIEBhYnN0
cmFjdCBDR0Zsb2F0LiBUaGUgaGVpZ2h0IGNvb3JkaW5hdGUgb2YgdGhlIGNvbnRhaW5pbmcgd2lu
ZG93LiBuaWwgaWYgdGhlIGhlaWdodCB3YXMgbm90IHNwZWNpZmllZC4KICAqLwotQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBOU051bWJlciAqaGVpZ2h0OworQHByb3BlcnR5IChXS19O
VUxMQUJMRV9QUk9QRVJUWSBub25hdG9taWMsIHJlYWRvbmx5KSBOU051bWJlciAqaGVpZ2h0Owog
CiBAZW5kCiAKK1dLX0FTU1VNRV9OT05OVUxMX0VORAorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL21hYy9wb3N0cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVycy5zaCBiL1NvdXJj
ZS9XZWJLaXQyL21hYy9wb3N0cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVycy5zaAppbmRleCBmMjlm
ZmRkNTU2NDdlMGU5NmRiMTczNDcxZWY3ODJhNzE1M2NlMWNkLi5iMWU1MmZlODU0OTk5MzFiZTg0
YTdkMWM4YmZlOTg2YzM3ZjI1MThhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9tYWMvcG9z
dHByb2Nlc3MtZnJhbWV3b3JrLWhlYWRlcnMuc2gKKysrIGIvU291cmNlL1dlYktpdDIvbWFjL3Bv
c3Rwcm9jZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoCkBAIC00NSw3ICs0NSw3IEBAIGZ1bmN0aW9u
IHJld3JpdGVfaGVhZGVycyAoKSB7CiAKICAgICBmb3IgSEVBREVSX1BBVEggaW4gJDEvKi5oOyBk
bwogICAgICAgICBpZiBbWyAkSEVBREVSX1BBVEggLW50ICRUSU1FU1RBTVBfUEFUSCBdXTsgdGhl
bgotICAgICAgICAgICAgc2VkIC1lIHMvV0tfTUFDX1RCQS8ke09TWF9WRVJTSU9OfS8gLWUgcy9X
S19JT1NfVEJBLyR7SU9TX1ZFUlNJT059LyAtZSBzL15XS19DTEFTU19BVkFJTEFCTEUvTlNfQ0xB
U1NfQVZBSUxBQkxFLyAtZSBzL1dLX0FWQUlMQUJMRS9OU19BVkFJTEFCTEUvIC1lIHMvV0tfREVQ
UkVDQVRFRC9OU19ERVBSRUNBVEVELyAtZSBzL1dLX0RFU0lHTkFURURfSU5JVElBTElaRVIvTlNf
REVTSUdOQVRFRF9JTklUSUFMSVpFUi8gLWUgcy9XS19FTlVNX0FWQUlMQUJMRS9OU19FTlVNX0FW
QUlMQUJMRS8gLWUgcy9XS19VTkFWQUlMQUJMRS9OU19VTkFWQUlMQUJMRS8gLWUgcy9XS19BU1NV
TUVfTk9OTlVMTF9CRUdJTi9OU19BU1NVTUVfTk9OTlVMTF9CRUdJTi8gLWUgcy9XS19BU1NVTUVf
Tk9OTlVMTF9FTkQvTlNfQVNTVU1FX05PTk5VTExfRU5ELyAtZSBzL1dLX05VTExBQkxFX1BST1BF
UlRZL251bGxhYmxlLC8gLWUgcy9XS19OVUxMQUJMRS9udWxsYWJsZS8gLWUgcy9XS19OVUxMX1VO
U1BFQ0lGSUVEL251bGxfdW5zcGVjaWZpZWQvICR7SEVBREVSX1BBVEh9ID4gJHtUQVJHRVRfVEVN
UF9ESVJ9LyR7SEVBREVSX1BBVEgjIyovfSB8fCBleGl0ICRfOworICAgICAgICAgICAgc2VkIC1l
IHMvV0tfTUFDX1RCQS8ke09TWF9WRVJTSU9OfS8gLWUgcy9XS19JT1NfVEJBLyR7SU9TX1ZFUlNJ
T059LyAtZSBzL15XS19DTEFTU19BVkFJTEFCTEUvTlNfQ0xBU1NfQVZBSUxBQkxFLyAtZSBzL1dL
X0FWQUlMQUJMRS9OU19BVkFJTEFCTEUvIC1lIHMvV0tfREVQUkVDQVRFRC9OU19ERVBSRUNBVEVE
LyAtZSBzL1dLX0RFU0lHTkFURURfSU5JVElBTElaRVIvTlNfREVTSUdOQVRFRF9JTklUSUFMSVpF
Ui8gLWUgcy9XS19FTlVNX0FWQUlMQUJMRS9OU19FTlVNX0FWQUlMQUJMRS8gLWUgcy9XS19VTkFW
QUlMQUJMRS9OU19VTkFWQUlMQUJMRS8gLWUgcy9XS19BU1NVTUVfTk9OTlVMTF9CRUdJTi9OU19B
U1NVTUVfTk9OTlVMTF9CRUdJTi8gLWUgcy9XS19BU1NVTUVfTk9OTlVMTF9FTkQvTlNfQVNTVU1F
X05PTk5VTExfRU5ELyAtZSBzL1dLX05VTExBQkxFX1BST1BFUlRZL251bGxhYmxlLC8gLWUgcy9X
S19OVUxMQUJMRV9TUEVDSUZJRVIvX19udWxsYWJsZS9nIC1lIHMvV0tfTlVMTEFCTEUvbnVsbGFi
bGUvZyAtZSBzL1dLX05VTExfVU5TUEVDSUZJRUQvbnVsbF91bnNwZWNpZmllZC8gJHtIRUFERVJf
UEFUSH0gPiAke1RBUkdFVF9URU1QX0RJUn0vJHtIRUFERVJfUEFUSCMjKi99IHx8IGV4aXQgJF87
CiAgICAgICAgICAgICBtdiAke1RBUkdFVF9URU1QX0RJUn0vJHtIRUFERVJfUEFUSCMjKi99ICRI
RUFERVJfUEFUSDsKICAgICAgICAgZmkKICAgICBkb25lCg==
</data>
<flag name="review"
          id="271604"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>