<?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>133408</bug_id>
          
          <creation_ts>2014-05-30 10:46:11 -0700</creation_ts>
          <short_desc>Some more copy-editing of the Modern WebKit headerdoc</short_desc>
          <delta_ts>2014-05-30 14:41:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1012629</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-05-30 10:46:11 -0700</bug_when>
    <thetext>Some more copy-editing of the Modern WebKit headerdoc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012630</commentid>
    <comment_count>1</comment_count>
      <attachid>232296</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-05-30 10:48:28 -0700</bug_when>
    <thetext>Created attachment 232296
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012632</commentid>
    <comment_count>2</comment_count>
      <attachid>232297</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-05-30 11:05:40 -0700</bug_when>
    <thetext>Created attachment 232297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012633</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-05-30 11:06:02 -0700</bug_when>
    <thetext>Removed non-ASCII characters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012642</commentid>
    <comment_count>4</comment_count>
      <attachid>232297</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2014-05-30 11:48:36 -0700</bug_when>
    <thetext>Comment on attachment 232297
Patch

Very nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012645</commentid>
    <comment_count>5</comment_count>
      <attachid>232297</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-30 11:54:49 -0700</bug_when>
    <thetext>Comment on attachment 232297
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKBackForwardListItem.h:32
&gt; -/*! A @link WKBackForwardListItem @/link represents a visited webpage in a WKWebView&apos;s back-forward list.
&gt; +/*! A WKBackForwardListItem object represents a previously visited webpage in the back-forward list of a web view.

Not sure this is perfectly accurate. Is the page you are currently on a previously visited webpage?

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfo.h:41
&gt; +/*! @abstract A Boolean value indicating whether the frame is the main frame
&gt; + or a subframe.

Are we capitalizing the word “boolean” here because of its origin as a person’s name? I suggest “boolean” with a lowercase b.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegate.h:76
&gt; + @discussion Clients should visually indicate that this panel comes from
&gt; + JavaScript initiated by the specified frame.

I think this is confusing wording. The point here is that for good security it&apos;s important to indicate that the panel comes from JavaScript and which website controls the content of the panel. But “initiated by the specified frame” is an oblique way to say this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012651</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-05-30 12:11:10 -0700</bug_when>
    <thetext>I&apos;ll address Darin&apos;s comments in a follow-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012652</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-05-30 12:12:12 -0700</bug_when>
    <thetext>Committed r169490: &lt;http://trac.webkit.org/changeset/169490&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012675</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-05-30 14:08:09 -0700</bug_when>
    <thetext>Reverted r169490 for reason:

It broke the build with a mysterious warning about ASCII

Committed r169493: &lt;http://trac.webkit.org/changeset/169493&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012682</commentid>
    <comment_count>9</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-05-30 14:41:37 -0700</bug_when>
    <thetext>Committed r169495: &lt;http://trac.webkit.org/changeset/169495&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232296</attachid>
            <date>2014-05-30 10:48:28 -0700</date>
            <delta_ts>2014-05-30 11:05:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133408-20140530104748.patch</filename>
            <type>text/plain</type>
            <size>47705</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTQ4OCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA1LTMwICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgU29tZSBtb3JlIGNvcHktZWRp
dGluZyBvZiB0aGUgTW9kZXJuIFdlYktpdCBoZWFkZXJkb2MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzQwOAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgY29weS1lZGl0b3Igc3VnZ2VzdGVkIHNvbWUg
ZWRpdHMgdG8gdGhlIGhlYWRlcmRvYyBmb3IgY2xhcml0eSwKKyAgICAgICAgc3R5bGUsIGFuZCBm
b3JtYXR0aW5nLgorCisgICAgICAgIEkgcmV2aWV3ZWQgdGhlIGVkaXRzIGFuZCBhY2NlcHRlZCBh
Ym91dCA4MCUgb2YgdGhlbS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNr
Rm9yd2FyZExpc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0Zvcndh
cmRMaXN0SXRlbS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm8u
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgIChO
U19FTlVNKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVn
YXRlLmg6CisgICAgICAgIChOU19FTlVNKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLTmF2aWdhdGlvblJlc3BvbnNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2UuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZUhhbmRsZXIuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oOgorCiAyMDE0LTA1LTMwICBUaW1vdGh5
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBsb2Fk
aW5nIHNreWRyaXZlLmNvbSAoYXNzZXJ0aW9uIHVuZGVyIFJlbW90ZUxheWVyVHJlZURpc3BsYXlS
ZWZyZXNoTW9uaXRvcikKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tCYWNrRm9yd2FyZExpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0LmgJKHJldmlzaW9uIDE2OTQ1OSkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3QuaAkod29y
a2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQAogCiAjaW1wb3J0IDxXZWJLaXQvV0tCYWNrRm9y
d2FyZExpc3RJdGVtLmg+CiAKLS8qISBAYWJzdHJhY3QgQSBAbGluayBXS1dlYlZpZXcgQC9saW5r
J3MgbGlzdCBvZiBwcmV2aW91c2x5LXZpc2l0ZWQgd2VicGFnZXMgdGhhdCBjYW4gYmUgcmVhY2hl
ZCBieQotIGdvaW5nIGJhY2sgb3IgZm9yd2FyZC4KKy8qISBAYWJzdHJhY3QgQSBXS0JhY2tGb3J3
YXJkTGlzdCBvYmplY3QgaXMgYSBsaXN0IG9mIHdlYnBhZ2VzIHByZXZpb3VzbHkKKyB2aXNpdGVk
IGluIGEgd2ViIHZpZXcgdGhhdCBjYW4gYmUgcmVhY2hlZCBieSBnb2luZyBiYWNrIG9yIGZvcndh
cmQuCiAgKi8KIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogQGludGVyZmFjZSBXS0Jh
Y2tGb3J3YXJkTGlzdCA6IE5TT2JqZWN0CkBAIC0zOSwyNyArMzksMzUgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKDEwXzEwLCA4XzApCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
V0tCYWNrRm9yd2FyZExpc3RJdGVtICpjdXJyZW50SXRlbTsKIAotLyohIEBhYnN0cmFjdCBUaGUg
aXRlbSByaWdodCBiZWZvcmUgdGhlIGN1cnJlbnQgaXRlbSwgb3IgbmlsIGlmIHRoZXJlIGlzbid0
IG9uZS4KKy8qISBAYWJzdHJhY3QgVGhlIGl0ZW0gaW1tZWRpYXRlbHkgcHJlY2VkaW5nIHRoZSBj
dXJyZW50IGl0ZW0sIG9yIG5pbAoraWYgdGhlcmUgaXNuJ3Qgb25lLgogICovCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqYmFja0l0ZW07CiAK
LS8qISBAYWJzdHJhY3QgVGhlIGl0ZW0gcmlnaHQgYWZ0ZXIgdGhlIGN1cnJlbnQgaXRlbSwgb3Ig
bmlsIGlmIHRoZXJlIGlzbid0IG9uZS4KKy8qISBAYWJzdHJhY3QgVGhlIGl0ZW0gaW1tZWRpYXRl
bHkgZm9sbG93aW5nIHRoZSBjdXJyZW50IGl0ZW0sIG9yIG5pbAoraWYgdGhlcmUgaXNuJ3Qgb25l
LgogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLQmFja0ZvcndhcmRMaXN0
SXRlbSAqZm9yd2FyZEl0ZW07CiAKLS8qISBAYWJzdHJhY3QgUmV0dXJucyBhbiBpdGVtIHRoZSBn
aXZlbiBkaXN0YW5jZSBmcm9tIHRoZSBjdXJyZW50IGl0ZW0uCi0gQHBhcmFtIGluZGV4IEluZGV4
IG9mIHRoZSBkZXNpcmVkIGxpc3QgaXRlbSByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBpdGVtOyAw
IGlzIGN1cnJlbnQgaXRlbSwgLTEgaXMgYmFjayBpdGVtLCAxIGlzIGZvcndhcmQgaXRlbSwgZXRj
LgotIEByZXN1bHQgVGhlIGl0ZW0gdGhlIGdpdmVuIGRpc3RhbmNlIGZyb20gdGhlIGN1cnJlbnQg
aXRlbS4gSWYgaW5kZXggZXhjZWVkcyB0aGUgbGltaXRzIG9mIHRoZSBsaXN0LCBuaWwgaXMgcmV0
dXJuZWQuCisvKiEgQGFic3RyYWN0IFJldHVybnMgdGhlIGl0ZW0gYXQgYSBzcGVjaWZpZWQgZGlz
dGFuY2UgZnJvbSB0aGUgY3VycmVudAorIGl0ZW0uCisgQHBhcmFtIGluZGV4IEluZGV4IG9mIHRo
ZSBkZXNpcmVkIGxpc3QgaXRlbSByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBpdGVtOgorIDAgZm9y
IHRoZSBjdXJyZW50IGl0ZW0sIC0xIGZvciB0aGUgaW1tZWRpYXRlbHkgcHJlY2VkaW5nIGl0ZW0s
IDEgZm9yIHRoZQorIGltbWVkaWF0ZWx5IGZvbGxvd2luZyBpdGVtLCBhbmQgc28gb24uCisgQHJl
c3VsdCBUaGUgaXRlbSBhdCB0aGUgc3BlY2lmaWVkIGRpc3RhbmNlIGZyb20gdGhlIGN1cnJlbnQg
aXRlbSwgb3IgbmlsCisgaWYgdGhlIGluZGV4IHBhcmFtZXRlciBleGNlZWRzIHRoZSBsaW1pdHMg
b2YgdGhlIGxpc3QuCiAgKi8KIC0gKFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW1BdEluZGV4
OihOU0ludGVnZXIpaW5kZXg7CiAKLS8qISBAYWJzdHJhY3QgUmV0dXJucyB0aGUgcG9ydGlvbiBv
ZiB0aGUgbGlzdCBiZWZvcmUgdGhlIGN1cnJlbnQgaXRlbS4KLSBAZGlzY3Vzc2lvbiBUaGUgZW50
cmllcyBhcmUgaW4gdGhlIG9yZGVyIHRoYXQgdGhleSB3ZXJlIG9yaWdpbmFsbHkgdmlzaXRlZC4K
Ky8qISBAYWJzdHJhY3QgVGhlIHBvcnRpb24gb2YgdGhlIGxpc3QgcHJlY2VkaW5nIHRoZSBjdXJy
ZW50IGl0ZW0uCisgQGRpc2N1c3Npb24gVGhlIGl0ZW1zIGFyZSBpbiB0aGUgb3JkZXIgaW4gd2hp
Y2ggdGhleSB3ZXJlIG9yaWdpbmFsbHkKKyB2aXNpdGVkLgogICovCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIE5TQXJyYXkgKmJhY2tMaXN0OwogCi0vKiEgQGFic3RyYWN0IFJldHVy
bnMgdGhlIHBvcnRpb24gb2YgdGhlIGxpc3QgYWZ0ZXIgdGhlIGN1cnJlbnQgaXRlbS4KLSBAZGlz
Y3Vzc2lvbiBUaGUgZW50cmllcyBhcmUgaW4gdGhlIG9yZGVyIHRoYXQgdGhleSB3ZXJlIG9yaWdp
bmFsbHkgdmlzaXRlZC4KKy8qISBAYWJzdHJhY3QgVGhlIHBvcnRpb24gb2YgdGhlIGxpc3QgZm9s
bG93aW5nIHRoZSBjdXJyZW50IGl0ZW0uCisgQGRpc2N1c3Npb24gVGhlIGl0ZW1zIGFyZSBpbiB0
aGUgb3JkZXIgaW4gd2hpY2ggdGhleSB3ZXJlIG9yaWdpbmFsbHkKKyB2aXNpdGVkLgogICovCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXkgKmZvcndhcmRMaXN0OwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0
SXRlbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tCYWNrRm9yd2FyZExpc3RJdGVtLmgJKHJldmlzaW9uIDE2OTQ1OSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9u
Lmg+CiAKLS8qISBBIEBsaW5rIFdLQmFja0ZvcndhcmRMaXN0SXRlbSBAL2xpbmsgcmVwcmVzZW50
cyBhIHZpc2l0ZWQgd2VicGFnZSBpbiBhIFdLV2ViVmlldydzIGJhY2stZm9yd2FyZCBsaXN0Lgor
LyohIEEgV0tCYWNrRm9yd2FyZExpc3RJdGVtIG9iamVjdCByZXByZXNlbnRzIGEgcHJldmlvdXNs
eSB2aXNpdGVkIHdlYnBhZ2UgaW4gdGhlIGJhY2stZm9yd2FyZCBsaXN0IG9mIGEgd2ViIHZpZXcu
CiAgKi8KIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogQGludGVyZmFjZSBXS0JhY2tG
b3J3YXJkTGlzdEl0ZW0gOiBOU09iamVjdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm8uaAkocmV2aXNpb24gMTY5NDU5KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSwxOCArMjksMjAgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9u
Lmg+CiAKLS8qISBBIEBsaW5rIFdLRnJhbWVJbmZvIEAvbGluayBvYmplY3QgY29udGFpbnMgaW5m
b3JtYXRpb24gYWJvdXQgYSBmcmFtZSBvbiBhIHdlYnBhZ2UuCi0gQGRpc2N1c3Npb24gV0tGcmFt
ZUluZm8gb2JqZWN0cyBhcmUgdHJhbnNpZW50LCBkYXRhLW9ubHkgb2JqZWN0cy4gQSBXS0ZyYW1l
SW5mbyBvYmplY3QKLSBkb2VzIG5vdCB1bmlxdWVseSBpZGVudGlmeSBhIGZyYW1lIGFjcm9zcyBt
dWx0aXBsZSBkZWxlZ2F0ZSBtZXRob2QgY2FsbHMuCisvKiEgQSBXS0ZyYW1lSW5mbyBvYmplY3Qg
Y29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgYSBmcmFtZSBvbiBhIHdlYnBhZ2UuCisgQGRpc2N1
c3Npb24gQW4gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcyBpcyBhIHRyYW5zaWVudCwgZGF0YS1vbmx5
IG9iamVjdDsKKyBpdCBkb2VzIG5vdCB1bmlxdWVseSBpZGVudGlmeSBhIGZyYW1lIGFjcm9zcyBt
dWx0aXBsZSBkZWxlZ2F0ZSBtZXRob2QKKyBjYWxscy4KICAqLwogV0tfQ0xBU1NfQVZBSUxBQkxF
KDEwXzEwLCA4XzApCiBAaW50ZXJmYWNlIFdLRnJhbWVJbmZvIDogTlNPYmplY3QKIAotLyohIEBh
YnN0cmFjdCBXaGV0aGVyIHRoZSBmcmFtZSBpcyB0aGUgbWFpbiBmcmFtZSBvciBhIHN1YmZyYW1l
LgorLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBm
cmFtZSBpcyB0aGUgbWFpbiBmcmFtZQorIG9yIGEgc3ViZnJhbWUuCiAgKi8KIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzTWFpbkZyYW1lKSBCT09MIG1haW5GcmFtZTsK
IAotLyohIEBhYnN0cmFjdCBUaGUgY3VycmVudCBOU1VSTFJlcXVlc3Qgb2YgdGhpcyBmcmFtZS4K
Ky8qISBAYWJzdHJhY3QgVGhlIGZyYW1l4oCZcyBjdXJyZW50IHJlcXVlc3QuCiAgKi8KIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0OwogCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
LmgJKHJldmlzaW9uIDE2OTQ1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tOYXZpZ2F0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDI1ICsyOSwzMSBAQAogCiAj
aW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotLyohIFdLTmF2aWdhdGlvbiBvYmpl
Y3RzIGFyZSByZXR1cm5lZCBmcm9tIHRoZSBAbGluayBXS1dlYlZpZXcgQC9saW5rIGxvYWQgbWV0
aG9kcyBhbmQgYXJlIHBhc3NlZCB0byB0aGUgCi0gQGxpbmsgV0tOYXZpZ2F0aW9uRGVsZWdhdGUg
QC9saW5rIG1ldGhvZHMuIEEgV0tOYXZpZ2F0aW9uIG9iamVjdCB1bmlxdWVseSBpZGVudGlmaWVz
IGEgd2VicGFnZSBsb2FkIGZyb20gc3RhcnQgdG8gZmluaXNoLgorLyohIEEgV0tOYXZpZ2F0aW9u
IG9iamVjdCBjb250YWlucyBpbmZvcm1hdGlvbiBmb3IgdHJhY2tpbmcgdGhlIGxvYWRpbmcKKyBw
cm9ncmVzcyBvZiBhIHdlYnBhZ2UuCisgQGRpc2N1c3Npb24gQSBuYXZpZ2F0aW9uIGlzIHJldHVy
bmVkIGZyb20gdGhlIHdlYiB2aWV3IGxvYWQgbWV0aG9kcywgYW5kIGlzCisgYWxzbyBwYXNzZWQg
dG8gdGhlIG5hdmlnYXRpb24gZGVsZWdhdGUgbWV0aG9kcywgdG8gdW5pcXVlbHkgaWRlbnRpZnkg
YSB3ZWJwYWdlCisgbG9hZCBmcm9tIHN0YXJ0IHRvIGZpbmlzaC4KICAqLwogV0tfQ0xBU1NfQVZB
SUxBQkxFKDEwXzEwLCA4XzApCiBAaW50ZXJmYWNlIFdLTmF2aWdhdGlvbiA6IE5TT2JqZWN0CiAK
LS8qISBAYWJzdHJhY3QgVGhlIGluaXRpYWwgTlNVUkxSZXF1ZXN0IHVzZWQgdG8gcGVyZm9ybSB0
aGUgbmF2aWdhdGlvbi4KKy8qISBAYWJzdHJhY3QgVGhlIGluaXRpYWwgcmVxdWVzdCB1c2VkIHRv
IHBlcmZvcm0gdGhlIG5hdmlnYXRpb24uCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgTlNVUkxSZXF1ZXN0ICppbml0aWFsUmVxdWVzdDsKIAotLyohIEBhYnN0cmFjdCBUaGUg
Y3VycmVudCByZXF1ZXN0IG9mIHRoZSBuYXZpZ2F0aW9uLiBUaGlzIHJlcXVlc3QgbWF5IGJlIGRp
ZmZlcmVudCBmcm9tIHRoZSByZXF1ZXN0IHJldHVybmVkIGJ5IGluaXRpYWxSZXF1ZXN0IGlmIHNl
cnZlciBzaWRlIHJlZGlyZWN0cyBoYXZlIGhhcHBlbmVkLgorLyohIEBhYnN0cmFjdCBUaGUgbmF2
aWdhdGlvbuKAmXMgY3VycmVudCByZXF1ZXN0LgorIEBkaXNjdXNzaW9uIFRoaXMgcmVxdWVzdCBt
YXkgYmUgZGlmZmVyZW50IGZyb20gdGhlIG9uZSByZXR1cm5lZCBieQorIGluaXRpYWxSZXF1ZXN0
IGlmIHNlcnZlci1zaWRlIHJlZGlyZWN0cyBoYXZlIG9jY3VycmVkLgogICovCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMUmVxdWVzdCAqcmVxdWVzdDsKIAotLyogQGFic3Ry
YWN0IFRoZSBOU1VSTFJlc3BvbnNlIGZvciB0aGUgbmF2aWdhdGlvbiBvciBuaWwgaWYgbm8gcmVz
cG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgeWV0LgorLyogQGFic3RyYWN0IFRoZSByZXNwb25zZSB0
byB0aGUgbmF2aWdhdGlvbiwgb3IgbmlsIGlmIG5vIHJlc3BvbnNlIGhhcyB5ZXQKKyBiZWVuIHJl
Y2VpdmVkLgogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMUmVzcG9u
c2UgKnJlc3BvbnNlOwogCi0vKiBAYWJzdHJhY3QgVGhlIGVycm9yIGZvciB0aGUgbmF2aWdhdGlv
biBpZiBpdCBmYWlsZWQgb3IgbmlsIGlmIGl0IGRpZCBub3QgZmFpbC4KKy8qIEBhYnN0cmFjdCBU
aGUgZXJyb3IgaWYgdGhlIG5hdmlnYXRpb24gZmFpbGVkLCBvciBuaWwgaWYgaXQgZGlkIG5vdCBm
YWlsLgogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TRXJyb3IgKmVycm9y
OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlv
bkFjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tOYXZpZ2F0aW9uQWN0aW9uLmgJKHJldmlzaW9uIDE2OTQ1OSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDEyICszNiwxMiBAQAogQGNsYXNzIFdLRnJhbWVJbmZvOwogCiAvKiEgQGVudW0g
V0tOYXZpZ2F0aW9uVHlwZQotIEBhYnN0cmFjdCB0aGUgdHlwZSBvZiBhY3Rpb24gdGhhdCB0cmln
Z2VyZWQgYSBwb3NzaWJsZSBuYXZpZ2F0aW9uLgotIEBjb25zdGFudCBXS05hdmlnYXRpb25UeXBl
TGlua0FjdGl2YXRlZCAgICBBIGxpbmsgd2l0aCBhbiBocmVmIGFjdGl2YXRlZCBieSB0aGUgdXNl
ci4KKyBAYWJzdHJhY3QgVGhlIHR5cGUgb2YgYWN0aW9uIHRyaWdnZXJpbmcgYSBuYXZpZ2F0aW9u
LgorIEBjb25zdGFudCBXS05hdmlnYXRpb25UeXBlTGlua0FjdGl2YXRlZCAgICBBIGxpbmsgd2l0
aCBhbiBocmVmIGF0dHJpYnV0ZSB3YXMgYWN0aXZhdGVkIGJ5IHRoZSB1c2VyLgogIEBjb25zdGFu
dCBXS05hdmlnYXRpb25UeXBlRm9ybVN1Ym1pdHRlZCAgICBBIGZvcm0gd2FzIHN1Ym1pdHRlZC4K
ICBAY29uc3RhbnQgV0tOYXZpZ2F0aW9uVHlwZUJhY2tGb3J3YXJkICAgICAgQW4gaXRlbSBmcm9t
IHRoZSBiYWNrLWZvcndhcmQgbGlzdCB3YXMgcmVxdWVzdGVkLgogIEBjb25zdGFudCBXS05hdmln
YXRpb25UeXBlUmVsb2FkICAgICAgICAgICBUaGUgd2VicGFnZSB3YXMgcmVsb2FkZWQuCi0gQGNv
bnN0YW50IFdLTmF2aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQgIEEgZm9ybSB3YXMgcmVzdWJt
aXR0ZWQgKGZvciBleGFtcGxlIGJ5IGdvaW5nIGJhY2sgb3IgZm9yd2FyZCwgb3IgcmVsb2FkaW5n
KS4KKyBAY29uc3RhbnQgV0tOYXZpZ2F0aW9uVHlwZUZvcm1SZXN1Ym1pdHRlZCAgQSBmb3JtIHdh
cyByZXN1Ym1pdHRlZCAoZm9yIGV4YW1wbGUgYnkgZ29pbmcgYmFjaywgZ29pbmcgZm9yd2FyZCwg
b3IgcmVsb2FkaW5nKS4KICBAY29uc3RhbnQgV0tOYXZpZ2F0aW9uVHlwZU90aGVyICAgICAgICAg
ICAgTmF2aWdhdGlvbiBpcyB0YWtpbmcgcGxhY2UgZm9yIHNvbWUgb3RoZXIgcmVhc29uLgogICov
CiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25UeXBlKSB7CkBAIC01Mywy
NCArNTMsMjYgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tOYXZpZ2F0aW9uVAogICAg
IFdLTmF2aWdhdGlvblR5cGVPdGhlciA9IC0xLAogfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMCwg
OF8wKTsKIAotLyohIENvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGFuIGFjdGlvbiB0aGF0IG1h
eSBjYXVzZSBhIG5hdmlnYXRpb24uIFVzZWQgZm9yIG1ha2luZyBwb2xpY3kgZGVjaXNpb25zLgor
LyohIAorQSBXS05hdmlnYXRpb25BY3Rpb24gb2JqZWN0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFi
b3V0IGFuIGFjdGlvbiB0aGF0IG1heSBjYXVzZSBhIG5hdmlnYXRpb24sIHVzZWQgZm9yIG1ha2lu
ZyBwb2xpY3kgZGVjaXNpb25zLgogICovCiBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkK
IEBpbnRlcmZhY2UgV0tOYXZpZ2F0aW9uQWN0aW9uIDogTlNPYmplY3QKIAotLyohIEBhYnN0cmFj
dCBEZXNjcmliZXMgdGhlIGZyYW1lIHRoYXQgcmVxdWVzdGVkIHRoZSBuYXZpZ2F0aW9uLgorLyoh
IEBhYnN0cmFjdCBUaGUgZnJhbWUgcmVxdWVzdGluZyB0aGUgbmF2aWdhdGlvbi4KICAqLwogQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS0ZyYW1lSW5mbyAqc291cmNlRnJhbWU7CiAK
LS8qISBAYWJzdHJhY3QgRGVzY3JpYmVzIHRoZSB0YXJnZXQgZnJhbWUgb2YgdGhlIG5hdmlnYXRp
b24uIElmIHRoaXMgaXMgYSBuZXcgd2luZG93IG5hdmlnYXRpb24sIHRhcmdldEZyYW1lIHdpbGwg
YmUgbmlsLgorLyohIEBhYnN0cmFjdCBUaGUgdGFyZ2V0IGZyYW1lLCBvciBuaWwgaWYgdGhpcyBp
cyBhIG5ldyB3aW5kb3cgbmF2aWdhdGlvbi4KICAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBXS0ZyYW1lSW5mbyAqdGFyZ2V0RnJhbWU7CiAKLS8qISBAYWJzdHJhY3QgVGhlIHR5
cGUgb2YgdGhlIG5hdmlnYXRpb24uCisvKiEgQGFic3RyYWN0IFRoZSB0eXBlIG9mIGFjdGlvbiB0
aGF0IHRyaWdnZXJlZCB0aGUgbmF2aWdhdGlvbi4KKyBAZGlzY3Vzc2lvbiBUaGUgdmFsdWUgaXMg
b25lIG9mIHRoZSBjb25zdGFudHMgb2YgdGhlIGVudW1lcmF0ZWQgdHlwZSBXS05hdmlnYXRpb25U
eXBlLgogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLTmF2aWdhdGlvblR5
cGUgbmF2aWdhdGlvblR5cGU7CiAKLS8qISBAYWJzdHJhY3QgVGhlIE5TVVJMUmVxdWVzdCBvZiB0
aGUgbmF2aWdhdGlvbi4KKy8qISBAYWJzdHJhY3QgVGhlIG5hdmlnYXRpb27igJlzIHJlcXVlc3Qu
CiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkxSZXF1ZXN0ICpyZXF1
ZXN0OwogCkBAIC04MCw3ICs4Miw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQog
ICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TRXZlbnRNb2RpZmllckZsYWdz
IG1vZGlmaWVyRmxhZ3M7CiAKLS8qISBAYWJzdHJhY3QgVGhlIG1vdXNlIGJ1dHRvbiBudW1iZXIg
dGhhdCBjYXVzZWQgdGhlIG5hdmlnYXRpb24gdG8gYmUgcmVxdWVzdGVkLgorLyohIEBhYnN0cmFj
dCBUaGUgbnVtYmVyIG9mIHRoZSBtb3VzZSBidXR0b24gY2F1c2luZyB0aGUgbmF2aWdhdGlvbiB0
byBiZSByZXF1ZXN0ZWQuCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNJ
bnRlZ2VyIGJ1dHRvbk51bWJlcjsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaAkocmV2aXNpb24g
MTY5NDU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRp
b25EZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw4IEBACiBAY2xhc3MgV0tX
ZWJWaWV3OwogCiAvKiEgQGVudW0gV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5Ci0gQGFic3RyYWN0
IHRoZSBwb2xpY3kgdG8gcGFzcyBiYWNrIHRvIHRoZSBkZWNpc2lvbiBoYW5kbGVyIGluIHdlYlZp
ZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6LgorIEBh
YnN0cmFjdCBUaGUgcG9saWN5IHRvIHBhc3MgYmFjayB0byB0aGUgZGVjaXNpb24gaGFuZGxlciBm
cm9tIHRoZQorIHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lv
bkhhbmRsZXI6IG1ldGhvZC4KICBAY29uc3RhbnQgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5Q2Fu
Y2VsICAgQ2FuY2VsIHRoZSBuYXZpZ2F0aW9uLgogIEBjb25zdGFudCBXS05hdmlnYXRpb25BY3Rp
b25Qb2xpY3lBbGxvdyAgICBBbGxvdyB0aGUgbmF2aWdhdGlvbiB0byBjb250aW51ZS4KICAqLwpA
QCAtNDUsNyArNDYsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25B
CiB9IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEwLCA4XzApOwogCiAvKiEgQGVudW0gV0tOYXZpZ2F0
aW9uUmVzcG9uc2VQb2xpY3kKLSBAYWJzdHJhY3QgdGhlIHBvbGljeSB0byBwYXNzIGJhY2sgdG8g
dGhlIGRlY2lzaW9uIGhhbmRsZXIgaW4gd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
UmVzcG9uc2U6ZGVjaXNpb25IYW5kbGVyOi4KKyBAYWJzdHJhY3QgVGhlIHBvbGljeSB0byBwYXNz
IGJhY2sgdG8gdGhlIGRlY2lzaW9uIGhhbmRsZXIgZnJvbSB0aGUgd2ViVmlldzpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2U6ZGVjaXNpb25IYW5kbGVyOiBtZXRob2QuCiAgQGNvbnN0
YW50IFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5Q2FuY2VsICAgQ2FuY2VsIHRoZSBuYXZpZ2F0
aW9uLgogIEBjb25zdGFudCBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUFsbG93ICAgIEFsbG93
IHRoZSBuYXZpZ2F0aW9uIHRvIGNvbnRpbnVlLgogICovCkBAIC01NCw2MiArNTUsNzEgQEAgdHlw
ZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tOYXZpZ2F0aW9uUgogICAgIFdLTmF2aWdhdGlvblJl
c3BvbnNlUG9saWN5QWxsb3csCiB9IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEwLCA4XzApOwogCi0v
KiEgQSBjbGFzcyB0aGF0IGNvbmZvcm1zIHRvIFdLTmF2aWdhdGlvbkRlbGVnYXRlIGNhbiBkZWNp
ZGUgcG9saWN5IGZvciBtYWluIGZyYW1lIGFuZCBzdWJmcmFtZSBuYXZpZ2F0aW9ucywKLSBhbmQg
dHJhY2sgcHJvZ3Jlc3MgZm9yIG1haW4gZnJhbWUgbmF2aWdhdGlvbnMuCisvKiEgQSBjbGFzcyBj
b25mb3JtaW5nIHRvIHRoZSBXS05hdmlnYXRpb25EZWxlZ2F0ZSBwcm90b2NvbCBjYW4gcHJvdmlk
ZQorIG1ldGhvZHMgZm9yIHRyYWNraW5nIHByb2dyZXNzIGZvciBtYWluIGZyYW1lIG5hdmlnYXRp
b25zIGFuZCBmb3IgZGVjaWRpbmcKKyBwb2xpY3kgZm9yIG1haW4gZnJhbWUgYW5kIHN1YmZyYW1l
IG5hdmlnYXRpb25zLgogICovCiBAcHJvdG9jb2wgV0tOYXZpZ2F0aW9uRGVsZWdhdGUgPE5TT2Jq
ZWN0PgogCiBAb3B0aW9uYWwKIAotLyohIEBhYnN0cmFjdCBEZWNpZGVzIHdoZXRoZXIgYSBuYXZp
Z2F0aW9uIHNob3VsZCBiZSBhbGxvd2VkIG9yIG5vdC4KLSBAcGFyYW0gd2ViVmlldyBUaGUgV0tX
ZWJWaWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2QuCi0gQHBhcmFtIG5hdmlnYXRpb25B
Y3Rpb24gQSBkZXNjcmlwdGlvbiBvZiB0aGUgYWN0aW9uIHRoYXQgdHJpZ2dlcmVkIHRoZSBuYXZp
Z2F0aW9uIHJlcXVlc3QuCi0gQHBhcmFtIGRlY2lzaW9uSGFuZGxlciBUaGUgZGVjaXNpb24gaGFu
ZGxlciB0aGF0IHNob3VsZCBiZSBjYWxsZWQgdG8gYWxsb3cgb3IgY2FuY2VsIHRoZSBuYXZpZ2F0
aW9uLgorLyohIEBhYnN0cmFjdCBEZWNpZGVzIHdoZXRoZXIgdG8gYWxsb3cgb3IgY2FuY2VsIGEg
bmF2aWdhdGlvbi4KKyBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhlIGRl
bGVnYXRlIG1ldGhvZC4KKyBAcGFyYW0gbmF2aWdhdGlvbkFjdGlvbiBEZXNjcmlwdGl2ZSBpbmZv
cm1hdGlvbiBhYm91dCB0aGUgYWN0aW9uCisgdHJpZ2dlcmluZyB0aGUgbmF2aWdhdGlvbiByZXF1
ZXN0LgorIEBwYXJhbSBkZWNpc2lvbkhhbmRsZXIgVGhlIGRlY2lzaW9uIGhhbmRsZXIgdG8gY2Fs
bCB0byBhbGxvdyBvciBjYW5jZWwgdGhlCisgbmF2aWdhdGlvbi4gVGhlIGFyZ3VtZW50IGlzIG9u
ZSBvZiB0aGUgY29uc3RhbnRzIG9mIHRoZSBlbnVtZXJhdGVkIHR5cGUgV0tOYXZpZ2F0aW9uQWN0
aW9uUG9saWN5LgogICovCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdh
dGlvbkFjdGlvbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeSkpZGVjaXNpb25IYW5kbGVyOwogCi0vKiEgQGFic3RyYWN0IERlY2lkZXMgd2hldGhlciBh
IG5hdmlnYXRpb24gc2hvdWxkIGJlIGFsbG93ZWQgb3IgY2FuY2VsbGVkIG9uY2UgaXRzIHJlc3Bv
bnNlIGlzIGtub3duLgotIEBwYXJhbSB3ZWJWaWV3IFRoZSBXS1dlYlZpZXcgaW52b2tpbmcgdGhl
IGRlbGVnYXRlIG1ldGhvZC4KLSBAcGFyYW0gbmF2aWdhdGlvblJlc3BvbnNlIEEgZGVzY3JpcHRp
b24gb2YgdGhlIG5hdmlnYXRpb24gcmVzcG9uc2UuCi0gQHBhcmFtIGRlY2lzaW9uSGFuZGxlciBU
aGUgZGVjaXNpb24gaGFuZGxlciB0aGF0IHNob3VsZCBiZSBjYWxsZWQgdG8gYWxsb3cgb3IgY2Fu
Y2VsIHRoZSBuYXZpZ2F0aW9uLgorLyohIEBhYnN0cmFjdCBEZWNpZGVzIHdoZXRoZXIgdG8gYWxs
b3cgb3IgY2FuY2VsIGEgbmF2aWdhdGlvbiBhZnRlciBpdHMKKyByZXNwb25zZSBpcyBrbm93bi4K
KyBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhv
ZC4KKyBAcGFyYW0gbmF2aWdhdGlvblJlc3BvbnNlIERlc2NyaXB0aXZlIGluZm9ybWF0aW9uIGFi
b3V0IHRoZSBuYXZpZ2F0aW9uCisgcmVzcG9uc2UuCisgQHBhcmFtIGRlY2lzaW9uSGFuZGxlciBU
aGUgZGVjaXNpb24gaGFuZGxlciB0byBjYWxsIHRvIGFsbG93IG9yIGNhbmNlbCB0aGUKKyBuYXZp
Z2F0aW9uLiBUaGUgYXJndW1lbnQgaXMgb25lIG9mIHRoZSBjb25zdGFudHMgb2YgdGhlIGVudW1l
cmF0ZWQgdHlwZSBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeS4KICAqLwogLSAodm9pZCl3ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25z
ZTooV0tOYXZpZ2F0aW9uUmVzcG9uc2UgKiluYXZpZ2F0aW9uUmVzcG9uc2UgZGVjaXNpb25IYW5k
bGVyOih2b2lkICheKShXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSkpZGVjaXNpb25IYW5kbGVy
OwogCiAvKiEgQGFic3RyYWN0IEludm9rZWQgd2hlbiBhIG1haW4gZnJhbWUgbmF2aWdhdGlvbiBz
dGFydHMuCi0gQHBhcmFtIHdlYlZpZXcgVGhlIFdLV2ViVmlldyBpbnZva2luZyB0aGUgZGVsZWdh
dGUgbWV0aG9kLgorIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyBpbnZva2luZyB0aGUgZGVs
ZWdhdGUgbWV0aG9kLgogIEBwYXJhbSBuYXZpZ2F0aW9uIFRoZSBuYXZpZ2F0aW9uLgogICovCiAt
ICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkU3RhcnRQcm92aXNpb25hbE5h
dmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb247CiAKLS8qISBAYWJzdHJhY3QgSW52
b2tlZCB3aGVuIGEgc2VydmVyIHJlZGlyZWN0IGlzIHJlY2VpdmVkIGZvciB0aGUgbWFpbiBmcmFt
ZS4KLSBAcGFyYW0gd2ViVmlldyBUaGUgV0tXZWJWaWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBt
ZXRob2QuCisvKiEgQGFic3RyYWN0IEludm9rZWQgd2hlbiBhIHNlcnZlciByZWRpcmVjdCBpcyBy
ZWNlaXZlZCBmb3IgdGhlIG1haW4KKyBmcmFtZS4KKyBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZp
ZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KICBAcGFyYW0gbmF2aWdhdGlvbiBUaGUg
bmF2aWdhdGlvbi4KICAqLwogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tOYXZpZ2F0
aW9uICopbmF2aWdhdGlvbjsKIAotLyohIEBhYnN0cmFjdCBJbnZva2VkIGlmIGFuIGVycm9yIG9j
Y3VycyB3aGVuIHN0YXJ0aW5nIHRvIGxvYWQgZGF0YSBmb3IgdGhlIG1haW4gZnJhbWUuCi0gQHBh
cmFtIHdlYlZpZXcgVGhlIFdLV2ViVmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUgbWV0aG9kLgor
LyohIEBhYnN0cmFjdCBJbnZva2VkIHdoZW4gYW4gZXJyb3Igb2NjdXJzIHdoaWxlIHN0YXJ0aW5n
IHRvIGxvYWQgZGF0YSBmb3IKKyB0aGUgbWFpbiBmcmFtZS4KKyBAcGFyYW0gd2ViVmlldyBUaGUg
d2ViIHZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KICBAcGFyYW0gbmF2aWdhdGlv
biBUaGUgbmF2aWdhdGlvbi4KLSBAcGFyYW0gZXJyb3IgU3BlY2lmaWVzIHRoZSB0eXBlIG9mIGVy
cm9yIHRoYXQgb2NjdXJyZWQgZHVyaW5nIHRoZSBuYXZpZ2F0aW9uLgorIEBwYXJhbSBlcnJvciBU
aGUgdHlwZSBvZiBlcnJvciB0aGF0IG9jY3VycmVkLgogICovCiAtICh2b2lkKXdlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tOYXZpZ2F0
aW9uICopbmF2aWdhdGlvbiB3aXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcjsKIAogLyohIEBhYnN0
cmFjdCBJbnZva2VkIHdoZW4gY29udGVudCBzdGFydHMgYXJyaXZpbmcgZm9yIHRoZSBtYWluIGZy
YW1lLgotIEBwYXJhbSB3ZWJWaWV3IFRoZSBXS1dlYlZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRl
IG1ldGhvZC4KKyBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhlIGRlbGVn
YXRlIG1ldGhvZC4KICBAcGFyYW0gbmF2aWdhdGlvbiBUaGUgbmF2aWdhdGlvbi4KICAqLwogLSAo
dm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENvbW1pdE5hdmlnYXRpb246KFdL
TmF2aWdhdGlvbiAqKW5hdmlnYXRpb247CiAKIC8qISBAYWJzdHJhY3QgSW52b2tlZCB3aGVuIGEg
bWFpbiBmcmFtZSBuYXZpZ2F0aW9uIGNvbXBsZXRlcy4KLSBAcGFyYW0gd2ViVmlldyBUaGUgV0tX
ZWJWaWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2QuCisgQHBhcmFtIHdlYlZpZXcgVGhl
IHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2QuCiAgQHBhcmFtIG5hdmlnYXRp
b24gVGhlIG5hdmlnYXRpb24uCiAgKi8KIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBkaWRGaW5pc2hOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uOwogCi0v
KiEgQGFic3RyYWN0IEludm9rZWQgaWYgYW4gZXJyb3Igb2NjdXJzIHdoaWxlIGxvYWRpbmcgYSBj
b21taXR0ZWQgbWFpbiBmcmFtZSBuYXZpZ2F0aW9uLgotIEBwYXJhbSB3ZWJWaWV3IFRoZSBXS1dl
YlZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KKy8qISBAYWJzdHJhY3QgSW52b2tl
ZCB3aGVuIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgYSBjb21taXR0ZWQgbWFpbiBmcmFtZQorIG5h
dmlnYXRpb24uCisgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxl
Z2F0ZSBtZXRob2QuCiAgQHBhcmFtIG5hdmlnYXRpb24gVGhlIG5hdmlnYXRpb24uCi0gQHBhcmFt
IGVycm9yIFNwZWNpZmllcyB0aGUgdHlwZSBvZiBlcnJvciB0aGF0IG9jY3VycmVkIGR1cmluZyB0
aGUgbmF2aWdhdGlvbi4KKyBAcGFyYW0gZXJyb3IgVGhlIHR5cGUgb2YgZXJyb3IgdGhhdCBvY2N1
cnJlZC4KICAqLwogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZhaWxO
YXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uIHdpdGhFcnJvcjooTlNFcnJvciAq
KWVycm9yOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2
aWdhdGlvblJlc3BvbnNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5oCShyZXZpc2lvbiAxNjk0NTkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDE1ICszNiwxNSBAQAogV0tfQ0xBU1NfQVZBSUxBQkxFKDEw
XzEwLCA4XzApCiBAaW50ZXJmYWNlIFdLTmF2aWdhdGlvblJlc3BvbnNlIDogTlNPYmplY3QKIAot
LyohIEBhYnN0cmFjdCBXaGV0aGVyIHRoZSBmcmFtZSB0aGF0IGlzIGJlaW5nIG5hdmlnYXRlZCBp
cyB0aGUgbWFpbiBmcmFtZSBvciBub3QuCisvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBp
bmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZyYW1lIGJlaW5nIG5hdmlnYXRlZCBpcyB0aGUgbWFpbiBm
cmFtZS4KICAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNGb3JN
YWluRnJhbWUpIEJPT0wgZm9yTWFpbkZyYW1lOwogCi0vKiEgQGFic3RyYWN0IFRoZSBOU1VSTFJl
c3BvbnNlIG9mIHRoZSBmcmFtZS4KKy8qISBAYWJzdHJhY3QgVGhlIGZyYW1l4oCZcyByZXNwb25z
ZS4KICAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTFJlc3BvbnNlICpy
ZXNwb25zZTsKIAotLyohIEBhYnN0cmFjdCBXaGV0aGVyIFdlYktpdCBjYW4gc2hvdyB0aGUgTUlN
RSB0eXBlIG5hdGl2ZWx5IG9yIG5vdC4KKy8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGlu
ZGljYXRpbmcgd2hldGhlciBXZWJLaXQgY2FuIGRpc3BsYXkgYSBnaXZlbiBNSU1FIHR5cGUgbmF0
aXZlbHkuCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBjYW5TaG93
TUlNRVR5cGU7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmVmZXJlbmNlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlcy5oCShyZXZpc2lvbiAxNjk0NTkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaAkod29ya2luZyBjb3B5KQpAQCAt
MzAsMTcgKzMwLDIwIEBACiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CiAj
aW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotLyohIFdLUHJlZmVyZW5jZXMgZW5j
YXBzdWxhdGVzIHRoZSBwcmVmZXJlbmNlcyB5b3UgY2FuIGNoYW5nZSBmb3Igb25lIG9yIG1vcmUg
V0tXZWJWaWV3cy4gCi0gQSBAbGluayBXS1dlYlZpZXcgQC9saW5rIGNhbiBzcGVjaWZ5IHdoaWNo
IFdLUHJlZmVyZW5jZXMgb2JqZWN0IGl0IHVzZXMgdGhyb3VnaCBpdHMgQGxpbmsgV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBAL2xpbmsuCisvKiEgQSBXS1ByZWZlcmVuY2VzIG9iamVjdCBlbmNhcHN1
bGF0ZXMgdGhlIHByZWZlcmVuY2Ugc2V0dGluZ3MgZm9yIGEgd2ViCisgdmlldy4gVGhlIHByZWZl
cmVuY2VzIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggYSB3ZWIgdmlldyBpcyBzcGVjaWZpZWQgYnkK
KyBpdHMgd2ViIHZpZXcgY29uZmlndXJhdGlvbi4KICAqLwogV0tfQ0xBU1NfQVZBSUxBQkxFKDEw
XzEwLCA4XzApCiBAaW50ZXJmYWNlIFdLUHJlZmVyZW5jZXMgOiBOU09iamVjdAogCi0vKiEgQGFi
c3RyYWN0IFJldHVybnMgYW4gaW5pdGlhbGl6ZWQgV0tQcmVmZXJlbmNlcyBvYmplY3QuCisvKiEg
QGFic3RyYWN0IFJldHVybnMgYW4gaW5pdGlhbGl6ZWQgcHJlZmVyZW5jZXMgb2JqZWN0LgogIEBw
YXJhbSB1c2VyRGVmYXVsdHNLZXlQcmVmaXggVGhlIHVzZXIgZGVmYXVsdHMga2V5IHByZWZpeC4K
LSBAcmVzdWx0IEFuIGluaXRpYWxpemVkIFdLUHJlZmVyZW5jZXMgb2JqZWN0LCBvciBuaWwgaWYg
dGhlIG9iamVjdCBjb3VsZCBub3QgYmUgaW5pdGlhbGl6ZWQuCi0gQGRpc2N1c3Npb24gSWYgdGhl
IHVzZXJEZWZhdWx0c0tleVByZWZpeCBhcmd1bWVudCBpcyBub24tbmlsLCBpdCBpcyBwcmVwZW5k
ZWQgdG8gdGhlIGtleXMgdXNlZCB0byBzdG9yZSBwcmVmZXJlbmNlcwotIGluIHRoZSB1c2VyIGRl
ZmF1bHRzIGRhdGFiYXNlLiBJZiB0aGUgYXJndW1lbnQgaXMgbmlsLCB0aGUgcHJlZmVyZW5jZXMg
b2JqZWN0IHdvbid0IHNhdmUgYW55dGhpbmcgdG8gdGhlIHVzZXIgZGVmYXVsdHMgZGF0YWJhc2Uu
CisgQHJlc3VsdCBBbiBpbml0aWFsaXplZCBwcmVmZXJlbmNlcyBvYmplY3QuCisgQGRpc2N1c3Np
b24gSWYgdGhlIHVzZXJEZWZhdWx0c0tleVByZWZpeCBwYXJhbWV0ZXIgaXMgbm90IG5pbCwgaXQg
aXMKKyBwcmVwZW5kZWQgdG8gdGhlIGtleXMgdXNlZCB0byBzdG9yZSBwcmVmZXJlbmNlcyBpbiB0
aGUgdXNlciBkZWZhdWx0cworIGRhdGFiYXNlLiBJZiB0aGUgcGFyYW1ldGVyIGlzIG5pbCwgdGhl
IHByZWZlcmVuY2VzIG9iamVjdCB3aWxsIG5vdCBzYXZlCisgYW55dGhpbmcgdG8gdGhlIHVzZXIg
ZGVmYXVsdHMgZGF0YWJhc2UuCiAgKi8KIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFVzZXJEZWZh
dWx0c0tleVByZWZpeDooTlNTdHJpbmcgKil1c2VyRGVmYXVsdHNLZXlQcmVmaXggV0tfREVTSUdO
QVRFRF9JTklUSUFMSVpFUjsKIApAQCAtNDgsNDMgKzUxLDU2IEBAIFdLX0NMQVNTX0FWQUlMQUJM
RSgxMF8xMCwgOF8wKQogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3Ry
aW5nICp1c2VyRGVmYXVsdHNLZXlQcmVmaXg7CiAKLS8qISBAYWJzdHJhY3QgVGhlIG1pbmltdW0g
Zm9udCBzaXplIGluIHBvaW50cy4gRGVmYXVsdHMgdG8gMC4KKy8qISBAYWJzdHJhY3QgVGhlIG1p
bmltdW0gZm9udCBzaXplIGluIHBvaW50cy4KKyBAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1
ZSBpcyAwLgogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9hdCBtaW5pbXVtRm9udFNp
emU7CiAKLS8qISBAYWJzdHJhY3QgV2hldGhlciBKYXZhU2NyaXB0IGlzIGVuYWJsZWQuIERlZmF1
bHRzIHRvIFlFUy4KKy8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hl
dGhlciBKYXZhU2NyaXB0IGlzIGVuYWJsZWQuCisgQGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFs
dWUgaXMgWUVTLgogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzSmF2YVNjcmlw
dEVuYWJsZWQpIEJPT0wgamF2YVNjcmlwdEVuYWJsZWQ7CiAKLS8qISBAYWJzdHJhY3QgV2hldGhl
ciBKYXZhU2NyaXB0IGNhbiBvcGVuIHdpbmRvd3Mgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLiBE
ZWZhdWx0cyB0byBOTyBvbiBpT1MgYW5kIFlFUyBvbiBPUyBYLgorLyohIEBhYnN0cmFjdCBBIEJv
b2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEphdmFTY3JpcHQgY2FuIG9wZW4KKyB3aW5k
b3dzIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4KKyBAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2
YWx1ZSBpcyBOTyBpbiBpT1MgYW5kIFlFUyBpbiBPUyBYLgogICovCiBAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OwogCi0vKiEg
QGFic3RyYWN0IFdoZXRoZXIgdGhlIFdLV2ViVmlldyBzdXBwcmVzc2VzIGNvbnRlbnQgcmVuZGVy
aW5nIHVudGlsIGl0IGlzIGZ1bGx5IGxvYWRlZCBpbnRvIG1lbW9yeS4gRGVmYXVsdHMgdG8gTk8u
CisvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHdl
YiB2aWV3IHN1cHByZXNzZXMKKyBjb250ZW50IHJlbmRlcmluZyB1bnRpbCBpdCBpcyBmdWxseSBs
b2FkZWQgaW50byBtZW1vcnkuCisgQGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgTk8u
CiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHN1cHByZXNzZXNJbmNyZW1lbnRhbFJl
bmRlcmluZzsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKLS8qISBAYWJzdHJhY3QgV2hldGhlciBI
VE1MNSB2aWRlb3MgcGxheSBpbmxpbmUgb3IgdXNlIHRoZSBuYXRpdmUgZnVsbC1zY3JlZW4gY29u
dHJvbGxlci4gRGVmYXVsdHMgdG8gTk8uCisvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBp
bmRpY2F0aW5nIHdoZXRoZXIgSFRNTDUgdmlkZW9zIHBsYXkgaW5saW5lCisgKFlFUykgb3IgdXNl
IHRoZSBuYXRpdmUgZnVsbC1zY3JlZW4gY29udHJvbGxlciAoTk8pLgorIEBkaXNjdXNzaW9uIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzIE5PLgogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBh
bGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrOwogCi0vKiEgQGFic3RyYWN0IFdoZXRoZXIgSFRNTDUg
dmlkZW9zIGNhbiBwbGF5IGF1dG9tYXRpY2FsbHkgb3IgcmVxdWlyZSB0aGUgdXNlciB0byBzdGFy
dCBwbGF5aW5nIHRoZW0uIERlZmF1bHRzIHRvIFlFUy4KKy8qISBAYWJzdHJhY3QgQSBCb29sZWFu
IHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBIVE1MNSB2aWRlb3MgcmVxdWlyZSB0aGUKKyB1c2Vy
IHRvIHN0YXJ0IHBsYXlpbmcgdGhlbSAoWUVTKSBvciBjYW4gcGxheSBhdXRvbWF0aWNhbGx5IChO
TykuCisgQGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgWUVTLgogICovCiBAcHJvcGVy
dHkgKG5vbmF0b21pYykgQk9PTCBtZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyQWN0aW9uOwogCi0v
KiEgQGFic3RyYWN0IFdoZXRoZXIgQWlyUGxheSBpcyBhbGxvd2VkLiBEZWZhdWx0cyB0byBZRVMu
CisvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgQWlyUGxh
eSBpcyBhbGxvd2VkLgorIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFlFUy4KICAq
LwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbWVkaWFQbGF5YmFja0FsbG93c0FpclBsYXk7
CiAKICNlbmRpZgogCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKLS8qISBAYWJzdHJhY3QgV2hldGhl
ciBKYXZhIGlzIGVuYWJsZWQuIERlZmF1bHRzIHRvIE5PLgorLyohIEBhYnN0cmFjdCBBIEJvb2xl
YW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEphdmEgaXMgZW5hYmxlZC4KKyBAZGlzY3Vzc2lv
biBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZRVMuCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBn
ZXR0ZXI9aXNKYXZhRW5hYmxlZCkgQk9PTCBqYXZhRW5hYmxlZDsKIAotLyohIGFic3RyYWN0IFdo
ZXRoZXIgcGx1Zy1pbnMgYXJlIGVuYWJsZWQuIERlZmF1bHRzIHRvIE5PLgorLyohIEBhYnN0cmFj
dCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHBsdWctaW5zIGFyZSBlbmFibGVk
LgorIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFlFUy4KICAqLwogQHByb3BlcnR5
IChub25hdG9taWMsIGdldHRlcj1hcmVQbHVnSW5zRW5hYmxlZCkgQk9PTCBwbHVnSW5zRW5hYmxl
ZDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLmgJKHJldmlzaW9uIDE2OTQ1OSkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSwxMCArMjksMTEgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLS8q
ISBBIHBvb2wgb2YgV2ViIENvbnRlbnQgcHJvY2Vzc2VzLgotIEEgQGxpbmsgV0tXZWJWaWV3IEAv
bGluayBzcGVjaWZpZXMgaXRzIHByb2Nlc3MgcG9vbCB0aHJvdWdoIGl0cyBAbGluayBXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIEAvbGluay4KLSBFYWNoIFdLV2ViVmlldyB3aWxsIGdldCBpdHMgb3du
IFdlYiBDb250ZW50IHByb2Nlc3MgdW50aWwgYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCBwcm9j
ZXNzIGxpbWl0IGlzIHJlYWNoZWQ7IGFmdGVyIHRoYXQsCi0gd2ViIHZpZXdzIHdpdGggdGhlIHNh
bWUgcHJvY2VzcyBwb29sIGVuZCB1cCBzaGFyaW5nIFdlYiBDb250ZW50IHByb2Nlc3Nlcy4KKy8q
ISBBIFdLUHJvY2Vzc1Bvb2wgb2JqZWN0IHJlcHJlc2VudHMgYSBwb29sIG9mIHdlYiBjb250ZW50
IHByb2Nlc3Nlcy4KKyBUaGUgcHJvY2VzcyBwb29sIGFzc29jaWF0ZWQgd2l0aCBhIHdlYiB2aWV3
IGlzIHNwZWNpZmllZCBieSBpdHMgd2ViIHZpZXcKKyBjb25maWd1cmF0aW9uLiBFYWNoIHdlYiB2
aWV3IGlzIGdpdmVuIGl0cyBvd24gd2ViIGNvbnRlbnQgcHJvY2VzcyB1bnRpbCBhbgorIGltcGxl
bWVudGF0aW9uLWRlZmluZWQgcHJvY2VzcyBsaW1pdCBpcyByZWFjaGVkOyBhZnRlciB0aGF0LCB3
ZWIgdmlld3MKKyB3aXRoIHRoZSBzYW1lIHByb2Nlc3MgcG9vbCBlbmQgdXAgc2hhcmluZyB3ZWIg
Y29udGVudCBwcm9jZXNzZXMuCiAgKi8KIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQog
QGludGVyZmFjZSBXS1Byb2Nlc3NQb29sIDogTlNPYmplY3QKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2UuaAkocmV2aXNp
b24gMTY5NDU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Njcmlw
dE1lc3NhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTggKzMxLDIzIEBACiAKIEBjbGFzcyBX
S1dlYlZpZXc7CiAKLS8qISBBIEBsaW5rIFdLU2NyaXB0TWVzc2FnZSBAL2xpbmsgb2JqZWN0IGNv
bnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGEgbWVzc2FnZSBiZWluZyBzZW50IGZyb20gYSB3ZWJw
YWdlLgorLyohIEEgV0tTY3JpcHRNZXNzYWdlIG9iamVjdCBjb250YWlucyBpbmZvcm1hdGlvbiBh
Ym91dCBhIG1lc3NhZ2Ugc2VudCBmcm9tCisgYSB3ZWJwYWdlLgogICovCiBXS19DTEFTU19BVkFJ
TEFCTEUoMTBfMTAsIDhfMCkKIEBpbnRlcmZhY2UgV0tTY3JpcHRNZXNzYWdlIDogTlNPYmplY3QK
IAotLyohIEBhYnN0cmFjdCBUaGUgYm9keSBvZiB0aGUgbWVzc2FnZS4gQWxsb3dlZCB0eXBlcyBh
cmUgTlNEaWN0aW9uYXJ5LCBOU0FycmF5LCBOU051bWJlciwgTlNOdWxsLCBOU1N0cmluZywgYW5k
IE5TRGF0ZS4gKi8KKy8qISBAYWJzdHJhY3QgVGhlIGJvZHkgb2YgdGhlIG1lc3NhZ2UuCisgQGRp
c2N1c3Npb24gQWxsb3dlZCB0eXBlcyBhcmUgTlNOdW1iZXIsIE5TU3RyaW5nLCBOU0RhdGUsIE5T
QXJyYXksCisgTlNEaWN0aW9uYXJ5LCBhbmQgTlNOdWxsLgorICovCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIGlkIGJvZHk7CiAKLS8qISBAYWJzdHJhY3QgVGhlIHdlYiB2aWV3IHRo
ZSBtZXNzYWdlIGlzIGNvbWluZyBmcm9tLiAqLworLyohIEBhYnN0cmFjdCBUaGUgd2ViIHZpZXcg
c2VuZGluZyB0aGUgbWVzc2FnZS4gKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwg
d2VhaykgV0tXZWJWaWV3ICp3ZWJWaWV3OwogCi0vKiEgQGFic3RyYWN0IFRoZSBuYW1lIG9mIHRo
ZSBtZXNzYWdlIGhhbmRsZXIgdGhpcyBtZXNzYWdlIGlzIGJlaW5nIHNlbnQgdG8uICovCisvKiEg
QGFic3RyYWN0IFRoZSBuYW1lIG9mIHRoZSBtZXNzYWdlIGhhbmRsZXIgdG8gd2hpY2ggdGhlIG1l
c3NhZ2UgaXMgc2VudC4KKyAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0
cmluZyAqbmFtZTsKIAogQGVuZApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1NjcmlwdE1lc3NhZ2VIYW5kbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2VIYW5kbGVyLmgJKHJldmlzaW9u
IDE2OTQ1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRN
ZXNzYWdlSGFuZGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxNSArMzIsMTcgQEAKIEBjbGFz
cyBXS1NjcmlwdE1lc3NhZ2U7CiBAY2xhc3MgV0tVc2VyQ29udGVudENvbnRyb2xsZXI7CiAKLS8q
ISBBIGNsYXNzIHRoYXQgY29uZm9ybXMgdG8gV0tTY3JpcHRNZXNzYWdlSGFuZGxlciBwcm92aWRl
cyBhIG1ldGhvZCBmb3IgcmVjaWV2aW5nIG1lc3NhZ2VzIGZyb20gSmF2YVNjcmlwdCBydW5uaW5n
IGluIGEgd2VicGFnZS4KKy8qISBBIGNsYXNzIGNvbmZvcm1pbmcgdG8gdGhlIFdLU2NyaXB0TWVz
c2FnZUhhbmRsZXIgcHJvdG9jb2wgcHJvdmlkZXMgYQorIG1ldGhvZCBmb3IgcmVjZWl2aW5nIG1l
c3NhZ2VzIGZyb20gSmF2YVNjcmlwdCBydW5uaW5nIGluIGEgd2VicGFnZS4KICAqLwogQHByb3Rv
Y29sIFdLU2NyaXB0TWVzc2FnZUhhbmRsZXIgPE5TT2JqZWN0PgogCiBAcmVxdWlyZWQKIAotLyoh
IEBhYnN0cmFjdCBJbnZva2VkIHdoZW4gYSBzY3JpcHQgbWVzc2FnZSBpcyByZWNpZXZlZCBmcm9t
IGEgd2VicGFnZS4KLSBAcGFyYW0gdXNlckNvbnRlbnRDb250cm9sbGVyIFRoZSBXS1VzZXJDb250
ZW50Q29udHJvbGxlciBpbnZva2luZyB0aGUgZGVsZWdhdGUgbWV0aG9kLgotIEBwYXJhbSBtZXNz
YWdlIFRoZSBzY3JpcHQgbWVzc2FnZSBiZWluZyByZWNlaXZlZC4KKy8qISBAYWJzdHJhY3QgSW52
b2tlZCB3aGVuIGEgc2NyaXB0IG1lc3NhZ2UgaXMgcmVjZWl2ZWQgZnJvbSBhIHdlYnBhZ2UuCisg
QHBhcmFtIHVzZXJDb250ZW50Q29udHJvbGxlciBUaGUgdXNlciBjb250ZW50IGNvbnRyb2xsZXIg
aW52b2tpbmcgdGhlCisgZGVsZWdhdGUgbWV0aG9kLgorIEBwYXJhbSBtZXNzYWdlIFRoZSBzY3Jp
cHQgbWVzc2FnZSByZWNlaXZlZC4KICAqLwogLSAodm9pZCl1c2VyQ29udGVudENvbnRyb2xsZXI6
KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRlbnRDb250cm9sbGVyIGRpZFJlY2Vp
dmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2UgKiltZXNzYWdlOwogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgJKHJl
dmlzaW9uIDE2OTQ1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
SURlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDUxICszMyw2MyBAQAogQGNsYXNzIFdL
V2ViVmlld0NvbmZpZ3VyYXRpb247CiBAY2xhc3MgV0tXaW5kb3dGZWF0dXJlczsKIAotLyohIEEg
Y2xhc3MgdGhhdCBjb25mb3JtcyB0byBXS1VJRGVsZWdhdGUgcHJvdmlkZXMgbWV0aG9kcyBmb3Ig
cHJlc2VudGluZyBuYXRpdmUgVUkgb24gYmVoYWxmIG9mIHRoZSB3ZWJwYWdlLgorLyohIEEgY2xh
c3MgY29uZm9ybWluZyB0byB0aGUgV0tVSURlbGVnYXRlIHByb3RvY29sIHByb3ZpZGVzIG1ldGhv
ZHMgZm9yCisgcHJlc2VudGluZyBuYXRpdmUgVUkgb24gYmVoYWxmIG9mIGEgd2VicGFnZS4KICAq
LwogQHByb3RvY29sIFdLVUlEZWxlZ2F0ZSA8TlNPYmplY3Q+CiAKIEBvcHRpb25hbAogCi0vKiEg
QGFic3RyYWN0IENyZWF0ZSBhIG5ldyBXS1dlYlZpZXcuCi0gQHBhcmFtIHdlYlZpZXcgVGhlIFdL
V2ViVmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUgbWV0aG9kLgotIEBwYXJhbSBjb25maWd1cmF0
aW9uIFRoZSBjb25maWd1cmF0aW9uIHRoYXQgbXVzdCBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgdGhl
IG5ldyBXS1dlYlZpZXcuCi0gQHBhcmFtIG5hdmlnYXRpb25BY3Rpb24gVGhlIG5hdmlnYXRpb24g
YWN0aW9uIHRoYXQgaXMgY2F1c2luZyB0aGUgbmV3IFdLV2ViVmlldyB0byBiZSBjcmVhdGVkLgor
LyohIEBhYnN0cmFjdCBDcmVhdGVzIGEgbmV3IHdlYiB2aWV3LgorIEBwYXJhbSB3ZWJWaWV3IFRo
ZSB3ZWIgdmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUgbWV0aG9kLgorIEBwYXJhbSBjb25maWd1
cmF0aW9uIFRoZSBjb25maWd1cmF0aW9uIHRvIHVzZSB3aGVuIGNyZWF0aW5nIHRoZSBuZXcgd2Vi
Cisgdmlldy4KKyBAcGFyYW0gbmF2aWdhdGlvbkFjdGlvbiBUaGUgbmF2aWdhdGlvbiBhY3Rpb24g
Y2F1c2luZyB0aGUgbmV3IHdlYiB2aWV3IHRvCisgYmUgY3JlYXRlZC4KICBAcGFyYW0gd2luZG93
RmVhdHVyZXMgV2luZG93IGZlYXR1cmVzIHJlcXVlc3RlZCBieSB0aGUgd2VicGFnZS4KLSBAcmVz
dWx0IEEgbmV3IFdLV2ViVmlldyBvciBuaWwuCi0gQGRpc2N1c3Npb24gVGhlIFdLV2ViVmlldyBy
ZXR1cm5lZCBtdXN0IGJlIGNyZWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24u
IFdlYktpdCB3aWxsIGxvYWQgdGhlIHJlcXVlc3QgaW4gdGhlIHJldHVybmVkIFdLV2ViVmlldy4K
KyBAcmVzdWx0IEEgbmV3IHdlYiB2aWV3IG9yIG5pbC4KKyBAZGlzY3Vzc2lvbiBUaGUgd2ViIHZp
ZXcgcmV0dXJuZWQgbXVzdCBiZSBjcmVhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBjb25maWd1cmF0
aW9uLiBXZWJLaXQgd2lsbCBsb2FkIHRoZSByZXF1ZXN0IGluIHRoZSByZXR1cm5lZCB3ZWIgdmll
dy4KICAqLwogLSAoV0tXZWJWaWV3ICopd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjcmVh
dGVXZWJWaWV3V2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25m
aWd1cmF0aW9uIGZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmln
YXRpb25BY3Rpb24gd2luZG93RmVhdHVyZXM6KFdLV2luZG93RmVhdHVyZXMgKil3aW5kb3dGZWF0
dXJlczsKIAotLyohIEBhYnN0cmFjdCBEaXNwbGF5IGEgSmF2YVNjcmlwdCBhbGVydCBwYW5lbC4K
LSBAcGFyYW0gd2ViVmlldyBUaGUgV0tXZWJWaWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRo
b2QuCisvKiEgQGFic3RyYWN0IERpc3BsYXlzIGEgSmF2YVNjcmlwdCBhbGVydCBwYW5lbC4KKyBA
cGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4K
ICBAcGFyYW0gbWVzc2FnZSBUaGUgbWVzc2FnZSB0byBkaXNwbGF5LgotIEBwYXJhbSBmcmFtZSBJ
bmZvcm1hdGlvbiBhYm91dCB0aGUgZnJhbWUgd2hvc2UgSmF2YVNjcmlwdCBpbml0aWF0ZWQgdGhp
cyBjYWxsLgotIEBwYXJhbSBjb21wbGV0aW9uSGFuZGxlciBUaGUgY29tcGxldGlvbiBoYW5kbGVy
IHRoYXQgc2hvdWxkIGdldCBjYWxsZWQgYWZ0ZXIgdGhlIGFsZXJ0IHBhbmVsIGhhcyBiZWVuIGRp
c21pc3NlZC4KLSBAZGlzY3Vzc2lvbiBDbGllbnRzIHNob3VsZCB2aXN1YWxseSBpbmRpY2F0ZSB0
aGF0IHRoaXMgcGFuZWwgY29tZXMgZnJvbSBKYXZhU2NyaXB0IGluaXRpYXRlZCBieSB0aGUgc3Bl
Y2lmaWVkIGZyYW1lLgotIFRoZSBwYW5lbCBzaG91bGQgaGF2ZSBhIHNpbmdsZSAiT0siIGJ1dHRv
bi4KKyBAcGFyYW0gZnJhbWUgSW5mb3JtYXRpb24gYWJvdXQgdGhlIGZyYW1lIHdob3NlIEphdmFT
Y3JpcHQgaW5pdGlhdGVkIHRoaXMKKyBjYWxsLgorIEBwYXJhbSBjb21wbGV0aW9uSGFuZGxlciBU
aGUgY29tcGxldGlvbiBoYW5kbGVyIHRvIGNhbGwgYWZ0ZXIgdGhlIGFsZXJ0CisgcGFuZWwgaGFz
IGJlZW4gZGlzbWlzc2VkLgorIEBkaXNjdXNzaW9uIENsaWVudHMgc2hvdWxkIHZpc3VhbGx5IGlu
ZGljYXRlIHRoYXQgdGhpcyBwYW5lbCBjb21lcyBmcm9tCisgSmF2YVNjcmlwdCBpbml0aWF0ZWQg
YnkgdGhlIHNwZWNpZmllZCBmcmFtZS4KKyBUaGUgcGFuZWwgc2hvdWxkIGhhdmUgYSBzaW5nbGUg
T0sgYnV0dG9uLgogICovCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVu
SmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRp
YXRlZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKCkpY29tcGxldGlvbkhhbmRsZXI7CiAKLS8qISBAYWJzdHJhY3QgRGlzcGxheSBhIEphdmFT
Y3JpcHQgY29uZmlybSBwYW5lbC4KLSBAcGFyYW0gd2ViVmlldyBUaGUgV0tXZWJWaWV3IGludm9r
aW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2QuCisvKiEgQGFic3RyYWN0IERpc3BsYXlzIGEgSmF2YVNj
cmlwdCBjb25maXJtIHBhbmVsLgorIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyBpbnZva2lu
ZyB0aGUgZGVsZWdhdGUgbWV0aG9kLgogIEBwYXJhbSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIGRp
c3BsYXkuCiAgQHBhcmFtIGZyYW1lIEluZm9ybWF0aW9uIGFib3V0IHRoZSBmcmFtZSB3aG9zZSBK
YXZhU2NyaXB0IGluaXRpYXRlZCB0aGlzIGNhbGwuCi0gQHBhcmFtIGNvbXBsZXRpb25IYW5kbGVy
IFRoZSBjb21wbGV0aW9uIGhhbmRsZXIgdGhhdCBzaG91bGQgZ2V0IGNhbGxlZCBhZnRlciB0aGUg
Y29uZmlybSBwYW5lbCBoYXMgYmVlbiBkaXNtaXNzZWQuCi0gUGFzcyBZRVMgaWYgdGhlIHVzZXIg
Y2hvc2UgT0ssIE5PIGlmIHRoZSB1c2VyIGNob3NlIENhbmNlbC4KLSBAZGlzY3Vzc2lvbiBDbGll
bnRzIHNob3VsZCB2aXN1YWxseSBpbmRpY2F0ZSB0aGF0IHRoaXMgcGFuZWwgY29tZXMgZnJvbSBK
YXZhU2NyaXB0IGluaXRpYXRlZCBieSB0aGUgc3BlY2lmaWVkIGZyYW1lLgotIFRoZSBwYW5lbCBz
aG91bGQgaGF2ZSB0d28gYnV0dG9ucywgZS5nLiAiT0siIGFuZCAiQ2FuY2VsIi4KKyBAcGFyYW0g
Y29tcGxldGlvbkhhbmRsZXIgVGhlIGNvbXBsZXRpb24gaGFuZGxlciB0byBjYWxsIGFmdGVyIHRo
ZSBjb25maXJtCisgcGFuZWwgaGFzIGJlZW4gZGlzbWlzc2VkLiBQYXNzIFlFUyBpZiB0aGUgdXNl
ciBjaG9zZSBPSywgTk8gaWYgdGhlIHVzZXIKKyBjaG9zZSBDYW5jZWwuCisgQGRpc2N1c3Npb24g
Q2xpZW50cyBzaG91bGQgdmlzdWFsbHkgaW5kaWNhdGUgdGhhdCB0aGlzIHBhbmVsIGNvbWVzIGZy
b20KKyBKYXZhU2NyaXB0IGluaXRpYXRlZCBieSB0aGUgc3BlY2lmaWVkIGZyYW1lLgorIFRoZSBw
YW5lbCBzaG91bGQgaGF2ZSB0d28gYnV0dG9ucywgc3VjaCBhcyBPSyBhbmQgQ2FuY2VsLgogICov
CiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdENvbmZp
cm1QYW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZToo
V0tGcmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCByZXN1
bHQpKWNvbXBsZXRpb25IYW5kbGVyOwogCi0vKiEgQGFic3RyYWN0IERpc3BsYXkgYSBKYXZhU2Ny
aXB0IHRleHQgaW5wdXQgcGFuZWwuCi0gQHBhcmFtIHdlYlZpZXcgVGhlIFdLV2ViVmlldyBpbnZv
a2luZyB0aGUgZGVsZWdhdGUgbWV0aG9kLgorLyohIEBhYnN0cmFjdCBEaXNwbGF5cyBhIEphdmFT
Y3JpcHQgdGV4dCBpbnB1dCBwYW5lbC4KKyBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52
b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KICBAcGFyYW0gbWVzc2FnZSBUaGUgbWVzc2FnZSB0
byBkaXNwbGF5LgotIEBwYXJhbSBkZWZhdWx0VGV4dCBUaGUgaW5pdGlhbCB0ZXh0IGZvciB0aGUg
dGV4dCBlbnRyeSBhcmVhLgorIEBwYXJhbSBkZWZhdWx0VGV4dCBUaGUgaW5pdGlhbCB0ZXh0IHRv
IGRpc3BsYXkgaW4gdGhlIHRleHQgZW50cnkgZmllbGQuCiAgQHBhcmFtIGZyYW1lIEluZm9ybWF0
aW9uIGFib3V0IHRoZSBmcmFtZSB3aG9zZSBKYXZhU2NyaXB0IGluaXRpYXRlZCB0aGlzIGNhbGwu
Ci0gQHBhcmFtIGNvbXBsZXRpb25IYW5kbGVyIFRoZSBjb21wbGV0aW9uIGhhbmRsZXIgdGhhdCBz
aG91bGQgZ2V0IGNhbGxlZCBhZnRlciB0aGUgdGV4dCBpbnB1dCBwYW5lbCBoYXMgYmVlbiBkaXNt
aXNzZWQuIFBhc3MgdGhlIHR5cGVkIHRleHQgaWYgdGhlIHVzZXIgY2hvc2UgT0ssIG90aGVyd2lz
ZSBuaWwuCi0gQGRpc2N1c3Npb24gQ2xpZW50cyBzaG91bGQgdmlzdWFsbHkgaW5kaWNhdGUgdGhh
dCB0aGlzIHBhbmVsIGNvbWVzIGZyb20gSmF2YVNjcmlwdCBpbml0aWF0ZWQgYnkgdGhlIHNwZWNp
ZmllZCBmcmFtZS4KLSBUaGUgcGFuZWwgc2hvdWxkIGhhdmUgdHdvIGJ1dHRvbnMsIGUuZy4gIk9L
IiBhbmQgIkNhbmNlbCIsIGFuZCBhbiBhcmVhIHRvIHR5cGUgdGV4dC4KKyBAcGFyYW0gY29tcGxl
dGlvbkhhbmRsZXIgVGhlIGNvbXBsZXRpb24gaGFuZGxlciB0byBjYWxsIGFmdGVyIHRoZSB0ZXh0
CisgaW5wdXQgcGFuZWwgaGFzIGJlZW4gZGlzbWlzc2VkLiBQYXNzIHRoZSBlbnRlcmVkIHRleHQg
aWYgdGhlIHVzZXIgY2hvc2UKKyBPSywgb3RoZXJ3aXNlIG5pbC4KKyBAZGlzY3Vzc2lvbiBDbGll
bnRzIHNob3VsZCB2aXN1YWxseSBpbmRpY2F0ZSB0aGF0IHRoaXMgcGFuZWwgY29tZXMgZnJvbQor
IEphdmFTY3JpcHQgaW5pdGlhdGVkIGJ5IHRoZSBzcGVjaWZpZWQgZnJhbWUuCisgVGhlIHBhbmVs
IHNob3VsZCBoYXZlIHR3byBidXR0b25zLCBzdWNoIGFzIE9LIGFuZCBDYW5jZWwsIGFuZCBhIGZp
ZWxkIGluCisgd2hpY2ggdG8gZW50ZXIgdGV4dC4KICAqLwogLSAodm9pZCl3ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6KE5T
U3RyaW5nICopcHJvbXB0IGRlZmF1bHRUZXh0OihOU1N0cmluZyAqKWRlZmF1bHRUZXh0IGluaXRp
YXRlZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKE5TU3RyaW5nICpyZXN1bHQpKWNvbXBsZXRpb25IYW5kbGVyOwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250
ZW50Q29udHJvbGxlci5oCShyZXZpc2lvbiAxNjk0NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDEzICszMiwxNiBAQAogQGNsYXNzIFdLVXNlclNjcmlwdDsKIEBwcm90b2NvbCBXS1Nj
cmlwdE1lc3NhZ2VIYW5kbGVyOwogCi0vKiEgV0tVc2VyQ29udGVudENvbnRyb2xsZXIgcHJvdmlk
ZXMgYSB3YXkgZm9yIEphdmFTY3JpcHQgdG8gcG9zdCBtZXNzYWdlcyB0byB0aGUgQGxpbmsgV0tX
ZWJWaWV3IEAvbGluay4KLSBBIEBsaW5rIFdLV2ViVmlldyBAL2xpbmsgY2FuIHNwZWNpZnkgd2hp
Y2ggV0tVc2VyQ29udGVudENvbnRyb2xsZXIgb2JqZWN0IGl0IHVzZXMgdGhyb3VnaCBpdHMgQGxp
bmsgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBAL2xpbmsuCisvKiEgQSBXS1VzZXJDb250ZW50Q29u
dHJvbGxlciBvYmplY3QgcHJvdmlkZXMgYSB3YXkgZm9yIEphdmFTY3JpcHQgdG8gcG9zdAorIG1l
c3NhZ2VzIHRvIGEgd2ViIHZpZXcuCisgVGhlIHVzZXIgY29udGVudCBjb250cm9sbGVyIGFzc29j
aWF0ZWQgd2l0aCBhIHdlYiB2aWV3IGlzIHNwZWNpZmllZCBieSBpdHMKKyB3ZWIgdmlldyBjb25m
aWd1cmF0aW9uLgogICovCiBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIEBpbnRlcmZh
Y2UgV0tVc2VyQ29udGVudENvbnRyb2xsZXIgOiBOU09iamVjdAogCi0vKiEgQGFic3RyYWN0IFRo
ZSB1c2VyIHNjcmlwdHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdXNlciBjb250ZW50IGNvbnRyb2xs
ZXIuCisvKiEgQGFic3RyYWN0IFRoZSB1c2VyIHNjcmlwdHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMg
dXNlciBjb250ZW50CisgY29udHJvbGxlci4KICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIE5TQXJyYXkgKnVzZXJTY3JpcHRzOwogCkBAIC01Miw5ICs1NSwxMSBAQCBXS19DTEFT
U19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIC0gKHZvaWQpcmVtb3ZlQWxsVXNlclNjcmlwdHM7CiAK
IC8qISBAYWJzdHJhY3QgQWRkcyBhIHNjcmlwdCBtZXNzYWdlIGhhbmRsZXIuCi0gQHBhcmFtIHNj
cmlwdE1lc3NhZ2VIYW5kbGVyIFRoZSBtZXNzYWdlIGhhbmRsZXIgd2hlcmUgdGhlIG1lc3NhZ2Vz
IHNob3VsZCBiZSBkZWxpdmVyZWQuCisgQHBhcmFtIHNjcmlwdE1lc3NhZ2VIYW5kbGVyIFRoZSBt
ZXNzYWdlIGhhbmRsZXIgdG8gYWRkLgogIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBtZXNz
YWdlIGhhbmRsZXIuCi0gQGRpc2N1c3Npb24gQWRkaW5nIGEgc2NyaXB0TWVzc2FnZUhhbmRsZXIg
YWRkcyBhIGZ1bmN0aW9uIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLjxuYW1lPi5wb3N0
TWVzc2FnZSg8bWVzc2FnZUJvZHk+KSBmb3IgYWxsIGZyYW1lcy4KKyBAZGlzY3Vzc2lvbiBBZGRp
bmcgYSBzY3JpcHRNZXNzYWdlSGFuZGxlciBhZGRzIGEgZnVuY3Rpb24KKyB3aW5kb3cud2Via2l0
Lm1lc3NhZ2VIYW5kbGVycy48bmFtZT4ucG9zdE1lc3NhZ2UoPG1lc3NhZ2VCb2R5PikgZm9yIGFs
bAorIGZyYW1lcy4KICAqLwogLSAodm9pZClhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjooaWQgPFdL
U2NyaXB0TWVzc2FnZUhhbmRsZXI+KXNjcmlwdE1lc3NhZ2VIYW5kbGVyIG5hbWU6KE5TU3RyaW5n
ICopbmFtZTsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5oCShyZXZpc2lvbiAxNjk0NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBA
CiBAcHJvdG9jb2wgV0tVSURlbGVnYXRlOwogCiAvKiEKLSBBIEBsaW5rIFdLV2ViVmlldyBAL2xp
bmsgZGlzcGxheXMgaW50ZXJhY3RpdmUgV2ViIGNvbnRlbnQuCisgQSBXS1dlYlZpZXcgb2JqZWN0
IGRpc3BsYXlzIGludGVyYWN0aXZlIFdlYiBjb250ZW50LgogIEBoZWxwZXJjbGFzcyBAbGluayBX
S1dlYlZpZXdDb25maWd1cmF0aW9uIEAvbGluawogIFVzZWQgdG8gY29uZmlndXJlIEBsaW5rIFdL
V2ViVmlldyBAL2xpbmsgaW5zdGFuY2VzLgogICovCkBAIC01NCw5MCArNTQsMTA4IEBAIFdLX0NM
QVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogQGludGVyZmFjZSBXS1dlYlZpZXcgOiBOU1ZpZXcK
ICNlbmRpZgogCi0vKiEgQGFic3RyYWN0IEEgY29weSBvZiB0aGUgY29uZmlndXJhdGlvbiB3aXRo
IHdoaWNoIHRoZSBAbGluayBXS1dlYlZpZXcgQC9saW5rIHdhcyBpbml0aWFsaXplZC4gKi8KKy8q
ISBAYWJzdHJhY3QgQSBjb3B5IG9mIHRoZSBjb25maWd1cmF0aW9uIHdpdGggd2hpY2ggdGhlIHdl
YiB2aWV3IHdhcworIGluaXRpYWxpemVkLiAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uOwogCi0vKiEgQGFic3Ry
YWN0IFRoZSB2aWV3J3MgbmF2aWdhdGlvbiBkZWxlZ2F0ZS4gKi8KKy8qISBAYWJzdHJhY3QgVGhl
IHdlYiB2aWV3J3MgbmF2aWdhdGlvbiBkZWxlZ2F0ZS4gKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCB3ZWFrKSBpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IG5hdmlnYXRpb25EZWxlZ2F0ZTsKIAot
LyohIEBhYnN0cmFjdCBUaGUgdmlldydzIHVzZXIgaW50ZXJmYWNlIGRlbGVnYXRlLiAqLworLyoh
IEBhYnN0cmFjdCBUaGUgd2ViIHZpZXcncyB1c2VyIGludGVyZmFjZSBkZWxlZ2F0ZS4gKi8KIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrKSBpZCA8V0tVSURlbGVnYXRlPiBVSURlbGVnYXRlOwog
Ci0vKiEgQGFic3RyYWN0IFRoZSB2aWV3J3MgYmFjay1mb3J3YXJkIGxpc3QuICovCisvKiEgQGFi
c3RyYWN0IFRoZSB3ZWIgdmlldydzIGJhY2stZm9yd2FyZCBsaXN0LiAqLwogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBXS0JhY2tGb3J3YXJkTGlzdCAqYmFja0ZvcndhcmRMaXN0Owog
Ci0vKiEgQGFic3RyYWN0IFJldHVybnMgYSB2aWV3IGluaXRpYWxpemVkIHdpdGggdGhlIHNwZWNp
ZmllZCBmcmFtZSBhbmQgY29uZmlndXJhdGlvbi4KLSBAcGFyYW0gZnJhbWUgVGhlIGZyYW1lIGZv
ciB0aGUgbmV3IHZpZXcuCi0gQHBhcmFtIGNvbmZpZ3VyYXRpb24gVGhlIGNvbmZpZ3VyYXRpb24g
Zm9yIHRoZSBuZXcgdmlldy4KLSBAcmVzdWx0IEFuIGluaXRpYWxpemVkIHZpZXcsIG9yIG5pbCBp
ZiB0aGUgb2JqZWN0IGNvdWxkIG5vdCBiZSBpbml0aWFsaXplZC4KLSBAZGlzY3Vzc2lvbiBUaGlz
IGlzIGEgZGVzaWduYXRlZCBpbml0aWFsaXplci4gWW91IGNhbiB1c2UgQGxpbmsgLWluaXRXaXRo
RnJhbWU6IEAvbGluayB0bwotIGluaXRpYWxpemUgYW4gaW5zdGFuY2Ugd2l0aCB0aGUgZGVmYXVs
dCBjb25maWd1cmF0aW9uLgotIFRoZSBpbml0aWFsaXplciBjb3BpZXMKLSBAbGluayAvL2FwcGxl
X3JlZi9kb2MvbWV0aG9kcGFyYW0vV0tXZWJWaWV3L2luaXRXaXRoRnJhbWU6Y29uZmlndXJhdGlv
bjovY29uZmlndXJhdGlvbgotIGNvbmZpZ3VyYXRpb25AL2xpbmssIHNvIG11dGF0aW5nIGl0IGFm
dGVyIGluaXRpYWxpemF0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlCi0gQGxpbmsgV0tXZWJWaWV3
IEAvbGluayBpbnN0YW5jZS4KKy8qISBAYWJzdHJhY3QgUmV0dXJucyBhIHdlYiB2aWV3IGluaXRp
YWxpemVkIHdpdGggYSBzcGVjaWZpZWQgZnJhbWUgYW5kCisgY29uZmlndXJhdGlvbi4KKyBAcGFy
YW0gZnJhbWUgVGhlIGZyYW1lIGZvciB0aGUgbmV3IHdlYiB2aWV3LgorIEBwYXJhbSBjb25maWd1
cmF0aW9uIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgbmV3IHdlYiB2aWV3LgorIEByZXN1bHQg
QW4gaW5pdGlhbGl6ZWQgd2ViIHZpZXcsIG9yIG5pbCBpZiB0aGUgb2JqZWN0IGNvdWxkIG5vdCBi
ZQorIGluaXRpYWxpemVkLgorIEBkaXNjdXNzaW9uIFRoaXMgaXMgYSBkZXNpZ25hdGVkIGluaXRp
YWxpemVyLiBZb3UgY2FuIHVzZQorIEBsaW5rIC1pbml0V2l0aEZyYW1lOiBAL2xpbmsgdG8gaW5p
dGlhbGl6ZSBhbiBpbnN0YW5jZSB3aXRoIHRoZSBkZWZhdWx0CisgY29uZmlndXJhdGlvbi4gVGhl
IGluaXRpYWxpemVyIGNvcGllcyB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24sIHNvCisgbXV0
YXRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gYWZ0ZXIgaW52b2tpbmcgdGhlIGluaXRpYWxpemVyIGhh
cyBubyBlZmZlY3QKKyBvbiB0aGUgd2ViIHZpZXcuCiAgKi8KIC0gKGluc3RhbmNldHlwZSlpbml0
V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiAqKWNvbmZpZ3VyYXRpb24gV0tfREVTSUdOQVRFRF9JTklUSUFMSVpFUjsKIAotLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlciBXS19VTkFWQUlMQUJMRTsK
LQotLyohIEBhYnN0cmFjdCBOYXZpZ2F0ZXMgdG8gdGhlIGdpdmVuIE5TVVJMUmVxdWVzdC4KLSBA
cGFyYW0gcmVxdWVzdCBUaGUgTlNVUkxSZXF1ZXN0IHRvIG5hdmlnYXRlIHRvLgorLyohIEBhYnN0
cmFjdCBOYXZpZ2F0ZXMgdG8gYSByZXF1ZXN0ZWQgVVJMLgorIEBwYXJhbSByZXF1ZXN0IFRoZSBy
ZXF1ZXN0IHNwZWNpZnlpbmcgdGhlIFVSTCB0byB3aGljaCB0byBuYXZpZ2F0ZS4KICBAcmVzdWx0
IEEgbmV3IG5hdmlnYXRpb24gZm9yIHRoZSBnaXZlbiByZXF1ZXN0LgogICovCiAtIChXS05hdmln
YXRpb24gKilsb2FkUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdDsKIAotLyohIEBhYnN0
cmFjdCBOYXZpZ2F0ZXMgdG8gYW4gaXRlbSBmcm9tIHRoZSBiYWNrLWZvcndhcmQgbGlzdCBhbmQg
c2V0cyBpdCBhcyB0aGUgY3VycmVudCBpdGVtLgotIEBwYXJhbSBpdGVtIFRoZSBpdGVtIHRvIG5h
dmlnYXRlIHRvLiBNdXN0IGJlIG9uZSBvZiB0aGUgaXRlbXMgaW4gdGhlIHJlY2VpdmVyJ3MgYmFj
ay1mb3J3YXJkIGxpc3QuCi0gQHJlc3VsdCBBIG5ldyBuYXZpZ2F0aW9uIHRvIHRoZSByZXF1ZXN0
ZWQgaXRlbSwgb3IgbmlsIGlmIGl0IGlzIHRoZSBjdXJyZW50IGl0ZW0gb3IgdGhlIGl0ZW0gaXMg
bm90IHBhcnQgb2YgdGhlIHZpZXcncyBiYWNrLWZvcndhcmQgbGlzdC4KKy8qISBAYWJzdHJhY3Qg
TmF2aWdhdGVzIHRvIGFuIGl0ZW0gZnJvbSB0aGUgYmFjay1mb3J3YXJkIGxpc3QgYW5kIHNldHMg
aXQKKyBhcyB0aGUgY3VycmVudCBpdGVtLgorIEBwYXJhbSBpdGVtIFRoZSBpdGVtIHRvIHdoaWNo
IHRvIG5hdmlnYXRlLiBNdXN0IGJlIG9uZSBvZiB0aGUgaXRlbXMgaW4gdGhlCisgd2ViIHZpZXfi
gJlzIGJhY2stZm9yd2FyZCBsaXN0LgorIEByZXN1bHQgQSBuZXcgbmF2aWdhdGlvbiB0byB0aGUg
cmVxdWVzdGVkIGl0ZW0sIG9yIG5pbCBpZiBpdCBpcyBhbHJlYWR5CisgdGhlIGN1cnJlbnQgaXRl
bSBvciBpcyBub3QgcGFydCBvZiB0aGUgd2ViIHZpZXcncyBiYWNrLWZvcndhcmQgbGlzdC4KICBA
c2VlYWxzbyBiYWNrRm9yd2FyZExpc3QKICAqLwogLSAoV0tOYXZpZ2F0aW9uICopZ29Ub0JhY2tG
b3J3YXJkTGlzdEl0ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW07CiAKLS8qISBAYWJz
dHJhY3QgVGhlIHdlYnBhZ2UgdGl0bGUuIEBsaW5rIFdLV2ViVmlldyBAL2xpbmsgaXMgS1ZPLWNv
bXBsaWFudCBmb3IgdGhpcyBwcm9wZXJ0eS4KKy8qISBAYWJzdHJhY3QgVGhlIHBhZ2UgdGl0bGUu
CisgQGRpc2N1c3Npb24gQGxpbmsgV0tXZWJWaWV3IEAvbGluayBpcyBrZXktdmFsdWUgb2JzZXJ2
aW5nIChLVk8pIGNvbXBsaWFudAorIGZvciB0aGlzIHByb3BlcnR5LgogICovCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICp0aXRsZTsKIAotLyohIEBhYnN0cmFjdCBU
aGUgYWN0aXZlIFVSTC4gQGxpbmsgV0tXZWJWaWV3IEAvbGluayBpcyBLVk8tY29tcGxpYW50IGZv
ciB0aGlzIHByb3BlcnR5LgotIEBkaXNjdXNzaW9uIFRoaXMgaXMgdGhlIFVSTCB0aGF0IHNob3Vs
ZCBiZSByZWZsZWN0ZWQgaW4gdGhlIHVzZXIgaW50ZXJmYWNlLgorLyohIEBhYnN0cmFjdCBUaGUg
YWN0aXZlIFVSTC4KKyBAZGlzY3Vzc2lvbiBUaGlzIGlzIHRoZSBVUkwgdGhhdCBzaG91bGQgYmUg
cmVmbGVjdGVkIGluIHRoZSB1c2VyCisgaW50ZXJmYWNlLgorIEBsaW5rIFdLV2ViVmlldyBAL2xp
bmsgaXMga2V5LXZhbHVlIG9ic2VydmluZyAoS1ZPKSBjb21wbGlhbnQgZm9yIHRoaXMKKyBwcm9w
ZXJ0eS4KICAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqVVJMOwog
Ci0vKiEgQGFic3RyYWN0IFdoZXRoZXIgdGhlIHZpZXcgaXMgbG9hZGluZyBjb250ZW50LiBAbGlu
ayBXS1dlYlZpZXcgQC9saW5rIGlzIEtWTy1jb21wbGlhbnQgZm9yIHRoaXMKLSBwcm9wZXJ0eS4g
Ki8KKy8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUg
dmlldyBpcyBjdXJyZW50bHkKKyBsb2FkaW5nIGNvbnRlbnQuCisgQGRpc2N1c3Npb24gQGxpbmsg
V0tXZWJWaWV3IEAvbGluayBpcyBrZXktdmFsdWUgb2JzZXJ2aW5nIChLVk8pIGNvbXBsaWFudAor
IGZvciB0aGlzIHByb3BlcnR5LgorICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHks
IGdldHRlcj1pc0xvYWRpbmcpIEJPT0wgbG9hZGluZzsKIAotLyohIEBhYnN0cmFjdCBBbiBlc3Rp
bWF0ZSBvZiB0aGUgZnJhY3Rpb24gY29tcGxldGUgZm9yIGEgZG9jdW1lbnQgbG9hZC4gQGxpbmsg
V0tXZWJWaWV3IEAvbGluayBpcwotIEtWTy1jb21wbGlhbnQgZm9yIHRoaXMgcHJvcGVydHkuCi0g
QGRpc2N1c3Npb24gVGhpcyB2YWx1ZSB3aWxsIHJhbmdlIGZyb20gMCB0byAxIGFuZCwgb25jZSBh
IGxvYWQgY29tcGxldGVzLCB3aWxsIHJlbWFpbiBhdCAxLjAKLSB1bnRpbCBhIG5ldyBsb2FkIHN0
YXJ0cywgYXQgd2hpY2ggcG9pbnQgaXQgd2lsbCBiZSByZXNldCB0byAwLiBUaGUgdmFsdWUgaXMg
YW4gZXN0aW1hdGUgYmFzZWQKLSBvbiB0aGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIGV4cGVjdGVk
IHRvIGJlIHJlY2VpdmVkIGZvciBhIGRvY3VtZW50LAotIGluY2x1ZGluZyBhbGwgaXRzIHBvc3Np
YmxlIHN1YnJlc291cmNlcy4KKy8qISBAYWJzdHJhY3QgQW4gZXN0aW1hdGUgb2YgdGhlIGZyYWN0
aW9uIGNvbXBsZXRlIGZvciBhIG5hdmlnYXRpb24uCisgQGRpc2N1c3Npb24gVGhpcyB2YWx1ZSBy
YW5nZXMgZnJvbSAwLjAgdG8gMS4wIGJhc2VkIG9uIHRoZSB0b3RhbCBudW1iZXIgb2YKKyBieXRl
cyBleHBlY3RlZCB0byBiZSByZWNlaXZlZCwgaW5jbHVkaW5nIHRoZSBtYWluIGRvY3VtZW50IGFu
ZCBhbGwgb2YgaXRzCisgcG90ZW50aWFsIHN1YnJlc291cmNlcy4gQWZ0ZXIgYSBuYXZpZ2F0aW9u
IGNvbXBsZXRlcywgdGhlIHZhbHVlIHJlbWFpbnMgYXQgMS4wCisgdW50aWwgYSBuZXcgbmF2aWdh
dGlvbiBzdGFydHMsIGF0IHdoaWNoIHBvaW50IGl0IGlzIHJlc2V0IHRvIDAuMC4KKyBAbGluayBX
S1dlYlZpZXcgQC9saW5rIGlzIGtleS12YWx1ZSBvYnNlcnZpbmcgKEtWTykgY29tcGxpYW50IGZv
ciB0aGlzCisgcHJvcGVydHkuCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
ZG91YmxlIGVzdGltYXRlZFByb2dyZXNzOwogCi0vKiEgQGFic3RyYWN0IFdoZXRoZXIgYWxsIG9m
IHRoZSByZXNvdXJjZXMgb24gdGhlIHdlYnBhZ2UgaGF2ZSBiZWVuIGxvYWRlZCBvdmVyIHNlY3Vy
ZWx5IGVuY3J5cHRlZCBjb25uZWN0aW9ucy4KLSBAbGluayBXS1dlYlZpZXcgQC9saW5rIGlzIEtW
Ty1jb21wbGlhbnQgZm9yIHRoaXMgcHJvcGVydHkuCisvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2
YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgYWxsIHJlc291cmNlcyBvbiB0aGUgcGFnZQorIGhhdmUg
YmVlbiBsb2FkZWQgb3ZlciBzZWN1cmVseSBlbmNyeXB0ZWQgY29ubmVjdGlvbnMuCisgQGRpc2N1
c3Npb24gQGxpbmsgV0tXZWJWaWV3IEAvbGluayBpcyBrZXktdmFsdWUgb2JzZXJ2aW5nIChLVk8p
IGNvbXBsaWFudAorIGZvciB0aGlzIHByb3BlcnR5LgogICovCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIEJPT0wgaGFzT25seVNlY3VyZUNvbnRlbnQ7CiAKLS8qISBAYWJzdHJhY3Qg
V2hldGhlciB0aGVyZSdzIGEgYmFjayBpdGVtIGluIHRoZSBiYWNrLWZvcndhcmQgbGlzdCB0aGF0
IGNhbiBiZSBuYXZpZ2F0ZWQgdG8uCisvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRp
Y2F0aW5nIHdoZXRoZXIgdGhlcmUgaXMgYSBiYWNrIGl0ZW0gaW4KKyB0aGUgYmFjay1mb3J3YXJk
IGxpc3QgdGhhdCBjYW4gYmUgbmF2aWdhdGVkIHRvLgogIEBzZWVhbHNvIGJhY2tGb3J3YXJkTGlz
dC4KICAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGNhbkdvQmFjazsK
IAotLyohIEBhYnN0cmFjdCBXaGV0aGVyIHRoZXJlJ3MgYSBmb3J3YXJkIGl0ZW0gaW4gdGhlIGJh
Y2stZm9yd2FyZCBsaXN0IHRoYXQgY2FuIGJlIG5hdmlnYXRlZCB0by4KKy8qISBAYWJzdHJhY3Qg
QSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGVyZSBpcyBhIGZvcndhcmQgaXRl
bSBpbgorIHRoZSBiYWNrLWZvcndhcmQgbGlzdCB0aGF0IGNhbiBiZSBuYXZpZ2F0ZWQgdG8uCiAg
QHNlZWFsc28gYmFja0ZvcndhcmRMaXN0LgogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIEJPT0wgY2FuR29Gb3J3YXJkOwogCiAvKiEgQGFic3RyYWN0IE5hdmlnYXRlcyB0byB0
aGUgYmFjayBpdGVtIGluIHRoZSBiYWNrLWZvcndhcmQgbGlzdC4KLSBAcmVzdWx0IEEgbmV3IG5h
dmlnYXRpb24gdG8gdGhlIHJlcXVlc3RlZCBpdGVtLCBvciBuaWwgaWYgdGhlcmUgaXMgbm8gYmFj
ayBpdGVtIGluIHRoZSBiYWNrLWZvcndhcmQgbGlzdC4KKyBAcmVzdWx0IEEgbmV3IG5hdmlnYXRp
b24gdG8gdGhlIHJlcXVlc3RlZCBpdGVtLCBvciBuaWwgaWYgdGhlcmUgaXMgbm8gYmFjaworIGl0
ZW0gaW4gdGhlIGJhY2stZm9yd2FyZCBsaXN0LgogICovCiAtIChXS05hdmlnYXRpb24gKilnb0Jh
Y2s7CiAKIC8qISBAYWJzdHJhY3QgTmF2aWdhdGVzIHRvIHRoZSBmb3J3YXJkIGl0ZW0gaW4gdGhl
IGJhY2stZm9yd2FyZCBsaXN0LgotIEByZXN1bHQgQSBuZXcgbmF2aWdhdGlvbiB0byB0aGUgcmVx
dWVzdGVkIGl0ZW0sIG9yIG5pbCBpZiB0aGVyZSBpcyBubyBmb3J3YXJkIGl0ZW0gaW4gdGhlIGJh
Y2stZm9yd2FyZCBsaXN0LgorIEByZXN1bHQgQSBuZXcgbmF2aWdhdGlvbiB0byB0aGUgcmVxdWVz
dGVkIGl0ZW0sIG9yIG5pbCBpZiB0aGVyZSBpcyBubworIGZvcndhcmQgaXRlbSBpbiB0aGUgYmFj
ay1mb3J3YXJkIGxpc3QuCiAgKi8KIC0gKFdLTmF2aWdhdGlvbiAqKWdvRm9yd2FyZDsKIApAQCAt
MTQ2LDcgKzE2NCw4IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogICovCiAtIChX
S05hdmlnYXRpb24gKilyZWxvYWQ7CiAKLS8qISBAYWJzdHJhY3QgUmVsb2FkcyB0aGUgY3VycmVu
dCBwYWdlLCBwZXJmb3JtaW5nIGVuZC10by1lbmQgcmV2YWxpZGF0aW9uIHVzaW5nIGNhY2hlLXZh
bGlkYXRpbmcgY29uZGl0aW9uYWxzIGlmIHBvc3NpYmxlLgorLyohIEBhYnN0cmFjdCBSZWxvYWRz
IHRoZSBjdXJyZW50IHBhZ2UsIHBlcmZvcm1pbmcgZW5kLXRvLWVuZCByZXZhbGlkYXRpb24KKyB1
c2luZyBjYWNoZS12YWxpZGF0aW5nIGNvbmRpdGlvbmFscyBpZiBwb3NzaWJsZS4KICBAcmVzdWx0
IEEgbmV3IG5hdmlnYXRpb24gcmVwcmVzZW50aW5nIHRoZSByZWxvYWQuCiAgKi8KIC0gKFdLTmF2
aWdhdGlvbiAqKXJlbG9hZEZyb21PcmlnaW47CkBAIC0xNTUsNyArMTc0LDkgQEAgV0tfQ0xBU1Nf
QVZBSUxBQkxFKDEwXzEwLCA4XzApCiAgKi8KIC0gKHZvaWQpc3RvcExvYWRpbmc7CiAKLS8qISBA
YWJzdHJhY3QgV2hldGhlciBob3Jpem9udGFsIHN3aXBlIGdlc3R1cmVzIHdpbGwgdHJpZ2dlciBi
YWNrLWZvcndhcmQgbGlzdCBuYXZpZ2F0aW9ucy4gRGVmYXVsdHMgdG8gTk8uCisvKiEgQGFic3Ry
YWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgaG9yaXpvbnRhbCBzd2lwZSBn
ZXN0dXJlcworIHdpbGwgdHJpZ2dlciBiYWNrLWZvcndhcmQgbGlzdCBuYXZpZ2F0aW9ucy4KKyBA
ZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBOTy4KICAqLwogQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXM7CiAKQEAgLTE2
NiwxNyArMTg3LDIyIEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogI2VuZGlmCiAK
ICNpZiAhVEFSR0VUX09TX0lQSE9ORQotLyogQGFic3RyYWN0IFdoZXRoZXIgbWFnbmlmeSBnZXN0
dXJlcyB3aWxsIGNoYW5nZSB0aGUgV0tXZWJWaWV3IG1hZ25pZmljYXRpb24uIERlZmF1bHRzIHRv
IE5PLgotIEBkaXNjdXNzaW9uIEl0IGlzIHBvc3NpYmxlIHRvIHNldCB0aGUgbWFnbmlmaWNhdGlv
biBwcm9wZXJ0eSBldmVuIGlmIGFsbG93c01hZ25pZnkgaXMgc2V0IHRvIE5PLgorLyogQGFic3Ry
YWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgbWFnbmlmeSBnZXN0dXJlcyB3
aWxsCisgY2hhbmdlIHRoZSB3ZWIgdmlld+KAmXMgbWFnbmlmaWNhdGlvbi4KKyBAZGlzY3Vzc2lv
biBJdCBpcyBwb3NzaWJsZSB0byBzZXQgdGhlIG1hZ25pZmljYXRpb24gcHJvcGVydHkgZXZlbiBp
ZgorIGFsbG93c01hZ25pZmljYXRpb24gaXMgc2V0IHRvIE5PLgorIFRoZSBkZWZhdWx0IHZhbHVl
IGlzIE5PLgogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NNYWduaWZpY2F0
aW9uOwogCi0vKiBAYWJzdHJhY3QgVGhlIGFtb3VudCBieSB3aGljaCB0aGUgd2VicGFnZSBjb250
ZW50IGlzIGN1cnJlbnRseSBzY2FsZWQuIERlZmF1bHRzIHRvIDEuMC4KKy8qIEBhYnN0cmFjdCBU
aGUgZmFjdG9yIGJ5IHdoaWNoIHRoZSBwYWdlIGNvbnRlbnQgaXMgY3VycmVudGx5IHNjYWxlZC4K
KyBAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxLjAuCiAgKi8KIEBwcm9wZXJ0eSAo
bm9uYXRvbWljKSBDR0Zsb2F0IG1hZ25pZmljYXRpb247CiAKLS8qIEBhYnN0cmFjdCBNYWduaWZ5
IHRoZSB3ZWJwYWdlIGNvbnRlbnQgYnkgdGhlIGdpdmVuIGFtb3VudCBhbmQgY2VudGVyIHRoZSBy
ZXN1bHQgb24gdGhlIGdpdmVuIHBvaW50LgotICogQHBhcmFtIG1hZ25pZmljYXRpb24gVGhlIGFt
b3VudCBieSB3aGljaCB0byBtYWduaWZ5IHRoZSBjb250ZW50LgorLyogQGFic3RyYWN0IFNjYWxl
cyB0aGUgcGFnZSBjb250ZW50IGJ5IGEgc3BlY2lmaWVkIGZhY3RvciBhbmQgY2VudGVycyB0aGUK
KyByZXN1bHQgb24gYSBzcGVjaWZpZWQgcG9pbnQuCisgKiBAcGFyYW0gbWFnbmlmaWNhdGlvbiBU
aGUgZmFjdG9yIGJ5IHdoaWNoIHRvIHNjYWxlIHRoZSBjb250ZW50LgogICogQHBhcmFtIHBvaW50
IFRoZSBwb2ludCAoaW4gdmlldyBzcGFjZSkgb24gd2hpY2ggdG8gY2VudGVyIG1hZ25pZmljYXRp
b24uCiAgKi8KIC0gKHZvaWQpc2V0TWFnbmlmaWNhdGlvbjooQ0dGbG9hdCltYWduaWZpY2F0aW9u
IGNlbnRlcmVkQXRQb2ludDooQ0dQb2ludClwb2ludDsKQEAgLTE4OSwxMiArMjE1LDE0IEBAIFdL
X0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogCiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoV0tJ
QkFjdGlvbnMpIDxOU1VzZXJJbnRlcmZhY2VWYWxpZGF0aW9ucz4KIAotLyohIEBhYnN0cmFjdCBB
Y3Rpb24gbWV0aG9kIHRoYXQgbmF2aWdhdGVzIHRvIHRoZSBiYWNrIGl0ZW0gaW4gdGhlIGJhY2st
Zm9yd2FyZCBsaXN0LgorLyohIEBhYnN0cmFjdCBBY3Rpb24gbWV0aG9kIHRoYXQgbmF2aWdhdGVz
IHRvIHRoZSBiYWNrIGl0ZW0gaW4gdGhlCisgYmFjay1mb3J3YXJkIGxpc3QuCiAgQHBhcmFtIHNl
bmRlciBUaGUgb2JqZWN0IHRoYXQgc2VudCB0aGlzIG1lc3NhZ2UuCiAgKi8KIC0gKElCQWN0aW9u
KWdvQmFjazooaWQpc2VuZGVyOwogCi0vKiEgQGFic3RyYWN0IEFjdGlvbiBtZXRob2QgdGhhdCBu
YXZpZ2F0ZXMgdG8gdGhlIGZvcndhcmQgaXRlbSBpbiB0aGUgYmFjay1mb3J3YXJkIGxpc3QuCisv
KiEgQGFic3RyYWN0IEFjdGlvbiBtZXRob2QgdGhhdCBuYXZpZ2F0ZXMgdG8gdGhlIGZvcndhcmQg
aXRlbSBpbiB0aGUKKyBiYWNrLWZvcndhcmQgbGlzdC4KICBAcGFyYW0gc2VuZGVyIFRoZSBvYmpl
Y3QgdGhhdCBzZW50IHRoaXMgbWVzc2FnZS4KICAqLwogLSAoSUJBY3Rpb24pZ29Gb3J3YXJkOihp
ZClzZW5kZXI7CkBAIC0yMDQsMTMgKzIzMiwxNCBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAs
IDhfMCkKICAqLwogLSAoSUJBY3Rpb24pcmVsb2FkOihpZClzZW5kZXI7CiAKLS8qISBAYWJzdHJh
Y3QgQWN0aW9uIG1ldGhvZCB0aGF0IHJlbG9hZHMgdGhlIGN1cnJlbnQgcGFnZSwgcGVyZm9ybWlu
ZyBlbmQtdG8tZW5kIHJldmFsaWRhdGlvbiB1c2luZyAKLSBjYWNoZS12YWxpZGF0aW5nIGNvbmRp
dGlvbmFscyBpZiBwb3NzaWJsZS4KKy8qISBAYWJzdHJhY3QgQWN0aW9uIG1ldGhvZCB0aGF0IHJl
bG9hZHMgdGhlIGN1cnJlbnQgcGFnZSwgcGVyZm9ybWluZworIGVuZC10by1lbmQgcmV2YWxpZGF0
aW9uIHVzaW5nIGNhY2hlLXZhbGlkYXRpbmcgY29uZGl0aW9uYWxzIGlmIHBvc3NpYmxlLgogIEBw
YXJhbSBzZW5kZXIgVGhlIG9iamVjdCB0aGF0IHNlbnQgdGhpcyBtZXNzYWdlLgogICovCiAtIChJ
QkFjdGlvbilyZWxvYWRGcm9tT3JpZ2luOihpZClzZW5kZXI7CiAKLS8qISBAYWJzdHJhY3QgQWN0
aW9uIG1ldGhvZCB0aGF0IHN0b3BzIGxvYWRpbmcgYWxsIHJlc291cmNlcyBvbiB0aGUgY3VycmVu
dCBwYWdlLgorLyohIEBhYnN0cmFjdCBBY3Rpb24gbWV0aG9kIHRoYXQgc3RvcHMgbG9hZGluZyBh
bGwgcmVzb3VyY2VzIG9uIHRoZSBjdXJyZW50CisgcGFnZS4KICBAcGFyYW0gc2VuZGVyIFRoZSBv
YmplY3QgdGhhdCBzZW50IHRoaXMgbWVzc2FnZS4KICAqLwogLSAoSUJBY3Rpb24pc3RvcExvYWRp
bmc6KGlkKXNlbmRlcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oCShyZXZpc2lvbiAxNjk0
NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzMsMjUgKzMzLDI2IEBACiBAY2xhc3MgV0tQ
cm9jZXNzUG9vbDsKIEBjbGFzcyBXS1VzZXJDb250ZW50Q29udHJvbGxlcjsKIAotLyohIEEgQGxp
bmsgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBAL2xpbmsgaXMgYSBjb2xsZWN0aW9uIG9mIHByb3Bl
cnRpZXMgdXNlZCB0byBpbml0aWFsaXplIGEgd2ViCi0gdmlldy4KKy8qISBBIFdLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gb2JqZWN0IGlzIGEgY29sbGVjdGlvbiBvZiBwcm9wZXJ0aWVzIHdpdGgKKyB3
aGljaCB0byBpbml0aWFsaXplIGEgd2ViIHZpZXcuCiAgQGhlbHBzIENvbnRhaW5zIHByb3BlcnRp
ZXMgdXNlZCB0byBjb25maWd1cmUgYSBAbGluayBXS1dlYlZpZXcgQC9saW5rLgogICovCiBXS19D
TEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIEBpbnRlcmZhY2UgV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKLS8qISBAYWJzdHJhY3QgVGhlIHByb2Nlc3Mg
cG9vbCBmcm9tIHdoaWNoIHRoZSBXZWIgQ29udGVudCBwcm9jZXNzIGZvciB0aGUgdmlldyBzaG91
bGQgY29tZS4KLSBAZGlzY3Vzc2lvbiBXaGVuIHRoZSBAbGluayBXS1dlYlZpZXcgQC9saW5rIGlz
IGluaXRpYWxpemVkIHdpdGggdGhlIGNvbmZpZ3VyYXRpb24sIGEgbmV3IFdlYgotIENvbnRlbnQg
cHJvY2VzcyBmcm9tIHRoZSBzcGVjaWZpZWQgcG9vbCB3aWxsIGJlIGNyZWF0ZWQgZm9yIGl0LCBv
ciBhbiBleGlzdGluZyBwcm9jZXNzIGluCisvKiEgQGFic3RyYWN0IFRoZSBwcm9jZXNzIHBvb2wg
ZnJvbSB3aGljaCB0byBvYnRhaW4gdGhlIHZpZXfigJlzIHdlYiBjb250ZW50CisgcHJvY2Vzcy4K
KyBAZGlzY3Vzc2lvbiBXaGVuIGEgd2ViIHZpZXcgaXMgaW5pdGlhbGl6ZWQsIGEgbmV3IHdlYiBj
b250ZW50IHByb2Nlc3MKKyB3aWxsIGJlIGNyZWF0ZWQgZm9yIGl0IGZyb20gdGhlIHNwZWNpZmll
ZCBwb29sLCBvciBhbiBleGlzdGluZyBwcm9jZXNzIGluCiAgdGhhdCBwb29sIHdpbGwgYmUgdXNl
ZC4KICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBXS1Byb2Nlc3NQb29sICpwcm9j
ZXNzUG9vbDsKIAotLyohIEBhYnN0cmFjdCBUaGUgcHJlZmVyZW5jZXMgdGhhdCBzaG91bGQgYmUg
dXNlZCBieSB3ZWIgdmlld3MgY3JlYXRlZCB3aXRoIHRoaXMgY29uZmlndXJhdGlvbi4KKy8qISBA
YWJzdHJhY3QgVGhlIHByZWZlcmVuY2Ugc2V0dGluZ3MgdG8gYmUgdXNlZCBieSB0aGUgd2ViIHZp
ZXcuCiAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgV0tQcmVmZXJlbmNlcyAqcHJl
ZmVyZW5jZXM7CiAKLS8qISBAYWJzdHJhY3QgVGhlIHVzZXIgY29udGVudCBjb250cm9sbGVyIHRo
YXQgc2hvdWxkIGJlIHVzZWQgYnkgd2ViIHZpZXdzIGNyZWF0ZWQgd2l0aCB0aGlzIGNvbmZpZ3Vy
YXRpb24uCisvKiEgQGFic3RyYWN0IFRoZSB1c2VyIGNvbnRlbnQgY29udHJvbGxlciB0byBhc3Nv
Y2lhdGUgd2l0aCB0aGUgd2ViIHZpZXcuCiAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9u
ZykgV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKnVzZXJDb250ZW50Q29udHJvbGxlcjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232297</attachid>
            <date>2014-05-30 11:05:40 -0700</date>
            <delta_ts>2014-05-30 11:54:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133408-20140530110501.patch</filename>
            <type>text/plain</type>
            <size>47691</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTQ4OCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA1LTMwICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgU29tZSBtb3JlIGNvcHktZWRp
dGluZyBvZiB0aGUgTW9kZXJuIFdlYktpdCBoZWFkZXJkb2MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzQwOAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgY29weS1lZGl0b3Igc3VnZ2VzdGVkIHNvbWUg
ZWRpdHMgdG8gdGhlIGhlYWRlcmRvYyBmb3IgY2xhcml0eSwKKyAgICAgICAgc3R5bGUsIGFuZCBm
b3JtYXR0aW5nLgorCisgICAgICAgIEkgcmV2aWV3ZWQgdGhlIGVkaXRzIGFuZCBhY2NlcHRlZCBh
Ym91dCA4MCUgb2YgdGhlbS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNr
Rm9yd2FyZExpc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0Zvcndh
cmRMaXN0SXRlbS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm8u
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgIChO
U19FTlVNKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVn
YXRlLmg6CisgICAgICAgIChOU19FTlVNKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLTmF2aWdhdGlvblJlc3BvbnNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2UuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZUhhbmRsZXIuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oOgorCiAyMDE0LTA1LTMwICBUaW1vdGh5
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBsb2Fk
aW5nIHNreWRyaXZlLmNvbSAoYXNzZXJ0aW9uIHVuZGVyIFJlbW90ZUxheWVyVHJlZURpc3BsYXlS
ZWZyZXNoTW9uaXRvcikKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tCYWNrRm9yd2FyZExpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0LmgJKHJldmlzaW9uIDE2OTQ1OSkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3QuaAkod29y
a2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQAogCiAjaW1wb3J0IDxXZWJLaXQvV0tCYWNrRm9y
d2FyZExpc3RJdGVtLmg+CiAKLS8qISBAYWJzdHJhY3QgQSBAbGluayBXS1dlYlZpZXcgQC9saW5r
J3MgbGlzdCBvZiBwcmV2aW91c2x5LXZpc2l0ZWQgd2VicGFnZXMgdGhhdCBjYW4gYmUgcmVhY2hl
ZCBieQotIGdvaW5nIGJhY2sgb3IgZm9yd2FyZC4KKy8qISBAYWJzdHJhY3QgQSBXS0JhY2tGb3J3
YXJkTGlzdCBvYmplY3QgaXMgYSBsaXN0IG9mIHdlYnBhZ2VzIHByZXZpb3VzbHkKKyB2aXNpdGVk
IGluIGEgd2ViIHZpZXcgdGhhdCBjYW4gYmUgcmVhY2hlZCBieSBnb2luZyBiYWNrIG9yIGZvcndh
cmQuCiAgKi8KIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogQGludGVyZmFjZSBXS0Jh
Y2tGb3J3YXJkTGlzdCA6IE5TT2JqZWN0CkBAIC0zOSwyNyArMzksMzUgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKDEwXzEwLCA4XzApCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
V0tCYWNrRm9yd2FyZExpc3RJdGVtICpjdXJyZW50SXRlbTsKIAotLyohIEBhYnN0cmFjdCBUaGUg
aXRlbSByaWdodCBiZWZvcmUgdGhlIGN1cnJlbnQgaXRlbSwgb3IgbmlsIGlmIHRoZXJlIGlzbid0
IG9uZS4KKy8qISBAYWJzdHJhY3QgVGhlIGl0ZW0gaW1tZWRpYXRlbHkgcHJlY2VkaW5nIHRoZSBj
dXJyZW50IGl0ZW0sIG9yIG5pbAoraWYgdGhlcmUgaXNuJ3Qgb25lLgogICovCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqYmFja0l0ZW07CiAK
LS8qISBAYWJzdHJhY3QgVGhlIGl0ZW0gcmlnaHQgYWZ0ZXIgdGhlIGN1cnJlbnQgaXRlbSwgb3Ig
bmlsIGlmIHRoZXJlIGlzbid0IG9uZS4KKy8qISBAYWJzdHJhY3QgVGhlIGl0ZW0gaW1tZWRpYXRl
bHkgZm9sbG93aW5nIHRoZSBjdXJyZW50IGl0ZW0sIG9yIG5pbAoraWYgdGhlcmUgaXNuJ3Qgb25l
LgogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLQmFja0ZvcndhcmRMaXN0
SXRlbSAqZm9yd2FyZEl0ZW07CiAKLS8qISBAYWJzdHJhY3QgUmV0dXJucyBhbiBpdGVtIHRoZSBn
aXZlbiBkaXN0YW5jZSBmcm9tIHRoZSBjdXJyZW50IGl0ZW0uCi0gQHBhcmFtIGluZGV4IEluZGV4
IG9mIHRoZSBkZXNpcmVkIGxpc3QgaXRlbSByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBpdGVtOyAw
IGlzIGN1cnJlbnQgaXRlbSwgLTEgaXMgYmFjayBpdGVtLCAxIGlzIGZvcndhcmQgaXRlbSwgZXRj
LgotIEByZXN1bHQgVGhlIGl0ZW0gdGhlIGdpdmVuIGRpc3RhbmNlIGZyb20gdGhlIGN1cnJlbnQg
aXRlbS4gSWYgaW5kZXggZXhjZWVkcyB0aGUgbGltaXRzIG9mIHRoZSBsaXN0LCBuaWwgaXMgcmV0
dXJuZWQuCisvKiEgQGFic3RyYWN0IFJldHVybnMgdGhlIGl0ZW0gYXQgYSBzcGVjaWZpZWQgZGlz
dGFuY2UgZnJvbSB0aGUgY3VycmVudAorIGl0ZW0uCisgQHBhcmFtIGluZGV4IEluZGV4IG9mIHRo
ZSBkZXNpcmVkIGxpc3QgaXRlbSByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBpdGVtOgorIDAgZm9y
IHRoZSBjdXJyZW50IGl0ZW0sIC0xIGZvciB0aGUgaW1tZWRpYXRlbHkgcHJlY2VkaW5nIGl0ZW0s
IDEgZm9yIHRoZQorIGltbWVkaWF0ZWx5IGZvbGxvd2luZyBpdGVtLCBhbmQgc28gb24uCisgQHJl
c3VsdCBUaGUgaXRlbSBhdCB0aGUgc3BlY2lmaWVkIGRpc3RhbmNlIGZyb20gdGhlIGN1cnJlbnQg
aXRlbSwgb3IgbmlsCisgaWYgdGhlIGluZGV4IHBhcmFtZXRlciBleGNlZWRzIHRoZSBsaW1pdHMg
b2YgdGhlIGxpc3QuCiAgKi8KIC0gKFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW1BdEluZGV4
OihOU0ludGVnZXIpaW5kZXg7CiAKLS8qISBAYWJzdHJhY3QgUmV0dXJucyB0aGUgcG9ydGlvbiBv
ZiB0aGUgbGlzdCBiZWZvcmUgdGhlIGN1cnJlbnQgaXRlbS4KLSBAZGlzY3Vzc2lvbiBUaGUgZW50
cmllcyBhcmUgaW4gdGhlIG9yZGVyIHRoYXQgdGhleSB3ZXJlIG9yaWdpbmFsbHkgdmlzaXRlZC4K
Ky8qISBAYWJzdHJhY3QgVGhlIHBvcnRpb24gb2YgdGhlIGxpc3QgcHJlY2VkaW5nIHRoZSBjdXJy
ZW50IGl0ZW0uCisgQGRpc2N1c3Npb24gVGhlIGl0ZW1zIGFyZSBpbiB0aGUgb3JkZXIgaW4gd2hp
Y2ggdGhleSB3ZXJlIG9yaWdpbmFsbHkKKyB2aXNpdGVkLgogICovCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIE5TQXJyYXkgKmJhY2tMaXN0OwogCi0vKiEgQGFic3RyYWN0IFJldHVy
bnMgdGhlIHBvcnRpb24gb2YgdGhlIGxpc3QgYWZ0ZXIgdGhlIGN1cnJlbnQgaXRlbS4KLSBAZGlz
Y3Vzc2lvbiBUaGUgZW50cmllcyBhcmUgaW4gdGhlIG9yZGVyIHRoYXQgdGhleSB3ZXJlIG9yaWdp
bmFsbHkgdmlzaXRlZC4KKy8qISBAYWJzdHJhY3QgVGhlIHBvcnRpb24gb2YgdGhlIGxpc3QgZm9s
bG93aW5nIHRoZSBjdXJyZW50IGl0ZW0uCisgQGRpc2N1c3Npb24gVGhlIGl0ZW1zIGFyZSBpbiB0
aGUgb3JkZXIgaW4gd2hpY2ggdGhleSB3ZXJlIG9yaWdpbmFsbHkKKyB2aXNpdGVkLgogICovCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXkgKmZvcndhcmRMaXN0OwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0
SXRlbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tCYWNrRm9yd2FyZExpc3RJdGVtLmgJKHJldmlzaW9uIDE2OTQ1OSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9u
Lmg+CiAKLS8qISBBIEBsaW5rIFdLQmFja0ZvcndhcmRMaXN0SXRlbSBAL2xpbmsgcmVwcmVzZW50
cyBhIHZpc2l0ZWQgd2VicGFnZSBpbiBhIFdLV2ViVmlldydzIGJhY2stZm9yd2FyZCBsaXN0Lgor
LyohIEEgV0tCYWNrRm9yd2FyZExpc3RJdGVtIG9iamVjdCByZXByZXNlbnRzIGEgcHJldmlvdXNs
eSB2aXNpdGVkIHdlYnBhZ2UgaW4gdGhlIGJhY2stZm9yd2FyZCBsaXN0IG9mIGEgd2ViIHZpZXcu
CiAgKi8KIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogQGludGVyZmFjZSBXS0JhY2tG
b3J3YXJkTGlzdEl0ZW0gOiBOU09iamVjdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm8uaAkocmV2aXNpb24gMTY5NDU5KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSwxOCArMjksMjAgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9u
Lmg+CiAKLS8qISBBIEBsaW5rIFdLRnJhbWVJbmZvIEAvbGluayBvYmplY3QgY29udGFpbnMgaW5m
b3JtYXRpb24gYWJvdXQgYSBmcmFtZSBvbiBhIHdlYnBhZ2UuCi0gQGRpc2N1c3Npb24gV0tGcmFt
ZUluZm8gb2JqZWN0cyBhcmUgdHJhbnNpZW50LCBkYXRhLW9ubHkgb2JqZWN0cy4gQSBXS0ZyYW1l
SW5mbyBvYmplY3QKLSBkb2VzIG5vdCB1bmlxdWVseSBpZGVudGlmeSBhIGZyYW1lIGFjcm9zcyBt
dWx0aXBsZSBkZWxlZ2F0ZSBtZXRob2QgY2FsbHMuCisvKiEgQSBXS0ZyYW1lSW5mbyBvYmplY3Qg
Y29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgYSBmcmFtZSBvbiBhIHdlYnBhZ2UuCisgQGRpc2N1
c3Npb24gQW4gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcyBpcyBhIHRyYW5zaWVudCwgZGF0YS1vbmx5
IG9iamVjdDsKKyBpdCBkb2VzIG5vdCB1bmlxdWVseSBpZGVudGlmeSBhIGZyYW1lIGFjcm9zcyBt
dWx0aXBsZSBkZWxlZ2F0ZSBtZXRob2QKKyBjYWxscy4KICAqLwogV0tfQ0xBU1NfQVZBSUxBQkxF
KDEwXzEwLCA4XzApCiBAaW50ZXJmYWNlIFdLRnJhbWVJbmZvIDogTlNPYmplY3QKIAotLyohIEBh
YnN0cmFjdCBXaGV0aGVyIHRoZSBmcmFtZSBpcyB0aGUgbWFpbiBmcmFtZSBvciBhIHN1YmZyYW1l
LgorLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBm
cmFtZSBpcyB0aGUgbWFpbiBmcmFtZQorIG9yIGEgc3ViZnJhbWUuCiAgKi8KIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzTWFpbkZyYW1lKSBCT09MIG1haW5GcmFtZTsK
IAotLyohIEBhYnN0cmFjdCBUaGUgY3VycmVudCBOU1VSTFJlcXVlc3Qgb2YgdGhpcyBmcmFtZS4K
Ky8qISBAYWJzdHJhY3QgVGhlIGZyYW1lJ3MgY3VycmVudCByZXF1ZXN0LgogICovCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMUmVxdWVzdCAqcmVxdWVzdDsKIApJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb24uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbi5o
CShyZXZpc2lvbiAxNjk0NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLTmF2aWdhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwyNSArMjksMzEgQEAKIAogI2lt
cG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLS8qISBXS05hdmlnYXRpb24gb2JqZWN0
cyBhcmUgcmV0dXJuZWQgZnJvbSB0aGUgQGxpbmsgV0tXZWJWaWV3IEAvbGluayBsb2FkIG1ldGhv
ZHMgYW5kIGFyZSBwYXNzZWQgdG8gdGhlIAotIEBsaW5rIFdLTmF2aWdhdGlvbkRlbGVnYXRlIEAv
bGluayBtZXRob2RzLiBBIFdLTmF2aWdhdGlvbiBvYmplY3QgdW5pcXVlbHkgaWRlbnRpZmllcyBh
IHdlYnBhZ2UgbG9hZCBmcm9tIHN0YXJ0IHRvIGZpbmlzaC4KKy8qISBBIFdLTmF2aWdhdGlvbiBv
YmplY3QgY29udGFpbnMgaW5mb3JtYXRpb24gZm9yIHRyYWNraW5nIHRoZSBsb2FkaW5nCisgcHJv
Z3Jlc3Mgb2YgYSB3ZWJwYWdlLgorIEBkaXNjdXNzaW9uIEEgbmF2aWdhdGlvbiBpcyByZXR1cm5l
ZCBmcm9tIHRoZSB3ZWIgdmlldyBsb2FkIG1ldGhvZHMsIGFuZCBpcworIGFsc28gcGFzc2VkIHRv
IHRoZSBuYXZpZ2F0aW9uIGRlbGVnYXRlIG1ldGhvZHMsIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IGEg
d2VicGFnZQorIGxvYWQgZnJvbSBzdGFydCB0byBmaW5pc2guCiAgKi8KIFdLX0NMQVNTX0FWQUlM
QUJMRSgxMF8xMCwgOF8wKQogQGludGVyZmFjZSBXS05hdmlnYXRpb24gOiBOU09iamVjdAogCi0v
KiEgQGFic3RyYWN0IFRoZSBpbml0aWFsIE5TVVJMUmVxdWVzdCB1c2VkIHRvIHBlcmZvcm0gdGhl
IG5hdmlnYXRpb24uCisvKiEgQGFic3RyYWN0IFRoZSBpbml0aWFsIHJlcXVlc3QgdXNlZCB0byBw
ZXJmb3JtIHRoZSBuYXZpZ2F0aW9uLgogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIE5TVVJMUmVxdWVzdCAqaW5pdGlhbFJlcXVlc3Q7CiAKLS8qISBAYWJzdHJhY3QgVGhlIGN1
cnJlbnQgcmVxdWVzdCBvZiB0aGUgbmF2aWdhdGlvbi4gVGhpcyByZXF1ZXN0IG1heSBiZSBkaWZm
ZXJlbnQgZnJvbSB0aGUgcmVxdWVzdCByZXR1cm5lZCBieSBpbml0aWFsUmVxdWVzdCBpZiBzZXJ2
ZXIgc2lkZSByZWRpcmVjdHMgaGF2ZSBoYXBwZW5lZC4KKy8qISBAYWJzdHJhY3QgVGhlIG5hdmln
YXRpb24ncyBjdXJyZW50IHJlcXVlc3QuCisgQGRpc2N1c3Npb24gVGhpcyByZXF1ZXN0IG1heSBi
ZSBkaWZmZXJlbnQgZnJvbSB0aGUgb25lIHJldHVybmVkIGJ5CisgaW5pdGlhbFJlcXVlc3QgaWYg
c2VydmVyLXNpZGUgcmVkaXJlY3RzIGhhdmUgb2NjdXJyZWQuCiAgKi8KIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0OwogCi0vKiBAYWJzdHJhY3Qg
VGhlIE5TVVJMUmVzcG9uc2UgZm9yIHRoZSBuYXZpZ2F0aW9uIG9yIG5pbCBpZiBubyByZXNwb25z
ZSBoYXMgYmVlbiByZWNlaXZlZCB5ZXQuCisvKiBAYWJzdHJhY3QgVGhlIHJlc3BvbnNlIHRvIHRo
ZSBuYXZpZ2F0aW9uLCBvciBuaWwgaWYgbm8gcmVzcG9uc2UgaGFzIHlldAorIGJlZW4gcmVjZWl2
ZWQuCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkxSZXNwb25zZSAq
cmVzcG9uc2U7CiAKLS8qIEBhYnN0cmFjdCBUaGUgZXJyb3IgZm9yIHRoZSBuYXZpZ2F0aW9uIGlm
IGl0IGZhaWxlZCBvciBuaWwgaWYgaXQgZGlkIG5vdCBmYWlsLgorLyogQGFic3RyYWN0IFRoZSBl
cnJvciBpZiB0aGUgbmF2aWdhdGlvbiBmYWlsZWQsIG9yIG5pbCBpZiBpdCBkaWQgbm90IGZhaWwu
CiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNFcnJvciAqZXJyb3I7CiAK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25BY3Rpb24uaAkocmV2aXNpb24gMTY5NDU5KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMzYsMTIgKzM2LDEyIEBACiBAY2xhc3MgV0tGcmFtZUluZm87CiAKIC8qISBAZW51bSBXS05h
dmlnYXRpb25UeXBlCi0gQGFic3RyYWN0IHRoZSB0eXBlIG9mIGFjdGlvbiB0aGF0IHRyaWdnZXJl
ZCBhIHBvc3NpYmxlIG5hdmlnYXRpb24uCi0gQGNvbnN0YW50IFdLTmF2aWdhdGlvblR5cGVMaW5r
QWN0aXZhdGVkICAgIEEgbGluayB3aXRoIGFuIGhyZWYgYWN0aXZhdGVkIGJ5IHRoZSB1c2VyLgor
IEBhYnN0cmFjdCBUaGUgdHlwZSBvZiBhY3Rpb24gdHJpZ2dlcmluZyBhIG5hdmlnYXRpb24uCisg
QGNvbnN0YW50IFdLTmF2aWdhdGlvblR5cGVMaW5rQWN0aXZhdGVkICAgIEEgbGluayB3aXRoIGFu
IGhyZWYgYXR0cmlidXRlIHdhcyBhY3RpdmF0ZWQgYnkgdGhlIHVzZXIuCiAgQGNvbnN0YW50IFdL
TmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkICAgIEEgZm9ybSB3YXMgc3VibWl0dGVkLgogIEBj
b25zdGFudCBXS05hdmlnYXRpb25UeXBlQmFja0ZvcndhcmQgICAgICBBbiBpdGVtIGZyb20gdGhl
IGJhY2stZm9yd2FyZCBsaXN0IHdhcyByZXF1ZXN0ZWQuCiAgQGNvbnN0YW50IFdLTmF2aWdhdGlv
blR5cGVSZWxvYWQgICAgICAgICAgIFRoZSB3ZWJwYWdlIHdhcyByZWxvYWRlZC4KLSBAY29uc3Rh
bnQgV0tOYXZpZ2F0aW9uVHlwZUZvcm1SZXN1Ym1pdHRlZCAgQSBmb3JtIHdhcyByZXN1Ym1pdHRl
ZCAoZm9yIGV4YW1wbGUgYnkgZ29pbmcgYmFjayBvciBmb3J3YXJkLCBvciByZWxvYWRpbmcpLgor
IEBjb25zdGFudCBXS05hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVkICBBIGZvcm0gd2FzIHJl
c3VibWl0dGVkIChmb3IgZXhhbXBsZSBieSBnb2luZyBiYWNrLCBnb2luZyBmb3J3YXJkLCBvciBy
ZWxvYWRpbmcpLgogIEBjb25zdGFudCBXS05hdmlnYXRpb25UeXBlT3RoZXIgICAgICAgICAgICBO
YXZpZ2F0aW9uIGlzIHRha2luZyBwbGFjZSBmb3Igc29tZSBvdGhlciByZWFzb24uCiAgKi8KIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlvblR5cGUpIHsKQEAgLTUzLDI0ICs1
MywyNiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25UCiAgICAgV0tO
YXZpZ2F0aW9uVHlwZU90aGVyID0gLTEsCiB9IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEwLCA4XzAp
OwogCi0vKiEgQ29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgYW4gYWN0aW9uIHRoYXQgbWF5IGNh
dXNlIGEgbmF2aWdhdGlvbi4gVXNlZCBmb3IgbWFraW5nIHBvbGljeSBkZWNpc2lvbnMuCisvKiEg
CitBIFdLTmF2aWdhdGlvbkFjdGlvbiBvYmplY3QgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQg
YW4gYWN0aW9uIHRoYXQgbWF5IGNhdXNlIGEgbmF2aWdhdGlvbiwgdXNlZCBmb3IgbWFraW5nIHBv
bGljeSBkZWNpc2lvbnMuCiAgKi8KIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogQGlu
dGVyZmFjZSBXS05hdmlnYXRpb25BY3Rpb24gOiBOU09iamVjdAogCi0vKiEgQGFic3RyYWN0IERl
c2NyaWJlcyB0aGUgZnJhbWUgdGhhdCByZXF1ZXN0ZWQgdGhlIG5hdmlnYXRpb24uCisvKiEgQGFi
c3RyYWN0IFRoZSBmcmFtZSByZXF1ZXN0aW5nIHRoZSBuYXZpZ2F0aW9uLgogICovCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLRnJhbWVJbmZvICpzb3VyY2VGcmFtZTsKIAotLyoh
IEBhYnN0cmFjdCBEZXNjcmliZXMgdGhlIHRhcmdldCBmcmFtZSBvZiB0aGUgbmF2aWdhdGlvbi4g
SWYgdGhpcyBpcyBhIG5ldyB3aW5kb3cgbmF2aWdhdGlvbiwgdGFyZ2V0RnJhbWUgd2lsbCBiZSBu
aWwuCisvKiEgQGFic3RyYWN0IFRoZSB0YXJnZXQgZnJhbWUsIG9yIG5pbCBpZiB0aGlzIGlzIGEg
bmV3IHdpbmRvdyBuYXZpZ2F0aW9uLgogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIFdLRnJhbWVJbmZvICp0YXJnZXRGcmFtZTsKIAotLyohIEBhYnN0cmFjdCBUaGUgdHlwZSBv
ZiB0aGUgbmF2aWdhdGlvbi4KKy8qISBAYWJzdHJhY3QgVGhlIHR5cGUgb2YgYWN0aW9uIHRoYXQg
dHJpZ2dlcmVkIHRoZSBuYXZpZ2F0aW9uLgorIEBkaXNjdXNzaW9uIFRoZSB2YWx1ZSBpcyBvbmUg
b2YgdGhlIGNvbnN0YW50cyBvZiB0aGUgZW51bWVyYXRlZCB0eXBlIFdLTmF2aWdhdGlvblR5cGUu
CiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tOYXZpZ2F0aW9uVHlwZSBu
YXZpZ2F0aW9uVHlwZTsKIAotLyohIEBhYnN0cmFjdCBUaGUgTlNVUkxSZXF1ZXN0IG9mIHRoZSBu
YXZpZ2F0aW9uLgorLyohIEBhYnN0cmFjdCBUaGUgbmF2aWdhdGlvbidzIHJlcXVlc3QuCiAgKi8K
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0Owog
CkBAIC04MCw3ICs4Miw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogICovCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TRXZlbnRNb2RpZmllckZsYWdzIG1vZGlm
aWVyRmxhZ3M7CiAKLS8qISBAYWJzdHJhY3QgVGhlIG1vdXNlIGJ1dHRvbiBudW1iZXIgdGhhdCBj
YXVzZWQgdGhlIG5hdmlnYXRpb24gdG8gYmUgcmVxdWVzdGVkLgorLyohIEBhYnN0cmFjdCBUaGUg
bnVtYmVyIG9mIHRoZSBtb3VzZSBidXR0b24gY2F1c2luZyB0aGUgbmF2aWdhdGlvbiB0byBiZSBy
ZXF1ZXN0ZWQuCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNJbnRlZ2Vy
IGJ1dHRvbk51bWJlcjsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaAkocmV2aXNpb24gMTY5NDU5
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxl
Z2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw4IEBACiBAY2xhc3MgV0tXZWJWaWV3
OwogCiAvKiEgQGVudW0gV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5Ci0gQGFic3RyYWN0IHRoZSBw
b2xpY3kgdG8gcGFzcyBiYWNrIHRvIHRoZSBkZWNpc2lvbiBoYW5kbGVyIGluIHdlYlZpZXc6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6LgorIEBhYnN0cmFj
dCBUaGUgcG9saWN5IHRvIHBhc3MgYmFjayB0byB0aGUgZGVjaXNpb24gaGFuZGxlciBmcm9tIHRo
ZQorIHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRs
ZXI6IG1ldGhvZC4KICBAY29uc3RhbnQgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5Q2FuY2VsICAg
Q2FuY2VsIHRoZSBuYXZpZ2F0aW9uLgogIEBjb25zdGFudCBXS05hdmlnYXRpb25BY3Rpb25Qb2xp
Y3lBbGxvdyAgICBBbGxvdyB0aGUgbmF2aWdhdGlvbiB0byBjb250aW51ZS4KICAqLwpAQCAtNDUs
NyArNDYsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25BCiB9IFdL
X0VOVU1fQVZBSUxBQkxFKDEwXzEwLCA4XzApOwogCiAvKiEgQGVudW0gV0tOYXZpZ2F0aW9uUmVz
cG9uc2VQb2xpY3kKLSBAYWJzdHJhY3QgdGhlIHBvbGljeSB0byBwYXNzIGJhY2sgdG8gdGhlIGRl
Y2lzaW9uIGhhbmRsZXIgaW4gd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9u
c2U6ZGVjaXNpb25IYW5kbGVyOi4KKyBAYWJzdHJhY3QgVGhlIHBvbGljeSB0byBwYXNzIGJhY2sg
dG8gdGhlIGRlY2lzaW9uIGhhbmRsZXIgZnJvbSB0aGUgd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uUmVzcG9uc2U6ZGVjaXNpb25IYW5kbGVyOiBtZXRob2QuCiAgQGNvbnN0YW50IFdL
TmF2aWdhdGlvblJlc3BvbnNlUG9saWN5Q2FuY2VsICAgQ2FuY2VsIHRoZSBuYXZpZ2F0aW9uLgog
IEBjb25zdGFudCBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUFsbG93ICAgIEFsbG93IHRoZSBu
YXZpZ2F0aW9uIHRvIGNvbnRpbnVlLgogICovCkBAIC01NCw2MiArNTUsNzEgQEAgdHlwZWRlZiBO
U19FTlVNKE5TSW50ZWdlciwgV0tOYXZpZ2F0aW9uUgogICAgIFdLTmF2aWdhdGlvblJlc3BvbnNl
UG9saWN5QWxsb3csCiB9IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEwLCA4XzApOwogCi0vKiEgQSBj
bGFzcyB0aGF0IGNvbmZvcm1zIHRvIFdLTmF2aWdhdGlvbkRlbGVnYXRlIGNhbiBkZWNpZGUgcG9s
aWN5IGZvciBtYWluIGZyYW1lIGFuZCBzdWJmcmFtZSBuYXZpZ2F0aW9ucywKLSBhbmQgdHJhY2sg
cHJvZ3Jlc3MgZm9yIG1haW4gZnJhbWUgbmF2aWdhdGlvbnMuCisvKiEgQSBjbGFzcyBjb25mb3Jt
aW5nIHRvIHRoZSBXS05hdmlnYXRpb25EZWxlZ2F0ZSBwcm90b2NvbCBjYW4gcHJvdmlkZQorIG1l
dGhvZHMgZm9yIHRyYWNraW5nIHByb2dyZXNzIGZvciBtYWluIGZyYW1lIG5hdmlnYXRpb25zIGFu
ZCBmb3IgZGVjaWRpbmcKKyBwb2xpY3kgZm9yIG1haW4gZnJhbWUgYW5kIHN1YmZyYW1lIG5hdmln
YXRpb25zLgogICovCiBAcHJvdG9jb2wgV0tOYXZpZ2F0aW9uRGVsZWdhdGUgPE5TT2JqZWN0Pgog
CiBAb3B0aW9uYWwKIAotLyohIEBhYnN0cmFjdCBEZWNpZGVzIHdoZXRoZXIgYSBuYXZpZ2F0aW9u
IHNob3VsZCBiZSBhbGxvd2VkIG9yIG5vdC4KLSBAcGFyYW0gd2ViVmlldyBUaGUgV0tXZWJWaWV3
IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2QuCi0gQHBhcmFtIG5hdmlnYXRpb25BY3Rpb24g
QSBkZXNjcmlwdGlvbiBvZiB0aGUgYWN0aW9uIHRoYXQgdHJpZ2dlcmVkIHRoZSBuYXZpZ2F0aW9u
IHJlcXVlc3QuCi0gQHBhcmFtIGRlY2lzaW9uSGFuZGxlciBUaGUgZGVjaXNpb24gaGFuZGxlciB0
aGF0IHNob3VsZCBiZSBjYWxsZWQgdG8gYWxsb3cgb3IgY2FuY2VsIHRoZSBuYXZpZ2F0aW9uLgor
LyohIEBhYnN0cmFjdCBEZWNpZGVzIHdoZXRoZXIgdG8gYWxsb3cgb3IgY2FuY2VsIGEgbmF2aWdh
dGlvbi4KKyBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRl
IG1ldGhvZC4KKyBAcGFyYW0gbmF2aWdhdGlvbkFjdGlvbiBEZXNjcmlwdGl2ZSBpbmZvcm1hdGlv
biBhYm91dCB0aGUgYWN0aW9uCisgdHJpZ2dlcmluZyB0aGUgbmF2aWdhdGlvbiByZXF1ZXN0Lgor
IEBwYXJhbSBkZWNpc2lvbkhhbmRsZXIgVGhlIGRlY2lzaW9uIGhhbmRsZXIgdG8gY2FsbCB0byBh
bGxvdyBvciBjYW5jZWwgdGhlCisgbmF2aWdhdGlvbi4gVGhlIGFyZ3VtZW50IGlzIG9uZSBvZiB0
aGUgY29uc3RhbnRzIG9mIHRoZSBlbnVtZXJhdGVkIHR5cGUgV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5LgogICovCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFj
dGlvbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkp
ZGVjaXNpb25IYW5kbGVyOwogCi0vKiEgQGFic3RyYWN0IERlY2lkZXMgd2hldGhlciBhIG5hdmln
YXRpb24gc2hvdWxkIGJlIGFsbG93ZWQgb3IgY2FuY2VsbGVkIG9uY2UgaXRzIHJlc3BvbnNlIGlz
IGtub3duLgotIEBwYXJhbSB3ZWJWaWV3IFRoZSBXS1dlYlZpZXcgaW52b2tpbmcgdGhlIGRlbGVn
YXRlIG1ldGhvZC4KLSBAcGFyYW0gbmF2aWdhdGlvblJlc3BvbnNlIEEgZGVzY3JpcHRpb24gb2Yg
dGhlIG5hdmlnYXRpb24gcmVzcG9uc2UuCi0gQHBhcmFtIGRlY2lzaW9uSGFuZGxlciBUaGUgZGVj
aXNpb24gaGFuZGxlciB0aGF0IHNob3VsZCBiZSBjYWxsZWQgdG8gYWxsb3cgb3IgY2FuY2VsIHRo
ZSBuYXZpZ2F0aW9uLgorLyohIEBhYnN0cmFjdCBEZWNpZGVzIHdoZXRoZXIgdG8gYWxsb3cgb3Ig
Y2FuY2VsIGEgbmF2aWdhdGlvbiBhZnRlciBpdHMKKyByZXNwb25zZSBpcyBrbm93bi4KKyBAcGFy
YW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KKyBA
cGFyYW0gbmF2aWdhdGlvblJlc3BvbnNlIERlc2NyaXB0aXZlIGluZm9ybWF0aW9uIGFib3V0IHRo
ZSBuYXZpZ2F0aW9uCisgcmVzcG9uc2UuCisgQHBhcmFtIGRlY2lzaW9uSGFuZGxlciBUaGUgZGVj
aXNpb24gaGFuZGxlciB0byBjYWxsIHRvIGFsbG93IG9yIGNhbmNlbCB0aGUKKyBuYXZpZ2F0aW9u
LiBUaGUgYXJndW1lbnQgaXMgb25lIG9mIHRoZSBjb25zdGFudHMgb2YgdGhlIGVudW1lcmF0ZWQg
dHlwZSBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeS4KICAqLwogLSAodm9pZCl3ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZTooV0tO
YXZpZ2F0aW9uUmVzcG9uc2UgKiluYXZpZ2F0aW9uUmVzcG9uc2UgZGVjaXNpb25IYW5kbGVyOih2
b2lkICheKShXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSkpZGVjaXNpb25IYW5kbGVyOwogCiAv
KiEgQGFic3RyYWN0IEludm9rZWQgd2hlbiBhIG1haW4gZnJhbWUgbmF2aWdhdGlvbiBzdGFydHMu
Ci0gQHBhcmFtIHdlYlZpZXcgVGhlIFdLV2ViVmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUgbWV0
aG9kLgorIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUg
bWV0aG9kLgogIEBwYXJhbSBuYXZpZ2F0aW9uIFRoZSBuYXZpZ2F0aW9uLgogICovCiAtICh2b2lk
KXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRp
b246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb247CiAKLS8qISBAYWJzdHJhY3QgSW52b2tlZCB3
aGVuIGEgc2VydmVyIHJlZGlyZWN0IGlzIHJlY2VpdmVkIGZvciB0aGUgbWFpbiBmcmFtZS4KLSBA
cGFyYW0gd2ViVmlldyBUaGUgV0tXZWJWaWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2Qu
CisvKiEgQGFic3RyYWN0IEludm9rZWQgd2hlbiBhIHNlcnZlciByZWRpcmVjdCBpcyByZWNlaXZl
ZCBmb3IgdGhlIG1haW4KKyBmcmFtZS4KKyBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52
b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KICBAcGFyYW0gbmF2aWdhdGlvbiBUaGUgbmF2aWdh
dGlvbi4KICAqLwogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFJlY2Vp
dmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICop
bmF2aWdhdGlvbjsKIAotLyohIEBhYnN0cmFjdCBJbnZva2VkIGlmIGFuIGVycm9yIG9jY3VycyB3
aGVuIHN0YXJ0aW5nIHRvIGxvYWQgZGF0YSBmb3IgdGhlIG1haW4gZnJhbWUuCi0gQHBhcmFtIHdl
YlZpZXcgVGhlIFdLV2ViVmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUgbWV0aG9kLgorLyohIEBh
YnN0cmFjdCBJbnZva2VkIHdoZW4gYW4gZXJyb3Igb2NjdXJzIHdoaWxlIHN0YXJ0aW5nIHRvIGxv
YWQgZGF0YSBmb3IKKyB0aGUgbWFpbiBmcmFtZS4KKyBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZp
ZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KICBAcGFyYW0gbmF2aWdhdGlvbiBUaGUg
bmF2aWdhdGlvbi4KLSBAcGFyYW0gZXJyb3IgU3BlY2lmaWVzIHRoZSB0eXBlIG9mIGVycm9yIHRo
YXQgb2NjdXJyZWQgZHVyaW5nIHRoZSBuYXZpZ2F0aW9uLgorIEBwYXJhbSBlcnJvciBUaGUgdHlw
ZSBvZiBlcnJvciB0aGF0IG9jY3VycmVkLgogICovCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICop
bmF2aWdhdGlvbiB3aXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcjsKIAogLyohIEBhYnN0cmFjdCBJ
bnZva2VkIHdoZW4gY29udGVudCBzdGFydHMgYXJyaXZpbmcgZm9yIHRoZSBtYWluIGZyYW1lLgot
IEBwYXJhbSB3ZWJWaWV3IFRoZSBXS1dlYlZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhv
ZC4KKyBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1l
dGhvZC4KICBAcGFyYW0gbmF2aWdhdGlvbiBUaGUgbmF2aWdhdGlvbi4KICAqLwogLSAodm9pZCl3
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENvbW1pdE5hdmlnYXRpb246KFdLTmF2aWdh
dGlvbiAqKW5hdmlnYXRpb247CiAKIC8qISBAYWJzdHJhY3QgSW52b2tlZCB3aGVuIGEgbWFpbiBm
cmFtZSBuYXZpZ2F0aW9uIGNvbXBsZXRlcy4KLSBAcGFyYW0gd2ViVmlldyBUaGUgV0tXZWJWaWV3
IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2QuCisgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2
aWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2QuCiAgQHBhcmFtIG5hdmlnYXRpb24gVGhl
IG5hdmlnYXRpb24uCiAgKi8KIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
aWRGaW5pc2hOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uOwogCi0vKiEgQGFi
c3RyYWN0IEludm9rZWQgaWYgYW4gZXJyb3Igb2NjdXJzIHdoaWxlIGxvYWRpbmcgYSBjb21taXR0
ZWQgbWFpbiBmcmFtZSBuYXZpZ2F0aW9uLgotIEBwYXJhbSB3ZWJWaWV3IFRoZSBXS1dlYlZpZXcg
aW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KKy8qISBAYWJzdHJhY3QgSW52b2tlZCB3aGVu
IGFuIGVycm9yIG9jY3VycyBkdXJpbmcgYSBjb21taXR0ZWQgbWFpbiBmcmFtZQorIG5hdmlnYXRp
b24uCisgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBt
ZXRob2QuCiAgQHBhcmFtIG5hdmlnYXRpb24gVGhlIG5hdmlnYXRpb24uCi0gQHBhcmFtIGVycm9y
IFNwZWNpZmllcyB0aGUgdHlwZSBvZiBlcnJvciB0aGF0IG9jY3VycmVkIGR1cmluZyB0aGUgbmF2
aWdhdGlvbi4KKyBAcGFyYW0gZXJyb3IgVGhlIHR5cGUgb2YgZXJyb3IgdGhhdCBvY2N1cnJlZC4K
ICAqLwogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZhaWxOYXZpZ2F0
aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uIHdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9y
OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlv
blJlc3BvbnNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5oCShyZXZpc2lvbiAxNjk0NTkpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDE1ICszNiwxNSBAQAogV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4
XzApCiBAaW50ZXJmYWNlIFdLTmF2aWdhdGlvblJlc3BvbnNlIDogTlNPYmplY3QKIAotLyohIEBh
YnN0cmFjdCBXaGV0aGVyIHRoZSBmcmFtZSB0aGF0IGlzIGJlaW5nIG5hdmlnYXRlZCBpcyB0aGUg
bWFpbiBmcmFtZSBvciBub3QuCisvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0
aW5nIHdoZXRoZXIgdGhlIGZyYW1lIGJlaW5nIG5hdmlnYXRlZCBpcyB0aGUgbWFpbiBmcmFtZS4K
ICAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNGb3JNYWluRnJh
bWUpIEJPT0wgZm9yTWFpbkZyYW1lOwogCi0vKiEgQGFic3RyYWN0IFRoZSBOU1VSTFJlc3BvbnNl
IG9mIHRoZSBmcmFtZS4KKy8qISBAYWJzdHJhY3QgVGhlIGZyYW1lJ3MgcmVzcG9uc2UuCiAgKi8K
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkxSZXNwb25zZSAqcmVzcG9uc2U7
CiAKLS8qISBAYWJzdHJhY3QgV2hldGhlciBXZWJLaXQgY2FuIHNob3cgdGhlIE1JTUUgdHlwZSBu
YXRpdmVseSBvciBub3QuCisvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5n
IHdoZXRoZXIgV2ViS2l0IGNhbiBkaXNwbGF5IGEgZ2l2ZW4gTUlNRSB0eXBlIG5hdGl2ZWx5Lgog
ICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgY2FuU2hvd01JTUVUeXBl
OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMuaAkocmV2aXNpb24gMTY5NDU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE3ICsz
MCwyMCBAQAogI2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgogI2ltcG9ydCA8
Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLS8qISBXS1ByZWZlcmVuY2VzIGVuY2Fwc3VsYXRl
cyB0aGUgcHJlZmVyZW5jZXMgeW91IGNhbiBjaGFuZ2UgZm9yIG9uZSBvciBtb3JlIFdLV2ViVmll
d3MuIAotIEEgQGxpbmsgV0tXZWJWaWV3IEAvbGluayBjYW4gc3BlY2lmeSB3aGljaCBXS1ByZWZl
cmVuY2VzIG9iamVjdCBpdCB1c2VzIHRocm91Z2ggaXRzIEBsaW5rIFdLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gQC9saW5rLgorLyohIEEgV0tQcmVmZXJlbmNlcyBvYmplY3QgZW5jYXBzdWxhdGVzIHRo
ZSBwcmVmZXJlbmNlIHNldHRpbmdzIGZvciBhIHdlYgorIHZpZXcuIFRoZSBwcmVmZXJlbmNlcyBv
YmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgd2ViIHZpZXcgaXMgc3BlY2lmaWVkIGJ5CisgaXRzIHdl
YiB2aWV3IGNvbmZpZ3VyYXRpb24uCiAgKi8KIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8w
KQogQGludGVyZmFjZSBXS1ByZWZlcmVuY2VzIDogTlNPYmplY3QKIAotLyohIEBhYnN0cmFjdCBS
ZXR1cm5zIGFuIGluaXRpYWxpemVkIFdLUHJlZmVyZW5jZXMgb2JqZWN0LgorLyohIEBhYnN0cmFj
dCBSZXR1cm5zIGFuIGluaXRpYWxpemVkIHByZWZlcmVuY2VzIG9iamVjdC4KICBAcGFyYW0gdXNl
ckRlZmF1bHRzS2V5UHJlZml4IFRoZSB1c2VyIGRlZmF1bHRzIGtleSBwcmVmaXguCi0gQHJlc3Vs
dCBBbiBpbml0aWFsaXplZCBXS1ByZWZlcmVuY2VzIG9iamVjdCwgb3IgbmlsIGlmIHRoZSBvYmpl
Y3QgY291bGQgbm90IGJlIGluaXRpYWxpemVkLgotIEBkaXNjdXNzaW9uIElmIHRoZSB1c2VyRGVm
YXVsdHNLZXlQcmVmaXggYXJndW1lbnQgaXMgbm9uLW5pbCwgaXQgaXMgcHJlcGVuZGVkIHRvIHRo
ZSBrZXlzIHVzZWQgdG8gc3RvcmUgcHJlZmVyZW5jZXMKLSBpbiB0aGUgdXNlciBkZWZhdWx0cyBk
YXRhYmFzZS4gSWYgdGhlIGFyZ3VtZW50IGlzIG5pbCwgdGhlIHByZWZlcmVuY2VzIG9iamVjdCB3
b24ndCBzYXZlIGFueXRoaW5nIHRvIHRoZSB1c2VyIGRlZmF1bHRzIGRhdGFiYXNlLgorIEByZXN1
bHQgQW4gaW5pdGlhbGl6ZWQgcHJlZmVyZW5jZXMgb2JqZWN0LgorIEBkaXNjdXNzaW9uIElmIHRo
ZSB1c2VyRGVmYXVsdHNLZXlQcmVmaXggcGFyYW1ldGVyIGlzIG5vdCBuaWwsIGl0IGlzCisgcHJl
cGVuZGVkIHRvIHRoZSBrZXlzIHVzZWQgdG8gc3RvcmUgcHJlZmVyZW5jZXMgaW4gdGhlIHVzZXIg
ZGVmYXVsdHMKKyBkYXRhYmFzZS4gSWYgdGhlIHBhcmFtZXRlciBpcyBuaWwsIHRoZSBwcmVmZXJl
bmNlcyBvYmplY3Qgd2lsbCBub3Qgc2F2ZQorIGFueXRoaW5nIHRvIHRoZSB1c2VyIGRlZmF1bHRz
IGRhdGFiYXNlLgogICovCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhVc2VyRGVmYXVsdHNLZXlQ
cmVmaXg6KE5TU3RyaW5nICopdXNlckRlZmF1bHRzS2V5UHJlZml4IFdLX0RFU0lHTkFURURfSU5J
VElBTElaRVI7CiAKQEAgLTQ4LDQzICs1MSw1NiBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAs
IDhfMCkKICAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqdXNl
ckRlZmF1bHRzS2V5UHJlZml4OwogCi0vKiEgQGFic3RyYWN0IFRoZSBtaW5pbXVtIGZvbnQgc2l6
ZSBpbiBwb2ludHMuIERlZmF1bHRzIHRvIDAuCisvKiEgQGFic3RyYWN0IFRoZSBtaW5pbXVtIGZv
bnQgc2l6ZSBpbiBwb2ludHMuCisgQGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgMC4K
ICAqLwogQHByb3BlcnR5IChub25hdG9taWMpIENHRmxvYXQgbWluaW11bUZvbnRTaXplOwogCi0v
KiEgQGFic3RyYWN0IFdoZXRoZXIgSmF2YVNjcmlwdCBpcyBlbmFibGVkLiBEZWZhdWx0cyB0byBZ
RVMuCisvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgSmF2
YVNjcmlwdCBpcyBlbmFibGVkLgorIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFlF
Uy4KICAqLwogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc0phdmFTY3JpcHRFbmFibGVk
KSBCT09MIGphdmFTY3JpcHRFbmFibGVkOwogCi0vKiEgQGFic3RyYWN0IFdoZXRoZXIgSmF2YVNj
cmlwdCBjYW4gb3BlbiB3aW5kb3dzIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4gRGVmYXVsdHMg
dG8gTk8gb24gaU9TIGFuZCBZRVMgb24gT1MgWC4KKy8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZh
bHVlIGluZGljYXRpbmcgd2hldGhlciBKYXZhU2NyaXB0IGNhbiBvcGVuCisgd2luZG93cyB3aXRo
b3V0IHVzZXIgaW50ZXJhY3Rpb24uCisgQGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMg
Tk8gaW4gaU9TIGFuZCBZRVMgaW4gT1MgWC4KICAqLwogQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseTsKIAotLyohIEBhYnN0cmFj
dCBXaGV0aGVyIHRoZSBXS1dlYlZpZXcgc3VwcHJlc3NlcyBjb250ZW50IHJlbmRlcmluZyB1bnRp
bCBpdCBpcyBmdWxseSBsb2FkZWQgaW50byBtZW1vcnkuIERlZmF1bHRzIHRvIE5PLgorLyohIEBh
YnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB3ZWIgdmlldyBz
dXBwcmVzc2VzCisgY29udGVudCByZW5kZXJpbmcgdW50aWwgaXQgaXMgZnVsbHkgbG9hZGVkIGlu
dG8gbWVtb3J5LgorIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIE5PLgogICovCiBA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBzdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmc7
CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCi0vKiEgQGFic3RyYWN0IFdoZXRoZXIgSFRNTDUgdmlk
ZW9zIHBsYXkgaW5saW5lIG9yIHVzZSB0aGUgbmF0aXZlIGZ1bGwtc2NyZWVuIGNvbnRyb2xsZXIu
IERlZmF1bHRzIHRvIE5PLgorLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGlu
ZyB3aGV0aGVyIEhUTUw1IHZpZGVvcyBwbGF5IGlubGluZQorIChZRVMpIG9yIHVzZSB0aGUgbmF0
aXZlIGZ1bGwtc2NyZWVuIGNvbnRyb2xsZXIgKE5PKS4KKyBAZGlzY3Vzc2lvbiBUaGUgZGVmYXVs
dCB2YWx1ZSBpcyBOTy4KICAqLwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzSW5s
aW5lTWVkaWFQbGF5YmFjazsKIAotLyohIEBhYnN0cmFjdCBXaGV0aGVyIEhUTUw1IHZpZGVvcyBj
YW4gcGxheSBhdXRvbWF0aWNhbGx5IG9yIHJlcXVpcmUgdGhlIHVzZXIgdG8gc3RhcnQgcGxheWlu
ZyB0aGVtLiBEZWZhdWx0cyB0byBZRVMuCisvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBp
bmRpY2F0aW5nIHdoZXRoZXIgSFRNTDUgdmlkZW9zIHJlcXVpcmUgdGhlCisgdXNlciB0byBzdGFy
dCBwbGF5aW5nIHRoZW0gKFlFUykgb3IgY2FuIHBsYXkgYXV0b21hdGljYWxseSAoTk8pLgorIEBk
aXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFlFUy4KICAqLwogQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckFjdGlvbjsKIAotLyohIEBhYnN0
cmFjdCBXaGV0aGVyIEFpclBsYXkgaXMgYWxsb3dlZC4gRGVmYXVsdHMgdG8gWUVTLgorLyohIEBh
YnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEFpclBsYXkgaXMgYWxs
b3dlZC4KKyBAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZRVMuCiAgKi8KIEBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIG1lZGlhUGxheWJhY2tBbGxvd3NBaXJQbGF5OwogCiAjZW5k
aWYKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCi0vKiEgQGFic3RyYWN0IFdoZXRoZXIgSmF2YSBp
cyBlbmFibGVkLiBEZWZhdWx0cyB0byBOTy4KKy8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVl
IGluZGljYXRpbmcgd2hldGhlciBKYXZhIGlzIGVuYWJsZWQuCisgQGRpc2N1c3Npb24gVGhlIGRl
ZmF1bHQgdmFsdWUgaXMgWUVTLgogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlz
SmF2YUVuYWJsZWQpIEJPT0wgamF2YUVuYWJsZWQ7CiAKLS8qISBhYnN0cmFjdCBXaGV0aGVyIHBs
dWctaW5zIGFyZSBlbmFibGVkLiBEZWZhdWx0cyB0byBOTy4KKy8qISBAYWJzdHJhY3QgQSBCb29s
ZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBwbHVnLWlucyBhcmUgZW5hYmxlZC4KKyBAZGlz
Y3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZRVMuCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBnZXR0ZXI9YXJlUGx1Z0luc0VuYWJsZWQpIEJPT0wgcGx1Z0luc0VuYWJsZWQ7CiAjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbC5oCShyZXZpc2lvbiAxNjk0NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTAgKzI5
LDExIEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi0vKiEgQSBwb29s
IG9mIFdlYiBDb250ZW50IHByb2Nlc3Nlcy4KLSBBIEBsaW5rIFdLV2ViVmlldyBAL2xpbmsgc3Bl
Y2lmaWVzIGl0cyBwcm9jZXNzIHBvb2wgdGhyb3VnaCBpdHMgQGxpbmsgV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBAL2xpbmsuCi0gRWFjaCBXS1dlYlZpZXcgd2lsbCBnZXQgaXRzIG93biBXZWIgQ29u
dGVudCBwcm9jZXNzIHVudGlsIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgcHJvY2VzcyBsaW1p
dCBpcyByZWFjaGVkOyBhZnRlciB0aGF0LAotIHdlYiB2aWV3cyB3aXRoIHRoZSBzYW1lIHByb2Nl
c3MgcG9vbCBlbmQgdXAgc2hhcmluZyBXZWIgQ29udGVudCBwcm9jZXNzZXMuCisvKiEgQSBXS1By
b2Nlc3NQb29sIG9iamVjdCByZXByZXNlbnRzIGEgcG9vbCBvZiB3ZWIgY29udGVudCBwcm9jZXNz
ZXMuCisgVGhlIHByb2Nlc3MgcG9vbCBhc3NvY2lhdGVkIHdpdGggYSB3ZWIgdmlldyBpcyBzcGVj
aWZpZWQgYnkgaXRzIHdlYiB2aWV3CisgY29uZmlndXJhdGlvbi4gRWFjaCB3ZWIgdmlldyBpcyBn
aXZlbiBpdHMgb3duIHdlYiBjb250ZW50IHByb2Nlc3MgdW50aWwgYW4KKyBpbXBsZW1lbnRhdGlv
bi1kZWZpbmVkIHByb2Nlc3MgbGltaXQgaXMgcmVhY2hlZDsgYWZ0ZXIgdGhhdCwgd2ViIHZpZXdz
Cisgd2l0aCB0aGUgc2FtZSBwcm9jZXNzIHBvb2wgZW5kIHVwIHNoYXJpbmcgd2ViIGNvbnRlbnQg
cHJvY2Vzc2VzLgogICovCiBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIEBpbnRlcmZh
Y2UgV0tQcm9jZXNzUG9vbCA6IE5TT2JqZWN0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlLmgJKHJldmlzaW9uIDE2OTQ1
OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDE4ICszMSwyMyBAQAogCiBAY2xhc3MgV0tXZWJWaWV3
OwogCi0vKiEgQSBAbGluayBXS1NjcmlwdE1lc3NhZ2UgQC9saW5rIG9iamVjdCBjb250YWlucyBp
bmZvcm1hdGlvbiBhYm91dCBhIG1lc3NhZ2UgYmVpbmcgc2VudCBmcm9tIGEgd2VicGFnZS4KKy8q
ISBBIFdLU2NyaXB0TWVzc2FnZSBvYmplY3QgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgYSBt
ZXNzYWdlIHNlbnQgZnJvbQorIGEgd2VicGFnZS4KICAqLwogV0tfQ0xBU1NfQVZBSUxBQkxFKDEw
XzEwLCA4XzApCiBAaW50ZXJmYWNlIFdLU2NyaXB0TWVzc2FnZSA6IE5TT2JqZWN0CiAKLS8qISBA
YWJzdHJhY3QgVGhlIGJvZHkgb2YgdGhlIG1lc3NhZ2UuIEFsbG93ZWQgdHlwZXMgYXJlIE5TRGlj
dGlvbmFyeSwgTlNBcnJheSwgTlNOdW1iZXIsIE5TTnVsbCwgTlNTdHJpbmcsIGFuZCBOU0RhdGUu
ICovCisvKiEgQGFic3RyYWN0IFRoZSBib2R5IG9mIHRoZSBtZXNzYWdlLgorIEBkaXNjdXNzaW9u
IEFsbG93ZWQgdHlwZXMgYXJlIE5TTnVtYmVyLCBOU1N0cmluZywgTlNEYXRlLCBOU0FycmF5LAor
IE5TRGljdGlvbmFyeSwgYW5kIE5TTnVsbC4KKyAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBpZCBib2R5OwogCi0vKiEgQGFic3RyYWN0IFRoZSB3ZWIgdmlldyB0aGUgbWVzc2Fn
ZSBpcyBjb21pbmcgZnJvbS4gKi8KKy8qISBAYWJzdHJhY3QgVGhlIHdlYiB2aWV3IHNlbmRpbmcg
dGhlIG1lc3NhZ2UuICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIHdlYWspIFdL
V2ViVmlldyAqd2ViVmlldzsKIAotLyohIEBhYnN0cmFjdCBUaGUgbmFtZSBvZiB0aGUgbWVzc2Fn
ZSBoYW5kbGVyIHRoaXMgbWVzc2FnZSBpcyBiZWluZyBzZW50IHRvLiAqLworLyohIEBhYnN0cmFj
dCBUaGUgbmFtZSBvZiB0aGUgbWVzc2FnZSBoYW5kbGVyIHRvIHdoaWNoIHRoZSBtZXNzYWdlIGlz
IHNlbnQuCisgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKm5h
bWU7CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tT
Y3JpcHRNZXNzYWdlSGFuZGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlSGFuZGxlci5oCShyZXZpc2lvbiAxNjk0NTkp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZUhh
bmRsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTUgKzMyLDE3IEBACiBAY2xhc3MgV0tTY3Jp
cHRNZXNzYWdlOwogQGNsYXNzIFdLVXNlckNvbnRlbnRDb250cm9sbGVyOwogCi0vKiEgQSBjbGFz
cyB0aGF0IGNvbmZvcm1zIHRvIFdLU2NyaXB0TWVzc2FnZUhhbmRsZXIgcHJvdmlkZXMgYSBtZXRo
b2QgZm9yIHJlY2lldmluZyBtZXNzYWdlcyBmcm9tIEphdmFTY3JpcHQgcnVubmluZyBpbiBhIHdl
YnBhZ2UuCisvKiEgQSBjbGFzcyBjb25mb3JtaW5nIHRvIHRoZSBXS1NjcmlwdE1lc3NhZ2VIYW5k
bGVyIHByb3RvY29sIHByb3ZpZGVzIGEKKyBtZXRob2QgZm9yIHJlY2VpdmluZyBtZXNzYWdlcyBm
cm9tIEphdmFTY3JpcHQgcnVubmluZyBpbiBhIHdlYnBhZ2UuCiAgKi8KIEBwcm90b2NvbCBXS1Nj
cmlwdE1lc3NhZ2VIYW5kbGVyIDxOU09iamVjdD4KIAogQHJlcXVpcmVkCiAKLS8qISBAYWJzdHJh
Y3QgSW52b2tlZCB3aGVuIGEgc2NyaXB0IG1lc3NhZ2UgaXMgcmVjaWV2ZWQgZnJvbSBhIHdlYnBh
Z2UuCi0gQHBhcmFtIHVzZXJDb250ZW50Q29udHJvbGxlciBUaGUgV0tVc2VyQ29udGVudENvbnRy
b2xsZXIgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KLSBAcGFyYW0gbWVzc2FnZSBUaGUg
c2NyaXB0IG1lc3NhZ2UgYmVpbmcgcmVjZWl2ZWQuCisvKiEgQGFic3RyYWN0IEludm9rZWQgd2hl
biBhIHNjcmlwdCBtZXNzYWdlIGlzIHJlY2VpdmVkIGZyb20gYSB3ZWJwYWdlLgorIEBwYXJhbSB1
c2VyQ29udGVudENvbnRyb2xsZXIgVGhlIHVzZXIgY29udGVudCBjb250cm9sbGVyIGludm9raW5n
IHRoZQorIGRlbGVnYXRlIG1ldGhvZC4KKyBAcGFyYW0gbWVzc2FnZSBUaGUgc2NyaXB0IG1lc3Nh
Z2UgcmVjZWl2ZWQuCiAgKi8KIC0gKHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJD
b250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29udHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0
TWVzc2FnZTooV0tTY3JpcHRNZXNzYWdlICopbWVzc2FnZTsKIApJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oCShyZXZpc2lvbiAx
Njk0NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw1MSArMzMsNjMgQEAKIEBjbGFzcyBXS1dlYlZpZXdD
b25maWd1cmF0aW9uOwogQGNsYXNzIFdLV2luZG93RmVhdHVyZXM7CiAKLS8qISBBIGNsYXNzIHRo
YXQgY29uZm9ybXMgdG8gV0tVSURlbGVnYXRlIHByb3ZpZGVzIG1ldGhvZHMgZm9yIHByZXNlbnRp
bmcgbmF0aXZlIFVJIG9uIGJlaGFsZiBvZiB0aGUgd2VicGFnZS4KKy8qISBBIGNsYXNzIGNvbmZv
cm1pbmcgdG8gdGhlIFdLVUlEZWxlZ2F0ZSBwcm90b2NvbCBwcm92aWRlcyBtZXRob2RzIGZvcgor
IHByZXNlbnRpbmcgbmF0aXZlIFVJIG9uIGJlaGFsZiBvZiBhIHdlYnBhZ2UuCiAgKi8KIEBwcm90
b2NvbCBXS1VJRGVsZWdhdGUgPE5TT2JqZWN0PgogCiBAb3B0aW9uYWwKIAotLyohIEBhYnN0cmFj
dCBDcmVhdGUgYSBuZXcgV0tXZWJWaWV3LgotIEBwYXJhbSB3ZWJWaWV3IFRoZSBXS1dlYlZpZXcg
aW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KLSBAcGFyYW0gY29uZmlndXJhdGlvbiBUaGUg
Y29uZmlndXJhdGlvbiB0aGF0IG11c3QgYmUgdXNlZCB3aGVuIGNyZWF0aW5nIHRoZSBuZXcgV0tX
ZWJWaWV3LgotIEBwYXJhbSBuYXZpZ2F0aW9uQWN0aW9uIFRoZSBuYXZpZ2F0aW9uIGFjdGlvbiB0
aGF0IGlzIGNhdXNpbmcgdGhlIG5ldyBXS1dlYlZpZXcgdG8gYmUgY3JlYXRlZC4KKy8qISBAYWJz
dHJhY3QgQ3JlYXRlcyBhIG5ldyB3ZWIgdmlldy4KKyBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZp
ZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KKyBAcGFyYW0gY29uZmlndXJhdGlvbiBU
aGUgY29uZmlndXJhdGlvbiB0byB1c2Ugd2hlbiBjcmVhdGluZyB0aGUgbmV3IHdlYgorIHZpZXcu
CisgQHBhcmFtIG5hdmlnYXRpb25BY3Rpb24gVGhlIG5hdmlnYXRpb24gYWN0aW9uIGNhdXNpbmcg
dGhlIG5ldyB3ZWIgdmlldyB0bworIGJlIGNyZWF0ZWQuCiAgQHBhcmFtIHdpbmRvd0ZlYXR1cmVz
IFdpbmRvdyBmZWF0dXJlcyByZXF1ZXN0ZWQgYnkgdGhlIHdlYnBhZ2UuCi0gQHJlc3VsdCBBIG5l
dyBXS1dlYlZpZXcgb3IgbmlsLgotIEBkaXNjdXNzaW9uIFRoZSBXS1dlYlZpZXcgcmV0dXJuZWQg
bXVzdCBiZSBjcmVhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBjb25maWd1cmF0aW9uLiBXZWJLaXQg
d2lsbCBsb2FkIHRoZSByZXF1ZXN0IGluIHRoZSByZXR1cm5lZCBXS1dlYlZpZXcuCisgQHJlc3Vs
dCBBIG5ldyB3ZWIgdmlldyBvciBuaWwuCisgQGRpc2N1c3Npb24gVGhlIHdlYiB2aWV3IHJldHVy
bmVkIG11c3QgYmUgY3JlYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgY29uZmlndXJhdGlvbi4gV2Vi
S2l0IHdpbGwgbG9hZCB0aGUgcmVxdWVzdCBpbiB0aGUgcmV0dXJuZWQgd2ViIHZpZXcuCiAgKi8K
IC0gKFdLV2ViVmlldyAqKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY3JlYXRlV2ViVmll
d1dpdGhDb25maWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlv
biBmb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0
aW9uIHdpbmRvd0ZlYXR1cmVzOihXS1dpbmRvd0ZlYXR1cmVzICopd2luZG93RmVhdHVyZXM7CiAK
LS8qISBAYWJzdHJhY3QgRGlzcGxheSBhIEphdmFTY3JpcHQgYWxlcnQgcGFuZWwuCi0gQHBhcmFt
IHdlYlZpZXcgVGhlIFdLV2ViVmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUgbWV0aG9kLgorLyoh
IEBhYnN0cmFjdCBEaXNwbGF5cyBhIEphdmFTY3JpcHQgYWxlcnQgcGFuZWwuCisgQHBhcmFtIHdl
YlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2QuCiAgQHBhcmFt
IG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gZGlzcGxheS4KLSBAcGFyYW0gZnJhbWUgSW5mb3JtYXRp
b24gYWJvdXQgdGhlIGZyYW1lIHdob3NlIEphdmFTY3JpcHQgaW5pdGlhdGVkIHRoaXMgY2FsbC4K
LSBAcGFyYW0gY29tcGxldGlvbkhhbmRsZXIgVGhlIGNvbXBsZXRpb24gaGFuZGxlciB0aGF0IHNo
b3VsZCBnZXQgY2FsbGVkIGFmdGVyIHRoZSBhbGVydCBwYW5lbCBoYXMgYmVlbiBkaXNtaXNzZWQu
Ci0gQGRpc2N1c3Npb24gQ2xpZW50cyBzaG91bGQgdmlzdWFsbHkgaW5kaWNhdGUgdGhhdCB0aGlz
IHBhbmVsIGNvbWVzIGZyb20gSmF2YVNjcmlwdCBpbml0aWF0ZWQgYnkgdGhlIHNwZWNpZmllZCBm
cmFtZS4KLSBUaGUgcGFuZWwgc2hvdWxkIGhhdmUgYSBzaW5nbGUgIk9LIiBidXR0b24uCisgQHBh
cmFtIGZyYW1lIEluZm9ybWF0aW9uIGFib3V0IHRoZSBmcmFtZSB3aG9zZSBKYXZhU2NyaXB0IGlu
aXRpYXRlZCB0aGlzCisgY2FsbC4KKyBAcGFyYW0gY29tcGxldGlvbkhhbmRsZXIgVGhlIGNvbXBs
ZXRpb24gaGFuZGxlciB0byBjYWxsIGFmdGVyIHRoZSBhbGVydAorIHBhbmVsIGhhcyBiZWVuIGRp
c21pc3NlZC4KKyBAZGlzY3Vzc2lvbiBDbGllbnRzIHNob3VsZCB2aXN1YWxseSBpbmRpY2F0ZSB0
aGF0IHRoaXMgcGFuZWwgY29tZXMgZnJvbQorIEphdmFTY3JpcHQgaW5pdGlhdGVkIGJ5IHRoZSBz
cGVjaWZpZWQgZnJhbWUuCisgVGhlIHBhbmVsIHNob3VsZCBoYXZlIGEgc2luZ2xlIE9LIGJ1dHRv
bi4KICAqLwogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3Jp
cHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZy
YW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSgpKWNv
bXBsZXRpb25IYW5kbGVyOwogCi0vKiEgQGFic3RyYWN0IERpc3BsYXkgYSBKYXZhU2NyaXB0IGNv
bmZpcm0gcGFuZWwuCi0gQHBhcmFtIHdlYlZpZXcgVGhlIFdLV2ViVmlldyBpbnZva2luZyB0aGUg
ZGVsZWdhdGUgbWV0aG9kLgorLyohIEBhYnN0cmFjdCBEaXNwbGF5cyBhIEphdmFTY3JpcHQgY29u
ZmlybSBwYW5lbC4KKyBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhlIGRl
bGVnYXRlIG1ldGhvZC4KICBAcGFyYW0gbWVzc2FnZSBUaGUgbWVzc2FnZSB0byBkaXNwbGF5Lgog
IEBwYXJhbSBmcmFtZSBJbmZvcm1hdGlvbiBhYm91dCB0aGUgZnJhbWUgd2hvc2UgSmF2YVNjcmlw
dCBpbml0aWF0ZWQgdGhpcyBjYWxsLgotIEBwYXJhbSBjb21wbGV0aW9uSGFuZGxlciBUaGUgY29t
cGxldGlvbiBoYW5kbGVyIHRoYXQgc2hvdWxkIGdldCBjYWxsZWQgYWZ0ZXIgdGhlIGNvbmZpcm0g
cGFuZWwgaGFzIGJlZW4gZGlzbWlzc2VkLgotIFBhc3MgWUVTIGlmIHRoZSB1c2VyIGNob3NlIE9L
LCBOTyBpZiB0aGUgdXNlciBjaG9zZSBDYW5jZWwuCi0gQGRpc2N1c3Npb24gQ2xpZW50cyBzaG91
bGQgdmlzdWFsbHkgaW5kaWNhdGUgdGhhdCB0aGlzIHBhbmVsIGNvbWVzIGZyb20gSmF2YVNjcmlw
dCBpbml0aWF0ZWQgYnkgdGhlIHNwZWNpZmllZCBmcmFtZS4KLSBUaGUgcGFuZWwgc2hvdWxkIGhh
dmUgdHdvIGJ1dHRvbnMsIGUuZy4gIk9LIiBhbmQgIkNhbmNlbCIuCisgQHBhcmFtIGNvbXBsZXRp
b25IYW5kbGVyIFRoZSBjb21wbGV0aW9uIGhhbmRsZXIgdG8gY2FsbCBhZnRlciB0aGUgY29uZmly
bQorIHBhbmVsIGhhcyBiZWVuIGRpc21pc3NlZC4gUGFzcyBZRVMgaWYgdGhlIHVzZXIgY2hvc2Ug
T0ssIE5PIGlmIHRoZSB1c2VyCisgY2hvc2UgQ2FuY2VsLgorIEBkaXNjdXNzaW9uIENsaWVudHMg
c2hvdWxkIHZpc3VhbGx5IGluZGljYXRlIHRoYXQgdGhpcyBwYW5lbCBjb21lcyBmcm9tCisgSmF2
YVNjcmlwdCBpbml0aWF0ZWQgYnkgdGhlIHNwZWNpZmllZCBmcmFtZS4KKyBUaGUgcGFuZWwgc2hv
dWxkIGhhdmUgdHdvIGJ1dHRvbnMsIHN1Y2ggYXMgT0sgYW5kIENhbmNlbC4KICAqLwogLSAodm9p
ZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRDb25maXJtUGFuZWxX
aXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6KFdLRnJhbWVJ
bmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgcmVzdWx0KSljb21w
bGV0aW9uSGFuZGxlcjsKIAotLyohIEBhYnN0cmFjdCBEaXNwbGF5IGEgSmF2YVNjcmlwdCB0ZXh0
IGlucHV0IHBhbmVsLgotIEBwYXJhbSB3ZWJWaWV3IFRoZSBXS1dlYlZpZXcgaW52b2tpbmcgdGhl
IGRlbGVnYXRlIG1ldGhvZC4KKy8qISBAYWJzdHJhY3QgRGlzcGxheXMgYSBKYXZhU2NyaXB0IHRl
eHQgaW5wdXQgcGFuZWwuCisgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRo
ZSBkZWxlZ2F0ZSBtZXRob2QuCiAgQHBhcmFtIG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gZGlzcGxh
eS4KLSBAcGFyYW0gZGVmYXVsdFRleHQgVGhlIGluaXRpYWwgdGV4dCBmb3IgdGhlIHRleHQgZW50
cnkgYXJlYS4KKyBAcGFyYW0gZGVmYXVsdFRleHQgVGhlIGluaXRpYWwgdGV4dCB0byBkaXNwbGF5
IGluIHRoZSB0ZXh0IGVudHJ5IGZpZWxkLgogIEBwYXJhbSBmcmFtZSBJbmZvcm1hdGlvbiBhYm91
dCB0aGUgZnJhbWUgd2hvc2UgSmF2YVNjcmlwdCBpbml0aWF0ZWQgdGhpcyBjYWxsLgotIEBwYXJh
bSBjb21wbGV0aW9uSGFuZGxlciBUaGUgY29tcGxldGlvbiBoYW5kbGVyIHRoYXQgc2hvdWxkIGdl
dCBjYWxsZWQgYWZ0ZXIgdGhlIHRleHQgaW5wdXQgcGFuZWwgaGFzIGJlZW4gZGlzbWlzc2VkLiBQ
YXNzIHRoZSB0eXBlZCB0ZXh0IGlmIHRoZSB1c2VyIGNob3NlIE9LLCBvdGhlcndpc2UgbmlsLgot
IEBkaXNjdXNzaW9uIENsaWVudHMgc2hvdWxkIHZpc3VhbGx5IGluZGljYXRlIHRoYXQgdGhpcyBw
YW5lbCBjb21lcyBmcm9tIEphdmFTY3JpcHQgaW5pdGlhdGVkIGJ5IHRoZSBzcGVjaWZpZWQgZnJh
bWUuCi0gVGhlIHBhbmVsIHNob3VsZCBoYXZlIHR3byBidXR0b25zLCBlLmcuICJPSyIgYW5kICJD
YW5jZWwiLCBhbmQgYW4gYXJlYSB0byB0eXBlIHRleHQuCisgQHBhcmFtIGNvbXBsZXRpb25IYW5k
bGVyIFRoZSBjb21wbGV0aW9uIGhhbmRsZXIgdG8gY2FsbCBhZnRlciB0aGUgdGV4dAorIGlucHV0
IHBhbmVsIGhhcyBiZWVuIGRpc21pc3NlZC4gUGFzcyB0aGUgZW50ZXJlZCB0ZXh0IGlmIHRoZSB1
c2VyIGNob3NlCisgT0ssIG90aGVyd2lzZSBuaWwuCisgQGRpc2N1c3Npb24gQ2xpZW50cyBzaG91
bGQgdmlzdWFsbHkgaW5kaWNhdGUgdGhhdCB0aGlzIHBhbmVsIGNvbWVzIGZyb20KKyBKYXZhU2Ny
aXB0IGluaXRpYXRlZCBieSB0aGUgc3BlY2lmaWVkIGZyYW1lLgorIFRoZSBwYW5lbCBzaG91bGQg
aGF2ZSB0d28gYnV0dG9ucywgc3VjaCBhcyBPSyBhbmQgQ2FuY2VsLCBhbmQgYSBmaWVsZCBpbgor
IHdoaWNoIHRvIGVudGVyIHRleHQuCiAgKi8KIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBydW5KYXZhU2NyaXB0VGV4dElucHV0UGFuZWxXaXRoUHJvbXB0OihOU1N0cmluZyAq
KXByb21wdCBkZWZhdWx0VGV4dDooTlNTdHJpbmcgKilkZWZhdWx0VGV4dCBpbml0aWF0ZWRCeUZy
YW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0
cmluZyAqcmVzdWx0KSljb21wbGV0aW9uSGFuZGxlcjsKIApJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRy
b2xsZXIuaAkocmV2aXNpb24gMTY5NDU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwx
MyArMzIsMTYgQEAKIEBjbGFzcyBXS1VzZXJTY3JpcHQ7CiBAcHJvdG9jb2wgV0tTY3JpcHRNZXNz
YWdlSGFuZGxlcjsKIAotLyohIFdLVXNlckNvbnRlbnRDb250cm9sbGVyIHByb3ZpZGVzIGEgd2F5
IGZvciBKYXZhU2NyaXB0IHRvIHBvc3QgbWVzc2FnZXMgdG8gdGhlIEBsaW5rIFdLV2ViVmlldyBA
L2xpbmsuCi0gQSBAbGluayBXS1dlYlZpZXcgQC9saW5rIGNhbiBzcGVjaWZ5IHdoaWNoIFdLVXNl
ckNvbnRlbnRDb250cm9sbGVyIG9iamVjdCBpdCB1c2VzIHRocm91Z2ggaXRzIEBsaW5rIFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gQC9saW5rLgorLyohIEEgV0tVc2VyQ29udGVudENvbnRyb2xsZXIg
b2JqZWN0IHByb3ZpZGVzIGEgd2F5IGZvciBKYXZhU2NyaXB0IHRvIHBvc3QKKyBtZXNzYWdlcyB0
byBhIHdlYiB2aWV3LgorIFRoZSB1c2VyIGNvbnRlbnQgY29udHJvbGxlciBhc3NvY2lhdGVkIHdp
dGggYSB3ZWIgdmlldyBpcyBzcGVjaWZpZWQgYnkgaXRzCisgd2ViIHZpZXcgY29uZmlndXJhdGlv
bi4KICAqLwogV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiBAaW50ZXJmYWNlIFdLVXNl
ckNvbnRlbnRDb250cm9sbGVyIDogTlNPYmplY3QKIAotLyohIEBhYnN0cmFjdCBUaGUgdXNlciBz
Y3JpcHRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHVzZXIgY29udGVudCBjb250cm9sbGVyLgorLyoh
IEBhYnN0cmFjdCBUaGUgdXNlciBzY3JpcHRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHVzZXIgY29u
dGVudAorIGNvbnRyb2xsZXIuCiAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBO
U0FycmF5ICp1c2VyU2NyaXB0czsKIApAQCAtNTIsOSArNTUsMTEgQEAgV0tfQ0xBU1NfQVZBSUxB
QkxFKDEwXzEwLCA4XzApCiAtICh2b2lkKXJlbW92ZUFsbFVzZXJTY3JpcHRzOwogCiAvKiEgQGFi
c3RyYWN0IEFkZHMgYSBzY3JpcHQgbWVzc2FnZSBoYW5kbGVyLgotIEBwYXJhbSBzY3JpcHRNZXNz
YWdlSGFuZGxlciBUaGUgbWVzc2FnZSBoYW5kbGVyIHdoZXJlIHRoZSBtZXNzYWdlcyBzaG91bGQg
YmUgZGVsaXZlcmVkLgorIEBwYXJhbSBzY3JpcHRNZXNzYWdlSGFuZGxlciBUaGUgbWVzc2FnZSBo
YW5kbGVyIHRvIGFkZC4KICBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgbWVzc2FnZSBoYW5k
bGVyLgotIEBkaXNjdXNzaW9uIEFkZGluZyBhIHNjcmlwdE1lc3NhZ2VIYW5kbGVyIGFkZHMgYSBm
dW5jdGlvbiB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy48bmFtZT4ucG9zdE1lc3NhZ2Uo
PG1lc3NhZ2VCb2R5PikgZm9yIGFsbCBmcmFtZXMuCisgQGRpc2N1c3Npb24gQWRkaW5nIGEgc2Ny
aXB0TWVzc2FnZUhhbmRsZXIgYWRkcyBhIGZ1bmN0aW9uCisgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMuPG5hbWU+LnBvc3RNZXNzYWdlKDxtZXNzYWdlQm9keT4pIGZvciBhbGwKKyBmcmFt
ZXMuCiAgKi8KIC0gKHZvaWQpYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6KGlkIDxXS1NjcmlwdE1l
c3NhZ2VIYW5kbGVyPilzY3JpcHRNZXNzYWdlSGFuZGxlciBuYW1lOihOU1N0cmluZyAqKW5hbWU7
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcuaAkocmV2aXNpb24gMTY5NDU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQAogQHByb3Rv
Y29sIFdLVUlEZWxlZ2F0ZTsKIAogLyohCi0gQSBAbGluayBXS1dlYlZpZXcgQC9saW5rIGRpc3Bs
YXlzIGludGVyYWN0aXZlIFdlYiBjb250ZW50LgorIEEgV0tXZWJWaWV3IG9iamVjdCBkaXNwbGF5
cyBpbnRlcmFjdGl2ZSBXZWIgY29udGVudC4KICBAaGVscGVyY2xhc3MgQGxpbmsgV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBAL2xpbmsKICBVc2VkIHRvIGNvbmZpZ3VyZSBAbGluayBXS1dlYlZpZXcg
QC9saW5rIGluc3RhbmNlcy4KICAqLwpAQCAtNTQsOTAgKzU0LDEwOCBAQCBXS19DTEFTU19BVkFJ
TEFCTEUoMTBfMTAsIDhfMCkKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IDogTlNWaWV3CiAjZW5kaWYK
IAotLyohIEBhYnN0cmFjdCBBIGNvcHkgb2YgdGhlIGNvbmZpZ3VyYXRpb24gd2l0aCB3aGljaCB0
aGUgQGxpbmsgV0tXZWJWaWV3IEAvbGluayB3YXMgaW5pdGlhbGl6ZWQuICovCisvKiEgQGFic3Ry
YWN0IEEgY29weSBvZiB0aGUgY29uZmlndXJhdGlvbiB3aXRoIHdoaWNoIHRoZSB3ZWIgdmlldyB3
YXMKKyBpbml0aWFsaXplZC4gKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbjsKIAotLyohIEBhYnN0cmFjdCBUaGUg
dmlldydzIG5hdmlnYXRpb24gZGVsZWdhdGUuICovCisvKiEgQGFic3RyYWN0IFRoZSB3ZWIgdmll
dydzIG5hdmlnYXRpb24gZGVsZWdhdGUuICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgd2Vhaykg
aWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPiBuYXZpZ2F0aW9uRGVsZWdhdGU7CiAKLS8qISBAYWJz
dHJhY3QgVGhlIHZpZXcncyB1c2VyIGludGVyZmFjZSBkZWxlZ2F0ZS4gKi8KKy8qISBAYWJzdHJh
Y3QgVGhlIHdlYiB2aWV3J3MgdXNlciBpbnRlcmZhY2UgZGVsZWdhdGUuICovCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgd2VhaykgaWQgPFdLVUlEZWxlZ2F0ZT4gVUlEZWxlZ2F0ZTsKIAotLyohIEBh
YnN0cmFjdCBUaGUgdmlldydzIGJhY2stZm9yd2FyZCBsaXN0LiAqLworLyohIEBhYnN0cmFjdCBU
aGUgd2ViIHZpZXcncyBiYWNrLWZvcndhcmQgbGlzdC4gKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgV0tCYWNrRm9yd2FyZExpc3QgKmJhY2tGb3J3YXJkTGlzdDsKIAotLyohIEBh
YnN0cmFjdCBSZXR1cm5zIGEgdmlldyBpbml0aWFsaXplZCB3aXRoIHRoZSBzcGVjaWZpZWQgZnJh
bWUgYW5kIGNvbmZpZ3VyYXRpb24uCi0gQHBhcmFtIGZyYW1lIFRoZSBmcmFtZSBmb3IgdGhlIG5l
dyB2aWV3LgotIEBwYXJhbSBjb25maWd1cmF0aW9uIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUg
bmV3IHZpZXcuCi0gQHJlc3VsdCBBbiBpbml0aWFsaXplZCB2aWV3LCBvciBuaWwgaWYgdGhlIG9i
amVjdCBjb3VsZCBub3QgYmUgaW5pdGlhbGl6ZWQuCi0gQGRpc2N1c3Npb24gVGhpcyBpcyBhIGRl
c2lnbmF0ZWQgaW5pdGlhbGl6ZXIuIFlvdSBjYW4gdXNlIEBsaW5rIC1pbml0V2l0aEZyYW1lOiBA
L2xpbmsgdG8KLSBpbml0aWFsaXplIGFuIGluc3RhbmNlIHdpdGggdGhlIGRlZmF1bHQgY29uZmln
dXJhdGlvbi4KLSBUaGUgaW5pdGlhbGl6ZXIgY29waWVzCi0gQGxpbmsgLy9hcHBsZV9yZWYvZG9j
L21ldGhvZHBhcmFtL1dLV2ViVmlldy9pbml0V2l0aEZyYW1lOmNvbmZpZ3VyYXRpb246L2NvbmZp
Z3VyYXRpb24KLSBjb25maWd1cmF0aW9uQC9saW5rLCBzbyBtdXRhdGluZyBpdCBhZnRlciBpbml0
aWFsaXphdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZQotIEBsaW5rIFdLV2ViVmlldyBAL2xpbmsg
aW5zdGFuY2UuCisvKiEgQGFic3RyYWN0IFJldHVybnMgYSB3ZWIgdmlldyBpbml0aWFsaXplZCB3
aXRoIGEgc3BlY2lmaWVkIGZyYW1lIGFuZAorIGNvbmZpZ3VyYXRpb24uCisgQHBhcmFtIGZyYW1l
IFRoZSBmcmFtZSBmb3IgdGhlIG5ldyB3ZWIgdmlldy4KKyBAcGFyYW0gY29uZmlndXJhdGlvbiBU
aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIG5ldyB3ZWIgdmlldy4KKyBAcmVzdWx0IEFuIGluaXRp
YWxpemVkIHdlYiB2aWV3LCBvciBuaWwgaWYgdGhlIG9iamVjdCBjb3VsZCBub3QgYmUKKyBpbml0
aWFsaXplZC4KKyBAZGlzY3Vzc2lvbiBUaGlzIGlzIGEgZGVzaWduYXRlZCBpbml0aWFsaXplci4g
WW91IGNhbiB1c2UKKyBAbGluayAtaW5pdFdpdGhGcmFtZTogQC9saW5rIHRvIGluaXRpYWxpemUg
YW4gaW5zdGFuY2Ugd2l0aCB0aGUgZGVmYXVsdAorIGNvbmZpZ3VyYXRpb24uIFRoZSBpbml0aWFs
aXplciBjb3BpZXMgdGhlIHNwZWNpZmllZCBjb25maWd1cmF0aW9uLCBzbworIG11dGF0aW5nIHRo
ZSBjb25maWd1cmF0aW9uIGFmdGVyIGludm9raW5nIHRoZSBpbml0aWFsaXplciBoYXMgbm8gZWZm
ZWN0Cisgb24gdGhlIHdlYiB2aWV3LgogICovCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFt
ZTooQ0dSZWN0KWZyYW1lIGNvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKilj
b25maWd1cmF0aW9uIFdLX0RFU0lHTkFURURfSU5JVElBTElaRVI7CiAKLS0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29kZXIgV0tfVU5BVkFJTEFCTEU7Ci0KLS8qISBA
YWJzdHJhY3QgTmF2aWdhdGVzIHRvIHRoZSBnaXZlbiBOU1VSTFJlcXVlc3QuCi0gQHBhcmFtIHJl
cXVlc3QgVGhlIE5TVVJMUmVxdWVzdCB0byBuYXZpZ2F0ZSB0by4KKy8qISBAYWJzdHJhY3QgTmF2
aWdhdGVzIHRvIGEgcmVxdWVzdGVkIFVSTC4KKyBAcGFyYW0gcmVxdWVzdCBUaGUgcmVxdWVzdCBz
cGVjaWZ5aW5nIHRoZSBVUkwgdG8gd2hpY2ggdG8gbmF2aWdhdGUuCiAgQHJlc3VsdCBBIG5ldyBu
YXZpZ2F0aW9uIGZvciB0aGUgZ2l2ZW4gcmVxdWVzdC4KICAqLwogLSAoV0tOYXZpZ2F0aW9uICop
bG9hZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Q7CiAKLS8qISBAYWJzdHJhY3QgTmF2
aWdhdGVzIHRvIGFuIGl0ZW0gZnJvbSB0aGUgYmFjay1mb3J3YXJkIGxpc3QgYW5kIHNldHMgaXQg
YXMgdGhlIGN1cnJlbnQgaXRlbS4KLSBAcGFyYW0gaXRlbSBUaGUgaXRlbSB0byBuYXZpZ2F0ZSB0
by4gTXVzdCBiZSBvbmUgb2YgdGhlIGl0ZW1zIGluIHRoZSByZWNlaXZlcidzIGJhY2stZm9yd2Fy
ZCBsaXN0LgotIEByZXN1bHQgQSBuZXcgbmF2aWdhdGlvbiB0byB0aGUgcmVxdWVzdGVkIGl0ZW0s
IG9yIG5pbCBpZiBpdCBpcyB0aGUgY3VycmVudCBpdGVtIG9yIHRoZSBpdGVtIGlzIG5vdCBwYXJ0
IG9mIHRoZSB2aWV3J3MgYmFjay1mb3J3YXJkIGxpc3QuCisvKiEgQGFic3RyYWN0IE5hdmlnYXRl
cyB0byBhbiBpdGVtIGZyb20gdGhlIGJhY2stZm9yd2FyZCBsaXN0IGFuZCBzZXRzIGl0CisgYXMg
dGhlIGN1cnJlbnQgaXRlbS4KKyBAcGFyYW0gaXRlbSBUaGUgaXRlbSB0byB3aGljaCB0byBuYXZp
Z2F0ZS4gTXVzdCBiZSBvbmUgb2YgdGhlIGl0ZW1zIGluIHRoZQorIHdlYiB2aWV3J3MgYmFjay1m
b3J3YXJkIGxpc3QuCisgQHJlc3VsdCBBIG5ldyBuYXZpZ2F0aW9uIHRvIHRoZSByZXF1ZXN0ZWQg
aXRlbSwgb3IgbmlsIGlmIGl0IGlzIGFscmVhZHkKKyB0aGUgY3VycmVudCBpdGVtIG9yIGlzIG5v
dCBwYXJ0IG9mIHRoZSB3ZWIgdmlldydzIGJhY2stZm9yd2FyZCBsaXN0LgogIEBzZWVhbHNvIGJh
Y2tGb3J3YXJkTGlzdAogICovCiAtIChXS05hdmlnYXRpb24gKilnb1RvQmFja0ZvcndhcmRMaXN0
SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbTsKIAotLyohIEBhYnN0cmFjdCBUaGUg
d2VicGFnZSB0aXRsZS4gQGxpbmsgV0tXZWJWaWV3IEAvbGluayBpcyBLVk8tY29tcGxpYW50IGZv
ciB0aGlzIHByb3BlcnR5LgorLyohIEBhYnN0cmFjdCBUaGUgcGFnZSB0aXRsZS4KKyBAZGlzY3Vz
c2lvbiBAbGluayBXS1dlYlZpZXcgQC9saW5rIGlzIGtleS12YWx1ZSBvYnNlcnZpbmcgKEtWTykg
Y29tcGxpYW50CisgZm9yIHRoaXMgcHJvcGVydHkuCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgTlNTdHJpbmcgKnRpdGxlOwogCi0vKiEgQGFic3RyYWN0IFRoZSBhY3RpdmUg
VVJMLiBAbGluayBXS1dlYlZpZXcgQC9saW5rIGlzIEtWTy1jb21wbGlhbnQgZm9yIHRoaXMgcHJv
cGVydHkuCi0gQGRpc2N1c3Npb24gVGhpcyBpcyB0aGUgVVJMIHRoYXQgc2hvdWxkIGJlIHJlZmxl
Y3RlZCBpbiB0aGUgdXNlciBpbnRlcmZhY2UuCisvKiEgQGFic3RyYWN0IFRoZSBhY3RpdmUgVVJM
LgorIEBkaXNjdXNzaW9uIFRoaXMgaXMgdGhlIFVSTCB0aGF0IHNob3VsZCBiZSByZWZsZWN0ZWQg
aW4gdGhlIHVzZXIKKyBpbnRlcmZhY2UuCisgQGxpbmsgV0tXZWJWaWV3IEAvbGluayBpcyBrZXkt
dmFsdWUgb2JzZXJ2aW5nIChLVk8pIGNvbXBsaWFudCBmb3IgdGhpcworIHByb3BlcnR5LgogICov
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMICpVUkw7CiAKLS8qISBAYWJz
dHJhY3QgV2hldGhlciB0aGUgdmlldyBpcyBsb2FkaW5nIGNvbnRlbnQuIEBsaW5rIFdLV2ViVmll
dyBAL2xpbmsgaXMgS1ZPLWNvbXBsaWFudCBmb3IgdGhpcwotIHByb3BlcnR5LiAqLworLyohIEBh
YnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB2aWV3IGlzIGN1
cnJlbnRseQorIGxvYWRpbmcgY29udGVudC4KKyBAZGlzY3Vzc2lvbiBAbGluayBXS1dlYlZpZXcg
QC9saW5rIGlzIGtleS12YWx1ZSBvYnNlcnZpbmcgKEtWTykgY29tcGxpYW50CisgZm9yIHRoaXMg
cHJvcGVydHkuCisgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlz
TG9hZGluZykgQk9PTCBsb2FkaW5nOwogCi0vKiEgQGFic3RyYWN0IEFuIGVzdGltYXRlIG9mIHRo
ZSBmcmFjdGlvbiBjb21wbGV0ZSBmb3IgYSBkb2N1bWVudCBsb2FkLiBAbGluayBXS1dlYlZpZXcg
QC9saW5rIGlzCi0gS1ZPLWNvbXBsaWFudCBmb3IgdGhpcyBwcm9wZXJ0eS4KLSBAZGlzY3Vzc2lv
biBUaGlzIHZhbHVlIHdpbGwgcmFuZ2UgZnJvbSAwIHRvIDEgYW5kLCBvbmNlIGEgbG9hZCBjb21w
bGV0ZXMsIHdpbGwgcmVtYWluIGF0IDEuMAotIHVudGlsIGEgbmV3IGxvYWQgc3RhcnRzLCBhdCB3
aGljaCBwb2ludCBpdCB3aWxsIGJlIHJlc2V0IHRvIDAuIFRoZSB2YWx1ZSBpcyBhbiBlc3RpbWF0
ZSBiYXNlZAotIG9uIHRoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMgZXhwZWN0ZWQgdG8gYmUgcmVj
ZWl2ZWQgZm9yIGEgZG9jdW1lbnQsCi0gaW5jbHVkaW5nIGFsbCBpdHMgcG9zc2libGUgc3VicmVz
b3VyY2VzLgorLyohIEBhYnN0cmFjdCBBbiBlc3RpbWF0ZSBvZiB0aGUgZnJhY3Rpb24gY29tcGxl
dGUgZm9yIGEgbmF2aWdhdGlvbi4KKyBAZGlzY3Vzc2lvbiBUaGlzIHZhbHVlIHJhbmdlcyBmcm9t
IDAuMCB0byAxLjAgYmFzZWQgb24gdGhlIHRvdGFsIG51bWJlciBvZgorIGJ5dGVzIGV4cGVjdGVk
IHRvIGJlIHJlY2VpdmVkLCBpbmNsdWRpbmcgdGhlIG1haW4gZG9jdW1lbnQgYW5kIGFsbCBvZiBp
dHMKKyBwb3RlbnRpYWwgc3VicmVzb3VyY2VzLiBBZnRlciBhIG5hdmlnYXRpb24gY29tcGxldGVz
LCB0aGUgdmFsdWUgcmVtYWlucyBhdCAxLjAKKyB1bnRpbCBhIG5ldyBuYXZpZ2F0aW9uIHN0YXJ0
cywgYXQgd2hpY2ggcG9pbnQgaXQgaXMgcmVzZXQgdG8gMC4wLgorIEBsaW5rIFdLV2ViVmlldyBA
L2xpbmsgaXMga2V5LXZhbHVlIG9ic2VydmluZyAoS1ZPKSBjb21wbGlhbnQgZm9yIHRoaXMKKyBw
cm9wZXJ0eS4KICAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBkb3VibGUgZXN0
aW1hdGVkUHJvZ3Jlc3M7CiAKLS8qISBAYWJzdHJhY3QgV2hldGhlciBhbGwgb2YgdGhlIHJlc291
cmNlcyBvbiB0aGUgd2VicGFnZSBoYXZlIGJlZW4gbG9hZGVkIG92ZXIgc2VjdXJlbHkgZW5jcnlw
dGVkIGNvbm5lY3Rpb25zLgotIEBsaW5rIFdLV2ViVmlldyBAL2xpbmsgaXMgS1ZPLWNvbXBsaWFu
dCBmb3IgdGhpcyBwcm9wZXJ0eS4KKy8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGlj
YXRpbmcgd2hldGhlciBhbGwgcmVzb3VyY2VzIG9uIHRoZSBwYWdlCisgaGF2ZSBiZWVuIGxvYWRl
ZCBvdmVyIHNlY3VyZWx5IGVuY3J5cHRlZCBjb25uZWN0aW9ucy4KKyBAZGlzY3Vzc2lvbiBAbGlu
ayBXS1dlYlZpZXcgQC9saW5rIGlzIGtleS12YWx1ZSBvYnNlcnZpbmcgKEtWTykgY29tcGxpYW50
CisgZm9yIHRoaXMgcHJvcGVydHkuCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgQk9PTCBoYXNPbmx5U2VjdXJlQ29udGVudDsKIAotLyohIEBhYnN0cmFjdCBXaGV0aGVyIHRo
ZXJlJ3MgYSBiYWNrIGl0ZW0gaW4gdGhlIGJhY2stZm9yd2FyZCBsaXN0IHRoYXQgY2FuIGJlIG5h
dmlnYXRlZCB0by4KKy8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hl
dGhlciB0aGVyZSBpcyBhIGJhY2sgaXRlbSBpbgorIHRoZSBiYWNrLWZvcndhcmQgbGlzdCB0aGF0
IGNhbiBiZSBuYXZpZ2F0ZWQgdG8uCiAgQHNlZWFsc28gYmFja0ZvcndhcmRMaXN0LgogICovCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgY2FuR29CYWNrOwogCi0vKiEgQGFi
c3RyYWN0IFdoZXRoZXIgdGhlcmUncyBhIGZvcndhcmQgaXRlbSBpbiB0aGUgYmFjay1mb3J3YXJk
IGxpc3QgdGhhdCBjYW4gYmUgbmF2aWdhdGVkIHRvLgorLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4g
dmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZXJlIGlzIGEgZm9yd2FyZCBpdGVtIGluCisgdGhl
IGJhY2stZm9yd2FyZCBsaXN0IHRoYXQgY2FuIGJlIG5hdmlnYXRlZCB0by4KICBAc2VlYWxzbyBi
YWNrRm9yd2FyZExpc3QuCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9P
TCBjYW5Hb0ZvcndhcmQ7CiAKIC8qISBAYWJzdHJhY3QgTmF2aWdhdGVzIHRvIHRoZSBiYWNrIGl0
ZW0gaW4gdGhlIGJhY2stZm9yd2FyZCBsaXN0LgotIEByZXN1bHQgQSBuZXcgbmF2aWdhdGlvbiB0
byB0aGUgcmVxdWVzdGVkIGl0ZW0sIG9yIG5pbCBpZiB0aGVyZSBpcyBubyBiYWNrIGl0ZW0gaW4g
dGhlIGJhY2stZm9yd2FyZCBsaXN0LgorIEByZXN1bHQgQSBuZXcgbmF2aWdhdGlvbiB0byB0aGUg
cmVxdWVzdGVkIGl0ZW0sIG9yIG5pbCBpZiB0aGVyZSBpcyBubyBiYWNrCisgaXRlbSBpbiB0aGUg
YmFjay1mb3J3YXJkIGxpc3QuCiAgKi8KIC0gKFdLTmF2aWdhdGlvbiAqKWdvQmFjazsKIAogLyoh
IEBhYnN0cmFjdCBOYXZpZ2F0ZXMgdG8gdGhlIGZvcndhcmQgaXRlbSBpbiB0aGUgYmFjay1mb3J3
YXJkIGxpc3QuCi0gQHJlc3VsdCBBIG5ldyBuYXZpZ2F0aW9uIHRvIHRoZSByZXF1ZXN0ZWQgaXRl
bSwgb3IgbmlsIGlmIHRoZXJlIGlzIG5vIGZvcndhcmQgaXRlbSBpbiB0aGUgYmFjay1mb3J3YXJk
IGxpc3QuCisgQHJlc3VsdCBBIG5ldyBuYXZpZ2F0aW9uIHRvIHRoZSByZXF1ZXN0ZWQgaXRlbSwg
b3IgbmlsIGlmIHRoZXJlIGlzIG5vCisgZm9yd2FyZCBpdGVtIGluIHRoZSBiYWNrLWZvcndhcmQg
bGlzdC4KICAqLwogLSAoV0tOYXZpZ2F0aW9uICopZ29Gb3J3YXJkOwogCkBAIC0xNDYsNyArMTY0
LDggQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAgKi8KIC0gKFdLTmF2aWdhdGlv
biAqKXJlbG9hZDsKIAotLyohIEBhYnN0cmFjdCBSZWxvYWRzIHRoZSBjdXJyZW50IHBhZ2UsIHBl
cmZvcm1pbmcgZW5kLXRvLWVuZCByZXZhbGlkYXRpb24gdXNpbmcgY2FjaGUtdmFsaWRhdGluZyBj
b25kaXRpb25hbHMgaWYgcG9zc2libGUuCisvKiEgQGFic3RyYWN0IFJlbG9hZHMgdGhlIGN1cnJl
bnQgcGFnZSwgcGVyZm9ybWluZyBlbmQtdG8tZW5kIHJldmFsaWRhdGlvbgorIHVzaW5nIGNhY2hl
LXZhbGlkYXRpbmcgY29uZGl0aW9uYWxzIGlmIHBvc3NpYmxlLgogIEByZXN1bHQgQSBuZXcgbmF2
aWdhdGlvbiByZXByZXNlbnRpbmcgdGhlIHJlbG9hZC4KICAqLwogLSAoV0tOYXZpZ2F0aW9uICop
cmVsb2FkRnJvbU9yaWdpbjsKQEAgLTE1NSw3ICsxNzQsOSBAQCBXS19DTEFTU19BVkFJTEFCTEUo
MTBfMTAsIDhfMCkKICAqLwogLSAodm9pZClzdG9wTG9hZGluZzsKIAotLyohIEBhYnN0cmFjdCBX
aGV0aGVyIGhvcml6b250YWwgc3dpcGUgZ2VzdHVyZXMgd2lsbCB0cmlnZ2VyIGJhY2stZm9yd2Fy
ZCBsaXN0IG5hdmlnYXRpb25zLiBEZWZhdWx0cyB0byBOTy4KKy8qISBAYWJzdHJhY3QgQSBCb29s
ZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBob3Jpem9udGFsIHN3aXBlIGdlc3R1cmVzCisg
d2lsbCB0cmlnZ2VyIGJhY2stZm9yd2FyZCBsaXN0IG5hdmlnYXRpb25zLgorIEBkaXNjdXNzaW9u
IFRoZSBkZWZhdWx0IHZhbHVlIGlzIE5PLgogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBhbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlczsKIApAQCAtMTY2LDE3ICsxODcs
MjIgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAjZW5kaWYKIAogI2lmICFUQVJH
RVRfT1NfSVBIT05FCi0vKiBAYWJzdHJhY3QgV2hldGhlciBtYWduaWZ5IGdlc3R1cmVzIHdpbGwg
Y2hhbmdlIHRoZSBXS1dlYlZpZXcgbWFnbmlmaWNhdGlvbi4gRGVmYXVsdHMgdG8gTk8uCi0gQGRp
c2N1c3Npb24gSXQgaXMgcG9zc2libGUgdG8gc2V0IHRoZSBtYWduaWZpY2F0aW9uIHByb3BlcnR5
IGV2ZW4gaWYgYWxsb3dzTWFnbmlmeSBpcyBzZXQgdG8gTk8uCisvKiBAYWJzdHJhY3QgQSBCb29s
ZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBtYWduaWZ5IGdlc3R1cmVzIHdpbGwKKyBjaGFu
Z2UgdGhlIHdlYiB2aWV3J3MgbWFnbmlmaWNhdGlvbi4KKyBAZGlzY3Vzc2lvbiBJdCBpcyBwb3Nz
aWJsZSB0byBzZXQgdGhlIG1hZ25pZmljYXRpb24gcHJvcGVydHkgZXZlbiBpZgorIGFsbG93c01h
Z25pZmljYXRpb24gaXMgc2V0IHRvIE5PLgorIFRoZSBkZWZhdWx0IHZhbHVlIGlzIE5PLgogICov
CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NNYWduaWZpY2F0aW9uOwogCi0vKiBA
YWJzdHJhY3QgVGhlIGFtb3VudCBieSB3aGljaCB0aGUgd2VicGFnZSBjb250ZW50IGlzIGN1cnJl
bnRseSBzY2FsZWQuIERlZmF1bHRzIHRvIDEuMC4KKy8qIEBhYnN0cmFjdCBUaGUgZmFjdG9yIGJ5
IHdoaWNoIHRoZSBwYWdlIGNvbnRlbnQgaXMgY3VycmVudGx5IHNjYWxlZC4KKyBAZGlzY3Vzc2lv
biBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxLjAuCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBD
R0Zsb2F0IG1hZ25pZmljYXRpb247CiAKLS8qIEBhYnN0cmFjdCBNYWduaWZ5IHRoZSB3ZWJwYWdl
IGNvbnRlbnQgYnkgdGhlIGdpdmVuIGFtb3VudCBhbmQgY2VudGVyIHRoZSByZXN1bHQgb24gdGhl
IGdpdmVuIHBvaW50LgotICogQHBhcmFtIG1hZ25pZmljYXRpb24gVGhlIGFtb3VudCBieSB3aGlj
aCB0byBtYWduaWZ5IHRoZSBjb250ZW50LgorLyogQGFic3RyYWN0IFNjYWxlcyB0aGUgcGFnZSBj
b250ZW50IGJ5IGEgc3BlY2lmaWVkIGZhY3RvciBhbmQgY2VudGVycyB0aGUKKyByZXN1bHQgb24g
YSBzcGVjaWZpZWQgcG9pbnQuCisgKiBAcGFyYW0gbWFnbmlmaWNhdGlvbiBUaGUgZmFjdG9yIGJ5
IHdoaWNoIHRvIHNjYWxlIHRoZSBjb250ZW50LgogICogQHBhcmFtIHBvaW50IFRoZSBwb2ludCAo
aW4gdmlldyBzcGFjZSkgb24gd2hpY2ggdG8gY2VudGVyIG1hZ25pZmljYXRpb24uCiAgKi8KIC0g
KHZvaWQpc2V0TWFnbmlmaWNhdGlvbjooQ0dGbG9hdCltYWduaWZpY2F0aW9uIGNlbnRlcmVkQXRQ
b2ludDooQ0dQb2ludClwb2ludDsKQEAgLTE4OSwxMiArMjE1LDE0IEBAIFdLX0NMQVNTX0FWQUlM
QUJMRSgxMF8xMCwgOF8wKQogCiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoV0tJQkFjdGlvbnMpIDxO
U1VzZXJJbnRlcmZhY2VWYWxpZGF0aW9ucz4KIAotLyohIEBhYnN0cmFjdCBBY3Rpb24gbWV0aG9k
IHRoYXQgbmF2aWdhdGVzIHRvIHRoZSBiYWNrIGl0ZW0gaW4gdGhlIGJhY2stZm9yd2FyZCBsaXN0
LgorLyohIEBhYnN0cmFjdCBBY3Rpb24gbWV0aG9kIHRoYXQgbmF2aWdhdGVzIHRvIHRoZSBiYWNr
IGl0ZW0gaW4gdGhlCisgYmFjay1mb3J3YXJkIGxpc3QuCiAgQHBhcmFtIHNlbmRlciBUaGUgb2Jq
ZWN0IHRoYXQgc2VudCB0aGlzIG1lc3NhZ2UuCiAgKi8KIC0gKElCQWN0aW9uKWdvQmFjazooaWQp
c2VuZGVyOwogCi0vKiEgQGFic3RyYWN0IEFjdGlvbiBtZXRob2QgdGhhdCBuYXZpZ2F0ZXMgdG8g
dGhlIGZvcndhcmQgaXRlbSBpbiB0aGUgYmFjay1mb3J3YXJkIGxpc3QuCisvKiEgQGFic3RyYWN0
IEFjdGlvbiBtZXRob2QgdGhhdCBuYXZpZ2F0ZXMgdG8gdGhlIGZvcndhcmQgaXRlbSBpbiB0aGUK
KyBiYWNrLWZvcndhcmQgbGlzdC4KICBAcGFyYW0gc2VuZGVyIFRoZSBvYmplY3QgdGhhdCBzZW50
IHRoaXMgbWVzc2FnZS4KICAqLwogLSAoSUJBY3Rpb24pZ29Gb3J3YXJkOihpZClzZW5kZXI7CkBA
IC0yMDQsMTMgKzIzMiwxNCBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKICAqLwog
LSAoSUJBY3Rpb24pcmVsb2FkOihpZClzZW5kZXI7CiAKLS8qISBAYWJzdHJhY3QgQWN0aW9uIG1l
dGhvZCB0aGF0IHJlbG9hZHMgdGhlIGN1cnJlbnQgcGFnZSwgcGVyZm9ybWluZyBlbmQtdG8tZW5k
IHJldmFsaWRhdGlvbiB1c2luZyAKLSBjYWNoZS12YWxpZGF0aW5nIGNvbmRpdGlvbmFscyBpZiBw
b3NzaWJsZS4KKy8qISBAYWJzdHJhY3QgQWN0aW9uIG1ldGhvZCB0aGF0IHJlbG9hZHMgdGhlIGN1
cnJlbnQgcGFnZSwgcGVyZm9ybWluZworIGVuZC10by1lbmQgcmV2YWxpZGF0aW9uIHVzaW5nIGNh
Y2hlLXZhbGlkYXRpbmcgY29uZGl0aW9uYWxzIGlmIHBvc3NpYmxlLgogIEBwYXJhbSBzZW5kZXIg
VGhlIG9iamVjdCB0aGF0IHNlbnQgdGhpcyBtZXNzYWdlLgogICovCiAtIChJQkFjdGlvbilyZWxv
YWRGcm9tT3JpZ2luOihpZClzZW5kZXI7CiAKLS8qISBAYWJzdHJhY3QgQWN0aW9uIG1ldGhvZCB0
aGF0IHN0b3BzIGxvYWRpbmcgYWxsIHJlc291cmNlcyBvbiB0aGUgY3VycmVudCBwYWdlLgorLyoh
IEBhYnN0cmFjdCBBY3Rpb24gbWV0aG9kIHRoYXQgc3RvcHMgbG9hZGluZyBhbGwgcmVzb3VyY2Vz
IG9uIHRoZSBjdXJyZW50CisgcGFnZS4KICBAcGFyYW0gc2VuZGVyIFRoZSBvYmplY3QgdGhhdCBz
ZW50IHRoaXMgbWVzc2FnZS4KICAqLwogLSAoSUJBY3Rpb24pc3RvcExvYWRpbmc6KGlkKXNlbmRl
cjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oCShyZXZpc2lvbiAxNjk0NTkpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaAko
d29ya2luZyBjb3B5KQpAQCAtMzMsMjUgKzMzLDI2IEBACiBAY2xhc3MgV0tQcm9jZXNzUG9vbDsK
IEBjbGFzcyBXS1VzZXJDb250ZW50Q29udHJvbGxlcjsKIAotLyohIEEgQGxpbmsgV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBAL2xpbmsgaXMgYSBjb2xsZWN0aW9uIG9mIHByb3BlcnRpZXMgdXNlZCB0
byBpbml0aWFsaXplIGEgd2ViCi0gdmlldy4KKy8qISBBIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24g
b2JqZWN0IGlzIGEgY29sbGVjdGlvbiBvZiBwcm9wZXJ0aWVzIHdpdGgKKyB3aGljaCB0byBpbml0
aWFsaXplIGEgd2ViIHZpZXcuCiAgQGhlbHBzIENvbnRhaW5zIHByb3BlcnRpZXMgdXNlZCB0byBj
b25maWd1cmUgYSBAbGluayBXS1dlYlZpZXcgQC9saW5rLgogICovCiBXS19DTEFTU19BVkFJTEFC
TEUoMTBfMTAsIDhfMCkKIEBpbnRlcmZhY2UgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiA6IE5TT2Jq
ZWN0IDxOU0NvcHlpbmc+CiAKLS8qISBAYWJzdHJhY3QgVGhlIHByb2Nlc3MgcG9vbCBmcm9tIHdo
aWNoIHRoZSBXZWIgQ29udGVudCBwcm9jZXNzIGZvciB0aGUgdmlldyBzaG91bGQgY29tZS4KLSBA
ZGlzY3Vzc2lvbiBXaGVuIHRoZSBAbGluayBXS1dlYlZpZXcgQC9saW5rIGlzIGluaXRpYWxpemVk
IHdpdGggdGhlIGNvbmZpZ3VyYXRpb24sIGEgbmV3IFdlYgotIENvbnRlbnQgcHJvY2VzcyBmcm9t
IHRoZSBzcGVjaWZpZWQgcG9vbCB3aWxsIGJlIGNyZWF0ZWQgZm9yIGl0LCBvciBhbiBleGlzdGlu
ZyBwcm9jZXNzIGluCisvKiEgQGFic3RyYWN0IFRoZSBwcm9jZXNzIHBvb2wgZnJvbSB3aGljaCB0
byBvYnRhaW4gdGhlIHZpZXcncyB3ZWIgY29udGVudAorIHByb2Nlc3MuCisgQGRpc2N1c3Npb24g
V2hlbiBhIHdlYiB2aWV3IGlzIGluaXRpYWxpemVkLCBhIG5ldyB3ZWIgY29udGVudCBwcm9jZXNz
Cisgd2lsbCBiZSBjcmVhdGVkIGZvciBpdCBmcm9tIHRoZSBzcGVjaWZpZWQgcG9vbCwgb3IgYW4g
ZXhpc3RpbmcgcHJvY2VzcyBpbgogIHRoYXQgcG9vbCB3aWxsIGJlIHVzZWQuCiAqLwogQHByb3Bl
cnR5IChub25hdG9taWMsIHN0cm9uZykgV0tQcm9jZXNzUG9vbCAqcHJvY2Vzc1Bvb2w7CiAKLS8q
ISBAYWJzdHJhY3QgVGhlIHByZWZlcmVuY2VzIHRoYXQgc2hvdWxkIGJlIHVzZWQgYnkgd2ViIHZp
ZXdzIGNyZWF0ZWQgd2l0aCB0aGlzIGNvbmZpZ3VyYXRpb24uCisvKiEgQGFic3RyYWN0IFRoZSBw
cmVmZXJlbmNlIHNldHRpbmdzIHRvIGJlIHVzZWQgYnkgdGhlIHdlYiB2aWV3LgogKi8KIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIFdLUHJlZmVyZW5jZXMgKnByZWZlcmVuY2VzOwogCi0v
KiEgQGFic3RyYWN0IFRoZSB1c2VyIGNvbnRlbnQgY29udHJvbGxlciB0aGF0IHNob3VsZCBiZSB1
c2VkIGJ5IHdlYiB2aWV3cyBjcmVhdGVkIHdpdGggdGhpcyBjb25maWd1cmF0aW9uLgorLyohIEBh
YnN0cmFjdCBUaGUgdXNlciBjb250ZW50IGNvbnRyb2xsZXIgdG8gYXNzb2NpYXRlIHdpdGggdGhl
IHdlYiB2aWV3LgogKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIFdLVXNlckNvbnRl
bnRDb250cm9sbGVyICp1c2VyQ29udGVudENvbnRyb2xsZXI7CiAK
</data>
<flag name="review"
          id="256794"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>