<?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>68155</bug_id>
          
          <creation_ts>2011-09-15 05:44:15 -0700</creation_ts>
          <short_desc>Web Inspector: refactor ConsoleView, Drawer, ConsolePanel trio.</short_desc>
          <delta_ts>2011-09-21 05:06:10 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>65113</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>caseq</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>ossy</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>467752</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-15 05:44:15 -0700</bug_when>
    <thetext>1. ConsoleView, ConsolePanel and Drawer are all Views with custom show/hide implementations and weird DOM element ownership.
2. We have a number of cases when switching console from full panel to drawer mode and back result in UI glitches.
For the sake of code clarity and no glitches, I&apos;d like to sacrifice the &quot;grow into full screen&quot; console animation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467758</commentid>
    <comment_count>1</comment_count>
      <attachid>107481</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-15 05:57:08 -0700</bug_when>
    <thetext>Created attachment 107481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467766</commentid>
    <comment_count>2</comment_count>
      <attachid>107487</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-15 06:26:04 -0700</bug_when>
    <thetext>Created attachment 107487
[Patch] with fixed drawer status bar style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467773</commentid>
    <comment_count>3</comment_count>
      <attachid>107487</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-15 07:02:37 -0700</bug_when>
    <thetext>Comment on attachment 107487
[Patch] with fixed drawer status bar style.

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

&gt; Source/WebCore/inspector/front-end/ConsolePanel.js:57
&gt; +        this._view.show(this.element);

passing parent element to show() is redundant here.

&gt; Source/WebCore/inspector/front-end/Drawer.js:173
&gt; +    resize: function()

shouldn&apos;t this propagate resize to the child view?

&gt; Source/WebCore/inspector/front-end/inspector.js:219
&gt; +        this._toggleConsoleButton.toggled = !this._toggleConsoleButton.toggled;

I think the way we used to maintain console button state previously was better: this gave us somewhat better encapsulation, less logic in inspector.js and a clear assertion that the state of the button matches that of the view. Now we have this logic spread over 3 methods of inspector.js.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467783</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-15 07:18:13 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 107487 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=107487&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/ConsolePanel.js:57
&gt; &gt; +        this._view.show(this.element);
&gt; 
&gt; passing parent element to show() is redundant here.

Done.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/Drawer.js:173
&gt; &gt; +    resize: function()
&gt; 
&gt; shouldn&apos;t this propagate resize to the child view?

Done.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/inspector.js:219
&gt; &gt; +        this._toggleConsoleButton.toggled = !this._toggleConsoleButton.toggled;
&gt; 
&gt; I think the way we used to maintain console button state previously was better: this gave us somewhat better encapsulation, less logic in inspector.js and a clear assertion that the state of the button matches that of the view. Now we have this logic spread over 3 methods of inspector.js.

ConsoleView should not host a button that toggles drawer. This button is a glue, and our glue lives in the inspector.js.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467785</commentid>
    <comment_count>5</comment_count>
      <attachid>107492</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-15 07:22:27 -0700</bug_when>
    <thetext>Created attachment 107492
[Patch] Review comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467787</commentid>
    <comment_count>6</comment_count>
      <attachid>107492</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-15 07:26:33 -0700</bug_when>
    <thetext>Comment on attachment 107492
[Patch] Review comments addressed

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469507</commentid>
    <comment_count>7</comment_count>
      <attachid>107882</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-19 10:47:45 -0700</bug_when>
    <thetext>Created attachment 107882
[Patch] rebaselined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470004</commentid>
    <comment_count>8</comment_count>
      <attachid>107882</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-09-20 05:55:42 -0700</bug_when>
    <thetext>Comment on attachment 107882
[Patch] rebaselined.

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        screen&quot; console animation.

The one line description suggestions this is just a refactor, but it is actually a behavior change. Maybe there is a better one-line description?

&gt; Source/WebCore/inspector/front-end/ConsolePanel.js:31
&gt;      WebInspector.Panel.call(this, &quot;console&quot;);

While you are here, why not add an /**@constructor*/ annotation to this ConsolePanel ctor. Ditto for ConsoleView below.

&gt; Source/WebCore/inspector/front-end/Drawer.js:63
&gt; +        this.immediatelyFinishAnimation();

Don&apos;t quite get why these are still necessary. Should the animation bits be ripped out more completely or do some animations still exist?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470029</commentid>
    <comment_count>9</comment_count>
      <attachid>107882</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-20 06:46:45 -0700</bug_when>
    <thetext>Comment on attachment 107882
[Patch] rebaselined.

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

Thanks for your review!

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +        screen&quot; console animation.
&gt; 
&gt; The one line description suggestions this is just a refactor, but it is actually a behavior change. Maybe there is a better one-line description?

Done.

&gt;&gt; Source/WebCore/inspector/front-end/ConsolePanel.js:31
&gt;&gt;      WebInspector.Panel.call(this, &quot;console&quot;);
&gt; 
&gt; While you are here, why not add an /**@constructor*/ annotation to this ConsolePanel ctor. Ditto for ConsoleView below.

I haven&apos;t added them to the compilation yet. I do it file by file as a part of the separate effort. Thanks for noticing though!

&gt;&gt; Source/WebCore/inspector/front-end/Drawer.js:63
&gt;&gt; +        this.immediatelyFinishAnimation();
&gt; 
&gt; Don&apos;t quite get why these are still necessary. Should the animation bits be ripped out more completely or do some animations still exist?

Drawer is still animating. It is just that transition between visible drawer and console panel does not animate anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470033</commentid>
    <comment_count>10</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-20 06:50:16 -0700</bug_when>
    <thetext>Committed r95536: &lt;http://trac.webkit.org/changeset/95536&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470148</commentid>
    <comment_count>11</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-09-20 10:24:11 -0700</bug_when>
    <thetext>It broke a test on the SL and the Qt bot:
http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20%28Tests%29/r95540%20%2833226%29/inspector/debugger/script-formatter-pretty-diff.html

Could you check it, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470179</commentid>
    <comment_count>12</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-20 10:56:16 -0700</bug_when>
    <thetext>Looking</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470198</commentid>
    <comment_count>13</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-20 11:16:47 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Looking

Fix landed as r95557. Sorry for trouble - this test was disabled on chromium :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470199</commentid>
    <comment_count>14</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-09-20 11:18:20 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; Looking
&gt; 
&gt; Fix landed as r95557. Sorry for trouble - this test was disabled on chromium :(

Not problem, thanks for the quick fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470719</commentid>
    <comment_count>15</comment_count>
      <attachid>107882</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-09-21 05:00:39 -0700</bug_when>
    <thetext>Comment on attachment 107882
[Patch] rebaselined.

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

&gt; Source/WebCore/inspector/front-end/ConsolePanel.js:51
&gt; +            WebInspector.drawer.hide(true);

ConsolePanel should not directly depend on the Drawer.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107481</attachid>
            <date>2011-09-15 05:57:08 -0700</date>
            <delta_ts>2011-09-15 06:25:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68155-20110915165706.patch</filename>
            <type>text/plain</type>
            <size>27938</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTUwOTMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2YzBiZGU3NTEyMGM0ZTcwMDhhZWJj
MGI2ZTkxMjQ2MGEwZTJhNzdkLi40ZjVmMjc2MmFmMWY4MzMzM2M2ODBhOWZlMjhhYzRkNDQ4NDgz
NmFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDktMTUgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlZmFjdG9yIENv
bnNvbGVWaWV3LCBEcmF3ZXIsIENvbnNvbGVQYW5lbCB0cmlvLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxNTUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
ZGlyLmh0bWw6CisKIDIwMTEtMDktMTQgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlcXVlc3RBbmltYXRpb25GcmFtZSBj
YWxsYmFja3MgZG9uJ3Qgc2hvdyB1cCBpbiB0aGUgdGltZWxpbmUgcGFuZWwuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWRpci5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXIuaHRtbAppbmRleCBjMGNmMzQzYzY1
ZDMwM2NlNTNlYTAwZTk4ZjYxYmVlNzZlNmNiNjcxLi41YWMxYWZlMDFlYTE0Y2E2NDcwYjc5MWRj
ZDM5N2QwNGI5MDAyMjNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWRpci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtZGlyLmh0bWwKQEAgLTMyLDcgKzMyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBm
dW5jdGlvbiBkdW1wQ29uc29sZU1lc3NhZ2VzKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KEluc3BlY3RvclRlc3QudGV4dENvbnRlbnRXaXRoTGluZUJyZWFrcyhkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZS1tZXNzYWdlcyIpKSk7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KEluc3BlY3RvclRlc3QudGV4dENvbnRlbnRXaXRoTGluZUJyZWFr
cyhXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcubWVzc2FnZXNFbGVtZW50KSk7CiAgICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMwMTM4
MzdhODQxZDU3NDI1MjE1M2Y5MjFiODNmMjRhMDBlMTdmZGQuLjMwYjA2Nzc4ZmRlMDZmNjAxN2Nj
NjZiYjRlNzZmMzljMTRjNzJjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxMS0w
OS0xNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogcmVmYWN0b3IgQ29uc29sZVZpZXcsIERyYXdlciwgQ29uc29sZVBhbmVsIHRy
aW8uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODE1
NQorCisgICAgICAgIENvbnNvbGVWaWV3LCBDb25zb2xlUGFuZWwgYW5kIERyYXdlciBhcmUgYWxs
IFZpZXdzIHdpdGggY3VzdG9tIHNob3cvaGlkZSBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgYW5k
IHdlaXJkIERPTSBlbGVtZW50IGNvbnRhaW5tZW50LiBBcyBhIHJlc3VsdCwgd2UgaGF2ZSBhIG51
bWJlciBvZiBjYXNlcyB3aGVuIHN3aXRjaGluZworICAgICAgICBjb25zb2xlIGZyb20gZnVsbCBw
YW5lbCB0byBkcmF3ZXIgbW9kZSBhbmQgYmFjayByZXN1bHQgaW4gVUkgZ2xpdGNoZXMuCisgICAg
ICAgIEZvciB0aGUgc2FrZSBvZiBjb2RlIGNsYXJpdHkgYW5kIG5vIGdsaXRjaGVzLCBJJ2QgbGlr
ZSB0byBzYWNyaWZpY2UgdGhlICJncm93IGludG8gZnVsbAorICAgICAgICBzY3JlZW4iIGNvbnNv
bGUgYW5pbWF0aW9uLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbnNvbGVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90b3R5cGUuZ2V0IHN0YXR1c0Jh
ckl0ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJvdG90eXBlLnNo
b3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90b3R5cGUuaGlkZSk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Db25zb2xlVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcuY3JlYXRlRmlsdGVyRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcuZ2V0IHRoaXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3Rv
dHlwZS5nZXQgc3RhdHVzQmFySXRlbXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVW
aWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9E
cmF3ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRHJhd2VyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlLmdldCB2aXNpYmxlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5EcmF3ZXIucHJvdG90eXBlLl9jb25zdHJhaW5IZWlnaHQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRyYXdlci5wcm90b3R5cGUuc2hvdy5hbmltYXRpb25GaW5pc2hlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRHJhd2VyLnByb3RvdHlwZS5zaG93KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5EcmF3ZXIucHJvdG90eXBlLmhpZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRyYXdl
ci5wcm90b3R5cGUucmVzaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90
eXBlLl9hbmltYXRpb25EdXJhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5fY3JlYXRlR2xvYmFsU3RhdHVzQmFySXRlbXMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLl90b2dnbGVDb25zb2xlQnV0dG9uQ2xpY2tlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3Iuc2V0IGF0dGFjaGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci53
aW5kb3dSZXNpemUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmRvY3VtZW50S2V5RG93bik6CisK
IDIwMTEtMDktMTMgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVEZXN0cm95
ZWQgaXMgY2FsbGVkIGFmdGVyIG1fcGFnZSBoYXMgYmVlbiByZXNldC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVsLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMKaW5kZXggOWUyMWYy
YzQ4NDgzNTA4ZWI2ZTZkZTExYjkyMmM3N2Y2MGNlZmViOS4uZWExNzk2M2JjZjVkZWFmMDcyZGEw
ODBjYWYxZGJjNDMxZTBhMmZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMKQEAgLTMxLDcgKzMxLDcgQEAKIC8qKgogICogQGNv
bnN0cnVjdG9yCiAgKi8KLVdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwgPSBmdW5jdGlvbihkcmF3
ZXIpCitXZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsID0gZnVuY3Rpb24oKQogewogICAgIHRoaXMu
bWVzc2FnZXMgPSBbXTsKICAgICB0aGlzLndhcm5pbmdzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlUGFuZWwuanMKaW5kZXggZDJlNzNjZGVk
YmE2NzBhMDM2NTllZjQyZjE4ZWRmNGE4NDYwOGFhOC4uYzk1ZDU4YmM2M2Q2YTBkMmEwNjU4NzU0
YWE0MWM4NmY4MmY1MjU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlUGFuZWwuanMKQEAgLTMxLDYgKzMxLDcgQEAgV2ViSW5zcGVjdG9yLkNv
bnNvbGVQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICBXZWJJbnNwZWN0b3IuUGFuZWwuY2FsbCh0aGlz
LCAiY29uc29sZSIpOwogICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5FdmVudHMuRW50cnlBZGRlZCwgdGhpcy5fY29u
c29sZU1lc3NhZ2VBZGRlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3LmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LkV2ZW50cy5Db25zb2xlQ2xl
YXJlZCwgdGhpcy5fY29uc29sZUNsZWFyZWQsIHRoaXMpOworICAgIHRoaXMuX3ZpZXcgPSBXZWJJ
bnNwZWN0b3IuY29uc29sZVZpZXc7CiB9CiAKIFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJv
dG90eXBlID0gewpAQCAtMzksNDkgKzQwLDMxIEBAIFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb25z
b2xlIik7CiAgICAgfSwKIAorICAgIGdldCBzdGF0dXNCYXJJdGVtcygpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5fdmlldy5zdGF0dXNCYXJJdGVtczsKKyAgICB9LAorCiAgICAgc2hvdzog
ZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5kcmF3ZXIudmlzaWJs
ZSkgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRyYXdlci5oaWRlKHRydWUpOworICAgICAg
ICAgICAgdGhpcy5fZHJhd2VyV2FzVmlzaWJsZSA9IHRydWU7CisgICAgICAgIH0KICAgICAgICAg
V2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7CiAKLSAgICAgICAg
dGhpcy5fcHJldmlvdXNDb25zb2xlU3RhdGUgPSBXZWJJbnNwZWN0b3IuZHJhd2VyLnN0YXRlOwot
ICAgICAgICBXZWJJbnNwZWN0b3IuZHJhd2VyLmVudGVyUGFuZWxNb2RlKCk7Ci0gICAgICAgIFdl
Ykluc3BlY3Rvci5zaG93Q29uc29sZSgpOwotCi0gICAgICAgIC8vIE1vdmUgdGhlIHNjb3BlIGJh
ciB0byB0aGUgdG9wIG9mIHRoZSBtZXNzYWdlcywgbGlrZSB0aGUgcmVzb3VyY2VzIGZpbHRlci4K
LSAgICAgICAgdmFyIHNjb3BlQmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUt
ZmlsdGVyIik7Ci0gICAgICAgIHZhciBjb25zb2xlTWVzc2FnZXMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29uc29sZS1tZXNzYWdlcyIpOwotCi0gICAgICAgIHNjb3BlQmFyLnBhcmVudE5v
ZGUucmVtb3ZlQ2hpbGQoc2NvcGVCYXIpOwotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29uc29sZS12aWV3IikuaW5zZXJ0QmVmb3JlKHNjb3BlQmFyLCBjb25zb2xlTWVzc2FnZXMp
OwotCi0gICAgICAgIC8vIFVwZGF0ZSBzdHlsZXMsIGFuZCBnaXZlIGNvbnNvbGUtbWVzc2FnZXMg
YSB0b3AgbWFyZ2luIHNvIGl0IGRvZXNuJ3Qgb3ZlcndyaXRlIHRoZSBzY29wZSBiYXIuCi0gICAg
ICAgIHNjb3BlQmFyLmFkZFN0eWxlQ2xhc3MoImNvbnNvbGUtZmlsdGVyLXRvcCIpOwotICAgICAg
ICBzY29wZUJhci5yZW1vdmVTdHlsZUNsYXNzKCJzdGF0dXMtYmFyLWl0ZW0iKTsKLQotICAgICAg
ICBjb25zb2xlTWVzc2FnZXMuYWRkU3R5bGVDbGFzcygiY29uc29sZS1maWx0ZXItdG9wIik7Cisg
ICAgICAgIHRoaXMuYWRkQ2hpbGRWaWV3KHRoaXMuX3ZpZXcpOworICAgICAgICB0aGlzLl92aWV3
LnNob3codGhpcy5lbGVtZW50KTsKICAgICB9LAogCiAgICAgaGlkZTogZnVuY3Rpb24oKQogICAg
IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5oaWRlLmNhbGwodGhpcyk7
Ci0KLSAgICAgICAgaWYgKHRoaXMuX3ByZXZpb3VzQ29uc29sZVN0YXRlID09PSBXZWJJbnNwZWN0
b3IuRHJhd2VyLlN0YXRlLkhpZGRlbikKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kcmF3ZXIu
aW1tZWRpYXRlbHlFeGl0UGFuZWxNb2RlKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5kcmF3ZXIuZXhpdFBhbmVsTW9kZSgpOwotICAgICAgICBkZWxldGUgdGhpcy5f
cHJldmlvdXNDb25zb2xlU3RhdGU7Ci0KLSAgICAgICAgLy8gTW92ZSB0aGUgc2NvcGUgYmFyIGJh
Y2sgdG8gdGhlIGJvdHRvbSBiYXIsIG5leHQgdG8gQ2xlYXIgQ29uc29sZS4KLSAgICAgICAgdmFy
IHNjb3BlQmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUtZmlsdGVyIik7Ci0K
LSAgICAgICAgc2NvcGVCYXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzY29wZUJhcik7Ci0gICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdGhlci1kcmF3ZXItc3RhdHVzLWJhci1pdGVt
cyIpLmFwcGVuZENoaWxkKHNjb3BlQmFyKTsKLQotICAgICAgICAvLyBVcGRhdGUgc3R5bGVzLCBh
bmQgcmVtb3ZlIHRoZSB0b3AgbWFyZ2luIG9uIGNvbnNvbGUtbWVzc2FnZXMuCi0gICAgICAgIHNj
b3BlQmFyLnJlbW92ZVN0eWxlQ2xhc3MoImNvbnNvbGUtZmlsdGVyLXRvcCIpOwotICAgICAgICBz
Y29wZUJhci5hZGRTdHlsZUNsYXNzKCJzdGF0dXMtYmFyLWl0ZW0iKTsKLQotICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZS1tZXNzYWdlcyIpLnJlbW92ZVN0eWxlQ2xhc3Mo
ImNvbnNvbGUtZmlsdGVyLXRvcCIpOworICAgICAgICB0aGlzLnJlbW92ZUNoaWxkVmlldyh0aGlz
Ll92aWV3KTsKKyAgICAgICAgaWYgKHRoaXMuX2RyYXdlcldhc1Zpc2libGUpIHsKKyAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kcmF3ZXIuc2hvdyh0aGlzLl92aWV3LCB0cnVlKTsKKyAgICAgICAg
ICAgIGRlbGV0ZSB0aGlzLl9kcmF3ZXJXYXNWaXNpYmxlOworICAgICAgICB9CiAgICAgfSwKIAog
ICAgIHNlYXJjaENhbmNlbGVkOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCA1ZmQzZDhmNDI2MTYyMGVmYjc2
MmU1MzdlOTllODY4ZmVhZTI5ZDFkLi42MTczY2U5MDNhOTRiNmRlZWQwNjk0ZWRlOGY5Y2NiZTEy
MDFiZjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
bnNvbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVZpZXcuanMKQEAgLTI5LDI3ICsyOSwzNyBAQAogCiBjb25zdCBFeHByZXNzaW9uU3RvcENo
YXJhY3RlcnMgPSAiID06Wyh7OywhKy0qLyZ8Xjw+IjsKIAotV2ViSW5zcGVjdG9yLkNvbnNvbGVW
aWV3ID0gZnVuY3Rpb24oZHJhd2VyKQorV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3ID0gZnVuY3Rp
b24oKQogewotICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcywgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUtdmlldyIpKTsKKyAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRo
aXMpOworICAgIHRoaXMuZWxlbWVudC5pZCA9ICJjb25zb2xlLXZpZXciOwogCiAgICAgdGhpcy5t
ZXNzYWdlcyA9IFtdOwotICAgIHRoaXMuZHJhd2VyID0gZHJhd2VyOwogCi0gICAgdGhpcy5jbGVh
ckJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGVhci1jb25zb2xlLXN0YXR1cy1i
YXItaXRlbSIpOwotICAgIHRoaXMuY2xlYXJCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkNsZWFyIGNvbnNvbGUgbG9nLiIpOwotICAgIHRoaXMuY2xlYXJCdXR0b24uYWRkRXZl
bnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9yZXF1ZXN0Q2xlYXJNZXNzYWdlcy5iaW5kKHRoaXMp
LCBmYWxzZSk7CisgICAgdGhpcy5fY2xlYXJDb25zb2xlQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rv
ci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGVhciBjb25zb2xlIGxv
Zy4iKSwgImNsZWFyLXN0YXR1cy1iYXItaXRlbSIpOworICAgIHRoaXMuX2NsZWFyQ29uc29sZUJ1
dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3JlcXVlc3RDbGVhck1lc3NhZ2Vz
LmJpbmQodGhpcyksIGZhbHNlKTsKKworICAgIHRoaXMuX2NvbnRleHRTZWxlY3RFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2VsZWN0Iik7CisgICAgdGhpcy5fY29udGV4dFNlbGVj
dEVsZW1lbnQuaWQgPSAiY29uc29sZS1jb250ZXh0IjsKKyAgICB0aGlzLl9jb250ZXh0U2VsZWN0
RWxlbWVudC5jbGFzc05hbWUgPSAic3RhdHVzLWJhci1pdGVtIjsKIAotICAgIHRoaXMuX2NvbnRl
eHRTZWxlY3RFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUtY29udGV4
dCIpOwogICAgIGlmIChXZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5pc1dvcmtlckZyb250ZW5k
KCkpCiAgICAgICAgIHRoaXMuX2NvbnRleHRTZWxlY3RFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhp
ZGRlbiIpOwogCi0gICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29uc29sZS1tZXNzYWdlcyIpOworICAgIHRoaXMubWVzc2FnZXNFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuaWQg
PSAiY29uc29sZS1tZXNzYWdlcyI7CisgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuY2xhc3NOYW1l
ID0gIm1vbm9zcGFjZSI7CiAgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCB0aGlzLl9tZXNzYWdlc0NsaWNrZWQuYmluZCh0aGlzKSwgdHJ1ZSk7CisgICAg
dGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMubWVzc2FnZXNFbGVtZW50KTsKIAotICAgIHRo
aXMucHJvbXB0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlLXByb21w
dCIpOworICAgIHRoaXMucHJvbXB0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOworICAgIHRoaXMucHJvbXB0RWxlbWVudC5pZCA9ICJjb25zb2xlLXByb21wdCI7CiAgICAg
dGhpcy5wcm9tcHRFbGVtZW50LmNsYXNzTmFtZSA9ICJzb3VyY2UtY29kZSI7CisgICAgdGhpcy5w
cm9tcHRFbGVtZW50LnNwZWxsY2hlY2sgPSBmYWxzZTsKICAgICB0aGlzLnByb21wdEVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX3Byb21wdEtleURvd24uYmluZCh0aGlz
KSwgdHJ1ZSk7CisgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5wcm9t
cHRFbGVtZW50KTsKKyAgICB0aGlzLm1lc3NhZ2VzRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJiciIpKTsKKwogICAgIHRoaXMucHJvbXB0ID0gbmV3IFdlYkluc3Bl
Y3Rvci5UZXh0UHJvbXB0KHRoaXMucHJvbXB0RWxlbWVudCwgdGhpcy5jb21wbGV0aW9ucy5iaW5k
KHRoaXMpLCBFeHByZXNzaW9uU3RvcENoYXJhY3RlcnMgKyAiLiIpOwogICAgIHRoaXMucHJvbXB0
Lmhpc3RvcnkgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuY29uc29sZUhpc3RvcnkuZ2V0KCk7CiAK
QEAgLTU3LDE2ICs2NywxNCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcgPSBmdW5jdGlvbihk
cmF3ZXIpCiAgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuaW5zZXJ0QmVmb3JlKHRoaXMudG9wR3Jv
dXAuZWxlbWVudCwgdGhpcy5wcm9tcHRFbGVtZW50KTsKICAgICB0aGlzLmN1cnJlbnRHcm91cCA9
IHRoaXMudG9wR3JvdXA7CiAKLSAgICB0aGlzLnRvZ2dsZUNvbnNvbGVCdXR0b24gPSBuZXcgV2Vi
SW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgY29u
c29sZS4iKSwgImNvbnNvbGUtc3RhdHVzLWJhci1pdGVtIik7Ci0gICAgdGhpcy50b2dnbGVDb25z
b2xlQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlQ29uc29sZUJ1
dHRvbkNsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwotCi0gICAgLy8gV2lsbCBob2xkIHRoZSBs
aXN0IG9mIGZpbHRlciBlbGVtZW50cwotICAgIHRoaXMuZmlsdGVyQmFyRWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlLWZpbHRlciIpOworICAgIHRoaXMuX2ZpbHRlckJh
ckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLl9maWx0
ZXJCYXJFbGVtZW50LmlkID0gImNvbnNvbGUtZmlsdGVyIjsKKyAgICB0aGlzLl9maWx0ZXJCYXJF
bGVtZW50LmNsYXNzTmFtZSA9ICJzY29wZS1iYXIgc3RhdHVzLWJhci1pdGVtIjsKIAogICAgIGZ1
bmN0aW9uIGNyZWF0ZURpdmlkZXJFbGVtZW50KCkgewogICAgICAgICB2YXIgZGl2aWRlckVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgZGl2aWRlckVsZW1l
bnQuYWRkU3R5bGVDbGFzcygic2NvcGUtYmFyLWRpdmlkZXIiKTsKLSAgICAgICAgdGhpcy5maWx0
ZXJCYXJFbGVtZW50LmFwcGVuZENoaWxkKGRpdmlkZXJFbGVtZW50KTsKKyAgICAgICAgdGhpcy5f
ZmlsdGVyQmFyRWxlbWVudC5hcHBlbmRDaGlsZChkaXZpZGVyRWxlbWVudCk7CiAgICAgfQogCiAg
ICAgdmFyIHVwZGF0ZUZpbHRlckhhbmRsZXIgPSB0aGlzLl91cGRhdGVGaWx0ZXIuYmluZCh0aGlz
KTsKQEAgLTc3LDcgKzg1LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3ID0gZnVuY3Rpb24o
ZHJhd2VyKQogICAgICAgICBjYXRlZ29yeUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCB1cGRhdGVGaWx0ZXJIYW5kbGVyLCBmYWxzZSk7CiAgICAgICAgIGNhdGVnb3J5RWxlbWVudC50
ZXh0Q29udGVudCA9IGxhYmVsOwogCi0gICAgICAgIHRoaXMuZmlsdGVyQmFyRWxlbWVudC5hcHBl
bmRDaGlsZChjYXRlZ29yeUVsZW1lbnQpOworICAgICAgICB0aGlzLl9maWx0ZXJCYXJFbGVtZW50
LmFwcGVuZENoaWxkKGNhdGVnb3J5RWxlbWVudCk7CiAKICAgICAgICAgcmV0dXJuIGNhdGVnb3J5
RWxlbWVudDsKICAgICB9CkBAIC0xMTIsNiArMTIwLDExIEBAIFdlYkluc3BlY3Rvci5Db25zb2xl
Vmlldy5FdmVudHMgPSB7CiB9CiAKIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUg
PSB7CisgICAgZ2V0IHN0YXR1c0Jhckl0ZW1zKCkKKyAgICB7CisgICAgICAgIHJldHVybiBbdGhp
cy5fY2xlYXJDb25zb2xlQnV0dG9uLmVsZW1lbnQsIHRoaXMuX2NvbnRleHRTZWxlY3RFbGVtZW50
LCB0aGlzLl9maWx0ZXJCYXJFbGVtZW50XTsKKyAgICB9LAorCiAgICAgYWRkQ29udGV4dDogZnVu
Y3Rpb24oY29udGV4dCkKICAgICB7CiAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJvcHRpb24iKTsKQEAgLTIxMSwyMSArMjI0LDggQEAgV2ViSW5zcGVjdG9yLkNv
bnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICBfdG9nZ2xl
Q29uc29sZUJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgdGhpcy5kcmF3ZXIudmlzaWJsZVZpZXcgPSB0aGlzOwotICAgIH0s
Ci0KLSAgICBwb3B1bGF0ZVN0YXR1c0JhcjogZnVuY3Rpb24oc3RhdHVzQmFyRWxlbWVudCkKLSAg
ICB7Ci0gICAgICAgIHN0YXR1c0JhckVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5jbGVhckJ1dHRv
bik7Ci0gICAgICAgIHN0YXR1c0JhckVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5maWx0ZXJCYXJF
bGVtZW50KTsKLSAgICB9LAotCi0gICAgc2hvdzogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAg
dGhpcy50b2dnbGVDb25zb2xlQnV0dG9uLnRvZ2dsZWQgPSB0cnVlOwotICAgICAgICB0aGlzLnRv
Z2dsZUNvbnNvbGVCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkhpZGUgY29u
c29sZS4iKTsKICAgICAgICAgaWYgKCF0aGlzLnByb21wdC5pc0NhcmV0SW5zaWRlUHJvbXB0KCkp
CiAgICAgICAgICAgICB0aGlzLnByb21wdC5tb3ZlQ2FyZXRUb0VuZE9mUHJvbXB0KCk7CiAgICAg
fSwKQEAgLTIzNSwxMiArMjM1LDYgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0VsZW1lbnQgPSB0aGlzLnBy
b21wdEVsZW1lbnQ7CiAgICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAg
ICAgIHRoaXMudG9nZ2xlQ29uc29sZUJ1dHRvbi50b2dnbGVkID0gZmFsc2U7Ci0gICAgICAgIHRo
aXMudG9nZ2xlQ29uc29sZUJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hv
dyBjb25zb2xlLiIpOwotICAgIH0sCi0KICAgICBfaXNTY3JvbGxJbnRvVmlld1NjaGVkdWxlZDog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgcmV0dXJuICEhdGhpcy5fc2Nyb2xsSW50b1ZpZXdU
aW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRHJh
d2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMKaW5k
ZXggNjg1YTY2ZjUwMDc3ZWE3MDkwZWMyMDIxNDQ5MGUwNmE0MDZlNDkwMC4uZWNiOWE1ZmQwYTgy
N2RkNmYyYTRhMDUwOTdmZGFkZTA4NTY0NDViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9EcmF3ZXIuanMKQEAgLTI5LDc5ICsyOSw1MyBAQAogCiBXZWJJbnNwZWN0
b3IuRHJhd2VyID0gZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhp
cywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYXdlciIpKTsKLQorICAgIHRoaXMuZWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcmF3ZXIiKTsKICAgICB0aGlzLl9zYXZlZEhl
aWdodCA9IDIwMDsgLy8gRGVmYXVsdC4KLSAgICB0aGlzLnN0YXRlID0gV2ViSW5zcGVjdG9yLkRy
YXdlci5TdGF0ZS5IaWRkZW47Ci0gICAgdGhpcy5mdWxsUGFuZWwgPSBmYWxzZTsKLQogICAgIHRo
aXMuX21haW5FbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4iKTsKICAgICB0
aGlzLl90b29sYmFyRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b29sYmFyIik7
CiAgICAgdGhpcy5fbWFpblN0YXR1c0JhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWlu
LXN0YXR1cy1iYXIiKTsKICAgICB0aGlzLl9tYWluU3RhdHVzQmFyLmFkZEV2ZW50TGlzdGVuZXIo
Im1vdXNlZG93biIsIHRoaXMuX3N0YXJ0U3RhdHVzQmFyRHJhZ2dpbmcuYmluZCh0aGlzKSwgdHJ1
ZSk7Ci0gICAgdGhpcy5fdmlld1N0YXR1c0JhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJv
dGhlci1kcmF3ZXItc3RhdHVzLWJhci1pdGVtcyIpOwogICAgIHRoaXMuX2NvdW50ZXJzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvdW50ZXJzIik7Ci0gICAgdGhpcy5fZHJhd2VyU3RhdHVz
QmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYXdlci1zdGF0dXMtYmFyIik7CisgICAg
dGhpcy5fZHJhd2VyU3RhdHVzQmFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cisg
ICAgdGhpcy5fZHJhd2VyU3RhdHVzQmFyLmlkID0gImRyYXdlci1zdGF0dXMtYmFyIjsKKyAgICB0
aGlzLl92aWV3U3RhdHVzQmFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAg
dGhpcy5fZHJhd2VyU3RhdHVzQmFyLmFwcGVuZENoaWxkKHRoaXMuX3ZpZXdTdGF0dXNCYXIpOwog
fQogCiBXZWJJbnNwZWN0b3IuRHJhd2VyLnByb3RvdHlwZSA9IHsKLSAgICBnZXQgdmlzaWJsZVZp
ZXcoKQorICAgIGdldCB2aXNpYmxlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl92aXNp
YmxlVmlldzsKLSAgICB9LAotCi0gICAgc2V0IHZpc2libGVWaWV3KHgpCi0gICAgewotICAgICAg
ICBpZiAodGhpcy5fdmlzaWJsZVZpZXcgPT09IHgpIHsKLSAgICAgICAgICAgIGlmICh0aGlzLnZp
c2libGUgJiYgdGhpcy5mdWxsUGFuZWwpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAgICAgdGhpcy52aXNpYmxlID0gIXRoaXMudmlzaWJsZTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotCi0gICAgICAgIHZhciBmaXJzdFRpbWUgPSAhdGhpcy5fdmlzaWJsZVZpZXc7
Ci0gICAgICAgIGlmICh0aGlzLl92aXNpYmxlVmlldykKLSAgICAgICAgICAgIHRoaXMucmVtb3Zl
Q2hpbGRWaWV3KHRoaXMuX3Zpc2libGVWaWV3KTsKLSAgICAgICAgdGhpcy5fdmlzaWJsZVZpZXcg
PSB4OwotICAgICAgICB0aGlzLmFkZENoaWxkVmlldyh4KTsKLQotICAgICAgICBpZiAoeCAmJiAh
Zmlyc3RUaW1lKSB7Ci0gICAgICAgICAgICB0aGlzLl9zYWZlbHlSZW1vdmVDaGlsZHJlbigpOwot
ICAgICAgICAgICAgdGhpcy5fdmlld1N0YXR1c0Jhci5yZW1vdmVDaGlsZHJlbigpOyAvLyBvcHRp
bWl6ZSB0aGlzPyBjYWxsIG9sZC5kZXRhY2goKQotICAgICAgICAgICAgeC5wb3B1bGF0ZVN0YXR1
c0Jhcih0aGlzLl92aWV3U3RhdHVzQmFyKTsKLSAgICAgICAgICAgIHguc2hvdygpOwotICAgICAg
ICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTsKLSAgICAgICAgfQorICAgICAgICByZXR1cm4gISF0
aGlzLl92aWV3OwogICAgIH0sCiAKLSAgICBnZXQgc2F2ZWRIZWlnaHQoKQorICAgIF9jb25zdHJh
aW5IZWlnaHQ6IGZ1bmN0aW9uKGhlaWdodCkKICAgICB7Ci0gICAgICAgIHZhciBoZWlnaHQgPSB0
aGlzLl9zYXZlZEhlaWdodCB8fCB0aGlzLmVsZW1lbnQub2Zmc2V0SGVpZ2h0OwogICAgICAgICBy
ZXR1cm4gTnVtYmVyLmNvbnN0cmFpbihoZWlnaHQsIFByZWZlcmVuY2VzLm1pbkNvbnNvbGVIZWln
aHQsIHdpbmRvdy5pbm5lckhlaWdodCAtIHRoaXMuX21haW5FbGVtZW50LnRvdGFsT2Zmc2V0VG9w
KCkgLSBQcmVmZXJlbmNlcy5taW5Db25zb2xlSGVpZ2h0KTsKICAgICB9LAogCi0gICAgc2hvd1Zp
ZXc6IGZ1bmN0aW9uKHZpZXcpCisgICAgc2hvdzogZnVuY3Rpb24odmlldywgaW1tZWRpYXRlbHkp
CiAgICAgewotICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSB8fCB0aGlzLnZpc2libGVWaWV3ICE9
PSB2aWV3KQotICAgICAgICAgICAgdGhpcy52aXNpYmxlVmlldyA9IHZpZXc7Ci0gICAgfSwKKyAg
ICAgICAgdmFyIGRyYXdlcldhc1Zpc2libGUgPSB0aGlzLnZpc2libGU7CiAKLSAgICBzaG93OiBm
dW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW5nIHx8IHRoaXMudmlz
aWJsZSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGhpcy5pbW1lZGlhdGVseUZpbmlz
aEFuaW1hdGlvbigpOworICAgICAgICBpZiAodGhpcy5fdmlldykKKyAgICAgICAgICAgIHRoaXMu
ZWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLl92aWV3LmVsZW1lbnQpOwogCi0gICAgICAgIGlmICh0
aGlzLnZpc2libGVWaWV3KQotICAgICAgICAgICAgdGhpcy52aXNpYmxlVmlldy5zaG93KCk7Cisg
ICAgICAgIHRoaXMuX3ZpZXcgPSB2aWV3OworICAgICAgICB0aGlzLl92aWV3LnNob3codGhpcy5l
bGVtZW50KTsKIAotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxs
KHRoaXMpOworICAgICAgICB2YXIgc3RhdHVzQmFySXRlbXMgPSB0aGlzLl92aWV3LnN0YXR1c0Jh
ckl0ZW1zIHx8IFtdOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0YXR1c0Jhckl0ZW1z
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB0aGlzLl92aWV3U3RhdHVzQmFyLmFwcGVuZENo
aWxkKHN0YXR1c0Jhckl0ZW1zW2ldKTsKKyAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX2FuaW1h
dGluZyA9IHRydWU7CisgICAgICAgIGlmIChkcmF3ZXJXYXNWaXNpYmxlKQorICAgICAgICAgICAg
cmV0dXJuOwogCiAgICAgICAgIGRvY3VtZW50LmJvZHkuYWRkU3R5bGVDbGFzcygiZHJhd2VyLXZp
c2libGUiKTsKIAogICAgICAgICB2YXIgYW5jaG9yZWRJdGVtcyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJhbmNob3JlZC1zdGF0dXMtYmFyLWl0ZW1zIik7Ci0gICAgICAgIHZhciBoZWlnaHQg
PSAodGhpcy5mdWxsUGFuZWwgPyB3aW5kb3cuaW5uZXJIZWlnaHQgLSB0aGlzLl90b29sYmFyRWxl
bWVudC5vZmZzZXRIZWlnaHQgOiB0aGlzLnNhdmVkSGVpZ2h0KTsKKyAgICAgICAgdmFyIGhlaWdo
dCA9IHRoaXMuX2NvbnN0cmFpbkhlaWdodCh0aGlzLl9zYXZlZEhlaWdodCB8fCB0aGlzLmVsZW1l
bnQub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgdmFyIGFuaW1hdGlvbnMgPSBbCiAgICAgICAgICAg
ICB7ZWxlbWVudDogdGhpcy5lbGVtZW50LCBlbmQ6IHtoZWlnaHQ6IGhlaWdodH19LAogICAgICAg
ICAgICAge2VsZW1lbnQ6IHRoaXMuX21haW5FbGVtZW50LCBlbmQ6IHtib3R0b206IGhlaWdodH19
LApAQCAtMTI0LDMyICs5OCwyOCBAQCBXZWJJbnNwZWN0b3IuRHJhd2VyLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgewogICAgICAgICAgICAgaWYgKCJ1cGRhdGVTdGF0dXNCYXJJdGVtcyIgaW4gV2Vi
SW5zcGVjdG9yLmN1cnJlbnRQYW5lbCkKICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3Vy
cmVudFBhbmVsLnVwZGF0ZVN0YXR1c0Jhckl0ZW1zKCk7Ci0gICAgICAgICAgICBpZiAodGhpcy52
aXNpYmxlVmlldy5hZnRlclNob3cpCi0gICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlVmlldy5h
ZnRlclNob3coKTsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9hbmltYXRpbmc7CisgICAgICAg
ICAgICBpZiAodGhpcy5fdmlldyAmJiB0aGlzLl92aWV3LmFmdGVyU2hvdykKKyAgICAgICAgICAg
ICAgICB0aGlzLl92aWV3LmFmdGVyU2hvdygpOwogICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2N1
cnJlbnRBbmltYXRpb247Ci0gICAgICAgICAgICB0aGlzLnN0YXRlID0gKHRoaXMuZnVsbFBhbmVs
ID8gV2ViSW5zcGVjdG9yLkRyYXdlci5TdGF0ZS5GdWxsIDogV2ViSW5zcGVjdG9yLkRyYXdlci5T
dGF0ZS5WYXJpYWJsZSk7CiAgICAgICAgICAgICBpZiAodGhpcy5fY3VycmVudFBhbmVsQ291bnRl
cnMpCiAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudFBhbmVsQ291bnRlcnMucmVtb3ZlQXR0
cmlidXRlKCJzdHlsZSIpOwogICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fY3VycmVudEFuaW1h
dGlvbiA9IFdlYkluc3BlY3Rvci5hbmltYXRlU3R5bGUoYW5pbWF0aW9ucywgdGhpcy5fYW5pbWF0
aW9uRHVyYXRpb24oKSwgYW5pbWF0aW9uRmluaXNoZWQuYmluZCh0aGlzKSk7CisgICAgICAgIGlm
IChpbW1lZGlhdGVseSkKKyAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRBbmltYXRpb24uZm9yY2VD
b21wbGV0ZSgpOwogICAgIH0sCiAKLSAgICBoaWRlOiBmdW5jdGlvbigpCisgICAgaGlkZTogZnVu
Y3Rpb24oaW1tZWRpYXRlbHkpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW5nIHx8
ICF0aGlzLnZpc2libGUpCisgICAgICAgIHRoaXMuaW1tZWRpYXRlbHlGaW5pc2hBbmltYXRpb24o
KTsKKyAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmhpZGUuY2FsbCh0aGlzKTsKLQotICAg
ICAgICBpZiAodGhpcy52aXNpYmxlVmlldykKLSAgICAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcu
aGlkZSgpOwotCi0gICAgICAgIHRoaXMuX2FuaW1hdGluZyA9IHRydWU7CisgICAgICAgIHRoaXMu
X3NhdmVkSGVpZ2h0ID0gdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodDsKIAotICAgICAgICBpZiAo
IXRoaXMuZnVsbFBhbmVsKQotICAgICAgICAgICAgdGhpcy5fc2F2ZWRIZWlnaHQgPSB0aGlzLmVs
ZW1lbnQub2Zmc2V0SGVpZ2h0OworICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlQ2hpbGQodGhp
cy5fdmlldy5lbGVtZW50KTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3ZpZXc7CiAKICAgICAgICAg
aWYgKHRoaXMuZWxlbWVudCA9PT0gV2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0VsZW1lbnQgfHwg
dGhpcy5lbGVtZW50LmlzQW5jZXN0b3IoV2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0VsZW1lbnQp
KQogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0VsZW1lbnQgPSBXZWJJbnNw
ZWN0b3IucHJldmlvdXNGb2N1c0VsZW1lbnQ7CkBAIC0xOTAsNjcgKzE2MCwyNCBAQCBXZWJJbnNw
ZWN0b3IuRHJhd2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5yZW1vdmVTdHlsZUNsYXNzKCJkcmF3ZXItdmlzaWJsZSIpOwotICAgICAg
ICAgICAgZGVsZXRlIHRoaXMuX2FuaW1hdGluZzsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9j
dXJyZW50QW5pbWF0aW9uOwotICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFdlYkluc3BlY3Rvci5E
cmF3ZXIuU3RhdGUuSGlkZGVuOwogICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fY3VycmVudEFu
aW1hdGlvbiA9IFdlYkluc3BlY3Rvci5hbmltYXRlU3R5bGUoYW5pbWF0aW9ucywgdGhpcy5fYW5p
bWF0aW9uRHVyYXRpb24oKSwgYW5pbWF0aW9uRmluaXNoZWQuYmluZCh0aGlzKSk7CisgICAgICAg
IGlmIChpbW1lZGlhdGVseSkKKyAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRBbmltYXRpb24uZm9y
Y2VDb21wbGV0ZSgpOwogICAgIH0sCiAKLSAgICBvblJlc2l6ZTogZnVuY3Rpb24oKQorICAgIHJl
c2l6ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFdlYklu
c3BlY3Rvci5EcmF3ZXIuU3RhdGUuSGlkZGVuKQorICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB2YXIgaGVpZ2h0OwotICAgICAgICBpZiAo
dGhpcy5zdGF0ZSA9PT0gV2ViSW5zcGVjdG9yLkRyYXdlci5TdGF0ZS5WYXJpYWJsZSkgewotICAg
ICAgICAgICAgaGVpZ2h0ID0gcGFyc2VJbnQodGhpcy5lbGVtZW50LnN0eWxlLmhlaWdodCk7Ci0g
ICAgICAgICAgICBoZWlnaHQgPSBOdW1iZXIuY29uc3RyYWluKGhlaWdodCwgUHJlZmVyZW5jZXMu
bWluQ29uc29sZUhlaWdodCwgd2luZG93LmlubmVySGVpZ2h0IC0gdGhpcy5fbWFpbkVsZW1lbnQu
dG90YWxPZmZzZXRUb3AoKSAtIFByZWZlcmVuY2VzLm1pbkNvbnNvbGVIZWlnaHQpOwotICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgIGhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIHRoaXMu
X3Rvb2xiYXJFbGVtZW50Lm9mZnNldEhlaWdodDsKLQorICAgICAgICB2YXIgaGVpZ2h0ID0gdGhp
cy5fY29uc3RyYWluSGVpZ2h0KHBhcnNlSW50KHRoaXMuZWxlbWVudC5zdHlsZS5oZWlnaHQpKTsK
ICAgICAgICAgdGhpcy5fbWFpbkVsZW1lbnQuc3R5bGUuYm90dG9tID0gaGVpZ2h0ICsgInB4IjsK
ICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmhlaWdodCA9IGhlaWdodCArICJweCI7CiAgICAg
fSwKIAotICAgIGVudGVyUGFuZWxNb2RlOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlz
Ll9jYW5jZWxBbmltYXRpb25JZk5lZWRlZCgpOwotICAgICAgICB0aGlzLmZ1bGxQYW5lbCA9IHRy
dWU7Ci0gICAgICAgIHRoaXMudXBkYXRlSGVpZ2h0KCk7Ci0gICAgfSwKLQotICAgIGV4aXRQYW5l
bE1vZGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2NhbmNlbEFuaW1hdGlvbklm
TmVlZGVkKCk7Ci0gICAgICAgIHRoaXMuZnVsbFBhbmVsID0gZmFsc2U7Ci0gICAgICAgIHRoaXMu
dXBkYXRlSGVpZ2h0KCk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZUhlaWdodDogZnVuY3Rpb24oKQot
ICAgIHsKLSAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkgewotICAgICAgICAgICAgaWYgKHRoaXMu
ZnVsbFBhbmVsKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5fc2F2ZWRIZWlnaHQgPSB0aGlzLmVs
ZW1lbnQub2Zmc2V0SGVpZ2h0OwotICAgICAgICAgICAgICAgIHZhciBoZWlnaHQgPSB3aW5kb3cu
aW5uZXJIZWlnaHQgLSB0aGlzLl90b29sYmFyRWxlbWVudC5vZmZzZXRIZWlnaHQ7Ci0gICAgICAg
ICAgICAgICAgdGhpcy5fYW5pbWF0ZURyYXdlckhlaWdodChoZWlnaHQsIFdlYkluc3BlY3Rvci5E
cmF3ZXIuU3RhdGUuRnVsbCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
IC8vIElmIHRoaXMgYW5pbWF0aW9uIGdldHMgY2FuY2VsbGVkLCB3ZSB3YW50IHRoZSBzdGF0ZSBv
ZiB0aGUgZHJhd2VyIHRvIGJlIFZhcmlhYmxlLAotICAgICAgICAgICAgICAgIC8vIHNvIHRoYXQg
dGhlIG5ldyBhbmltYXRpb24gY2FuJ3QgZG8gYW4gaW1tZWRpYXRlIHRyYW5zaXRpb24gYmV0d2Vl
biBIaWRkZW4vRnVsbCBzdGF0ZXMuCi0gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFdlYklu
c3BlY3Rvci5EcmF3ZXIuU3RhdGUuVmFyaWFibGU7Ci0gICAgICAgICAgICAgICAgdmFyIGhlaWdo
dCA9IHRoaXMuc2F2ZWRIZWlnaHQ7Ci0gICAgICAgICAgICAgICAgdGhpcy5fYW5pbWF0ZURyYXdl
ckhlaWdodChoZWlnaHQsIFdlYkluc3BlY3Rvci5EcmF3ZXIuU3RhdGUuVmFyaWFibGUpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSwKLQotICAgIGltbWVkaWF0ZWx5RXhpdFBhbmVs
TW9kZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7Ci0g
ICAgICAgIHRoaXMuZnVsbFBhbmVsID0gZmFsc2U7Ci0gICAgfSwKLQogICAgIGltbWVkaWF0ZWx5
RmluaXNoQW5pbWF0aW9uOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fY3Vy
cmVudEFuaW1hdGlvbikKQEAgLTI3Myw0MSArMjAwLDggQEAgV2ViSW5zcGVjdG9yLkRyYXdlci5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9jb3VudGVycy5pbnNlcnRCZWZvcmUoeCwg
dGhpcy5fY291bnRlcnMuZmlyc3RDaGlsZCk7CiAgICAgfSwKIAotICAgIF9jYW5jZWxBbmltYXRp
b25JZk5lZWRlZDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlu
ZykgewotICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRBbmltYXRpb24pCi0gICAgICAgICAg
ICAgICAgdGhpcy5fY3VycmVudEFuaW1hdGlvbi5jYW5jZWwoKTsKLSAgICAgICAgICAgIGRlbGV0
ZSB0aGlzLl9hbmltYXRpbmc7Ci0gICAgICAgICAgICBkZWxldGUgdGhpcy5fY3VycmVudEFuaW1h
dGlvbjsKLSAgICAgICAgfQotICAgIH0sCi0KLSAgICBfYW5pbWF0ZURyYXdlckhlaWdodDogZnVu
Y3Rpb24oaGVpZ2h0LCBmaW5hbFN0YXRlKQotICAgIHsKLSAgICAgICAgdGhpcy5fYW5pbWF0aW5n
ID0gdHJ1ZTsKLSAgICAgICAgdmFyIGFuaW1hdGlvbnMgPSBbCi0gICAgICAgICAgICB7ZWxlbWVu
dDogdGhpcy5lbGVtZW50LCBlbmQ6IHtoZWlnaHQ6IGhlaWdodH19LAotICAgICAgICAgICAge2Vs
ZW1lbnQ6IHRoaXMuX21haW5FbGVtZW50LCBlbmQ6IHtib3R0b206IGhlaWdodH19Ci0gICAgICAg
IF07Ci0KLSAgICAgICAgZnVuY3Rpb24gYW5pbWF0aW9uRmluaXNoZWQoKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3VycmVudFBhbmVsLmRvUmVzaXplKCk7Ci0gICAgICAg
ICAgICBkZWxldGUgdGhpcy5fYW5pbWF0aW5nOwotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2N1
cnJlbnRBbmltYXRpb247Ci0gICAgICAgICAgICB0aGlzLnN0YXRlID0gZmluYWxTdGF0ZTsKLSAg
ICAgICAgfQotCi0gICAgICAgIHRoaXMuX2N1cnJlbnRBbmltYXRpb24gPSBXZWJJbnNwZWN0b3Iu
YW5pbWF0ZVN0eWxlKGFuaW1hdGlvbnMsIHRoaXMuX2FuaW1hdGlvbkR1cmF0aW9uKCksIGFuaW1h
dGlvbkZpbmlzaGVkLmJpbmQodGhpcykpOwotICAgIH0sCi0KICAgICBfYW5pbWF0aW9uRHVyYXRp
b246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIC8vIEltbWVkaWF0ZSBpZiBnb2luZyBiZXR3
ZWVuIEhpZGRlbiBhbmQgRnVsbCBpbiBmdWxsIHBhbmVsIG1vZGUKLSAgICAgICAgaWYgKHRoaXMu
ZnVsbFBhbmVsICYmICh0aGlzLnN0YXRlID09PSBXZWJJbnNwZWN0b3IuRHJhd2VyLlN0YXRlLkhp
ZGRlbiB8fCB0aGlzLnN0YXRlID09PSBXZWJJbnNwZWN0b3IuRHJhd2VyLlN0YXRlLkZ1bGwpKQot
ICAgICAgICAgICAgcmV0dXJuIDA7Ci0KICAgICAgICAgcmV0dXJuICh3aW5kb3cuZXZlbnQgJiYg
d2luZG93LmV2ZW50LnNoaWZ0S2V5ID8gMjAwMCA6IDI1MCk7CiAgICAgfSwKIApAQCAtMzYwLDEx
ICsyNTQsMyBAQCBXZWJJbnNwZWN0b3IuRHJhd2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgZXZl
bnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgfQogfQotCi1XZWJJbnNwZWN0b3IuRHJhd2VyLnBy
b3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGU7Ci0KLVdlYklu
c3BlY3Rvci5EcmF3ZXIuU3RhdGUgPSB7Ci0gICAgSGlkZGVuOiAwLAotICAgIFZhcmlhYmxlOiAx
LAotICAgIEZ1bGw6IDIKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCBiZTk1OTg0M2VkMTVmNGIyNWRjMTNjOTE5MzRhZDFj
ZTdkZTk5ZWE4Li5mOGM5MmJlZWI5OWZiNzk3MmZjNDgyNDZhNGEzYzIxZDE0NGY1ZmY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1s
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwK
QEAgLTE5NCw5ICsxOTQsNiBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgICAgICA8ZGl2IGlkPSJtYWluLXBhbmVs
cyIgc3BlbGxjaGVjaz0iZmFsc2UiPjwvZGl2PgogICAgICAgICA8ZGl2IGlkPSJtYWluLXN0YXR1
cy1iYXIiIGNsYXNzPSJzdGF0dXMtYmFyIj48ZGl2IGlkPSJhbmNob3JlZC1zdGF0dXMtYmFyLWl0
ZW1zIj48ZGl2IGlkPSJjb3VudGVycyI+PGRpdiBpZD0iZXJyb3Itd2FybmluZy1jb3VudCIgY2xh
c3M9ImhpZGRlbiI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+CiAgICAgPC9kaXY+Ci0gICAgPGRp
diBpZD0iZHJhd2VyIj4KLSAgICAgICAgPGRpdiBpZD0iY29uc29sZS12aWV3Ij48ZGl2IGlkPSJj
b25zb2xlLW1lc3NhZ2VzIiBjbGFzcz0ibW9ub3NwYWNlIj48ZGl2IGlkPSJjb25zb2xlLXByb21w
dCIgc3BlbGxjaGVjaz0iZmFsc2UiPjxicj48L2Rpdj48L2Rpdj48L2Rpdj4KLSAgICAgICAgPGRp
diBpZD0iZHJhd2VyLXN0YXR1cy1iYXIiIGNsYXNzPSJzdGF0dXMtYmFyIj48ZGl2IGlkPSJvdGhl
ci1kcmF3ZXItc3RhdHVzLWJhci1pdGVtcyI+PGJ1dHRvbiBpZD0iY2xlYXItY29uc29sZS1zdGF0
dXMtYmFyLWl0ZW0iIGNsYXNzPSJzdGF0dXMtYmFyLWl0ZW0gY2xlYXItc3RhdHVzLWJhci1pdGVt
Ij48ZGl2IGNsYXNzPSJnbHlwaCI+PC9kaXY+PGRpdiBjbGFzcz0iZ2x5cGggc2hhZG93Ij48L2Rp
dj48L2J1dHRvbj48c2VsZWN0IGlkPSJjb25zb2xlLWNvbnRleHQiIGNsYXNzPSJzdGF0dXMtYmFy
LWl0ZW0iPjwvc2VsZWN0PjxkaXYgaWQ9ImNvbnNvbGUtZmlsdGVyIiBjbGFzcz0ic2NvcGUtYmFy
IHN0YXR1cy1iYXItaXRlbSI+PC9kaXY+PC9kaXY+PC9kaXY+Ci0gICAgPC9kaXY+CisgICAgPGRp
diBpZD0iZHJhd2VyIj48L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggNGM2ZjlhOGE3YzhjZjBh
YmQ4Njc0ZTA4ZmQ1MDQzYmRjMjEyZjBlOC4uZGM2Zjk5NmFjMDhkZjdlZDU1ZDBjNjE0MTdiNjky
YmNiZGQ0ZGM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuanMKQEAgLTE0NCw2ICsxNDQsOCBAQCB2YXIgV2ViSW5zcGVjdG9yID0gewogICAg
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci51c2VyTWV0cmljcy5wYW5lbFNob3duKHBhbmVsTmFt
ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKworICAgICAgICB0aGlzLl90b2dnbGVDb25z
b2xlQnV0dG9uLmRpc2FibGVkID0gdGhpcy5fY3VycmVudFBhbmVsID09PSBXZWJJbnNwZWN0b3Iu
cGFuZWxzLmNvbnNvbGU7CiAgICAgfSwKIAogICAgIF9jcmVhdGVQYW5lbHM6IGZ1bmN0aW9uKCkK
QEAgLTE4MywxMCArMTg1LDEzIEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7CiAKICAgICAgICAgdmFy
IGFuY2hvcmVkU3RhdHVzQmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuY2hvcmVkLXN0
YXR1cy1iYXItaXRlbXMiKTsKICAgICAgICAgYW5jaG9yZWRTdGF0dXNCYXIuYXBwZW5kQ2hpbGQo
dGhpcy5fZG9ja1RvZ2dsZUJ1dHRvbi5lbGVtZW50KTsKLSAgICAgICAgYW5jaG9yZWRTdGF0dXNC
YXIuYXBwZW5kQ2hpbGQodGhpcy5jb25zb2xlVmlldy50b2dnbGVDb25zb2xlQnV0dG9uLmVsZW1l
bnQpOworCisgICAgICAgIHRoaXMuX3RvZ2dsZUNvbnNvbGVCdXR0b24gPSBuZXcgV2ViSW5zcGVj
dG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgY29uc29sZS4i
KSwgImNvbnNvbGUtc3RhdHVzLWJhci1pdGVtIik7CisgICAgICAgIHRoaXMuX3RvZ2dsZUNvbnNv
bGVCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90b2dnbGVDb25zb2xlQnV0
dG9uQ2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgICAgIGFuY2hvcmVkU3RhdHVzQmFy
LmFwcGVuZENoaWxkKHRoaXMuX3RvZ2dsZUNvbnNvbGVCdXR0b24uZWxlbWVudCk7CisKICAgICAg
ICAgaWYgKHRoaXMucGFuZWxzLmVsZW1lbnRzKQogICAgICAgICAgICAgYW5jaG9yZWRTdGF0dXNC
YXIuYXBwZW5kQ2hpbGQodGhpcy5wYW5lbHMuZWxlbWVudHMubm9kZVNlYXJjaEJ1dHRvbi5lbGVt
ZW50KTsKLQogICAgICAgICBhbmNob3JlZFN0YXR1c0Jhci5hcHBlbmRDaGlsZCh0aGlzLl9zZXR0
aW5nc0J1dHRvbi5lbGVtZW50KTsKICAgICB9LAogCkBAIC0yMDYsNiArMjExLDIyIEBAIHZhciBX
ZWJJbnNwZWN0b3IgPSB7CiAgICAgICAgIH0KICAgICB9LAogCisgICAgX3RvZ2dsZUNvbnNvbGVC
dXR0b25DbGlja2VkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy5fdG9nZ2xl
Q29uc29sZUJ1dHRvbi5kaXNhYmxlZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0
aGlzLl90b2dnbGVDb25zb2xlQnV0dG9uLnRvZ2dsZWQgPSAhdGhpcy5fdG9nZ2xlQ29uc29sZUJ1
dHRvbi50b2dnbGVkOworCisgICAgICAgIGlmICh0aGlzLl90b2dnbGVDb25zb2xlQnV0dG9uLnRv
Z2dsZWQpIHsKKyAgICAgICAgICAgIHRoaXMuX3RvZ2dsZUNvbnNvbGVCdXR0b24udGl0bGUgPSBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkhpZGUgY29uc29sZS4iKTsKKyAgICAgICAgICAgIHRoaXMu
ZHJhd2VyLnNob3codGhpcy5jb25zb2xlVmlldyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICB0aGlzLl90b2dnbGVDb25zb2xlQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJTaG93IGNvbnNvbGUuIik7CisgICAgICAgICAgICB0aGlzLmRyYXdlci5oaWRlKCk7Cisg
ICAgICAgIH0KKyAgICB9LAorCiAgICAgX3RvZ2dsZVNldHRpbmdzOiBmdW5jdGlvbigpCiAgICAg
ewogICAgICAgICB0aGlzLl9zZXR0aW5nc0J1dHRvbi50b2dnbGVkID0gIXRoaXMuX3NldHRpbmdz
QnV0dG9uLnRvZ2dsZWQ7CkBAIC0yODYsNyArMzA3LDcgQEAgdmFyIFdlYkluc3BlY3RvciA9IHsK
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZWFyY2hDb250cm9sbGVyLnVwZGF0ZVNlYXJjaExh
YmVsKCk7CiAKICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5kcmF3ZXIpCi0gICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuZHJhd2VyLnVwZGF0ZUhlaWdodCgpOworICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmRyYXdlci5yZXNpemUoKTsKICAgICB9LAogCiAgICAgX3VwZGF0ZUVycm9yQW5kV2Fybmlu
Z0NvdW50czogZnVuY3Rpb24oKQpAQCAtNDk1LDggKzUxNiw3IEBAIFdlYkluc3BlY3Rvci5kb0xv
YWRlZERvbmUgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5jb25zb2xlLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5FdmVudHMuUmVwZWF0Q291bnRVcGRhdGVkLCB0aGlz
Ll91cGRhdGVFcnJvckFuZFdhcm5pbmdDb3VudHMsIHRoaXMpOwogCiAgICAgdGhpcy5kcmF3ZXIg
PSBuZXcgV2ViSW5zcGVjdG9yLkRyYXdlcigpOwotICAgIHRoaXMuY29uc29sZVZpZXcgPSBuZXcg
V2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3KHRoaXMuZHJhd2VyKTsKLSAgICB0aGlzLmRyYXdlci52
aXNpYmxlVmlldyA9IHRoaXMuY29uc29sZVZpZXc7CisgICAgdGhpcy5jb25zb2xlVmlldyA9IG5l
dyBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcoKTsKIAogICAgIHRoaXMubmV0d29ya01hbmFnZXIg
PSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyKCk7CiAgICAgdGhpcy5yZXNvdXJjZVRy
ZWVNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwoKTsKQEAgLTYwNyw3
ICs2MjcsNyBAQCBXZWJJbnNwZWN0b3Iud2luZG93UmVzaXplID0gZnVuY3Rpb24oZXZlbnQpCiB7
CiAgICAgaWYgKHRoaXMuY3VycmVudFBhbmVsKQogICAgICAgICB0aGlzLmN1cnJlbnRQYW5lbC5k
b1Jlc2l6ZSgpOwotICAgIHRoaXMuZHJhd2VyLmRvUmVzaXplKCk7CisgICAgdGhpcy5kcmF3ZXIu
cmVzaXplKCk7CiAgICAgdGhpcy50b29sYmFyLnJlc2l6ZSgpOwogfQogCkBAIC03OTMsMTAgKzgx
Myw3IEBAIFdlYkluc3BlY3Rvci5kb2N1bWVudEtleURvd24gPSBmdW5jdGlvbihldmVudCkKIAog
ICAgICAgICBjYXNlICJVKzAwMUIiOiAvLyBFc2NhcGUga2V5CiAgICAgICAgICAgICBldmVudC5w
cmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAgICAgaWYgKHRoaXMuZHJhd2VyLmZ1bGxQYW5lbCkK
LSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIHRoaXMuZHJhd2VyLnZpc2li
bGUgPSAhdGhpcy5kcmF3ZXIudmlzaWJsZTsKKyAgICAgICAgICAgIHRoaXMuX3RvZ2dsZUNvbnNv
bGVCdXR0b25DbGlja2VkKCk7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAvLyBXaW5k
b3dzIGFuZCBNYWMgaGF2ZSB0d28gZGlmZmVyZW50IGRlZmluaXRpb25zIG9mIFssIHNvIGFjY2Vw
dCBib3RoLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107487</attachid>
            <date>2011-09-15 06:26:04 -0700</date>
            <delta_ts>2011-09-15 07:22:19 -0700</delta_ts>
            <desc>[Patch] with fixed drawer status bar style.</desc>
            <filename>bug-68155-20110915172601.patch</filename>
            <type>text/plain</type>
            <size>28035</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTUwOTMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2YzBiZGU3NTEyMGM0ZTcwMDhhZWJj
MGI2ZTkxMjQ2MGEwZTJhNzdkLi40ZjVmMjc2MmFmMWY4MzMzM2M2ODBhOWZlMjhhYzRkNDQ4NDgz
NmFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDktMTUgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlZmFjdG9yIENv
bnNvbGVWaWV3LCBEcmF3ZXIsIENvbnNvbGVQYW5lbCB0cmlvLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxNTUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
ZGlyLmh0bWw6CisKIDIwMTEtMDktMTQgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlcXVlc3RBbmltYXRpb25GcmFtZSBj
YWxsYmFja3MgZG9uJ3Qgc2hvdyB1cCBpbiB0aGUgdGltZWxpbmUgcGFuZWwuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWRpci5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXIuaHRtbAppbmRleCBjMGNmMzQzYzY1
ZDMwM2NlNTNlYTAwZTk4ZjYxYmVlNzZlNmNiNjcxLi41YWMxYWZlMDFlYTE0Y2E2NDcwYjc5MWRj
ZDM5N2QwNGI5MDAyMjNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWRpci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtZGlyLmh0bWwKQEAgLTMyLDcgKzMyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBm
dW5jdGlvbiBkdW1wQ29uc29sZU1lc3NhZ2VzKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KEluc3BlY3RvclRlc3QudGV4dENvbnRlbnRXaXRoTGluZUJyZWFrcyhkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZS1tZXNzYWdlcyIpKSk7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KEluc3BlY3RvclRlc3QudGV4dENvbnRlbnRXaXRoTGluZUJyZWFr
cyhXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcubWVzc2FnZXNFbGVtZW50KSk7CiAgICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMwMTM4
MzdhODQxZDU3NDI1MjE1M2Y5MjFiODNmMjRhMDBlMTdmZGQuLjMwYjA2Nzc4ZmRlMDZmNjAxN2Nj
NjZiYjRlNzZmMzljMTRjNzJjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxMS0w
OS0xNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogcmVmYWN0b3IgQ29uc29sZVZpZXcsIERyYXdlciwgQ29uc29sZVBhbmVsIHRy
aW8uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODE1
NQorCisgICAgICAgIENvbnNvbGVWaWV3LCBDb25zb2xlUGFuZWwgYW5kIERyYXdlciBhcmUgYWxs
IFZpZXdzIHdpdGggY3VzdG9tIHNob3cvaGlkZSBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgYW5k
IHdlaXJkIERPTSBlbGVtZW50IGNvbnRhaW5tZW50LiBBcyBhIHJlc3VsdCwgd2UgaGF2ZSBhIG51
bWJlciBvZiBjYXNlcyB3aGVuIHN3aXRjaGluZworICAgICAgICBjb25zb2xlIGZyb20gZnVsbCBw
YW5lbCB0byBkcmF3ZXIgbW9kZSBhbmQgYmFjayByZXN1bHQgaW4gVUkgZ2xpdGNoZXMuCisgICAg
ICAgIEZvciB0aGUgc2FrZSBvZiBjb2RlIGNsYXJpdHkgYW5kIG5vIGdsaXRjaGVzLCBJJ2QgbGlr
ZSB0byBzYWNyaWZpY2UgdGhlICJncm93IGludG8gZnVsbAorICAgICAgICBzY3JlZW4iIGNvbnNv
bGUgYW5pbWF0aW9uLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbnNvbGVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90b3R5cGUuZ2V0IHN0YXR1c0Jh
ckl0ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJvdG90eXBlLnNo
b3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90b3R5cGUuaGlkZSk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Db25zb2xlVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcuY3JlYXRlRmlsdGVyRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcuZ2V0IHRoaXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3Rv
dHlwZS5nZXQgc3RhdHVzQmFySXRlbXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVW
aWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9E
cmF3ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRHJhd2VyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlLmdldCB2aXNpYmxlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5EcmF3ZXIucHJvdG90eXBlLl9jb25zdHJhaW5IZWlnaHQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRyYXdlci5wcm90b3R5cGUuc2hvdy5hbmltYXRpb25GaW5pc2hlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRHJhd2VyLnByb3RvdHlwZS5zaG93KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5EcmF3ZXIucHJvdG90eXBlLmhpZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRyYXdl
ci5wcm90b3R5cGUucmVzaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90
eXBlLl9hbmltYXRpb25EdXJhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5fY3JlYXRlR2xvYmFsU3RhdHVzQmFySXRlbXMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLl90b2dnbGVDb25zb2xlQnV0dG9uQ2xpY2tlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3Iuc2V0IGF0dGFjaGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci53
aW5kb3dSZXNpemUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmRvY3VtZW50S2V5RG93bik6CisK
IDIwMTEtMDktMTMgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVEZXN0cm95
ZWQgaXMgY2FsbGVkIGFmdGVyIG1fcGFnZSBoYXMgYmVlbiByZXNldC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVsLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMKaW5kZXggOWUyMWYy
YzQ4NDgzNTA4ZWI2ZTZkZTExYjkyMmM3N2Y2MGNlZmViOS4uZWExNzk2M2JjZjVkZWFmMDcyZGEw
ODBjYWYxZGJjNDMxZTBhMmZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMKQEAgLTMxLDcgKzMxLDcgQEAKIC8qKgogICogQGNv
bnN0cnVjdG9yCiAgKi8KLVdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwgPSBmdW5jdGlvbihkcmF3
ZXIpCitXZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsID0gZnVuY3Rpb24oKQogewogICAgIHRoaXMu
bWVzc2FnZXMgPSBbXTsKICAgICB0aGlzLndhcm5pbmdzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlUGFuZWwuanMKaW5kZXggZDJlNzNjZGVk
YmE2NzBhMDM2NTllZjQyZjE4ZWRmNGE4NDYwOGFhOC4uYzk1ZDU4YmM2M2Q2YTBkMmEwNjU4NzU0
YWE0MWM4NmY4MmY1MjU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlUGFuZWwuanMKQEAgLTMxLDYgKzMxLDcgQEAgV2ViSW5zcGVjdG9yLkNv
bnNvbGVQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICBXZWJJbnNwZWN0b3IuUGFuZWwuY2FsbCh0aGlz
LCAiY29uc29sZSIpOwogICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5FdmVudHMuRW50cnlBZGRlZCwgdGhpcy5fY29u
c29sZU1lc3NhZ2VBZGRlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3LmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LkV2ZW50cy5Db25zb2xlQ2xl
YXJlZCwgdGhpcy5fY29uc29sZUNsZWFyZWQsIHRoaXMpOworICAgIHRoaXMuX3ZpZXcgPSBXZWJJ
bnNwZWN0b3IuY29uc29sZVZpZXc7CiB9CiAKIFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJv
dG90eXBlID0gewpAQCAtMzksNDkgKzQwLDMxIEBAIFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb25z
b2xlIik7CiAgICAgfSwKIAorICAgIGdldCBzdGF0dXNCYXJJdGVtcygpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5fdmlldy5zdGF0dXNCYXJJdGVtczsKKyAgICB9LAorCiAgICAgc2hvdzog
ZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5kcmF3ZXIudmlzaWJs
ZSkgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRyYXdlci5oaWRlKHRydWUpOworICAgICAg
ICAgICAgdGhpcy5fZHJhd2VyV2FzVmlzaWJsZSA9IHRydWU7CisgICAgICAgIH0KICAgICAgICAg
V2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7CiAKLSAgICAgICAg
dGhpcy5fcHJldmlvdXNDb25zb2xlU3RhdGUgPSBXZWJJbnNwZWN0b3IuZHJhd2VyLnN0YXRlOwot
ICAgICAgICBXZWJJbnNwZWN0b3IuZHJhd2VyLmVudGVyUGFuZWxNb2RlKCk7Ci0gICAgICAgIFdl
Ykluc3BlY3Rvci5zaG93Q29uc29sZSgpOwotCi0gICAgICAgIC8vIE1vdmUgdGhlIHNjb3BlIGJh
ciB0byB0aGUgdG9wIG9mIHRoZSBtZXNzYWdlcywgbGlrZSB0aGUgcmVzb3VyY2VzIGZpbHRlci4K
LSAgICAgICAgdmFyIHNjb3BlQmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUt
ZmlsdGVyIik7Ci0gICAgICAgIHZhciBjb25zb2xlTWVzc2FnZXMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29uc29sZS1tZXNzYWdlcyIpOwotCi0gICAgICAgIHNjb3BlQmFyLnBhcmVudE5v
ZGUucmVtb3ZlQ2hpbGQoc2NvcGVCYXIpOwotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29uc29sZS12aWV3IikuaW5zZXJ0QmVmb3JlKHNjb3BlQmFyLCBjb25zb2xlTWVzc2FnZXMp
OwotCi0gICAgICAgIC8vIFVwZGF0ZSBzdHlsZXMsIGFuZCBnaXZlIGNvbnNvbGUtbWVzc2FnZXMg
YSB0b3AgbWFyZ2luIHNvIGl0IGRvZXNuJ3Qgb3ZlcndyaXRlIHRoZSBzY29wZSBiYXIuCi0gICAg
ICAgIHNjb3BlQmFyLmFkZFN0eWxlQ2xhc3MoImNvbnNvbGUtZmlsdGVyLXRvcCIpOwotICAgICAg
ICBzY29wZUJhci5yZW1vdmVTdHlsZUNsYXNzKCJzdGF0dXMtYmFyLWl0ZW0iKTsKLQotICAgICAg
ICBjb25zb2xlTWVzc2FnZXMuYWRkU3R5bGVDbGFzcygiY29uc29sZS1maWx0ZXItdG9wIik7Cisg
ICAgICAgIHRoaXMuYWRkQ2hpbGRWaWV3KHRoaXMuX3ZpZXcpOworICAgICAgICB0aGlzLl92aWV3
LnNob3codGhpcy5lbGVtZW50KTsKICAgICB9LAogCiAgICAgaGlkZTogZnVuY3Rpb24oKQogICAg
IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5oaWRlLmNhbGwodGhpcyk7
Ci0KLSAgICAgICAgaWYgKHRoaXMuX3ByZXZpb3VzQ29uc29sZVN0YXRlID09PSBXZWJJbnNwZWN0
b3IuRHJhd2VyLlN0YXRlLkhpZGRlbikKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kcmF3ZXIu
aW1tZWRpYXRlbHlFeGl0UGFuZWxNb2RlKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5kcmF3ZXIuZXhpdFBhbmVsTW9kZSgpOwotICAgICAgICBkZWxldGUgdGhpcy5f
cHJldmlvdXNDb25zb2xlU3RhdGU7Ci0KLSAgICAgICAgLy8gTW92ZSB0aGUgc2NvcGUgYmFyIGJh
Y2sgdG8gdGhlIGJvdHRvbSBiYXIsIG5leHQgdG8gQ2xlYXIgQ29uc29sZS4KLSAgICAgICAgdmFy
IHNjb3BlQmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUtZmlsdGVyIik7Ci0K
LSAgICAgICAgc2NvcGVCYXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzY29wZUJhcik7Ci0gICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdGhlci1kcmF3ZXItc3RhdHVzLWJhci1pdGVt
cyIpLmFwcGVuZENoaWxkKHNjb3BlQmFyKTsKLQotICAgICAgICAvLyBVcGRhdGUgc3R5bGVzLCBh
bmQgcmVtb3ZlIHRoZSB0b3AgbWFyZ2luIG9uIGNvbnNvbGUtbWVzc2FnZXMuCi0gICAgICAgIHNj
b3BlQmFyLnJlbW92ZVN0eWxlQ2xhc3MoImNvbnNvbGUtZmlsdGVyLXRvcCIpOwotICAgICAgICBz
Y29wZUJhci5hZGRTdHlsZUNsYXNzKCJzdGF0dXMtYmFyLWl0ZW0iKTsKLQotICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZS1tZXNzYWdlcyIpLnJlbW92ZVN0eWxlQ2xhc3Mo
ImNvbnNvbGUtZmlsdGVyLXRvcCIpOworICAgICAgICB0aGlzLnJlbW92ZUNoaWxkVmlldyh0aGlz
Ll92aWV3KTsKKyAgICAgICAgaWYgKHRoaXMuX2RyYXdlcldhc1Zpc2libGUpIHsKKyAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kcmF3ZXIuc2hvdyh0aGlzLl92aWV3LCB0cnVlKTsKKyAgICAgICAg
ICAgIGRlbGV0ZSB0aGlzLl9kcmF3ZXJXYXNWaXNpYmxlOworICAgICAgICB9CiAgICAgfSwKIAog
ICAgIHNlYXJjaENhbmNlbGVkOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCA1ZmQzZDhmNDI2MTYyMGVmYjc2
MmU1MzdlOTllODY4ZmVhZTI5ZDFkLi42MTczY2U5MDNhOTRiNmRlZWQwNjk0ZWRlOGY5Y2NiZTEy
MDFiZjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
bnNvbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVZpZXcuanMKQEAgLTI5LDI3ICsyOSwzNyBAQAogCiBjb25zdCBFeHByZXNzaW9uU3RvcENo
YXJhY3RlcnMgPSAiID06Wyh7OywhKy0qLyZ8Xjw+IjsKIAotV2ViSW5zcGVjdG9yLkNvbnNvbGVW
aWV3ID0gZnVuY3Rpb24oZHJhd2VyKQorV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3ID0gZnVuY3Rp
b24oKQogewotICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcywgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUtdmlldyIpKTsKKyAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRo
aXMpOworICAgIHRoaXMuZWxlbWVudC5pZCA9ICJjb25zb2xlLXZpZXciOwogCiAgICAgdGhpcy5t
ZXNzYWdlcyA9IFtdOwotICAgIHRoaXMuZHJhd2VyID0gZHJhd2VyOwogCi0gICAgdGhpcy5jbGVh
ckJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGVhci1jb25zb2xlLXN0YXR1cy1i
YXItaXRlbSIpOwotICAgIHRoaXMuY2xlYXJCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkNsZWFyIGNvbnNvbGUgbG9nLiIpOwotICAgIHRoaXMuY2xlYXJCdXR0b24uYWRkRXZl
bnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9yZXF1ZXN0Q2xlYXJNZXNzYWdlcy5iaW5kKHRoaXMp
LCBmYWxzZSk7CisgICAgdGhpcy5fY2xlYXJDb25zb2xlQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rv
ci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGVhciBjb25zb2xlIGxv
Zy4iKSwgImNsZWFyLXN0YXR1cy1iYXItaXRlbSIpOworICAgIHRoaXMuX2NsZWFyQ29uc29sZUJ1
dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3JlcXVlc3RDbGVhck1lc3NhZ2Vz
LmJpbmQodGhpcyksIGZhbHNlKTsKKworICAgIHRoaXMuX2NvbnRleHRTZWxlY3RFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2VsZWN0Iik7CisgICAgdGhpcy5fY29udGV4dFNlbGVj
dEVsZW1lbnQuaWQgPSAiY29uc29sZS1jb250ZXh0IjsKKyAgICB0aGlzLl9jb250ZXh0U2VsZWN0
RWxlbWVudC5jbGFzc05hbWUgPSAic3RhdHVzLWJhci1pdGVtIjsKIAotICAgIHRoaXMuX2NvbnRl
eHRTZWxlY3RFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUtY29udGV4
dCIpOwogICAgIGlmIChXZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5pc1dvcmtlckZyb250ZW5k
KCkpCiAgICAgICAgIHRoaXMuX2NvbnRleHRTZWxlY3RFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhp
ZGRlbiIpOwogCi0gICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29uc29sZS1tZXNzYWdlcyIpOworICAgIHRoaXMubWVzc2FnZXNFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuaWQg
PSAiY29uc29sZS1tZXNzYWdlcyI7CisgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuY2xhc3NOYW1l
ID0gIm1vbm9zcGFjZSI7CiAgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCB0aGlzLl9tZXNzYWdlc0NsaWNrZWQuYmluZCh0aGlzKSwgdHJ1ZSk7CisgICAg
dGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMubWVzc2FnZXNFbGVtZW50KTsKIAotICAgIHRo
aXMucHJvbXB0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlLXByb21w
dCIpOworICAgIHRoaXMucHJvbXB0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOworICAgIHRoaXMucHJvbXB0RWxlbWVudC5pZCA9ICJjb25zb2xlLXByb21wdCI7CiAgICAg
dGhpcy5wcm9tcHRFbGVtZW50LmNsYXNzTmFtZSA9ICJzb3VyY2UtY29kZSI7CisgICAgdGhpcy5w
cm9tcHRFbGVtZW50LnNwZWxsY2hlY2sgPSBmYWxzZTsKICAgICB0aGlzLnByb21wdEVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX3Byb21wdEtleURvd24uYmluZCh0aGlz
KSwgdHJ1ZSk7CisgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5wcm9t
cHRFbGVtZW50KTsKKyAgICB0aGlzLm1lc3NhZ2VzRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJiciIpKTsKKwogICAgIHRoaXMucHJvbXB0ID0gbmV3IFdlYkluc3Bl
Y3Rvci5UZXh0UHJvbXB0KHRoaXMucHJvbXB0RWxlbWVudCwgdGhpcy5jb21wbGV0aW9ucy5iaW5k
KHRoaXMpLCBFeHByZXNzaW9uU3RvcENoYXJhY3RlcnMgKyAiLiIpOwogICAgIHRoaXMucHJvbXB0
Lmhpc3RvcnkgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuY29uc29sZUhpc3RvcnkuZ2V0KCk7CiAK
QEAgLTU3LDE2ICs2NywxNCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcgPSBmdW5jdGlvbihk
cmF3ZXIpCiAgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuaW5zZXJ0QmVmb3JlKHRoaXMudG9wR3Jv
dXAuZWxlbWVudCwgdGhpcy5wcm9tcHRFbGVtZW50KTsKICAgICB0aGlzLmN1cnJlbnRHcm91cCA9
IHRoaXMudG9wR3JvdXA7CiAKLSAgICB0aGlzLnRvZ2dsZUNvbnNvbGVCdXR0b24gPSBuZXcgV2Vi
SW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgY29u
c29sZS4iKSwgImNvbnNvbGUtc3RhdHVzLWJhci1pdGVtIik7Ci0gICAgdGhpcy50b2dnbGVDb25z
b2xlQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlQ29uc29sZUJ1
dHRvbkNsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwotCi0gICAgLy8gV2lsbCBob2xkIHRoZSBs
aXN0IG9mIGZpbHRlciBlbGVtZW50cwotICAgIHRoaXMuZmlsdGVyQmFyRWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlLWZpbHRlciIpOworICAgIHRoaXMuX2ZpbHRlckJh
ckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLl9maWx0
ZXJCYXJFbGVtZW50LmlkID0gImNvbnNvbGUtZmlsdGVyIjsKKyAgICB0aGlzLl9maWx0ZXJCYXJF
bGVtZW50LmNsYXNzTmFtZSA9ICJzY29wZS1iYXIgc3RhdHVzLWJhci1pdGVtIjsKIAogICAgIGZ1
bmN0aW9uIGNyZWF0ZURpdmlkZXJFbGVtZW50KCkgewogICAgICAgICB2YXIgZGl2aWRlckVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgZGl2aWRlckVsZW1l
bnQuYWRkU3R5bGVDbGFzcygic2NvcGUtYmFyLWRpdmlkZXIiKTsKLSAgICAgICAgdGhpcy5maWx0
ZXJCYXJFbGVtZW50LmFwcGVuZENoaWxkKGRpdmlkZXJFbGVtZW50KTsKKyAgICAgICAgdGhpcy5f
ZmlsdGVyQmFyRWxlbWVudC5hcHBlbmRDaGlsZChkaXZpZGVyRWxlbWVudCk7CiAgICAgfQogCiAg
ICAgdmFyIHVwZGF0ZUZpbHRlckhhbmRsZXIgPSB0aGlzLl91cGRhdGVGaWx0ZXIuYmluZCh0aGlz
KTsKQEAgLTc3LDcgKzg1LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3ID0gZnVuY3Rpb24o
ZHJhd2VyKQogICAgICAgICBjYXRlZ29yeUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCB1cGRhdGVGaWx0ZXJIYW5kbGVyLCBmYWxzZSk7CiAgICAgICAgIGNhdGVnb3J5RWxlbWVudC50
ZXh0Q29udGVudCA9IGxhYmVsOwogCi0gICAgICAgIHRoaXMuZmlsdGVyQmFyRWxlbWVudC5hcHBl
bmRDaGlsZChjYXRlZ29yeUVsZW1lbnQpOworICAgICAgICB0aGlzLl9maWx0ZXJCYXJFbGVtZW50
LmFwcGVuZENoaWxkKGNhdGVnb3J5RWxlbWVudCk7CiAKICAgICAgICAgcmV0dXJuIGNhdGVnb3J5
RWxlbWVudDsKICAgICB9CkBAIC0xMTIsNiArMTIwLDExIEBAIFdlYkluc3BlY3Rvci5Db25zb2xl
Vmlldy5FdmVudHMgPSB7CiB9CiAKIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUg
PSB7CisgICAgZ2V0IHN0YXR1c0Jhckl0ZW1zKCkKKyAgICB7CisgICAgICAgIHJldHVybiBbdGhp
cy5fY2xlYXJDb25zb2xlQnV0dG9uLmVsZW1lbnQsIHRoaXMuX2NvbnRleHRTZWxlY3RFbGVtZW50
LCB0aGlzLl9maWx0ZXJCYXJFbGVtZW50XTsKKyAgICB9LAorCiAgICAgYWRkQ29udGV4dDogZnVu
Y3Rpb24oY29udGV4dCkKICAgICB7CiAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJvcHRpb24iKTsKQEAgLTIxMSwyMSArMjI0LDggQEAgV2ViSW5zcGVjdG9yLkNv
bnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICBfdG9nZ2xl
Q29uc29sZUJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgdGhpcy5kcmF3ZXIudmlzaWJsZVZpZXcgPSB0aGlzOwotICAgIH0s
Ci0KLSAgICBwb3B1bGF0ZVN0YXR1c0JhcjogZnVuY3Rpb24oc3RhdHVzQmFyRWxlbWVudCkKLSAg
ICB7Ci0gICAgICAgIHN0YXR1c0JhckVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5jbGVhckJ1dHRv
bik7Ci0gICAgICAgIHN0YXR1c0JhckVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5maWx0ZXJCYXJF
bGVtZW50KTsKLSAgICB9LAotCi0gICAgc2hvdzogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAg
dGhpcy50b2dnbGVDb25zb2xlQnV0dG9uLnRvZ2dsZWQgPSB0cnVlOwotICAgICAgICB0aGlzLnRv
Z2dsZUNvbnNvbGVCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkhpZGUgY29u
c29sZS4iKTsKICAgICAgICAgaWYgKCF0aGlzLnByb21wdC5pc0NhcmV0SW5zaWRlUHJvbXB0KCkp
CiAgICAgICAgICAgICB0aGlzLnByb21wdC5tb3ZlQ2FyZXRUb0VuZE9mUHJvbXB0KCk7CiAgICAg
fSwKQEAgLTIzNSwxMiArMjM1LDYgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0VsZW1lbnQgPSB0aGlzLnBy
b21wdEVsZW1lbnQ7CiAgICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAg
ICAgIHRoaXMudG9nZ2xlQ29uc29sZUJ1dHRvbi50b2dnbGVkID0gZmFsc2U7Ci0gICAgICAgIHRo
aXMudG9nZ2xlQ29uc29sZUJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hv
dyBjb25zb2xlLiIpOwotICAgIH0sCi0KICAgICBfaXNTY3JvbGxJbnRvVmlld1NjaGVkdWxlZDog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgcmV0dXJuICEhdGhpcy5fc2Nyb2xsSW50b1ZpZXdU
aW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRHJh
d2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMKaW5k
ZXggNjg1YTY2ZjUwMDc3ZWE3MDkwZWMyMDIxNDQ5MGUwNmE0MDZlNDkwMC4uM2U3YzE5NGE4YjZj
N2JjMjdiMTA0MmUyMGNmMGU3YWIzOTYyZDc4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9EcmF3ZXIuanMKQEAgLTI5LDc5ICsyOSw1NSBAQAogCiBXZWJJbnNwZWN0
b3IuRHJhd2VyID0gZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhp
cywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYXdlciIpKTsKLQorICAgIHRoaXMuZWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcmF3ZXIiKTsKICAgICB0aGlzLl9zYXZlZEhl
aWdodCA9IDIwMDsgLy8gRGVmYXVsdC4KLSAgICB0aGlzLnN0YXRlID0gV2ViSW5zcGVjdG9yLkRy
YXdlci5TdGF0ZS5IaWRkZW47Ci0gICAgdGhpcy5mdWxsUGFuZWwgPSBmYWxzZTsKLQogICAgIHRo
aXMuX21haW5FbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4iKTsKICAgICB0
aGlzLl90b29sYmFyRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b29sYmFyIik7
CiAgICAgdGhpcy5fbWFpblN0YXR1c0JhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWlu
LXN0YXR1cy1iYXIiKTsKICAgICB0aGlzLl9tYWluU3RhdHVzQmFyLmFkZEV2ZW50TGlzdGVuZXIo
Im1vdXNlZG93biIsIHRoaXMuX3N0YXJ0U3RhdHVzQmFyRHJhZ2dpbmcuYmluZCh0aGlzKSwgdHJ1
ZSk7Ci0gICAgdGhpcy5fdmlld1N0YXR1c0JhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJv
dGhlci1kcmF3ZXItc3RhdHVzLWJhci1pdGVtcyIpOwogICAgIHRoaXMuX2NvdW50ZXJzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvdW50ZXJzIik7Ci0gICAgdGhpcy5fZHJhd2VyU3RhdHVz
QmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYXdlci1zdGF0dXMtYmFyIik7CisgICAg
dGhpcy5fZHJhd2VyU3RhdHVzQmFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cisg
ICAgdGhpcy5fZHJhd2VyU3RhdHVzQmFyLmlkID0gImRyYXdlci1zdGF0dXMtYmFyIjsKKyAgICB0
aGlzLl9kcmF3ZXJTdGF0dXNCYXIuY2xhc3NOYW1lID0gInN0YXR1cy1iYXIiOworICAgIHRoaXMu
ZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9kcmF3ZXJTdGF0dXNCYXIpOworCisgICAgdGhpcy5f
dmlld1N0YXR1c0JhciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHRoaXMu
X2RyYXdlclN0YXR1c0Jhci5hcHBlbmRDaGlsZCh0aGlzLl92aWV3U3RhdHVzQmFyKTsKIH0KIAog
V2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUgPSB7Ci0gICAgZ2V0IHZpc2libGVWaWV3KCkK
KyAgICBnZXQgdmlzaWJsZSgpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZVZp
ZXc7Ci0gICAgfSwKLQotICAgIHNldCB2aXNpYmxlVmlldyh4KQotICAgIHsKLSAgICAgICAgaWYg
KHRoaXMuX3Zpc2libGVWaWV3ID09PSB4KSB7Ci0gICAgICAgICAgICBpZiAodGhpcy52aXNpYmxl
ICYmIHRoaXMuZnVsbFBhbmVsKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
IHRoaXMudmlzaWJsZSA9ICF0aGlzLnZpc2libGU7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLQotICAgICAgICB2YXIgZmlyc3RUaW1lID0gIXRoaXMuX3Zpc2libGVWaWV3OwotICAg
ICAgICBpZiAodGhpcy5fdmlzaWJsZVZpZXcpCi0gICAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxk
Vmlldyh0aGlzLl92aXNpYmxlVmlldyk7Ci0gICAgICAgIHRoaXMuX3Zpc2libGVWaWV3ID0geDsK
LSAgICAgICAgdGhpcy5hZGRDaGlsZFZpZXcoeCk7Ci0KLSAgICAgICAgaWYgKHggJiYgIWZpcnN0
VGltZSkgewotICAgICAgICAgICAgdGhpcy5fc2FmZWx5UmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAg
ICAgICAgIHRoaXMuX3ZpZXdTdGF0dXNCYXIucmVtb3ZlQ2hpbGRyZW4oKTsgLy8gb3B0aW1pemUg
dGhpcz8gY2FsbCBvbGQuZGV0YWNoKCkKLSAgICAgICAgICAgIHgucG9wdWxhdGVTdGF0dXNCYXIo
dGhpcy5fdmlld1N0YXR1c0Jhcik7Ci0gICAgICAgICAgICB4LnNob3coKTsKLSAgICAgICAgICAg
IHRoaXMudmlzaWJsZSA9IHRydWU7Ci0gICAgICAgIH0KKyAgICAgICAgcmV0dXJuICEhdGhpcy5f
dmlldzsKICAgICB9LAogCi0gICAgZ2V0IHNhdmVkSGVpZ2h0KCkKKyAgICBfY29uc3RyYWluSGVp
Z2h0OiBmdW5jdGlvbihoZWlnaHQpCiAgICAgewotICAgICAgICB2YXIgaGVpZ2h0ID0gdGhpcy5f
c2F2ZWRIZWlnaHQgfHwgdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodDsKICAgICAgICAgcmV0dXJu
IE51bWJlci5jb25zdHJhaW4oaGVpZ2h0LCBQcmVmZXJlbmNlcy5taW5Db25zb2xlSGVpZ2h0LCB3
aW5kb3cuaW5uZXJIZWlnaHQgLSB0aGlzLl9tYWluRWxlbWVudC50b3RhbE9mZnNldFRvcCgpIC0g
UHJlZmVyZW5jZXMubWluQ29uc29sZUhlaWdodCk7CiAgICAgfSwKIAotICAgIHNob3dWaWV3OiBm
dW5jdGlvbih2aWV3KQorICAgIHNob3c6IGZ1bmN0aW9uKHZpZXcsIGltbWVkaWF0ZWx5KQogICAg
IHsKLSAgICAgICAgaWYgKCF0aGlzLnZpc2libGUgfHwgdGhpcy52aXNpYmxlVmlldyAhPT0gdmll
dykKLSAgICAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcgPSB2aWV3OwotICAgIH0sCisgICAgICAg
IHZhciBkcmF3ZXJXYXNWaXNpYmxlID0gdGhpcy52aXNpYmxlOwogCi0gICAgc2hvdzogZnVuY3Rp
b24oKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGluZyB8fCB0aGlzLnZpc2libGUp
Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRoaXMuaW1tZWRpYXRlbHlGaW5pc2hBbmlt
YXRpb24oKTsKKyAgICAgICAgaWYgKHRoaXMuX3ZpZXcpCisgICAgICAgICAgICB0aGlzLmVsZW1l
bnQucmVtb3ZlQ2hpbGQodGhpcy5fdmlldy5lbGVtZW50KTsKIAotICAgICAgICBpZiAodGhpcy52
aXNpYmxlVmlldykKLSAgICAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcuc2hvdygpOworICAgICAg
ICB0aGlzLl92aWV3ID0gdmlldzsKKyAgICAgICAgdGhpcy5fdmlldy5zaG93KHRoaXMuZWxlbWVu
dCk7CiAKLSAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0aGlz
KTsKKyAgICAgICAgdmFyIHN0YXR1c0Jhckl0ZW1zID0gdGhpcy5fdmlldy5zdGF0dXNCYXJJdGVt
cyB8fCBbXTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGF0dXNCYXJJdGVtcy5sZW5n
dGg7ICsraSkKKyAgICAgICAgICAgIHRoaXMuX3ZpZXdTdGF0dXNCYXIuYXBwZW5kQ2hpbGQoc3Rh
dHVzQmFySXRlbXNbaV0pOwogCi0gICAgICAgIHRoaXMuX2FuaW1hdGluZyA9IHRydWU7CisgICAg
ICAgIGlmIChkcmF3ZXJXYXNWaXNpYmxlKQorICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
IGRvY3VtZW50LmJvZHkuYWRkU3R5bGVDbGFzcygiZHJhd2VyLXZpc2libGUiKTsKIAogICAgICAg
ICB2YXIgYW5jaG9yZWRJdGVtcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmNob3JlZC1z
dGF0dXMtYmFyLWl0ZW1zIik7Ci0gICAgICAgIHZhciBoZWlnaHQgPSAodGhpcy5mdWxsUGFuZWwg
PyB3aW5kb3cuaW5uZXJIZWlnaHQgLSB0aGlzLl90b29sYmFyRWxlbWVudC5vZmZzZXRIZWlnaHQg
OiB0aGlzLnNhdmVkSGVpZ2h0KTsKKyAgICAgICAgdmFyIGhlaWdodCA9IHRoaXMuX2NvbnN0cmFp
bkhlaWdodCh0aGlzLl9zYXZlZEhlaWdodCB8fCB0aGlzLmVsZW1lbnQub2Zmc2V0SGVpZ2h0KTsK
ICAgICAgICAgdmFyIGFuaW1hdGlvbnMgPSBbCiAgICAgICAgICAgICB7ZWxlbWVudDogdGhpcy5l
bGVtZW50LCBlbmQ6IHtoZWlnaHQ6IGhlaWdodH19LAogICAgICAgICAgICAge2VsZW1lbnQ6IHRo
aXMuX21haW5FbGVtZW50LCBlbmQ6IHtib3R0b206IGhlaWdodH19LApAQCAtMTI0LDMyICsxMDAs
MjggQEAgV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHsKICAgICAg
ICAgICAgIGlmICgidXBkYXRlU3RhdHVzQmFySXRlbXMiIGluIFdlYkluc3BlY3Rvci5jdXJyZW50
UGFuZWwpCiAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5lbC51cGRhdGVT
dGF0dXNCYXJJdGVtcygpOwotICAgICAgICAgICAgaWYgKHRoaXMudmlzaWJsZVZpZXcuYWZ0ZXJT
aG93KQotICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcuYWZ0ZXJTaG93KCk7Ci0gICAg
ICAgICAgICBkZWxldGUgdGhpcy5fYW5pbWF0aW5nOworICAgICAgICAgICAgaWYgKHRoaXMuX3Zp
ZXcgJiYgdGhpcy5fdmlldy5hZnRlclNob3cpCisgICAgICAgICAgICAgICAgdGhpcy5fdmlldy5h
ZnRlclNob3coKTsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50QW5pbWF0aW9uOwot
ICAgICAgICAgICAgdGhpcy5zdGF0ZSA9ICh0aGlzLmZ1bGxQYW5lbCA/IFdlYkluc3BlY3Rvci5E
cmF3ZXIuU3RhdGUuRnVsbCA6IFdlYkluc3BlY3Rvci5EcmF3ZXIuU3RhdGUuVmFyaWFibGUpOwog
ICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQYW5lbENvdW50ZXJzKQogICAgICAgICAgICAg
ICAgIHRoaXMuX2N1cnJlbnRQYW5lbENvdW50ZXJzLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKTsK
ICAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX2N1cnJlbnRBbmltYXRpb24gPSBXZWJJbnNwZWN0
b3IuYW5pbWF0ZVN0eWxlKGFuaW1hdGlvbnMsIHRoaXMuX2FuaW1hdGlvbkR1cmF0aW9uKCksIGFu
aW1hdGlvbkZpbmlzaGVkLmJpbmQodGhpcykpOworICAgICAgICBpZiAoaW1tZWRpYXRlbHkpCisg
ICAgICAgICAgICB0aGlzLl9jdXJyZW50QW5pbWF0aW9uLmZvcmNlQ29tcGxldGUoKTsKICAgICB9
LAogCi0gICAgaGlkZTogZnVuY3Rpb24oKQorICAgIGhpZGU6IGZ1bmN0aW9uKGltbWVkaWF0ZWx5
KQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGluZyB8fCAhdGhpcy52aXNpYmxlKQor
ICAgICAgICB0aGlzLmltbWVkaWF0ZWx5RmluaXNoQW5pbWF0aW9uKCk7CisgICAgICAgIGlmICgh
dGhpcy52aXNpYmxlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIFdlYkluc3BlY3Rv
ci5WaWV3LnByb3RvdHlwZS5oaWRlLmNhbGwodGhpcyk7Ci0KLSAgICAgICAgaWYgKHRoaXMudmlz
aWJsZVZpZXcpCi0gICAgICAgICAgICB0aGlzLnZpc2libGVWaWV3LmhpZGUoKTsKLQotICAgICAg
ICB0aGlzLl9hbmltYXRpbmcgPSB0cnVlOworICAgICAgICB0aGlzLl9zYXZlZEhlaWdodCA9IHRo
aXMuZWxlbWVudC5vZmZzZXRIZWlnaHQ7CiAKLSAgICAgICAgaWYgKCF0aGlzLmZ1bGxQYW5lbCkK
LSAgICAgICAgICAgIHRoaXMuX3NhdmVkSGVpZ2h0ID0gdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdo
dDsKKyAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuX3ZpZXcuZWxlbWVudCk7
CisgICAgICAgIGRlbGV0ZSB0aGlzLl92aWV3OwogCiAgICAgICAgIGlmICh0aGlzLmVsZW1lbnQg
PT09IFdlYkluc3BlY3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50IHx8IHRoaXMuZWxlbWVudC5pc0Fu
Y2VzdG9yKFdlYkluc3BlY3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50KSkKICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50ID0gV2ViSW5zcGVjdG9yLnByZXZpb3VzRm9j
dXNFbGVtZW50OwpAQCAtMTkwLDY3ICsxNjIsMjQgQEAgV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVt
b3ZlU3R5bGVDbGFzcygiZHJhd2VyLXZpc2libGUiKTsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlz
Ll9hbmltYXRpbmc7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fY3VycmVudEFuaW1hdGlvbjsK
LSAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBXZWJJbnNwZWN0b3IuRHJhd2VyLlN0YXRlLkhpZGRl
bjsKICAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX2N1cnJlbnRBbmltYXRpb24gPSBXZWJJbnNw
ZWN0b3IuYW5pbWF0ZVN0eWxlKGFuaW1hdGlvbnMsIHRoaXMuX2FuaW1hdGlvbkR1cmF0aW9uKCks
IGFuaW1hdGlvbkZpbmlzaGVkLmJpbmQodGhpcykpOworICAgICAgICBpZiAoaW1tZWRpYXRlbHkp
CisgICAgICAgICAgICB0aGlzLl9jdXJyZW50QW5pbWF0aW9uLmZvcmNlQ29tcGxldGUoKTsKICAg
ICB9LAogCi0gICAgb25SZXNpemU6IGZ1bmN0aW9uKCkKKyAgICByZXNpemU6IGZ1bmN0aW9uKCkK
ICAgICB7Ci0gICAgICAgIGlmICh0aGlzLnN0YXRlID09PSBXZWJJbnNwZWN0b3IuRHJhd2VyLlN0
YXRlLkhpZGRlbikKKyAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpCiAgICAgICAgICAgICByZXR1
cm47CiAKLSAgICAgICAgdmFyIGhlaWdodDsKLSAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFdl
Ykluc3BlY3Rvci5EcmF3ZXIuU3RhdGUuVmFyaWFibGUpIHsKLSAgICAgICAgICAgIGhlaWdodCA9
IHBhcnNlSW50KHRoaXMuZWxlbWVudC5zdHlsZS5oZWlnaHQpOwotICAgICAgICAgICAgaGVpZ2h0
ID0gTnVtYmVyLmNvbnN0cmFpbihoZWlnaHQsIFByZWZlcmVuY2VzLm1pbkNvbnNvbGVIZWlnaHQs
IHdpbmRvdy5pbm5lckhlaWdodCAtIHRoaXMuX21haW5FbGVtZW50LnRvdGFsT2Zmc2V0VG9wKCkg
LSBQcmVmZXJlbmNlcy5taW5Db25zb2xlSGVpZ2h0KTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICBoZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSB0aGlzLl90b29sYmFyRWxlbWVudC5v
ZmZzZXRIZWlnaHQ7Ci0KKyAgICAgICAgdmFyIGhlaWdodCA9IHRoaXMuX2NvbnN0cmFpbkhlaWdo
dChwYXJzZUludCh0aGlzLmVsZW1lbnQuc3R5bGUuaGVpZ2h0KSk7CiAgICAgICAgIHRoaXMuX21h
aW5FbGVtZW50LnN0eWxlLmJvdHRvbSA9IGhlaWdodCArICJweCI7CiAgICAgICAgIHRoaXMuZWxl
bWVudC5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyAicHgiOwogICAgIH0sCiAKLSAgICBlbnRlclBh
bmVsTW9kZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy5fY2FuY2VsQW5pbWF0aW9u
SWZOZWVkZWQoKTsKLSAgICAgICAgdGhpcy5mdWxsUGFuZWwgPSB0cnVlOwotICAgICAgICB0aGlz
LnVwZGF0ZUhlaWdodCgpOwotICAgIH0sCi0KLSAgICBleGl0UGFuZWxNb2RlOiBmdW5jdGlvbigp
Ci0gICAgewotICAgICAgICB0aGlzLl9jYW5jZWxBbmltYXRpb25JZk5lZWRlZCgpOwotICAgICAg
ICB0aGlzLmZ1bGxQYW5lbCA9IGZhbHNlOwotICAgICAgICB0aGlzLnVwZGF0ZUhlaWdodCgpOwot
ICAgIH0sCi0KLSAgICB1cGRhdGVIZWlnaHQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGlm
ICh0aGlzLnZpc2libGUpIHsKLSAgICAgICAgICAgIGlmICh0aGlzLmZ1bGxQYW5lbCkgewotICAg
ICAgICAgICAgICAgIHRoaXMuX3NhdmVkSGVpZ2h0ID0gdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdo
dDsKLSAgICAgICAgICAgICAgICB2YXIgaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gdGhp
cy5fdG9vbGJhckVsZW1lbnQub2Zmc2V0SGVpZ2h0OwotICAgICAgICAgICAgICAgIHRoaXMuX2Fu
aW1hdGVEcmF3ZXJIZWlnaHQoaGVpZ2h0LCBXZWJJbnNwZWN0b3IuRHJhd2VyLlN0YXRlLkZ1bGwp
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGFuaW1h
dGlvbiBnZXRzIGNhbmNlbGxlZCwgd2Ugd2FudCB0aGUgc3RhdGUgb2YgdGhlIGRyYXdlciB0byBi
ZSBWYXJpYWJsZSwKLSAgICAgICAgICAgICAgICAvLyBzbyB0aGF0IHRoZSBuZXcgYW5pbWF0aW9u
IGNhbid0IGRvIGFuIGltbWVkaWF0ZSB0cmFuc2l0aW9uIGJldHdlZW4gSGlkZGVuL0Z1bGwgc3Rh
dGVzLgotICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBXZWJJbnNwZWN0b3IuRHJhd2VyLlN0
YXRlLlZhcmlhYmxlOwotICAgICAgICAgICAgICAgIHZhciBoZWlnaHQgPSB0aGlzLnNhdmVkSGVp
Z2h0OwotICAgICAgICAgICAgICAgIHRoaXMuX2FuaW1hdGVEcmF3ZXJIZWlnaHQoaGVpZ2h0LCBX
ZWJJbnNwZWN0b3IuRHJhd2VyLlN0YXRlLlZhcmlhYmxlKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgIH0sCi0KLSAgICBpbW1lZGlhdGVseUV4aXRQYW5lbE1vZGU6IGZ1bmN0aW9uKCkK
LSAgICB7Ci0gICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlOwotICAgICAgICB0aGlzLmZ1bGxQ
YW5lbCA9IGZhbHNlOwotICAgIH0sCi0KICAgICBpbW1lZGlhdGVseUZpbmlzaEFuaW1hdGlvbjog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRBbmltYXRpb24pCkBA
IC0yNzMsNDEgKzIwMiw4IEBAIFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgdGhpcy5fY291bnRlcnMuaW5zZXJ0QmVmb3JlKHgsIHRoaXMuX2NvdW50ZXJzLmZp
cnN0Q2hpbGQpOwogICAgIH0sCiAKLSAgICBfY2FuY2VsQW5pbWF0aW9uSWZOZWVkZWQ6IGZ1bmN0
aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9hbmltYXRpbmcpIHsKLSAgICAgICAgICAg
IGlmICh0aGlzLl9jdXJyZW50QW5pbWF0aW9uKQotICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJl
bnRBbmltYXRpb24uY2FuY2VsKCk7Ci0gICAgICAgICAgICBkZWxldGUgdGhpcy5fYW5pbWF0aW5n
OwotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2N1cnJlbnRBbmltYXRpb247Ci0gICAgICAgIH0K
LSAgICB9LAotCi0gICAgX2FuaW1hdGVEcmF3ZXJIZWlnaHQ6IGZ1bmN0aW9uKGhlaWdodCwgZmlu
YWxTdGF0ZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2FuaW1hdGluZyA9IHRydWU7Ci0gICAgICAg
IHZhciBhbmltYXRpb25zID0gWwotICAgICAgICAgICAge2VsZW1lbnQ6IHRoaXMuZWxlbWVudCwg
ZW5kOiB7aGVpZ2h0OiBoZWlnaHR9fSwKLSAgICAgICAgICAgIHtlbGVtZW50OiB0aGlzLl9tYWlu
RWxlbWVudCwgZW5kOiB7Ym90dG9tOiBoZWlnaHR9fQotICAgICAgICBdOwotCi0gICAgICAgIGZ1
bmN0aW9uIGFuaW1hdGlvbkZpbmlzaGVkKCkKLSAgICAgICAgewotICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLmN1cnJlbnRQYW5lbC5kb1Jlc2l6ZSgpOwotICAgICAgICAgICAgZGVsZXRlIHRoaXMu
X2FuaW1hdGluZzsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50QW5pbWF0aW9uOwot
ICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IGZpbmFsU3RhdGU7Ci0gICAgICAgIH0KLQotICAgICAg
ICB0aGlzLl9jdXJyZW50QW5pbWF0aW9uID0gV2ViSW5zcGVjdG9yLmFuaW1hdGVTdHlsZShhbmlt
YXRpb25zLCB0aGlzLl9hbmltYXRpb25EdXJhdGlvbigpLCBhbmltYXRpb25GaW5pc2hlZC5iaW5k
KHRoaXMpKTsKLSAgICB9LAotCiAgICAgX2FuaW1hdGlvbkR1cmF0aW9uOiBmdW5jdGlvbigpCiAg
ICAgewotICAgICAgICAvLyBJbW1lZGlhdGUgaWYgZ29pbmcgYmV0d2VlbiBIaWRkZW4gYW5kIEZ1
bGwgaW4gZnVsbCBwYW5lbCBtb2RlCi0gICAgICAgIGlmICh0aGlzLmZ1bGxQYW5lbCAmJiAodGhp
cy5zdGF0ZSA9PT0gV2ViSW5zcGVjdG9yLkRyYXdlci5TdGF0ZS5IaWRkZW4gfHwgdGhpcy5zdGF0
ZSA9PT0gV2ViSW5zcGVjdG9yLkRyYXdlci5TdGF0ZS5GdWxsKSkKLSAgICAgICAgICAgIHJldHVy
biAwOwotCiAgICAgICAgIHJldHVybiAod2luZG93LmV2ZW50ICYmIHdpbmRvdy5ldmVudC5zaGlm
dEtleSA/IDIwMDAgOiAyNTApOwogICAgIH0sCiAKQEAgLTM2MCwxMSArMjU2LDMgQEAgV2ViSW5z
cGVjdG9yLkRyYXdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlv
bigpOwogICAgIH0KIH0KLQotV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUuX19wcm90b19f
ID0gV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlOwotCi1XZWJJbnNwZWN0b3IuRHJhd2VyLlN0
YXRlID0gewotICAgIEhpZGRlbjogMCwKLSAgICBWYXJpYWJsZTogMSwKLSAgICBGdWxsOiAyCi19
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuaHRtbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0
bWwKaW5kZXggYmU5NTk4NDNlZDE1ZjRiMjVkYzEzYzkxOTM0YWQxY2U3ZGU5OWVhOC4uZjhjOTJi
ZWViOTlmYjc5NzJmYzQ4MjQ2YTRhM2MyMWQxNDRmNWZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCkBAIC0xOTQsOSArMTk0LDYg
QEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAgICAgICAgPGRpdiBpZD0ibWFpbi1wYW5lbHMiIHNwZWxsY2hlY2s9ImZh
bHNlIj48L2Rpdj4KICAgICAgICAgPGRpdiBpZD0ibWFpbi1zdGF0dXMtYmFyIiBjbGFzcz0ic3Rh
dHVzLWJhciI+PGRpdiBpZD0iYW5jaG9yZWQtc3RhdHVzLWJhci1pdGVtcyI+PGRpdiBpZD0iY291
bnRlcnMiPjxkaXYgaWQ9ImVycm9yLXdhcm5pbmctY291bnQiIGNsYXNzPSJoaWRkZW4iPjwvZGl2
PjwvZGl2PjwvZGl2PjwvZGl2PgogICAgIDwvZGl2PgotICAgIDxkaXYgaWQ9ImRyYXdlciI+Ci0g
ICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUtdmlldyI+PGRpdiBpZD0iY29uc29sZS1tZXNzYWdlcyIg
Y2xhc3M9Im1vbm9zcGFjZSI+PGRpdiBpZD0iY29uc29sZS1wcm9tcHQiIHNwZWxsY2hlY2s9ImZh
bHNlIj48YnI+PC9kaXY+PC9kaXY+PC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImRyYXdlci1zdGF0
dXMtYmFyIiBjbGFzcz0ic3RhdHVzLWJhciI+PGRpdiBpZD0ib3RoZXItZHJhd2VyLXN0YXR1cy1i
YXItaXRlbXMiPjxidXR0b24gaWQ9ImNsZWFyLWNvbnNvbGUtc3RhdHVzLWJhci1pdGVtIiBjbGFz
cz0ic3RhdHVzLWJhci1pdGVtIGNsZWFyLXN0YXR1cy1iYXItaXRlbSI+PGRpdiBjbGFzcz0iZ2x5
cGgiPjwvZGl2PjxkaXYgY2xhc3M9ImdseXBoIHNoYWRvdyI+PC9kaXY+PC9idXR0b24+PHNlbGVj
dCBpZD0iY29uc29sZS1jb250ZXh0IiBjbGFzcz0ic3RhdHVzLWJhci1pdGVtIj48L3NlbGVjdD48
ZGl2IGlkPSJjb25zb2xlLWZpbHRlciIgY2xhc3M9InNjb3BlLWJhciBzdGF0dXMtYmFyLWl0ZW0i
PjwvZGl2PjwvZGl2PjwvZGl2PgotICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9ImRyYXdlciI+PC9k
aXY+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IDRjNmY5YThhN2M4Y2YwYWJkODY3NGUwOGZkNTA0M2Jk
YzIxMmYwZTguLmRjNmY5OTZhYzA4ZGY3ZWQ1NWQwYzYxNDE3YjY5MmJjYmRkNGRjN2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0x
NDQsNiArMTQ0LDggQEAgdmFyIFdlYkluc3BlY3RvciA9IHsKICAgICAgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IudXNlck1ldHJpY3MucGFuZWxTaG93bihwYW5lbE5hbWUpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fdG9nZ2xlQ29uc29sZUJ1dHRvbi5kaXNhYmxl
ZCA9IHRoaXMuX2N1cnJlbnRQYW5lbCA9PT0gV2ViSW5zcGVjdG9yLnBhbmVscy5jb25zb2xlOwog
ICAgIH0sCiAKICAgICBfY3JlYXRlUGFuZWxzOiBmdW5jdGlvbigpCkBAIC0xODMsMTAgKzE4NSwx
MyBAQCB2YXIgV2ViSW5zcGVjdG9yID0gewogCiAgICAgICAgIHZhciBhbmNob3JlZFN0YXR1c0Jh
ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmNob3JlZC1zdGF0dXMtYmFyLWl0ZW1zIik7
CiAgICAgICAgIGFuY2hvcmVkU3RhdHVzQmFyLmFwcGVuZENoaWxkKHRoaXMuX2RvY2tUb2dnbGVC
dXR0b24uZWxlbWVudCk7Ci0gICAgICAgIGFuY2hvcmVkU3RhdHVzQmFyLmFwcGVuZENoaWxkKHRo
aXMuY29uc29sZVZpZXcudG9nZ2xlQ29uc29sZUJ1dHRvbi5lbGVtZW50KTsKKworICAgICAgICB0
aGlzLl90b2dnbGVDb25zb2xlQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0
b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IGNvbnNvbGUuIiksICJjb25zb2xlLXN0YXR1
cy1iYXItaXRlbSIpOworICAgICAgICB0aGlzLl90b2dnbGVDb25zb2xlQnV0dG9uLmFkZEV2ZW50
TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlQ29uc29sZUJ1dHRvbkNsaWNrZWQuYmluZCh0
aGlzKSwgZmFsc2UpOworICAgICAgICBhbmNob3JlZFN0YXR1c0Jhci5hcHBlbmRDaGlsZCh0aGlz
Ll90b2dnbGVDb25zb2xlQnV0dG9uLmVsZW1lbnQpOworCiAgICAgICAgIGlmICh0aGlzLnBhbmVs
cy5lbGVtZW50cykKICAgICAgICAgICAgIGFuY2hvcmVkU3RhdHVzQmFyLmFwcGVuZENoaWxkKHRo
aXMucGFuZWxzLmVsZW1lbnRzLm5vZGVTZWFyY2hCdXR0b24uZWxlbWVudCk7Ci0KICAgICAgICAg
YW5jaG9yZWRTdGF0dXNCYXIuYXBwZW5kQ2hpbGQodGhpcy5fc2V0dGluZ3NCdXR0b24uZWxlbWVu
dCk7CiAgICAgfSwKIApAQCAtMjA2LDYgKzIxMSwyMiBAQCB2YXIgV2ViSW5zcGVjdG9yID0gewog
ICAgICAgICB9CiAgICAgfSwKIAorICAgIF90b2dnbGVDb25zb2xlQnV0dG9uQ2xpY2tlZDogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3RvZ2dsZUNvbnNvbGVCdXR0b24uZGlz
YWJsZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fdG9nZ2xlQ29uc29s
ZUJ1dHRvbi50b2dnbGVkID0gIXRoaXMuX3RvZ2dsZUNvbnNvbGVCdXR0b24udG9nZ2xlZDsKKwor
ICAgICAgICBpZiAodGhpcy5fdG9nZ2xlQ29uc29sZUJ1dHRvbi50b2dnbGVkKSB7CisgICAgICAg
ICAgICB0aGlzLl90b2dnbGVDb25zb2xlQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJIaWRlIGNvbnNvbGUuIik7CisgICAgICAgICAgICB0aGlzLmRyYXdlci5zaG93KHRoaXMu
Y29uc29sZVZpZXcpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5fdG9nZ2xl
Q29uc29sZUJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hvdyBjb25zb2xl
LiIpOworICAgICAgICAgICAgdGhpcy5kcmF3ZXIuaGlkZSgpOworICAgICAgICB9CisgICAgfSwK
KwogICAgIF90b2dnbGVTZXR0aW5nczogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5f
c2V0dGluZ3NCdXR0b24udG9nZ2xlZCA9ICF0aGlzLl9zZXR0aW5nc0J1dHRvbi50b2dnbGVkOwpA
QCAtMjg2LDcgKzMwNyw3IEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7CiAgICAgICAgICAgICBXZWJJ
bnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci51cGRhdGVTZWFyY2hMYWJlbCgpOwogCiAgICAgICAg
IGlmIChXZWJJbnNwZWN0b3IuZHJhd2VyKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRyYXdl
ci51cGRhdGVIZWlnaHQoKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kcmF3ZXIucmVzaXpl
KCk7CiAgICAgfSwKIAogICAgIF91cGRhdGVFcnJvckFuZFdhcm5pbmdDb3VudHM6IGZ1bmN0aW9u
KCkKQEAgLTQ5NSw4ICs1MTYsNyBAQCBXZWJJbnNwZWN0b3IuZG9Mb2FkZWREb25lID0gZnVuY3Rp
b24oKQogICAgIHRoaXMuY29uc29sZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db25z
b2xlTW9kZWwuRXZlbnRzLlJlcGVhdENvdW50VXBkYXRlZCwgdGhpcy5fdXBkYXRlRXJyb3JBbmRX
YXJuaW5nQ291bnRzLCB0aGlzKTsKIAogICAgIHRoaXMuZHJhd2VyID0gbmV3IFdlYkluc3BlY3Rv
ci5EcmF3ZXIoKTsKLSAgICB0aGlzLmNvbnNvbGVWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5Db25z
b2xlVmlldyh0aGlzLmRyYXdlcik7Ci0gICAgdGhpcy5kcmF3ZXIudmlzaWJsZVZpZXcgPSB0aGlz
LmNvbnNvbGVWaWV3OworICAgIHRoaXMuY29uc29sZVZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLkNv
bnNvbGVWaWV3KCk7CiAKICAgICB0aGlzLm5ldHdvcmtNYW5hZ2VyID0gbmV3IFdlYkluc3BlY3Rv
ci5OZXR3b3JrTWFuYWdlcigpOwogICAgIHRoaXMucmVzb3VyY2VUcmVlTW9kZWwgPSBuZXcgV2Vi
SW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsKCk7CkBAIC02MDcsNyArNjI3LDcgQEAgV2ViSW5z
cGVjdG9yLndpbmRvd1Jlc2l6ZSA9IGZ1bmN0aW9uKGV2ZW50KQogewogICAgIGlmICh0aGlzLmN1
cnJlbnRQYW5lbCkKICAgICAgICAgdGhpcy5jdXJyZW50UGFuZWwuZG9SZXNpemUoKTsKLSAgICB0
aGlzLmRyYXdlci5kb1Jlc2l6ZSgpOworICAgIHRoaXMuZHJhd2VyLnJlc2l6ZSgpOwogICAgIHRo
aXMudG9vbGJhci5yZXNpemUoKTsKIH0KIApAQCAtNzkzLDEwICs4MTMsNyBAQCBXZWJJbnNwZWN0
b3IuZG9jdW1lbnRLZXlEb3duID0gZnVuY3Rpb24oZXZlbnQpCiAKICAgICAgICAgY2FzZSAiVSsw
MDFCIjogLy8gRXNjYXBlIGtleQogICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
LSAgICAgICAgICAgIGlmICh0aGlzLmRyYXdlci5mdWxsUGFuZWwpCi0gICAgICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgICAgICB0aGlzLmRyYXdlci52aXNpYmxlID0gIXRoaXMuZHJhd2Vy
LnZpc2libGU7CisgICAgICAgICAgICB0aGlzLl90b2dnbGVDb25zb2xlQnV0dG9uQ2xpY2tlZCgp
OwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgLy8gV2luZG93cyBhbmQgTWFjIGhhdmUg
dHdvIGRpZmZlcmVudCBkZWZpbml0aW9ucyBvZiBbLCBzbyBhY2NlcHQgYm90aC4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107492</attachid>
            <date>2011-09-15 07:22:27 -0700</date>
            <delta_ts>2011-09-19 10:47:34 -0700</delta_ts>
            <desc>[Patch] Review comments addressed</desc>
            <filename>bug-68155-20110915182225.patch</filename>
            <type>text/plain</type>
            <size>28011</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTUwOTMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2YzBiZGU3NTEyMGM0ZTcwMDhhZWJj
MGI2ZTkxMjQ2MGEwZTJhNzdkLi40ZjVmMjc2MmFmMWY4MzMzM2M2ODBhOWZlMjhhYzRkNDQ4NDgz
NmFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDktMTUgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlZmFjdG9yIENv
bnNvbGVWaWV3LCBEcmF3ZXIsIENvbnNvbGVQYW5lbCB0cmlvLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxNTUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
ZGlyLmh0bWw6CisKIDIwMTEtMDktMTQgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlcXVlc3RBbmltYXRpb25GcmFtZSBj
YWxsYmFja3MgZG9uJ3Qgc2hvdyB1cCBpbiB0aGUgdGltZWxpbmUgcGFuZWwuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWRpci5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXIuaHRtbAppbmRleCBjMGNmMzQzYzY1
ZDMwM2NlNTNlYTAwZTk4ZjYxYmVlNzZlNmNiNjcxLi41YWMxYWZlMDFlYTE0Y2E2NDcwYjc5MWRj
ZDM5N2QwNGI5MDAyMjNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWRpci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtZGlyLmh0bWwKQEAgLTMyLDcgKzMyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBm
dW5jdGlvbiBkdW1wQ29uc29sZU1lc3NhZ2VzKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KEluc3BlY3RvclRlc3QudGV4dENvbnRlbnRXaXRoTGluZUJyZWFrcyhkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZS1tZXNzYWdlcyIpKSk7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KEluc3BlY3RvclRlc3QudGV4dENvbnRlbnRXaXRoTGluZUJyZWFr
cyhXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcubWVzc2FnZXNFbGVtZW50KSk7CiAgICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMwMTM4
MzdhODQxZDU3NDI1MjE1M2Y5MjFiODNmMjRhMDBlMTdmZGQuLjMwYjA2Nzc4ZmRlMDZmNjAxN2Nj
NjZiYjRlNzZmMzljMTRjNzJjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxMS0w
OS0xNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogcmVmYWN0b3IgQ29uc29sZVZpZXcsIERyYXdlciwgQ29uc29sZVBhbmVsIHRy
aW8uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODE1
NQorCisgICAgICAgIENvbnNvbGVWaWV3LCBDb25zb2xlUGFuZWwgYW5kIERyYXdlciBhcmUgYWxs
IFZpZXdzIHdpdGggY3VzdG9tIHNob3cvaGlkZSBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgYW5k
IHdlaXJkIERPTSBlbGVtZW50IGNvbnRhaW5tZW50LiBBcyBhIHJlc3VsdCwgd2UgaGF2ZSBhIG51
bWJlciBvZiBjYXNlcyB3aGVuIHN3aXRjaGluZworICAgICAgICBjb25zb2xlIGZyb20gZnVsbCBw
YW5lbCB0byBkcmF3ZXIgbW9kZSBhbmQgYmFjayByZXN1bHQgaW4gVUkgZ2xpdGNoZXMuCisgICAg
ICAgIEZvciB0aGUgc2FrZSBvZiBjb2RlIGNsYXJpdHkgYW5kIG5vIGdsaXRjaGVzLCBJJ2QgbGlr
ZSB0byBzYWNyaWZpY2UgdGhlICJncm93IGludG8gZnVsbAorICAgICAgICBzY3JlZW4iIGNvbnNv
bGUgYW5pbWF0aW9uLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbnNvbGVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90b3R5cGUuZ2V0IHN0YXR1c0Jh
ckl0ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJvdG90eXBlLnNo
b3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90b3R5cGUuaGlkZSk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Db25zb2xlVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcuY3JlYXRlRmlsdGVyRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcuZ2V0IHRoaXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3Rv
dHlwZS5nZXQgc3RhdHVzQmFySXRlbXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVW
aWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9E
cmF3ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRHJhd2VyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlLmdldCB2aXNpYmxlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5EcmF3ZXIucHJvdG90eXBlLl9jb25zdHJhaW5IZWlnaHQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRyYXdlci5wcm90b3R5cGUuc2hvdy5hbmltYXRpb25GaW5pc2hlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRHJhd2VyLnByb3RvdHlwZS5zaG93KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5EcmF3ZXIucHJvdG90eXBlLmhpZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRyYXdl
ci5wcm90b3R5cGUucmVzaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90
eXBlLl9hbmltYXRpb25EdXJhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5fY3JlYXRlR2xvYmFsU3RhdHVzQmFySXRlbXMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLl90b2dnbGVDb25zb2xlQnV0dG9uQ2xpY2tlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3Iuc2V0IGF0dGFjaGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci53
aW5kb3dSZXNpemUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmRvY3VtZW50S2V5RG93bik6CisK
IDIwMTEtMDktMTMgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVEZXN0cm95
ZWQgaXMgY2FsbGVkIGFmdGVyIG1fcGFnZSBoYXMgYmVlbiByZXNldC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVsLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMKaW5kZXggOWUyMWYy
YzQ4NDgzNTA4ZWI2ZTZkZTExYjkyMmM3N2Y2MGNlZmViOS4uZWExNzk2M2JjZjVkZWFmMDcyZGEw
ODBjYWYxZGJjNDMxZTBhMmZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMKQEAgLTMxLDcgKzMxLDcgQEAKIC8qKgogICogQGNv
bnN0cnVjdG9yCiAgKi8KLVdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwgPSBmdW5jdGlvbihkcmF3
ZXIpCitXZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsID0gZnVuY3Rpb24oKQogewogICAgIHRoaXMu
bWVzc2FnZXMgPSBbXTsKICAgICB0aGlzLndhcm5pbmdzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlUGFuZWwuanMKaW5kZXggZDJlNzNjZGVk
YmE2NzBhMDM2NTllZjQyZjE4ZWRmNGE4NDYwOGFhOC4uNGFjOTUzODg4ZjhhY2MyYjlmYzY2NTVm
OGM3ZTI5NjljZGIwMDgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlUGFuZWwuanMKQEAgLTMxLDYgKzMxLDcgQEAgV2ViSW5zcGVjdG9yLkNv
bnNvbGVQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICBXZWJJbnNwZWN0b3IuUGFuZWwuY2FsbCh0aGlz
LCAiY29uc29sZSIpOwogICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5FdmVudHMuRW50cnlBZGRlZCwgdGhpcy5fY29u
c29sZU1lc3NhZ2VBZGRlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3LmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LkV2ZW50cy5Db25zb2xlQ2xl
YXJlZCwgdGhpcy5fY29uc29sZUNsZWFyZWQsIHRoaXMpOworICAgIHRoaXMuX3ZpZXcgPSBXZWJJ
bnNwZWN0b3IuY29uc29sZVZpZXc7CiB9CiAKIFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJv
dG90eXBlID0gewpAQCAtMzksNDkgKzQwLDMxIEBAIFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb25z
b2xlIik7CiAgICAgfSwKIAorICAgIGdldCBzdGF0dXNCYXJJdGVtcygpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5fdmlldy5zdGF0dXNCYXJJdGVtczsKKyAgICB9LAorCiAgICAgc2hvdzog
ZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5kcmF3ZXIudmlzaWJs
ZSkgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRyYXdlci5oaWRlKHRydWUpOworICAgICAg
ICAgICAgdGhpcy5fZHJhd2VyV2FzVmlzaWJsZSA9IHRydWU7CisgICAgICAgIH0KICAgICAgICAg
V2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7CiAKLSAgICAgICAg
dGhpcy5fcHJldmlvdXNDb25zb2xlU3RhdGUgPSBXZWJJbnNwZWN0b3IuZHJhd2VyLnN0YXRlOwot
ICAgICAgICBXZWJJbnNwZWN0b3IuZHJhd2VyLmVudGVyUGFuZWxNb2RlKCk7Ci0gICAgICAgIFdl
Ykluc3BlY3Rvci5zaG93Q29uc29sZSgpOwotCi0gICAgICAgIC8vIE1vdmUgdGhlIHNjb3BlIGJh
ciB0byB0aGUgdG9wIG9mIHRoZSBtZXNzYWdlcywgbGlrZSB0aGUgcmVzb3VyY2VzIGZpbHRlci4K
LSAgICAgICAgdmFyIHNjb3BlQmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUt
ZmlsdGVyIik7Ci0gICAgICAgIHZhciBjb25zb2xlTWVzc2FnZXMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29uc29sZS1tZXNzYWdlcyIpOwotCi0gICAgICAgIHNjb3BlQmFyLnBhcmVudE5v
ZGUucmVtb3ZlQ2hpbGQoc2NvcGVCYXIpOwotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29uc29sZS12aWV3IikuaW5zZXJ0QmVmb3JlKHNjb3BlQmFyLCBjb25zb2xlTWVzc2FnZXMp
OwotCi0gICAgICAgIC8vIFVwZGF0ZSBzdHlsZXMsIGFuZCBnaXZlIGNvbnNvbGUtbWVzc2FnZXMg
YSB0b3AgbWFyZ2luIHNvIGl0IGRvZXNuJ3Qgb3ZlcndyaXRlIHRoZSBzY29wZSBiYXIuCi0gICAg
ICAgIHNjb3BlQmFyLmFkZFN0eWxlQ2xhc3MoImNvbnNvbGUtZmlsdGVyLXRvcCIpOwotICAgICAg
ICBzY29wZUJhci5yZW1vdmVTdHlsZUNsYXNzKCJzdGF0dXMtYmFyLWl0ZW0iKTsKLQotICAgICAg
ICBjb25zb2xlTWVzc2FnZXMuYWRkU3R5bGVDbGFzcygiY29uc29sZS1maWx0ZXItdG9wIik7Cisg
ICAgICAgIHRoaXMuYWRkQ2hpbGRWaWV3KHRoaXMuX3ZpZXcpOworICAgICAgICB0aGlzLl92aWV3
LnNob3coKTsKICAgICB9LAogCiAgICAgaGlkZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAg
V2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5oaWRlLmNhbGwodGhpcyk7Ci0KLSAgICAgICAg
aWYgKHRoaXMuX3ByZXZpb3VzQ29uc29sZVN0YXRlID09PSBXZWJJbnNwZWN0b3IuRHJhd2VyLlN0
YXRlLkhpZGRlbikKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kcmF3ZXIuaW1tZWRpYXRlbHlF
eGl0UGFuZWxNb2RlKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
cmF3ZXIuZXhpdFBhbmVsTW9kZSgpOwotICAgICAgICBkZWxldGUgdGhpcy5fcHJldmlvdXNDb25z
b2xlU3RhdGU7Ci0KLSAgICAgICAgLy8gTW92ZSB0aGUgc2NvcGUgYmFyIGJhY2sgdG8gdGhlIGJv
dHRvbSBiYXIsIG5leHQgdG8gQ2xlYXIgQ29uc29sZS4KLSAgICAgICAgdmFyIHNjb3BlQmFyID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUtZmlsdGVyIik7Ci0KLSAgICAgICAgc2Nv
cGVCYXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzY29wZUJhcik7Ci0gICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJvdGhlci1kcmF3ZXItc3RhdHVzLWJhci1pdGVtcyIpLmFwcGVuZENo
aWxkKHNjb3BlQmFyKTsKLQotICAgICAgICAvLyBVcGRhdGUgc3R5bGVzLCBhbmQgcmVtb3ZlIHRo
ZSB0b3AgbWFyZ2luIG9uIGNvbnNvbGUtbWVzc2FnZXMuCi0gICAgICAgIHNjb3BlQmFyLnJlbW92
ZVN0eWxlQ2xhc3MoImNvbnNvbGUtZmlsdGVyLXRvcCIpOwotICAgICAgICBzY29wZUJhci5hZGRT
dHlsZUNsYXNzKCJzdGF0dXMtYmFyLWl0ZW0iKTsKLQotICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29uc29sZS1tZXNzYWdlcyIpLnJlbW92ZVN0eWxlQ2xhc3MoImNvbnNvbGUtZmls
dGVyLXRvcCIpOworICAgICAgICB0aGlzLnJlbW92ZUNoaWxkVmlldyh0aGlzLl92aWV3KTsKKyAg
ICAgICAgaWYgKHRoaXMuX2RyYXdlcldhc1Zpc2libGUpIHsKKyAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5kcmF3ZXIuc2hvdyh0aGlzLl92aWV3LCB0cnVlKTsKKyAgICAgICAgICAgIGRlbGV0ZSB0
aGlzLl9kcmF3ZXJXYXNWaXNpYmxlOworICAgICAgICB9CiAgICAgfSwKIAogICAgIHNlYXJjaENh
bmNlbGVkOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCA1ZmQzZDhmNDI2MTYyMGVmYjc2MmU1MzdlOTllODY4
ZmVhZTI5ZDFkLi42MTczY2U5MDNhOTRiNmRlZWQwNjk0ZWRlOGY5Y2NiZTEyMDFiZjY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3Lmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMK
QEAgLTI5LDI3ICsyOSwzNyBAQAogCiBjb25zdCBFeHByZXNzaW9uU3RvcENoYXJhY3RlcnMgPSAi
ID06Wyh7OywhKy0qLyZ8Xjw+IjsKIAotV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3ID0gZnVuY3Rp
b24oZHJhd2VyKQorV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3ID0gZnVuY3Rpb24oKQogewotICAg
IFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUtdmlldyIpKTsKKyAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOworICAgIHRo
aXMuZWxlbWVudC5pZCA9ICJjb25zb2xlLXZpZXciOwogCiAgICAgdGhpcy5tZXNzYWdlcyA9IFtd
OwotICAgIHRoaXMuZHJhd2VyID0gZHJhd2VyOwogCi0gICAgdGhpcy5jbGVhckJ1dHRvbiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGVhci1jb25zb2xlLXN0YXR1cy1iYXItaXRlbSIpOwot
ICAgIHRoaXMuY2xlYXJCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsZWFy
IGNvbnNvbGUgbG9nLiIpOwotICAgIHRoaXMuY2xlYXJCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCB0aGlzLl9yZXF1ZXN0Q2xlYXJNZXNzYWdlcy5iaW5kKHRoaXMpLCBmYWxzZSk7Cisg
ICAgdGhpcy5fY2xlYXJDb25zb2xlQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJC
dXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGVhciBjb25zb2xlIGxvZy4iKSwgImNsZWFy
LXN0YXR1cy1iYXItaXRlbSIpOworICAgIHRoaXMuX2NsZWFyQ29uc29sZUJ1dHRvbi5hZGRFdmVu
dExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3JlcXVlc3RDbGVhck1lc3NhZ2VzLmJpbmQodGhpcyks
IGZhbHNlKTsKKworICAgIHRoaXMuX2NvbnRleHRTZWxlY3RFbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgic2VsZWN0Iik7CisgICAgdGhpcy5fY29udGV4dFNlbGVjdEVsZW1lbnQuaWQg
PSAiY29uc29sZS1jb250ZXh0IjsKKyAgICB0aGlzLl9jb250ZXh0U2VsZWN0RWxlbWVudC5jbGFz
c05hbWUgPSAic3RhdHVzLWJhci1pdGVtIjsKIAotICAgIHRoaXMuX2NvbnRleHRTZWxlY3RFbGVt
ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUtY29udGV4dCIpOwogICAgIGlm
IChXZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5pc1dvcmtlckZyb250ZW5kKCkpCiAgICAgICAg
IHRoaXMuX2NvbnRleHRTZWxlY3RFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogCi0g
ICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZS1tZXNzYWdlcyIpOworICAgIHRoaXMubWVzc2FnZXNFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuaWQgPSAiY29uc29sZS1t
ZXNzYWdlcyI7CisgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuY2xhc3NOYW1lID0gIm1vbm9zcGFj
ZSI7CiAgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0
aGlzLl9tZXNzYWdlc0NsaWNrZWQuYmluZCh0aGlzKSwgdHJ1ZSk7CisgICAgdGhpcy5lbGVtZW50
LmFwcGVuZENoaWxkKHRoaXMubWVzc2FnZXNFbGVtZW50KTsKIAotICAgIHRoaXMucHJvbXB0RWxl
bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlLXByb21wdCIpOworICAgIHRo
aXMucHJvbXB0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHRo
aXMucHJvbXB0RWxlbWVudC5pZCA9ICJjb25zb2xlLXByb21wdCI7CiAgICAgdGhpcy5wcm9tcHRF
bGVtZW50LmNsYXNzTmFtZSA9ICJzb3VyY2UtY29kZSI7CisgICAgdGhpcy5wcm9tcHRFbGVtZW50
LnNwZWxsY2hlY2sgPSBmYWxzZTsKICAgICB0aGlzLnByb21wdEVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigia2V5ZG93biIsIHRoaXMuX3Byb21wdEtleURvd24uYmluZCh0aGlzKSwgdHJ1ZSk7Cisg
ICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5wcm9tcHRFbGVtZW50KTsK
KyAgICB0aGlzLm1lc3NhZ2VzRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJiciIpKTsKKwogICAgIHRoaXMucHJvbXB0ID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0UHJv
bXB0KHRoaXMucHJvbXB0RWxlbWVudCwgdGhpcy5jb21wbGV0aW9ucy5iaW5kKHRoaXMpLCBFeHBy
ZXNzaW9uU3RvcENoYXJhY3RlcnMgKyAiLiIpOwogICAgIHRoaXMucHJvbXB0Lmhpc3RvcnkgPSBX
ZWJJbnNwZWN0b3Iuc2V0dGluZ3MuY29uc29sZUhpc3RvcnkuZ2V0KCk7CiAKQEAgLTU3LDE2ICs2
NywxNCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcgPSBmdW5jdGlvbihkcmF3ZXIpCiAgICAg
dGhpcy5tZXNzYWdlc0VsZW1lbnQuaW5zZXJ0QmVmb3JlKHRoaXMudG9wR3JvdXAuZWxlbWVudCwg
dGhpcy5wcm9tcHRFbGVtZW50KTsKICAgICB0aGlzLmN1cnJlbnRHcm91cCA9IHRoaXMudG9wR3Jv
dXA7CiAKLSAgICB0aGlzLnRvZ2dsZUNvbnNvbGVCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0
YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgY29uc29sZS4iKSwgImNv
bnNvbGUtc3RhdHVzLWJhci1pdGVtIik7Ci0gICAgdGhpcy50b2dnbGVDb25zb2xlQnV0dG9uLmFk
ZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlQ29uc29sZUJ1dHRvbkNsaWNrZWQu
YmluZCh0aGlzKSwgZmFsc2UpOwotCi0gICAgLy8gV2lsbCBob2xkIHRoZSBsaXN0IG9mIGZpbHRl
ciBlbGVtZW50cwotICAgIHRoaXMuZmlsdGVyQmFyRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb25zb2xlLWZpbHRlciIpOworICAgIHRoaXMuX2ZpbHRlckJhckVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLl9maWx0ZXJCYXJFbGVtZW50
LmlkID0gImNvbnNvbGUtZmlsdGVyIjsKKyAgICB0aGlzLl9maWx0ZXJCYXJFbGVtZW50LmNsYXNz
TmFtZSA9ICJzY29wZS1iYXIgc3RhdHVzLWJhci1pdGVtIjsKIAogICAgIGZ1bmN0aW9uIGNyZWF0
ZURpdmlkZXJFbGVtZW50KCkgewogICAgICAgICB2YXIgZGl2aWRlckVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgZGl2aWRlckVsZW1lbnQuYWRkU3R5bGVD
bGFzcygic2NvcGUtYmFyLWRpdmlkZXIiKTsKLSAgICAgICAgdGhpcy5maWx0ZXJCYXJFbGVtZW50
LmFwcGVuZENoaWxkKGRpdmlkZXJFbGVtZW50KTsKKyAgICAgICAgdGhpcy5fZmlsdGVyQmFyRWxl
bWVudC5hcHBlbmRDaGlsZChkaXZpZGVyRWxlbWVudCk7CiAgICAgfQogCiAgICAgdmFyIHVwZGF0
ZUZpbHRlckhhbmRsZXIgPSB0aGlzLl91cGRhdGVGaWx0ZXIuYmluZCh0aGlzKTsKQEAgLTc3LDcg
Kzg1LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3ID0gZnVuY3Rpb24oZHJhd2VyKQogICAg
ICAgICBjYXRlZ29yeUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB1cGRhdGVGaWx0
ZXJIYW5kbGVyLCBmYWxzZSk7CiAgICAgICAgIGNhdGVnb3J5RWxlbWVudC50ZXh0Q29udGVudCA9
IGxhYmVsOwogCi0gICAgICAgIHRoaXMuZmlsdGVyQmFyRWxlbWVudC5hcHBlbmRDaGlsZChjYXRl
Z29yeUVsZW1lbnQpOworICAgICAgICB0aGlzLl9maWx0ZXJCYXJFbGVtZW50LmFwcGVuZENoaWxk
KGNhdGVnb3J5RWxlbWVudCk7CiAKICAgICAgICAgcmV0dXJuIGNhdGVnb3J5RWxlbWVudDsKICAg
ICB9CkBAIC0xMTIsNiArMTIwLDExIEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5FdmVudHMg
PSB7CiB9CiAKIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CisgICAgZ2V0
IHN0YXR1c0Jhckl0ZW1zKCkKKyAgICB7CisgICAgICAgIHJldHVybiBbdGhpcy5fY2xlYXJDb25z
b2xlQnV0dG9uLmVsZW1lbnQsIHRoaXMuX2NvbnRleHRTZWxlY3RFbGVtZW50LCB0aGlzLl9maWx0
ZXJCYXJFbGVtZW50XTsKKyAgICB9LAorCiAgICAgYWRkQ29udGV4dDogZnVuY3Rpb24oY29udGV4
dCkKICAgICB7CiAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJv
cHRpb24iKTsKQEAgLTIxMSwyMSArMjI0LDggQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICBfdG9nZ2xlQ29uc29sZUJ1dHRv
bkNsaWNrZWQ6IGZ1bmN0aW9uKCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAg
ICAgICAgdGhpcy5kcmF3ZXIudmlzaWJsZVZpZXcgPSB0aGlzOwotICAgIH0sCi0KLSAgICBwb3B1
bGF0ZVN0YXR1c0JhcjogZnVuY3Rpb24oc3RhdHVzQmFyRWxlbWVudCkKLSAgICB7Ci0gICAgICAg
IHN0YXR1c0JhckVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5jbGVhckJ1dHRvbik7Ci0gICAgICAg
IHN0YXR1c0JhckVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5maWx0ZXJCYXJFbGVtZW50KTsKLSAg
ICB9LAotCi0gICAgc2hvdzogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy50b2dnbGVD
b25zb2xlQnV0dG9uLnRvZ2dsZWQgPSB0cnVlOwotICAgICAgICB0aGlzLnRvZ2dsZUNvbnNvbGVC
dXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkhpZGUgY29uc29sZS4iKTsKICAg
ICAgICAgaWYgKCF0aGlzLnByb21wdC5pc0NhcmV0SW5zaWRlUHJvbXB0KCkpCiAgICAgICAgICAg
ICB0aGlzLnByb21wdC5tb3ZlQ2FyZXRUb0VuZE9mUHJvbXB0KCk7CiAgICAgfSwKQEAgLTIzNSwx
MiArMjM1LDYgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAg
ICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0VsZW1lbnQgPSB0aGlzLnByb21wdEVsZW1lbnQ7
CiAgICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMudG9n
Z2xlQ29uc29sZUJ1dHRvbi50b2dnbGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMudG9nZ2xlQ29u
c29sZUJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hvdyBjb25zb2xlLiIp
OwotICAgIH0sCi0KICAgICBfaXNTY3JvbGxJbnRvVmlld1NjaGVkdWxlZDogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgcmV0dXJuICEhdGhpcy5fc2Nyb2xsSW50b1ZpZXdUaW1lcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRHJhd2VyLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMKaW5kZXggNjg1YTY2ZjUw
MDc3ZWE3MDkwZWMyMDIxNDQ5MGUwNmE0MDZlNDkwMC4uZGM0YzdmMDhjOWUwNzBhNDA4YjU1Nzcx
MmZlOGQ3ZTIwMjQ3MWI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9EcmF3ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9EcmF3ZXIuanMKQEAgLTI5LDc5ICsyOSw1NSBAQAogCiBXZWJJbnNwZWN0b3IuRHJhd2VyID0g
ZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcywgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRyYXdlciIpKTsKLQorICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJkcmF3ZXIiKTsKICAgICB0aGlzLl9zYXZlZEhlaWdodCA9IDIwMDsg
Ly8gRGVmYXVsdC4KLSAgICB0aGlzLnN0YXRlID0gV2ViSW5zcGVjdG9yLkRyYXdlci5TdGF0ZS5I
aWRkZW47Ci0gICAgdGhpcy5mdWxsUGFuZWwgPSBmYWxzZTsKLQogICAgIHRoaXMuX21haW5FbGVt
ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4iKTsKICAgICB0aGlzLl90b29sYmFy
RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b29sYmFyIik7CiAgICAgdGhpcy5f
bWFpblN0YXR1c0JhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLXN0YXR1cy1iYXIi
KTsKICAgICB0aGlzLl9tYWluU3RhdHVzQmFyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIs
IHRoaXMuX3N0YXJ0U3RhdHVzQmFyRHJhZ2dpbmcuYmluZCh0aGlzKSwgdHJ1ZSk7Ci0gICAgdGhp
cy5fdmlld1N0YXR1c0JhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdGhlci1kcmF3ZXIt
c3RhdHVzLWJhci1pdGVtcyIpOwogICAgIHRoaXMuX2NvdW50ZXJzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvdW50ZXJzIik7Ci0gICAgdGhpcy5fZHJhd2VyU3RhdHVzQmFyID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImRyYXdlci1zdGF0dXMtYmFyIik7CisgICAgdGhpcy5fZHJhd2Vy
U3RhdHVzQmFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5fZHJh
d2VyU3RhdHVzQmFyLmlkID0gImRyYXdlci1zdGF0dXMtYmFyIjsKKyAgICB0aGlzLl9kcmF3ZXJT
dGF0dXNCYXIuY2xhc3NOYW1lID0gInN0YXR1cy1iYXIiOworICAgIHRoaXMuZWxlbWVudC5hcHBl
bmRDaGlsZCh0aGlzLl9kcmF3ZXJTdGF0dXNCYXIpOworCisgICAgdGhpcy5fdmlld1N0YXR1c0Jh
ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHRoaXMuX2RyYXdlclN0YXR1
c0Jhci5hcHBlbmRDaGlsZCh0aGlzLl92aWV3U3RhdHVzQmFyKTsKIH0KIAogV2ViSW5zcGVjdG9y
LkRyYXdlci5wcm90b3R5cGUgPSB7Ci0gICAgZ2V0IHZpc2libGVWaWV3KCkKKyAgICBnZXQgdmlz
aWJsZSgpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZVZpZXc7Ci0gICAgfSwK
LQotICAgIHNldCB2aXNpYmxlVmlldyh4KQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3Zpc2li
bGVWaWV3ID09PSB4KSB7Ci0gICAgICAgICAgICBpZiAodGhpcy52aXNpYmxlICYmIHRoaXMuZnVs
bFBhbmVsKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIHRoaXMudmlzaWJs
ZSA9ICF0aGlzLnZpc2libGU7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAg
ICAgICB2YXIgZmlyc3RUaW1lID0gIXRoaXMuX3Zpc2libGVWaWV3OwotICAgICAgICBpZiAodGhp
cy5fdmlzaWJsZVZpZXcpCi0gICAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxkVmlldyh0aGlzLl92
aXNpYmxlVmlldyk7Ci0gICAgICAgIHRoaXMuX3Zpc2libGVWaWV3ID0geDsKLSAgICAgICAgdGhp
cy5hZGRDaGlsZFZpZXcoeCk7Ci0KLSAgICAgICAgaWYgKHggJiYgIWZpcnN0VGltZSkgewotICAg
ICAgICAgICAgdGhpcy5fc2FmZWx5UmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgICAgIHRoaXMu
X3ZpZXdTdGF0dXNCYXIucmVtb3ZlQ2hpbGRyZW4oKTsgLy8gb3B0aW1pemUgdGhpcz8gY2FsbCBv
bGQuZGV0YWNoKCkKLSAgICAgICAgICAgIHgucG9wdWxhdGVTdGF0dXNCYXIodGhpcy5fdmlld1N0
YXR1c0Jhcik7Ci0gICAgICAgICAgICB4LnNob3coKTsKLSAgICAgICAgICAgIHRoaXMudmlzaWJs
ZSA9IHRydWU7Ci0gICAgICAgIH0KKyAgICAgICAgcmV0dXJuICEhdGhpcy5fdmlldzsKICAgICB9
LAogCi0gICAgZ2V0IHNhdmVkSGVpZ2h0KCkKKyAgICBfY29uc3RyYWluSGVpZ2h0OiBmdW5jdGlv
bihoZWlnaHQpCiAgICAgewotICAgICAgICB2YXIgaGVpZ2h0ID0gdGhpcy5fc2F2ZWRIZWlnaHQg
fHwgdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodDsKICAgICAgICAgcmV0dXJuIE51bWJlci5jb25z
dHJhaW4oaGVpZ2h0LCBQcmVmZXJlbmNlcy5taW5Db25zb2xlSGVpZ2h0LCB3aW5kb3cuaW5uZXJI
ZWlnaHQgLSB0aGlzLl9tYWluRWxlbWVudC50b3RhbE9mZnNldFRvcCgpIC0gUHJlZmVyZW5jZXMu
bWluQ29uc29sZUhlaWdodCk7CiAgICAgfSwKIAotICAgIHNob3dWaWV3OiBmdW5jdGlvbih2aWV3
KQorICAgIHNob3c6IGZ1bmN0aW9uKHZpZXcsIGltbWVkaWF0ZWx5KQogICAgIHsKLSAgICAgICAg
aWYgKCF0aGlzLnZpc2libGUgfHwgdGhpcy52aXNpYmxlVmlldyAhPT0gdmlldykKLSAgICAgICAg
ICAgIHRoaXMudmlzaWJsZVZpZXcgPSB2aWV3OwotICAgIH0sCisgICAgICAgIHZhciBkcmF3ZXJX
YXNWaXNpYmxlID0gdGhpcy52aXNpYmxlOwogCi0gICAgc2hvdzogZnVuY3Rpb24oKQotICAgIHsK
LSAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGluZyB8fCB0aGlzLnZpc2libGUpCi0gICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIHRoaXMuaW1tZWRpYXRlbHlGaW5pc2hBbmltYXRpb24oKTsKKyAg
ICAgICAgaWYgKHRoaXMuX3ZpZXcpCisgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlQ2hp
bGQodGhpcy5fdmlldy5lbGVtZW50KTsKIAotICAgICAgICBpZiAodGhpcy52aXNpYmxlVmlldykK
LSAgICAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcuc2hvdygpOworICAgICAgICB0aGlzLl92aWV3
ID0gdmlldzsKKyAgICAgICAgdGhpcy5fdmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAKLSAgICAg
ICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzKTsKKyAgICAgICAg
dmFyIHN0YXR1c0Jhckl0ZW1zID0gdGhpcy5fdmlldy5zdGF0dXNCYXJJdGVtcyB8fCBbXTsKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGF0dXNCYXJJdGVtcy5sZW5ndGg7ICsraSkKKyAg
ICAgICAgICAgIHRoaXMuX3ZpZXdTdGF0dXNCYXIuYXBwZW5kQ2hpbGQoc3RhdHVzQmFySXRlbXNb
aV0pOwogCi0gICAgICAgIHRoaXMuX2FuaW1hdGluZyA9IHRydWU7CisgICAgICAgIGlmIChkcmF3
ZXJXYXNWaXNpYmxlKQorICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGRvY3VtZW50LmJv
ZHkuYWRkU3R5bGVDbGFzcygiZHJhd2VyLXZpc2libGUiKTsKIAogICAgICAgICB2YXIgYW5jaG9y
ZWRJdGVtcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmNob3JlZC1zdGF0dXMtYmFyLWl0
ZW1zIik7Ci0gICAgICAgIHZhciBoZWlnaHQgPSAodGhpcy5mdWxsUGFuZWwgPyB3aW5kb3cuaW5u
ZXJIZWlnaHQgLSB0aGlzLl90b29sYmFyRWxlbWVudC5vZmZzZXRIZWlnaHQgOiB0aGlzLnNhdmVk
SGVpZ2h0KTsKKyAgICAgICAgdmFyIGhlaWdodCA9IHRoaXMuX2NvbnN0cmFpbkhlaWdodCh0aGlz
Ll9zYXZlZEhlaWdodCB8fCB0aGlzLmVsZW1lbnQub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgdmFy
IGFuaW1hdGlvbnMgPSBbCiAgICAgICAgICAgICB7ZWxlbWVudDogdGhpcy5lbGVtZW50LCBlbmQ6
IHtoZWlnaHQ6IGhlaWdodH19LAogICAgICAgICAgICAge2VsZW1lbnQ6IHRoaXMuX21haW5FbGVt
ZW50LCBlbmQ6IHtib3R0b206IGhlaWdodH19LApAQCAtMTI0LDMyICsxMDAsMjggQEAgV2ViSW5z
cGVjdG9yLkRyYXdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICgi
dXBkYXRlU3RhdHVzQmFySXRlbXMiIGluIFdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwpCiAgICAg
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5lbC51cGRhdGVTdGF0dXNCYXJJdGVt
cygpOwotICAgICAgICAgICAgaWYgKHRoaXMudmlzaWJsZVZpZXcuYWZ0ZXJTaG93KQotICAgICAg
ICAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcuYWZ0ZXJTaG93KCk7Ci0gICAgICAgICAgICBkZWxl
dGUgdGhpcy5fYW5pbWF0aW5nOworICAgICAgICAgICAgaWYgKHRoaXMuX3ZpZXcgJiYgdGhpcy5f
dmlldy5hZnRlclNob3cpCisgICAgICAgICAgICAgICAgdGhpcy5fdmlldy5hZnRlclNob3coKTsK
ICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50QW5pbWF0aW9uOwotICAgICAgICAgICAg
dGhpcy5zdGF0ZSA9ICh0aGlzLmZ1bGxQYW5lbCA/IFdlYkluc3BlY3Rvci5EcmF3ZXIuU3RhdGUu
RnVsbCA6IFdlYkluc3BlY3Rvci5EcmF3ZXIuU3RhdGUuVmFyaWFibGUpOwogICAgICAgICAgICAg
aWYgKHRoaXMuX2N1cnJlbnRQYW5lbENvdW50ZXJzKQogICAgICAgICAgICAgICAgIHRoaXMuX2N1
cnJlbnRQYW5lbENvdW50ZXJzLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKTsKICAgICAgICAgfQog
CiAgICAgICAgIHRoaXMuX2N1cnJlbnRBbmltYXRpb24gPSBXZWJJbnNwZWN0b3IuYW5pbWF0ZVN0
eWxlKGFuaW1hdGlvbnMsIHRoaXMuX2FuaW1hdGlvbkR1cmF0aW9uKCksIGFuaW1hdGlvbkZpbmlz
aGVkLmJpbmQodGhpcykpOworICAgICAgICBpZiAoaW1tZWRpYXRlbHkpCisgICAgICAgICAgICB0
aGlzLl9jdXJyZW50QW5pbWF0aW9uLmZvcmNlQ29tcGxldGUoKTsKICAgICB9LAogCi0gICAgaGlk
ZTogZnVuY3Rpb24oKQorICAgIGhpZGU6IGZ1bmN0aW9uKGltbWVkaWF0ZWx5KQogICAgIHsKLSAg
ICAgICAgaWYgKHRoaXMuX2FuaW1hdGluZyB8fCAhdGhpcy52aXNpYmxlKQorICAgICAgICB0aGlz
LmltbWVkaWF0ZWx5RmluaXNoQW5pbWF0aW9uKCk7CisgICAgICAgIGlmICghdGhpcy52aXNpYmxl
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3Rv
dHlwZS5oaWRlLmNhbGwodGhpcyk7Ci0KLSAgICAgICAgaWYgKHRoaXMudmlzaWJsZVZpZXcpCi0g
ICAgICAgICAgICB0aGlzLnZpc2libGVWaWV3LmhpZGUoKTsKLQotICAgICAgICB0aGlzLl9hbmlt
YXRpbmcgPSB0cnVlOworICAgICAgICB0aGlzLl9zYXZlZEhlaWdodCA9IHRoaXMuZWxlbWVudC5v
ZmZzZXRIZWlnaHQ7CiAKLSAgICAgICAgaWYgKCF0aGlzLmZ1bGxQYW5lbCkKLSAgICAgICAgICAg
IHRoaXMuX3NhdmVkSGVpZ2h0ID0gdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodDsKKyAgICAgICAg
dGhpcy5lbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuX3ZpZXcuZWxlbWVudCk7CisgICAgICAgIGRl
bGV0ZSB0aGlzLl92aWV3OwogCiAgICAgICAgIGlmICh0aGlzLmVsZW1lbnQgPT09IFdlYkluc3Bl
Y3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50IHx8IHRoaXMuZWxlbWVudC5pc0FuY2VzdG9yKFdlYklu
c3BlY3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50KSkKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5j
dXJyZW50Rm9jdXNFbGVtZW50ID0gV2ViSW5zcGVjdG9yLnByZXZpb3VzRm9jdXNFbGVtZW50OwpA
QCAtMTkwLDY1ICsxNjIsMjMgQEAgV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlU3R5bGVDbGFz
cygiZHJhd2VyLXZpc2libGUiKTsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9hbmltYXRpbmc7
CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fY3VycmVudEFuaW1hdGlvbjsKLSAgICAgICAgICAg
IHRoaXMuc3RhdGUgPSBXZWJJbnNwZWN0b3IuRHJhd2VyLlN0YXRlLkhpZGRlbjsKICAgICAgICAg
fQogCiAgICAgICAgIHRoaXMuX2N1cnJlbnRBbmltYXRpb24gPSBXZWJJbnNwZWN0b3IuYW5pbWF0
ZVN0eWxlKGFuaW1hdGlvbnMsIHRoaXMuX2FuaW1hdGlvbkR1cmF0aW9uKCksIGFuaW1hdGlvbkZp
bmlzaGVkLmJpbmQodGhpcykpOworICAgICAgICBpZiAoaW1tZWRpYXRlbHkpCisgICAgICAgICAg
ICB0aGlzLl9jdXJyZW50QW5pbWF0aW9uLmZvcmNlQ29tcGxldGUoKTsKICAgICB9LAogCi0gICAg
b25SZXNpemU6IGZ1bmN0aW9uKCkKKyAgICByZXNpemU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIGlmICh0aGlzLnN0YXRlID09PSBXZWJJbnNwZWN0b3IuRHJhd2VyLlN0YXRlLkhpZGRlbikK
KyAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgdmFyIGhlaWdodDsKLSAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFdlYkluc3BlY3Rvci5E
cmF3ZXIuU3RhdGUuVmFyaWFibGUpIHsKLSAgICAgICAgICAgIGhlaWdodCA9IHBhcnNlSW50KHRo
aXMuZWxlbWVudC5zdHlsZS5oZWlnaHQpOwotICAgICAgICAgICAgaGVpZ2h0ID0gTnVtYmVyLmNv
bnN0cmFpbihoZWlnaHQsIFByZWZlcmVuY2VzLm1pbkNvbnNvbGVIZWlnaHQsIHdpbmRvdy5pbm5l
ckhlaWdodCAtIHRoaXMuX21haW5FbGVtZW50LnRvdGFsT2Zmc2V0VG9wKCkgLSBQcmVmZXJlbmNl
cy5taW5Db25zb2xlSGVpZ2h0KTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBoZWlnaHQg
PSB3aW5kb3cuaW5uZXJIZWlnaHQgLSB0aGlzLl90b29sYmFyRWxlbWVudC5vZmZzZXRIZWlnaHQ7
Ci0KKyAgICAgICAgdmFyIGhlaWdodCA9IHRoaXMuX2NvbnN0cmFpbkhlaWdodChwYXJzZUludCh0
aGlzLmVsZW1lbnQuc3R5bGUuaGVpZ2h0KSk7CiAgICAgICAgIHRoaXMuX21haW5FbGVtZW50LnN0
eWxlLmJvdHRvbSA9IGhlaWdodCArICJweCI7CiAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5o
ZWlnaHQgPSBoZWlnaHQgKyAicHgiOwotICAgIH0sCi0KLSAgICBlbnRlclBhbmVsTW9kZTogZnVu
Y3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy5fY2FuY2VsQW5pbWF0aW9uSWZOZWVkZWQoKTsK
LSAgICAgICAgdGhpcy5mdWxsUGFuZWwgPSB0cnVlOwotICAgICAgICB0aGlzLnVwZGF0ZUhlaWdo
dCgpOwotICAgIH0sCi0KLSAgICBleGl0UGFuZWxNb2RlOiBmdW5jdGlvbigpCi0gICAgewotICAg
ICAgICB0aGlzLl9jYW5jZWxBbmltYXRpb25JZk5lZWRlZCgpOwotICAgICAgICB0aGlzLmZ1bGxQ
YW5lbCA9IGZhbHNlOwotICAgICAgICB0aGlzLnVwZGF0ZUhlaWdodCgpOwotICAgIH0sCi0KLSAg
ICB1cGRhdGVIZWlnaHQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLnZpc2li
bGUpIHsKLSAgICAgICAgICAgIGlmICh0aGlzLmZ1bGxQYW5lbCkgewotICAgICAgICAgICAgICAg
IHRoaXMuX3NhdmVkSGVpZ2h0ID0gdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodDsKLSAgICAgICAg
ICAgICAgICB2YXIgaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gdGhpcy5fdG9vbGJhckVs
ZW1lbnQub2Zmc2V0SGVpZ2h0OwotICAgICAgICAgICAgICAgIHRoaXMuX2FuaW1hdGVEcmF3ZXJI
ZWlnaHQoaGVpZ2h0LCBXZWJJbnNwZWN0b3IuRHJhd2VyLlN0YXRlLkZ1bGwpOwotICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGFuaW1hdGlvbiBnZXRzIGNh
bmNlbGxlZCwgd2Ugd2FudCB0aGUgc3RhdGUgb2YgdGhlIGRyYXdlciB0byBiZSBWYXJpYWJsZSwK
LSAgICAgICAgICAgICAgICAvLyBzbyB0aGF0IHRoZSBuZXcgYW5pbWF0aW9uIGNhbid0IGRvIGFu
IGltbWVkaWF0ZSB0cmFuc2l0aW9uIGJldHdlZW4gSGlkZGVuL0Z1bGwgc3RhdGVzLgotICAgICAg
ICAgICAgICAgIHRoaXMuc3RhdGUgPSBXZWJJbnNwZWN0b3IuRHJhd2VyLlN0YXRlLlZhcmlhYmxl
OwotICAgICAgICAgICAgICAgIHZhciBoZWlnaHQgPSB0aGlzLnNhdmVkSGVpZ2h0OwotICAgICAg
ICAgICAgICAgIHRoaXMuX2FuaW1hdGVEcmF3ZXJIZWlnaHQoaGVpZ2h0LCBXZWJJbnNwZWN0b3Iu
RHJhd2VyLlN0YXRlLlZhcmlhYmxlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0s
Ci0KLSAgICBpbW1lZGlhdGVseUV4aXRQYW5lbE1vZGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAg
ICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlOwotICAgICAgICB0aGlzLmZ1bGxQYW5lbCA9IGZhbHNl
OworICAgICAgICB0aGlzLl92aWV3LmRvUmVzaXplKCk7CiAgICAgfSwKIAogICAgIGltbWVkaWF0
ZWx5RmluaXNoQW5pbWF0aW9uOiBmdW5jdGlvbigpCkBAIC0yNzMsNDEgKzIwMyw4IEBAIFdlYklu
c3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fY291bnRlcnMu
aW5zZXJ0QmVmb3JlKHgsIHRoaXMuX2NvdW50ZXJzLmZpcnN0Q2hpbGQpOwogICAgIH0sCiAKLSAg
ICBfY2FuY2VsQW5pbWF0aW9uSWZOZWVkZWQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGlm
ICh0aGlzLl9hbmltYXRpbmcpIHsKLSAgICAgICAgICAgIGlmICh0aGlzLl9jdXJyZW50QW5pbWF0
aW9uKQotICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRBbmltYXRpb24uY2FuY2VsKCk7Ci0g
ICAgICAgICAgICBkZWxldGUgdGhpcy5fYW5pbWF0aW5nOwotICAgICAgICAgICAgZGVsZXRlIHRo
aXMuX2N1cnJlbnRBbmltYXRpb247Ci0gICAgICAgIH0KLSAgICB9LAotCi0gICAgX2FuaW1hdGVE
cmF3ZXJIZWlnaHQ6IGZ1bmN0aW9uKGhlaWdodCwgZmluYWxTdGF0ZSkKLSAgICB7Ci0gICAgICAg
IHRoaXMuX2FuaW1hdGluZyA9IHRydWU7Ci0gICAgICAgIHZhciBhbmltYXRpb25zID0gWwotICAg
ICAgICAgICAge2VsZW1lbnQ6IHRoaXMuZWxlbWVudCwgZW5kOiB7aGVpZ2h0OiBoZWlnaHR9fSwK
LSAgICAgICAgICAgIHtlbGVtZW50OiB0aGlzLl9tYWluRWxlbWVudCwgZW5kOiB7Ym90dG9tOiBo
ZWlnaHR9fQotICAgICAgICBdOwotCi0gICAgICAgIGZ1bmN0aW9uIGFuaW1hdGlvbkZpbmlzaGVk
KCkKLSAgICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5lbC5kb1Jl
c2l6ZSgpOwotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2FuaW1hdGluZzsKLSAgICAgICAgICAg
IGRlbGV0ZSB0aGlzLl9jdXJyZW50QW5pbWF0aW9uOwotICAgICAgICAgICAgdGhpcy5zdGF0ZSA9
IGZpbmFsU3RhdGU7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLl9jdXJyZW50QW5pbWF0aW9u
ID0gV2ViSW5zcGVjdG9yLmFuaW1hdGVTdHlsZShhbmltYXRpb25zLCB0aGlzLl9hbmltYXRpb25E
dXJhdGlvbigpLCBhbmltYXRpb25GaW5pc2hlZC5iaW5kKHRoaXMpKTsKLSAgICB9LAotCiAgICAg
X2FuaW1hdGlvbkR1cmF0aW9uOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICAvLyBJbW1lZGlh
dGUgaWYgZ29pbmcgYmV0d2VlbiBIaWRkZW4gYW5kIEZ1bGwgaW4gZnVsbCBwYW5lbCBtb2RlCi0g
ICAgICAgIGlmICh0aGlzLmZ1bGxQYW5lbCAmJiAodGhpcy5zdGF0ZSA9PT0gV2ViSW5zcGVjdG9y
LkRyYXdlci5TdGF0ZS5IaWRkZW4gfHwgdGhpcy5zdGF0ZSA9PT0gV2ViSW5zcGVjdG9yLkRyYXdl
ci5TdGF0ZS5GdWxsKSkKLSAgICAgICAgICAgIHJldHVybiAwOwotCiAgICAgICAgIHJldHVybiAo
d2luZG93LmV2ZW50ICYmIHdpbmRvdy5ldmVudC5zaGlmdEtleSA/IDIwMDAgOiAyNTApOwogICAg
IH0sCiAKQEAgLTM2MCwxMSArMjU3LDMgQEAgV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgIH0KIH0KLQotV2ViSW5z
cGVjdG9yLkRyYXdlci5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHJv
dG90eXBlOwotCi1XZWJJbnNwZWN0b3IuRHJhd2VyLlN0YXRlID0gewotICAgIEhpZGRlbjogMCwK
LSAgICBWYXJpYWJsZTogMSwKLSAgICBGdWxsOiAyCi19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggYmU5NTk4NDNlZDE1ZjRi
MjVkYzEzYzkxOTM0YWQxY2U3ZGU5OWVhOC4uZjhjOTJiZWViOTlmYjc5NzJmYzQ4MjQ2YTRhM2My
MWQxNDRmNWZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5odG1sCkBAIC0xOTQsOSArMTk0LDYgQEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAgICAgICAgPGRp
diBpZD0ibWFpbi1wYW5lbHMiIHNwZWxsY2hlY2s9ImZhbHNlIj48L2Rpdj4KICAgICAgICAgPGRp
diBpZD0ibWFpbi1zdGF0dXMtYmFyIiBjbGFzcz0ic3RhdHVzLWJhciI+PGRpdiBpZD0iYW5jaG9y
ZWQtc3RhdHVzLWJhci1pdGVtcyI+PGRpdiBpZD0iY291bnRlcnMiPjxkaXYgaWQ9ImVycm9yLXdh
cm5pbmctY291bnQiIGNsYXNzPSJoaWRkZW4iPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PgogICAg
IDwvZGl2PgotICAgIDxkaXYgaWQ9ImRyYXdlciI+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUt
dmlldyI+PGRpdiBpZD0iY29uc29sZS1tZXNzYWdlcyIgY2xhc3M9Im1vbm9zcGFjZSI+PGRpdiBp
ZD0iY29uc29sZS1wcm9tcHQiIHNwZWxsY2hlY2s9ImZhbHNlIj48YnI+PC9kaXY+PC9kaXY+PC9k
aXY+Ci0gICAgICAgIDxkaXYgaWQ9ImRyYXdlci1zdGF0dXMtYmFyIiBjbGFzcz0ic3RhdHVzLWJh
ciI+PGRpdiBpZD0ib3RoZXItZHJhd2VyLXN0YXR1cy1iYXItaXRlbXMiPjxidXR0b24gaWQ9ImNs
ZWFyLWNvbnNvbGUtc3RhdHVzLWJhci1pdGVtIiBjbGFzcz0ic3RhdHVzLWJhci1pdGVtIGNsZWFy
LXN0YXR1cy1iYXItaXRlbSI+PGRpdiBjbGFzcz0iZ2x5cGgiPjwvZGl2PjxkaXYgY2xhc3M9Imds
eXBoIHNoYWRvdyI+PC9kaXY+PC9idXR0b24+PHNlbGVjdCBpZD0iY29uc29sZS1jb250ZXh0IiBj
bGFzcz0ic3RhdHVzLWJhci1pdGVtIj48L3NlbGVjdD48ZGl2IGlkPSJjb25zb2xlLWZpbHRlciIg
Y2xhc3M9InNjb3BlLWJhciBzdGF0dXMtYmFyLWl0ZW0iPjwvZGl2PjwvZGl2PjwvZGl2PgotICAg
IDwvZGl2PgorICAgIDxkaXYgaWQ9ImRyYXdlciI+PC9kaXY+CiA8L2JvZHk+CiA8L2h0bWw+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4
IDRjNmY5YThhN2M4Y2YwYWJkODY3NGUwOGZkNTA0M2JkYzIxMmYwZTguLmRjNmY5OTZhYzA4ZGY3
ZWQ1NWQwYzYxNDE3YjY5MmJjYmRkNGRjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0xNDQsNiArMTQ0LDggQEAgdmFyIFdlYklu
c3BlY3RvciA9IHsKICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IudXNlck1ldHJpY3MucGFu
ZWxTaG93bihwYW5lbE5hbWUpOwogICAgICAgICAgICAgfQogICAgICAgICB9CisKKyAgICAgICAg
dGhpcy5fdG9nZ2xlQ29uc29sZUJ1dHRvbi5kaXNhYmxlZCA9IHRoaXMuX2N1cnJlbnRQYW5lbCA9
PT0gV2ViSW5zcGVjdG9yLnBhbmVscy5jb25zb2xlOwogICAgIH0sCiAKICAgICBfY3JlYXRlUGFu
ZWxzOiBmdW5jdGlvbigpCkBAIC0xODMsMTAgKzE4NSwxMyBAQCB2YXIgV2ViSW5zcGVjdG9yID0g
ewogCiAgICAgICAgIHZhciBhbmNob3JlZFN0YXR1c0JhciA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJhbmNob3JlZC1zdGF0dXMtYmFyLWl0ZW1zIik7CiAgICAgICAgIGFuY2hvcmVkU3RhdHVz
QmFyLmFwcGVuZENoaWxkKHRoaXMuX2RvY2tUb2dnbGVCdXR0b24uZWxlbWVudCk7Ci0gICAgICAg
IGFuY2hvcmVkU3RhdHVzQmFyLmFwcGVuZENoaWxkKHRoaXMuY29uc29sZVZpZXcudG9nZ2xlQ29u
c29sZUJ1dHRvbi5lbGVtZW50KTsKKworICAgICAgICB0aGlzLl90b2dnbGVDb25zb2xlQnV0dG9u
ID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJTaG93IGNvbnNvbGUuIiksICJjb25zb2xlLXN0YXR1cy1iYXItaXRlbSIpOworICAgICAgICB0
aGlzLl90b2dnbGVDb25zb2xlQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5f
dG9nZ2xlQ29uc29sZUJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOworICAgICAgICBh
bmNob3JlZFN0YXR1c0Jhci5hcHBlbmRDaGlsZCh0aGlzLl90b2dnbGVDb25zb2xlQnV0dG9uLmVs
ZW1lbnQpOworCiAgICAgICAgIGlmICh0aGlzLnBhbmVscy5lbGVtZW50cykKICAgICAgICAgICAg
IGFuY2hvcmVkU3RhdHVzQmFyLmFwcGVuZENoaWxkKHRoaXMucGFuZWxzLmVsZW1lbnRzLm5vZGVT
ZWFyY2hCdXR0b24uZWxlbWVudCk7Ci0KICAgICAgICAgYW5jaG9yZWRTdGF0dXNCYXIuYXBwZW5k
Q2hpbGQodGhpcy5fc2V0dGluZ3NCdXR0b24uZWxlbWVudCk7CiAgICAgfSwKIApAQCAtMjA2LDYg
KzIxMSwyMiBAQCB2YXIgV2ViSW5zcGVjdG9yID0gewogICAgICAgICB9CiAgICAgfSwKIAorICAg
IF90b2dnbGVDb25zb2xlQnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
aWYgKHRoaXMuX3RvZ2dsZUNvbnNvbGVCdXR0b24uZGlzYWJsZWQpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgdGhpcy5fdG9nZ2xlQ29uc29sZUJ1dHRvbi50b2dnbGVkID0gIXRoaXMu
X3RvZ2dsZUNvbnNvbGVCdXR0b24udG9nZ2xlZDsKKworICAgICAgICBpZiAodGhpcy5fdG9nZ2xl
Q29uc29sZUJ1dHRvbi50b2dnbGVkKSB7CisgICAgICAgICAgICB0aGlzLl90b2dnbGVDb25zb2xl
QnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJIaWRlIGNvbnNvbGUuIik7Cisg
ICAgICAgICAgICB0aGlzLmRyYXdlci5zaG93KHRoaXMuY29uc29sZVZpZXcpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgdGhpcy5fdG9nZ2xlQ29uc29sZUJ1dHRvbi50aXRsZSA9IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiU2hvdyBjb25zb2xlLiIpOworICAgICAgICAgICAgdGhpcy5k
cmF3ZXIuaGlkZSgpOworICAgICAgICB9CisgICAgfSwKKwogICAgIF90b2dnbGVTZXR0aW5nczog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fc2V0dGluZ3NCdXR0b24udG9nZ2xlZCA9
ICF0aGlzLl9zZXR0aW5nc0J1dHRvbi50b2dnbGVkOwpAQCAtMjg2LDcgKzMwNyw3IEBAIHZhciBX
ZWJJbnNwZWN0b3IgPSB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxl
ci51cGRhdGVTZWFyY2hMYWJlbCgpOwogCiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZHJhd2Vy
KQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRyYXdlci51cGRhdGVIZWlnaHQoKTsKKyAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5kcmF3ZXIucmVzaXplKCk7CiAgICAgfSwKIAogICAgIF91cGRh
dGVFcnJvckFuZFdhcm5pbmdDb3VudHM6IGZ1bmN0aW9uKCkKQEAgLTQ5NSw4ICs1MTYsNyBAQCBX
ZWJJbnNwZWN0b3IuZG9Mb2FkZWREb25lID0gZnVuY3Rpb24oKQogICAgIHRoaXMuY29uc29sZS5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwuRXZlbnRzLlJlcGVhdENv
dW50VXBkYXRlZCwgdGhpcy5fdXBkYXRlRXJyb3JBbmRXYXJuaW5nQ291bnRzLCB0aGlzKTsKIAog
ICAgIHRoaXMuZHJhd2VyID0gbmV3IFdlYkluc3BlY3Rvci5EcmF3ZXIoKTsKLSAgICB0aGlzLmNv
bnNvbGVWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xlVmlldyh0aGlzLmRyYXdlcik7Ci0g
ICAgdGhpcy5kcmF3ZXIudmlzaWJsZVZpZXcgPSB0aGlzLmNvbnNvbGVWaWV3OworICAgIHRoaXMu
Y29uc29sZVZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3KCk7CiAKICAgICB0aGlz
Lm5ldHdvcmtNYW5hZ2VyID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlcigpOwogICAg
IHRoaXMucmVzb3VyY2VUcmVlTW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1v
ZGVsKCk7CkBAIC02MDcsNyArNjI3LDcgQEAgV2ViSW5zcGVjdG9yLndpbmRvd1Jlc2l6ZSA9IGZ1
bmN0aW9uKGV2ZW50KQogewogICAgIGlmICh0aGlzLmN1cnJlbnRQYW5lbCkKICAgICAgICAgdGhp
cy5jdXJyZW50UGFuZWwuZG9SZXNpemUoKTsKLSAgICB0aGlzLmRyYXdlci5kb1Jlc2l6ZSgpOwor
ICAgIHRoaXMuZHJhd2VyLnJlc2l6ZSgpOwogICAgIHRoaXMudG9vbGJhci5yZXNpemUoKTsKIH0K
IApAQCAtNzkzLDEwICs4MTMsNyBAQCBXZWJJbnNwZWN0b3IuZG9jdW1lbnRLZXlEb3duID0gZnVu
Y3Rpb24oZXZlbnQpCiAKICAgICAgICAgY2FzZSAiVSswMDFCIjogLy8gRXNjYXBlIGtleQogICAg
ICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgICAgIGlmICh0aGlzLmRy
YXdlci5mdWxsUGFuZWwpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICB0
aGlzLmRyYXdlci52aXNpYmxlID0gIXRoaXMuZHJhd2VyLnZpc2libGU7CisgICAgICAgICAgICB0
aGlzLl90b2dnbGVDb25zb2xlQnV0dG9uQ2xpY2tlZCgpOwogICAgICAgICAgICAgYnJlYWs7CiAK
ICAgICAgICAgLy8gV2luZG93cyBhbmQgTWFjIGhhdmUgdHdvIGRpZmZlcmVudCBkZWZpbml0aW9u
cyBvZiBbLCBzbyBhY2NlcHQgYm90aC4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107882</attachid>
            <date>2011-09-19 10:47:45 -0700</date>
            <delta_ts>2011-09-21 05:00:39 -0700</delta_ts>
            <desc>[Patch] rebaselined.</desc>
            <filename>bug-68155-20110919214742.patch</filename>
            <type>text/plain</type>
            <size>27949</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU0MzkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjMzllZWU1NDA5OGJiMTIxNGYxODY1
YWZmZmNkMjJmYmM3YjViOWU0Li5jYjhjZDRlNzU4NGQzYzAwMzIyYzg3OWQ5OGY1NWE0MmJlN2Mz
ZmM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDktMTUgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlZmFjdG9yIENv
bnNvbGVWaWV3LCBEcmF3ZXIsIENvbnNvbGVQYW5lbCB0cmlvLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxNTUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
ZGlyLmh0bWw6CisKIDIwMTEtMDktMTkgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNv
bT4KIAogCVtDaHJvbWl1bV0gUmViYXNlbGluZSBleHBlY3RhdGlvbnMgZHVlIHRvIHI5NTQwMi4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZGlyLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWRpci5odG1sCmluZGV4
IGMwY2YzNDNjNjVkMzAzY2U1M2VhMDBlOThmNjFiZWU3NmU2Y2I2NzEuLjVhYzFhZmUwMWVhMTRj
YTY0NzBiNzkxZGNkMzk3ZDA0YjkwMDIyM2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlL2NvbnNvbGUtZGlyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1kaXIuaHRtbApAQCAtMzIsNyArMzIsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkKIAogICAgIGZ1bmN0aW9uIGR1bXBDb25zb2xlTWVzc2FnZXMoKQogICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoSW5zcGVjdG9yVGVzdC50ZXh0Q29udGVudFdpdGhMaW5l
QnJlYWtzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlLW1lc3NhZ2VzIikpKTsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoSW5zcGVjdG9yVGVzdC50ZXh0Q29udGVudFdp
dGhMaW5lQnJlYWtzKFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5tZXNzYWdlc0VsZW1lbnQpKTsK
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKICAgICB9CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYmYzZWNjYzdiOWZjMjRkZjNjZjhmOWUzNmQ4NGI1MDNjY2UxMjQyZi4uMWJhMDY4OGJj
ZjU4ODIzY2E3YTgyZmEwYjkxNDIwOTlmYzgyOTkyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2
IEBACisyMDExLTA5LTE1ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiByZWZhY3RvciBDb25zb2xlVmlldywgRHJhd2VyLCBDb25z
b2xlUGFuZWwgdHJpby4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY4MTU1CisKKyAgICAgICAgQ29uc29sZVZpZXcsIENvbnNvbGVQYW5lbCBhbmQgRHJh
d2VyIGFyZSBhbGwgVmlld3Mgd2l0aCBjdXN0b20gc2hvdy9oaWRlIGltcGxlbWVudGF0aW9ucwor
ICAgICAgICBhbmQgd2VpcmQgRE9NIGVsZW1lbnQgY29udGFpbm1lbnQuIEFzIGEgcmVzdWx0LCB3
ZSBoYXZlIGEgbnVtYmVyIG9mIGNhc2VzIHdoZW4gc3dpdGNoaW5nCisgICAgICAgIGNvbnNvbGUg
ZnJvbSBmdWxsIHBhbmVsIHRvIGRyYXdlciBtb2RlIGFuZCBiYWNrIHJlc3VsdCBpbiBVSSBnbGl0
Y2hlcy4KKyAgICAgICAgRm9yIHRoZSBzYWtlIG9mIGNvZGUgY2xhcml0eSBhbmQgbm8gZ2xpdGNo
ZXMsIEknZCBsaWtlIHRvIHNhY3JpZmljZSB0aGUgImdyb3cgaW50byBmdWxsCisgICAgICAgIHNj
cmVlbiIgY29uc29sZSBhbmltYXRpb24uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNv
bGVQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVBhbmVsLnByb3RvdHlwZS5n
ZXQgc3RhdHVzQmFySXRlbXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5w
cm90b3R5cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVBhbmVsLnByb3Rv
dHlwZS5oaWRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3Lmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db25zb2xlVmlldy5jcmVhdGVGaWx0ZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db25zb2xlVmlldy5nZXQgdGhpcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcucHJvdG90eXBlLmdldCBzdGF0dXNCYXJJdGVtcyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RyYXdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EcmF3ZXIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUuZ2V0IHZpc2libGUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUuX2NvbnN0cmFpbkhlaWdodCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRHJhd2VyLnByb3RvdHlwZS5zaG93LmFuaW1hdGlvbkZpbmlzaGVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlLnNob3cpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUuaGlkZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRHJhd2VyLnByb3RvdHlwZS5yZXNpemUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRy
YXdlci5wcm90b3R5cGUuX2FuaW1hdGlvbkR1cmF0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9jcmVhdGVHbG9iYWxTdGF0dXNC
YXJJdGVtcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX3RvZ2dsZUNvbnNvbGVCdXR0b25DbGlj
a2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5zZXQgYXR0YWNoZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLndpbmRvd1Jlc2l6ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuZG9jdW1lbnRL
ZXlEb3duKToKKwogMjAxMS0wOS0xOSAgTGVhbmRybyBQZXJlaXJhICA8bGVhbmRyb0Bwcm9mdXNp
b24ubW9iaT4KIAogICAgICAgICBVbnJldmlld2VkOiBTY3JvbGxiYXJUaGVtZU1vY2suY3BwIGlz
IGFscmVhZHkgcmVmZXJlbmNlZCBpbiB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMKaW5kZXggMDc4M2E3ZGNmM2M5NzkwZjA3ZDA4
YjE3ZTQ4MjE2OTY3MmRiZWE0ZS4uN2FiYTc3ODU4ZDdhOWU0ZWIyNDc2Mjc2OTNiOTJhMDg2NDlh
NzY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25z
b2xlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25z
b2xlTW9kZWwuanMKQEAgLTMxLDcgKzMxLDcgQEAKIC8qKgogICogQGNvbnN0cnVjdG9yCiAgKi8K
LVdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwgPSBmdW5jdGlvbihkcmF3ZXIpCitXZWJJbnNwZWN0
b3IuQ29uc29sZU1vZGVsID0gZnVuY3Rpb24oKQogewogICAgIHRoaXMubWVzc2FnZXMgPSBbXTsK
ICAgICB0aGlzLndhcm5pbmdzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Db25zb2xlUGFuZWwuanMKaW5kZXggZDJlNzNjZGVkYmE2NzBhMDM2NTllZjQy
ZjE4ZWRmNGE4NDYwOGFhOC4uNGFjOTUzODg4ZjhhY2MyYjlmYzY2NTVmOGM3ZTI5NjljZGIwMDgz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xl
UGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xl
UGFuZWwuanMKQEAgLTMxLDYgKzMxLDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbCA9IGZ1
bmN0aW9uKCkKICAgICBXZWJJbnNwZWN0b3IuUGFuZWwuY2FsbCh0aGlzLCAiY29uc29sZSIpOwog
ICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5Db25zb2xlVmlldy5FdmVudHMuRW50cnlBZGRlZCwgdGhpcy5fY29uc29sZU1lc3NhZ2VBZGRl
ZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3LmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LkV2ZW50cy5Db25zb2xlQ2xlYXJlZCwgdGhpcy5fY29u
c29sZUNsZWFyZWQsIHRoaXMpOworICAgIHRoaXMuX3ZpZXcgPSBXZWJJbnNwZWN0b3IuY29uc29s
ZVZpZXc7CiB9CiAKIFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJvdG90eXBlID0gewpAQCAt
MzksNDkgKzQwLDMxIEBAIFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb25zb2xlIik7CiAgICAgfSwK
IAorICAgIGdldCBzdGF0dXNCYXJJdGVtcygpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5f
dmlldy5zdGF0dXNCYXJJdGVtczsKKyAgICB9LAorCiAgICAgc2hvdzogZnVuY3Rpb24oKQogICAg
IHsKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5kcmF3ZXIudmlzaWJsZSkgeworICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLmRyYXdlci5oaWRlKHRydWUpOworICAgICAgICAgICAgdGhpcy5fZHJh
d2VyV2FzVmlzaWJsZSA9IHRydWU7CisgICAgICAgIH0KICAgICAgICAgV2ViSW5zcGVjdG9yLlBh
bmVsLnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7CiAKLSAgICAgICAgdGhpcy5fcHJldmlvdXND
b25zb2xlU3RhdGUgPSBXZWJJbnNwZWN0b3IuZHJhd2VyLnN0YXRlOwotICAgICAgICBXZWJJbnNw
ZWN0b3IuZHJhd2VyLmVudGVyUGFuZWxNb2RlKCk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5zaG93
Q29uc29sZSgpOwotCi0gICAgICAgIC8vIE1vdmUgdGhlIHNjb3BlIGJhciB0byB0aGUgdG9wIG9m
IHRoZSBtZXNzYWdlcywgbGlrZSB0aGUgcmVzb3VyY2VzIGZpbHRlci4KLSAgICAgICAgdmFyIHNj
b3BlQmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUtZmlsdGVyIik7Ci0gICAg
ICAgIHZhciBjb25zb2xlTWVzc2FnZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZS1tZXNzYWdlcyIpOwotCi0gICAgICAgIHNjb3BlQmFyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQo
c2NvcGVCYXIpOwotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZS12aWV3
IikuaW5zZXJ0QmVmb3JlKHNjb3BlQmFyLCBjb25zb2xlTWVzc2FnZXMpOwotCi0gICAgICAgIC8v
IFVwZGF0ZSBzdHlsZXMsIGFuZCBnaXZlIGNvbnNvbGUtbWVzc2FnZXMgYSB0b3AgbWFyZ2luIHNv
IGl0IGRvZXNuJ3Qgb3ZlcndyaXRlIHRoZSBzY29wZSBiYXIuCi0gICAgICAgIHNjb3BlQmFyLmFk
ZFN0eWxlQ2xhc3MoImNvbnNvbGUtZmlsdGVyLXRvcCIpOwotICAgICAgICBzY29wZUJhci5yZW1v
dmVTdHlsZUNsYXNzKCJzdGF0dXMtYmFyLWl0ZW0iKTsKLQotICAgICAgICBjb25zb2xlTWVzc2Fn
ZXMuYWRkU3R5bGVDbGFzcygiY29uc29sZS1maWx0ZXItdG9wIik7CisgICAgICAgIHRoaXMuYWRk
Q2hpbGRWaWV3KHRoaXMuX3ZpZXcpOworICAgICAgICB0aGlzLl92aWV3LnNob3coKTsKICAgICB9
LAogCiAgICAgaGlkZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLlBh
bmVsLnByb3RvdHlwZS5oaWRlLmNhbGwodGhpcyk7Ci0KLSAgICAgICAgaWYgKHRoaXMuX3ByZXZp
b3VzQ29uc29sZVN0YXRlID09PSBXZWJJbnNwZWN0b3IuRHJhd2VyLlN0YXRlLkhpZGRlbikKLSAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5kcmF3ZXIuaW1tZWRpYXRlbHlFeGl0UGFuZWxNb2RlKCk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kcmF3ZXIuZXhpdFBhbmVs
TW9kZSgpOwotICAgICAgICBkZWxldGUgdGhpcy5fcHJldmlvdXNDb25zb2xlU3RhdGU7Ci0KLSAg
ICAgICAgLy8gTW92ZSB0aGUgc2NvcGUgYmFyIGJhY2sgdG8gdGhlIGJvdHRvbSBiYXIsIG5leHQg
dG8gQ2xlYXIgQ29uc29sZS4KLSAgICAgICAgdmFyIHNjb3BlQmFyID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUtZmlsdGVyIik7Ci0KLSAgICAgICAgc2NvcGVCYXIucGFyZW50Tm9k
ZS5yZW1vdmVDaGlsZChzY29wZUJhcik7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJvdGhlci1kcmF3ZXItc3RhdHVzLWJhci1pdGVtcyIpLmFwcGVuZENoaWxkKHNjb3BlQmFyKTsK
LQotICAgICAgICAvLyBVcGRhdGUgc3R5bGVzLCBhbmQgcmVtb3ZlIHRoZSB0b3AgbWFyZ2luIG9u
IGNvbnNvbGUtbWVzc2FnZXMuCi0gICAgICAgIHNjb3BlQmFyLnJlbW92ZVN0eWxlQ2xhc3MoImNv
bnNvbGUtZmlsdGVyLXRvcCIpOwotICAgICAgICBzY29wZUJhci5hZGRTdHlsZUNsYXNzKCJzdGF0
dXMtYmFyLWl0ZW0iKTsKLQotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZS1tZXNzYWdlcyIpLnJlbW92ZVN0eWxlQ2xhc3MoImNvbnNvbGUtZmlsdGVyLXRvcCIpOworICAg
ICAgICB0aGlzLnJlbW92ZUNoaWxkVmlldyh0aGlzLl92aWV3KTsKKyAgICAgICAgaWYgKHRoaXMu
X2RyYXdlcldhc1Zpc2libGUpIHsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kcmF3ZXIuc2hv
dyh0aGlzLl92aWV3LCB0cnVlKTsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9kcmF3ZXJXYXNW
aXNpYmxlOworICAgICAgICB9CiAgICAgfSwKIAogICAgIHNlYXJjaENhbmNlbGVkOiBmdW5jdGlv
bigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNv
bGVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmll
dy5qcwppbmRleCA1ZmQzZDhmNDI2MTYyMGVmYjc2MmU1MzdlOTllODY4ZmVhZTI5ZDFkLi42MTcz
Y2U5MDNhOTRiNmRlZWQwNjk0ZWRlOGY5Y2NiZTEyMDFiZjY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKQEAgLTI5LDI3ICsyOSwz
NyBAQAogCiBjb25zdCBFeHByZXNzaW9uU3RvcENoYXJhY3RlcnMgPSAiID06Wyh7OywhKy0qLyZ8
Xjw+IjsKIAotV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3ID0gZnVuY3Rpb24oZHJhd2VyKQorV2Vi
SW5zcGVjdG9yLkNvbnNvbGVWaWV3ID0gZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5W
aWV3LmNhbGwodGhpcywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUtdmlldyIpKTsK
KyAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOworICAgIHRoaXMuZWxlbWVudC5pZCA9
ICJjb25zb2xlLXZpZXciOwogCiAgICAgdGhpcy5tZXNzYWdlcyA9IFtdOwotICAgIHRoaXMuZHJh
d2VyID0gZHJhd2VyOwogCi0gICAgdGhpcy5jbGVhckJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjbGVhci1jb25zb2xlLXN0YXR1cy1iYXItaXRlbSIpOwotICAgIHRoaXMuY2xlYXJC
dXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsZWFyIGNvbnNvbGUgbG9nLiIp
OwotICAgIHRoaXMuY2xlYXJCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9y
ZXF1ZXN0Q2xlYXJNZXNzYWdlcy5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgdGhpcy5fY2xlYXJD
b25zb2xlQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJDbGVhciBjb25zb2xlIGxvZy4iKSwgImNsZWFyLXN0YXR1cy1iYXItaXRl
bSIpOworICAgIHRoaXMuX2NsZWFyQ29uc29sZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGlj
ayIsIHRoaXMuX3JlcXVlc3RDbGVhck1lc3NhZ2VzLmJpbmQodGhpcyksIGZhbHNlKTsKKworICAg
IHRoaXMuX2NvbnRleHRTZWxlY3RFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2Vs
ZWN0Iik7CisgICAgdGhpcy5fY29udGV4dFNlbGVjdEVsZW1lbnQuaWQgPSAiY29uc29sZS1jb250
ZXh0IjsKKyAgICB0aGlzLl9jb250ZXh0U2VsZWN0RWxlbWVudC5jbGFzc05hbWUgPSAic3RhdHVz
LWJhci1pdGVtIjsKIAotICAgIHRoaXMuX2NvbnRleHRTZWxlY3RFbGVtZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnNvbGUtY29udGV4dCIpOwogICAgIGlmIChXZWJJbnNwZWN0b3Iu
V29ya2VyTWFuYWdlci5pc1dvcmtlckZyb250ZW5kKCkpCiAgICAgICAgIHRoaXMuX2NvbnRleHRT
ZWxlY3RFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogCi0gICAgdGhpcy5tZXNzYWdl
c0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZS1tZXNzYWdlcyIpOwor
ICAgIHRoaXMubWVzc2FnZXNFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CisgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuaWQgPSAiY29uc29sZS1tZXNzYWdlcyI7CisgICAg
dGhpcy5tZXNzYWdlc0VsZW1lbnQuY2xhc3NOYW1lID0gIm1vbm9zcGFjZSI7CiAgICAgdGhpcy5t
ZXNzYWdlc0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9tZXNzYWdlc0Ns
aWNrZWQuYmluZCh0aGlzKSwgdHJ1ZSk7CisgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRo
aXMubWVzc2FnZXNFbGVtZW50KTsKIAotICAgIHRoaXMucHJvbXB0RWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlLXByb21wdCIpOworICAgIHRoaXMucHJvbXB0RWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHRoaXMucHJvbXB0RWxlbWVu
dC5pZCA9ICJjb25zb2xlLXByb21wdCI7CiAgICAgdGhpcy5wcm9tcHRFbGVtZW50LmNsYXNzTmFt
ZSA9ICJzb3VyY2UtY29kZSI7CisgICAgdGhpcy5wcm9tcHRFbGVtZW50LnNwZWxsY2hlY2sgPSBm
YWxzZTsKICAgICB0aGlzLnByb21wdEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIs
IHRoaXMuX3Byb21wdEtleURvd24uYmluZCh0aGlzKSwgdHJ1ZSk7CisgICAgdGhpcy5tZXNzYWdl
c0VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5wcm9tcHRFbGVtZW50KTsKKyAgICB0aGlzLm1lc3Nh
Z2VzRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJiciIpKTsKKwog
ICAgIHRoaXMucHJvbXB0ID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0KHRoaXMucHJvbXB0
RWxlbWVudCwgdGhpcy5jb21wbGV0aW9ucy5iaW5kKHRoaXMpLCBFeHByZXNzaW9uU3RvcENoYXJh
Y3RlcnMgKyAiLiIpOwogICAgIHRoaXMucHJvbXB0Lmhpc3RvcnkgPSBXZWJJbnNwZWN0b3Iuc2V0
dGluZ3MuY29uc29sZUhpc3RvcnkuZ2V0KCk7CiAKQEAgLTU3LDE2ICs2NywxNCBAQCBXZWJJbnNw
ZWN0b3IuQ29uc29sZVZpZXcgPSBmdW5jdGlvbihkcmF3ZXIpCiAgICAgdGhpcy5tZXNzYWdlc0Vs
ZW1lbnQuaW5zZXJ0QmVmb3JlKHRoaXMudG9wR3JvdXAuZWxlbWVudCwgdGhpcy5wcm9tcHRFbGVt
ZW50KTsKICAgICB0aGlzLmN1cnJlbnRHcm91cCA9IHRoaXMudG9wR3JvdXA7CiAKLSAgICB0aGlz
LnRvZ2dsZUNvbnNvbGVCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgY29uc29sZS4iKSwgImNvbnNvbGUtc3RhdHVzLWJh
ci1pdGVtIik7Ci0gICAgdGhpcy50b2dnbGVDb25zb2xlQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgdGhpcy5fdG9nZ2xlQ29uc29sZUJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSwgZmFs
c2UpOwotCi0gICAgLy8gV2lsbCBob2xkIHRoZSBsaXN0IG9mIGZpbHRlciBlbGVtZW50cwotICAg
IHRoaXMuZmlsdGVyQmFyRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
LWZpbHRlciIpOworICAgIHRoaXMuX2ZpbHRlckJhckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLl9maWx0ZXJCYXJFbGVtZW50LmlkID0gImNvbnNvbGUt
ZmlsdGVyIjsKKyAgICB0aGlzLl9maWx0ZXJCYXJFbGVtZW50LmNsYXNzTmFtZSA9ICJzY29wZS1i
YXIgc3RhdHVzLWJhci1pdGVtIjsKIAogICAgIGZ1bmN0aW9uIGNyZWF0ZURpdmlkZXJFbGVtZW50
KCkgewogICAgICAgICB2YXIgZGl2aWRlckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKICAgICAgICAgZGl2aWRlckVsZW1lbnQuYWRkU3R5bGVDbGFzcygic2NvcGUtYmFy
LWRpdmlkZXIiKTsKLSAgICAgICAgdGhpcy5maWx0ZXJCYXJFbGVtZW50LmFwcGVuZENoaWxkKGRp
dmlkZXJFbGVtZW50KTsKKyAgICAgICAgdGhpcy5fZmlsdGVyQmFyRWxlbWVudC5hcHBlbmRDaGls
ZChkaXZpZGVyRWxlbWVudCk7CiAgICAgfQogCiAgICAgdmFyIHVwZGF0ZUZpbHRlckhhbmRsZXIg
PSB0aGlzLl91cGRhdGVGaWx0ZXIuYmluZCh0aGlzKTsKQEAgLTc3LDcgKzg1LDcgQEAgV2ViSW5z
cGVjdG9yLkNvbnNvbGVWaWV3ID0gZnVuY3Rpb24oZHJhd2VyKQogICAgICAgICBjYXRlZ29yeUVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB1cGRhdGVGaWx0ZXJIYW5kbGVyLCBmYWxz
ZSk7CiAgICAgICAgIGNhdGVnb3J5RWxlbWVudC50ZXh0Q29udGVudCA9IGxhYmVsOwogCi0gICAg
ICAgIHRoaXMuZmlsdGVyQmFyRWxlbWVudC5hcHBlbmRDaGlsZChjYXRlZ29yeUVsZW1lbnQpOwor
ICAgICAgICB0aGlzLl9maWx0ZXJCYXJFbGVtZW50LmFwcGVuZENoaWxkKGNhdGVnb3J5RWxlbWVu
dCk7CiAKICAgICAgICAgcmV0dXJuIGNhdGVnb3J5RWxlbWVudDsKICAgICB9CkBAIC0xMTIsNiAr
MTIwLDExIEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5FdmVudHMgPSB7CiB9CiAKIFdlYklu
c3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CisgICAgZ2V0IHN0YXR1c0Jhckl0ZW1z
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBbdGhpcy5fY2xlYXJDb25zb2xlQnV0dG9uLmVsZW1l
bnQsIHRoaXMuX2NvbnRleHRTZWxlY3RFbGVtZW50LCB0aGlzLl9maWx0ZXJCYXJFbGVtZW50XTsK
KyAgICB9LAorCiAgICAgYWRkQ29udGV4dDogZnVuY3Rpb24oY29udGV4dCkKICAgICB7CiAgICAg
ICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTsKQEAgLTIx
MSwyMSArMjI0LDggQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgfQogICAgIH0sCiAKLSAgICBfdG9nZ2xlQ29uc29sZUJ1dHRvbkNsaWNrZWQ6IGZ1bmN0
aW9uKCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5kcmF3
ZXIudmlzaWJsZVZpZXcgPSB0aGlzOwotICAgIH0sCi0KLSAgICBwb3B1bGF0ZVN0YXR1c0Jhcjog
ZnVuY3Rpb24oc3RhdHVzQmFyRWxlbWVudCkKLSAgICB7Ci0gICAgICAgIHN0YXR1c0JhckVsZW1l
bnQuYXBwZW5kQ2hpbGQodGhpcy5jbGVhckJ1dHRvbik7Ci0gICAgICAgIHN0YXR1c0JhckVsZW1l
bnQuYXBwZW5kQ2hpbGQodGhpcy5maWx0ZXJCYXJFbGVtZW50KTsKLSAgICB9LAotCi0gICAgc2hv
dzogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy50b2dnbGVDb25zb2xlQnV0dG9uLnRv
Z2dsZWQgPSB0cnVlOwotICAgICAgICB0aGlzLnRvZ2dsZUNvbnNvbGVCdXR0b24udGl0bGUgPSBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkhpZGUgY29uc29sZS4iKTsKICAgICAgICAgaWYgKCF0aGlz
LnByb21wdC5pc0NhcmV0SW5zaWRlUHJvbXB0KCkpCiAgICAgICAgICAgICB0aGlzLnByb21wdC5t
b3ZlQ2FyZXRUb0VuZE9mUHJvbXB0KCk7CiAgICAgfSwKQEAgLTIzNSwxMiArMjM1LDYgQEAgV2Vi
SW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9y
LmN1cnJlbnRGb2N1c0VsZW1lbnQgPSB0aGlzLnByb21wdEVsZW1lbnQ7CiAgICAgfSwKIAotICAg
IGhpZGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMudG9nZ2xlQ29uc29sZUJ1dHRv
bi50b2dnbGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMudG9nZ2xlQ29uc29sZUJ1dHRvbi50aXRs
ZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hvdyBjb25zb2xlLiIpOwotICAgIH0sCi0KICAg
ICBfaXNTY3JvbGxJbnRvVmlld1NjaGVkdWxlZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAg
cmV0dXJuICEhdGhpcy5fc2Nyb2xsSW50b1ZpZXdUaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRHJhd2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMKaW5kZXggZjUzNjJmZGI5NmE0YzVhYzQ5MWVmYmNh
ZmRiZmFmOGJhMGM4NGI4ZS4uOGQzYmFlZmQ5MTRlNDA4YzI5ZWI4ZmZjNGM1YWRhZmFjZjdiMWZh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMKQEAg
LTI5LDc5ICsyOSw1NSBAQAogCiBXZWJJbnNwZWN0b3IuRHJhd2VyID0gZnVuY3Rpb24oKQogewot
ICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImRyYXdlciIpKTsKLQorICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJkcmF3ZXIiKTsKICAgICB0aGlzLl9zYXZlZEhlaWdodCA9IDIwMDsgLy8gRGVmYXVsdC4KLSAg
ICB0aGlzLnN0YXRlID0gV2ViSW5zcGVjdG9yLkRyYXdlci5TdGF0ZS5IaWRkZW47Ci0gICAgdGhp
cy5mdWxsUGFuZWwgPSBmYWxzZTsKLQogICAgIHRoaXMuX21haW5FbGVtZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm1haW4iKTsKICAgICB0aGlzLl90b29sYmFyRWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0b29sYmFyIik7CiAgICAgdGhpcy5fbWFpblN0YXR1c0JhciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLXN0YXR1cy1iYXIiKTsKICAgICB0aGlzLl9t
YWluU3RhdHVzQmFyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX3N0YXJ0U3Rh
dHVzQmFyRHJhZ2dpbmcuYmluZCh0aGlzKSwgdHJ1ZSk7Ci0gICAgdGhpcy5fdmlld1N0YXR1c0Jh
ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdGhlci1kcmF3ZXItc3RhdHVzLWJhci1pdGVt
cyIpOwogICAgIHRoaXMuX2NvdW50ZXJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvdW50
ZXJzIik7Ci0gICAgdGhpcy5fZHJhd2VyU3RhdHVzQmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImRyYXdlci1zdGF0dXMtYmFyIik7CisgICAgdGhpcy5fZHJhd2VyU3RhdHVzQmFyID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5fZHJhd2VyU3RhdHVzQmFyLmlk
ID0gImRyYXdlci1zdGF0dXMtYmFyIjsKKyAgICB0aGlzLl9kcmF3ZXJTdGF0dXNCYXIuY2xhc3NO
YW1lID0gInN0YXR1cy1iYXIiOworICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9k
cmF3ZXJTdGF0dXNCYXIpOworCisgICAgdGhpcy5fdmlld1N0YXR1c0JhciA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHRoaXMuX2RyYXdlclN0YXR1c0Jhci5hcHBlbmRDaGls
ZCh0aGlzLl92aWV3U3RhdHVzQmFyKTsKIH0KIAogV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5
cGUgPSB7Ci0gICAgZ2V0IHZpc2libGVWaWV3KCkKKyAgICBnZXQgdmlzaWJsZSgpCiAgICAgewot
ICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZVZpZXc7Ci0gICAgfSwKLQotICAgIHNldCB2aXNp
YmxlVmlldyh4KQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3Zpc2libGVWaWV3ID09PSB4KSB7
Ci0gICAgICAgICAgICBpZiAodGhpcy52aXNpYmxlICYmIHRoaXMuZnVsbFBhbmVsKQotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9ICF0aGlzLnZpc2li
bGU7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgZmlyc3RU
aW1lID0gIXRoaXMuX3Zpc2libGVWaWV3OwotICAgICAgICBpZiAodGhpcy5fdmlzaWJsZVZpZXcp
Ci0gICAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxkVmlldyh0aGlzLl92aXNpYmxlVmlldyk7Ci0g
ICAgICAgIHRoaXMuX3Zpc2libGVWaWV3ID0geDsKLSAgICAgICAgdGhpcy5hZGRDaGlsZFZpZXco
eCk7Ci0KLSAgICAgICAgaWYgKHggJiYgIWZpcnN0VGltZSkgewotICAgICAgICAgICAgdGhpcy5f
c2FmZWx5UmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgICAgIHRoaXMuX3ZpZXdTdGF0dXNCYXIu
cmVtb3ZlQ2hpbGRyZW4oKTsgLy8gb3B0aW1pemUgdGhpcz8gY2FsbCBvbGQuZGV0YWNoKCkKLSAg
ICAgICAgICAgIHgucG9wdWxhdGVTdGF0dXNCYXIodGhpcy5fdmlld1N0YXR1c0Jhcik7Ci0gICAg
ICAgICAgICB4LnNob3coKTsKLSAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7Ci0gICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuICEhdGhpcy5fdmlldzsKICAgICB9LAogCi0gICAgZ2V0IHNh
dmVkSGVpZ2h0KCkKKyAgICBfY29uc3RyYWluSGVpZ2h0OiBmdW5jdGlvbihoZWlnaHQpCiAgICAg
ewotICAgICAgICB2YXIgaGVpZ2h0ID0gdGhpcy5fc2F2ZWRIZWlnaHQgfHwgdGhpcy5lbGVtZW50
Lm9mZnNldEhlaWdodDsKICAgICAgICAgcmV0dXJuIE51bWJlci5jb25zdHJhaW4oaGVpZ2h0LCBQ
cmVmZXJlbmNlcy5taW5Db25zb2xlSGVpZ2h0LCB3aW5kb3cuaW5uZXJIZWlnaHQgLSB0aGlzLl9t
YWluRWxlbWVudC50b3RhbE9mZnNldFRvcCgpIC0gUHJlZmVyZW5jZXMubWluQ29uc29sZUhlaWdo
dCk7CiAgICAgfSwKIAotICAgIHNob3dWaWV3OiBmdW5jdGlvbih2aWV3KQorICAgIHNob3c6IGZ1
bmN0aW9uKHZpZXcsIGltbWVkaWF0ZWx5KQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnZpc2li
bGUgfHwgdGhpcy52aXNpYmxlVmlldyAhPT0gdmlldykKLSAgICAgICAgICAgIHRoaXMudmlzaWJs
ZVZpZXcgPSB2aWV3OwotICAgIH0sCisgICAgICAgIHZhciBkcmF3ZXJXYXNWaXNpYmxlID0gdGhp
cy52aXNpYmxlOwogCi0gICAgc2hvdzogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgaWYgKHRo
aXMuX2FuaW1hdGluZyB8fCB0aGlzLnZpc2libGUpCi0gICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIHRoaXMuaW1tZWRpYXRlbHlGaW5pc2hBbmltYXRpb24oKTsKKyAgICAgICAgaWYgKHRoaXMu
X3ZpZXcpCisgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5fdmlldy5l
bGVtZW50KTsKIAotICAgICAgICBpZiAodGhpcy52aXNpYmxlVmlldykKLSAgICAgICAgICAgIHRo
aXMudmlzaWJsZVZpZXcuc2hvdygpOworICAgICAgICB0aGlzLl92aWV3ID0gdmlldzsKKyAgICAg
ICAgdGhpcy5fdmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAKLSAgICAgICAgV2ViSW5zcGVjdG9y
LlZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzKTsKKyAgICAgICAgdmFyIHN0YXR1c0Jhckl0
ZW1zID0gdGhpcy5fdmlldy5zdGF0dXNCYXJJdGVtcyB8fCBbXTsKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBzdGF0dXNCYXJJdGVtcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHRoaXMu
X3ZpZXdTdGF0dXNCYXIuYXBwZW5kQ2hpbGQoc3RhdHVzQmFySXRlbXNbaV0pOwogCi0gICAgICAg
IHRoaXMuX2FuaW1hdGluZyA9IHRydWU7CisgICAgICAgIGlmIChkcmF3ZXJXYXNWaXNpYmxlKQor
ICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGRvY3VtZW50LmJvZHkuYWRkU3R5bGVDbGFz
cygiZHJhd2VyLXZpc2libGUiKTsKIAogICAgICAgICB2YXIgYW5jaG9yZWRJdGVtcyA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJhbmNob3JlZC1zdGF0dXMtYmFyLWl0ZW1zIik7Ci0gICAgICAg
IHZhciBoZWlnaHQgPSAodGhpcy5mdWxsUGFuZWwgPyB3aW5kb3cuaW5uZXJIZWlnaHQgLSB0aGlz
Ll90b29sYmFyRWxlbWVudC5vZmZzZXRIZWlnaHQgOiB0aGlzLnNhdmVkSGVpZ2h0KTsKKyAgICAg
ICAgdmFyIGhlaWdodCA9IHRoaXMuX2NvbnN0cmFpbkhlaWdodCh0aGlzLl9zYXZlZEhlaWdodCB8
fCB0aGlzLmVsZW1lbnQub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgdmFyIGFuaW1hdGlvbnMgPSBb
CiAgICAgICAgICAgICB7ZWxlbWVudDogdGhpcy5lbGVtZW50LCBlbmQ6IHtoZWlnaHQ6IGhlaWdo
dH19LAogICAgICAgICAgICAge2VsZW1lbnQ6IHRoaXMuX21haW5FbGVtZW50LCBlbmQ6IHtib3R0
b206IGhlaWdodH19LApAQCAtMTI0LDMyICsxMDAsMjggQEAgV2ViSW5zcGVjdG9yLkRyYXdlci5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICgidXBkYXRlU3RhdHVzQmFy
SXRlbXMiIGluIFdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwoKSkKICAgICAgICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuY3VycmVudFBhbmVsKCkudXBkYXRlU3RhdHVzQmFySXRlbXMoKTsKLSAgICAg
ICAgICAgIGlmICh0aGlzLnZpc2libGVWaWV3LmFmdGVyU2hvdykKLSAgICAgICAgICAgICAgICB0
aGlzLnZpc2libGVWaWV3LmFmdGVyU2hvdygpOwotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2Fu
aW1hdGluZzsKKyAgICAgICAgICAgIGlmICh0aGlzLl92aWV3ICYmIHRoaXMuX3ZpZXcuYWZ0ZXJT
aG93KQorICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXcuYWZ0ZXJTaG93KCk7CiAgICAgICAgICAg
ICBkZWxldGUgdGhpcy5fY3VycmVudEFuaW1hdGlvbjsKLSAgICAgICAgICAgIHRoaXMuc3RhdGUg
PSAodGhpcy5mdWxsUGFuZWwgPyBXZWJJbnNwZWN0b3IuRHJhd2VyLlN0YXRlLkZ1bGwgOiBXZWJJ
bnNwZWN0b3IuRHJhd2VyLlN0YXRlLlZhcmlhYmxlKTsKICAgICAgICAgICAgIGlmICh0aGlzLl9j
dXJyZW50UGFuZWxDb3VudGVycykKICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50UGFuZWxD
b3VudGVycy5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIik7CiAgICAgICAgIH0KIAogICAgICAgICB0
aGlzLl9jdXJyZW50QW5pbWF0aW9uID0gV2ViSW5zcGVjdG9yLmFuaW1hdGVTdHlsZShhbmltYXRp
b25zLCB0aGlzLl9hbmltYXRpb25EdXJhdGlvbigpLCBhbmltYXRpb25GaW5pc2hlZC5iaW5kKHRo
aXMpKTsKKyAgICAgICAgaWYgKGltbWVkaWF0ZWx5KQorICAgICAgICAgICAgdGhpcy5fY3VycmVu
dEFuaW1hdGlvbi5mb3JjZUNvbXBsZXRlKCk7CiAgICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9u
KCkKKyAgICBoaWRlOiBmdW5jdGlvbihpbW1lZGlhdGVseSkKICAgICB7Ci0gICAgICAgIGlmICh0
aGlzLl9hbmltYXRpbmcgfHwgIXRoaXMudmlzaWJsZSkKKyAgICAgICAgdGhpcy5pbW1lZGlhdGVs
eUZpbmlzaEFuaW1hdGlvbigpOworICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuaGlkZS5j
YWxsKHRoaXMpOwotCi0gICAgICAgIGlmICh0aGlzLnZpc2libGVWaWV3KQotICAgICAgICAgICAg
dGhpcy52aXNpYmxlVmlldy5oaWRlKCk7Ci0KLSAgICAgICAgdGhpcy5fYW5pbWF0aW5nID0gdHJ1
ZTsKKyAgICAgICAgdGhpcy5fc2F2ZWRIZWlnaHQgPSB0aGlzLmVsZW1lbnQub2Zmc2V0SGVpZ2h0
OwogCi0gICAgICAgIGlmICghdGhpcy5mdWxsUGFuZWwpCi0gICAgICAgICAgICB0aGlzLl9zYXZl
ZEhlaWdodCA9IHRoaXMuZWxlbWVudC5vZmZzZXRIZWlnaHQ7CisgICAgICAgIHRoaXMuZWxlbWVu
dC5yZW1vdmVDaGlsZCh0aGlzLl92aWV3LmVsZW1lbnQpOworICAgICAgICBkZWxldGUgdGhpcy5f
dmlldzsKIAogICAgICAgICBpZiAodGhpcy5lbGVtZW50ID09PSBXZWJJbnNwZWN0b3IuY3VycmVu
dEZvY3VzRWxlbWVudCB8fCB0aGlzLmVsZW1lbnQuaXNBbmNlc3RvcihXZWJJbnNwZWN0b3IuY3Vy
cmVudEZvY3VzRWxlbWVudCkpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3VycmVudEZvY3Vz
RWxlbWVudCA9IFdlYkluc3BlY3Rvci5wcmV2aW91c0ZvY3VzRWxlbWVudDsKQEAgLTE5MCw2NSAr
MTYyLDIzIEBAIFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZVN0eWxlQ2xhc3MoImRyYXdlci12
aXNpYmxlIik7Ci0gICAgICAgICAgICBkZWxldGUgdGhpcy5fYW5pbWF0aW5nOwogICAgICAgICAg
ICAgZGVsZXRlIHRoaXMuX2N1cnJlbnRBbmltYXRpb247Ci0gICAgICAgICAgICB0aGlzLnN0YXRl
ID0gV2ViSW5zcGVjdG9yLkRyYXdlci5TdGF0ZS5IaWRkZW47CiAgICAgICAgIH0KIAogICAgICAg
ICB0aGlzLl9jdXJyZW50QW5pbWF0aW9uID0gV2ViSW5zcGVjdG9yLmFuaW1hdGVTdHlsZShhbmlt
YXRpb25zLCB0aGlzLl9hbmltYXRpb25EdXJhdGlvbigpLCBhbmltYXRpb25GaW5pc2hlZC5iaW5k
KHRoaXMpKTsKKyAgICAgICAgaWYgKGltbWVkaWF0ZWx5KQorICAgICAgICAgICAgdGhpcy5fY3Vy
cmVudEFuaW1hdGlvbi5mb3JjZUNvbXBsZXRlKCk7CiAgICAgfSwKIAotICAgIG9uUmVzaXplOiBm
dW5jdGlvbigpCisgICAgcmVzaXplOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAodGhp
cy5zdGF0ZSA9PT0gV2ViSW5zcGVjdG9yLkRyYXdlci5TdGF0ZS5IaWRkZW4pCisgICAgICAgIGlm
ICghdGhpcy52aXNpYmxlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHZhciBoZWln
aHQ7Ci0gICAgICAgIGlmICh0aGlzLnN0YXRlID09PSBXZWJJbnNwZWN0b3IuRHJhd2VyLlN0YXRl
LlZhcmlhYmxlKSB7Ci0gICAgICAgICAgICBoZWlnaHQgPSBwYXJzZUludCh0aGlzLmVsZW1lbnQu
c3R5bGUuaGVpZ2h0KTsKLSAgICAgICAgICAgIGhlaWdodCA9IE51bWJlci5jb25zdHJhaW4oaGVp
Z2h0LCBQcmVmZXJlbmNlcy5taW5Db25zb2xlSGVpZ2h0LCB3aW5kb3cuaW5uZXJIZWlnaHQgLSB0
aGlzLl9tYWluRWxlbWVudC50b3RhbE9mZnNldFRvcCgpIC0gUHJlZmVyZW5jZXMubWluQ29uc29s
ZUhlaWdodCk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgaGVpZ2h0ID0gd2luZG93Lmlu
bmVySGVpZ2h0IC0gdGhpcy5fdG9vbGJhckVsZW1lbnQub2Zmc2V0SGVpZ2h0OwotCisgICAgICAg
IHZhciBoZWlnaHQgPSB0aGlzLl9jb25zdHJhaW5IZWlnaHQocGFyc2VJbnQodGhpcy5lbGVtZW50
LnN0eWxlLmhlaWdodCkpOwogICAgICAgICB0aGlzLl9tYWluRWxlbWVudC5zdHlsZS5ib3R0b20g
PSBoZWlnaHQgKyAicHgiOwogICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gaGVp
Z2h0ICsgInB4IjsKLSAgICB9LAotCi0gICAgZW50ZXJQYW5lbE1vZGU6IGZ1bmN0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIHRoaXMuX2NhbmNlbEFuaW1hdGlvbklmTmVlZGVkKCk7Ci0gICAgICAgIHRo
aXMuZnVsbFBhbmVsID0gdHJ1ZTsKLSAgICAgICAgdGhpcy51cGRhdGVIZWlnaHQoKTsKLSAgICB9
LAotCi0gICAgZXhpdFBhbmVsTW9kZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy5f
Y2FuY2VsQW5pbWF0aW9uSWZOZWVkZWQoKTsKLSAgICAgICAgdGhpcy5mdWxsUGFuZWwgPSBmYWxz
ZTsKLSAgICAgICAgdGhpcy51cGRhdGVIZWlnaHQoKTsKLSAgICB9LAotCi0gICAgdXBkYXRlSGVp
Z2h0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAodGhpcy52aXNpYmxlKSB7Ci0gICAg
ICAgICAgICBpZiAodGhpcy5mdWxsUGFuZWwpIHsKLSAgICAgICAgICAgICAgICB0aGlzLl9zYXZl
ZEhlaWdodCA9IHRoaXMuZWxlbWVudC5vZmZzZXRIZWlnaHQ7Ci0gICAgICAgICAgICAgICAgdmFy
IGhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIHRoaXMuX3Rvb2xiYXJFbGVtZW50Lm9mZnNl
dEhlaWdodDsKLSAgICAgICAgICAgICAgICB0aGlzLl9hbmltYXRlRHJhd2VySGVpZ2h0KGhlaWdo
dCwgV2ViSW5zcGVjdG9yLkRyYXdlci5TdGF0ZS5GdWxsKTsKLSAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBhbmltYXRpb24gZ2V0cyBjYW5jZWxsZWQsIHdl
IHdhbnQgdGhlIHN0YXRlIG9mIHRoZSBkcmF3ZXIgdG8gYmUgVmFyaWFibGUsCi0gICAgICAgICAg
ICAgICAgLy8gc28gdGhhdCB0aGUgbmV3IGFuaW1hdGlvbiBjYW4ndCBkbyBhbiBpbW1lZGlhdGUg
dHJhbnNpdGlvbiBiZXR3ZWVuIEhpZGRlbi9GdWxsIHN0YXRlcy4KLSAgICAgICAgICAgICAgICB0
aGlzLnN0YXRlID0gV2ViSW5zcGVjdG9yLkRyYXdlci5TdGF0ZS5WYXJpYWJsZTsKLSAgICAgICAg
ICAgICAgICB2YXIgaGVpZ2h0ID0gdGhpcy5zYXZlZEhlaWdodDsKLSAgICAgICAgICAgICAgICB0
aGlzLl9hbmltYXRlRHJhd2VySGVpZ2h0KGhlaWdodCwgV2ViSW5zcGVjdG9yLkRyYXdlci5TdGF0
ZS5WYXJpYWJsZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9LAotCi0gICAgaW1t
ZWRpYXRlbHlFeGl0UGFuZWxNb2RlOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLnZp
c2libGUgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5mdWxsUGFuZWwgPSBmYWxzZTsKKyAgICAgICAg
dGhpcy5fdmlldy5kb1Jlc2l6ZSgpOwogICAgIH0sCiAKICAgICBpbW1lZGlhdGVseUZpbmlzaEFu
aW1hdGlvbjogZnVuY3Rpb24oKQpAQCAtMjczLDQxICsyMDMsOCBAQCBXZWJJbnNwZWN0b3IuRHJh
d2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX2NvdW50ZXJzLmluc2VydEJlZm9y
ZSh4LCB0aGlzLl9jb3VudGVycy5maXJzdENoaWxkKTsKICAgICB9LAogCi0gICAgX2NhbmNlbEFu
aW1hdGlvbklmTmVlZGVkOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fYW5p
bWF0aW5nKSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5fY3VycmVudEFuaW1hdGlvbikKLSAgICAg
ICAgICAgICAgICB0aGlzLl9jdXJyZW50QW5pbWF0aW9uLmNhbmNlbCgpOwotICAgICAgICAgICAg
ZGVsZXRlIHRoaXMuX2FuaW1hdGluZzsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50
QW5pbWF0aW9uOwotICAgICAgICB9Ci0gICAgfSwKLQotICAgIF9hbmltYXRlRHJhd2VySGVpZ2h0
OiBmdW5jdGlvbihoZWlnaHQsIGZpbmFsU3RhdGUpCi0gICAgewotICAgICAgICB0aGlzLl9hbmlt
YXRpbmcgPSB0cnVlOwotICAgICAgICB2YXIgYW5pbWF0aW9ucyA9IFsKLSAgICAgICAgICAgIHtl
bGVtZW50OiB0aGlzLmVsZW1lbnQsIGVuZDoge2hlaWdodDogaGVpZ2h0fX0sCi0gICAgICAgICAg
ICB7ZWxlbWVudDogdGhpcy5fbWFpbkVsZW1lbnQsIGVuZDoge2JvdHRvbTogaGVpZ2h0fX0KLSAg
ICAgICAgXTsKLQotICAgICAgICBmdW5jdGlvbiBhbmltYXRpb25GaW5pc2hlZCgpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwoKS5kb1Jlc2l6ZSgpOwot
ICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2FuaW1hdGluZzsKLSAgICAgICAgICAgIGRlbGV0ZSB0
aGlzLl9jdXJyZW50QW5pbWF0aW9uOwotICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IGZpbmFsU3Rh
dGU7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLl9jdXJyZW50QW5pbWF0aW9uID0gV2ViSW5z
cGVjdG9yLmFuaW1hdGVTdHlsZShhbmltYXRpb25zLCB0aGlzLl9hbmltYXRpb25EdXJhdGlvbigp
LCBhbmltYXRpb25GaW5pc2hlZC5iaW5kKHRoaXMpKTsKLSAgICB9LAotCiAgICAgX2FuaW1hdGlv
bkR1cmF0aW9uOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICAvLyBJbW1lZGlhdGUgaWYgZ29p
bmcgYmV0d2VlbiBIaWRkZW4gYW5kIEZ1bGwgaW4gZnVsbCBwYW5lbCBtb2RlCi0gICAgICAgIGlm
ICh0aGlzLmZ1bGxQYW5lbCAmJiAodGhpcy5zdGF0ZSA9PT0gV2ViSW5zcGVjdG9yLkRyYXdlci5T
dGF0ZS5IaWRkZW4gfHwgdGhpcy5zdGF0ZSA9PT0gV2ViSW5zcGVjdG9yLkRyYXdlci5TdGF0ZS5G
dWxsKSkKLSAgICAgICAgICAgIHJldHVybiAwOwotCiAgICAgICAgIHJldHVybiAod2luZG93LmV2
ZW50ICYmIHdpbmRvdy5ldmVudC5zaGlmdEtleSA/IDIwMDAgOiAyNTApOwogICAgIH0sCiAKQEAg
LTM2MCwxMSArMjU3LDMgQEAgV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgIH0KIH0KLQotV2ViSW5zcGVjdG9yLkRy
YXdlci5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlOwot
Ci1XZWJJbnNwZWN0b3IuRHJhd2VyLlN0YXRlID0gewotICAgIEhpZGRlbjogMCwKLSAgICBWYXJp
YWJsZTogMSwKLSAgICBGdWxsOiAyCi19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggNTY0NGFhNDkyNzRlNGU5ZDY1OTc4ZGVh
NWYzNzY0YzI3ODM3OTU0Yy4uYmExMmY2YzJkMDBhYjk2N2E4YTU1ZGQyODg5MTI1MTk0MTA4OWUx
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5odG1sCkBAIC0xOTMsOSArMTkzLDYgQEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAgICAgICAgPGRpdiBpZD0ibWFp
bi1wYW5lbHMiIHNwZWxsY2hlY2s9ImZhbHNlIj48L2Rpdj4KICAgICAgICAgPGRpdiBpZD0ibWFp
bi1zdGF0dXMtYmFyIiBjbGFzcz0ic3RhdHVzLWJhciI+PGRpdiBpZD0iYW5jaG9yZWQtc3RhdHVz
LWJhci1pdGVtcyI+PGRpdiBpZD0iY291bnRlcnMiPjxkaXYgaWQ9ImVycm9yLXdhcm5pbmctY291
bnQiIGNsYXNzPSJoaWRkZW4iPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PgogICAgIDwvZGl2Pgot
ICAgIDxkaXYgaWQ9ImRyYXdlciI+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUtdmlldyI+PGRp
diBpZD0iY29uc29sZS1tZXNzYWdlcyIgY2xhc3M9Im1vbm9zcGFjZSI+PGRpdiBpZD0iY29uc29s
ZS1wcm9tcHQiIHNwZWxsY2hlY2s9ImZhbHNlIj48YnI+PC9kaXY+PC9kaXY+PC9kaXY+Ci0gICAg
ICAgIDxkaXYgaWQ9ImRyYXdlci1zdGF0dXMtYmFyIiBjbGFzcz0ic3RhdHVzLWJhciI+PGRpdiBp
ZD0ib3RoZXItZHJhd2VyLXN0YXR1cy1iYXItaXRlbXMiPjxidXR0b24gaWQ9ImNsZWFyLWNvbnNv
bGUtc3RhdHVzLWJhci1pdGVtIiBjbGFzcz0ic3RhdHVzLWJhci1pdGVtIGNsZWFyLXN0YXR1cy1i
YXItaXRlbSI+PGRpdiBjbGFzcz0iZ2x5cGgiPjwvZGl2PjxkaXYgY2xhc3M9ImdseXBoIHNoYWRv
dyI+PC9kaXY+PC9idXR0b24+PHNlbGVjdCBpZD0iY29uc29sZS1jb250ZXh0IiBjbGFzcz0ic3Rh
dHVzLWJhci1pdGVtIj48L3NlbGVjdD48ZGl2IGlkPSJjb25zb2xlLWZpbHRlciIgY2xhc3M9InNj
b3BlLWJhciBzdGF0dXMtYmFyLWl0ZW0iPjwvZGl2PjwvZGl2PjwvZGl2PgotICAgIDwvZGl2Pgor
ICAgIDxkaXYgaWQ9ImRyYXdlciI+PC9kaXY+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IDQ5MGRhZDJh
NWM5Njk4ZDBiMmE2ZTFhMzhiMDNlZjEwODU4ZmEyOGEuLjJmYjU4ZjFmM2RiZWM1NzAyYjA5ZTUw
MDZlYzdkYTI2MzA2MTJmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0xNDQsNiArMTQ0LDggQEAgdmFyIFdlYkluc3BlY3RvciA9
IHsKICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IudXNlck1ldHJpY3MucGFuZWxTaG93bihw
YW5lbE5hbWUpOwogICAgICAgICAgICAgfQogICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fdG9n
Z2xlQ29uc29sZUJ1dHRvbi5kaXNhYmxlZCA9IHRoaXMuX2N1cnJlbnRQYW5lbCA9PT0gV2ViSW5z
cGVjdG9yLnBhbmVscy5jb25zb2xlOwogICAgIH0sCiAKICAgICBfY3JlYXRlUGFuZWxzOiBmdW5j
dGlvbigpCkBAIC0xODMsMTAgKzE4NSwxMyBAQCB2YXIgV2ViSW5zcGVjdG9yID0gewogCiAgICAg
ICAgIHZhciBhbmNob3JlZFN0YXR1c0JhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmNo
b3JlZC1zdGF0dXMtYmFyLWl0ZW1zIik7CiAgICAgICAgIGFuY2hvcmVkU3RhdHVzQmFyLmFwcGVu
ZENoaWxkKHRoaXMuX2RvY2tUb2dnbGVCdXR0b24uZWxlbWVudCk7Ci0gICAgICAgIGFuY2hvcmVk
U3RhdHVzQmFyLmFwcGVuZENoaWxkKHRoaXMuY29uc29sZVZpZXcudG9nZ2xlQ29uc29sZUJ1dHRv
bi5lbGVtZW50KTsKKworICAgICAgICB0aGlzLl90b2dnbGVDb25zb2xlQnV0dG9uID0gbmV3IFdl
Ykluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IGNv
bnNvbGUuIiksICJjb25zb2xlLXN0YXR1cy1iYXItaXRlbSIpOworICAgICAgICB0aGlzLl90b2dn
bGVDb25zb2xlQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlQ29u
c29sZUJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOworICAgICAgICBhbmNob3JlZFN0
YXR1c0Jhci5hcHBlbmRDaGlsZCh0aGlzLl90b2dnbGVDb25zb2xlQnV0dG9uLmVsZW1lbnQpOwor
CiAgICAgICAgIGlmICh0aGlzLnBhbmVscy5lbGVtZW50cykKICAgICAgICAgICAgIGFuY2hvcmVk
U3RhdHVzQmFyLmFwcGVuZENoaWxkKHRoaXMucGFuZWxzLmVsZW1lbnRzLm5vZGVTZWFyY2hCdXR0
b24uZWxlbWVudCk7Ci0KICAgICAgICAgYW5jaG9yZWRTdGF0dXNCYXIuYXBwZW5kQ2hpbGQodGhp
cy5fc2V0dGluZ3NCdXR0b24uZWxlbWVudCk7CiAgICAgfSwKIApAQCAtMjA2LDYgKzIxMSwyMiBA
QCB2YXIgV2ViSW5zcGVjdG9yID0gewogICAgICAgICB9CiAgICAgfSwKIAorICAgIF90b2dnbGVD
b25zb2xlQnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMu
X3RvZ2dsZUNvbnNvbGVCdXR0b24uZGlzYWJsZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgdGhpcy5fdG9nZ2xlQ29uc29sZUJ1dHRvbi50b2dnbGVkID0gIXRoaXMuX3RvZ2dsZUNv
bnNvbGVCdXR0b24udG9nZ2xlZDsKKworICAgICAgICBpZiAodGhpcy5fdG9nZ2xlQ29uc29sZUJ1
dHRvbi50b2dnbGVkKSB7CisgICAgICAgICAgICB0aGlzLl90b2dnbGVDb25zb2xlQnV0dG9uLnRp
dGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJIaWRlIGNvbnNvbGUuIik7CisgICAgICAgICAg
ICB0aGlzLmRyYXdlci5zaG93KHRoaXMuY29uc29sZVZpZXcpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgdGhpcy5fdG9nZ2xlQ29uc29sZUJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiU2hvdyBjb25zb2xlLiIpOworICAgICAgICAgICAgdGhpcy5kcmF3ZXIuaGlk
ZSgpOworICAgICAgICB9CisgICAgfSwKKwogICAgIF90b2dnbGVTZXR0aW5nczogZnVuY3Rpb24o
KQogICAgIHsKICAgICAgICAgdGhpcy5fc2V0dGluZ3NCdXR0b24udG9nZ2xlZCA9ICF0aGlzLl9z
ZXR0aW5nc0J1dHRvbi50b2dnbGVkOwpAQCAtMjg2LDcgKzMwNyw3IEBAIHZhciBXZWJJbnNwZWN0
b3IgPSB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci51cGRhdGVT
ZWFyY2hMYWJlbCgpOwogCiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZHJhd2VyKQotICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmRyYXdlci51cGRhdGVIZWlnaHQoKTsKKyAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5kcmF3ZXIucmVzaXplKCk7CiAgICAgfSwKIAogICAgIF91cGRhdGVFcnJvckFu
ZFdhcm5pbmdDb3VudHM6IGZ1bmN0aW9uKCkKQEAgLTQ5NSw4ICs1MTYsNyBAQCBXZWJJbnNwZWN0
b3IuZG9Mb2FkZWREb25lID0gZnVuY3Rpb24oKQogICAgIHRoaXMuY29uc29sZS5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwuRXZlbnRzLlJlcGVhdENvdW50VXBkYXRl
ZCwgdGhpcy5fdXBkYXRlRXJyb3JBbmRXYXJuaW5nQ291bnRzLCB0aGlzKTsKIAogICAgIHRoaXMu
ZHJhd2VyID0gbmV3IFdlYkluc3BlY3Rvci5EcmF3ZXIoKTsKLSAgICB0aGlzLmNvbnNvbGVWaWV3
ID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xlVmlldyh0aGlzLmRyYXdlcik7Ci0gICAgdGhpcy5k
cmF3ZXIudmlzaWJsZVZpZXcgPSB0aGlzLmNvbnNvbGVWaWV3OworICAgIHRoaXMuY29uc29sZVZp
ZXcgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3KCk7CiAKICAgICB0aGlzLm5ldHdvcmtN
YW5hZ2VyID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlcigpOwogICAgIHRoaXMucmVz
b3VyY2VUcmVlTW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsKCk7CkBA
IC02MDcsNyArNjI3LDcgQEAgV2ViSW5zcGVjdG9yLndpbmRvd1Jlc2l6ZSA9IGZ1bmN0aW9uKGV2
ZW50KQogewogICAgIGlmICh0aGlzLmN1cnJlbnRQYW5lbCgpKQogICAgICAgICB0aGlzLmN1cnJl
bnRQYW5lbCgpLmRvUmVzaXplKCk7Ci0gICAgdGhpcy5kcmF3ZXIuZG9SZXNpemUoKTsKKyAgICB0
aGlzLmRyYXdlci5yZXNpemUoKTsKICAgICB0aGlzLnRvb2xiYXIucmVzaXplKCk7CiB9CiAKQEAg
LTc5MywxMCArODEzLDcgQEAgV2ViSW5zcGVjdG9yLmRvY3VtZW50S2V5RG93biA9IGZ1bmN0aW9u
KGV2ZW50KQogCiAgICAgICAgIGNhc2UgIlUrMDAxQiI6IC8vIEVzY2FwZSBrZXkKICAgICAgICAg
ICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAgICBpZiAodGhpcy5kcmF3ZXIu
ZnVsbFBhbmVsKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgdGhpcy5k
cmF3ZXIudmlzaWJsZSA9ICF0aGlzLmRyYXdlci52aXNpYmxlOworICAgICAgICAgICAgdGhpcy5f
dG9nZ2xlQ29uc29sZUJ1dHRvbkNsaWNrZWQoKTsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAg
ICAgIC8vIFdpbmRvd3MgYW5kIE1hYyBoYXZlIHR3byBkaWZmZXJlbnQgZGVmaW5pdGlvbnMgb2Yg
Wywgc28gYWNjZXB0IGJvdGguCg==
</data>
<flag name="review"
          id="104692"
          type_id="1"
          status="+"
          setter="tonyg"
    />
          </attachment>
      

    </bug>

</bugzilla>