<?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>19207</bug_id>
          
          <creation_ts>2008-05-23 02:54:04 -0700</creation_ts>
          <short_desc>Inspector should remember the size of sidebars set by the user</short_desc>
          <delta_ts>2010-07-07 03:10:46 -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>
          <dependson>41687</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anthony Ricaud">rik</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>aroben</cc>
    
    <cc>dev+webkit</cc>
    
    <cc>joepeck</cc>
    
    <cc>masterov</cc>
    
    <cc>pfeldman</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>81279</commentid>
    <comment_count>0</comment_count>
    <who name="Anthony Ricaud">rik</who>
    <bug_when>2008-05-23 02:54:04 -0700</bug_when>
    <thetext>It&apos;s a user preference, it should be remembered over instances.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86076</commentid>
    <comment_count>1</comment_count>
    <who name="Anthony Ricaud">rik</who>
    <bug_when>2008-07-16 11:16:02 -0700</bug_when>
    <thetext>I&apos;d like to work on the &quot;remember&quot; bugs (bug 19208 and bug 19209). I need a way to store these preferences. I&apos;ve thought about Database Storage and localStorage. Maybe there&apos;s also a way to do this in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86087</commentid>
    <comment_count>2</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-07-16 12:04:17 -0700</bug_when>
    <thetext>I would say localStorage is the best bet. But it would be lumped into all file URL&apos;s localStorage. So Database with a unique name for the inspector might be better. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87699</commentid>
    <comment_count>3</comment_count>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2008-08-02 15:23:15 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I would say localStorage is the best bet. But it would be lumped into all file
&gt; URL&apos;s localStorage. So Database with a unique name for the inspector might be
&gt; better. 
&gt; 

Database is async, which is a problem when retrieving the information, so unless I&apos;m missing a really obvious (or sneaky) way of making the database stuff synchronous, it&apos;s probably going to have to be localStorage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88941</commentid>
    <comment_count>4</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-08-20 14:44:15 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; I would say localStorage is the best bet. But it would be lumped into all file
&gt; &gt; URL&apos;s localStorage. So Database with a unique name for the inspector might be
&gt; &gt; better. 
&gt; &gt; 
&gt; 
&gt; Database is async, which is a problem when retrieving the information, so
&gt; unless I&apos;m missing a really obvious (or sneaky) way of making the database
&gt; stuff synchronous, it&apos;s probably going to have to be localStorage.
&gt; 

Yes asynchronous makes it annoying. But you can still use it.

When the Inspector opens, read all the preferences from the database into a Preferences object. Then when a preferences needs to change store the preference in the database and in the Preferences object. Any clients of the preferences will read only from the Preferences object, but the values do still persist.

This is basically how localStorage works behind the scenes.

Maybe we could consider a way to tell the Web Inspector&apos;s WebKit to use a special backing database for it&apos;s localStorage, so it does not conflict with other file URLs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229820</commentid>
    <comment_count>5</comment_count>
    <who name="Alexei Masterov">masterov</who>
    <bug_when>2010-05-24 11:16:49 -0700</bug_when>
    <thetext>Web Inspector: [REGRESSION]: Styles Sidebar (Panel) would NOT re-open with the width set by the user in the previous session.

To reproduce:
==============
1. Open Elements Panel.
2. Change the layout (width for example) of the sidebar
3. Close Inspector
4. Open Inspector
5. Observe sidebar return to the default layout.

NOTE: previous version of WebKit had this working.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247065</commentid>
    <comment_count>6</comment_count>
    <who name="Alexei Masterov">masterov</who>
    <bug_when>2010-07-06 07:14:07 -0700</bug_when>
    <thetext>This bug is more general than 41687, so 41687 is set as a dependency</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247342</commentid>
    <comment_count>7</comment_count>
      <attachid>60691</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-06 23:43:00 -0700</bug_when>
    <thetext>Created attachment 60691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247351</commentid>
    <comment_count>8</comment_count>
      <attachid>60691</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-07-06 23:56:39 -0700</bug_when>
    <thetext>Comment on attachment 60691
Patch

WebCore/inspector/front-end/Panel.js:35
 +      this._name = name;
Nit: it is easy for ancestors to hide it. I&apos;d rename it to something more specific (_panelName)

WebCore/inspector/front-end/Panel.js:42
 +      get toolbarItemClass()
No need to expose it, just use the name in get toolbarItem below.

WebCore/inspector/front-end/Panel.js:327
 +      get _sidebarWidthSettingName()
I&apos;d not use getters for private fields (use function instead).

WebCore/inspector/front-end/Panel.js:392
 +          WebInspector.log(&quot;saving &quot; + this._sidebarWidthSettingName + &quot; = &quot; + this.sidebarElement.offsetWidth);
Remove logging.

WebCore/inspector/front-end/Settings.js:61
 +      WebInspector.applicationSettings._installSetting(&quot;elementsSidebarWidth&quot;, &quot;elements-sidebar-width&quot;, undefined);
I think panel constructors should register theses instead - otherwise hack. r- for this. I&apos;d make installSetting public and allow its invocation before the load takes place. I&apos;d do the same thing as now + initialize store with default values. Then I&apos;d populate existing settings from JSON.parse(settingsString) in _load.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247398</commentid>
    <comment_count>9</comment_count>
      <attachid>60706</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-07 01:53:21 -0700</bug_when>
    <thetext>Created attachment 60706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247404</commentid>
    <comment_count>10</comment_count>
      <attachid>60709</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-07 02:15:22 -0700</bug_when>
    <thetext>Created attachment 60709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247405</commentid>
    <comment_count>11</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-07 02:15:56 -0700</bug_when>
    <thetext>Addressed all comments. Please take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247435</commentid>
    <comment_count>12</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-07 03:10:46 -0700</bug_when>
    <thetext>Committed r62647</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60691</attachid>
            <date>2010-07-06 23:43:00 -0700</date>
            <delta_ts>2010-07-07 01:53:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-19207-20100707104257.patch</filename>
            <type>text/plain</type>
            <size>16204</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDM3ZDdjZGExYjJlNmY2OWFlMWNiMmVmM2RhYTUzY2ExN2VhOTQ3My4uMzc4ODVhMDg2NmQ4N2Zm
YzU4NGUxZTM1MjFmZTA1NDc0YmUyODk4ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxMC0wNy0wNiAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnNwZWN0b3Igc2hvdWxkIHJlbWVtYmVyIHRo
ZSBzaXplIG9mIHNpZGViYXJzIHNldCBieSB0aGUgdXNlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyMDcKKworICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvQWJzdHJhY3RUaW1lbGluZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkFic3RyYWN0VGltZWxpbmVQYW5lbCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9B
dWRpdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdHNQYW5lbCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlUGFuZWwuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29uc29sZVBhbmVsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Vs
ZW1lbnRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90
b3R5cGUucmlnaHRTaWRlYmFyUmVzaXplckRyYWdFbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5nZXQgdG9vbGJhckl0ZW1DbGFzcyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNob3cpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5jcmVhdGVTaWRlYmFyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuZ2V0IF9zaWRlYmFyV2lkdGhTZXR0aW5nTmFtZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLl9lbmRTaWRlYmFyRHJhZ2dpbmcp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS51cGRhdGVTaWRlYmFyV2lk
dGgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5yZXN0b3JlU2lkZWJh
cldpZHRoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuc2F2ZVNpZGVi
YXJXaWR0aCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnBy
b3RvdHlwZS5yZXNvdXJjZVRyYWNraW5nV2FzRW5hYmxlZCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9l
bmRTaWRlYmFyUmVzaXplRHJhZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZS5fc2lkZWJhclJlc2l6ZURyYWcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUuc2V0U2lkZWJhcldpZHRoKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLnBvcHVsYXRl
QXBwbGljYXRpb25TZXR0aW5ncyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TdG9y
YWdlUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3RvcmFnZVBhbmVsKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQYW5lbCk6CisKIDIwMTAtMDctMDYgIE1hcmsgUm93ZSAgPG1yb3dl
QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggcHJvZHVjdGlvbiBidWlsZHMgb24gTWFjIE9TIFgu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWJzdHJhY3RUaW1lbGlu
ZVBhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Fic3RyYWN0VGltZWxpbmVQ
YW5lbC5qcwppbmRleCBlYjllYTg4NzhlMWE2NGQ2MjJmZDA5NzJlMjgyMDQyMmNlYzkxMjA2Li4x
YjVmNmNlNmM2ZWEzODZkOWNjMWQ3ZDhjNmJhYjI5ZWMyZTY4ZWI2IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWJzdHJhY3RUaW1lbGluZVBhbmVsLmpzCisrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BYnN0cmFjdFRpbWVsaW5lUGFuZWwuanMKQEAgLTI4
LDkgKzI4LDkgQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLkFic3RyYWN0VGlt
ZWxpbmVQYW5lbCA9IGZ1bmN0aW9uKCkKK1dlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lUGFu
ZWwgPSBmdW5jdGlvbihuYW1lKQogewotICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMp
OworICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMsIG5hbWUpOwogICAgIHRoaXMuX2l0
ZW1zID0gW107CiAgICAgdGhpcy5fc3RhbGVJdGVtcyA9IFtdOwogfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCmluZGV4IDQ4MWRmODBmYzgxOTI2OTU4ODc2ODhh
Mjc1MGJlYzZmMGRhMWMyODguLmJjN2YzYjNjYjUyYmQzM2JlMmYyNDNiOTNjZWRmZDQ4ODY4MmZj
MzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5q
cworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMKQEAgLTMw
LDcgKzMwLDcgQEAKIAogV2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVsID0gZnVuY3Rpb24oKQogewot
ICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5QYW5l
bC5jYWxsKHRoaXMsICJhdWRpdHMiKTsKIAogICAgIHRoaXMuX2NvbnN0cnVjdENhdGVnb3JpZXMo
KTsKIApAQCAtNDcsOCArNDcsNiBAQCBXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwgPSBmdW5jdGlv
bigpCiAgICAgdGhpcy5zaWRlYmFyVHJlZS5hcHBlbmRDaGlsZCh0aGlzLmF1ZGl0UmVzdWx0c1Ry
ZWVFbGVtZW50KTsKICAgICB0aGlzLmF1ZGl0UmVzdWx0c1RyZWVFbGVtZW50LmV4cGFuZCgpOwog
Ci0gICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImF1ZGl0cyIpOwotCiAgICAgdGhpcy5j
bGVhclJlc3VsdHNCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkNsZWFyIGF1ZGl0IHJlc3VsdHMuIiksICJjbGVhci1zdGF0dXMt
YmFyLWl0ZW0iKTsKICAgICB0aGlzLmNsZWFyUmVzdWx0c0J1dHRvbi5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIHRoaXMuX2NsZWFyQnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAK
QEAgLTYwLDggKzU4LDYgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVsID0gZnVuY3Rpb24oKQog
fQogCiBXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwucHJvdG90eXBlID0gewotICAgIHRvb2xiYXJJ
dGVtQ2xhc3M6ICJhdWRpdHMiLAotCiAgICAgZ2V0IHRvb2xiYXJJdGVtTGFiZWwoKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQXVkaXRzIik7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5qcwppbmRleCA2ZGJjNTU4NmMwM2Fi
ZGM4ZDVmNjhjYjRjNjUzMjNmOWNhNjgxMjg2Li41YTBjMmU3ODY3MzExMDkwMzA3MjMyYjgxZDBi
ODQ3ZjBkN2M2NzE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVBhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlUGFu
ZWwuanMKQEAgLTI4LDEyICsyOCwxMCBAQAogCiBXZWJJbnNwZWN0b3IuQ29uc29sZVBhbmVsID0g
ZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMpOworICAgIFdl
Ykluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMsICJjb25zb2xlIik7CiB9CiAKIFdlYkluc3BlY3Rv
ci5Db25zb2xlUGFuZWwucHJvdG90eXBlID0gewotICAgIHRvb2xiYXJJdGVtQ2xhc3M6ICJjb25z
b2xlIiwKLQogICAgIGdldCB0b29sYmFySXRlbUxhYmVsKCkKICAgICB7CiAgICAgICAgIHJldHVy
biBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvbnNvbGUiKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXggZTE3NjExMmMzMzJlM2E2ZWQ1NTlmMWNi
M2VlODQyYTVmNzEyZDU4ZC4uMTVlZDBlOTM3NWQ5Y2I4NDBlMWI3NTRkOGQyZDIzZjA5YTk4YWEx
ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwu
anMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKQEAg
LTMwLDkgKzMwLDcgQEAKIAogV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwgPSBmdW5jdGlvbigp
CiB7Ci0gICAgV2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcyk7Ci0KLSAgICB0aGlzLmVsZW1l
bnQuYWRkU3R5bGVDbGFzcygiZWxlbWVudHMiKTsKKyAgICBXZWJJbnNwZWN0b3IuUGFuZWwuY2Fs
bCh0aGlzLCAiZWxlbWVudHMiKTsKIAogICAgIHRoaXMuY29udGVudEVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmlkID0gImVs
ZW1lbnRzLWNvbnRlbnQiOwpAQCAtMTE0LDggKzExMiw2IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50
c1BhbmVsID0gZnVuY3Rpb24oKQogfQogCiBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90
b3R5cGUgPSB7Ci0gICAgdG9vbGJhckl0ZW1DbGFzczogImVsZW1lbnRzIiwKLQogICAgIGdldCB0
b29sYmFySXRlbUxhYmVsKCkKICAgICB7CiAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkVsZW1lbnRzIik7CkBAIC0xMTIxLDYgKzExMTcsNyBAQCBXZWJJbnNwZWN0b3IuRWxl
bWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgcmlnaHRTaWRlYmFyUmVzaXplckRyYWdFbmQ6
IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmVsZW1lbnREcmFn
RW5kKGV2ZW50KTsKKyAgICAgICAgdGhpcy5zYXZlU2lkZWJhcldpZHRoKCk7CiAgICAgfSwKIAog
ICAgIHJpZ2h0U2lkZWJhclJlc2l6ZXJEcmFnOiBmdW5jdGlvbihldmVudCkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9QYW5lbC5qcwppbmRleCA5ZmQwYTYwZDE0YTlkN2FmZDhhNTc0ZjAxOTg2Nzk1
ZGMxNWYwZjg0Li43ZTZlZDAyZDhjYzg3N2EwMTg5Nzc2ODVhNWE4YmEwNjE5MDNkM2MwIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanMKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCkBAIC0yNiwxNyArMjYsMjQgQEAKICAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLlBhbmVsID0gZnVuY3Rpb24oKQorV2ViSW5zcGVj
dG9yLlBhbmVsID0gZnVuY3Rpb24obmFtZSkKIHsKICAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxs
KHRoaXMpOwogCiAgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInBhbmVsIik7CisgICAg
dGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MobmFtZSk7CisgICAgdGhpcy5fbmFtZSA9IG5hbWU7
CiB9CiAKIC8vIFNob3VsZCBieSBpbiBzeW5jIHdpdGggc3R5bGUgZGVjbGFyYXRpb25zLgogV2Vi
SW5zcGVjdG9yLlBhbmVsLmNvdW50ZXJSaWdodE1hcmdpbiA9IDI1OwogCiBXZWJJbnNwZWN0b3Iu
UGFuZWwucHJvdG90eXBlID0geworICAgIGdldCB0b29sYmFySXRlbUNsYXNzKCkKKyAgICB7Cisg
ICAgICAgICByZXR1cm4gdGhpcy5fbmFtZTsKKyAgICB9LAorCiAgICAgZ2V0IHRvb2xiYXJJdGVt
KCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl90b29sYmFySXRlbSkKQEAgLTg2LDcgKzkzLDcg
QEAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBXZWJJbnNwZWN0
b3IuY3VycmVudEZvY3VzRWxlbWVudCA9IHRoaXMuZGVmYXVsdEZvY3VzZWRFbGVtZW50OwogCi0g
ICAgICAgIHRoaXMudXBkYXRlU2lkZWJhcldpZHRoKCk7CisgICAgICAgIHRoaXMucmVzdG9yZVNp
ZGViYXJXaWR0aCgpOwogICAgICAgICB0aGlzLl9yZXN0b3JlU2Nyb2xsUG9zaXRpb25zKCk7CiAg
ICAgfSwKIApAQCAtMjkxLDcgKzI5OCw3IEBAIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUg
PSB7CiAKICAgICBjcmVhdGVTaWRlYmFyOiBmdW5jdGlvbihwYXJlbnRFbGVtZW50LCByZXNpemVy
UGFyZW50RWxlbWVudCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLmhhc1NpZGViYXIpCisgICAg
ICAgIGlmICh0aGlzLnNpZGViYXJFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgIGlmICghcGFyZW50RWxlbWVudCkKQEAgLTMwMCw4ICszMDcsNiBAQCBXZWJJbnNwZWN0b3Iu
UGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXJlc2l6ZXJQYXJlbnRFbGVtZW50KQog
ICAgICAgICAgICAgcmVzaXplclBhcmVudEVsZW1lbnQgPSBwYXJlbnRFbGVtZW50OwogCi0gICAg
ICAgIHRoaXMuaGFzU2lkZWJhciA9IHRydWU7Ci0KICAgICAgICAgdGhpcy5zaWRlYmFyRWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICB0aGlzLnNpZGViYXJF
bGVtZW50LmNsYXNzTmFtZSA9ICJzaWRlYmFyIjsKICAgICAgICAgcGFyZW50RWxlbWVudC5hcHBl
bmRDaGlsZCh0aGlzLnNpZGViYXJFbGVtZW50KTsKQEAgLTMxOSw2ICszMjQsMTEgQEAgV2ViSW5z
cGVjdG9yLlBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5zaWRlYmFyVHJlZS5wYW5l
bCA9IHRoaXM7CiAgICAgfSwKIAorICAgIGdldCBfc2lkZWJhcldpZHRoU2V0dGluZ05hbWUoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX25hbWUgKyAiU2lkZWJhcldpZHRoIjsKKyAgICB9
LAorCiAgICAgX3N0YXJ0U2lkZWJhckRyYWdnaW5nOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAg
ICAgICAgIFdlYkluc3BlY3Rvci5lbGVtZW50RHJhZ1N0YXJ0KHRoaXMuc2lkZWJhclJlc2l6ZUVs
ZW1lbnQsIHRoaXMuX3NpZGViYXJEcmFnZ2luZy5iaW5kKHRoaXMpLCB0aGlzLl9lbmRTaWRlYmFy
RHJhZ2dpbmcuYmluZCh0aGlzKSwgZXZlbnQsICJjb2wtcmVzaXplIik7CkBAIC0zMzQsMTEgKzM0
NCwxMiBAQCBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlID0gewogICAgIF9lbmRTaWRlYmFy
RHJhZ2dpbmc6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmVs
ZW1lbnREcmFnRW5kKGV2ZW50KTsKKyAgICAgICAgdGhpcy5zYXZlU2lkZWJhcldpZHRoKCk7CiAg
ICAgfSwKIAogICAgIHVwZGF0ZVNpZGViYXJXaWR0aDogZnVuY3Rpb24od2lkdGgpCiAgICAgewot
ICAgICAgICBpZiAoIXRoaXMuaGFzU2lkZWJhcikKKyAgICAgICAgaWYgKCF0aGlzLnNpZGViYXJF
bGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmICh0aGlzLnNpZGViYXJF
bGVtZW50Lm9mZnNldFdpZHRoIDw9IDApIHsKQEAgLTM2Nyw2ICszNzgsMjAgQEAgV2ViSW5zcGVj
dG9yLlBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5zaWRlYmFyUmVzaXplRWxlbWVu
dC5zdHlsZS5sZWZ0ID0gKHdpZHRoIC0gMykgKyAicHgiOwogICAgIH0sCiAKKyAgICByZXN0b3Jl
U2lkZWJhcldpZHRoOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgc2lkZWJhcldpZHRo
ID0gV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uU2V0dGluZ3NbdGhpcy5fc2lkZWJhcldpZHRoU2V0
dGluZ05hbWVdOworICAgICAgICB0aGlzLnVwZGF0ZVNpZGViYXJXaWR0aChzaWRlYmFyV2lkdGgp
OworICAgIH0sCisKKyAgICBzYXZlU2lkZWJhcldpZHRoOiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICBpZiAoIXRoaXMuc2lkZWJhckVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIFdlYkluc3BlY3Rvci5hcHBsaWNhdGlvblNldHRpbmdzW3RoaXMuX3NpZGViYXJXaWR0aFNl
dHRpbmdOYW1lXSA9IHRoaXMuc2lkZWJhckVsZW1lbnQub2Zmc2V0V2lkdGg7CisgICAgICAgIFdl
Ykluc3BlY3Rvci5sb2coInNhdmluZyAiICsgdGhpcy5fc2lkZWJhcldpZHRoU2V0dGluZ05hbWUg
KyAiID0gIiArIHRoaXMuc2lkZWJhckVsZW1lbnQub2Zmc2V0V2lkdGgpOworICAgIH0sCisKICAg
ICB1cGRhdGVNYWluVmlld1dpZHRoOiBmdW5jdGlvbih3aWR0aCkKICAgICB7CiAgICAgICAgIC8v
IFNob3VsZCBiZSBpbXBsZW1lbnRlZCBieSBhbmNlc3RvcnMuCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmluZGV4IGI1MTIyYWZkNDU3ZTZhODRkYTZkNjQ5
ZTIzOTc4ZWMzMDk3MGIwNmEuLjkxMWIxZGFmNjI2MTI5NmUzZTU5NjYxYzQzMzEyOTU2OGI0M2Rk
NGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVs
LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCkBA
IC05MCwxMSArOTAsMTAgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVUeXBlLnByb3RvdHlwZSA9IHsK
IAogV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwgPSBmdW5jdGlvbigpCiB7Ci0gICAgV2ViSW5z
cGVjdG9yLlBhbmVsLmNhbGwodGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhp
cywgInByb2ZpbGVzIik7CiAKICAgICB0aGlzLmNyZWF0ZVNpZGViYXIoKTsKIAotICAgIHRoaXMu
ZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJwcm9maWxlcyIpOwogICAgIHRoaXMuX3Byb2ZpbGVUeXBl
c0J5SWRNYXAgPSB7fTsKICAgICB0aGlzLl9wcm9maWxlVHlwZUJ1dHRvbnNCeUlkTWFwID0ge307
CiAKQEAgLTEyOCw4ICsxMjcsNiBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbCA9IGZ1bmN0
aW9uKCkKIH0KIAogV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewotICAg
IHRvb2xiYXJJdGVtQ2xhc3M6ICJwcm9maWxlcyIsCi0KICAgICBnZXQgdG9vbGJhckl0ZW1MYWJl
bCgpCiAgICAgewogICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQcm9maWxl
cyIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1Bh
bmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCmlu
ZGV4IGVmNmFhMjZmNjRmYmJjZDQyNzMwZmExNTg5NTI3Yjk2Yjg3ZTcxMjMuLjEyY2JjMTg4NWIx
MjkwZjM3YWY2MjQ5ODVkMDBmN2U1Mjc2NTk0YTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKQEAgLTI5LDkgKzI5LDcgQEAKIAogV2ViSW5zcGVj
dG9yLlJlc291cmNlc1BhbmVsID0gZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5BYnN0
cmFjdFRpbWVsaW5lUGFuZWwuY2FsbCh0aGlzKTsKLQotICAgIHRoaXMuZWxlbWVudC5hZGRTdHls
ZUNsYXNzKCJyZXNvdXJjZXMiKTsKKyAgICBXZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZVBh
bmVsLmNhbGwodGhpcywgInJlc291cmNlcyIpOwogCiAgICAgdGhpcy5fY3JlYXRlUGFuZWxFbmFi
bGVyKCk7CiAKQEAgLTUxLDggKzQ5LDYgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsID0g
ZnVuY3Rpb24oKQogfQogCiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0g
ewotICAgIHRvb2xiYXJJdGVtQ2xhc3M6ICJyZXNvdXJjZXMiLAotCiAgICAgZ2V0IHRvb2xiYXJJ
dGVtTGFiZWwoKQogICAgIHsKICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygi
UmVzb3VyY2VzIik7CkBAIC0zMTksNiArMzE1LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHRoaXMuX3Jlc291cmNlVHJhY2tpbmdF
bmFibGVkID0gdHJ1ZTsKICAgICAgICAgdGhpcy5yZXNldCgpOworICAgICAgICB0aGlzLnJlc3Rv
cmVTaWRlYmFyV2lkdGgoKTsKICAgICB9LAogCiAgICAgcmVzb3VyY2VUcmFja2luZ1dhc0Rpc2Fi
bGVkOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5l
bC5qcwppbmRleCA1NTYzYjkzMTMyMTFmYWU3ZjlkZjVkY2YzYmFkOWFjMDYyZTk4MDcxLi41M2Fl
NTAxNWI1NzZjMDAyOThkOTUxMDZiNjQ1NTNlMGZjYzQ5M2M0IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTI1LDkgKzI1LDcgQEAKIAogV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbCA9IGZ1bmN0aW9uKCkKIHsKLSAgICBXZWJJbnNwZWN0b3IuUGFu
ZWwuY2FsbCh0aGlzKTsKLQotICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJzY3JpcHRz
Iik7CisgICAgV2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcywgInNjcmlwdHMiKTsKIAogICAg
IHRoaXMudG9wU3RhdHVzQmFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAg
dGhpcy50b3BTdGF0dXNCYXIuY2xhc3NOYW1lID0gInN0YXR1cy1iYXIiOwpAQCAtMTg0LDggKzE4
Miw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSA9
IHsKIH07CiAKIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewotICAgIHRv
b2xiYXJJdGVtQ2xhc3M6ICJzY3JpcHRzIiwKLQogICAgIGdldCB0b29sYmFySXRlbUxhYmVsKCkK
ICAgICB7CiAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNjcmlwdHMiKTsK
QEAgLTc5NCwxNSArNzkwLDIwIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBl
ID0gewogICAgIF9lbmRTaWRlYmFyUmVzaXplRHJhZzogZnVuY3Rpb24oZXZlbnQpCiAgICAgewog
ICAgICAgICBXZWJJbnNwZWN0b3IuZWxlbWVudERyYWdFbmQoZXZlbnQpOwotCiAgICAgICAgIGRl
bGV0ZSB0aGlzLl9kcmFnT2Zmc2V0OworICAgICAgICB0aGlzLnNhdmVTaWRlYmFyV2lkdGgoKTsK
ICAgICB9LAogCiAgICAgX3NpZGViYXJSZXNpemVEcmFnOiBmdW5jdGlvbihldmVudCkKICAgICB7
CiAgICAgICAgIHZhciB4ID0gZXZlbnQucGFnZVggKyB0aGlzLl9kcmFnT2Zmc2V0OwogICAgICAg
ICB2YXIgbmV3V2lkdGggPSBOdW1iZXIuY29uc3RyYWluKHdpbmRvdy5pbm5lcldpZHRoIC0geCwg
UHJlZmVyZW5jZXMubWluU2NyaXB0c1NpZGViYXJXaWR0aCwgd2luZG93LmlubmVyV2lkdGggKiAw
LjY2KTsKKyAgICAgICAgdGhpcy5zZXRTaWRlYmFyV2lkdGgobmV3V2lkdGgpOworICAgICAgICBl
dmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0sCiAKKyAgICBzZXRTaWRlYmFyV2lkdGg6IGZ1
bmN0aW9uKG5ld1dpZHRoKQorICAgIHsKICAgICAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC5zdHls
ZS53aWR0aCA9IG5ld1dpZHRoICsgInB4IjsKICAgICAgICAgdGhpcy5zaWRlYmFyQnV0dG9uc0Vs
ZW1lbnQuc3R5bGUud2lkdGggPSBuZXdXaWR0aCArICJweCI7CiAgICAgICAgIHRoaXMudmlld3ND
b250YWluZXJFbGVtZW50LnN0eWxlLnJpZ2h0ID0gbmV3V2lkdGggKyAicHgiOwpAQCAtODEwLDkg
KzgxMSw4IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICB0aGlzLnNpZGViYXJSZXNpemVFbGVtZW50LnN0eWxlLnJpZ2h0ID0gKG5ld1dpZHRoIC0gMykg
KyAicHgiOwogCiAgICAgICAgIHRoaXMucmVzaXplKCk7Ci0gICAgICAgIGV2ZW50LnByZXZlbnRE
ZWZhdWx0KCk7CiAgICAgfSwKLSAgICAKKwogICAgIHVwZGF0ZVBhdXNlT25FeGNlcHRpb25zU3Rh
dGU6IGZ1bmN0aW9uKHBhdXNlT25FeGNlcHRpb25zU3RhdGUpCiAgICAgewogICAgICAgICBpZiAo
cGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSA9PSBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLlBhdXNl
T25FeGNlcHRpb25zU3RhdGUuRG9udFBhdXNlT25FeGNlcHRpb25zKQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IGM3ZmM1YTk1ODk5ODNhZDI0ODY4OTI4ZDNjNzA4
MzA1ZDA2Yjg1M2MuLmJjZGRhMWEzODg0OWE0NWM1MjQyZjVmNjQyNmVjMmI4ZTZhZTEyMzcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcworKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKQEAgLTU3LDYgKzU3LDE1IEBA
IFdlYkluc3BlY3Rvci5wb3B1bGF0ZUFwcGxpY2F0aW9uU2V0dGluZ3MgPSBmdW5jdGlvbihzZXR0
aW5nc1N0cmluZykKICAgICBXZWJJbnNwZWN0b3IuYXBwbGljYXRpb25TZXR0aW5ncy5faW5zdGFs
bFNldHRpbmcoInNob3dVc2VyQWdlbnRTdHlsZXMiLCAic2hvdy11c2VyLWFnZW50LXN0eWxlcyIs
IHRydWUpOwogICAgIFdlYkluc3BlY3Rvci5hcHBsaWNhdGlvblNldHRpbmdzLl9pbnN0YWxsU2V0
dGluZygicmVzb3VyY2VWaWV3VGFiIiwgInJlc291cmNlLXZpZXctdGFiIiwgImNvbnRlbnQiKTsK
ICAgICBXZWJJbnNwZWN0b3IuYXBwbGljYXRpb25TZXR0aW5ncy5faW5zdGFsbFNldHRpbmcoImNv
bnNvbGVIaXN0b3J5IiwgImNvbnNvbGUtaGlzdG9yeSIsIFtdKTsKKworICAgIFdlYkluc3BlY3Rv
ci5hcHBsaWNhdGlvblNldHRpbmdzLl9pbnN0YWxsU2V0dGluZygiZWxlbWVudHNTaWRlYmFyV2lk
dGgiLCAiZWxlbWVudHMtc2lkZWJhci13aWR0aCIsIHVuZGVmaW5lZCk7CisgICAgV2ViSW5zcGVj
dG9yLmFwcGxpY2F0aW9uU2V0dGluZ3MuX2luc3RhbGxTZXR0aW5nKCJyZXNvdXJjZXNTaWRlYmFy
V2lkdGgiLCAicmVzb3VyY2VzLXNpZGViYXItd2lkdGgiLCB1bmRlZmluZWQpOworICAgIFdlYklu
c3BlY3Rvci5hcHBsaWNhdGlvblNldHRpbmdzLl9pbnN0YWxsU2V0dGluZygic2NyaXB0c1NpZGVi
YXJXaWR0aCIsICJzY3JpcHRzLXNpZGViYXItd2lkdGgiLCB1bmRlZmluZWQpOworICAgIFdlYklu
c3BlY3Rvci5hcHBsaWNhdGlvblNldHRpbmdzLl9pbnN0YWxsU2V0dGluZygiYXVkaXRzU2lkZWJh
cldpZHRoIiwgImF1ZGl0cy1zaWRlYmFyLXdpZHRoIiwgdW5kZWZpbmVkKTsKKyAgICBXZWJJbnNw
ZWN0b3IuYXBwbGljYXRpb25TZXR0aW5ncy5faW5zdGFsbFNldHRpbmcoInN0b3JhZ2VTaWRlYmFy
V2lkdGgiLCAic3RvcmFnZS1zaWRlYmFyLXdpZHRoIiwgdW5kZWZpbmVkKTsKKyAgICBXZWJJbnNw
ZWN0b3IuYXBwbGljYXRpb25TZXR0aW5ncy5faW5zdGFsbFNldHRpbmcoInRpbWVsaW5lU2lkZWJh
cldpZHRoIiwgInRpbWVsaW5lLXNpZGViYXItd2lkdGgiLCB1bmRlZmluZWQpOworICAgIFdlYklu
c3BlY3Rvci5hcHBsaWNhdGlvblNldHRpbmdzLl9pbnN0YWxsU2V0dGluZygicHJvZmlsZXNTaWRl
YmFyV2lkdGgiLCAicHJvZmlsZXMtc2lkZWJhci13aWR0aCIsIHVuZGVmaW5lZCk7CisKICAgICBX
ZWJJbnNwZWN0b3IuYXBwbGljYXRpb25TZXR0aW5ncy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
ImxvYWRlZCIpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U3RvcmFnZVBhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0b3JhZ2VQYW5l
bC5qcwppbmRleCBiMzdkMDI5MTI4M2FkNmEzYmE2ZTEwMmU0ODVmZGExMTQ4Y2I0ODdiLi4yNzMz
OTA3ZmFkODFhMDc5NzI0YWRhMTI0ZjdlODZmMDFhNTA0ODg1IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU3RvcmFnZVBhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TdG9yYWdlUGFuZWwuanMKQEAgLTI5LDcgKzI5LDcgQEAKIAogV2ViSW5z
cGVjdG9yLlN0b3JhZ2VQYW5lbCA9IGZ1bmN0aW9uKGRhdGFiYXNlKQogewotICAgIFdlYkluc3Bl
Y3Rvci5QYW5lbC5jYWxsKHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMs
ICJzdG9yYWdlIik7CiAKICAgICB0aGlzLmNyZWF0ZVNpZGViYXIoKTsKIApAQCAtNjQsOCArNjQs
NiBAQCBXZWJJbnNwZWN0b3IuU3RvcmFnZVBhbmVsID0gZnVuY3Rpb24oZGF0YWJhc2UpCiB9CiAK
IFdlYkluc3BlY3Rvci5TdG9yYWdlUGFuZWwucHJvdG90eXBlID0gewotICAgIHRvb2xiYXJJdGVt
Q2xhc3M6ICJzdG9yYWdlIiwKLQogICAgIGdldCB0b29sYmFySXRlbUxhYmVsKCkKICAgICB7CiAg
ICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0b3JhZ2UiKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXggMjllZmQ3OTRmMDdm
NDE4MjM1ZGQ3Zjk0MjVlNTEyY2U5N2M5NTc1Zi4uMWYxMjYyNTRjYjE5MmYzOTE1M2EwNWRkNTE0
YmJjMjE1YWExNjcxMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
UGFuZWwuanMKQEAgLTMwLDggKzMwLDcgQEAKIAogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwg
PSBmdW5jdGlvbigpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcyk7Ci0gICAg
dGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInRpbWVsaW5lIik7CisgICAgV2ViSW5zcGVjdG9y
LlBhbmVsLmNhbGwodGhpcywgInRpbWVsaW5lIik7CiAKICAgICB0aGlzLmVsZW1lbnQuYXBwZW5k
Q2hpbGQodGhpcy5fY3JlYXRlVG9wUGFuZSgpKTsKICAgICB0aGlzLmVsZW1lbnQudGFiSW5kZXgg
PSAwOwpAQCAtMTA2LDggKzEwNSw2IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnJvd0hl
aWdodCA9IDE4OwogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuc2hvcnRSZWNvcmRUaHJlc2hv
bGQgPSAwLjAxNTsKIAogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewot
ICAgIHRvb2xiYXJJdGVtQ2xhc3M6ICJ0aW1lbGluZSIsCi0KICAgICBfY3JlYXRlVG9wUGFuZTog
ZnVuY3Rpb24oKSB7CiAgICAgICAgIHZhciB0b3BQYW5lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICB0b3BQYW5lRWxlbWVudC5pZCA9ICJ0aW1lbGluZS1v
dmVydmlldy1wYW5lbCI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60706</attachid>
            <date>2010-07-07 01:53:21 -0700</date>
            <delta_ts>2010-07-07 02:15:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-19207-20100707125319.patch</filename>
            <type>text/plain</type>
            <size>16963</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDM3ZDdjZGExYjJlNmY2OWFlMWNiMmVmM2RhYTUzY2ExN2VhOTQ3My4uMzc4ODVhMDg2NmQ4N2Zm
YzU4NGUxZTM1MjFmZTA1NDc0YmUyODk4ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxMC0wNy0wNiAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnNwZWN0b3Igc2hvdWxkIHJlbWVtYmVyIHRo
ZSBzaXplIG9mIHNpZGViYXJzIHNldCBieSB0aGUgdXNlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyMDcKKworICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvQWJzdHJhY3RUaW1lbGluZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkFic3RyYWN0VGltZWxpbmVQYW5lbCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9B
dWRpdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdHNQYW5lbCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlUGFuZWwuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29uc29sZVBhbmVsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Vs
ZW1lbnRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90
b3R5cGUucmlnaHRTaWRlYmFyUmVzaXplckRyYWdFbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5nZXQgdG9vbGJhckl0ZW1DbGFzcyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNob3cpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5jcmVhdGVTaWRlYmFyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuZ2V0IF9zaWRlYmFyV2lkdGhTZXR0aW5nTmFtZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLl9lbmRTaWRlYmFyRHJhZ2dpbmcp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS51cGRhdGVTaWRlYmFyV2lk
dGgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5yZXN0b3JlU2lkZWJh
cldpZHRoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuc2F2ZVNpZGVi
YXJXaWR0aCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnBy
b3RvdHlwZS5yZXNvdXJjZVRyYWNraW5nV2FzRW5hYmxlZCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9l
bmRTaWRlYmFyUmVzaXplRHJhZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZS5fc2lkZWJhclJlc2l6ZURyYWcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUuc2V0U2lkZWJhcldpZHRoKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLnBvcHVsYXRl
QXBwbGljYXRpb25TZXR0aW5ncyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TdG9y
YWdlUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3RvcmFnZVBhbmVsKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQYW5lbCk6CisKIDIwMTAtMDctMDYgIE1hcmsgUm93ZSAgPG1yb3dl
QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggcHJvZHVjdGlvbiBidWlsZHMgb24gTWFjIE9TIFgu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWJzdHJhY3RUaW1lbGlu
ZVBhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Fic3RyYWN0VGltZWxpbmVQ
YW5lbC5qcwppbmRleCBlYjllYTg4NzhlMWE2NGQ2MjJmZDA5NzJlMjgyMDQyMmNlYzkxMjA2Li4x
YjVmNmNlNmM2ZWEzODZkOWNjMWQ3ZDhjNmJhYjI5ZWMyZTY4ZWI2IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWJzdHJhY3RUaW1lbGluZVBhbmVsLmpzCisrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BYnN0cmFjdFRpbWVsaW5lUGFuZWwuanMKQEAgLTI4
LDkgKzI4LDkgQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLkFic3RyYWN0VGlt
ZWxpbmVQYW5lbCA9IGZ1bmN0aW9uKCkKK1dlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lUGFu
ZWwgPSBmdW5jdGlvbihuYW1lKQogewotICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMp
OworICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMsIG5hbWUpOwogICAgIHRoaXMuX2l0
ZW1zID0gW107CiAgICAgdGhpcy5fc3RhbGVJdGVtcyA9IFtdOwogfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCmluZGV4IDQ4MWRmODBmYzgxOTI2OTU4ODc2ODhh
Mjc1MGJlYzZmMGRhMWMyODguLmJjN2YzYjNjYjUyYmQzM2JlMmYyNDNiOTNjZWRmZDQ4ODY4MmZj
MzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5q
cworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMKQEAgLTMw
LDcgKzMwLDcgQEAKIAogV2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVsID0gZnVuY3Rpb24oKQogewot
ICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5QYW5l
bC5jYWxsKHRoaXMsICJhdWRpdHMiKTsKIAogICAgIHRoaXMuX2NvbnN0cnVjdENhdGVnb3JpZXMo
KTsKIApAQCAtNDcsOCArNDcsNiBAQCBXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwgPSBmdW5jdGlv
bigpCiAgICAgdGhpcy5zaWRlYmFyVHJlZS5hcHBlbmRDaGlsZCh0aGlzLmF1ZGl0UmVzdWx0c1Ry
ZWVFbGVtZW50KTsKICAgICB0aGlzLmF1ZGl0UmVzdWx0c1RyZWVFbGVtZW50LmV4cGFuZCgpOwog
Ci0gICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImF1ZGl0cyIpOwotCiAgICAgdGhpcy5j
bGVhclJlc3VsdHNCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkNsZWFyIGF1ZGl0IHJlc3VsdHMuIiksICJjbGVhci1zdGF0dXMt
YmFyLWl0ZW0iKTsKICAgICB0aGlzLmNsZWFyUmVzdWx0c0J1dHRvbi5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIHRoaXMuX2NsZWFyQnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAK
QEAgLTYwLDggKzU4LDYgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVsID0gZnVuY3Rpb24oKQog
fQogCiBXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwucHJvdG90eXBlID0gewotICAgIHRvb2xiYXJJ
dGVtQ2xhc3M6ICJhdWRpdHMiLAotCiAgICAgZ2V0IHRvb2xiYXJJdGVtTGFiZWwoKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQXVkaXRzIik7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5qcwppbmRleCA2ZGJjNTU4NmMwM2Fi
ZGM4ZDVmNjhjYjRjNjUzMjNmOWNhNjgxMjg2Li41YTBjMmU3ODY3MzExMDkwMzA3MjMyYjgxZDBi
ODQ3ZjBkN2M2NzE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVBhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlUGFu
ZWwuanMKQEAgLTI4LDEyICsyOCwxMCBAQAogCiBXZWJJbnNwZWN0b3IuQ29uc29sZVBhbmVsID0g
ZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMpOworICAgIFdl
Ykluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMsICJjb25zb2xlIik7CiB9CiAKIFdlYkluc3BlY3Rv
ci5Db25zb2xlUGFuZWwucHJvdG90eXBlID0gewotICAgIHRvb2xiYXJJdGVtQ2xhc3M6ICJjb25z
b2xlIiwKLQogICAgIGdldCB0b29sYmFySXRlbUxhYmVsKCkKICAgICB7CiAgICAgICAgIHJldHVy
biBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvbnNvbGUiKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXggZTE3NjExMmMzMzJlM2E2ZWQ1NTlmMWNi
M2VlODQyYTVmNzEyZDU4ZC4uY2Q3Y2JkMjNjOTU0MTkzOTllNjlkZmY1YjE1YzZmMzIwZmM5MWMy
MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwu
anMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKQEAg
LTMwLDkgKzMwLDcgQEAKIAogV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwgPSBmdW5jdGlvbigp
CiB7Ci0gICAgV2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcyk7Ci0KLSAgICB0aGlzLmVsZW1l
bnQuYWRkU3R5bGVDbGFzcygiZWxlbWVudHMiKTsKKyAgICBXZWJJbnNwZWN0b3IuUGFuZWwuY2Fs
bCh0aGlzLCAiZWxlbWVudHMiKTsKIAogICAgIHRoaXMuY29udGVudEVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmlkID0gImVs
ZW1lbnRzLWNvbnRlbnQiOwpAQCAtMTE0LDggKzExMiw2IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50
c1BhbmVsID0gZnVuY3Rpb24oKQogfQogCiBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90
b3R5cGUgPSB7Ci0gICAgdG9vbGJhckl0ZW1DbGFzczogImVsZW1lbnRzIiwKLQogICAgIGdldCB0
b29sYmFySXRlbUxhYmVsKCkKICAgICB7CiAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkVsZW1lbnRzIik7CkBAIC0xMTIxLDIwICsxMTE3LDIzIEBAIFdlYkluc3BlY3Rvci5F
bGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICByaWdodFNpZGViYXJSZXNpemVyRHJhZ0Vu
ZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuZWxlbWVudERy
YWdFbmQoZXZlbnQpOworICAgICAgICB0aGlzLnNhdmVTaWRlYmFyV2lkdGgoKTsKICAgICB9LAog
CiAgICAgcmlnaHRTaWRlYmFyUmVzaXplckRyYWc6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAg
ICAgICAgdmFyIHggPSBldmVudC5wYWdlWDsKICAgICAgICAgdmFyIG5ld1dpZHRoID0gTnVtYmVy
LmNvbnN0cmFpbih3aW5kb3cuaW5uZXJXaWR0aCAtIHgsIFByZWZlcmVuY2VzLm1pbkVsZW1lbnRz
U2lkZWJhcldpZHRoLCB3aW5kb3cuaW5uZXJXaWR0aCAqIDAuNjYpOworICAgICAgICB0aGlzLnNl
dFNpZGViYXJXaWR0aChuZXdXaWR0aCk7CisgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7
CisgICAgfSwKIAorICAgIHNldFNpZGViYXJXaWR0aDogZnVuY3Rpb24obmV3V2lkdGgpCisgICAg
ewogICAgICAgICB0aGlzLnNpZGViYXJFbGVtZW50LnN0eWxlLndpZHRoID0gbmV3V2lkdGggKyAi
cHgiOwogICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LnN0eWxlLnJpZ2h0ID0gbmV3V2lkdGgg
KyAicHgiOwogICAgICAgICB0aGlzLnNpZGViYXJSZXNpemVFbGVtZW50LnN0eWxlLnJpZ2h0ID0g
KG5ld1dpZHRoIC0gMykgKyAicHgiOwotCiAgICAgICAgIHRoaXMudHJlZU91dGxpbmUudXBkYXRl
U2VsZWN0aW9uKCk7Ci0KLSAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICB9LAog
CiAgICAgX25vZGVTZWFyY2hCdXR0b25DbGlja2VkOiBmdW5jdGlvbihldmVudCkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9QYW5lbC5qcwppbmRleCA5ZmQwYTYwZDE0YTlkN2FmZDhhNTc0ZjAxOTg2
Nzk1ZGMxNWYwZjg0Li4yMDM0M2E4ZWY3NDlkMTE3YmExNzZmNzc0Y2U4NThiZDM2ZWQwOTE1IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanMKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCkBAIC0yNiwxMSArMjYsMTMgQEAKICAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLlBhbmVsID0gZnVuY3Rpb24oKQorV2ViSW5z
cGVjdG9yLlBhbmVsID0gZnVuY3Rpb24obmFtZSkKIHsKICAgICBXZWJJbnNwZWN0b3IuVmlldy5j
YWxsKHRoaXMpOwogCiAgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInBhbmVsIik7Cisg
ICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MobmFtZSk7CisgICAgdGhpcy5fcGFuZWxOYW1l
ID0gbmFtZTsKIH0KIAogLy8gU2hvdWxkIGJ5IGluIHN5bmMgd2l0aCBzdHlsZSBkZWNsYXJhdGlv
bnMuCkBAIC01Miw4ICs1NCw3IEBAIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHRoaXMuX3Rvb2xiYXJJdGVtLmNsYXNzTmFtZSA9ICJ0b29sYmFyLWl0ZW0gdG9nZ2xl
YWJsZSI7CiAgICAgICAgIHRoaXMuX3Rvb2xiYXJJdGVtLnBhbmVsID0gdGhpczsKIAotICAgICAg
ICBpZiAoInRvb2xiYXJJdGVtQ2xhc3MiIGluIHRoaXMpCi0gICAgICAgICAgICB0aGlzLl90b29s
YmFySXRlbS5hZGRTdHlsZUNsYXNzKHRoaXMudG9vbGJhckl0ZW1DbGFzcyk7CisgICAgICAgIHRo
aXMuX3Rvb2xiYXJJdGVtLmFkZFN0eWxlQ2xhc3ModGhpcy5fcGFuZWxOYW1lKTsKIAogICAgICAg
ICB2YXIgaWNvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAg
ICAgaWNvbkVsZW1lbnQuY2xhc3NOYW1lID0gInRvb2xiYXItaWNvbiI7CkBAIC04Niw3ICs4Nyw3
IEBAIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgV2ViSW5zcGVj
dG9yLmN1cnJlbnRGb2N1c0VsZW1lbnQgPSB0aGlzLmRlZmF1bHRGb2N1c2VkRWxlbWVudDsKIAot
ICAgICAgICB0aGlzLnVwZGF0ZVNpZGViYXJXaWR0aCgpOworICAgICAgICB0aGlzLnJlc3RvcmVT
aWRlYmFyV2lkdGgoKTsKICAgICAgICAgdGhpcy5fcmVzdG9yZVNjcm9sbFBvc2l0aW9ucygpOwog
ICAgIH0sCiAKQEAgLTI5MSw3ICsyOTIsNyBAQCBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBl
ID0gewogCiAgICAgY3JlYXRlU2lkZWJhcjogZnVuY3Rpb24ocGFyZW50RWxlbWVudCwgcmVzaXpl
clBhcmVudEVsZW1lbnQpCiAgICAgewotICAgICAgICBpZiAodGhpcy5oYXNTaWRlYmFyKQorICAg
ICAgICBpZiAodGhpcy5zaWRlYmFyRWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsKIAogICAg
ICAgICBpZiAoIXBhcmVudEVsZW1lbnQpCkBAIC0zMDAsOCArMzAxLDYgQEAgV2ViSW5zcGVjdG9y
LlBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCFyZXNpemVyUGFyZW50RWxlbWVudCkK
ICAgICAgICAgICAgIHJlc2l6ZXJQYXJlbnRFbGVtZW50ID0gcGFyZW50RWxlbWVudDsKIAotICAg
ICAgICB0aGlzLmhhc1NpZGViYXIgPSB0cnVlOwotCiAgICAgICAgIHRoaXMuc2lkZWJhckVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgdGhpcy5zaWRlYmFy
RWxlbWVudC5jbGFzc05hbWUgPSAic2lkZWJhciI7CiAgICAgICAgIHBhcmVudEVsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5zaWRlYmFyRWxlbWVudCk7CkBAIC0zMTksNiArMzE4LDExIEBAIFdlYklu
c3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuc2lkZWJhclRyZWUucGFu
ZWwgPSB0aGlzOwogICAgIH0sCiAKKyAgICBfc2lkZWJhcldpZHRoU2V0dGluZ05hbWU6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9wYW5lbE5hbWUgKyAiU2lkZWJhcldp
ZHRoIjsKKyAgICB9LAorCiAgICAgX3N0YXJ0U2lkZWJhckRyYWdnaW5nOiBmdW5jdGlvbihldmVu
dCkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5lbGVtZW50RHJhZ1N0YXJ0KHRoaXMuc2lk
ZWJhclJlc2l6ZUVsZW1lbnQsIHRoaXMuX3NpZGViYXJEcmFnZ2luZy5iaW5kKHRoaXMpLCB0aGlz
Ll9lbmRTaWRlYmFyRHJhZ2dpbmcuYmluZCh0aGlzKSwgZXZlbnQsICJjb2wtcmVzaXplIik7CkBA
IC0zMzQsMTEgKzMzOCwxMiBAQCBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlID0gewogICAg
IF9lbmRTaWRlYmFyRHJhZ2dpbmc6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgV2Vi
SW5zcGVjdG9yLmVsZW1lbnREcmFnRW5kKGV2ZW50KTsKKyAgICAgICAgdGhpcy5zYXZlU2lkZWJh
cldpZHRoKCk7CiAgICAgfSwKIAogICAgIHVwZGF0ZVNpZGViYXJXaWR0aDogZnVuY3Rpb24od2lk
dGgpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuaGFzU2lkZWJhcikKKyAgICAgICAgaWYgKCF0
aGlzLnNpZGViYXJFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmICh0
aGlzLnNpZGViYXJFbGVtZW50Lm9mZnNldFdpZHRoIDw9IDApIHsKQEAgLTM2Nyw2ICszNzIsMTkg
QEAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5zaWRlYmFy
UmVzaXplRWxlbWVudC5zdHlsZS5sZWZ0ID0gKHdpZHRoIC0gMykgKyAicHgiOwogICAgIH0sCiAK
KyAgICByZXN0b3JlU2lkZWJhcldpZHRoOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIg
c2lkZWJhcldpZHRoID0gV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uU2V0dGluZ3NbdGhpcy5fc2lk
ZWJhcldpZHRoU2V0dGluZ05hbWUoKV07CisgICAgICAgIHRoaXMudXBkYXRlU2lkZWJhcldpZHRo
KHNpZGViYXJXaWR0aCk7CisgICAgfSwKKworICAgIHNhdmVTaWRlYmFyV2lkdGg6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5zaWRlYmFyRWxlbWVudCkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uU2V0dGluZ3NbdGhpcy5f
c2lkZWJhcldpZHRoU2V0dGluZ05hbWUoKV0gPSB0aGlzLnNpZGViYXJFbGVtZW50Lm9mZnNldFdp
ZHRoOworICAgIH0sCisKICAgICB1cGRhdGVNYWluVmlld1dpZHRoOiBmdW5jdGlvbih3aWR0aCkK
ICAgICB7CiAgICAgICAgIC8vIFNob3VsZCBiZSBpbXBsZW1lbnRlZCBieSBhbmNlc3RvcnMuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcyBi
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmluZGV4IGI1MTIy
YWZkNDU3ZTZhODRkYTZkNjQ5ZTIzOTc4ZWMzMDk3MGIwNmEuLjkxMWIxZGFmNjI2MTI5NmUzZTU5
NjYxYzQzMzEyOTU2OGI0M2RkNGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Qcm9maWxlc1BhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Q
cm9maWxlc1BhbmVsLmpzCkBAIC05MCwxMSArOTAsMTAgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVU
eXBlLnByb3RvdHlwZSA9IHsKIAogV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwgPSBmdW5jdGlv
bigpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcyk7CisgICAgV2ViSW5zcGVj
dG9yLlBhbmVsLmNhbGwodGhpcywgInByb2ZpbGVzIik7CiAKICAgICB0aGlzLmNyZWF0ZVNpZGVi
YXIoKTsKIAotICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJwcm9maWxlcyIpOwogICAg
IHRoaXMuX3Byb2ZpbGVUeXBlc0J5SWRNYXAgPSB7fTsKICAgICB0aGlzLl9wcm9maWxlVHlwZUJ1
dHRvbnNCeUlkTWFwID0ge307CiAKQEAgLTEyOCw4ICsxMjcsNiBAQCBXZWJJbnNwZWN0b3IuUHJv
ZmlsZXNQYW5lbCA9IGZ1bmN0aW9uKCkKIH0KIAogV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwu
cHJvdG90eXBlID0gewotICAgIHRvb2xiYXJJdGVtQ2xhc3M6ICJwcm9maWxlcyIsCi0KICAgICBn
ZXQgdG9vbGJhckl0ZW1MYWJlbCgpCiAgICAgewogICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJQcm9maWxlcyIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlc1BhbmVsLmpzCmluZGV4IGVmNmFhMjZmNjRmYmJjZDQyNzMwZmExNTg5NTI3Yjk2Yjg3
ZTcxMjMuLjEyY2JjMTg4NWIxMjkwZjM3YWY2MjQ5ODVkMDBmN2U1Mjc2NTk0YTYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcworKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKQEAgLTI5LDkgKzI5
LDcgQEAKIAogV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsID0gZnVuY3Rpb24oKQogewotICAg
IFdlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lUGFuZWwuY2FsbCh0aGlzKTsKLQotICAgIHRo
aXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJyZXNvdXJjZXMiKTsKKyAgICBXZWJJbnNwZWN0b3Iu
QWJzdHJhY3RUaW1lbGluZVBhbmVsLmNhbGwodGhpcywgInJlc291cmNlcyIpOwogCiAgICAgdGhp
cy5fY3JlYXRlUGFuZWxFbmFibGVyKCk7CiAKQEAgLTUxLDggKzQ5LDYgQEAgV2ViSW5zcGVjdG9y
LlJlc291cmNlc1BhbmVsID0gZnVuY3Rpb24oKQogfQogCiBXZWJJbnNwZWN0b3IuUmVzb3VyY2Vz
UGFuZWwucHJvdG90eXBlID0gewotICAgIHRvb2xiYXJJdGVtQ2xhc3M6ICJyZXNvdXJjZXMiLAot
CiAgICAgZ2V0IHRvb2xiYXJJdGVtTGFiZWwoKQogICAgIHsKICAgICAgICAgcmV0dXJuIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiUmVzb3VyY2VzIik7CkBAIC0zMTksNiArMzE1LDcgQEAgV2ViSW5z
cGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHRoaXMu
X3Jlc291cmNlVHJhY2tpbmdFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgdGhpcy5yZXNldCgpOwor
ICAgICAgICB0aGlzLnJlc3RvcmVTaWRlYmFyV2lkdGgoKTsKICAgICB9LAogCiAgICAgcmVzb3Vy
Y2VUcmFja2luZ1dhc0Rpc2FibGVkOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCA1NTYzYjkzMTMyMTFmYWU3ZjlkZjVkY2YzYmFk
OWFjMDYyZTk4MDcxLi41M2FlNTAxNWI1NzZjMDAyOThkOTUxMDZiNjQ1NTNlMGZjYzQ5M2M0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTI1LDkg
KzI1LDcgQEAKIAogV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCA9IGZ1bmN0aW9uKCkKIHsKLSAg
ICBXZWJJbnNwZWN0b3IuUGFuZWwuY2FsbCh0aGlzKTsKLQotICAgIHRoaXMuZWxlbWVudC5hZGRT
dHlsZUNsYXNzKCJzY3JpcHRzIik7CisgICAgV2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcywg
InNjcmlwdHMiKTsKIAogICAgIHRoaXMudG9wU3RhdHVzQmFyID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CiAgICAgdGhpcy50b3BTdGF0dXNCYXIuY2xhc3NOYW1lID0gInN0YXR1cy1i
YXIiOwpAQCAtMTg0LDggKzE4Miw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuUGF1c2VP
bkV4Y2VwdGlvbnNTdGF0ZSA9IHsKIH07CiAKIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJv
dG90eXBlID0gewotICAgIHRvb2xiYXJJdGVtQ2xhc3M6ICJzY3JpcHRzIiwKLQogICAgIGdldCB0
b29sYmFySXRlbUxhYmVsKCkKICAgICB7CiAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlNjcmlwdHMiKTsKQEAgLTc5NCwxNSArNzkwLDIwIEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwucHJvdG90eXBlID0gewogICAgIF9lbmRTaWRlYmFyUmVzaXplRHJhZzogZnVuY3Rp
b24oZXZlbnQpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuZWxlbWVudERyYWdFbmQoZXZl
bnQpOwotCiAgICAgICAgIGRlbGV0ZSB0aGlzLl9kcmFnT2Zmc2V0OworICAgICAgICB0aGlzLnNh
dmVTaWRlYmFyV2lkdGgoKTsKICAgICB9LAogCiAgICAgX3NpZGViYXJSZXNpemVEcmFnOiBmdW5j
dGlvbihldmVudCkKICAgICB7CiAgICAgICAgIHZhciB4ID0gZXZlbnQucGFnZVggKyB0aGlzLl9k
cmFnT2Zmc2V0OwogICAgICAgICB2YXIgbmV3V2lkdGggPSBOdW1iZXIuY29uc3RyYWluKHdpbmRv
dy5pbm5lcldpZHRoIC0geCwgUHJlZmVyZW5jZXMubWluU2NyaXB0c1NpZGViYXJXaWR0aCwgd2lu
ZG93LmlubmVyV2lkdGggKiAwLjY2KTsKKyAgICAgICAgdGhpcy5zZXRTaWRlYmFyV2lkdGgobmV3
V2lkdGgpOworICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0sCiAKKyAgICBz
ZXRTaWRlYmFyV2lkdGg6IGZ1bmN0aW9uKG5ld1dpZHRoKQorICAgIHsKICAgICAgICAgdGhpcy5z
aWRlYmFyRWxlbWVudC5zdHlsZS53aWR0aCA9IG5ld1dpZHRoICsgInB4IjsKICAgICAgICAgdGhp
cy5zaWRlYmFyQnV0dG9uc0VsZW1lbnQuc3R5bGUud2lkdGggPSBuZXdXaWR0aCArICJweCI7CiAg
ICAgICAgIHRoaXMudmlld3NDb250YWluZXJFbGVtZW50LnN0eWxlLnJpZ2h0ID0gbmV3V2lkdGgg
KyAicHgiOwpAQCAtODEwLDkgKzgxMSw4IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJv
dG90eXBlID0gewogICAgICAgICB0aGlzLnNpZGViYXJSZXNpemVFbGVtZW50LnN0eWxlLnJpZ2h0
ID0gKG5ld1dpZHRoIC0gMykgKyAicHgiOwogCiAgICAgICAgIHRoaXMucmVzaXplKCk7Ci0gICAg
ICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgfSwKLSAgICAKKwogICAgIHVwZGF0ZVBh
dXNlT25FeGNlcHRpb25zU3RhdGU6IGZ1bmN0aW9uKHBhdXNlT25FeGNlcHRpb25zU3RhdGUpCiAg
ICAgewogICAgICAgICBpZiAocGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSA9PSBXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsLlBhdXNlT25FeGNlcHRpb25zU3RhdGUuRG9udFBhdXNlT25FeGNlcHRpb25z
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IGM3ZmM1YTk1ODk5
ODNhZDI0ODY4OTI4ZDNjNzA4MzA1ZDA2Yjg1M2MuLmJjZGRhMWEzODg0OWE0NWM1MjQyZjVmNjQy
NmVjMmI4ZTZhZTEyMzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
ZXR0aW5ncy5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMK
QEAgLTU3LDYgKzU3LDE1IEBAIFdlYkluc3BlY3Rvci5wb3B1bGF0ZUFwcGxpY2F0aW9uU2V0dGlu
Z3MgPSBmdW5jdGlvbihzZXR0aW5nc1N0cmluZykKICAgICBXZWJJbnNwZWN0b3IuYXBwbGljYXRp
b25TZXR0aW5ncy5faW5zdGFsbFNldHRpbmcoInNob3dVc2VyQWdlbnRTdHlsZXMiLCAic2hvdy11
c2VyLWFnZW50LXN0eWxlcyIsIHRydWUpOwogICAgIFdlYkluc3BlY3Rvci5hcHBsaWNhdGlvblNl
dHRpbmdzLl9pbnN0YWxsU2V0dGluZygicmVzb3VyY2VWaWV3VGFiIiwgInJlc291cmNlLXZpZXct
dGFiIiwgImNvbnRlbnQiKTsKICAgICBXZWJJbnNwZWN0b3IuYXBwbGljYXRpb25TZXR0aW5ncy5f
aW5zdGFsbFNldHRpbmcoImNvbnNvbGVIaXN0b3J5IiwgImNvbnNvbGUtaGlzdG9yeSIsIFtdKTsK
KworICAgIFdlYkluc3BlY3Rvci5hcHBsaWNhdGlvblNldHRpbmdzLl9pbnN0YWxsU2V0dGluZygi
ZWxlbWVudHNTaWRlYmFyV2lkdGgiLCAiZWxlbWVudHMtc2lkZWJhci13aWR0aCIsIHVuZGVmaW5l
ZCk7CisgICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uU2V0dGluZ3MuX2luc3RhbGxTZXR0aW5n
KCJyZXNvdXJjZXNTaWRlYmFyV2lkdGgiLCAicmVzb3VyY2VzLXNpZGViYXItd2lkdGgiLCB1bmRl
ZmluZWQpOworICAgIFdlYkluc3BlY3Rvci5hcHBsaWNhdGlvblNldHRpbmdzLl9pbnN0YWxsU2V0
dGluZygic2NyaXB0c1NpZGViYXJXaWR0aCIsICJzY3JpcHRzLXNpZGViYXItd2lkdGgiLCB1bmRl
ZmluZWQpOworICAgIFdlYkluc3BlY3Rvci5hcHBsaWNhdGlvblNldHRpbmdzLl9pbnN0YWxsU2V0
dGluZygiYXVkaXRzU2lkZWJhcldpZHRoIiwgImF1ZGl0cy1zaWRlYmFyLXdpZHRoIiwgdW5kZWZp
bmVkKTsKKyAgICBXZWJJbnNwZWN0b3IuYXBwbGljYXRpb25TZXR0aW5ncy5faW5zdGFsbFNldHRp
bmcoInN0b3JhZ2VTaWRlYmFyV2lkdGgiLCAic3RvcmFnZS1zaWRlYmFyLXdpZHRoIiwgdW5kZWZp
bmVkKTsKKyAgICBXZWJJbnNwZWN0b3IuYXBwbGljYXRpb25TZXR0aW5ncy5faW5zdGFsbFNldHRp
bmcoInRpbWVsaW5lU2lkZWJhcldpZHRoIiwgInRpbWVsaW5lLXNpZGViYXItd2lkdGgiLCB1bmRl
ZmluZWQpOworICAgIFdlYkluc3BlY3Rvci5hcHBsaWNhdGlvblNldHRpbmdzLl9pbnN0YWxsU2V0
dGluZygicHJvZmlsZXNTaWRlYmFyV2lkdGgiLCAicHJvZmlsZXMtc2lkZWJhci13aWR0aCIsIHVu
ZGVmaW5lZCk7CisKICAgICBXZWJJbnNwZWN0b3IuYXBwbGljYXRpb25TZXR0aW5ncy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoImxvYWRlZCIpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU3RvcmFnZVBhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1N0b3JhZ2VQYW5lbC5qcwppbmRleCBiMzdkMDI5MTI4M2FkNmEzYmE2ZTEwMmU0ODVm
ZGExMTQ4Y2I0ODdiLi4yNzMzOTA3ZmFkODFhMDc5NzI0YWRhMTI0ZjdlODZmMDFhNTA0ODg1IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3RvcmFnZVBhbmVsLmpzCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdG9yYWdlUGFuZWwuanMKQEAgLTI5LDcg
KzI5LDcgQEAKIAogV2ViSW5zcGVjdG9yLlN0b3JhZ2VQYW5lbCA9IGZ1bmN0aW9uKGRhdGFiYXNl
KQogewotICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMpOworICAgIFdlYkluc3BlY3Rv
ci5QYW5lbC5jYWxsKHRoaXMsICJzdG9yYWdlIik7CiAKICAgICB0aGlzLmNyZWF0ZVNpZGViYXIo
KTsKIApAQCAtNjQsOCArNjQsNiBAQCBXZWJJbnNwZWN0b3IuU3RvcmFnZVBhbmVsID0gZnVuY3Rp
b24oZGF0YWJhc2UpCiB9CiAKIFdlYkluc3BlY3Rvci5TdG9yYWdlUGFuZWwucHJvdG90eXBlID0g
ewotICAgIHRvb2xiYXJJdGVtQ2xhc3M6ICJzdG9yYWdlIiwKLQogICAgIGdldCB0b29sYmFySXRl
bUxhYmVsKCkKICAgICB7CiAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0
b3JhZ2UiKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGlu
ZVBhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMK
aW5kZXggMjllZmQ3OTRmMDdmNDE4MjM1ZGQ3Zjk0MjVlNTEyY2U5N2M5NTc1Zi4uMWYxMjYyNTRj
YjE5MmYzOTE1M2EwNWRkNTE0YmJjMjE1YWExNjcxMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTMwLDggKzMwLDcgQEAKIAogV2ViSW5zcGVj
dG9yLlRpbWVsaW5lUGFuZWwgPSBmdW5jdGlvbigpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlBhbmVs
LmNhbGwodGhpcyk7Ci0gICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInRpbWVsaW5lIik7
CisgICAgV2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcywgInRpbWVsaW5lIik7CiAKICAgICB0
aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlVG9wUGFuZSgpKTsKICAgICB0aGlz
LmVsZW1lbnQudGFiSW5kZXggPSAwOwpAQCAtMTA2LDggKzEwNSw2IEBAIFdlYkluc3BlY3Rvci5U
aW1lbGluZVBhbmVsLnJvd0hlaWdodCA9IDE4OwogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwu
c2hvcnRSZWNvcmRUaHJlc2hvbGQgPSAwLjAxNTsKIAogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFu
ZWwucHJvdG90eXBlID0gewotICAgIHRvb2xiYXJJdGVtQ2xhc3M6ICJ0aW1lbGluZSIsCi0KICAg
ICBfY3JlYXRlVG9wUGFuZTogZnVuY3Rpb24oKSB7CiAgICAgICAgIHZhciB0b3BQYW5lRWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICB0b3BQYW5lRWxlbWVu
dC5pZCA9ICJ0aW1lbGluZS1vdmVydmlldy1wYW5lbCI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60709</attachid>
            <date>2010-07-07 02:15:22 -0700</date>
            <delta_ts>2010-07-07 02:49:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-19207-20100707131520.patch</filename>
            <type>text/plain</type>
            <size>19075</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDM3ZDdjZGExYjJlNmY2OWFlMWNiMmVmM2RhYTUzY2ExN2VhOTQ3My4uMzc4ODVhMDg2NmQ4N2Zm
YzU4NGUxZTM1MjFmZTA1NDc0YmUyODk4ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxMC0wNy0wNiAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnNwZWN0b3Igc2hvdWxkIHJlbWVtYmVyIHRo
ZSBzaXplIG9mIHNpZGViYXJzIHNldCBieSB0aGUgdXNlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyMDcKKworICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvQWJzdHJhY3RUaW1lbGluZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkFic3RyYWN0VGltZWxpbmVQYW5lbCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9B
dWRpdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdHNQYW5lbCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlUGFuZWwuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29uc29sZVBhbmVsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Vs
ZW1lbnRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90
b3R5cGUucmlnaHRTaWRlYmFyUmVzaXplckRyYWdFbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5nZXQgdG9vbGJhckl0ZW1DbGFzcyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNob3cpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5jcmVhdGVTaWRlYmFyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuZ2V0IF9zaWRlYmFyV2lkdGhTZXR0aW5nTmFtZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLl9lbmRTaWRlYmFyRHJhZ2dpbmcp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS51cGRhdGVTaWRlYmFyV2lk
dGgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5yZXN0b3JlU2lkZWJh
cldpZHRoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuc2F2ZVNpZGVi
YXJXaWR0aCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnBy
b3RvdHlwZS5yZXNvdXJjZVRyYWNraW5nV2FzRW5hYmxlZCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9l
bmRTaWRlYmFyUmVzaXplRHJhZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZS5fc2lkZWJhclJlc2l6ZURyYWcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUuc2V0U2lkZWJhcldpZHRoKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLnBvcHVsYXRl
QXBwbGljYXRpb25TZXR0aW5ncyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TdG9y
YWdlUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3RvcmFnZVBhbmVsKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQYW5lbCk6CisKIDIwMTAtMDctMDYgIE1hcmsgUm93ZSAgPG1yb3dl
QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggcHJvZHVjdGlvbiBidWlsZHMgb24gTWFjIE9TIFgu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWJzdHJhY3RUaW1lbGlu
ZVBhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Fic3RyYWN0VGltZWxpbmVQ
YW5lbC5qcwppbmRleCBlYjllYTg4NzhlMWE2NGQ2MjJmZDA5NzJlMjgyMDQyMmNlYzkxMjA2Li4x
YjVmNmNlNmM2ZWEzODZkOWNjMWQ3ZDhjNmJhYjI5ZWMyZTY4ZWI2IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWJzdHJhY3RUaW1lbGluZVBhbmVsLmpzCisrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BYnN0cmFjdFRpbWVsaW5lUGFuZWwuanMKQEAgLTI4
LDkgKzI4LDkgQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLkFic3RyYWN0VGlt
ZWxpbmVQYW5lbCA9IGZ1bmN0aW9uKCkKK1dlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lUGFu
ZWwgPSBmdW5jdGlvbihuYW1lKQogewotICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMp
OworICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMsIG5hbWUpOwogICAgIHRoaXMuX2l0
ZW1zID0gW107CiAgICAgdGhpcy5fc3RhbGVJdGVtcyA9IFtdOwogfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCmluZGV4IDQ4MWRmODBmYzgxOTI2OTU4ODc2ODhh
Mjc1MGJlYzZmMGRhMWMyODguLmJjN2YzYjNjYjUyYmQzM2JlMmYyNDNiOTNjZWRmZDQ4ODY4MmZj
MzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5q
cworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMKQEAgLTMw
LDcgKzMwLDcgQEAKIAogV2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVsID0gZnVuY3Rpb24oKQogewot
ICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5QYW5l
bC5jYWxsKHRoaXMsICJhdWRpdHMiKTsKIAogICAgIHRoaXMuX2NvbnN0cnVjdENhdGVnb3JpZXMo
KTsKIApAQCAtNDcsOCArNDcsNiBAQCBXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwgPSBmdW5jdGlv
bigpCiAgICAgdGhpcy5zaWRlYmFyVHJlZS5hcHBlbmRDaGlsZCh0aGlzLmF1ZGl0UmVzdWx0c1Ry
ZWVFbGVtZW50KTsKICAgICB0aGlzLmF1ZGl0UmVzdWx0c1RyZWVFbGVtZW50LmV4cGFuZCgpOwog
Ci0gICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImF1ZGl0cyIpOwotCiAgICAgdGhpcy5j
bGVhclJlc3VsdHNCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkNsZWFyIGF1ZGl0IHJlc3VsdHMuIiksICJjbGVhci1zdGF0dXMt
YmFyLWl0ZW0iKTsKICAgICB0aGlzLmNsZWFyUmVzdWx0c0J1dHRvbi5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIHRoaXMuX2NsZWFyQnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAK
QEAgLTYwLDggKzU4LDYgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVsID0gZnVuY3Rpb24oKQog
fQogCiBXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwucHJvdG90eXBlID0gewotICAgIHRvb2xiYXJJ
dGVtQ2xhc3M6ICJhdWRpdHMiLAotCiAgICAgZ2V0IHRvb2xiYXJJdGVtTGFiZWwoKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQXVkaXRzIik7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5qcwppbmRleCA2ZGJjNTU4NmMwM2Fi
ZGM4ZDVmNjhjYjRjNjUzMjNmOWNhNjgxMjg2Li41YTBjMmU3ODY3MzExMDkwMzA3MjMyYjgxZDBi
ODQ3ZjBkN2M2NzE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVBhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlUGFu
ZWwuanMKQEAgLTI4LDEyICsyOCwxMCBAQAogCiBXZWJJbnNwZWN0b3IuQ29uc29sZVBhbmVsID0g
ZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMpOworICAgIFdl
Ykluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMsICJjb25zb2xlIik7CiB9CiAKIFdlYkluc3BlY3Rv
ci5Db25zb2xlUGFuZWwucHJvdG90eXBlID0gewotICAgIHRvb2xiYXJJdGVtQ2xhc3M6ICJjb25z
b2xlIiwKLQogICAgIGdldCB0b29sYmFySXRlbUxhYmVsKCkKICAgICB7CiAgICAgICAgIHJldHVy
biBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvbnNvbGUiKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXggZTE3NjExMmMzMzJlM2E2ZWQ1NTlmMWNi
M2VlODQyYTVmNzEyZDU4ZC4uY2Q3Y2JkMjNjOTU0MTkzOTllNjlkZmY1YjE1YzZmMzIwZmM5MWMy
MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwu
anMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKQEAg
LTMwLDkgKzMwLDcgQEAKIAogV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwgPSBmdW5jdGlvbigp
CiB7Ci0gICAgV2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcyk7Ci0KLSAgICB0aGlzLmVsZW1l
bnQuYWRkU3R5bGVDbGFzcygiZWxlbWVudHMiKTsKKyAgICBXZWJJbnNwZWN0b3IuUGFuZWwuY2Fs
bCh0aGlzLCAiZWxlbWVudHMiKTsKIAogICAgIHRoaXMuY29udGVudEVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmlkID0gImVs
ZW1lbnRzLWNvbnRlbnQiOwpAQCAtMTE0LDggKzExMiw2IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50
c1BhbmVsID0gZnVuY3Rpb24oKQogfQogCiBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90
b3R5cGUgPSB7Ci0gICAgdG9vbGJhckl0ZW1DbGFzczogImVsZW1lbnRzIiwKLQogICAgIGdldCB0
b29sYmFySXRlbUxhYmVsKCkKICAgICB7CiAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkVsZW1lbnRzIik7CkBAIC0xMTIxLDIwICsxMTE3LDIzIEBAIFdlYkluc3BlY3Rvci5F
bGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICByaWdodFNpZGViYXJSZXNpemVyRHJhZ0Vu
ZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuZWxlbWVudERy
YWdFbmQoZXZlbnQpOworICAgICAgICB0aGlzLnNhdmVTaWRlYmFyV2lkdGgoKTsKICAgICB9LAog
CiAgICAgcmlnaHRTaWRlYmFyUmVzaXplckRyYWc6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAg
ICAgICAgdmFyIHggPSBldmVudC5wYWdlWDsKICAgICAgICAgdmFyIG5ld1dpZHRoID0gTnVtYmVy
LmNvbnN0cmFpbih3aW5kb3cuaW5uZXJXaWR0aCAtIHgsIFByZWZlcmVuY2VzLm1pbkVsZW1lbnRz
U2lkZWJhcldpZHRoLCB3aW5kb3cuaW5uZXJXaWR0aCAqIDAuNjYpOworICAgICAgICB0aGlzLnNl
dFNpZGViYXJXaWR0aChuZXdXaWR0aCk7CisgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7
CisgICAgfSwKIAorICAgIHNldFNpZGViYXJXaWR0aDogZnVuY3Rpb24obmV3V2lkdGgpCisgICAg
ewogICAgICAgICB0aGlzLnNpZGViYXJFbGVtZW50LnN0eWxlLndpZHRoID0gbmV3V2lkdGggKyAi
cHgiOwogICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LnN0eWxlLnJpZ2h0ID0gbmV3V2lkdGgg
KyAicHgiOwogICAgICAgICB0aGlzLnNpZGViYXJSZXNpemVFbGVtZW50LnN0eWxlLnJpZ2h0ID0g
KG5ld1dpZHRoIC0gMykgKyAicHgiOwotCiAgICAgICAgIHRoaXMudHJlZU91dGxpbmUudXBkYXRl
U2VsZWN0aW9uKCk7Ci0KLSAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICB9LAog
CiAgICAgX25vZGVTZWFyY2hCdXR0b25DbGlja2VkOiBmdW5jdGlvbihldmVudCkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9QYW5lbC5qcwppbmRleCA5ZmQwYTYwZDE0YTlkN2FmZDhhNTc0ZjAxOTg2
Nzk1ZGMxNWYwZjg0Li4yZmEwZDM0Y2RhNDEzODJlYjEwYzk2MmI2MmZlNTlmYzZiOWFiOWFiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanMKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCkBAIC0yNiwxMSArMjYsMTUgQEAKICAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLlBhbmVsID0gZnVuY3Rpb24oKQorV2ViSW5z
cGVjdG9yLlBhbmVsID0gZnVuY3Rpb24obmFtZSkKIHsKICAgICBXZWJJbnNwZWN0b3IuVmlldy5j
YWxsKHRoaXMpOwogCiAgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInBhbmVsIik7Cisg
ICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MobmFtZSk7CisgICAgdGhpcy5fcGFuZWxOYW1l
ID0gbmFtZTsKKworICAgIFdlYkluc3BlY3Rvci5hcHBsaWNhdGlvblNldHRpbmdzLmluc3RhbGxT
ZXR0aW5nKHRoaXMuX3NpZGViYXJXaWR0aFNldHRpbmdOYW1lKCksIHRoaXMuX3BhbmVsTmFtZSAr
ICItc2lkZWJhci13aWR0aCIsIHVuZGVmaW5lZCk7CiB9CiAKIC8vIFNob3VsZCBieSBpbiBzeW5j
IHdpdGggc3R5bGUgZGVjbGFyYXRpb25zLgpAQCAtNTIsOCArNTYsNyBAQCBXZWJJbnNwZWN0b3Iu
UGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl90b29sYmFySXRlbS5jbGFzc05hbWUg
PSAidG9vbGJhci1pdGVtIHRvZ2dsZWFibGUiOwogICAgICAgICB0aGlzLl90b29sYmFySXRlbS5w
YW5lbCA9IHRoaXM7CiAKLSAgICAgICAgaWYgKCJ0b29sYmFySXRlbUNsYXNzIiBpbiB0aGlzKQot
ICAgICAgICAgICAgdGhpcy5fdG9vbGJhckl0ZW0uYWRkU3R5bGVDbGFzcyh0aGlzLnRvb2xiYXJJ
dGVtQ2xhc3MpOworICAgICAgICB0aGlzLl90b29sYmFySXRlbS5hZGRTdHlsZUNsYXNzKHRoaXMu
X3BhbmVsTmFtZSk7CiAKICAgICAgICAgdmFyIGljb25FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CiAgICAgICAgIGljb25FbGVtZW50LmNsYXNzTmFtZSA9ICJ0b29sYmFy
LWljb24iOwpAQCAtODYsNyArODksNyBAQCBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlID0g
ewogCiAgICAgICAgIFdlYkluc3BlY3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50ID0gdGhpcy5kZWZh
dWx0Rm9jdXNlZEVsZW1lbnQ7CiAKLSAgICAgICAgdGhpcy51cGRhdGVTaWRlYmFyV2lkdGgoKTsK
KyAgICAgICAgdGhpcy5yZXN0b3JlU2lkZWJhcldpZHRoKCk7CiAgICAgICAgIHRoaXMuX3Jlc3Rv
cmVTY3JvbGxQb3NpdGlvbnMoKTsKICAgICB9LAogCkBAIC0yOTEsNyArMjk0LDcgQEAgV2ViSW5z
cGVjdG9yLlBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIGNyZWF0ZVNpZGViYXI6IGZ1bmN0aW9u
KHBhcmVudEVsZW1lbnQsIHJlc2l6ZXJQYXJlbnRFbGVtZW50KQogICAgIHsKLSAgICAgICAgaWYg
KHRoaXMuaGFzU2lkZWJhcikKKyAgICAgICAgaWYgKHRoaXMuc2lkZWJhckVsZW1lbnQpCiAgICAg
ICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKCFwYXJlbnRFbGVtZW50KQpAQCAtMzAwLDgg
KzMwMyw2IEBAIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICgh
cmVzaXplclBhcmVudEVsZW1lbnQpCiAgICAgICAgICAgICByZXNpemVyUGFyZW50RWxlbWVudCA9
IHBhcmVudEVsZW1lbnQ7CiAKLSAgICAgICAgdGhpcy5oYXNTaWRlYmFyID0gdHJ1ZTsKLQogICAg
ICAgICB0aGlzLnNpZGViYXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CiAgICAgICAgIHRoaXMuc2lkZWJhckVsZW1lbnQuY2xhc3NOYW1lID0gInNpZGViYXIiOwogICAg
ICAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc2lkZWJhckVsZW1lbnQpOwpAQCAt
MzE5LDYgKzMyMCwxMSBAQCBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICB0aGlzLnNpZGViYXJUcmVlLnBhbmVsID0gdGhpczsKICAgICB9LAogCisgICAgX3NpZGViYXJX
aWR0aFNldHRpbmdOYW1lOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5f
cGFuZWxOYW1lICsgIlNpZGViYXJXaWR0aCI7CisgICAgfSwKKwogICAgIF9zdGFydFNpZGViYXJE
cmFnZ2luZzogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuZWxl
bWVudERyYWdTdGFydCh0aGlzLnNpZGViYXJSZXNpemVFbGVtZW50LCB0aGlzLl9zaWRlYmFyRHJh
Z2dpbmcuYmluZCh0aGlzKSwgdGhpcy5fZW5kU2lkZWJhckRyYWdnaW5nLmJpbmQodGhpcyksIGV2
ZW50LCAiY29sLXJlc2l6ZSIpOwpAQCAtMzM0LDExICszNDAsMTIgQEAgV2ViSW5zcGVjdG9yLlBh
bmVsLnByb3RvdHlwZSA9IHsKICAgICBfZW5kU2lkZWJhckRyYWdnaW5nOiBmdW5jdGlvbihldmVu
dCkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5lbGVtZW50RHJhZ0VuZChldmVudCk7Cisg
ICAgICAgIHRoaXMuc2F2ZVNpZGViYXJXaWR0aCgpOwogICAgIH0sCiAKICAgICB1cGRhdGVTaWRl
YmFyV2lkdGg6IGZ1bmN0aW9uKHdpZHRoKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLmhhc1Np
ZGViYXIpCisgICAgICAgIGlmICghdGhpcy5zaWRlYmFyRWxlbWVudCkKICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICBpZiAodGhpcy5zaWRlYmFyRWxlbWVudC5vZmZzZXRXaWR0aCA8PSAw
KSB7CkBAIC0zNjcsNiArMzc0LDE5IEBAIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHRoaXMuc2lkZWJhclJlc2l6ZUVsZW1lbnQuc3R5bGUubGVmdCA9ICh3aWR0aCAt
IDMpICsgInB4IjsKICAgICB9LAogCisgICAgcmVzdG9yZVNpZGViYXJXaWR0aDogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgdmFyIHNpZGViYXJXaWR0aCA9IFdlYkluc3BlY3Rvci5hcHBsaWNh
dGlvblNldHRpbmdzW3RoaXMuX3NpZGViYXJXaWR0aFNldHRpbmdOYW1lKCldOworICAgICAgICB0
aGlzLnVwZGF0ZVNpZGViYXJXaWR0aChzaWRlYmFyV2lkdGgpOworICAgIH0sCisKKyAgICBzYXZl
U2lkZWJhcldpZHRoOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuc2lkZWJh
ckVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIFdlYkluc3BlY3Rvci5hcHBs
aWNhdGlvblNldHRpbmdzW3RoaXMuX3NpZGViYXJXaWR0aFNldHRpbmdOYW1lKCldID0gdGhpcy5z
aWRlYmFyRWxlbWVudC5vZmZzZXRXaWR0aDsKKyAgICB9LAorCiAgICAgdXBkYXRlTWFpblZpZXdX
aWR0aDogZnVuY3Rpb24od2lkdGgpCiAgICAgewogICAgICAgICAvLyBTaG91bGQgYmUgaW1wbGVt
ZW50ZWQgYnkgYW5jZXN0b3JzLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Byb2ZpbGVzUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmls
ZXNQYW5lbC5qcwppbmRleCBiNTEyMmFmZDQ1N2U2YTg0ZGE2ZDY0OWUyMzk3OGVjMzA5NzBiMDZh
Li45MTFiMWRhZjYyNjEyOTZlM2U1OTY2MWM0MzMxMjk1NjhiNDNkZDRlIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwpAQCAtOTAsMTEgKzkwLDEwIEBA
IFdlYkluc3BlY3Rvci5Qcm9maWxlVHlwZS5wcm90b3R5cGUgPSB7CiAKIFdlYkluc3BlY3Rvci5Q
cm9maWxlc1BhbmVsID0gZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxs
KHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMsICJwcm9maWxlcyIpOwog
CiAgICAgdGhpcy5jcmVhdGVTaWRlYmFyKCk7CiAKLSAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVD
bGFzcygicHJvZmlsZXMiKTsKICAgICB0aGlzLl9wcm9maWxlVHlwZXNCeUlkTWFwID0ge307CiAg
ICAgdGhpcy5fcHJvZmlsZVR5cGVCdXR0b25zQnlJZE1hcCA9IHt9OwogCkBAIC0xMjgsOCArMTI3
LDYgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwgPSBmdW5jdGlvbigpCiB9CiAKIFdlYklu
c3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKLSAgICB0b29sYmFySXRlbUNsYXNz
OiAicHJvZmlsZXMiLAotCiAgICAgZ2V0IHRvb2xiYXJJdGVtTGFiZWwoKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJvZmlsZXMiKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwppbmRleCBlZjZhYTI2ZjY0ZmJi
Y2Q0MjczMGZhMTU4OTUyN2I5NmI4N2U3MTIzLi4xMmNiYzE4ODViMTI5MGYzN2FmNjI0OTg1ZDAw
ZjdlNTI3NjU5NGE2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VzUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
c1BhbmVsLmpzCkBAIC0yOSw5ICsyOSw3IEBACiAKIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5l
bCA9IGZ1bmN0aW9uKCkKIHsKLSAgICBXZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZVBhbmVs
LmNhbGwodGhpcyk7Ci0KLSAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygicmVzb3VyY2Vz
Iik7CisgICAgV2ViSW5zcGVjdG9yLkFic3RyYWN0VGltZWxpbmVQYW5lbC5jYWxsKHRoaXMsICJy
ZXNvdXJjZXMiKTsKIAogICAgIHRoaXMuX2NyZWF0ZVBhbmVsRW5hYmxlcigpOwogCkBAIC01MSw4
ICs0OSw2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbCA9IGZ1bmN0aW9uKCkKIH0KIAog
V2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKLSAgICB0b29sYmFySXRl
bUNsYXNzOiAicmVzb3VyY2VzIiwKLQogICAgIGdldCB0b29sYmFySXRlbUxhYmVsKCkKICAgICB7
CiAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlc291cmNlcyIpOwpAQCAt
MzE5LDYgKzMxNSw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgewogICAgICAgICB0aGlzLl9yZXNvdXJjZVRyYWNraW5nRW5hYmxlZCA9IHRydWU7CiAg
ICAgICAgIHRoaXMucmVzZXQoKTsKKyAgICAgICAgdGhpcy5yZXN0b3JlU2lkZWJhcldpZHRoKCk7
CiAgICAgfSwKIAogICAgIHJlc291cmNlVHJhY2tpbmdXYXNEaXNhYmxlZDogZnVuY3Rpb24oKQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBi
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5kZXggNTU2M2I5
MzEzMjExZmFlN2Y5ZGY1ZGNmM2JhZDlhYzA2MmU5ODA3MS4uNTNhZTUwMTViNTc2YzAwMjk4ZDk1
MTA2YjY0NTUzZTBmY2M0OTNjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCkBAIC0yNSw5ICsyNSw3IEBACiAKIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwgPSBmdW5jdGlvbigpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcyk7Ci0K
LSAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygic2NyaXB0cyIpOworICAgIFdlYkluc3Bl
Y3Rvci5QYW5lbC5jYWxsKHRoaXMsICJzY3JpcHRzIik7CiAKICAgICB0aGlzLnRvcFN0YXR1c0Jh
ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgIHRoaXMudG9wU3RhdHVzQmFy
LmNsYXNzTmFtZSA9ICJzdGF0dXMtYmFyIjsKQEAgLTE4NCw4ICsxODIsNiBAQCBXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsLlBhdXNlT25FeGNlcHRpb25zU3RhdGUgPSB7CiB9OwogCiBXZWJJbnNw
ZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKLSAgICB0b29sYmFySXRlbUNsYXNzOiAi
c2NyaXB0cyIsCi0KICAgICBnZXQgdG9vbGJhckl0ZW1MYWJlbCgpCiAgICAgewogICAgICAgICBy
ZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTY3JpcHRzIik7CkBAIC03OTQsMTUgKzc5MCwy
MCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfZW5kU2lk
ZWJhclJlc2l6ZURyYWc6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgV2ViSW5zcGVj
dG9yLmVsZW1lbnREcmFnRW5kKGV2ZW50KTsKLQogICAgICAgICBkZWxldGUgdGhpcy5fZHJhZ09m
ZnNldDsKKyAgICAgICAgdGhpcy5zYXZlU2lkZWJhcldpZHRoKCk7CiAgICAgfSwKIAogICAgIF9z
aWRlYmFyUmVzaXplRHJhZzogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgeCA9
IGV2ZW50LnBhZ2VYICsgdGhpcy5fZHJhZ09mZnNldDsKICAgICAgICAgdmFyIG5ld1dpZHRoID0g
TnVtYmVyLmNvbnN0cmFpbih3aW5kb3cuaW5uZXJXaWR0aCAtIHgsIFByZWZlcmVuY2VzLm1pblNj
cmlwdHNTaWRlYmFyV2lkdGgsIHdpbmRvdy5pbm5lcldpZHRoICogMC42Nik7CisgICAgICAgIHRo
aXMuc2V0U2lkZWJhcldpZHRoKG5ld1dpZHRoKTsKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1
bHQoKTsKKyAgICB9LAogCisgICAgc2V0U2lkZWJhcldpZHRoOiBmdW5jdGlvbihuZXdXaWR0aCkK
KyAgICB7CiAgICAgICAgIHRoaXMuc2lkZWJhckVsZW1lbnQuc3R5bGUud2lkdGggPSBuZXdXaWR0
aCArICJweCI7CiAgICAgICAgIHRoaXMuc2lkZWJhckJ1dHRvbnNFbGVtZW50LnN0eWxlLndpZHRo
ID0gbmV3V2lkdGggKyAicHgiOwogICAgICAgICB0aGlzLnZpZXdzQ29udGFpbmVyRWxlbWVudC5z
dHlsZS5yaWdodCA9IG5ld1dpZHRoICsgInB4IjsKQEAgLTgxMCw5ICs4MTEsOCBAQCBXZWJJbnNw
ZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5zaWRlYmFyUmVz
aXplRWxlbWVudC5zdHlsZS5yaWdodCA9IChuZXdXaWR0aCAtIDMpICsgInB4IjsKIAogICAgICAg
ICB0aGlzLnJlc2l6ZSgpOwotICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgIH0s
Ci0gICAgCisKICAgICB1cGRhdGVQYXVzZU9uRXhjZXB0aW9uc1N0YXRlOiBmdW5jdGlvbihwYXVz
ZU9uRXhjZXB0aW9uc1N0YXRlKQogICAgIHsKICAgICAgICAgaWYgKHBhdXNlT25FeGNlcHRpb25z
U3RhdGUgPT0gV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5QYXVzZU9uRXhjZXB0aW9uc1N0YXRl
LkRvbnRQYXVzZU9uRXhjZXB0aW9ucykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TZXR0aW5ncy5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5n
cy5qcwppbmRleCBjN2ZjNWE5NTg5OTgzYWQyNDg2ODkyOGQzYzcwODMwNWQwNmI4NTNjLi4xMWY0
NTZjYjFjYzU4NjgyNDk4OTE5NGJiOWRmZmNjYmRjYTE0ZDhkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NldHRpbmdzLmpzCkBAIC00OCwxNSArNDgsMTYgQEAgdmFyIFByZWZlcmVuY2Vz
ID0gewogV2ViSW5zcGVjdG9yLnBvcHVsYXRlQXBwbGljYXRpb25TZXR0aW5ncyA9IGZ1bmN0aW9u
KHNldHRpbmdzU3RyaW5nKQogewogICAgIFdlYkluc3BlY3Rvci5hcHBsaWNhdGlvblNldHRpbmdz
Ll9sb2FkKHNldHRpbmdzU3RyaW5nKTsKLSAgICBXZWJJbnNwZWN0b3IuYXBwbGljYXRpb25TZXR0
aW5ncy5faW5zdGFsbFNldHRpbmcoImV2ZW50TGlzdGVuZXJzRmlsdGVyIiwgImV2ZW50LWxpc3Rl
bmVycy1maWx0ZXIiLCAiYWxsIik7Ci0gICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uU2V0dGlu
Z3MuX2luc3RhbGxTZXR0aW5nKCJjb2xvckZvcm1hdCIsICJjb2xvci1mb3JtYXQiLCAiaGV4Iik7
Ci0gICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uU2V0dGluZ3MuX2luc3RhbGxTZXR0aW5nKCJy
ZXNvdXJjZXNMYXJnZVJvd3MiLCAicmVzb3VyY2VzLWxhcmdlLXJvd3MiLCB0cnVlKTsKLSAgICBX
ZWJJbnNwZWN0b3IuYXBwbGljYXRpb25TZXR0aW5ncy5faW5zdGFsbFNldHRpbmcoIndhdGNoRXhw
cmVzc2lvbnMiLCAid2F0Y2gtZXhwcmVzc2lvbnMiLCBbXSk7Ci0gICAgV2ViSW5zcGVjdG9yLmFw
cGxpY2F0aW9uU2V0dGluZ3MuX2luc3RhbGxTZXR0aW5nKCJsYXN0Vmlld2VkU2NyaXB0RmlsZSIs
ICJsYXN0LXZpZXdlZC1zY3JpcHQtZmlsZSIpOwotICAgIFdlYkluc3BlY3Rvci5hcHBsaWNhdGlv
blNldHRpbmdzLl9pbnN0YWxsU2V0dGluZygic2hvd0luaGVyaXRlZENvbXB1dGVkU3R5bGVQcm9w
ZXJ0aWVzIiwgInNob3ctaW5oZXJpdGVkLWNvbXB1dGVkLXN0eWxlLXByb3BlcnRpZXMiLCBmYWxz
ZSk7Ci0gICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uU2V0dGluZ3MuX2luc3RhbGxTZXR0aW5n
KCJzaG93VXNlckFnZW50U3R5bGVzIiwgInNob3ctdXNlci1hZ2VudC1zdHlsZXMiLCB0cnVlKTsK
LSAgICBXZWJJbnNwZWN0b3IuYXBwbGljYXRpb25TZXR0aW5ncy5faW5zdGFsbFNldHRpbmcoInJl
c291cmNlVmlld1RhYiIsICJyZXNvdXJjZS12aWV3LXRhYiIsICJjb250ZW50Iik7Ci0gICAgV2Vi
SW5zcGVjdG9yLmFwcGxpY2F0aW9uU2V0dGluZ3MuX2luc3RhbGxTZXR0aW5nKCJjb25zb2xlSGlz
dG9yeSIsICJjb25zb2xlLWhpc3RvcnkiLCBbXSk7CisgICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0
aW9uU2V0dGluZ3MuaW5zdGFsbFNldHRpbmcoImV2ZW50TGlzdGVuZXJzRmlsdGVyIiwgImV2ZW50
LWxpc3RlbmVycy1maWx0ZXIiLCAiYWxsIik7CisgICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9u
U2V0dGluZ3MuaW5zdGFsbFNldHRpbmcoImNvbG9yRm9ybWF0IiwgImNvbG9yLWZvcm1hdCIsICJo
ZXgiKTsKKyAgICBXZWJJbnNwZWN0b3IuYXBwbGljYXRpb25TZXR0aW5ncy5pbnN0YWxsU2V0dGlu
ZygicmVzb3VyY2VzTGFyZ2VSb3dzIiwgInJlc291cmNlcy1sYXJnZS1yb3dzIiwgdHJ1ZSk7Cisg
ICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uU2V0dGluZ3MuaW5zdGFsbFNldHRpbmcoIndhdGNo
RXhwcmVzc2lvbnMiLCAid2F0Y2gtZXhwcmVzc2lvbnMiLCBbXSk7CisgICAgV2ViSW5zcGVjdG9y
LmFwcGxpY2F0aW9uU2V0dGluZ3MuaW5zdGFsbFNldHRpbmcoImxhc3RWaWV3ZWRTY3JpcHRGaWxl
IiwgImxhc3Qtdmlld2VkLXNjcmlwdC1maWxlIik7CisgICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0
aW9uU2V0dGluZ3MuaW5zdGFsbFNldHRpbmcoInNob3dJbmhlcml0ZWRDb21wdXRlZFN0eWxlUHJv
cGVydGllcyIsICJzaG93LWluaGVyaXRlZC1jb21wdXRlZC1zdHlsZS1wcm9wZXJ0aWVzIiwgZmFs
c2UpOworICAgIFdlYkluc3BlY3Rvci5hcHBsaWNhdGlvblNldHRpbmdzLmluc3RhbGxTZXR0aW5n
KCJzaG93VXNlckFnZW50U3R5bGVzIiwgInNob3ctdXNlci1hZ2VudC1zdHlsZXMiLCB0cnVlKTsK
KyAgICBXZWJJbnNwZWN0b3IuYXBwbGljYXRpb25TZXR0aW5ncy5pbnN0YWxsU2V0dGluZygicmVz
b3VyY2VWaWV3VGFiIiwgInJlc291cmNlLXZpZXctdGFiIiwgImNvbnRlbnQiKTsKKyAgICBXZWJJ
bnNwZWN0b3IuYXBwbGljYXRpb25TZXR0aW5ncy5pbnN0YWxsU2V0dGluZygiY29uc29sZUhpc3Rv
cnkiLCAiY29uc29sZS1oaXN0b3J5IiwgW10pOworCiAgICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0
aW9uU2V0dGluZ3MuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJsb2FkZWQiKTsKIH0KIApAQCAt
NjksNiArNzAsNyBAQCBXZWJJbnNwZWN0b3IucG9wdWxhdGVTZXNzaW9uU2V0dGluZ3MgPSBmdW5j
dGlvbihzZXR0aW5nc1N0cmluZykKIFdlYkluc3BlY3Rvci5TZXR0aW5ncyA9IGZ1bmN0aW9uKHNl
c3Npb25TY29wZSkKIHsKICAgICB0aGlzLl9zZXNzaW9uU2NvcGUgPSBzZXNzaW9uU2NvcGU7Cisg
ICAgdGhpcy5fZGVmYXVsdFZhbHVlcyA9IHt9OwogfQogCiBXZWJJbnNwZWN0b3IuU2V0dGluZ3Mu
cHJvdG90eXBlID0gewpAQCAtODgsMTggKzkwLDE4IEBAIFdlYkluc3BlY3Rvci5TZXR0aW5ncy5w
cm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCi0gICAgX2luc3RhbGxTZXR0aW5nOiBm
dW5jdGlvbihuYW1lLCBwcm9wZXJ0eU5hbWUsIGRlZmF1bHRWYWx1ZSkKKyAgICBpbnN0YWxsU2V0
dGluZzogZnVuY3Rpb24obmFtZSwgcHJvcGVydHlOYW1lLCBkZWZhdWx0VmFsdWUpCiAgICAgewog
ICAgICAgICB0aGlzLl9fZGVmaW5lR2V0dGVyX18obmFtZSwgdGhpcy5fZ2V0LmJpbmQodGhpcywg
cHJvcGVydHlOYW1lKSk7CiAgICAgICAgIHRoaXMuX19kZWZpbmVTZXR0ZXJfXyhuYW1lLCB0aGlz
Ll9zZXQuYmluZCh0aGlzLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCEocHJvcGVydHlO
YW1lIGluIHRoaXMuX3N0b3JlKSkgewotICAgICAgICAgICAgdGhpcy5fc3RvcmVbcHJvcGVydHlO
YW1lXSA9IGRlZmF1bHRWYWx1ZTsKLSAgICAgICAgfQorICAgICAgICB0aGlzLl9kZWZhdWx0VmFs
dWVzW3Byb3BlcnR5TmFtZV0gPSBkZWZhdWx0VmFsdWU7CiAgICAgfSwKIAogICAgIF9nZXQ6IGZ1
bmN0aW9uKHByb3BlcnR5TmFtZSkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zdG9yZVtw
cm9wZXJ0eU5hbWVdOworICAgICAgICBpZiAocHJvcGVydHlOYW1lIGluIHRoaXMuX3N0b3JlKQor
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3N0b3JlW3Byb3BlcnR5TmFtZV07CisgICAgICAgIHJl
dHVybiB0aGlzLl9kZWZhdWx0VmFsdWVzW3Byb3BlcnR5TmFtZV07CiAgICAgfSwKIAogICAgIF9z
ZXQ6IGZ1bmN0aW9uKHByb3BlcnR5TmFtZSwgbmV3VmFsdWUpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU3RvcmFnZVBhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1N0b3JhZ2VQYW5lbC5qcwppbmRleCBiMzdkMDI5MTI4M2FkNmEzYmE2ZTEwMmU0
ODVmZGExMTQ4Y2I0ODdiLi4yNzMzOTA3ZmFkODFhMDc5NzI0YWRhMTI0ZjdlODZmMDFhNTA0ODg1
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3RvcmFnZVBhbmVsLmpz
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdG9yYWdlUGFuZWwuanMKQEAgLTI5
LDcgKzI5LDcgQEAKIAogV2ViSW5zcGVjdG9yLlN0b3JhZ2VQYW5lbCA9IGZ1bmN0aW9uKGRhdGFi
YXNlKQogewotICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMpOworICAgIFdlYkluc3Bl
Y3Rvci5QYW5lbC5jYWxsKHRoaXMsICJzdG9yYWdlIik7CiAKICAgICB0aGlzLmNyZWF0ZVNpZGVi
YXIoKTsKIApAQCAtNjQsOCArNjQsNiBAQCBXZWJJbnNwZWN0b3IuU3RvcmFnZVBhbmVsID0gZnVu
Y3Rpb24oZGF0YWJhc2UpCiB9CiAKIFdlYkluc3BlY3Rvci5TdG9yYWdlUGFuZWwucHJvdG90eXBl
ID0gewotICAgIHRvb2xiYXJJdGVtQ2xhc3M6ICJzdG9yYWdlIiwKLQogICAgIGdldCB0b29sYmFy
SXRlbUxhYmVsKCkKICAgICB7CiAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IlN0b3JhZ2UiKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZVBhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwu
anMKaW5kZXggMjllZmQ3OTRmMDdmNDE4MjM1ZGQ3Zjk0MjVlNTEyY2U5N2M5NTc1Zi4uMWYxMjYy
NTRjYjE5MmYzOTE1M2EwNWRkNTE0YmJjMjE1YWExNjcxMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTMwLDggKzMwLDcgQEAKIAogV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUGFuZWwgPSBmdW5jdGlvbigpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlBh
bmVsLmNhbGwodGhpcyk7Ci0gICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInRpbWVsaW5l
Iik7CisgICAgV2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcywgInRpbWVsaW5lIik7CiAKICAg
ICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlVG9wUGFuZSgpKTsKICAgICB0
aGlzLmVsZW1lbnQudGFiSW5kZXggPSAwOwpAQCAtMTA2LDggKzEwNSw2IEBAIFdlYkluc3BlY3Rv
ci5UaW1lbGluZVBhbmVsLnJvd0hlaWdodCA9IDE4OwogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFu
ZWwuc2hvcnRSZWNvcmRUaHJlc2hvbGQgPSAwLjAxNTsKIAogV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UGFuZWwucHJvdG90eXBlID0gewotICAgIHRvb2xiYXJJdGVtQ2xhc3M6ICJ0aW1lbGluZSIsCi0K
ICAgICBfY3JlYXRlVG9wUGFuZTogZnVuY3Rpb24oKSB7CiAgICAgICAgIHZhciB0b3BQYW5lRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICB0b3BQYW5lRWxl
bWVudC5pZCA9ICJ0aW1lbGluZS1vdmVydmlldy1wYW5lbCI7Cg==
</data>
<flag name="review"
          id="48404"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>