<?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>168273</bug_id>
          
          <creation_ts>2017-02-13 20:59:50 -0800</creation_ts>
          <short_desc>Web Inspector: RTL: Inspector window should dock to the left when using RTL layout direction</short_desc>
          <delta_ts>2017-02-17 16:42:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>agomez</cc>
    
    <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1276549</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-02-13 20:59:50 -0800</bug_when>
    <thetext>&lt;rdar://problem/29949325&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278392</commentid>
    <comment_count>1</comment_count>
      <attachid>301975</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-02-17 13:08:00 -0800</bug_when>
    <thetext>Created attachment 301975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278401</commentid>
    <comment_count>2</comment_count>
      <attachid>301978</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-02-17 13:17:09 -0800</bug_when>
    <thetext>Created attachment 301978
Screen recording - RTL and LTR dock to side

Things Tested:

- Opens docked to left with correct dimensions
- Can drag bigger and smaller
- Won&apos;t drag if cursor goes beyond the resizer due to min/max size
- inspected and inspector views have correct frames when changing dock side
- changing layout direction will flip dock side if necessary
- Dock to Side button has layout direction-based icon and behavior</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278414</commentid>
    <comment_count>3</comment_count>
      <attachid>301975</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-02-17 13:38:19 -0800</bug_when>
    <thetext>Comment on attachment 301975
Patch

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

Clicking

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:365
&gt; +    let dockToSideCallback = WebInspector.resolvedLayoutDirection() === WebInspector.LayoutDirection.RTL ? this._dockLeft : this._dockRight;

Why not just use a single callback, which checks WebInspector.resolvedLayoutDirection()?

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:1585
&gt; +WebInspector._dockLeft = function(event)

See comment above:

WebInspector._dockSide = function(event)
{
    let dockSide = WebInspector.resolvedLayoutDirection() === WebInspector.LayoutDirection.RTL ? WebInspector.DockConfiguration.Left : WebInspector.DockConfiguration.Right;
    InspectorFrontendHost.requestSetDockSide(dockSide);
};</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278422</commentid>
    <comment_count>4</comment_count>
      <attachid>301975</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-02-17 13:52:44 -0800</bug_when>
    <thetext>Comment on attachment 301975
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:2186
&gt; +        this._dockLeft();

Oops! Please disregard previous comment regarding `_dockSide`.

&gt; Source/WebInspectorUI/UserInterface/Views/Main.css:63
&gt; +body.docked.right {

Should be `body.docked.left`

&gt; Source/WebInspectorUI/UserInterface/Views/Main.css:99
&gt; +    top: 0;

Nit: position and top can be moved to the `body.docked #docked-resizer` rule.

&gt; Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm:574
&gt; +        CGFloat inspectorWidth = InspectorFrontendClientLocal::constrainedAttachedWindowWidth(currentDimension, parentWidth);

Nit: add a newline to be consistent with previous case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278442</commentid>
    <comment_count>5</comment_count>
      <attachid>301989</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-02-17 14:29:38 -0800</bug_when>
    <thetext>Created attachment 301989
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278456</commentid>
    <comment_count>6</comment_count>
      <attachid>301989</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-02-17 14:49:51 -0800</bug_when>
    <thetext>Comment on attachment 301989
Patch v2

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278474</commentid>
    <comment_count>7</comment_count>
      <attachid>301989</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-17 15:15:14 -0800</bug_when>
    <thetext>Comment on attachment 301989
Patch v2

Rejecting attachment 301989 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 301989, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
    -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 212580 = 7ef2ceefa819efca36ab89fbad9450c8d691ca1f
r212581 = eb489244b684d49c487e3c463b534d5fb7c4ec55
r212582 = b3540266eaebafedf8ed23a3be655a616f881b98
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.webkit.org/results/3145626</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278505</commentid>
    <comment_count>8</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-02-17 16:42:08 -0800</bug_when>
    <thetext>Committed r212597: &lt;http://trac.webkit.org/changeset/212597&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301975</attachid>
            <date>2017-02-17 13:08:00 -0800</date>
            <delta_ts>2017-02-17 14:29:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168273-20170217130522.patch</filename>
            <type>text/plain</type>
            <size>28983</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGIwMjMzYjYwNDExNThh
YWQyYzg2MDA3MzhmOWFiYzBkODk3ZWYzOC4uNTE0NDMwYzEyZjkzNzFhNDZhYmY2ZjFhZTc0YmUw
ZDFmOWRhZjhmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTAyLTE3ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJUTDog
SW5zcGVjdG9yIHdpbmRvdyBzaG91bGQgZG9jayB0byB0aGUgbGVmdCB3aGVuIHVzaW5nIFJUTCBs
YXlvdXQgZGlyZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjgyNzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5OTQ5MzI1PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0aGUgYWJpbGl0
eSB0byBkb2NrIFdlYiBJbnNwZWN0b3IgdG8gdGhlIGxlZnQgb2YgdGhlIGluc3BlY3RlZCB2aWV3
LgorICAgICAgICBUaGUgZnJvbnRlbmQgZGVjaWRlcyB3aGV0aGVyIHRoZSBEb2NrIHRvIFNpZGUg
YnV0dG9uIGRvY2tzIGxlZnQgb3IgcmlnaHQKKyAgICAgICAgYmFzZWQgb24gdGhlIGN1cnJlbnQg
bGF5b3V0IGRpcmVjdGlvbi4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6
OnNldEF0dGFjaGVkV2luZG93KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kSG9zdDo6cmVx
dWVzdFNldERvY2tTaWRlKToKKwogMjAxNy0wMi0xNiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJz
Y2FAYXBwbGUuY29tPgogCiAgICAgICAgIFNldCB0aGUgREhUTUwgZHJhZyBpbWFnZSBpbiB0aGUg
REhUTUwgdHlwZSBjaGVjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggZDNiZjZiYmFkYTc2
MjEzNDYwZTA3NWY2ZDAyOWYyMjY3ZmJlNmUwNy4uZDY0MTk2ZmQzMTRiNTRhMGU4ODkwYzM2MTM1
MGM3NGNiYzJkYTFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAK
KzIwMTctMDItMTcgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogUlRMOiBJbnNwZWN0b3Igd2luZG93IHNob3VsZCBkb2NrIHRvIHRoZSBsZWZ0
IHdoZW4gdXNpbmcgUlRMIGxheW91dCBkaXJlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODI3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
Mjk5NDkzMjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIHRoZSBhYmlsaXR5IHRvIGRvY2sgV2ViIEluc3BlY3RvciB0byB0aGUgbGVmdCBvZiB0
aGUgaW5zcGVjdGVkIHZpZXcuCisgICAgICAgIFRoZSBmcm9udGVuZCBkZWNpZGVzIHdoZXRoZXIg
dGhlIERvY2sgdG8gU2lkZSBidXR0b24gZG9ja3MgbGVmdCBvciByaWdodAorICAgICAgICBiYXNl
ZCBvbiB0aGUgY3VycmVudCBsYXlvdXQgZGlyZWN0aW9uLgorCisgICAgICAgICogTG9jYWxpemF0
aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvQmFzZS9NYWluLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmNvbnRlbnRMb2FkZWQpOgor
ICAgICAgICBSZW5hbWUgdGhlICJEb2NrIHRvIFJpZ2h0IiBidXR0b24gdG8gIkRvY2sgdG8gU2lk
ZSIgaW5zdGVhZC4gSXQncyBlYXNpZXIgdG8ganVzdAorICAgICAgICBoYXZlIG9uZSBidXR0b24g
dGhhbiB0byB0cnkgYW5kIGNvbmRpdGlvbmFsbHkgaGlkZSBvbmUgb3IgdGhlIG90aGVyIGJhc2Vk
IG9uCisgICAgICAgIHRoZSBsYXlvdXQgZGlyZWN0aW9uLiBDaGFuZ2UgdGhlIGRvY2sgY2FsbGJh
Y2sgYW5kIHRoZSBpY29uIHVzZWQgZm9yIHRoZSBidXR0b24KKyAgICAgICAgZGVwZW5kaW5nIG9u
IGxheW91dCBkaXJlY3Rpb24uCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5yZXNvbHZlZExheW91
dERpcmVjdGlvbik6CisgICAgICAgIFJlZmFjdG9yIGdldExheW91dERpcmVjdGlvbigpIHRvIHJl
c29sdmVkTGF5b3V0RGlyZWN0aW9uKCkgc28gY2FsbGVycyBnZXQgYmFjaworICAgICAgICBlaXRo
ZXIgImx0ciIgb3IgInJ0bCIuCisKKyAgICAgICAgRmxpcCB0aGUgZG9jayBzaWRlIGlmIGxheW91
dCBkaXJlY3Rpb24gY2hhbmdlcyB3aGlsZSBkb2NrZWQgdG8gdGhlIHNpZGUuCisKKyAgICAgICAg
QWRqdXN0IHZhcmlvdXMgY29kZSBwYXRocyB0byBhY2NvdW50IGZvciB0aGUgZXhpc3Rpbmcgb2Yg
bGVmdCBkb2NraW5nLiBJbiBwYXJ0aWN1bGFyLAorICAgICAgICByZXNpemUgcmVqZWN0aW9uIG5l
ZWRzIHNwZWNpYWwtY2FzaW5nIGZvciByZXNpemluZyBsZWZ0d2FyZCBmcm9tIGJleW9uZCB0aGUg
cmlnaHQgc2lkZQorICAgICAgICBvZiB0aGUgSW5zcGVjdG9yIHZpZXcgd2hlbiBpdCBpcyBkb2Nr
ZWQgdG8gdGhlIGxlZnQuIEltcHJvdmUgcmVsYXRlZCBjb21tZW50cyBzaW5jZSBpdAorICAgICAg
ICB0b29rIG1lIGFuIHVuYmVsaWV2YWJsZSBhbW91bnQgb2YgdGltZSB0byB1bmRlcnN0YW5kIHdo
YXQgdGhpcyBjb2RlIGlzIHN1cHBvc2VkIHRvIGRvLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9NYWluLmNzczoKKyAgICAgICAgKGJvZHkuZG9ja2VkLnJpZ2h0KToKKyAgICAgICAg
KGJvZHkuZG9ja2VkLmxlZnQgI2RvY2tlZC1yZXNpemVyKToKKyAgICAgICAgKGJvZHkuZG9ja2Vk
Om1hdGNoZXMoLnJpZ2h0LCAubGVmdCkgI25hdmlnYXRpb24tc2lkZWJhci5jb2xsYXBzZWQgPiAu
cmVzaXplcik6CisgICAgICAgIChib2R5LmRvY2tlZC5yaWdodCAjbmF2aWdhdGlvbi1zaWRlYmFy
LmNvbGxhcHNlZCA+IC5yZXNpemVyKTogRGVsZXRlZC4KKyAgICAgICAgQWRkIC5kb2NrZWQubGVm
dCBhbmFsb2d1ZXMgdG8gcnVsZXMgZm9yIC5kb2NrZWQucmlnaHQuCisKIDIwMTctMDItMTYgIEJy
aWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRk
IERlYnVnVUkgc2V0dGluZyB0byBtYW51YWxseSBvdmVycmlkZSBVSSBsYXlvdXQgZGlyZWN0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggOWIxOWI5Y2NiMTRkOGE5NGM2OTYxNzFkOTU3N2VmNzQwOWVmNDFhYi4u
MmI0MzQ0MDBmNmJmMTkzMmIxOGQ2N2E0ZWFkNTAwODhhMTY3Yjk3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM3IEBACisyMDE3LTAyLTE3ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJUTDogSW5zcGVjdG9yIHdpbmRvdyBzaG91bGQgZG9j
ayB0byB0aGUgbGVmdCB3aGVuIHVzaW5nIFJUTCBsYXlvdXQgZGlyZWN0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgyNzMKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI5OTQ5MzI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCB0aGUgYWJpbGl0eSB0byBkb2NrIFdlYiBJbnNwZWN0b3IgdG8g
dGhlIGxlZnQgb2YgdGhlIGluc3BlY3RlZCB2aWV3LgorICAgICAgICBUaGUgZnJvbnRlbmQgZGVj
aWRlcyB3aGV0aGVyIHRoZSBEb2NrIHRvIFNpZGUgYnV0dG9uIGRvY2tzIGxlZnQgb3IgcmlnaHQK
KyAgICAgICAgYmFzZWQgb24gdGhlIGN1cnJlbnQgbGF5b3V0IGRpcmVjdGlvbi4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3RvclByb3h5OjphdHRhY2hMZWZ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVj
dG9yUHJveHk6OmF0dGFjaCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5Ojpj
cmVhdGVJbnNwZWN0b3JQYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW46
CisgICAgICAgIEFkZCBwbHVtYmluZyBmb3IgbmV3IGRvY2sgY29uZmlndXJhdGlvbi4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdGVkVmlld0ZyYW1lRGlk
Q2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0
YWNoKToKKyAgICAgICAgQWRhcHQgZXhpc3Rpbmcgc2l6aW5nIGxvZ2ljIHRvIHdvcmsgZm9yIGRv
Y2tpbmcgdG8gbGVmdC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0
b3JVSS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpyZXF1ZXN0U2V0RG9j
a1NpZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2V0RG9ja1NpZGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6YXR0YWNoZWRMZWZ0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW46CisgICAgICAgIEFkZCBwbHVt
YmluZyBmb3IgbmV3IGRvY2sgY29uZmlndXJhdGlvbi4KKwogMjAxNy0wMi0xNiAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBXS1dlYlZpZXcgaW5zaWRl
IGEgVUlDb2xsZWN0aW9uVmlldyBmbGFzaGVzIHdoZW4gaXRlbXMgYXJlIGluc2VydGVkIGFib3Zl
IGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENs
aWVudC5oCmluZGV4IDhmYWRhNzNjMzVkYzQ3MzQ3ZGFiMjk3YjQ1ZjZjMDgyZjU1NzA3ZTguLjRl
ZWIzODg4NjQ0ZWZjYWRiYzUxOTAyMDk1Yjg2Y2EyOTZlODVhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCkBAIC00MSw2ICs0
MSw3IEBAIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIERvY2tTaWRlIHsKICAgICAgICAgVW5kb2Nr
ZWQgPSAwLAogICAgICAgICBSaWdodCwKKyAgICAgICAgTGVmdCwKICAgICAgICAgQm90dG9tLAog
ICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAppbmRleCAyM2QzM2MyYWU1MjE3ZWQyM2EyNmUyNGQw
NTg3ZGQyM2E0NTg0NTJlLi43NjY3MDI0NmEzMDAwMzU1ODQ4YjBmZWE4ZDdkNmU1ZTc2MDM1OGE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwuY3BwCkBAIC0yNjEsNiArMjYxLDkgQEAgdm9pZCBJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsOjpzZXRBdHRhY2hlZFdpbmRvdyhEb2NrU2lkZSBkb2NrU2lkZSkK
ICAgICBjYXNlIERvY2tTaWRlOjpSaWdodDoKICAgICAgICAgc2lkZSA9ICJyaWdodCI7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRG9ja1NpZGU6OkxlZnQ6CisgICAgICAgIHNpZGUgPSAibGVm
dCI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRG9ja1NpZGU6OkJvdHRvbToKICAgICAgICAg
c2lkZSA9ICJib3R0b20iOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKaW5kZXggZTRjZDYwNTkzMmMyYTlk
ODliN2MzNDVlZjFiM2UzMDQ3OWI5MzMzMS4uMGJlYzE0NjhkMjUyZTMwMWRlYjk3MjZjNWM5MWYz
M2JhOTA1OTk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5jcHAKQEAgLTE1OCw2ICsxNTgsOCBAQCB2b2lkIEluc3BlY3RvckZyb250
ZW5kSG9zdDo6cmVxdWVzdFNldERvY2tTaWRlKGNvbnN0IFN0cmluZyYgc2lkZSkKICAgICAgICAg
bV9jbGllbnQtPnJlcXVlc3RTZXREb2NrU2lkZShJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6RG9j
a1NpZGU6OlVuZG9ja2VkKTsKICAgICBlbHNlIGlmIChzaWRlID09ICJyaWdodCIpCiAgICAgICAg
IG1fY2xpZW50LT5yZXF1ZXN0U2V0RG9ja1NpZGUoSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OkRv
Y2tTaWRlOjpSaWdodCk7CisgICAgZWxzZSBpZiAoc2lkZSA9PSAibGVmdCIpCisgICAgICAgIG1f
Y2xpZW50LT5yZXF1ZXN0U2V0RG9ja1NpZGUoSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OkRvY2tT
aWRlOjpMZWZ0KTsKICAgICBlbHNlIGlmIChzaWRlID09ICJib3R0b20iKQogICAgICAgICBtX2Ns
aWVudC0+cmVxdWVzdFNldERvY2tTaWRlKEluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpEb2NrU2lk
ZTo6Qm90dG9tKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6
YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IDRjYTBi
MDQxNmIwMDhhNTRiNjVjNGU5MjEwMTMwMTE4ZmM4YTMyMjkuLjRlZWM0ZWJlMjVjYWNiZjNhYTNl
ZDFmMzEwM2IzM2JjOTk0YjVjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9M
b2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwpA
QCAtMjU0LDcgKzI1NCw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkRpc2FibGVkIl0gPSAiRGlzYWJs
ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siRGlzcGxheSJdID0gIkRpc3BsYXkiOwogbG9jYWxpemVk
U3RyaW5nc1siRG8gbm90IGZhZGUgdW5leGVjdXRlZCBjb2RlIl0gPSAiRG8gbm90IGZhZGUgdW5l
eGVjdXRlZCBjb2RlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRvY2sgdG8gYm90dG9tIG9mIHdpbmRv
dyJdID0gIkRvY2sgdG8gYm90dG9tIG9mIHdpbmRvdyI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJEb2Nr
IHRvIHJpZ2h0IG9mIHdpbmRvdyJdID0gIkRvY2sgdG8gcmlnaHQgb2Ygd2luZG93IjsKK2xvY2Fs
aXplZFN0cmluZ3NbIkRvY2sgdG8gc2lkZSBvZiB3aW5kb3ciXSA9ICJEb2NrIHRvIHNpZGUgb2Yg
d2luZG93IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRvY3VtZW50Il0gPSAiRG9jdW1lbnQiOwogbG9j
YWxpemVkU3RyaW5nc1siRG9jdW1lbnQgRnJhZ21lbnQiXSA9ICJEb2N1bWVudCBGcmFnbWVudCI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJEb2N1bWVudCBUeXBlIl0gPSAiRG9jdW1lbnQgVHlwZSI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4u
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKaW5k
ZXggMGYxYzdhN2E0YmMzZWY1ZWU5MzQ3YmQ1MGQxMmNhODJkZTEzZjI4YS4uMGJkMjY3MWM1ZGYz
Zjk3ZjExOGUwOTgyMGRmODllYTljNGM5YWVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtMjQzLDEyICsyNDMsNyBAQCBXZWJJ
bnNwZWN0b3IuY29udGVudExvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICB9CiAKICAgICBkb2N1bWVu
dC5ib2R5LmNsYXNzTGlzdC5hZGQodGhpcy5kZWJ1Z2dhYmxlVHlwZSk7Ci0KLSAgICBsZXQgbGF5
b3V0RGlyZWN0aW9uID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmxheW91dERpcmVjdGlvbi52YWx1
ZTsKLSAgICBpZiAobGF5b3V0RGlyZWN0aW9uID09PSBXZWJJbnNwZWN0b3IuTGF5b3V0RGlyZWN0
aW9uLlN5c3RlbSkKLSAgICAgICAgbGF5b3V0RGlyZWN0aW9uID0gSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKTsKLQotICAgIGRvY3VtZW50LmJvZHku
c2V0QXR0cmlidXRlKCJkaXIiLCBsYXlvdXREaXJlY3Rpb24pOworICAgIGRvY3VtZW50LmJvZHku
c2V0QXR0cmlidXRlKCJkaXIiLCBXZWJJbnNwZWN0b3IucmVzb2x2ZWRMYXlvdXREaXJlY3Rpb24o
KSk7CiAKICAgICBmdW5jdGlvbiBzZXRUYWJTaXplKCkgewogICAgICAgICBkb2N1bWVudC5ib2R5
LnN0eWxlLnRhYlNpemUgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MudGFiU2l6ZS52YWx1ZTsKQEAg
LTM2Myw5ICszNTgsMTIgQEAgV2ViSW5zcGVjdG9yLmNvbnRlbnRMb2FkZWQgPSBmdW5jdGlvbigp
CiAgICAgdGhpcy5fdW5kb2NrVG9vbGJhckJ1dHRvbi5lbGVtZW50LmNsYXNzTGlzdC5hZGQoV2Vi
SW5zcGVjdG9yLlBvcG92ZXIuSWdub3JlQXV0b0Rpc21pc3NDbGFzc05hbWUpOwogICAgIHRoaXMu
X3VuZG9ja1Rvb2xiYXJCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnV0dG9u
TmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5fdW5kb2NrLCB0aGlzKTsKIAotICAg
IHRoaXMuX2RvY2tSaWdodFRvb2xiYXJCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLkJ1dHRvblRv
b2xiYXJJdGVtKCJkb2NrLXJpZ2h0IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEb2NrIHRvIHJp
Z2h0IG9mIHdpbmRvdyIpLCBudWxsLCAiSW1hZ2VzL0RvY2tSaWdodC5zdmciKTsKLSAgICB0aGlz
Ll9kb2NrUmlnaHRUb29sYmFyQnV0dG9uLmVsZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0
b3IuUG9wb3Zlci5JZ25vcmVBdXRvRGlzbWlzc0NsYXNzTmFtZSk7Ci0gICAgdGhpcy5fZG9ja1Jp
Z2h0VG9vbGJhckJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CdXR0b25OYXZp
Z2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9kb2NrUmlnaHQsIHRoaXMpOworICAgIGxl
dCBkb2NrSW1hZ2UgPSBXZWJJbnNwZWN0b3IucmVzb2x2ZWRMYXlvdXREaXJlY3Rpb24oKSA9PT0g
V2ViSW5zcGVjdG9yLkxheW91dERpcmVjdGlvbi5SVEwgPyAiSW1hZ2VzL0RvY2tMZWZ0LnN2ZyIg
OiAiSW1hZ2VzL0RvY2tSaWdodC5zdmciOworICAgIHRoaXMuX2RvY2tUb1NpZGVUb29sYmFyQnV0
dG9uID0gbmV3IFdlYkluc3BlY3Rvci5CdXR0b25Ub29sYmFySXRlbSgiZG9jay1yaWdodCIsIFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiRG9jayB0byBzaWRlIG9mIHdpbmRvdyIpLCBudWxsLCBkb2Nr
SW1hZ2UpOworICAgIHRoaXMuX2RvY2tUb1NpZGVUb29sYmFyQnV0dG9uLmVsZW1lbnQuY2xhc3NM
aXN0LmFkZChXZWJJbnNwZWN0b3IuUG9wb3Zlci5JZ25vcmVBdXRvRGlzbWlzc0NsYXNzTmFtZSk7
CisKKyAgICBsZXQgZG9ja1RvU2lkZUNhbGxiYWNrID0gV2ViSW5zcGVjdG9yLnJlc29sdmVkTGF5
b3V0RGlyZWN0aW9uKCkgPT09IFdlYkluc3BlY3Rvci5MYXlvdXREaXJlY3Rpb24uUlRMID8gdGhp
cy5fZG9ja0xlZnQgOiB0aGlzLl9kb2NrUmlnaHQ7CisgICAgdGhpcy5fZG9ja1RvU2lkZVRvb2xi
YXJCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnV0dG9uTmF2aWdhdGlvbkl0
ZW0uRXZlbnQuQ2xpY2tlZCwgZG9ja1RvU2lkZUNhbGxiYWNrLCB0aGlzKTsKIAogICAgIHRoaXMu
X2RvY2tCb3R0b21Ub29sYmFyQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5CdXR0b25Ub29sYmFy
SXRlbSgiZG9jay1ib3R0b20iLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRvY2sgdG8gYm90dG9t
IG9mIHdpbmRvdyIpLCBudWxsLCAiSW1hZ2VzL0RvY2tCb3R0b20uc3ZnIik7CiAgICAgdGhpcy5f
ZG9ja0JvdHRvbVRvb2xiYXJCdXR0b24uZWxlbWVudC5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rv
ci5Qb3BvdmVyLklnbm9yZUF1dG9EaXNtaXNzQ2xhc3NOYW1lKTsKQEAgLTQwNSw3ICs0MDMsNyBA
QCBXZWJJbnNwZWN0b3IuY29udGVudExvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLnRvb2xi
YXIuYWRkVG9vbGJhckl0ZW0odGhpcy5fY2xvc2VUb29sYmFyQnV0dG9uLCBXZWJJbnNwZWN0b3Iu
VG9vbGJhci5TZWN0aW9uLkNvbnRyb2wpOwogCiAgICAgdGhpcy50b29sYmFyLmFkZFRvb2xiYXJJ
dGVtKHRoaXMuX3VuZG9ja1Rvb2xiYXJCdXR0b24sIFdlYkluc3BlY3Rvci5Ub29sYmFyLlNlY3Rp
b24uTGVmdCk7Ci0gICAgdGhpcy50b29sYmFyLmFkZFRvb2xiYXJJdGVtKHRoaXMuX2RvY2tSaWdo
dFRvb2xiYXJCdXR0b24sIFdlYkluc3BlY3Rvci5Ub29sYmFyLlNlY3Rpb24uTGVmdCk7CisgICAg
dGhpcy50b29sYmFyLmFkZFRvb2xiYXJJdGVtKHRoaXMuX2RvY2tUb1NpZGVUb29sYmFyQnV0dG9u
LCBXZWJJbnNwZWN0b3IuVG9vbGJhci5TZWN0aW9uLkxlZnQpOwogICAgIHRoaXMudG9vbGJhci5h
ZGRUb29sYmFySXRlbSh0aGlzLl9kb2NrQm90dG9tVG9vbGJhckJ1dHRvbiwgV2ViSW5zcGVjdG9y
LlRvb2xiYXIuU2VjdGlvbi5MZWZ0KTsKIAogICAgIHRoaXMudG9vbGJhci5hZGRUb29sYmFySXRl
bSh0aGlzLl9yZWxvYWRUb29sYmFyQnV0dG9uLCBXZWJJbnNwZWN0b3IuVG9vbGJhci5TZWN0aW9u
LkNlbnRlckxlZnQpOwpAQCAtNzU3LDExICs3NTUsMTIgQEAgV2ViSW5zcGVjdG9yLnVwZGF0ZURv
Y2tlZFN0YXRlID0gZnVuY3Rpb24oc2lkZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdGhpcy5f
cHJldmlvdXNEb2NrQ29uZmlndXJhdGlvbiA9IHRoaXMuX2RvY2tDb25maWd1cmF0aW9uOworCiAg
ICAgaWYgKCF0aGlzLl9wcmV2aW91c0RvY2tDb25maWd1cmF0aW9uKSB7Ci0gICAgICAgIGlmIChz
aWRlID09PSBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24uUmlnaHQpCisgICAgICAgIGlm
IChzaWRlID09PSBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24uUmlnaHQgfHwgc2lkZSA9
PT0gV2ViSW5zcGVjdG9yLkRvY2tDb25maWd1cmF0aW9uLkxlZnQpCiAgICAgICAgICAgICB0aGlz
Ll9wcmV2aW91c0RvY2tDb25maWd1cmF0aW9uID0gV2ViSW5zcGVjdG9yLkRvY2tDb25maWd1cmF0
aW9uLkJvdHRvbTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNEb2Nr
Q29uZmlndXJhdGlvbiA9IFdlYkluc3BlY3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5SaWdodDsKKyAg
ICAgICAgICAgIHRoaXMuX3ByZXZpb3VzRG9ja0NvbmZpZ3VyYXRpb24gPSBXZWJJbnNwZWN0b3Iu
cmVzb2x2ZWRMYXlvdXREaXJlY3Rpb24oKSA9PT0gV2ViSW5zcGVjdG9yLkxheW91dERpcmVjdGlv
bi5SVEwgPyBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24uTGVmdCA6IFdlYkluc3BlY3Rv
ci5Eb2NrQ29uZmlndXJhdGlvbi5SaWdodDsKICAgICB9CiAKICAgICB0aGlzLl9kb2NrQ29uZmln
dXJhdGlvbiA9IHNpZGU7CkBAIC03NzIsMTIgKzc3MSwxNSBAQCBXZWJJbnNwZWN0b3IudXBkYXRl
RG9ja2VkU3RhdGUgPSBmdW5jdGlvbihzaWRlKQogCiAgICAgaWYgKHNpZGUgPT09IFdlYkluc3Bl
Y3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5Cb3R0b20pIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5j
bGFzc0xpc3QuYWRkKCJkb2NrZWQiLCBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24uQm90
dG9tKTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJ3aW5kb3ctaW5h
Y3RpdmUiLCBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24uUmlnaHQpOworICAgICAgICBk
b2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoIndpbmRvdy1pbmFjdGl2ZSIsIFdlYkluc3Bl
Y3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5SaWdodCwgV2ViSW5zcGVjdG9yLkRvY2tDb25maWd1cmF0
aW9uLkxlZnQpOwogICAgIH0gZWxzZSBpZiAoc2lkZSA9PT0gV2ViSW5zcGVjdG9yLkRvY2tDb25m
aWd1cmF0aW9uLlJpZ2h0KSB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgi
ZG9ja2VkIiwgV2ViSW5zcGVjdG9yLkRvY2tDb25maWd1cmF0aW9uLlJpZ2h0KTsKLSAgICAgICAg
ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJ3aW5kb3ctaW5hY3RpdmUiLCBXZWJJbnNw
ZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24uQm90dG9tKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5j
bGFzc0xpc3QucmVtb3ZlKCJ3aW5kb3ctaW5hY3RpdmUiLCBXZWJJbnNwZWN0b3IuRG9ja0NvbmZp
Z3VyYXRpb24uQm90dG9tLCBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24uTGVmdCk7Cisg
ICAgfSBlbHNlIGlmIChzaWRlID09PSBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24uTGVm
dCkgeworICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoImRvY2tlZCIsIFdlYklu
c3BlY3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5MZWZ0KTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5j
bGFzc0xpc3QucmVtb3ZlKCJ3aW5kb3ctaW5hY3RpdmUiLCBXZWJJbnNwZWN0b3IuRG9ja0NvbmZp
Z3VyYXRpb24uQm90dG9tLCBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24uUmlnaHQpOwog
ICAgIH0gZWxzZQotICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoImRvY2tl
ZCIsIFdlYkluc3BlY3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5SaWdodCwgV2ViSW5zcGVjdG9yLkRv
Y2tDb25maWd1cmF0aW9uLkJvdHRvbSk7CisgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0
LnJlbW92ZSgiZG9ja2VkIiwgV2ViSW5zcGVjdG9yLkRvY2tDb25maWd1cmF0aW9uLlJpZ2h0LCBX
ZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24uTGVmdCwgV2ViSW5zcGVjdG9yLkRvY2tDb25m
aWd1cmF0aW9uLkJvdHRvbSk7CiAKICAgICB0aGlzLl9pZ25vcmVUb29sYmFyTW9kZURpZENoYW5n
ZUV2ZW50cyA9IGZhbHNlOwogCkBAIC0xNTgwLDYgKzE1ODIsMTEgQEAgV2ViSW5zcGVjdG9yLl9k
b2NrUmlnaHQgPSBmdW5jdGlvbihldmVudCkKICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3QucmVx
dWVzdFNldERvY2tTaWRlKFdlYkluc3BlY3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5SaWdodCk7CiB9
OwogCitXZWJJbnNwZWN0b3IuX2RvY2tMZWZ0ID0gZnVuY3Rpb24oZXZlbnQpCit7CisgICAgSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LnJlcXVlc3RTZXREb2NrU2lkZShXZWJJbnNwZWN0b3IuRG9ja0Nv
bmZpZ3VyYXRpb24uTGVmdCk7Cit9OworCiBXZWJJbnNwZWN0b3IuX3RvZ2dsZVByZXZpb3VzRG9j
a0NvbmZpZ3VyYXRpb24gPSBmdW5jdGlvbihldmVudCkKIHsKICAgICBJbnNwZWN0b3JGcm9udGVu
ZEhvc3QucmVxdWVzdFNldERvY2tTaWRlKHRoaXMuX3ByZXZpb3VzRG9ja0NvbmZpZ3VyYXRpb24p
OwpAQCAtMTU5MSwxMiArMTU5OCwxMiBAQCBXZWJJbnNwZWN0b3IuX3VwZGF0ZURvY2tOYXZpZ2F0
aW9uSXRlbXMgPSBmdW5jdGlvbigpCiAgICAgICAgIHRoaXMuX2Nsb3NlVG9vbGJhckJ1dHRvbi5o
aWRkZW4gPSAhdGhpcy5kb2NrZWQ7CiAgICAgICAgIHRoaXMuX3VuZG9ja1Rvb2xiYXJCdXR0b24u
aGlkZGVuID0gdGhpcy5fZG9ja0NvbmZpZ3VyYXRpb24gPT09IFdlYkluc3BlY3Rvci5Eb2NrQ29u
ZmlndXJhdGlvbi5VbmRvY2tlZDsKICAgICAgICAgdGhpcy5fZG9ja0JvdHRvbVRvb2xiYXJCdXR0
b24uaGlkZGVuID0gdGhpcy5fZG9ja0NvbmZpZ3VyYXRpb24gPT09IFdlYkluc3BlY3Rvci5Eb2Nr
Q29uZmlndXJhdGlvbi5Cb3R0b207Ci0gICAgICAgIHRoaXMuX2RvY2tSaWdodFRvb2xiYXJCdXR0
b24uaGlkZGVuID0gdGhpcy5fZG9ja0NvbmZpZ3VyYXRpb24gPT09IFdlYkluc3BlY3Rvci5Eb2Nr
Q29uZmlndXJhdGlvbi5SaWdodDsKKyAgICAgICAgdGhpcy5fZG9ja1RvU2lkZVRvb2xiYXJCdXR0
b24uaGlkZGVuID0gdGhpcy5fZG9ja0NvbmZpZ3VyYXRpb24gPT09IFdlYkluc3BlY3Rvci5Eb2Nr
Q29uZmlndXJhdGlvbi5SaWdodCB8fCB0aGlzLl9kb2NrQ29uZmlndXJhdGlvbiA9PT0gV2ViSW5z
cGVjdG9yLkRvY2tDb25maWd1cmF0aW9uLkxlZnQ7CiAgICAgfSBlbHNlIHsKICAgICAgICAgdGhp
cy5fY2xvc2VUb29sYmFyQnV0dG9uLmhpZGRlbiA9IHRydWU7CiAgICAgICAgIHRoaXMuX3VuZG9j
a1Rvb2xiYXJCdXR0b24uaGlkZGVuID0gdHJ1ZTsKICAgICAgICAgdGhpcy5fZG9ja0JvdHRvbVRv
b2xiYXJCdXR0b24uaGlkZGVuID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fZG9ja1JpZ2h0VG9vbGJh
ckJ1dHRvbi5oaWRkZW4gPSB0cnVlOworICAgICAgICB0aGlzLl9kb2NrVG9TaWRlVG9vbGJhckJ1
dHRvbi5oaWRkZW4gPSB0cnVlOwogICAgIH0KIH07CiAKQEAgLTE3MTQsNyArMTcyMSw3IEBAIFdl
Ykluc3BlY3Rvci5fdG9vbGJhck1vdXNlRG93biA9IGZ1bmN0aW9uKGV2ZW50KQogICAgIGlmIChl
dmVudC5jdHJsS2V5KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAodGhpcy5fZG9ja0NvbmZp
Z3VyYXRpb24gPT09IFdlYkluc3BlY3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5SaWdodCkKKyAgICBp
ZiAodGhpcy5fZG9ja0NvbmZpZ3VyYXRpb24gPT09IFdlYkluc3BlY3Rvci5Eb2NrQ29uZmlndXJh
dGlvbi5SaWdodCB8fCB0aGlzLl9kb2NrQ29uZmlndXJhdGlvbiA9PT0gV2ViSW5zcGVjdG9yLkRv
Y2tDb25maWd1cmF0aW9uLkxlZnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICh0aGlzLmRv
Y2tlZCkKQEAgLTE3NTcsMTUgKzE3NjQsMjcgQEAgV2ViSW5zcGVjdG9yLl9kb2NrZWRSZXNpemVy
TW91c2VEb3duID0gZnVuY3Rpb24oZXZlbnQpCiAKICAgICAgICAgbGFzdFNjcmVlblBvc2l0aW9u
ID0gcG9zaXRpb247CiAKLSAgICAgICAgLy8gSWYgZGVsdGEgaXMgcG9zaXRpdmUgdGhlIGRvY2tl
ZCBJbnNwZWN0b3Igc2l6ZSBpcyBkZWNyZWFzaW5nLCBpbiB3aGljaCBjYXNlIHRoZSBjdXJzb3Ig
Y2xpZW50IHBvc2l0aW9uCi0gICAgICAgIC8vIHdpdGggcmVzcGVjdCB0byB0aGUgdGFyZ2V0IGNh
bm5vdCBiZSBsZXNzIHRoYW4gdGhlIGZpcnN0IG1vdXNlIGRvd24gcG9zaXRpb24gd2l0aGluIHRo
ZSB0YXJnZXQuCi0gICAgICAgIGlmIChkZWx0YSA+IDAgJiYgY2xpZW50UG9zaXRpb24gPCBmaXJz
dENsaWVudFBvc2l0aW9uKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAodGhpcy5f
ZG9ja0NvbmZpZ3VyYXRpb24gPT09IFdlYkluc3BlY3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5MZWZ0
KSB7CisgICAgICAgICAgICAvLyBJZiB0aGUgbW91c2UgaXMgdHJhdmVsbGluZyByaWdodHdhcmQg
YnV0IGlzIHBvc2l0aW9uZWQgbGVmdCBvZiB0aGUgcmVzaXplciwgaWdub3JlIHRoZSBldmVudC4K
KyAgICAgICAgICAgIGlmIChkZWx0YSA+IDAgJiYgY2xpZW50UG9zaXRpb24gPCBmaXJzdENsaWVu
dFBvc2l0aW9uKQorICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAvLyBJZiBkZWx0
YSBpcyBuZWdhdGl2ZSB0aGUgZG9ja2VkIEluc3BlY3RvciBzaXplIGlzIGluY3JlYXNpbmcsIGlu
IHdoaWNoIGNhc2UgdGhlIGN1cnNvciBjbGllbnQgcG9zaXRpb24KLSAgICAgICAgLy8gd2l0aCBy
ZXNwZWN0IHRvIHRoZSB0YXJnZXQgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiB0aGUgZmlyc3QgbW91
c2UgZG93biBwb3NpdGlvbiB3aXRoaW4gdGhlIHRhcmdldC4KLSAgICAgICAgaWYgKGRlbHRhIDwg
MCAmJiBjbGllbnRQb3NpdGlvbiA+IGZpcnN0Q2xpZW50UG9zaXRpb24pCi0gICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICAvLyBJZiB0aGUgbW91c2UgaXMgdHJhdmVsbGluZyBsZWZ0d2Fy
ZCBidXQgaXMgcG9zaXRpb25lZCB0byB0aGUgcmlnaHQgb2YgdGhlIHJlc2l6ZXIsIGlnbm9yZSB0
aGUgZXZlbnQuCisgICAgICAgICAgICBpZiAoZGVsdGEgPCAwICYmIGNsaWVudFBvc2l0aW9uID4g
d2luZG93W3dpbmRvd1Byb3BlcnR5XSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgICAgIC8vIFdlIGxhdGVyIHN1YnRyYWN0IHRoZSBkZWx0YSBmcm9tIHRoZSBjdXJyZW50IHBv
c2l0aW9uLCBidXQgc2luY2UgdGhlIGluc3BlY3RlZCB2aWV3IGFuZCBpbnNwZWN0b3Igdmlldwor
ICAgICAgICAgICAgLy8gYXJlIGZsaXBwZWQgd2hlbiBkb2NrZWQgdG8gbGVmdCwgd2Ugd2FudCBk
cmFnZ2luZyB0byBoYXZlIHRoZSBvcHBvc2l0ZSBlZmZlY3QgZnJvbSBkb2NrZWQgdG8gcmlnaHQu
CisgICAgICAgICAgICBkZWx0YSAqPSAtMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IC8vIElmIHRoZSBtb3VzZSBpcyB0cmF2ZWxsaW5nIGRvd253YXJkL3JpZ2h0d2FyZCBidXQgaXMg
cG9zaXRpb25lZCBhYm92ZS9sZWZ0IG9mIHRoZSByZXNpemVyLCBpZ25vcmUgdGhlIGV2ZW50Lgor
ICAgICAgICAgICAgaWYgKGRlbHRhID4gMCAmJiBjbGllbnRQb3NpdGlvbiA8IGZpcnN0Q2xpZW50
UG9zaXRpb24pCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAvLyBJZiB0
aGUgbW91c2UgaXMgdHJhdmVsbGluZyB1cHdhcmQvbGVmdHdhcmQgYnV0IGlzIHBvc2l0aW9uZWQg
YmVsb3cvcmlnaHQgb2YgdGhlIHJlc2l6ZXIsIGlnbm9yZSB0aGUgZXZlbnQuCisgICAgICAgICAg
ICBpZiAoZGVsdGEgPCAwICYmIGNsaWVudFBvc2l0aW9uID4gZmlyc3RDbGllbnRQb3NpdGlvbikK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAogICAgICAgICBsZXQgZGltZW5z
aW9uID0gTWF0aC5tYXgoMCwgd2luZG93W3dpbmRvd1Byb3BlcnR5XSAtIGRlbHRhKTsKICAgICAg
ICAgLy8gSWYgem9vbWVkIGluL291dCwgdGhlcmUgYmUgZ3JlYXRlci9mZXdlciBkb2N1bWVudCBw
aXhlbHMgc2hvd24sIGJ1dCB0aGUgaW5zcGVjdG9yJ3MKQEAgLTIxNDQsMTAgKzIxNjMsMTQgQEAg
V2ViSW5zcGVjdG9yLnNldFpvb21GYWN0b3IgPSBmdW5jdGlvbihmYWN0b3IpCiAgICAgV2ViSW5z
cGVjdG9yLnNldHRpbmdzLnpvb21GYWN0b3IudmFsdWUgPSBJbnNwZWN0b3JGcm9udGVuZEhvc3Qu
em9vbUZhY3RvcigpOwogfTsKIAotV2ViSW5zcGVjdG9yLmdldExheW91dERpcmVjdGlvbiA9IGZ1
bmN0aW9uKCkKK1dlYkluc3BlY3Rvci5yZXNvbHZlZExheW91dERpcmVjdGlvbiA9IGZ1bmN0aW9u
KCkKIHsKLSAgICByZXR1cm4gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmxheW91dERpcmVjdGlvbi52
YWx1ZTsKLX07CisgICAgbGV0IGxheW91dERpcmVjdGlvbiA9IFdlYkluc3BlY3Rvci5zZXR0aW5n
cy5sYXlvdXREaXJlY3Rpb24udmFsdWU7CisgICAgaWYgKGxheW91dERpcmVjdGlvbiA9PT0gV2Vi
SW5zcGVjdG9yLkxheW91dERpcmVjdGlvbi5TeXN0ZW0pCisgICAgICAgIGxheW91dERpcmVjdGlv
biA9IEluc3BlY3RvckZyb250ZW5kSG9zdC51c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCk7
CisKKyAgICAgcmV0dXJuIGxheW91dERpcmVjdGlvbjsKK30KIAogV2ViSW5zcGVjdG9yLnNldExh
eW91dERpcmVjdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKQogewpAQCAtMjE1OCw2ICsyMTgxLDEzIEBA
IFdlYkluc3BlY3Rvci5zZXRMYXlvdXREaXJlY3Rpb24gPSBmdW5jdGlvbih2YWx1ZSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmxheW91dERpcmVjdGlvbi52
YWx1ZSA9IHZhbHVlOworCisgICAgaWYgKHZhbHVlID09PSBXZWJJbnNwZWN0b3IuTGF5b3V0RGly
ZWN0aW9uLlJUTCAmJiB0aGlzLl9kb2NrQ29uZmlndXJhdGlvbiA9PT0gV2ViSW5zcGVjdG9yLkRv
Y2tDb25maWd1cmF0aW9uLlJpZ2h0KQorICAgICAgICB0aGlzLl9kb2NrTGVmdCgpOworCisgICAg
aWYgKHZhbHVlID09PSBXZWJJbnNwZWN0b3IuTGF5b3V0RGlyZWN0aW9uLkxUUiAmJiB0aGlzLl9k
b2NrQ29uZmlndXJhdGlvbiA9PT0gV2ViSW5zcGVjdG9yLkRvY2tDb25maWd1cmF0aW9uLkxlZnQp
CisgICAgICAgIHRoaXMuX2RvY2tSaWdodCgpOworCiAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9h
ZCgpOwogfTsKIApAQCAtMjY1Nyw2ICsyNjg3LDcgQEAgV2ViSW5zcGVjdG9yLmRpYWxvZ1dhc0Rp
c21pc3NlZCA9IGZ1bmN0aW9uKGRpYWxvZykKIAogV2ViSW5zcGVjdG9yLkRvY2tDb25maWd1cmF0
aW9uID0gewogICAgIFJpZ2h0OiAicmlnaHQiLAorICAgIExlZnQ6ICJsZWZ0IiwKICAgICBCb3R0
b206ICJib3R0b20iLAogICAgIFVuZG9ja2VkOiAidW5kb2NrZWQiLAogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9Eb2NrTGVmdC5zdmcg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRG9ja0xlZnQuc3Zn
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjk5MTE4YTU3ZDMwMTQ0Y2ZmNDZmMTBhMDI2OGE5NjhmYTJmMDc3NWYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFn
ZXMvRG9ja0xlZnQuc3ZnCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNv
ZGluZz0idXRmLTgiPz4KKzwhLS0gQ29weXJpZ2h0IMKpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
IiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgorICAgIDxyZWN0
IGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiB4PSIwLjUiIHk9IjEuNSIgd2lkdGg9
IjE1IiBoZWlnaHQ9IjEzIi8+CisgICAgPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50
Q29sb3IiIGQ9Ik0gNi41IDIgTCA2LjUgMTQgTCA2LjUgMiBaIi8+Cis8L3N2Zz4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01haW4uY3NzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5jc3MKaW5kZXgg
ZDk5YTliMmUyMTM5NjRjODJjMGJiYzJiZTY4ZGExMDM2NmZiNDBhYy4uMTczNjJmZDNiNDIzMzEw
ZjM1YzNhYzMxYzRkZmI0ZGRkNjgxMjcyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5jc3MKQEAgLTYwLDYgKzYwLDEwIEBAIGJvZHku
ZG9ja2VkLnJpZ2h0IHsKICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1j
b2xvcik7CiB9CiAKK2JvZHkuZG9ja2VkLnJpZ2h0IHsKKyAgICBib3JkZXItcmlnaHQ6IDFweCBz
b2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQorCiAjZG9ja2VkLXJlc2l6ZXIgewogICAgIGRp
c3BsYXk6IG5vbmU7CiAKQEAgLTkwLDYgKzk0LDE2IEBAIGJvZHkuZG9ja2VkLnJpZ2h0ICNkb2Nr
ZWQtcmVzaXplciB7CiAgICAgY3Vyc29yOiBjb2wtcmVzaXplOwogfQogCitib2R5LmRvY2tlZC5s
ZWZ0ICNkb2NrZWQtcmVzaXplciB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDog
MDsKKyAgICByaWdodDogMDsKKyAgICBib3R0b206IDA7CisgICAgd2lkdGg6IDNweDsKKworICAg
IGN1cnNvcjogY29sLXJlc2l6ZTsKK30KKwogYm9keS5kb2NrZWQuYm90dG9tICN0b29sYmFyIHsK
ICAgICBjdXJzb3I6IHJvdy1yZXNpemU7CiB9CkBAIC0xMzIsNyArMTQ2LDcgQEAgaW5wdXRbdHlw
ZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHsKICAgICBoZWlnaHQ6IDEw
MCU7CiB9CiAKLWJvZHkuZG9ja2VkLnJpZ2h0ICNuYXZpZ2F0aW9uLXNpZGViYXIuY29sbGFwc2Vk
ID4gLnJlc2l6ZXIgeworYm9keS5kb2NrZWQ6bWF0Y2hlcygucmlnaHQsIC5sZWZ0KSAjbmF2aWdh
dGlvbi1zaWRlYmFyLmNvbGxhcHNlZCA+IC5yZXNpemVyIHsKICAgICBwb2ludGVyLWV2ZW50czog
bm9uZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3Bl
Y3RvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94
eS5jcHAKaW5kZXggMjdiNGYzMTYxNzEyZTViYjZlMDVmZmU4MzE0NzcwZTJkMDk3YzYxZS4uMzhj
ODAzOWY3ZjA4MjRkNTA2NWJhMzMxOTA3NDNkNWE2YzgyZTViNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCkBAIC0yMTcsNiArMjE3LDExIEBA
IHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OmF0dGFjaFJpZ2h0KCkKICAgICBhdHRhY2goQXR0YWNo
bWVudFNpZGU6OlJpZ2h0KTsKIH0KIAordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6YXR0YWNoTGVm
dCgpCit7CisgICAgYXR0YWNoKEF0dGFjaG1lbnRTaWRlOjpMZWZ0KTsKK30KKwogdm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6YXR0YWNoKEF0dGFjaG1lbnRTaWRlIHNpZGUpCiB7CiAgICAgaWYgKCFt
X2luc3BlY3RlZFBhZ2UgfHwgIWNhbkF0dGFjaCgpKQpAQCAtMjQwLDYgKzI0NSwxMCBAQCB2b2lk
IFdlYkluc3BlY3RvclByb3h5OjphdHRhY2goQXR0YWNobWVudFNpZGUgc2lkZSkKICAgICBjYXNl
IEF0dGFjaG1lbnRTaWRlOjpSaWdodDoKICAgICAgICAgbV9pbnNwZWN0b3JQYWdlLT5wcm9jZXNz
KCkuc2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yVUk6OkF0dGFjaGVkUmlnaHQoKSwgbV9pbnNw
ZWN0b3JQYWdlLT5wYWdlSUQoKSk7CiAgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBBdHRhY2ht
ZW50U2lkZTo6TGVmdDoKKyAgICAgICAgbV9pbnNwZWN0b3JQYWdlLT5wcm9jZXNzKCkuc2VuZChN
ZXNzYWdlczo6V2ViSW5zcGVjdG9yVUk6OkF0dGFjaGVkTGVmdCgpLCBtX2luc3BlY3RvclBhZ2Ut
PnBhZ2VJRCgpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgcGxhdGZvcm1BdHRhY2go
KTsKQEAgLTQ5MSw2ICs1MDAsMTAgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6Y3JlYXRlSW5z
cGVjdG9yUGFnZShJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIKICAgICAgICAg
ICAgIGNhc2UgQXR0YWNobWVudFNpZGU6OlJpZ2h0OgogICAgICAgICAgICAgICAgIG1faW5zcGVj
dG9yUGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJOjpBdHRhY2hl
ZFJpZ2h0KCksIG1faW5zcGVjdG9yUGFnZS0+cGFnZUlEKCkpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOworCisgICAgICAgICAgICBjYXNlIEF0dGFjaG1lbnRTaWRlOjpMZWZ0OgorICAgICAgICAg
ICAgICAgIG1faW5zcGVjdG9yUGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkluc3Bl
Y3RvclVJOjpBdHRhY2hlZExlZnQoKSwgbV9pbnNwZWN0b3JQYWdlLT5wYWdlSUQoKSk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgbV9pbnNwZWN0b3JQYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViSW5zcGVj
dG9yVUk6OkRldGFjaGVkKCksIG1faW5zcGVjdG9yUGFnZS0+cGFnZUlEKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAppbmRleCA3ZjQxM2FiZTRlNTgx
OWM1Zjk4ZGY1NjQ3MDlhMmFhNTk4OWViNmNhLi44N2QwMDA3Yzg4NWE0YzQ3NjBkMGRhMGNmZDg4
NmQ4YTIwYTdiMTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5z
cGVjdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9y
UHJveHkuaApAQCAtNzAsNyArNzAsOCBAQCBjbGFzcyBXZWJQcmVmZXJlbmNlczsKIAogZW51bSBj
bGFzcyBBdHRhY2htZW50U2lkZSB7CiAgICAgQm90dG9tLAotICAgIFJpZ2h0CisgICAgUmlnaHQs
CisgICAgTGVmdCwKIH07CiAKIGNsYXNzIFdlYkluc3BlY3RvclByb3h5IDogcHVibGljIEFQSTo6
T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6SW5zcGVjdG9yPiwgcHVibGljIElQQzo6TWVz
c2FnZVJlY2VpdmVyIHsKQEAgLTEzMCw2ICsxMzEsNyBAQCBwdWJsaWM6CiAgICAgQXR0YWNobWVu
dFNpZGUgYXR0YWNobWVudFNpZGUoKSBjb25zdCB7IHJldHVybiBtX2F0dGFjaG1lbnRTaWRlOyB9
CiAgICAgYm9vbCBpc0F0dGFjaGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0F0dGFjaGVkOyB9CiAg
ICAgdm9pZCBhdHRhY2hSaWdodCgpOworICAgIHZvaWQgYXR0YWNoTGVmdCgpOwogICAgIHZvaWQg
YXR0YWNoQm90dG9tKCk7CiAgICAgdm9pZCBhdHRhY2goQXR0YWNobWVudFNpZGUgPSBBdHRhY2ht
ZW50U2lkZTo6Qm90dG9tKTsKICAgICB2b2lkIGRldGFjaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGMy
ZWQ3ODJkYjE5Y2I4YjRhZWNhZWI5NDU3OGQyNWYwZGEyNjc3YzQuLmNiMTk0NmRiNzQ4OTRjYzE3
ZDc2M2ZiZDkwOGM5YWIyZGM5ZjA2NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTM1LDYgKzM1LDcgQEAg
bWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9yUHJveHkgewogCiAgICAgQXR0YWNoQm90dG9tKCkKICAg
ICBBdHRhY2hSaWdodCgpCisgICAgQXR0YWNoTGVmdCgpCiAgICAgRGV0YWNoKCkKIAogICAgIEF0
dGFjaEF2YWlsYWJpbGl0eUNoYW5nZWQoYm9vbCBhdmFpbGFibGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQppbmRleCA4MThi
ZDM5MGQ0ODNkMDgyMmJhZTc5MzRlMTA2ZmRiYjBjZGZmODU0Li40YTMwNzlkNzRjOTIwMGViMjg2
NzU3MmFjMDRhNGUyY2Y4YjIxODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KQEAgLTI4Nyw2ICsyODcsOSBAQCBXZWJQ
YWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2Uo
KQogICAgICAgICBjYXNlIEF0dGFjaG1lbnRTaWRlOjpSaWdodDoKICAgICAgICAgICAgIGluaXRp
YWxSZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKS5pbnNw
ZWN0b3JBdHRhY2hlZFdpZHRoKCksIE5TSGVpZ2h0KGluc3BlY3RlZFZpZXdGcmFtZSkpOwogICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQXR0YWNobWVudFNpZGU6OkxlZnQ6CisgICAg
ICAgICAgICBpbml0aWFsUmVjdCA9IE5TTWFrZVJlY3QoMCwgMCwgTlNXaWR0aChpbnNwZWN0ZWRW
aWV3RnJhbWUpIC0gaW5zcGVjdG9yUGFnZVByZWZlcmVuY2VzKCkuaW5zcGVjdG9yQXR0YWNoZWRX
aWR0aCgpLCBOU0hlaWdodChpbnNwZWN0ZWRWaWV3RnJhbWUpKTsKKyAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgaW5pdGlhbFJlY3QgPSBOU01ha2VS
ZWN0KDAsIDAsIGluaXRpYWxXaW5kb3dXaWR0aCwgaW5pdGlhbFdpbmRvd0hlaWdodCk7CkBAIC01
NjIsNiArNTY1LDIyIEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RlZFZpZXdGcmFt
ZURpZENoYW5nZShDR0Zsb2F0IGN1cnJlbnREaW1lbnNpb24pCiAgICAgICAgIGluc3BlY3RvckZy
YW1lID0gTlNNYWtlUmVjdChwYXJlbnRXaWR0aCAtIGluc3BlY3RvcldpZHRoLCAwLCBpbnNwZWN0
b3JXaWR0aCwgTlNIZWlnaHQocGFyZW50Qm91bmRzKSAtIGluc2V0RXhjbHVkaW5nQmFubmVycyk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KKworICAgIGNhc2UgQXR0YWNobWVudFNpZGU6OkxlZnQ6
IHsKKyAgICAgICAgaWYgKCFjdXJyZW50RGltZW5zaW9uKQorICAgICAgICAgICAgY3VycmVudERp
bWVuc2lvbiA9IE5TV2lkdGgoW21faW5zcGVjdG9yVmlldyBmcmFtZV0pOworCisgICAgICAgIENH
RmxvYXQgcGFyZW50V2lkdGggPSBOU1dpZHRoKHBhcmVudEJvdW5kcyk7CisgICAgICAgIENHRmxv
YXQgaW5zcGVjdG9yV2lkdGggPSBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpjb25zdHJh
aW5lZEF0dGFjaGVkV2luZG93V2lkdGgoY3VycmVudERpbWVuc2lvbiwgcGFyZW50V2lkdGgpOwor
ICAgICAgICAvLyBQcmVzZXJ2ZSB0aGUgdG9wIHBvc2l0aW9uIG9mIHRoZSBpbnNwZWN0ZWQgdmll
dyBzbyBiYW5uZXJzIGluIFNhZmFyaSBzdGlsbCB3b3JrLiBCdXQgZG9uJ3QgdXNlIHRoYXQKKyAg
ICAgICAgLy8gdG9wIHBvc2l0aW9uIGZvciB0aGUgaW5zcGVjdG9yIHZpZXcgc2luY2UgdGhlIGJh
bm5lcnMgb25seSBzdHJldGNoIGFzIHdpZGUgYXMgdGhlIHRoZSBpbnNwZWN0ZWQgdmlldy4KKyAg
ICAgICAgaW5zcGVjdGVkVmlld0ZyYW1lID0gTlNNYWtlUmVjdChpbnNwZWN0b3JXaWR0aCwgMCwg
TlNXaWR0aChpbnNwZWN0ZWRWaWV3RnJhbWUpLCBpbnNwZWN0ZWRWaWV3VG9wKTsKKyAgICAgICAg
Q0dGbG9hdCBpbnNldEV4Y2x1ZGluZ0Jhbm5lcnMgPSAwOworICAgICAgICBpZiAoW2luc3BlY3Rl
ZFZpZXcgaXNLaW5kT2ZDbGFzczpbV0tWaWV3IGNsYXNzXV0pCisgICAgICAgICAgICBpbnNldEV4
Y2x1ZGluZ0Jhbm5lcnMgPSAoKFdLVmlldyAqKWluc3BlY3RlZFZpZXcpLl90b3BDb250ZW50SW5z
ZXQgLSAoKFdLVmlldyAqKWluc3BlY3RlZFZpZXcpLl90b3RhbEhlaWdodE9mQmFubmVyczsKKyAg
ICAgICAgaW5zcGVjdG9yRnJhbWUgPSBOU01ha2VSZWN0KDAsIDAsIGluc3BlY3RvcldpZHRoLCBO
U0hlaWdodChwYXJlbnRCb3VuZHMpIC0gaW5zZXRFeGNsdWRpbmdCYW5uZXJzKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQogICAgIH0KIAogICAgIGlmIChOU0VxdWFsUmVjdHMoW21faW5zcGVjdG9y
VmlldyBmcmFtZV0sIGluc3BlY3RvckZyYW1lKSAmJiBOU0VxdWFsUmVjdHMoW2luc3BlY3RlZFZp
ZXcgZnJhbWVdLCBpbnNwZWN0ZWRWaWV3RnJhbWUpKQpAQCAtNjExLDYgKzYzMCwxMCBAQCB2b2lk
IFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiAgICAgICAgIFttX2luc3BlY3Rv
clZpZXcgc2V0QXV0b3Jlc2l6aW5nTWFzazpOU1ZpZXdIZWlnaHRTaXphYmxlIHwgTlNWaWV3TWlu
WE1hcmdpbl07CiAgICAgICAgIGN1cnJlbnREaW1lbnNpb24gPSBpbnNwZWN0b3JQYWdlUHJlZmVy
ZW5jZXMoKS5pbnNwZWN0b3JBdHRhY2hlZFdpZHRoKCk7CiAgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQXR0YWNobWVudFNpZGU6OkxlZnQ6CisgICAgICAgIFttX2luc3BlY3RvclZpZXcgc2V0QXV0
b3Jlc2l6aW5nTWFzazpOU1ZpZXdIZWlnaHRTaXphYmxlIHwgTlNWaWV3TWF4WE1hcmdpbl07Cisg
ICAgICAgIGN1cnJlbnREaW1lbnNpb24gPSBpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKS5pbnNw
ZWN0b3JBdHRhY2hlZFdpZHRoKCk7CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGluc3Bl
Y3RlZFZpZXdGcmFtZURpZENoYW5nZShjdXJyZW50RGltZW5zaW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IGE0
MWIzYzMwNmU1YmFjZTU1Yjc2ZTM5N2MyNDllNjUxOTM0NTc0N2YuLmEwMWVkYjM3MGNlMjcxMTc1
YTI3MGQ5N2MxYmM1ZDk5NTY4NzEyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmNwcApAQCAtMTUzLDYgKzE1Myw5IEBAIHZv
aWQgV2ViSW5zcGVjdG9yVUk6OnJlcXVlc3RTZXREb2NrU2lkZShEb2NrU2lkZSBzaWRlKQogICAg
IGNhc2UgRG9ja1NpZGU6OlJpZ2h0OgogICAgICAgICB3ZWJQcm9jZXNzLnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpBdHRhY2hSaWdo
dCgpLCBtX2luc3BlY3RlZFBhZ2VJZGVudGlmaWVyKTsKICAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBEb2NrU2lkZTo6TGVmdDoKKyAgICAgICAgd2ViUHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6QXR0YWNoTGVmdCgpLCBt
X2luc3BlY3RlZFBhZ2VJZGVudGlmaWVyKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEb2Nr
U2lkZTo6Qm90dG9tOgogICAgICAgICB3ZWJQcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpBdHRhY2hCb3R0b20oKSwgbV9p
bnNwZWN0ZWRQYWdlSWRlbnRpZmllcik7CiAgICAgICAgIGJyZWFrOwpAQCAtMTcyLDYgKzE3NSwx
MCBAQCB2b2lkIFdlYkluc3BlY3RvclVJOjpzZXREb2NrU2lkZShEb2NrU2lkZSBzaWRlKQogICAg
ICAgICBzaWRlU3RyaW5nID0gInJpZ2h0IjsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIERv
Y2tTaWRlOjpMZWZ0OgorICAgICAgICBzaWRlU3RyaW5nID0gImxlZnQiOworICAgICAgICBicmVh
azsKKwogICAgIGNhc2UgRG9ja1NpZGU6OkJvdHRvbToKICAgICAgICAgc2lkZVN0cmluZyA9ICJi
b3R0b20iOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmgKaW5kZXggZDZjZmJhOGRmYzczMDEyOGQ5NTMxNTg5
YTZjNjA5Mzc4YTM4NTg1Yy4uNDQ2MTg1YjEyYWYxMmZjNjdkZmVkZTVmZWM0MmI2YWY2NzZkMGNm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3RvclVJLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3RvclVJLmgKQEAgLTY2LDYgKzY2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBhdHRhY2hlZEJv
dHRvbSgpIHsgc2V0RG9ja1NpZGUoRG9ja1NpZGU6OkJvdHRvbSk7IH0KICAgICB2b2lkIGF0dGFj
aGVkUmlnaHQoKSB7IHNldERvY2tTaWRlKERvY2tTaWRlOjpSaWdodCk7IH0KKyAgICB2b2lkIGF0
dGFjaGVkTGVmdCgpIHsgc2V0RG9ja1NpZGUoRG9ja1NpZGU6OkxlZnQpOyB9CiAgICAgdm9pZCBk
ZXRhY2hlZCgpIHsgc2V0RG9ja1NpZGUoRG9ja1NpZGU6OlVuZG9ja2VkKTsgfQogCiAgICAgdm9p
ZCBzZXREb2NrU2lkZShEb2NrU2lkZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW4KaW5kZXggMjdk
NTQ4OWU5MzcxZmFlOTc4YmMwODY0ZTMxOWE2NTMyNzdlY2NhNS4uMzcyZWQzY2VhMzFhZTVjMTFm
MGY3ZTdlMmE5YTBmZjk1N2E1ZWQwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbgpAQCAtMjUs
NiArMjUsNyBAQCBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3JVSSB7CiAKICAgICBBdHRhY2hlZEJv
dHRvbSgpCiAgICAgQXR0YWNoZWRSaWdodCgpCisgICAgQXR0YWNoZWRMZWZ0KCkKICAgICBEZXRh
Y2hlZCgpCiAgICAgU2V0RG9ja2luZ1VuYXZhaWxhYmxlKGJvb2wgdW5hdmFpbGFibGUpCiAgICAg
U2V0SXNWaXNpYmxlKGJvb2wgdmlzaWJsZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>301978</attachid>
            <date>2017-02-17 13:17:09 -0800</date>
            <delta_ts>2017-02-17 13:17:09 -0800</delta_ts>
            <desc>Screen recording - RTL and LTR dock to side</desc>
            <filename>wui-rtl-dockleft.mov</filename>
            <type>video/quicktime</type>
            <size>0</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301989</attachid>
            <date>2017-02-17 14:29:38 -0800</date>
            <delta_ts>2017-02-17 15:15:14 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-168273-20170217142659.patch</filename>
            <type>text/plain</type>
            <size>29383</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI3Y2RmMjI0YjBjODU4
M2VhZGRhOGRkZTkyOGVhODdmNTg0MTQ2Ny4uOTRiOWFjOWY2MzAwZjdmNTU1ODY5ZjkxNmE3Y2Yy
YjhjMzkwNzg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTAyLTE3ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJUTDog
SW5zcGVjdG9yIHdpbmRvdyBzaG91bGQgZG9jayB0byB0aGUgbGVmdCB3aGVuIHVzaW5nIFJUTCBs
YXlvdXQgZGlyZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjgyNzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5OTQ5MzI1PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0aGUgYWJpbGl0
eSB0byBkb2NrIFdlYiBJbnNwZWN0b3IgdG8gdGhlIGxlZnQgb2YgdGhlIGluc3BlY3RlZCB2aWV3
LgorICAgICAgICBUaGUgZnJvbnRlbmQgZGVjaWRlcyB3aGV0aGVyIHRoZSBEb2NrIHRvIFNpZGUg
YnV0dG9uIGRvY2tzIGxlZnQgb3IgcmlnaHQKKyAgICAgICAgYmFzZWQgb24gdGhlIGN1cnJlbnQg
bGF5b3V0IGRpcmVjdGlvbi4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6
OnNldEF0dGFjaGVkV2luZG93KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kSG9zdDo6cmVx
dWVzdFNldERvY2tTaWRlKToKKwogMjAxNy0wMi0xNiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtSZXNvdXJjZSBUaW1pbmddIFN1cHBvcnQgUmVzb3Vy
Y2UgVGltaW5nIGluIFdvcmtlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGQzYmY2YmJh
ZGE3NjIxMzQ2MGUwNzVmNmQwMjlmMjI2N2ZiZTZlMDcuLmQ2NDE5NmZkMzE0YjU0YTBlODg5MGMz
NjEzNTBjNzRjYmMyZGExZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQx
IEBACisyMDE3LTAyLTE3ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFJUTDogSW5zcGVjdG9yIHdpbmRvdyBzaG91bGQgZG9jayB0byB0aGUg
bGVmdCB3aGVuIHVzaW5nIFJUTCBsYXlvdXQgZGlyZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgyNzMKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzI5OTQ5MzI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0aGUgYWJpbGl0eSB0byBkb2NrIFdlYiBJbnNwZWN0b3IgdG8gdGhlIGxlZnQg
b2YgdGhlIGluc3BlY3RlZCB2aWV3LgorICAgICAgICBUaGUgZnJvbnRlbmQgZGVjaWRlcyB3aGV0
aGVyIHRoZSBEb2NrIHRvIFNpZGUgYnV0dG9uIGRvY2tzIGxlZnQgb3IgcmlnaHQKKyAgICAgICAg
YmFzZWQgb24gdGhlIGN1cnJlbnQgbGF5b3V0IGRpcmVjdGlvbi4KKworICAgICAgICAqIExvY2Fs
aXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL0Jhc2UvTWFpbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5jb250ZW50TG9hZGVk
KToKKyAgICAgICAgUmVuYW1lIHRoZSAiRG9jayB0byBSaWdodCIgYnV0dG9uIHRvICJEb2NrIHRv
IFNpZGUiIGluc3RlYWQuIEl0J3MgZWFzaWVyIHRvIGp1c3QKKyAgICAgICAgaGF2ZSBvbmUgYnV0
dG9uIHRoYW4gdG8gdHJ5IGFuZCBjb25kaXRpb25hbGx5IGhpZGUgb25lIG9yIHRoZSBvdGhlciBi
YXNlZCBvbgorICAgICAgICB0aGUgbGF5b3V0IGRpcmVjdGlvbi4gQ2hhbmdlIHRoZSBkb2NrIGNh
bGxiYWNrIGFuZCB0aGUgaWNvbiB1c2VkIGZvciB0aGUgYnV0dG9uCisgICAgICAgIGRlcGVuZGlu
ZyBvbiBsYXlvdXQgZGlyZWN0aW9uLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IucmVzb2x2ZWRM
YXlvdXREaXJlY3Rpb24pOgorICAgICAgICBSZWZhY3RvciBnZXRMYXlvdXREaXJlY3Rpb24oKSB0
byByZXNvbHZlZExheW91dERpcmVjdGlvbigpIHNvIGNhbGxlcnMgZ2V0IGJhY2sKKyAgICAgICAg
ZWl0aGVyICJsdHIiIG9yICJydGwiLgorCisgICAgICAgIEZsaXAgdGhlIGRvY2sgc2lkZSBpZiBs
YXlvdXQgZGlyZWN0aW9uIGNoYW5nZXMgd2hpbGUgZG9ja2VkIHRvIHRoZSBzaWRlLgorCisgICAg
ICAgIEFkanVzdCB2YXJpb3VzIGNvZGUgcGF0aHMgdG8gYWNjb3VudCBmb3IgdGhlIGV4aXN0aW5n
IG9mIGxlZnQgZG9ja2luZy4gSW4gcGFydGljdWxhciwKKyAgICAgICAgcmVzaXplIHJlamVjdGlv
biBuZWVkcyBzcGVjaWFsLWNhc2luZyBmb3IgcmVzaXppbmcgbGVmdHdhcmQgZnJvbSBiZXlvbmQg
dGhlIHJpZ2h0IHNpZGUKKyAgICAgICAgb2YgdGhlIEluc3BlY3RvciB2aWV3IHdoZW4gaXQgaXMg
ZG9ja2VkIHRvIHRoZSBsZWZ0LiBJbXByb3ZlIHJlbGF0ZWQgY29tbWVudHMgc2luY2UgaXQKKyAg
ICAgICAgdG9vayBtZSBhbiB1bmJlbGlldmFibGUgYW1vdW50IG9mIHRpbWUgdG8gdW5kZXJzdGFu
ZCB3aGF0IHRoaXMgY29kZSBpcyBzdXBwb3NlZCB0byBkby4KKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvTWFpbi5jc3M6CisgICAgICAgIChib2R5LmRvY2tlZC5yaWdodCk6CisgICAg
ICAgIChib2R5LmRvY2tlZC5sZWZ0ICNkb2NrZWQtcmVzaXplcik6CisgICAgICAgIChib2R5LmRv
Y2tlZDptYXRjaGVzKC5yaWdodCwgLmxlZnQpICNuYXZpZ2F0aW9uLXNpZGViYXIuY29sbGFwc2Vk
ID4gLnJlc2l6ZXIpOgorICAgICAgICAoYm9keS5kb2NrZWQucmlnaHQgI25hdmlnYXRpb24tc2lk
ZWJhci5jb2xsYXBzZWQgPiAucmVzaXplcik6IERlbGV0ZWQuCisgICAgICAgIEFkZCAuZG9ja2Vk
LmxlZnQgYW5hbG9ndWVzIHRvIHJ1bGVzIGZvciAuZG9ja2VkLnJpZ2h0LgorCiAyMDE3LTAyLTE2
ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IGFkZCBEZWJ1Z1VJIHNldHRpbmcgdG8gbWFudWFsbHkgb3ZlcnJpZGUgVUkgbGF5b3V0IGRpcmVj
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDY5OTVmNWEyZjVkNDViNGExNDMzNjc2YjQ3NDg1ODVkNWYwZWU0
OTMuLjcwMGUwNzQ0MWVkZDk0ZWVjOGY1NjhiMGI4NmQzZmZkODUxNmI3ZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNyBAQAorMjAxNy0wMi0xNyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBSVEw6IEluc3BlY3RvciB3aW5kb3cgc2hvdWxk
IGRvY2sgdG8gdGhlIGxlZnQgd2hlbiB1c2luZyBSVEwgbGF5b3V0IGRpcmVjdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4MjczCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8yOTk0OTMyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGFiaWxpdHkgdG8gZG9jayBXZWIgSW5zcGVjdG9y
IHRvIHRoZSBsZWZ0IG9mIHRoZSBpbnNwZWN0ZWQgdmlldy4KKyAgICAgICAgVGhlIGZyb250ZW5k
IGRlY2lkZXMgd2hldGhlciB0aGUgRG9jayB0byBTaWRlIGJ1dHRvbiBkb2NrcyBsZWZ0IG9yIHJp
Z2h0CisgICAgICAgIGJhc2VkIG9uIHRoZSBjdXJyZW50IGxheW91dCBkaXJlY3Rpb24uCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJJbnNwZWN0b3JQcm94eTo6YXR0YWNoTGVmdCk6CisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvclByb3h5OjphdHRhY2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94
eTo6Y3JlYXRlSW5zcGVjdG9yUGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkluc3BlY3Rv
clByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICBBZGQgcGx1bWJpbmcgZm9yIG5ldyBkb2NrIGNvbmZpZ3VyYXRpb24uCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJbnNwZWN0b3JQYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RlZFZpZXdGcmFt
ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9y
bUF0dGFjaCk6CisgICAgICAgIEFkYXB0IGV4aXN0aW5nIHNpemluZyBsb2dpYyB0byB3b3JrIGZv
ciBkb2NraW5nIHRvIGxlZnQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yVUkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6cmVxdWVzdFNl
dERvY2tTaWRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnNldERvY2tTaWRl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OmF0dGFjaGVkTGVmdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLm1lc3NhZ2VzLmluOgorICAgICAgICBBZGQg
cGx1bWJpbmcgZm9yIG5ldyBkb2NrIGNvbmZpZ3VyYXRpb24uCisKIDIwMTctMDItMTYgIEJyZW50
IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYlJUQ11bTWFjXVtX
ZWJLaXQyXSBJbml0aWFsIFdlYlByb2Nlc3MgZG9lcyBub3Qgc3VwcG9ydCBXZWJSVEMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKaW5k
ZXggOGZhZGE3M2MzNWRjNDczNDdkYWIyOTdiNDVmNmMwODJmNTU3MDdlOC4uNGVlYjM4ODg2NDRl
ZmNhZGJjNTE5MDIwOTViODZjYTI5NmU4NWFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKQEAgLTQxLDYgKzQxLDcgQEAgcHVi
bGljOgogICAgIGVudW0gY2xhc3MgRG9ja1NpZGUgewogICAgICAgICBVbmRvY2tlZCA9IDAsCiAg
ICAgICAgIFJpZ2h0LAorICAgICAgICBMZWZ0LAogICAgICAgICBCb3R0b20sCiAgICAgfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
Q2xpZW50TG9jYWwuY3BwCmluZGV4IDIzZDMzYzJhZTUyMTdlZDIzYTI2ZTI0ZDA1ODdkZDIzYTQ1
ODQ1MmUuLjc2NjcwMjQ2YTMwMDAzNTU4NDhiMGZlYThkN2Q2ZTVlNzYwMzU4YTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRMb2NhbC5jcHAKQEAgLTI2MSw2ICsyNjEsOSBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWw6OnNldEF0dGFjaGVkV2luZG93KERvY2tTaWRlIGRvY2tTaWRlKQogICAgIGNhc2Ug
RG9ja1NpZGU6OlJpZ2h0OgogICAgICAgICBzaWRlID0gInJpZ2h0IjsKICAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBEb2NrU2lkZTo6TGVmdDoKKyAgICAgICAgc2lkZSA9ICJsZWZ0IjsKKyAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBEb2NrU2lkZTo6Qm90dG9tOgogICAgICAgICBzaWRlID0gImJv
dHRvbSI7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAppbmRleCBlNGNkNjA1OTMyYzJhOWQ4OWI3YzM0NWVm
MWIzZTMwNDc5YjkzMzMxLi4wYmVjMTQ2OGQyNTJlMzAxZGViOTcyNmM1YzkxZjMzYmE5MDU5OTdj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmNwcApAQCAtMTU4LDYgKzE1OCw4IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRIb3N0Ojpy
ZXF1ZXN0U2V0RG9ja1NpZGUoY29uc3QgU3RyaW5nJiBzaWRlKQogICAgICAgICBtX2NsaWVudC0+
cmVxdWVzdFNldERvY2tTaWRlKEluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpEb2NrU2lkZTo6VW5k
b2NrZWQpOwogICAgIGVsc2UgaWYgKHNpZGUgPT0gInJpZ2h0IikKICAgICAgICAgbV9jbGllbnQt
PnJlcXVlc3RTZXREb2NrU2lkZShJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6RG9ja1NpZGU6OlJp
Z2h0KTsKKyAgICBlbHNlIGlmIChzaWRlID09ICJsZWZ0IikKKyAgICAgICAgbV9jbGllbnQtPnJl
cXVlc3RTZXREb2NrU2lkZShJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6RG9ja1NpZGU6OkxlZnQp
OwogICAgIGVsc2UgaWYgKHNpZGUgPT0gImJvdHRvbSIpCiAgICAgICAgIG1fY2xpZW50LT5yZXF1
ZXN0U2V0RG9ja1NpZGUoSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OkRvY2tTaWRlOjpCb3R0b20p
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4u
bHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6
YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggNGNhMGIwNDE2YjAwOGE1
NGI2NWM0ZTkyMTAxMzAxMThmYzhhMzIyOS4uNGVlYzRlYmUyNWNhY2JmM2FhM2VkMWYzMTAzYjMz
YmM5OTRiNWNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlv
bnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC0yNTQsNyAr
MjU0LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siRGlzYWJsZWQiXSA9ICJEaXNhYmxlZCI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJEaXNwbGF5Il0gPSAiRGlzcGxheSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJE
byBub3QgZmFkZSB1bmV4ZWN1dGVkIGNvZGUiXSA9ICJEbyBub3QgZmFkZSB1bmV4ZWN1dGVkIGNv
ZGUiOwogbG9jYWxpemVkU3RyaW5nc1siRG9jayB0byBib3R0b20gb2Ygd2luZG93Il0gPSAiRG9j
ayB0byBib3R0b20gb2Ygd2luZG93IjsKLWxvY2FsaXplZFN0cmluZ3NbIkRvY2sgdG8gcmlnaHQg
b2Ygd2luZG93Il0gPSAiRG9jayB0byByaWdodCBvZiB3aW5kb3ciOworbG9jYWxpemVkU3RyaW5n
c1siRG9jayB0byBzaWRlIG9mIHdpbmRvdyJdID0gIkRvY2sgdG8gc2lkZSBvZiB3aW5kb3ciOwog
bG9jYWxpemVkU3RyaW5nc1siRG9jdW1lbnQiXSA9ICJEb2N1bWVudCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJEb2N1bWVudCBGcmFnbWVudCJdID0gIkRvY3VtZW50IEZyYWdtZW50IjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkRvY3VtZW50IFR5cGUiXSA9ICJEb2N1bWVudCBUeXBlIjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwppbmRleCAwZjFjN2E3
YTRiYzNlZjVlZTkzNDdiZDUwZDEyY2E4MmRlMTNmMjhhLi4wYmQyNjcxYzVkZjNmOTdmMTE4ZTA5
ODIwZGY4OWVhOWM0YzlhZWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9CYXNlL01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC0yNDMsMTIgKzI0Myw3IEBAIFdlYkluc3BlY3Rvci5j
b250ZW50TG9hZGVkID0gZnVuY3Rpb24oKQogICAgIH0KIAogICAgIGRvY3VtZW50LmJvZHkuY2xh
c3NMaXN0LmFkZCh0aGlzLmRlYnVnZ2FibGVUeXBlKTsKLQotICAgIGxldCBsYXlvdXREaXJlY3Rp
b24gPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubGF5b3V0RGlyZWN0aW9uLnZhbHVlOwotICAgIGlm
IChsYXlvdXREaXJlY3Rpb24gPT09IFdlYkluc3BlY3Rvci5MYXlvdXREaXJlY3Rpb24uU3lzdGVt
KQotICAgICAgICBsYXlvdXREaXJlY3Rpb24gPSBJbnNwZWN0b3JGcm9udGVuZEhvc3QudXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbigpOwotCi0gICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1
dGUoImRpciIsIGxheW91dERpcmVjdGlvbik7CisgICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1
dGUoImRpciIsIFdlYkluc3BlY3Rvci5yZXNvbHZlZExheW91dERpcmVjdGlvbigpKTsKIAogICAg
IGZ1bmN0aW9uIHNldFRhYlNpemUoKSB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUudGFi
U2l6ZSA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy50YWJTaXplLnZhbHVlOwpAQCAtMzYzLDkgKzM1
OCwxMiBAQCBXZWJJbnNwZWN0b3IuY29udGVudExvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICB0aGlz
Ll91bmRvY2tUb29sYmFyQnV0dG9uLmVsZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3Iu
UG9wb3Zlci5JZ25vcmVBdXRvRGlzbWlzc0NsYXNzTmFtZSk7CiAgICAgdGhpcy5fdW5kb2NrVG9v
bGJhckJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CdXR0b25OYXZpZ2F0aW9u
SXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl91bmRvY2ssIHRoaXMpOwogCi0gICAgdGhpcy5fZG9j
a1JpZ2h0VG9vbGJhckJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuQnV0dG9uVG9vbGJhckl0ZW0o
ImRvY2stcmlnaHQiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRvY2sgdG8gcmlnaHQgb2Ygd2lu
ZG93IiksIG51bGwsICJJbWFnZXMvRG9ja1JpZ2h0LnN2ZyIpOwotICAgIHRoaXMuX2RvY2tSaWdo
dFRvb2xiYXJCdXR0b24uZWxlbWVudC5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5Qb3BvdmVy
Lklnbm9yZUF1dG9EaXNtaXNzQ2xhc3NOYW1lKTsKLSAgICB0aGlzLl9kb2NrUmlnaHRUb29sYmFy
QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJ1dHRvbk5hdmlnYXRpb25JdGVt
LkV2ZW50LkNsaWNrZWQsIHRoaXMuX2RvY2tSaWdodCwgdGhpcyk7CisgICAgbGV0IGRvY2tJbWFn
ZSA9IFdlYkluc3BlY3Rvci5yZXNvbHZlZExheW91dERpcmVjdGlvbigpID09PSBXZWJJbnNwZWN0
b3IuTGF5b3V0RGlyZWN0aW9uLlJUTCA/ICJJbWFnZXMvRG9ja0xlZnQuc3ZnIiA6ICJJbWFnZXMv
RG9ja1JpZ2h0LnN2ZyI7CisgICAgdGhpcy5fZG9ja1RvU2lkZVRvb2xiYXJCdXR0b24gPSBuZXcg
V2ViSW5zcGVjdG9yLkJ1dHRvblRvb2xiYXJJdGVtKCJkb2NrLXJpZ2h0IiwgV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJEb2NrIHRvIHNpZGUgb2Ygd2luZG93IiksIG51bGwsIGRvY2tJbWFnZSk7Cisg
ICAgdGhpcy5fZG9ja1RvU2lkZVRvb2xiYXJCdXR0b24uZWxlbWVudC5jbGFzc0xpc3QuYWRkKFdl
Ykluc3BlY3Rvci5Qb3BvdmVyLklnbm9yZUF1dG9EaXNtaXNzQ2xhc3NOYW1lKTsKKworICAgIGxl
dCBkb2NrVG9TaWRlQ2FsbGJhY2sgPSBXZWJJbnNwZWN0b3IucmVzb2x2ZWRMYXlvdXREaXJlY3Rp
b24oKSA9PT0gV2ViSW5zcGVjdG9yLkxheW91dERpcmVjdGlvbi5SVEwgPyB0aGlzLl9kb2NrTGVm
dCA6IHRoaXMuX2RvY2tSaWdodDsKKyAgICB0aGlzLl9kb2NrVG9TaWRlVG9vbGJhckJ1dHRvbi5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5D
bGlja2VkLCBkb2NrVG9TaWRlQ2FsbGJhY2ssIHRoaXMpOwogCiAgICAgdGhpcy5fZG9ja0JvdHRv
bVRvb2xiYXJCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLkJ1dHRvblRvb2xiYXJJdGVtKCJkb2Nr
LWJvdHRvbSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRG9jayB0byBib3R0b20gb2Ygd2luZG93
IiksIG51bGwsICJJbWFnZXMvRG9ja0JvdHRvbS5zdmciKTsKICAgICB0aGlzLl9kb2NrQm90dG9t
VG9vbGJhckJ1dHRvbi5lbGVtZW50LmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9yLlBvcG92ZXIu
SWdub3JlQXV0b0Rpc21pc3NDbGFzc05hbWUpOwpAQCAtNDA1LDcgKzQwMyw3IEBAIFdlYkluc3Bl
Y3Rvci5jb250ZW50TG9hZGVkID0gZnVuY3Rpb24oKQogICAgIHRoaXMudG9vbGJhci5hZGRUb29s
YmFySXRlbSh0aGlzLl9jbG9zZVRvb2xiYXJCdXR0b24sIFdlYkluc3BlY3Rvci5Ub29sYmFyLlNl
Y3Rpb24uQ29udHJvbCk7CiAKICAgICB0aGlzLnRvb2xiYXIuYWRkVG9vbGJhckl0ZW0odGhpcy5f
dW5kb2NrVG9vbGJhckJ1dHRvbiwgV2ViSW5zcGVjdG9yLlRvb2xiYXIuU2VjdGlvbi5MZWZ0KTsK
LSAgICB0aGlzLnRvb2xiYXIuYWRkVG9vbGJhckl0ZW0odGhpcy5fZG9ja1JpZ2h0VG9vbGJhckJ1
dHRvbiwgV2ViSW5zcGVjdG9yLlRvb2xiYXIuU2VjdGlvbi5MZWZ0KTsKKyAgICB0aGlzLnRvb2xi
YXIuYWRkVG9vbGJhckl0ZW0odGhpcy5fZG9ja1RvU2lkZVRvb2xiYXJCdXR0b24sIFdlYkluc3Bl
Y3Rvci5Ub29sYmFyLlNlY3Rpb24uTGVmdCk7CiAgICAgdGhpcy50b29sYmFyLmFkZFRvb2xiYXJJ
dGVtKHRoaXMuX2RvY2tCb3R0b21Ub29sYmFyQnV0dG9uLCBXZWJJbnNwZWN0b3IuVG9vbGJhci5T
ZWN0aW9uLkxlZnQpOwogCiAgICAgdGhpcy50b29sYmFyLmFkZFRvb2xiYXJJdGVtKHRoaXMuX3Jl
bG9hZFRvb2xiYXJCdXR0b24sIFdlYkluc3BlY3Rvci5Ub29sYmFyLlNlY3Rpb24uQ2VudGVyTGVm
dCk7CkBAIC03NTcsMTEgKzc1NSwxMiBAQCBXZWJJbnNwZWN0b3IudXBkYXRlRG9ja2VkU3RhdGUg
PSBmdW5jdGlvbihzaWRlKQogICAgICAgICByZXR1cm47CiAKICAgICB0aGlzLl9wcmV2aW91c0Rv
Y2tDb25maWd1cmF0aW9uID0gdGhpcy5fZG9ja0NvbmZpZ3VyYXRpb247CisKICAgICBpZiAoIXRo
aXMuX3ByZXZpb3VzRG9ja0NvbmZpZ3VyYXRpb24pIHsKLSAgICAgICAgaWYgKHNpZGUgPT09IFdl
Ykluc3BlY3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5SaWdodCkKKyAgICAgICAgaWYgKHNpZGUgPT09
IFdlYkluc3BlY3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5SaWdodCB8fCBzaWRlID09PSBXZWJJbnNw
ZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24uTGVmdCkKICAgICAgICAgICAgIHRoaXMuX3ByZXZpb3Vz
RG9ja0NvbmZpZ3VyYXRpb24gPSBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24uQm90dG9t
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLl9wcmV2aW91c0RvY2tDb25maWd1cmF0
aW9uID0gV2ViSW5zcGVjdG9yLkRvY2tDb25maWd1cmF0aW9uLlJpZ2h0OworICAgICAgICAgICAg
dGhpcy5fcHJldmlvdXNEb2NrQ29uZmlndXJhdGlvbiA9IFdlYkluc3BlY3Rvci5yZXNvbHZlZExh
eW91dERpcmVjdGlvbigpID09PSBXZWJJbnNwZWN0b3IuTGF5b3V0RGlyZWN0aW9uLlJUTCA/IFdl
Ykluc3BlY3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5MZWZ0IDogV2ViSW5zcGVjdG9yLkRvY2tDb25m
aWd1cmF0aW9uLlJpZ2h0OwogICAgIH0KIAogICAgIHRoaXMuX2RvY2tDb25maWd1cmF0aW9uID0g
c2lkZTsKQEAgLTc3MiwxMiArNzcxLDE1IEBAIFdlYkluc3BlY3Rvci51cGRhdGVEb2NrZWRTdGF0
ZSA9IGZ1bmN0aW9uKHNpZGUpCiAKICAgICBpZiAoc2lkZSA9PT0gV2ViSW5zcGVjdG9yLkRvY2tD
b25maWd1cmF0aW9uLkJvdHRvbSkgewogICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5h
ZGQoImRvY2tlZCIsIFdlYkluc3BlY3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5Cb3R0b20pOwotICAg
ICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoIndpbmRvdy1pbmFjdGl2ZSIsIFdl
Ykluc3BlY3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5SaWdodCk7CisgICAgICAgIGRvY3VtZW50LmJv
ZHkuY2xhc3NMaXN0LnJlbW92ZSgid2luZG93LWluYWN0aXZlIiwgV2ViSW5zcGVjdG9yLkRvY2tD
b25maWd1cmF0aW9uLlJpZ2h0LCBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24uTGVmdCk7
CiAgICAgfSBlbHNlIGlmIChzaWRlID09PSBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24u
UmlnaHQpIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCJkb2NrZWQiLCBX
ZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24uUmlnaHQpOwotICAgICAgICBkb2N1bWVudC5i
b2R5LmNsYXNzTGlzdC5yZW1vdmUoIndpbmRvdy1pbmFjdGl2ZSIsIFdlYkluc3BlY3Rvci5Eb2Nr
Q29uZmlndXJhdGlvbi5Cb3R0b20pOworICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5y
ZW1vdmUoIndpbmRvdy1pbmFjdGl2ZSIsIFdlYkluc3BlY3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5C
b3R0b20sIFdlYkluc3BlY3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5MZWZ0KTsKKyAgICB9IGVsc2Ug
aWYgKHNpZGUgPT09IFdlYkluc3BlY3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5MZWZ0KSB7CisgICAg
ICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgiZG9ja2VkIiwgV2ViSW5zcGVjdG9yLkRv
Y2tDb25maWd1cmF0aW9uLkxlZnQpOworICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5y
ZW1vdmUoIndpbmRvdy1pbmFjdGl2ZSIsIFdlYkluc3BlY3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5C
b3R0b20sIFdlYkluc3BlY3Rvci5Eb2NrQ29uZmlndXJhdGlvbi5SaWdodCk7CiAgICAgfSBlbHNl
Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgiZG9ja2VkIiwgV2ViSW5z
cGVjdG9yLkRvY2tDb25maWd1cmF0aW9uLlJpZ2h0LCBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3Vy
YXRpb24uQm90dG9tKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJk
b2NrZWQiLCBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24uUmlnaHQsIFdlYkluc3BlY3Rv
ci5Eb2NrQ29uZmlndXJhdGlvbi5MZWZ0LCBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24u
Qm90dG9tKTsKIAogICAgIHRoaXMuX2lnbm9yZVRvb2xiYXJNb2RlRGlkQ2hhbmdlRXZlbnRzID0g
ZmFsc2U7CiAKQEAgLTE1ODAsNiArMTU4MiwxMSBAQCBXZWJJbnNwZWN0b3IuX2RvY2tSaWdodCA9
IGZ1bmN0aW9uKGV2ZW50KQogICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5yZXF1ZXN0U2V0RG9j
a1NpZGUoV2ViSW5zcGVjdG9yLkRvY2tDb25maWd1cmF0aW9uLlJpZ2h0KTsKIH07CiAKK1dlYklu
c3BlY3Rvci5fZG9ja0xlZnQgPSBmdW5jdGlvbihldmVudCkKK3sKKyAgICBJbnNwZWN0b3JGcm9u
dGVuZEhvc3QucmVxdWVzdFNldERvY2tTaWRlKFdlYkluc3BlY3Rvci5Eb2NrQ29uZmlndXJhdGlv
bi5MZWZ0KTsKK307CisKIFdlYkluc3BlY3Rvci5fdG9nZ2xlUHJldmlvdXNEb2NrQ29uZmlndXJh
dGlvbiA9IGZ1bmN0aW9uKGV2ZW50KQogewogICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5yZXF1
ZXN0U2V0RG9ja1NpZGUodGhpcy5fcHJldmlvdXNEb2NrQ29uZmlndXJhdGlvbik7CkBAIC0xNTkx
LDEyICsxNTk4LDEyIEBAIFdlYkluc3BlY3Rvci5fdXBkYXRlRG9ja05hdmlnYXRpb25JdGVtcyA9
IGZ1bmN0aW9uKCkKICAgICAgICAgdGhpcy5fY2xvc2VUb29sYmFyQnV0dG9uLmhpZGRlbiA9ICF0
aGlzLmRvY2tlZDsKICAgICAgICAgdGhpcy5fdW5kb2NrVG9vbGJhckJ1dHRvbi5oaWRkZW4gPSB0
aGlzLl9kb2NrQ29uZmlndXJhdGlvbiA9PT0gV2ViSW5zcGVjdG9yLkRvY2tDb25maWd1cmF0aW9u
LlVuZG9ja2VkOwogICAgICAgICB0aGlzLl9kb2NrQm90dG9tVG9vbGJhckJ1dHRvbi5oaWRkZW4g
PSB0aGlzLl9kb2NrQ29uZmlndXJhdGlvbiA9PT0gV2ViSW5zcGVjdG9yLkRvY2tDb25maWd1cmF0
aW9uLkJvdHRvbTsKLSAgICAgICAgdGhpcy5fZG9ja1JpZ2h0VG9vbGJhckJ1dHRvbi5oaWRkZW4g
PSB0aGlzLl9kb2NrQ29uZmlndXJhdGlvbiA9PT0gV2ViSW5zcGVjdG9yLkRvY2tDb25maWd1cmF0
aW9uLlJpZ2h0OworICAgICAgICB0aGlzLl9kb2NrVG9TaWRlVG9vbGJhckJ1dHRvbi5oaWRkZW4g
PSB0aGlzLl9kb2NrQ29uZmlndXJhdGlvbiA9PT0gV2ViSW5zcGVjdG9yLkRvY2tDb25maWd1cmF0
aW9uLlJpZ2h0IHx8IHRoaXMuX2RvY2tDb25maWd1cmF0aW9uID09PSBXZWJJbnNwZWN0b3IuRG9j
a0NvbmZpZ3VyYXRpb24uTGVmdDsKICAgICB9IGVsc2UgewogICAgICAgICB0aGlzLl9jbG9zZVRv
b2xiYXJCdXR0b24uaGlkZGVuID0gdHJ1ZTsKICAgICAgICAgdGhpcy5fdW5kb2NrVG9vbGJhckJ1
dHRvbi5oaWRkZW4gPSB0cnVlOwogICAgICAgICB0aGlzLl9kb2NrQm90dG9tVG9vbGJhckJ1dHRv
bi5oaWRkZW4gPSB0cnVlOwotICAgICAgICB0aGlzLl9kb2NrUmlnaHRUb29sYmFyQnV0dG9uLmhp
ZGRlbiA9IHRydWU7CisgICAgICAgIHRoaXMuX2RvY2tUb1NpZGVUb29sYmFyQnV0dG9uLmhpZGRl
biA9IHRydWU7CiAgICAgfQogfTsKIApAQCAtMTcxNCw3ICsxNzIxLDcgQEAgV2ViSW5zcGVjdG9y
Ll90b29sYmFyTW91c2VEb3duID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgaWYgKGV2ZW50LmN0cmxL
ZXkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICh0aGlzLl9kb2NrQ29uZmlndXJhdGlvbiA9
PT0gV2ViSW5zcGVjdG9yLkRvY2tDb25maWd1cmF0aW9uLlJpZ2h0KQorICAgIGlmICh0aGlzLl9k
b2NrQ29uZmlndXJhdGlvbiA9PT0gV2ViSW5zcGVjdG9yLkRvY2tDb25maWd1cmF0aW9uLlJpZ2h0
IHx8IHRoaXMuX2RvY2tDb25maWd1cmF0aW9uID09PSBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3Vy
YXRpb24uTGVmdCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHRoaXMuZG9ja2VkKQpAQCAt
MTc1NywxNSArMTc2NCwyNyBAQCBXZWJJbnNwZWN0b3IuX2RvY2tlZFJlc2l6ZXJNb3VzZURvd24g
PSBmdW5jdGlvbihldmVudCkKIAogICAgICAgICBsYXN0U2NyZWVuUG9zaXRpb24gPSBwb3NpdGlv
bjsKIAotICAgICAgICAvLyBJZiBkZWx0YSBpcyBwb3NpdGl2ZSB0aGUgZG9ja2VkIEluc3BlY3Rv
ciBzaXplIGlzIGRlY3JlYXNpbmcsIGluIHdoaWNoIGNhc2UgdGhlIGN1cnNvciBjbGllbnQgcG9z
aXRpb24KLSAgICAgICAgLy8gd2l0aCByZXNwZWN0IHRvIHRoZSB0YXJnZXQgY2Fubm90IGJlIGxl
c3MgdGhhbiB0aGUgZmlyc3QgbW91c2UgZG93biBwb3NpdGlvbiB3aXRoaW4gdGhlIHRhcmdldC4K
LSAgICAgICAgaWYgKGRlbHRhID4gMCAmJiBjbGllbnRQb3NpdGlvbiA8IGZpcnN0Q2xpZW50UG9z
aXRpb24pCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmICh0aGlzLl9kb2NrQ29uZmln
dXJhdGlvbiA9PT0gV2ViSW5zcGVjdG9yLkRvY2tDb25maWd1cmF0aW9uLkxlZnQpIHsKKyAgICAg
ICAgICAgIC8vIElmIHRoZSBtb3VzZSBpcyB0cmF2ZWxsaW5nIHJpZ2h0d2FyZCBidXQgaXMgcG9z
aXRpb25lZCBsZWZ0IG9mIHRoZSByZXNpemVyLCBpZ25vcmUgdGhlIGV2ZW50LgorICAgICAgICAg
ICAgaWYgKGRlbHRhID4gMCAmJiBjbGllbnRQb3NpdGlvbiA8IGZpcnN0Q2xpZW50UG9zaXRpb24p
CisgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIC8vIElmIGRlbHRhIGlzIG5lZ2F0
aXZlIHRoZSBkb2NrZWQgSW5zcGVjdG9yIHNpemUgaXMgaW5jcmVhc2luZywgaW4gd2hpY2ggY2Fz
ZSB0aGUgY3Vyc29yIGNsaWVudCBwb3NpdGlvbgotICAgICAgICAvLyB3aXRoIHJlc3BlY3QgdG8g
dGhlIHRhcmdldCBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIHRoZSBmaXJzdCBtb3VzZSBkb3duIHBv
c2l0aW9uIHdpdGhpbiB0aGUgdGFyZ2V0LgotICAgICAgICBpZiAoZGVsdGEgPCAwICYmIGNsaWVu
dFBvc2l0aW9uID4gZmlyc3RDbGllbnRQb3NpdGlvbikKLSAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIC8vIElmIHRoZSBtb3VzZSBpcyB0cmF2ZWxsaW5nIGxlZnR3YXJkIGJ1dCBpcyBw
b3NpdGlvbmVkIHRvIHRoZSByaWdodCBvZiB0aGUgcmVzaXplciwgaWdub3JlIHRoZSBldmVudC4K
KyAgICAgICAgICAgIGlmIChkZWx0YSA8IDAgJiYgY2xpZW50UG9zaXRpb24gPiB3aW5kb3dbd2lu
ZG93UHJvcGVydHldKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgLy8g
V2UgbGF0ZXIgc3VidHJhY3QgdGhlIGRlbHRhIGZyb20gdGhlIGN1cnJlbnQgcG9zaXRpb24sIGJ1
dCBzaW5jZSB0aGUgaW5zcGVjdGVkIHZpZXcgYW5kIGluc3BlY3RvciB2aWV3CisgICAgICAgICAg
ICAvLyBhcmUgZmxpcHBlZCB3aGVuIGRvY2tlZCB0byBsZWZ0LCB3ZSB3YW50IGRyYWdnaW5nIHRv
IGhhdmUgdGhlIG9wcG9zaXRlIGVmZmVjdCBmcm9tIGRvY2tlZCB0byByaWdodC4KKyAgICAgICAg
ICAgIGRlbHRhICo9IC0xOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gSWYgdGhl
IG1vdXNlIGlzIHRyYXZlbGxpbmcgZG93bndhcmQvcmlnaHR3YXJkIGJ1dCBpcyBwb3NpdGlvbmVk
IGFib3ZlL2xlZnQgb2YgdGhlIHJlc2l6ZXIsIGlnbm9yZSB0aGUgZXZlbnQuCisgICAgICAgICAg
ICBpZiAoZGVsdGEgPiAwICYmIGNsaWVudFBvc2l0aW9uIDwgZmlyc3RDbGllbnRQb3NpdGlvbikK
KyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIC8vIElmIHRoZSBtb3VzZSBp
cyB0cmF2ZWxsaW5nIHVwd2FyZC9sZWZ0d2FyZCBidXQgaXMgcG9zaXRpb25lZCBiZWxvdy9yaWdo
dCBvZiB0aGUgcmVzaXplciwgaWdub3JlIHRoZSBldmVudC4KKyAgICAgICAgICAgIGlmIChkZWx0
YSA8IDAgJiYgY2xpZW50UG9zaXRpb24gPiBmaXJzdENsaWVudFBvc2l0aW9uKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCiAgICAgICAgIGxldCBkaW1lbnNpb24gPSBNYXRo
Lm1heCgwLCB3aW5kb3dbd2luZG93UHJvcGVydHldIC0gZGVsdGEpOwogICAgICAgICAvLyBJZiB6
b29tZWQgaW4vb3V0LCB0aGVyZSBiZSBncmVhdGVyL2Zld2VyIGRvY3VtZW50IHBpeGVscyBzaG93
biwgYnV0IHRoZSBpbnNwZWN0b3IncwpAQCAtMjE0NCwxMCArMjE2MywxNCBAQCBXZWJJbnNwZWN0
b3Iuc2V0Wm9vbUZhY3RvciA9IGZ1bmN0aW9uKGZhY3RvcikKICAgICBXZWJJbnNwZWN0b3Iuc2V0
dGluZ3Muem9vbUZhY3Rvci52YWx1ZSA9IEluc3BlY3RvckZyb250ZW5kSG9zdC56b29tRmFjdG9y
KCk7CiB9OwogCi1XZWJJbnNwZWN0b3IuZ2V0TGF5b3V0RGlyZWN0aW9uID0gZnVuY3Rpb24oKQor
V2ViSW5zcGVjdG9yLnJlc29sdmVkTGF5b3V0RGlyZWN0aW9uID0gZnVuY3Rpb24oKQogewotICAg
IHJldHVybiBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubGF5b3V0RGlyZWN0aW9uLnZhbHVlOwotfTsK
KyAgICBsZXQgbGF5b3V0RGlyZWN0aW9uID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmxheW91dERp
cmVjdGlvbi52YWx1ZTsKKyAgICBpZiAobGF5b3V0RGlyZWN0aW9uID09PSBXZWJJbnNwZWN0b3Iu
TGF5b3V0RGlyZWN0aW9uLlN5c3RlbSkKKyAgICAgICAgbGF5b3V0RGlyZWN0aW9uID0gSW5zcGVj
dG9yRnJvbnRlbmRIb3N0LnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKTsKKworICAgICBy
ZXR1cm4gbGF5b3V0RGlyZWN0aW9uOworfQogCiBXZWJJbnNwZWN0b3Iuc2V0TGF5b3V0RGlyZWN0
aW9uID0gZnVuY3Rpb24odmFsdWUpCiB7CkBAIC0yMTU4LDYgKzIxODEsMTMgQEAgV2ViSW5zcGVj
dG9yLnNldExheW91dERpcmVjdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKQogICAgICAgICByZXR1cm47
CiAKICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubGF5b3V0RGlyZWN0aW9uLnZhbHVlID0gdmFs
dWU7CisKKyAgICBpZiAodmFsdWUgPT09IFdlYkluc3BlY3Rvci5MYXlvdXREaXJlY3Rpb24uUlRM
ICYmIHRoaXMuX2RvY2tDb25maWd1cmF0aW9uID09PSBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3Vy
YXRpb24uUmlnaHQpCisgICAgICAgIHRoaXMuX2RvY2tMZWZ0KCk7CisKKyAgICBpZiAodmFsdWUg
PT09IFdlYkluc3BlY3Rvci5MYXlvdXREaXJlY3Rpb24uTFRSICYmIHRoaXMuX2RvY2tDb25maWd1
cmF0aW9uID09PSBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24uTGVmdCkKKyAgICAgICAg
dGhpcy5fZG9ja1JpZ2h0KCk7CisKICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CiB9Owog
CkBAIC0yNjU3LDYgKzI2ODcsNyBAQCBXZWJJbnNwZWN0b3IuZGlhbG9nV2FzRGlzbWlzc2VkID0g
ZnVuY3Rpb24oZGlhbG9nKQogCiBXZWJJbnNwZWN0b3IuRG9ja0NvbmZpZ3VyYXRpb24gPSB7CiAg
ICAgUmlnaHQ6ICJyaWdodCIsCisgICAgTGVmdDogImxlZnQiLAogICAgIEJvdHRvbTogImJvdHRv
bSIsCiAgICAgVW5kb2NrZWQ6ICJ1bmRvY2tlZCIsCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0RvY2tMZWZ0LnN2ZyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9Eb2NrTGVmdC5zdmcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTkxMThhNTdkMzAxNDRjZmY0NmYxMGEwMjY4YTk2OGZhMmYwNzc1ZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9Eb2NrTGVm
dC5zdmcKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYt
OCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuIC0tPgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290
IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+CisgICAgPHJlY3QgZmlsbD0ibm9u
ZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHg9IjAuNSIgeT0iMS41IiB3aWR0aD0iMTUiIGhlaWdo
dD0iMTMiLz4KKyAgICA8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgZD0i
TSA2LjUgMiBMIDYuNSAxNCBMIDYuNSAyIFoiLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5jc3MgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzcwppbmRleCBkOTlhOWIyZTIx
Mzk2NGM4MmMwYmJjMmJlNjhkYTEwMzY2ZmI0MGFjLi44NGFhYTU4YjQ1ZTBkMDAxNjI0MGM2Yzdi
YTg3YTU4NDdjZjlkNDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9NYWluLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9NYWluLmNzcwpAQCAtNjAsNiArNjAsMTAgQEAgYm9keS5kb2NrZWQucmln
aHQgewogICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKIH0K
IAorYm9keS5kb2NrZWQubGVmdCB7CisgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0t
Ym9yZGVyLWNvbG9yKTsKK30KKwogI2RvY2tlZC1yZXNpemVyIHsKICAgICBkaXNwbGF5OiBub25l
OwogCkBAIC02OCwxMSArNzIsMTIgQEAgYm9keS5kb2NrZWQucmlnaHQgewogCiBib2R5LmRvY2tl
ZCAjZG9ja2VkLXJlc2l6ZXIgewogICAgIGRpc3BsYXk6IGJsb2NrOwotfQogCi1ib2R5LmRvY2tl
ZC5ib3R0b20gI2RvY2tlZC1yZXNpemVyIHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAg
dG9wOiAwOworfQorCitib2R5LmRvY2tlZC5ib3R0b20gI2RvY2tlZC1yZXNpemVyIHsKICAgICBs
ZWZ0OiAwOwogICAgIHJpZ2h0OiAwOwogICAgIGhlaWdodDogM3B4OwpAQCAtODEsOCArODYsNiBA
QCBib2R5LmRvY2tlZC5ib3R0b20gI2RvY2tlZC1yZXNpemVyIHsKIH0KIAogYm9keS5kb2NrZWQu
cmlnaHQgI2RvY2tlZC1yZXNpemVyIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9w
OiAwOwogICAgIGxlZnQ6IDA7CiAgICAgYm90dG9tOiAwOwogICAgIHdpZHRoOiAzcHg7CkBAIC05
MCw2ICs5MywxNCBAQCBib2R5LmRvY2tlZC5yaWdodCAjZG9ja2VkLXJlc2l6ZXIgewogICAgIGN1
cnNvcjogY29sLXJlc2l6ZTsKIH0KIAorYm9keS5kb2NrZWQubGVmdCAjZG9ja2VkLXJlc2l6ZXIg
eworICAgIHJpZ2h0OiAwOworICAgIGJvdHRvbTogMDsKKyAgICB3aWR0aDogM3B4OworCisgICAg
Y3Vyc29yOiBjb2wtcmVzaXplOworfQorCiBib2R5LmRvY2tlZC5ib3R0b20gI3Rvb2xiYXIgewog
ICAgIGN1cnNvcjogcm93LXJlc2l6ZTsKIH0KQEAgLTEzMiw3ICsxNDMsNyBAQCBpbnB1dFt0eXBl
PXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sgewogICAgIGhlaWdodDogMTAw
JTsKIH0KIAotYm9keS5kb2NrZWQucmlnaHQgI25hdmlnYXRpb24tc2lkZWJhci5jb2xsYXBzZWQg
PiAucmVzaXplciB7Citib2R5LmRvY2tlZDptYXRjaGVzKC5yaWdodCwgLmxlZnQpICNuYXZpZ2F0
aW9uLXNpZGViYXIuY29sbGFwc2VkID4gLnJlc2l6ZXIgewogICAgIHBvaW50ZXItZXZlbnRzOiBu
b25lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVj
dG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5
LmNwcAppbmRleCAyN2I0ZjMxNjE3MTJlNWJiNmUwNWZmZTgzMTQ3NzBlMmQwOTdjNjFlLi4zOGM4
MDM5ZjdmMDgyNGQ1MDY1YmEzMzE5MDc0M2Q1YTZjODJlNWI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAKQEAgLTIxNyw2ICsyMTcsMTEgQEAg
dm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6YXR0YWNoUmlnaHQoKQogICAgIGF0dGFjaChBdHRhY2ht
ZW50U2lkZTo6UmlnaHQpOwogfQogCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjphdHRhY2hMZWZ0
KCkKK3sKKyAgICBhdHRhY2goQXR0YWNobWVudFNpZGU6OkxlZnQpOworfQorCiB2b2lkIFdlYklu
c3BlY3RvclByb3h5OjphdHRhY2goQXR0YWNobWVudFNpZGUgc2lkZSkKIHsKICAgICBpZiAoIW1f
aW5zcGVjdGVkUGFnZSB8fCAhY2FuQXR0YWNoKCkpCkBAIC0yNDAsNiArMjQ1LDEwIEBAIHZvaWQg
V2ViSW5zcGVjdG9yUHJveHk6OmF0dGFjaChBdHRhY2htZW50U2lkZSBzaWRlKQogICAgIGNhc2Ug
QXR0YWNobWVudFNpZGU6OlJpZ2h0OgogICAgICAgICBtX2luc3BlY3RvclBhZ2UtPnByb2Nlc3Mo
KS5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6QXR0YWNoZWRSaWdodCgpLCBtX2luc3Bl
Y3RvclBhZ2UtPnBhZ2VJRCgpKTsKICAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEF0dGFjaG1l
bnRTaWRlOjpMZWZ0OgorICAgICAgICBtX2luc3BlY3RvclBhZ2UtPnByb2Nlc3MoKS5zZW5kKE1l
c3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6QXR0YWNoZWRMZWZ0KCksIG1faW5zcGVjdG9yUGFnZS0+
cGFnZUlEKCkpOworICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBwbGF0Zm9ybUF0dGFjaCgp
OwpAQCAtNDkxLDYgKzUwMCwxMCBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpjcmVhdGVJbnNw
ZWN0b3JQYWdlKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSWRlbnRpZmllcgogICAgICAgICAg
ICAgY2FzZSBBdHRhY2htZW50U2lkZTo6UmlnaHQ6CiAgICAgICAgICAgICAgICAgbV9pbnNwZWN0
b3JQYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yVUk6OkF0dGFjaGVk
UmlnaHQoKSwgbV9pbnNwZWN0b3JQYWdlLT5wYWdlSUQoKSk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgICAgIGNhc2UgQXR0YWNobWVudFNpZGU6OkxlZnQ6CisgICAgICAgICAg
ICAgICAgbV9pbnNwZWN0b3JQYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViSW5zcGVj
dG9yVUk6OkF0dGFjaGVkTGVmdCgpLCBtX2luc3BlY3RvclBhZ2UtPnBhZ2VJRCgpKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICBtX2luc3BlY3RvclBhZ2UtPnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0
b3JVSTo6RGV0YWNoZWQoKSwgbV9pbnNwZWN0b3JQYWdlLT5wYWdlSUQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCmluZGV4IDdmNDEzYWJlNGU1ODE5
YzVmOThkZjU2NDcwOWEyYWE1OTg5ZWI2Y2EuLjg3ZDAwMDdjODg1YTRjNDc2MGQwZGEwY2ZkODg2
ZDhhMjBhN2IxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNw
ZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQ
cm94eS5oCkBAIC03MCw3ICs3MCw4IEBAIGNsYXNzIFdlYlByZWZlcmVuY2VzOwogCiBlbnVtIGNs
YXNzIEF0dGFjaG1lbnRTaWRlIHsKICAgICBCb3R0b20sCi0gICAgUmlnaHQKKyAgICBSaWdodCwK
KyAgICBMZWZ0LAogfTsKIAogY2xhc3MgV2ViSW5zcGVjdG9yUHJveHkgOiBwdWJsaWMgQVBJOjpP
YmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpJbnNwZWN0b3I+LCBwdWJsaWMgSVBDOjpNZXNz
YWdlUmVjZWl2ZXIgewpAQCAtMTMwLDYgKzEzMSw3IEBAIHB1YmxpYzoKICAgICBBdHRhY2htZW50
U2lkZSBhdHRhY2htZW50U2lkZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXR0YWNobWVudFNpZGU7IH0K
ICAgICBib29sIGlzQXR0YWNoZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQXR0YWNoZWQ7IH0KICAg
ICB2b2lkIGF0dGFjaFJpZ2h0KCk7CisgICAgdm9pZCBhdHRhY2hMZWZ0KCk7CiAgICAgdm9pZCBh
dHRhY2hCb3R0b20oKTsKICAgICB2b2lkIGF0dGFjaChBdHRhY2htZW50U2lkZSA9IEF0dGFjaG1l
bnRTaWRlOjpCb3R0b20pOwogICAgIHZvaWQgZGV0YWNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYzJl
ZDc4MmRiMTljYjhiNGFlY2FlYjk0NTc4ZDI1ZjBkYTI2NzdjNC4uY2IxOTQ2ZGI3NDg5NGNjMTdk
NzYzZmJkOTA4YzlhYjJkYzlmMDY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzUsNiArMzUsNyBAQCBt
ZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3JQcm94eSB7CiAKICAgICBBdHRhY2hCb3R0b20oKQogICAg
IEF0dGFjaFJpZ2h0KCkKKyAgICBBdHRhY2hMZWZ0KCkKICAgICBEZXRhY2goKQogCiAgICAgQXR0
YWNoQXZhaWxhYmlsaXR5Q2hhbmdlZChib29sIGF2YWlsYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCmluZGV4IDgxOGJk
MzkwZDQ4M2QwODIyYmFlNzkzNGUxMDZmZGJiMGNkZmY4NTQuLmU4MWVmNTk0M2I2MTYyOTk4Njgx
NTAzNTJjMTE4OTAyMDU4NmE0OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQpAQCAtMjg3LDYgKzI4Nyw5IEBAIFdlYlBh
Z2VQcm94eSogV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSgp
CiAgICAgICAgIGNhc2UgQXR0YWNobWVudFNpZGU6OlJpZ2h0OgogICAgICAgICAgICAgaW5pdGlh
bFJlY3QgPSBOU01ha2VSZWN0KDAsIDAsIGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpLmluc3Bl
Y3RvckF0dGFjaGVkV2lkdGgoKSwgTlNIZWlnaHQoaW5zcGVjdGVkVmlld0ZyYW1lKSk7CiAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBdHRhY2htZW50U2lkZTo6TGVmdDoKKyAgICAg
ICAgICAgIGluaXRpYWxSZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBOU1dpZHRoKGluc3BlY3RlZFZp
ZXdGcmFtZSkgLSBpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKS5pbnNwZWN0b3JBdHRhY2hlZFdp
ZHRoKCksIE5TSGVpZ2h0KGluc3BlY3RlZFZpZXdGcmFtZSkpOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBpbml0aWFsUmVjdCA9IE5TTWFrZVJl
Y3QoMCwgMCwgaW5pdGlhbFdpbmRvd1dpZHRoLCBpbml0aWFsV2luZG93SGVpZ2h0KTsKQEAgLTU2
Miw2ICs1NjUsMjMgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdGVkVmlld0ZyYW1l
RGlkQ2hhbmdlKENHRmxvYXQgY3VycmVudERpbWVuc2lvbikKICAgICAgICAgaW5zcGVjdG9yRnJh
bWUgPSBOU01ha2VSZWN0KHBhcmVudFdpZHRoIC0gaW5zcGVjdG9yV2lkdGgsIDAsIGluc3BlY3Rv
cldpZHRoLCBOU0hlaWdodChwYXJlbnRCb3VuZHMpIC0gaW5zZXRFeGNsdWRpbmdCYW5uZXJzKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQorCisgICAgY2FzZSBBdHRhY2htZW50U2lkZTo6TGVmdDog
eworICAgICAgICBpZiAoIWN1cnJlbnREaW1lbnNpb24pCisgICAgICAgICAgICBjdXJyZW50RGlt
ZW5zaW9uID0gTlNXaWR0aChbbV9pbnNwZWN0b3JWaWV3IGZyYW1lXSk7CisKKyAgICAgICAgQ0dG
bG9hdCBwYXJlbnRXaWR0aCA9IE5TV2lkdGgocGFyZW50Qm91bmRzKTsKKyAgICAgICAgQ0dGbG9h
dCBpbnNwZWN0b3JXaWR0aCA9IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNvbnN0cmFp
bmVkQXR0YWNoZWRXaW5kb3dXaWR0aChjdXJyZW50RGltZW5zaW9uLCBwYXJlbnRXaWR0aCk7CisK
KyAgICAgICAgLy8gUHJlc2VydmUgdGhlIHRvcCBwb3NpdGlvbiBvZiB0aGUgaW5zcGVjdGVkIHZp
ZXcgc28gYmFubmVycyBpbiBTYWZhcmkgc3RpbGwgd29yay4gQnV0IGRvbid0IHVzZSB0aGF0Cisg
ICAgICAgIC8vIHRvcCBwb3NpdGlvbiBmb3IgdGhlIGluc3BlY3RvciB2aWV3IHNpbmNlIHRoZSBi
YW5uZXJzIG9ubHkgc3RyZXRjaCBhcyB3aWRlIGFzIHRoZSB0aGUgaW5zcGVjdGVkIHZpZXcuCisg
ICAgICAgIGluc3BlY3RlZFZpZXdGcmFtZSA9IE5TTWFrZVJlY3QoaW5zcGVjdG9yV2lkdGgsIDAs
IE5TV2lkdGgoaW5zcGVjdGVkVmlld0ZyYW1lKSwgaW5zcGVjdGVkVmlld1RvcCk7CisgICAgICAg
IENHRmxvYXQgaW5zZXRFeGNsdWRpbmdCYW5uZXJzID0gMDsKKyAgICAgICAgaWYgKFtpbnNwZWN0
ZWRWaWV3IGlzS2luZE9mQ2xhc3M6W1dLVmlldyBjbGFzc11dKQorICAgICAgICAgICAgaW5zZXRF
eGNsdWRpbmdCYW5uZXJzID0gKChXS1ZpZXcgKilpbnNwZWN0ZWRWaWV3KS5fdG9wQ29udGVudElu
c2V0IC0gKChXS1ZpZXcgKilpbnNwZWN0ZWRWaWV3KS5fdG90YWxIZWlnaHRPZkJhbm5lcnM7Cisg
ICAgICAgIGluc3BlY3RvckZyYW1lID0gTlNNYWtlUmVjdCgwLCAwLCBpbnNwZWN0b3JXaWR0aCwg
TlNIZWlnaHQocGFyZW50Qm91bmRzKSAtIGluc2V0RXhjbHVkaW5nQmFubmVycyk7CisgICAgICAg
IGJyZWFrOworICAgIH0KICAgICB9CiAKICAgICBpZiAoTlNFcXVhbFJlY3RzKFttX2luc3BlY3Rv
clZpZXcgZnJhbWVdLCBpbnNwZWN0b3JGcmFtZSkgJiYgTlNFcXVhbFJlY3RzKFtpbnNwZWN0ZWRW
aWV3IGZyYW1lXSwgaW5zcGVjdGVkVmlld0ZyYW1lKSkKQEAgLTYxMSw2ICs2MzEsMTAgQEAgdm9p
ZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2goKQogICAgICAgICBbbV9pbnNwZWN0
b3JWaWV3IHNldEF1dG9yZXNpemluZ01hc2s6TlNWaWV3SGVpZ2h0U2l6YWJsZSB8IE5TVmlld01p
blhNYXJnaW5dOwogICAgICAgICBjdXJyZW50RGltZW5zaW9uID0gaW5zcGVjdG9yUGFnZVByZWZl
cmVuY2VzKCkuaW5zcGVjdG9yQXR0YWNoZWRXaWR0aCgpOwogICAgICAgICBicmVhazsKKyAgICBj
YXNlIEF0dGFjaG1lbnRTaWRlOjpMZWZ0OgorICAgICAgICBbbV9pbnNwZWN0b3JWaWV3IHNldEF1
dG9yZXNpemluZ01hc2s6TlNWaWV3SGVpZ2h0U2l6YWJsZSB8IE5TVmlld01heFhNYXJnaW5dOwor
ICAgICAgICBjdXJyZW50RGltZW5zaW9uID0gaW5zcGVjdG9yUGFnZVByZWZlcmVuY2VzKCkuaW5z
cGVjdG9yQXR0YWNoZWRXaWR0aCgpOworICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBpbnNw
ZWN0ZWRWaWV3RnJhbWVEaWRDaGFuZ2UoY3VycmVudERpbWVuc2lvbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmNwcAppbmRleCBh
NDFiM2MzMDZlNWJhY2U1NWI3NmUzOTdjMjQ5ZTY1MTkzNDU3NDdmLi5hMDFlZGIzNzBjZTI3MTE3
NWEyNzBkOTdjMWJjNWQ5OTU2ODcxMjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5jcHAKQEAgLTE1Myw2ICsxNTMsOSBAQCB2
b2lkIFdlYkluc3BlY3RvclVJOjpyZXF1ZXN0U2V0RG9ja1NpZGUoRG9ja1NpZGUgc2lkZSkKICAg
ICBjYXNlIERvY2tTaWRlOjpSaWdodDoKICAgICAgICAgd2ViUHJvY2Vzcy5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6QXR0YWNoUmln
aHQoKSwgbV9pbnNwZWN0ZWRQYWdlSWRlbnRpZmllcik7CiAgICAgICAgIGJyZWFrOworICAgIGNh
c2UgRG9ja1NpZGU6OkxlZnQ6CisgICAgICAgIHdlYlByb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OkF0dGFjaExlZnQoKSwg
bV9pbnNwZWN0ZWRQYWdlSWRlbnRpZmllcik7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRG9j
a1NpZGU6OkJvdHRvbToKICAgICAgICAgd2ViUHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6QXR0YWNoQm90dG9tKCksIG1f
aW5zcGVjdGVkUGFnZUlkZW50aWZpZXIpOwogICAgICAgICBicmVhazsKQEAgLTE3Miw2ICsxNzUs
MTAgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSTo6c2V0RG9ja1NpZGUoRG9ja1NpZGUgc2lkZSkKICAg
ICAgICAgc2lkZVN0cmluZyA9ICJyaWdodCI7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBE
b2NrU2lkZTo6TGVmdDoKKyAgICAgICAgc2lkZVN0cmluZyA9ICJsZWZ0IjsKKyAgICAgICAgYnJl
YWs7CisKICAgICBjYXNlIERvY2tTaWRlOjpCb3R0b206CiAgICAgICAgIHNpZGVTdHJpbmcgPSAi
Ym90dG9tIjsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5oCmluZGV4IGQ2Y2ZiYThkZmM3MzAxMjhkOTUzMTU4
OWE2YzYwOTM3OGEzODU4NWMuLjQ0NjE4NWIxMmFmMTJmYzY3ZGZlZGU1ZmVjNDJiNmFmNjc2ZDBj
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNw
ZWN0b3JVSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNw
ZWN0b3JVSS5oCkBAIC02Niw2ICs2Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYXR0YWNoZWRC
b3R0b20oKSB7IHNldERvY2tTaWRlKERvY2tTaWRlOjpCb3R0b20pOyB9CiAgICAgdm9pZCBhdHRh
Y2hlZFJpZ2h0KCkgeyBzZXREb2NrU2lkZShEb2NrU2lkZTo6UmlnaHQpOyB9CisgICAgdm9pZCBh
dHRhY2hlZExlZnQoKSB7IHNldERvY2tTaWRlKERvY2tTaWRlOjpMZWZ0KTsgfQogICAgIHZvaWQg
ZGV0YWNoZWQoKSB7IHNldERvY2tTaWRlKERvY2tTaWRlOjpVbmRvY2tlZCk7IH0KIAogICAgIHZv
aWQgc2V0RG9ja1NpZGUoRG9ja1NpZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLm1lc3NhZ2VzLmluCmluZGV4IDI3
ZDU0ODllOTM3MWZhZTk3OGJjMDg2NGUzMTlhNjUzMjc3ZWNjYTUuLjM3MmVkM2NlYTMxYWU1YzEx
ZjBmN2U3ZTJhOWEwZmY5NTdhNWVkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW4KQEAgLTI1
LDYgKzI1LDcgQEAgbWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9yVUkgewogCiAgICAgQXR0YWNoZWRC
b3R0b20oKQogICAgIEF0dGFjaGVkUmlnaHQoKQorICAgIEF0dGFjaGVkTGVmdCgpCiAgICAgRGV0
YWNoZWQoKQogICAgIFNldERvY2tpbmdVbmF2YWlsYWJsZShib29sIHVuYXZhaWxhYmxlKQogICAg
IFNldElzVmlzaWJsZShib29sIHZpc2libGUpCg==
</data>
<flag name="review"
          id="323731"
          type_id="1"
          status="+"
          setter="mattbaker"
    />
    <flag name="commit-queue"
          id="323732"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>