<?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>97065</bug_id>
          
          <creation_ts>2012-09-18 20:31:34 -0700</creation_ts>
          <short_desc>Web Inspector: Source Mapping doesn&apos;t work when inspector is in remote-mode</short_desc>
          <delta_ts>2014-03-10 16:20:20 -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>INVALID</resolution>
          
          
          <bug_file_loc>http://dev.fontdragr.com</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>73959</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Peter Wang">PeterHWang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bburg</cc>
    
    <cc>bweinstein</cc>
    
    <cc>charles.wei</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>kpiascik</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>vsevik</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>723229</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-18 20:31:34 -0700</bug_when>
    <thetext>This defect exists in both Chrome and other ports. 
The root reason is the function &quot;InspectorFrontendHost.loadResourceSynchronously&quot; (CompilerScriptMapping.js) is only a stub when Inspector is working in remote-mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723233</commentid>
    <comment_count>1</comment_count>
      <attachid>164651</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-18 20:36:01 -0700</bug_when>
    <thetext>Created attachment 164651
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723249</commentid>
    <comment_count>2</comment_count>
      <attachid>164651</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-18 21:24:43 -0700</bug_when>
    <thetext>Comment on attachment 164651
Patch

Attachment 164651 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13894394

New failing tests:
http/tests/inspector/compiler-script-mapping.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723378</commentid>
    <comment_count>3</comment_count>
      <attachid>164651</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-09-19 01:20:41 -0700</bug_when>
    <thetext>Comment on attachment 164651
Patch

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

&gt; Source/WebCore/inspector/front-end/CompilerScriptMapping.js:95
&gt; +            sourceMap = this.loadSourceMapForScript(script);

You should add return here for this patch to work.
This means the script won&apos;t have source mapping until source map is loaded, which means stopping on breakpoint at this point would break things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723379</commentid>
    <comment_count>4</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-09-19 01:21:05 -0700</bug_when>
    <thetext>See https://bugs.webkit.org/show_bug.cgi?id=97032 also</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723386</commentid>
    <comment_count>5</comment_count>
      <attachid>164691</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-19 01:40:18 -0700</bug_when>
    <thetext>Created attachment 164691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723392</commentid>
    <comment_count>6</comment_count>
      <attachid>164691</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-09-19 01:57:47 -0700</bug_when>
    <thetext>Comment on attachment 164691
Patch

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

&gt; Source/WebCore/inspector/front-end/DebuggerScriptMapping.js:57
&gt; +        if (!mapping._asyncLoadSource)

I don&apos;t think this fixes the problem I mentioned.
We should always have a mapping set for script which will correctly transfrom any raw location to ui location at any moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723393</commentid>
    <comment_count>7</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-19 02:00:52 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=164691) [details]
&gt; Patch

Sorry, I didn&apos;t notice comments#3 when I was uploading this patch. I&apos;ll update it according to your comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723414</commentid>
    <comment_count>8</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-09-19 02:43:29 -0700</bug_when>
    <thetext>I don&apos;t think this is conceptually right to load source maps through the backend. You should treat the front-end as an IDE and the IDE should use its own capabilities to load resources from the web (not via the mobile device). I&apos;d rather have an extension that does cross-origin requests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723501</commentid>
    <comment_count>9</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-19 06:15:30 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723502</commentid>
    <comment_count>10</comment_count>
      <attachid>164725</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-19 06:15:39 -0700</bug_when>
    <thetext>Created attachment 164725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723505</commentid>
    <comment_count>11</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-19 06:22:15 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=164725) [details]
&gt; Patch

This patch is updated for comments#3. I&apos;ll uploaded a new patch that also accommodate the comments#8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723513</commentid>
    <comment_count>12</comment_count>
      <attachid>164725</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-09-19 06:31:11 -0700</bug_when>
    <thetext>Comment on attachment 164725
Patch

The way it should be addressed lays outside the WebCore/WebKit boundary. I would imagine it as an extension that exposes cross-origin XHRs or as CORS-enabled server serving the source maps.
But it definitely should not  be going via the backend / device.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723564</commentid>
    <comment_count>13</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-19 07:45:37 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 164725 [details])
&gt; The way it should be addressed lays outside the WebCore/WebKit boundary. I would imagine it as an extension that exposes cross-origin XHRs or as CORS-enabled server serving the source maps.
&gt; But it definitely should not  be going via the backend / device.

Thx for the tips. I&apos;ll try it. My port really needs this feature to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742947</commentid>
    <comment_count>14</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-10-16 01:26:56 -0700</bug_when>
    <thetext>The reason of this bug is obviously, but really hard to fix: if we can support CROSS-ORIGIN &quot;InspectorFrontendHostStub.loadResourceSynchronously&quot; in remote inspecting mode, we&apos;ll resolve it.

As https://bugs.webkit.org/show_bug.cgi?id=91528 resolved, we can use &quot;InspectorFrontendHostStub.loadResourceSynchronously&quot; in remote-mode, but cannot do a cross-origin request.

The patch for https://bugs.webkit.org/show_bug.cgi?id=73959 is trying to make that function cross-origin, but denied due to security concern. 

Maybe I should try to fix bug#73959 firstly.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164651</attachid>
            <date>2012-09-18 20:36:01 -0700</date>
            <delta_ts>2012-09-19 01:40:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97065-20120919113526.patch</filename>
            <type>text/plain</type>
            <size>13537</size>
            <attacher name="Peter Wang">PeterHWang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4ODcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmRlMmE2MTA5YmI3MzRj
ZjExNjk3MjA0ZWI3NGFmOTlhNjc3ZDA1Ni4uMWVmMzQ0Nzk2M2QzOWIzZDVkZGQxODcwYzI3NTA2
N2M3ZjJhYjU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA5LTE4ICBQZXRl
ciBXYW5nICA8cGV0ZXIud2FuZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogU291cmNlIE1hcHBpbmcgZG9lc24ndCB3b3JrIHdoZW4gaW5zcGVjdG9yIGlzIGlu
IHJlbW90ZS1tb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NzA2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAg
ICAKKyAgICAgICAgQWRkIGEgbWV0aG9kICJXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6Omxv
YWRSZXNvdXJjZUFzeW5jaHJvbm91c2x5IiB0byBzdXBwb3J0IGxvYWRpbmcgc291cmNlIG1hcAor
ICAgICAgICBmaWxlIHdoZW4gaW5zcGVjdG9yIGlzIGluIHJlbW90ZS1tb2RlLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0IGNhc2UuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLTEuMC5q
c29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clBhZ2VBZ2VudDo6bG9hZFJlc291cmNlQXN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5jcmVhdGVTb3VyY2VNYXBQYXJzZXIp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUu
bG9hZFNvdXJjZU1hcEZvclNjcmlwdC5jYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
Q29tcGlsZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5sb2FkU291cmNlTWFwRm9yU2NyaXB0KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlLl9y
ZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db250ZW50UHJvdmlkZXJzLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXBpbGVyU291cmNlTWFwcGluZ0NvbnRlbnRQcm92
aWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29tcGlsZXJTb3VyY2VNYXBwaW5nQ29udGVu
dFByb3ZpZGVyLnByb3RvdHlwZS5yZXF1ZXN0Q29udGVudC53cmFwQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbXBpbGVyU291cmNlTWFwcGluZ0NvbnRlbnRQcm92aWRlci5wcm90
b3R5cGUucmVxdWVzdENvbnRlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVi
dWdnZXJTY3JpcHRNYXBwaW5nLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2Ny
aXB0TWFwcGluZy5wcm90b3R5cGUuX3BhcnNlZFNjcmlwdFNvdXJjZSk6CisKIDIwMTItMDktMTkg
IEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBub2tpYS5jb20+CiAKICAgICAg
ICAgUmV2ZXJ0IHIxMjc0NTcgYW5kIGZvbGxvd2luZyBmaXhlcyBkdWUgdG8gc2V2ZXJhbCBoaXQt
dGVzdGluZyByZWdyZXNzaW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvci0xLjAuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3It
MS4wLmpzb24KaW5kZXggZTE5ZTdlMDYwOTFiY2M1NTEzYjJkNzFiNDMzMTlkY2IwZWFiZmYxNi4u
Nzc2YjhlYzZkMTk0MWE0NWUzMGQ3YWNiOTcxZDFlMmUxYzk3YTNmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci0xLjAuanNvbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLTEuMC5qc29uCkBAIC0yNzAsNiArMjcwLDE2IEBACiAg
ICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKICAgICAgICAgICAgIH0sCiAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAibG9hZFJlc291cmNlQXN5bmNocm9ub3VzbHki
LAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdXJs
IG9mIHJlc291cmNlIHRvIGJlIGxvYWRlZC4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAg
ICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJl
c291cmNlQ29udGVudCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJTb3VyY2Ug
Q29udGVudC4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJMb2FkIHJlc291cmNlIHRocm91Z2ggYmFja2VuZCBhc3luY2hyb25vdXNseS4iCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogInNl
YXJjaEluUmVzb3VyY2UiLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWFyY2hl
cyBmb3IgZ2l2ZW4gc3RyaW5nIGluIHJlc291cmNlIGNvbnRlbnQuIiwKICAgICAgICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpp
bmRleCBmMTEzN2M3OGQwNjY5MDM4MjhmMWVmODVhMTExMjExMWIxYzc2ZmU2Li4zMGY3N2ExMTk1
OWUzNzNlOTllMDk0ZjQ0YWJiMDcwYWU4OTc2YjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvci5qc29uCkBAIC0yNzQsNiArMjc0LDE2IEBACiAgICAgICAgICAgICAgICAgImhp
ZGRlbiI6IHRydWUKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgIm5hbWUiOiAibG9hZFJlc291cmNlQXN5bmNocm9ub3VzbHkiLAorICAgICAgICAgICAgICAg
ICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0
eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdXJsIG9mIHJlc291cmNlIHRvIGJl
IGxvYWRlZC4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJyZXR1cm5z
IjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc291cmNlQ29udGVudCIsICJ0
eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJTb3VyY2UgQ29udGVudC4iIH0KKyAgICAg
ICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2FkIHJlc291
cmNlIHRocm91Z2ggYmFja2VuZCBhc3luY2hyb25vdXNseS4iCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogInNlYXJjaEluUmVzb3VyY2UiLAog
ICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWFyY2hlcyBmb3IgZ2l2ZW4gc3RyaW5n
IGluIHJlc291cmNlIGNvbnRlbnQuIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5k
ZXggZmEyM2FhYWY5YmVkMGY1NDg0YzE1NzBlYzM2ZjJkM2U5MGZjYzhkYS4uODg2ZTg2OTM4ZTYx
MzYwMjVjZWVhZDkzMzYzYjEyMGNkNTM2NzVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTU2OSw2ICs1NjksMTggQEAgdm9pZCBJ
bnNwZWN0b3JQYWdlQWdlbnQ6OmdldFJlc291cmNlQ29udGVudChFcnJvclN0cmluZyogZXJyb3JT
dHJpbmcsIGNvbnN0IFN0cmkKICAgICByZXNvdXJjZUNvbnRlbnQoZXJyb3JTdHJpbmcsIGZyYW1l
LCBLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSwgY29udGVudCwgYmFzZTY0RW5jb2RlZCk7CiB9
CiAKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50Ojpsb2FkUmVzb3VyY2VBc3luY2hyb25vdXNseShF
cnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdXJsLCBTdHJpbmcqIHNvdXJjZUNvbnRlbnQpCit7
CisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsKTsKKyAgICByZXF1ZXN0LnNldEhUVFBN
ZXRob2QoIkdFVCIpOworCisgICAgVmVjdG9yPGNoYXI+IGRhdGE7CisgICAgUmVzb3VyY2VFcnJv
ciBlcnJvcjsKKyAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlOworICAgIG1fcGFnZS0+bWFp
bkZyYW1lKCktPmxvYWRlcigpLT5sb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KHJlcXVlc3QsIERv
Tm90QWxsb3dTdG9yZWRDcmVkZW50aWFscywgZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKKyAgICAq
c291cmNlQ29udGVudCA9IFN0cmluZyhkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOworfQorCiBz
dGF0aWMgYm9vbCB0ZXh0Q29udGVudEZvckNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKiBj
YWNoZWRSZXNvdXJjZSwgU3RyaW5nKiByZXN1bHQpCiB7CiAgICAgaWYgKGhhc1RleHRDb250ZW50
KGNhY2hlZFJlc291cmNlKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5oCmluZGV4IDdiNzFiMjExZmE0NGVlMTFlMzU2ZDdlMWEwNWVmY2RmYWVmMDRk
OWYuLjhmMWJlNzg0ZDRlOTY2MjFjOTgzNDI4YjZkNzZkMDI3ZjI0NzJlNzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKQEAgLTEwMyw2ICsxMDMs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUNvb2tpZShFcnJvclN0cmluZyos
IGNvbnN0IFN0cmluZyYgY29va2llTmFtZSwgY29uc3QgU3RyaW5nJiBkb21haW4pOwogICAgIHZp
cnR1YWwgdm9pZCBnZXRSZXNvdXJjZVRyZWUoRXJyb3JTdHJpbmcqLCBSZWZQdHI8VHlwZUJ1aWxk
ZXI6OlBhZ2U6OkZyYW1lUmVzb3VyY2VUcmVlPiYpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRSZXNv
dXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0
cmluZyYgdXJsLCBTdHJpbmcqIGNvbnRlbnQsIGJvb2wqIGJhc2U2NEVuY29kZWQpOworICAgIHZp
cnR1YWwgdm9pZCBsb2FkUmVzb3VyY2VBc3luY2hyb25vdXNseShFcnJvclN0cmluZyosIGNvbnN0
IFN0cmluZyYgdXJsLCBTdHJpbmcqIHNvdXJjZUNvbnRlbnQpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZWFyY2hJblJlc291cmNlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgY29uc3QgYm9vbCogb3B0aW9uYWxD
YXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBvcHRpb25hbElzUmVnZXgsIFJlZlB0cjxUeXBlQnVp
bGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlBhZ2U6OlNlYXJjaE1hdGNoPiA+Jik7CiAgICAgdmly
dHVhbCB2b2lkIHNlYXJjaEluUmVzb3VyY2VzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgYm9vbCogY2FzZVNlbnNpdGl2ZSwgY29uc3QgYm9vbCogaXNSZWdleCwgUmVmUHRyPFR5
cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6UGFnZTo6U2VhcmNoUmVzdWx0PiA+Jik7CiAg
ICAgdmlydHVhbCB2b2lkIHNldERvY3VtZW50Q29udGVudChFcnJvclN0cmluZyosIGNvbnN0IFN0
cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiBodG1sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMK
aW5kZXggN2Y0YjlkYWUzZDBhOTgwZmM3ZmE0ZDRmNzczMmM3Mzk5OTFiZDNmYi4uZWQwZjNiMTVm
OGE0MjJkYTg5YzI5Mjc3OTc4NGY0M2Q0MWNiNDgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMK
QEAgLTQ0LDYgKzQ0LDcgQEAgV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZyA9IGZ1
bmN0aW9uKHdvcmtzcGFjZSkKICAgICB0aGlzLl9vcmlnaW5hbFVJU291cmNlQ29kZUZvclNjcmlw
dElkID0ge307CiAgICAgdGhpcy5fc2NyaXB0Rm9yT3JpZ2luYWxVSVNvdXJjZSA9IG5ldyBNYXAo
KTsKICAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29y
a3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzLl9yZXNldCwgdGhpcyk7CisgICAg
dGhpcy5fc2NyaXB0Q2FjaGUgPSBudWxsOwogfQogCiBXZWJJbnNwZWN0b3IuQ29tcGlsZXJTY3Jp
cHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKQEAgLTgyLDE0ICs4MywxOCBAQCBXZWJJbnNwZWN0b3Iu
Q29tcGlsZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBAcGFy
YW0ge1dlYkluc3BlY3Rvci5TY3JpcHR9IHNjcmlwdAogICAgICAqLwotICAgIGFkZFNjcmlwdDog
ZnVuY3Rpb24oc2NyaXB0KQorICAgIGFkZFNjcmlwdDogZnVuY3Rpb24oc2NyaXB0LCBzb3VyY2VN
YXBQYXJzZXIpCiAgICAgewogICAgICAgICB2YXIgb3JpZ2luYWxVSVNvdXJjZUNvZGUgPSBuZXcg
V2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2Uoc2NyaXB0LnNvdXJjZVVSTCwgbnVsbCwgc2Ny
aXB0LCB0cnVlKTsKICAgICAgICAgdGhpcy5fb3JpZ2luYWxVSVNvdXJjZUNvZGVGb3JTY3JpcHRJ
ZFtzY3JpcHQuc2NyaXB0SWRdID0gb3JpZ2luYWxVSVNvdXJjZUNvZGU7CiAgICAgICAgIHRoaXMu
X3NjcmlwdEZvck9yaWdpbmFsVUlTb3VyY2UucHV0KG9yaWdpbmFsVUlTb3VyY2VDb2RlLCBzY3Jp
cHQpOwogICAgICAgICB0aGlzLl93b3Jrc3BhY2UucHJvamVjdCgpLmFkZFVJU291cmNlQ29kZShv
cmlnaW5hbFVJU291cmNlQ29kZSk7CiAKLSAgICAgICAgdmFyIHNvdXJjZU1hcCA9IHRoaXMubG9h
ZFNvdXJjZU1hcEZvclNjcmlwdChzY3JpcHQpOworICAgICAgICB2YXIgc291cmNlTWFwOworICAg
ICAgICBpZiAoIXNvdXJjZU1hcFBhcnNlcikKKyAgICAgICAgICAgIHNvdXJjZU1hcCA9IHRoaXMu
bG9hZFNvdXJjZU1hcEZvclNjcmlwdChzY3JpcHQpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBzb3VyY2VNYXAgPSBzb3VyY2VNYXBQYXJzZXI7CiAKICAgICAgICAgaWYgKHRoaXMuX3Njcmlw
dEZvclNvdXJjZU1hcC5nZXQoc291cmNlTWFwKSkgewogICAgICAgICAgICAgdGhpcy5fc291cmNl
TWFwRm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXSA9IHNvdXJjZU1hcDsKQEAgLTEyNiw2ICsx
MzEsMjcgQEAgV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7
CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2VNYXBVUkwK
KyAgICAgKiBAcGFyYW0ge3N0cmluZ30gc291cmNlQ29udGVudAorICAgICAqIEByZXR1cm4ge1dl
Ykluc3BlY3Rvci5Tb3VyY2VNYXBQYXJzZXJ9CisgICAgICovCisgICAgY3JlYXRlU291cmNlTWFw
UGFyc2VyOiBmdW5jdGlvbihzb3VyY2VNYXBVUkwsIHNvdXJjZUNvbnRlbnQpCisgICAgeworICAg
ICAgICB2YXIgc291cmNlTWFwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKHNvdXJj
ZUNvbnRlbnQuc2xpY2UoMCwgMykgPT09ICIpXX0iKQorICAgICAgICAgICAgICAgIHNvdXJjZUNv
bnRlbnQgPSBzb3VyY2VDb250ZW50LnN1YnN0cmluZyhyZXNwb25zZS5pbmRleE9mKCdcbicpKTsK
KyAgICAgICAgICAgIHZhciBwYXlsb2FkID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuU291cmNl
TWFwUGF5bG9hZH0gKi8gSlNPTi5wYXJzZShzb3VyY2VDb250ZW50KTsKKyAgICAgICAgICAgIHNv
dXJjZU1hcCA9IG5ldyBXZWJJbnNwZWN0b3IuU291cmNlTWFwUGFyc2VyKHNvdXJjZU1hcFVSTCwg
cGF5bG9hZCk7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgY29uc29sZS5lcnJv
cihlLm1lc3NhZ2UpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAg
ICAgdGhpcy5fc291cmNlTWFwQnlVUkxbc291cmNlTWFwVVJMXSA9IHNvdXJjZU1hcDsKKyAgICAg
ICAgcmV0dXJuIHNvdXJjZU1hcDsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuU2NyaXB0fSBzY3JpcHQKICAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3Iu
U291cmNlTWFwUGFyc2VyfQogICAgICAqLwpAQCAtMTM2LDE5ICsxNjIsMjIgQEAgV2ViSW5zcGVj
dG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmIChzb3Vy
Y2VNYXApCiAgICAgICAgICAgICByZXR1cm4gc291cmNlTWFwOwogCi0gICAgICAgIHRyeSB7Cisg
ICAgICAgIGlmIChJbnNwZWN0b3JGcm9udGVuZEhvc3QuaXNTdHViKSB7CisgICAgICAgICAgICBm
dW5jdGlvbiBjYWxsYmFjayhlcnJvciwgc291cmNlKSB7CisgICAgICAgICAgICAgICAgaWYgKGVy
cm9yKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgdmFyIHNv
dXJjZU1hcFBhcnNlciA9IHRoaXMuY3JlYXRlU291cmNlTWFwUGFyc2VyKHNvdXJjZU1hcFVSTCwg
c291cmNlKTsKKyAgICAgICAgICAgICAgICB0aGlzLmFkZFNjcmlwdCh0aGlzLl9zY3JpcHRDYWNo
ZSwgc291cmNlTWFwUGFyc2VyKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgUGFnZUFn
ZW50LmxvYWRSZXNvdXJjZUFzeW5jaHJvbm91c2x5KHNvdXJjZU1hcFVSTCwgY2FsbGJhY2suYmlu
ZCh0aGlzKSk7CisgICAgICAgICAgICB0aGlzLl9zY3JpcHRDYWNoZSA9IHNjcmlwdDsKKyAgICAg
ICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gRklY
TUU6IG1ha2Ugc2VuZFJlcXVlc3QgYXN5bmMuCiAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSBJ
bnNwZWN0b3JGcm9udGVuZEhvc3QubG9hZFJlc291cmNlU3luY2hyb25vdXNseShzb3VyY2VNYXBV
UkwpOwotICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnNsaWNlKDAsIDMpID09PSAiKV19IikKLSAg
ICAgICAgICAgICAgICByZXNwb25zZSA9IHJlc3BvbnNlLnN1YnN0cmluZyhyZXNwb25zZS5pbmRl
eE9mKCdcbicpKTsKLSAgICAgICAgICAgIHZhciBwYXlsb2FkID0gLyoqIEB0eXBlIHtXZWJJbnNw
ZWN0b3IuU291cmNlTWFwUGF5bG9hZH0gKi8gSlNPTi5wYXJzZShyZXNwb25zZSk7Ci0gICAgICAg
ICAgICBzb3VyY2VNYXAgPSBuZXcgV2ViSW5zcGVjdG9yLlNvdXJjZU1hcFBhcnNlcihzb3VyY2VN
YXBVUkwsIHBheWxvYWQpOwotICAgICAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAgICAgIGNvbnNv
bGUuZXJyb3IoZS5tZXNzYWdlKTsKLSAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuY3JlYXRlU291cmNlTWFwUGFyc2VyKHNvdXJjZU1hcFVSTCwgcmVzcG9u
c2UpOwogICAgICAgICB9Ci0gICAgICAgIHRoaXMuX3NvdXJjZU1hcEJ5VVJMW3NvdXJjZU1hcFVS
TF0gPSBzb3VyY2VNYXA7Ci0gICAgICAgIHJldHVybiBzb3VyY2VNYXA7CiAgICAgfSwKIAogICAg
IF9yZXNldDogZnVuY3Rpb24oKQpAQCAtMTYwLDYgKzE4OSw3IEBAIFdlYkluc3BlY3Rvci5Db21w
aWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl91aVNvdXJjZUNv
ZGVCeVVSTCA9IHt9OwogICAgICAgICB0aGlzLl9vcmlnaW5hbFVJU291cmNlQ29kZUZvclNjcmlw
dElkID0ge307CiAgICAgICAgIHRoaXMuX3NjcmlwdEZvck9yaWdpbmFsVUlTb3VyY2UgPSBuZXcg
TWFwKCk7CisgICAgICAgIHRoaXMuX3NjcmlwdENhY2hlID0gbnVsbDsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29udGVudFByb3Zp
ZGVycy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29udGVudFByb3Zp
ZGVycy5qcwppbmRleCA5YzE5OTUzZGQyZDBkYWRmYTRhOWI2YzZiMjMyZDM0YzNmMDFkZmVlLi41
MWM3YjUzMGVjMzk3OGQwOGY0OWE3MTk4MTg5OWZlNTkxZTIzYTlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnRlbnRQcm92aWRlcnMuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db250ZW50UHJvdmlkZXJzLmpzCkBA
IC0xODksNiArMTg5LDcgQEAgV2ViSW5zcGVjdG9yLkNvbmNhdGVuYXRlZFNjcmlwdHNDb250ZW50
UHJvdmlkZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3QKIFdlYkluc3BlY3Rvci5D
b21waWxlclNvdXJjZU1hcHBpbmdDb250ZW50UHJvdmlkZXIgPSBmdW5jdGlvbihzb3VyY2VVUkwp
CiB7CiAgICAgdGhpcy5fc291cmNlVVJMID0gc291cmNlVVJMOworICAgIHRoaXMuX29uU291cmNl
TG9hZCA9IG51bGw7CiB9CiAKIFdlYkluc3BlY3Rvci5Db21waWxlclNvdXJjZU1hcHBpbmdDb250
ZW50UHJvdmlkZXIucHJvdG90eXBlID0gewpAQCAtMjEzLDE0ICsyMTQsMjMgQEAgV2ViSW5zcGVj
dG9yLkNvbXBpbGVyU291cmNlTWFwcGluZ0NvbnRlbnRQcm92aWRlci5wcm90b3R5cGUgPSB7CiAg
ICAgICovCiAgICAgcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKLSAg
ICAgICAgdmFyIHNvdXJjZUNvZGUgPSAiIjsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIC8v
IEZJWE1FOiBtYWtlIHNlbmRSZXF1ZXN0IGFzeW5jLgotICAgICAgICAgICAgc291cmNlQ29kZSA9
IEluc3BlY3RvckZyb250ZW5kSG9zdC5sb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KHRoaXMuX3Nv
dXJjZVVSTCk7Ci0gICAgICAgIH0gY2F0Y2goZSkgewotICAgICAgICAgICAgY29uc29sZS5lcnJv
cihlLm1lc3NhZ2UpOworICAgICAgICBpZiAoSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlzU3R1Yikg
eworICAgICAgICAgICAgdGhpcy5fb25Tb3VyY2VMb2FkID0gY2FsbGJhY2s7CisgICAgICAgICAg
ICBmdW5jdGlvbiB3cmFwQ2FsbGJhY2soZXJyb3IsIGNvbnRlbnQpIHsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9vblNvdXJjZUxvYWQoY29udGVudCwgZmFsc2UsICJ0ZXh0L2phdmFzY3JpcHQiKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgUGFnZUFnZW50LmxvYWRSZXNvdXJjZUFzeW5j
aHJvbm91c2x5KHRoaXMuX3NvdXJjZVVSTCwgd3JhcENhbGxiYWNrLmJpbmQodGhpcykpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgdmFyIHNvdXJjZUNvZGUgPSAiIjsKKyAgICAgICAg
ICAgIHRyeSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IG1ha2Ugc2VuZFJlcXVlc3QgYXN5
bmMuCisgICAgICAgICAgICAgICAgc291cmNlQ29kZSA9IEluc3BlY3RvckZyb250ZW5kSG9zdC5s
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KHRoaXMuX3NvdXJjZVVSTCk7CisgICAgICAgICAgICB9
IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUubWVzc2FnZSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBjYWxsYmFjayhzb3VyY2VDb2RlLCBmYWxzZSwgInRl
eHQvamF2YXNjcmlwdCIpOwogICAgICAgICB9Ci0gICAgICAgIGNhbGxiYWNrKHNvdXJjZUNvZGUs
IGZhbHNlLCAidGV4dC9qYXZhc2NyaXB0Iik7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclNjcmlwdE1hcHBp
bmcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyU2NyaXB0
TWFwcGluZy5qcwppbmRleCAxMmNlOTI4MDExZDk2ZjIwNDVmYzlkNmI1NWRkNWFmODhmY2QyYjA0
Li44ZDY5NzVjZWVmMDlmMGYyZWVlZTg3ZjdlNGRmODIwZjExZTM4YzRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyU2NyaXB0TWFwcGluZy5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyU2NyaXB0
TWFwcGluZy5qcwpAQCAtNTQsNyArNTQsOCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTY3JpcHRN
YXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBzY3JpcHQgPSAvKiogQHR5
cGUge1dlYkluc3BlY3Rvci5TY3JpcHR9ICovIGV2ZW50LmRhdGE7CiAgICAgICAgIHZhciBtYXBw
aW5nID0gdGhpcy5fbWFwcGluZ0ZvclNjcmlwdChzY3JpcHQpOwotICAgICAgICBtYXBwaW5nLmFk
ZFNjcmlwdChzY3JpcHQpOworICAgICAgICBpZiAobWFwcGluZykKKyAgICAgICAgICAgIG1hcHBp
bmcuYWRkU2NyaXB0KHNjcmlwdCwgbnVsbCk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtNzEsNiAr
NzIsOCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zb3VyY2VNYXBzRW5hYmxlZC5nZXQo
KSAmJiBzY3JpcHQuc291cmNlTWFwVVJMKSB7CiAgICAgICAgICAgICBpZiAodGhpcy5fY29tcGls
ZXJNYXBwaW5nLmxvYWRTb3VyY2VNYXBGb3JTY3JpcHQoc2NyaXB0KSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gdGhpcy5fY29tcGlsZXJNYXBwaW5nOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHJldHVybiBudWxsOyAvKiogInRoaXMuX2NvbXBpbGVyTWFwcGluZyIgd2lsbCBs
b2FkIHNvdXJjZU1hcCBhc3luY2hyb25vdXNseS4gKi8KICAgICAgICAgfQogCiAgICAgICAgIHJl
dHVybiB0aGlzLl9yZXNvdXJjZU1hcHBpbmc7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164691</attachid>
            <date>2012-09-19 01:40:18 -0700</date>
            <delta_ts>2012-09-19 06:15:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97065-20120919163942.patch</filename>
            <type>text/plain</type>
            <size>13273</size>
            <attacher name="Peter Wang">PeterHWang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4ODcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmRlMmE2MTA5YmI3MzRj
ZjExNjk3MjA0ZWI3NGFmOTlhNjc3ZDA1Ni4uZjNkOGYwNjg3Y2Q2MjlmODE1ZTc2OTU3NGE0OTdj
YTNmMGNiN2U2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA5LTE4ICBQZXRl
ciBXYW5nICA8cGV0ZXIud2FuZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogU291cmNlIE1hcHBpbmcgZG9lc24ndCB3b3JrIHdoZW4gaW5zcGVjdG9yIGlzIGlu
IHJlbW90ZS1tb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NzA2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBhIG1ldGhvZCAiV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50Ojpsb2FkUmVzb3Vy
Y2VBc3luY2hyb25vdXNseSIgdG8gc3VwcG9ydCBsb2FkaW5nIHNvdXJjZSBtYXAKKyAgICAgICAg
ZmlsZSB3aGVuIGluc3BlY3RvciBpcyBpbiByZW1vdGUtbW9kZS4KKworICAgICAgICBObyBuZXcg
dGVzdCBjYXNlLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci0xLjAuanNvbjoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdl
bnQ6OmxvYWRSZXNvdXJjZUFzeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXBp
bGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuY3JlYXRlU291cmNlTWFwUGFyc2VyKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlLmxvYWRTb3Vy
Y2VNYXBGb3JTY3JpcHQuY2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXBpbGVy
U2NyaXB0TWFwcGluZy5wcm90b3R5cGUubG9hZFNvdXJjZU1hcEZvclNjcmlwdCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fcmVzZXQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29udGVudFByb3ZpZGVycy5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db21waWxlclNvdXJjZU1hcHBpbmdDb250ZW50UHJvdmlkZXIpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXBpbGVyU291cmNlTWFwcGluZ0NvbnRlbnRQcm92aWRl
ci5wcm90b3R5cGUucmVxdWVzdENvbnRlbnQud3JhcENhbGxiYWNrKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Db21waWxlclNvdXJjZU1hcHBpbmdDb250ZW50UHJvdmlkZXIucHJvdG90eXBlLnJl
cXVlc3RDb250ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyU2Ny
aXB0TWFwcGluZy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNjcmlwdE1hcHBp
bmcucHJvdG90eXBlLl9wYXJzZWRTY3JpcHRTb3VyY2UpOgorCiAyMDEyLTA5LTE5ICBBbGxhbiBT
YW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmVy
dCByMTI3NDU3IGFuZCBmb2xsb3dpbmcgZml4ZXMgZHVlIHRvIHNldmVyYWwgaGl0LXRlc3Rpbmcg
cmVncmVzc2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3ItMS4wLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLTEuMC5qc29u
CmluZGV4IGUxOWU3ZTA2MDkxYmNjNTUxM2IyZDcxYjQzMzE5ZGNiMGVhYmZmMTYuLjc3NmI4ZWM2
ZDE5NDFhNDVlMzBkN2FjYjk3MWQxZTJlMWM5N2EzZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3ItMS4wLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci0xLjAuanNvbgpAQCAtMjcwLDYgKzI3MCwxNiBAQAogICAgICAgICAg
ICAgICAgICJoaWRkZW4iOiB0cnVlCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICJuYW1lIjogImxvYWRSZXNvdXJjZUFzeW5jaHJvbm91c2x5IiwKKyAgICAg
ICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGhlIHVybCBvZiByZXNv
dXJjZSB0byBiZSBsb2FkZWQuIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAg
ICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXNvdXJjZUNv
bnRlbnQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiU291cmNlIENvbnRlbnQu
IiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
TG9hZCByZXNvdXJjZSB0aHJvdWdoIGJhY2tlbmQgYXN5bmNocm9ub3VzbHkuIgorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJzZWFyY2hJblJl
c291cmNlIiwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2VhcmNoZXMgZm9yIGdp
dmVuIHN0cmluZyBpbiByZXNvdXJjZSBjb250ZW50LiIsCiAgICAgICAgICAgICAgICAgInBhcmFt
ZXRlcnMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggZjEx
MzdjNzhkMDY2OTAzODI4ZjFlZjg1YTExMTIxMTFiMWM3NmZlNi4uMzBmNzdhMTE5NTllMzczZTk5
ZTA5NGY0NGFiYjA3MGFlODk3NmI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgpAQCAtMjc0LDYgKzI3NCwxNiBAQAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0
cnVlCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1l
IjogImxvYWRSZXNvdXJjZUFzeW5jaHJvbm91c2x5IiwKKyAgICAgICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJz
dHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGhlIHVybCBvZiByZXNvdXJjZSB0byBiZSBsb2FkZWQu
IiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXNvdXJjZUNvbnRlbnQiLCAidHlwZSI6ICJz
dHJpbmciLCAiZGVzY3JpcHRpb24iOiAiU291cmNlIENvbnRlbnQuIiB9CisgICAgICAgICAgICAg
ICAgXSwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTG9hZCByZXNvdXJjZSB0aHJv
dWdoIGJhY2tlbmQgYXN5bmNocm9ub3VzbHkuIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJzZWFyY2hJblJlc291cmNlIiwKICAgICAgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2VhcmNoZXMgZm9yIGdpdmVuIHN0cmluZyBpbiByZXNv
dXJjZSBjb250ZW50LiIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IGZhMjNh
YWFmOWJlZDBmNTQ4NGMxNTcwZWMzNmYyZDNlOTBmY2M4ZGEuLjg4NmU4NjkzOGU2MTM2MDI1Y2Vl
YWQ5MzM2M2IxMjBjZDUzNjc1YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC01NjksNiArNTY5LDE4IEBAIHZvaWQgSW5zcGVjdG9y
UGFnZUFnZW50OjpnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBj
b25zdCBTdHJpCiAgICAgcmVzb3VyY2VDb250ZW50KGVycm9yU3RyaW5nLCBmcmFtZSwgS1VSTChQ
YXJzZWRVUkxTdHJpbmcsIHVybCksIGNvbnRlbnQsIGJhc2U2NEVuY29kZWQpOwogfQogCit2b2lk
IEluc3BlY3RvclBhZ2VBZ2VudDo6bG9hZFJlc291cmNlQXN5bmNocm9ub3VzbHkoRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIHVybCwgU3RyaW5nKiBzb3VyY2VDb250ZW50KQoreworICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KHVybCk7CisgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJH
RVQiKTsKKworICAgIFZlY3RvcjxjaGFyPiBkYXRhOworICAgIFJlc291cmNlRXJyb3IgZXJyb3I7
CisgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZTsKKyAgICBtX3BhZ2UtPm1haW5GcmFtZSgp
LT5sb2FkZXIoKS0+bG9hZFJlc291cmNlU3luY2hyb25vdXNseShyZXF1ZXN0LCBEb05vdEFsbG93
U3RvcmVkQ3JlZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSk7CisgICAgKnNvdXJjZUNv
bnRlbnQgPSBTdHJpbmcoZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsKK30KKwogc3RhdGljIGJv
b2wgdGV4dENvbnRlbnRGb3JDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVz
b3VyY2UsIFN0cmluZyogcmVzdWx0KQogewogICAgIGlmIChoYXNUZXh0Q29udGVudChjYWNoZWRS
ZXNvdXJjZSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuaAppbmRleCA3YjcxYjIxMWZhNDRlZTExZTM1NmQ3ZTFhMDVlZmNkZmFlZjA0ZDlmLi44ZjFi
ZTc4NGQ0ZTk2NjIxYzk4MzQyOGI2ZDc2ZDAyN2YyNDcyZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0xMDMsNiArMTAzLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVDb29raWUoRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcmIGNvb2tpZU5hbWUsIGNvbnN0IFN0cmluZyYgZG9tYWluKTsKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0UmVzb3VyY2VUcmVlKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpQYWdl
OjpGcmFtZVJlc291cmNlVHJlZT4mKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0UmVzb3VyY2VDb250
ZW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBTdHJpbmcmIHVy
bCwgU3RyaW5nKiBjb250ZW50LCBib29sKiBiYXNlNjRFbmNvZGVkKTsKKyAgICB2aXJ0dWFsIHZv
aWQgbG9hZFJlc291cmNlQXN5bmNocm9ub3VzbHkoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcm
IHVybCwgU3RyaW5nKiBzb3VyY2VDb250ZW50KTsKICAgICB2aXJ0dWFsIHZvaWQgc2VhcmNoSW5S
ZXNvdXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IFN0cmluZyYgcXVlcnksIGNvbnN0IGJvb2wqIG9wdGlvbmFsQ2FzZVNlbnNp
dGl2ZSwgY29uc3QgYm9vbCogb3B0aW9uYWxJc1JlZ2V4LCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFy
cmF5PFR5cGVCdWlsZGVyOjpQYWdlOjpTZWFyY2hNYXRjaD4gPiYpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZWFyY2hJblJlc291cmNlcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYsIGNvbnN0IGJv
b2wqIGNhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wqIGlzUmVnZXgsIFJlZlB0cjxUeXBlQnVpbGRl
cjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlBhZ2U6OlNlYXJjaFJlc3VsdD4gPiYpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXREb2N1bWVudENvbnRlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGZy
YW1lSWQsIGNvbnN0IFN0cmluZyYgaHRtbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzCmluZGV4IDdm
NGI5ZGFlM2QwYTk4MGZjN2ZhNGQ0Zjc3MzJjNzM5OTkxYmQzZmIuLmM1ODFhNDY0MTc4N2I4MGM4
NDJhN2E2NTNkMGU2ZTg3ZDk3ZWY5YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzCkBAIC00NCw2
ICs0NCw4IEBAIFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcgPSBmdW5jdGlvbih3
b3Jrc3BhY2UpCiAgICAgdGhpcy5fb3JpZ2luYWxVSVNvdXJjZUNvZGVGb3JTY3JpcHRJZCA9IHt9
OwogICAgIHRoaXMuX3NjcmlwdEZvck9yaWdpbmFsVUlTb3VyY2UgPSBuZXcgTWFwKCk7CiAgICAg
dGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5F
dmVudHMuUHJvamVjdFdpbGxSZXNldCwgdGhpcy5fcmVzZXQsIHRoaXMpOworICAgIHRoaXMuX3Nj
cmlwdENhY2hlID0gbnVsbDsKKyAgICB0aGlzLl9hc3luY0xvYWRTb3VyY2UgPSBmYWxzZTsKIH0K
IAogV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CkBAIC04
MiwxNCArODQsMTggQEAgV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5
cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0fSBzY3Jp
cHQKICAgICAgKi8KLSAgICBhZGRTY3JpcHQ6IGZ1bmN0aW9uKHNjcmlwdCkKKyAgICBhZGRTY3Jp
cHQ6IGZ1bmN0aW9uKHNjcmlwdCwgc291cmNlTWFwUGFyc2VyKQogICAgIHsKICAgICAgICAgdmFy
IG9yaWdpbmFsVUlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNl
KHNjcmlwdC5zb3VyY2VVUkwsIG51bGwsIHNjcmlwdCwgdHJ1ZSk7CiAgICAgICAgIHRoaXMuX29y
aWdpbmFsVUlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXSA9IG9yaWdpbmFs
VUlTb3VyY2VDb2RlOwogICAgICAgICB0aGlzLl9zY3JpcHRGb3JPcmlnaW5hbFVJU291cmNlLnB1
dChvcmlnaW5hbFVJU291cmNlQ29kZSwgc2NyaXB0KTsKICAgICAgICAgdGhpcy5fd29ya3NwYWNl
LnByb2plY3QoKS5hZGRVSVNvdXJjZUNvZGUob3JpZ2luYWxVSVNvdXJjZUNvZGUpOwogCi0gICAg
ICAgIHZhciBzb3VyY2VNYXAgPSB0aGlzLmxvYWRTb3VyY2VNYXBGb3JTY3JpcHQoc2NyaXB0KTsK
KyAgICAgICAgdmFyIHNvdXJjZU1hcDsKKyAgICAgICAgaWYgKCFzb3VyY2VNYXBQYXJzZXIpCisg
ICAgICAgICAgICBzb3VyY2VNYXAgPSB0aGlzLmxvYWRTb3VyY2VNYXBGb3JTY3JpcHQoc2NyaXB0
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc291cmNlTWFwID0gc291cmNlTWFwUGFyc2Vy
OwogCiAgICAgICAgIGlmICh0aGlzLl9zY3JpcHRGb3JTb3VyY2VNYXAuZ2V0KHNvdXJjZU1hcCkp
IHsKICAgICAgICAgICAgIHRoaXMuX3NvdXJjZU1hcEZvclNjcmlwdElkW3NjcmlwdC5zY3JpcHRJ
ZF0gPSBzb3VyY2VNYXA7CkBAIC0xMjYsNiArMTMyLDI3IEBAIFdlYkluc3BlY3Rvci5Db21waWxl
clNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBA
cGFyYW0ge3N0cmluZ30gc291cmNlTWFwVVJMCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHNvdXJj
ZUNvbnRlbnQKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuU291cmNlTWFwUGFyc2VyfQor
ICAgICAqLworICAgIGNyZWF0ZVNvdXJjZU1hcFBhcnNlcjogZnVuY3Rpb24oc291cmNlTWFwVVJM
LCBzb3VyY2VDb250ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHNvdXJjZU1hcDsKKyAgICAgICAg
dHJ5IHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VDb250ZW50LnNsaWNlKDAsIDMpID09PSAiKV19
IikKKyAgICAgICAgICAgICAgICBzb3VyY2VDb250ZW50ID0gc291cmNlQ29udGVudC5zdWJzdHJp
bmcocmVzcG9uc2UuaW5kZXhPZignXG4nKSk7CisgICAgICAgICAgICB2YXIgcGF5bG9hZCA9IC8q
KiBAdHlwZSB7V2ViSW5zcGVjdG9yLlNvdXJjZU1hcFBheWxvYWR9ICovIEpTT04ucGFyc2Uoc291
cmNlQ29udGVudCk7CisgICAgICAgICAgICBzb3VyY2VNYXAgPSBuZXcgV2ViSW5zcGVjdG9yLlNv
dXJjZU1hcFBhcnNlcihzb3VyY2VNYXBVUkwsIHBheWxvYWQpOworICAgICAgICB9IGNhdGNoKGUp
IHsKKyAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZS5tZXNzYWdlKTsKKyAgICAgICAgICAgIHJl
dHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHRoaXMuX3NvdXJjZU1hcEJ5VVJMW3NvdXJj
ZU1hcFVSTF0gPSBzb3VyY2VNYXA7CisgICAgICAgIHJldHVybiBzb3VyY2VNYXA7CisgICAgfSwK
KworICAgIC8qKgogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNjcmlwdH0gc2NyaXB0CiAg
ICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlNvdXJjZU1hcFBhcnNlcn0KICAgICAgKi8KQEAg
LTEzNiwxOSArMTYzLDI0IEBAIFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJv
dG90eXBlID0gewogICAgICAgICBpZiAoc291cmNlTWFwKQogICAgICAgICAgICAgcmV0dXJuIHNv
dXJjZU1hcDsKIAotICAgICAgICB0cnkgeworICAgICAgICBpZiAoSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmlzU3R1YikgeworICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIHNvdXJj
ZSkgeworICAgICAgICAgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgICAgIHZhciBzb3VyY2VNYXBQYXJzZXIgPSB0aGlzLmNyZWF0ZVNv
dXJjZU1hcFBhcnNlcihzb3VyY2VNYXBVUkwsIHNvdXJjZSk7CisgICAgICAgICAgICAgICAgdGhp
cy5hZGRTY3JpcHQodGhpcy5fc2NyaXB0Q2FjaGUsIHNvdXJjZU1hcFBhcnNlcik7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIFBhZ2VBZ2VudC5sb2FkUmVzb3VyY2VBc3luY2hyb25vdXNs
eShzb3VyY2VNYXBVUkwsIGNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICAgICAgdGhpcy5f
YXN5bmNMb2FkU291cmNlID0gdHJ1ZTsKKyAgICAgICAgICAgIHRoaXMuX3NjcmlwdENhY2hlID0g
c2NyaXB0OworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICAvLyBGSVhNRTogbWFrZSBzZW5kUmVxdWVzdCBhc3luYy4KICAgICAgICAgICAgIHZh
ciByZXNwb25zZSA9IEluc3BlY3RvckZyb250ZW5kSG9zdC5sb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KHNvdXJjZU1hcFVSTCk7Ci0gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc2xpY2UoMCwgMykg
PT09ICIpXX0iKQotICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2Uuc3Vic3RyaW5n
KHJlc3BvbnNlLmluZGV4T2YoJ1xuJykpOwotICAgICAgICAgICAgdmFyIHBheWxvYWQgPSAvKiog
QHR5cGUge1dlYkluc3BlY3Rvci5Tb3VyY2VNYXBQYXlsb2FkfSAqLyBKU09OLnBhcnNlKHJlc3Bv
bnNlKTsKLSAgICAgICAgICAgIHNvdXJjZU1hcCA9IG5ldyBXZWJJbnNwZWN0b3IuU291cmNlTWFw
UGFyc2VyKHNvdXJjZU1hcFVSTCwgcGF5bG9hZCk7Ci0gICAgICAgIH0gY2F0Y2goZSkgewotICAg
ICAgICAgICAgY29uc29sZS5lcnJvcihlLm1lc3NhZ2UpOwotICAgICAgICAgICAgcmV0dXJuIG51
bGw7CisgICAgICAgICAgICB0aGlzLl9hc3luY0xvYWRTb3VyY2UgPSBmYWxzZTsKKyAgICAgICAg
ICAgIHJldHVybiB0aGlzLmNyZWF0ZVNvdXJjZU1hcFBhcnNlcihzb3VyY2VNYXBVUkwsIHJlc3Bv
bnNlKTsKICAgICAgICAgfQotICAgICAgICB0aGlzLl9zb3VyY2VNYXBCeVVSTFtzb3VyY2VNYXBV
UkxdID0gc291cmNlTWFwOwotICAgICAgICByZXR1cm4gc291cmNlTWFwOwogICAgIH0sCiAKICAg
ICBfcmVzZXQ6IGZ1bmN0aW9uKCkKQEAgLTE2MCw2ICsxOTIsOCBAQCBXZWJJbnNwZWN0b3IuQ29t
cGlsZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fdWlTb3VyY2VD
b2RlQnlVUkwgPSB7fTsKICAgICAgICAgdGhpcy5fb3JpZ2luYWxVSVNvdXJjZUNvZGVGb3JTY3Jp
cHRJZCA9IHt9OwogICAgICAgICB0aGlzLl9zY3JpcHRGb3JPcmlnaW5hbFVJU291cmNlID0gbmV3
IE1hcCgpOworICAgICAgICB0aGlzLl9zY3JpcHRDYWNoZSA9IG51bGw7CisgICAgICAgIHRoaXMu
X2FzeW5jTG9hZFNvdXJjZSA9IGZhbHNlOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db250ZW50UHJvdmlkZXJzLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db250ZW50UHJvdmlkZXJzLmpzCmluZGV4IDlj
MTk5NTNkZDJkMGRhZGZhNGE5YjZjNmIyMzJkMzRjM2YwMWRmZWUuLjUxYzdiNTMwZWMzOTc4ZDA4
ZjQ5YTcxOTgxODk5ZmU1OTFlMjNhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29udGVudFByb3ZpZGVycy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NvbnRlbnRQcm92aWRlcnMuanMKQEAgLTE4OSw2ICsxODksNyBA
QCBXZWJJbnNwZWN0b3IuQ29uY2F0ZW5hdGVkU2NyaXB0c0NvbnRlbnRQcm92aWRlci5wcm90b3R5
cGUuX19wcm90b19fID0gV2ViSW5zcGVjdAogV2ViSW5zcGVjdG9yLkNvbXBpbGVyU291cmNlTWFw
cGluZ0NvbnRlbnRQcm92aWRlciA9IGZ1bmN0aW9uKHNvdXJjZVVSTCkKIHsKICAgICB0aGlzLl9z
b3VyY2VVUkwgPSBzb3VyY2VVUkw7CisgICAgdGhpcy5fb25Tb3VyY2VMb2FkID0gbnVsbDsKIH0K
IAogV2ViSW5zcGVjdG9yLkNvbXBpbGVyU291cmNlTWFwcGluZ0NvbnRlbnRQcm92aWRlci5wcm90
b3R5cGUgPSB7CkBAIC0yMTMsMTQgKzIxNCwyMyBAQCBXZWJJbnNwZWN0b3IuQ29tcGlsZXJTb3Vy
Y2VNYXBwaW5nQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICByZXF1
ZXN0Q29udGVudDogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewotICAgICAgICB2YXIgc291cmNl
Q29kZSA9ICIiOwotICAgICAgICB0cnkgewotICAgICAgICAgICAgLy8gRklYTUU6IG1ha2Ugc2Vu
ZFJlcXVlc3QgYXN5bmMuCi0gICAgICAgICAgICBzb3VyY2VDb2RlID0gSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkodGhpcy5fc291cmNlVVJMKTsKLSAgICAg
ICAgfSBjYXRjaChlKSB7Ci0gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUubWVzc2FnZSk7Cisg
ICAgICAgIGlmIChJbnNwZWN0b3JGcm9udGVuZEhvc3QuaXNTdHViKSB7CisgICAgICAgICAgICB0
aGlzLl9vblNvdXJjZUxvYWQgPSBjYWxsYmFjazsKKyAgICAgICAgICAgIGZ1bmN0aW9uIHdyYXBD
YWxsYmFjayhlcnJvciwgY29udGVudCkgeworICAgICAgICAgICAgICAgIHRoaXMuX29uU291cmNl
TG9hZChjb250ZW50LCBmYWxzZSwgInRleHQvamF2YXNjcmlwdCIpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBQYWdlQWdlbnQubG9hZFJlc291cmNlQXN5bmNocm9ub3VzbHkodGhpcy5f
c291cmNlVVJMLCB3cmFwQ2FsbGJhY2suYmluZCh0aGlzKSk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICB2YXIgc291cmNlQ29kZSA9ICIiOworICAgICAgICAgICAgdHJ5IHsKKyAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogbWFrZSBzZW5kUmVxdWVzdCBhc3luYy4KKyAgICAgICAgICAg
ICAgICBzb3VyY2VDb2RlID0gSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHkodGhpcy5fc291cmNlVVJMKTsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAg
ICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZS5tZXNzYWdlKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGNhbGxiYWNrKHNvdXJjZUNvZGUsIGZhbHNlLCAidGV4dC9qYXZhc2NyaXB0Iik7
CiAgICAgICAgIH0KLSAgICAgICAgY2FsbGJhY2soc291cmNlQ29kZSwgZmFsc2UsICJ0ZXh0L2ph
dmFzY3JpcHQiKTsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyU2NyaXB0TWFwcGluZy5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpzCmluZGV4
IDEyY2U5MjgwMTFkOTZmMjA0NWZjOWQ2YjU1ZGQ1YWY4OGZjZDJiMDQuLjVlNDg4NjQzMmY2YTQz
ZjA0NTgzODVkZGJjMmJlNjcxNDdiN2JhNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpzCkBAIC01
NCw3ICs1NCw4IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNjcmlwdE1hcHBpbmcucHJvdG90eXBl
ID0gewogICAgIHsKICAgICAgICAgdmFyIHNjcmlwdCA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9y
LlNjcmlwdH0gKi8gZXZlbnQuZGF0YTsKICAgICAgICAgdmFyIG1hcHBpbmcgPSB0aGlzLl9tYXBw
aW5nRm9yU2NyaXB0KHNjcmlwdCk7Ci0gICAgICAgIG1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdCk7
CisgICAgICAgIGlmICghbWFwcGluZy5fYXN5bmNMb2FkU291cmNlKQorICAgICAgICAgICAgbWFw
cGluZy5hZGRTY3JpcHQoc2NyaXB0LCBudWxsKTsKICAgICB9LAogCiAgICAgLyoqCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164725</attachid>
            <date>2012-09-19 06:15:39 -0700</date>
            <delta_ts>2012-09-19 06:31:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97065-20120919211500.patch</filename>
            <type>text/plain</type>
            <size>13166</size>
            <attacher name="Peter Wang">PeterHWang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4ODcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmRlMmE2MTA5YmI3MzRj
ZjExNjk3MjA0ZWI3NGFmOTlhNjc3ZDA1Ni4uZjNkOGYwNjg3Y2Q2MjlmODE1ZTc2OTU3NGE0OTdj
YTNmMGNiN2U2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA5LTE4ICBQZXRl
ciBXYW5nICA8cGV0ZXIud2FuZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogU291cmNlIE1hcHBpbmcgZG9lc24ndCB3b3JrIHdoZW4gaW5zcGVjdG9yIGlzIGlu
IHJlbW90ZS1tb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NzA2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBhIG1ldGhvZCAiV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50Ojpsb2FkUmVzb3Vy
Y2VBc3luY2hyb25vdXNseSIgdG8gc3VwcG9ydCBsb2FkaW5nIHNvdXJjZSBtYXAKKyAgICAgICAg
ZmlsZSB3aGVuIGluc3BlY3RvciBpcyBpbiByZW1vdGUtbW9kZS4KKworICAgICAgICBObyBuZXcg
dGVzdCBjYXNlLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci0xLjAuanNvbjoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdl
bnQ6OmxvYWRSZXNvdXJjZUFzeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXBp
bGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuY3JlYXRlU291cmNlTWFwUGFyc2VyKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlLmxvYWRTb3Vy
Y2VNYXBGb3JTY3JpcHQuY2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXBpbGVy
U2NyaXB0TWFwcGluZy5wcm90b3R5cGUubG9hZFNvdXJjZU1hcEZvclNjcmlwdCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fcmVzZXQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29udGVudFByb3ZpZGVycy5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db21waWxlclNvdXJjZU1hcHBpbmdDb250ZW50UHJvdmlkZXIpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXBpbGVyU291cmNlTWFwcGluZ0NvbnRlbnRQcm92aWRl
ci5wcm90b3R5cGUucmVxdWVzdENvbnRlbnQud3JhcENhbGxiYWNrKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Db21waWxlclNvdXJjZU1hcHBpbmdDb250ZW50UHJvdmlkZXIucHJvdG90eXBlLnJl
cXVlc3RDb250ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyU2Ny
aXB0TWFwcGluZy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNjcmlwdE1hcHBp
bmcucHJvdG90eXBlLl9wYXJzZWRTY3JpcHRTb3VyY2UpOgorCiAyMDEyLTA5LTE5ICBBbGxhbiBT
YW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmVy
dCByMTI3NDU3IGFuZCBmb2xsb3dpbmcgZml4ZXMgZHVlIHRvIHNldmVyYWwgaGl0LXRlc3Rpbmcg
cmVncmVzc2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3ItMS4wLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLTEuMC5qc29u
CmluZGV4IGUxOWU3ZTA2MDkxYmNjNTUxM2IyZDcxYjQzMzE5ZGNiMGVhYmZmMTYuLjc3NmI4ZWM2
ZDE5NDFhNDVlMzBkN2FjYjk3MWQxZTJlMWM5N2EzZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3ItMS4wLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci0xLjAuanNvbgpAQCAtMjcwLDYgKzI3MCwxNiBAQAogICAgICAgICAg
ICAgICAgICJoaWRkZW4iOiB0cnVlCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICJuYW1lIjogImxvYWRSZXNvdXJjZUFzeW5jaHJvbm91c2x5IiwKKyAgICAg
ICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGhlIHVybCBvZiByZXNv
dXJjZSB0byBiZSBsb2FkZWQuIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAg
ICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXNvdXJjZUNv
bnRlbnQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiU291cmNlIENvbnRlbnQu
IiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
TG9hZCByZXNvdXJjZSB0aHJvdWdoIGJhY2tlbmQgYXN5bmNocm9ub3VzbHkuIgorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJzZWFyY2hJblJl
c291cmNlIiwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2VhcmNoZXMgZm9yIGdp
dmVuIHN0cmluZyBpbiByZXNvdXJjZSBjb250ZW50LiIsCiAgICAgICAgICAgICAgICAgInBhcmFt
ZXRlcnMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggZjEx
MzdjNzhkMDY2OTAzODI4ZjFlZjg1YTExMTIxMTFiMWM3NmZlNi4uMzBmNzdhMTE5NTllMzczZTk5
ZTA5NGY0NGFiYjA3MGFlODk3NmI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgpAQCAtMjc0LDYgKzI3NCwxNiBAQAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0
cnVlCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1l
IjogImxvYWRSZXNvdXJjZUFzeW5jaHJvbm91c2x5IiwKKyAgICAgICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJz
dHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGhlIHVybCBvZiByZXNvdXJjZSB0byBiZSBsb2FkZWQu
IiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXNvdXJjZUNvbnRlbnQiLCAidHlwZSI6ICJz
dHJpbmciLCAiZGVzY3JpcHRpb24iOiAiU291cmNlIENvbnRlbnQuIiB9CisgICAgICAgICAgICAg
ICAgXSwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTG9hZCByZXNvdXJjZSB0aHJv
dWdoIGJhY2tlbmQgYXN5bmNocm9ub3VzbHkuIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJzZWFyY2hJblJlc291cmNlIiwKICAgICAgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2VhcmNoZXMgZm9yIGdpdmVuIHN0cmluZyBpbiByZXNv
dXJjZSBjb250ZW50LiIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IGZhMjNh
YWFmOWJlZDBmNTQ4NGMxNTcwZWMzNmYyZDNlOTBmY2M4ZGEuLjg4NmU4NjkzOGU2MTM2MDI1Y2Vl
YWQ5MzM2M2IxMjBjZDUzNjc1YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC01NjksNiArNTY5LDE4IEBAIHZvaWQgSW5zcGVjdG9y
UGFnZUFnZW50OjpnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBj
b25zdCBTdHJpCiAgICAgcmVzb3VyY2VDb250ZW50KGVycm9yU3RyaW5nLCBmcmFtZSwgS1VSTChQ
YXJzZWRVUkxTdHJpbmcsIHVybCksIGNvbnRlbnQsIGJhc2U2NEVuY29kZWQpOwogfQogCit2b2lk
IEluc3BlY3RvclBhZ2VBZ2VudDo6bG9hZFJlc291cmNlQXN5bmNocm9ub3VzbHkoRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIHVybCwgU3RyaW5nKiBzb3VyY2VDb250ZW50KQoreworICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KHVybCk7CisgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJH
RVQiKTsKKworICAgIFZlY3RvcjxjaGFyPiBkYXRhOworICAgIFJlc291cmNlRXJyb3IgZXJyb3I7
CisgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZTsKKyAgICBtX3BhZ2UtPm1haW5GcmFtZSgp
LT5sb2FkZXIoKS0+bG9hZFJlc291cmNlU3luY2hyb25vdXNseShyZXF1ZXN0LCBEb05vdEFsbG93
U3RvcmVkQ3JlZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSk7CisgICAgKnNvdXJjZUNv
bnRlbnQgPSBTdHJpbmcoZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsKK30KKwogc3RhdGljIGJv
b2wgdGV4dENvbnRlbnRGb3JDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVz
b3VyY2UsIFN0cmluZyogcmVzdWx0KQogewogICAgIGlmIChoYXNUZXh0Q29udGVudChjYWNoZWRS
ZXNvdXJjZSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuaAppbmRleCA3YjcxYjIxMWZhNDRlZTExZTM1NmQ3ZTFhMDVlZmNkZmFlZjA0ZDlmLi44ZjFi
ZTc4NGQ0ZTk2NjIxYzk4MzQyOGI2ZDc2ZDAyN2YyNDcyZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0xMDMsNiArMTAzLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVDb29raWUoRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcmIGNvb2tpZU5hbWUsIGNvbnN0IFN0cmluZyYgZG9tYWluKTsKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0UmVzb3VyY2VUcmVlKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpQYWdl
OjpGcmFtZVJlc291cmNlVHJlZT4mKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0UmVzb3VyY2VDb250
ZW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBTdHJpbmcmIHVy
bCwgU3RyaW5nKiBjb250ZW50LCBib29sKiBiYXNlNjRFbmNvZGVkKTsKKyAgICB2aXJ0dWFsIHZv
aWQgbG9hZFJlc291cmNlQXN5bmNocm9ub3VzbHkoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcm
IHVybCwgU3RyaW5nKiBzb3VyY2VDb250ZW50KTsKICAgICB2aXJ0dWFsIHZvaWQgc2VhcmNoSW5S
ZXNvdXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IFN0cmluZyYgcXVlcnksIGNvbnN0IGJvb2wqIG9wdGlvbmFsQ2FzZVNlbnNp
dGl2ZSwgY29uc3QgYm9vbCogb3B0aW9uYWxJc1JlZ2V4LCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFy
cmF5PFR5cGVCdWlsZGVyOjpQYWdlOjpTZWFyY2hNYXRjaD4gPiYpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZWFyY2hJblJlc291cmNlcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYsIGNvbnN0IGJv
b2wqIGNhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wqIGlzUmVnZXgsIFJlZlB0cjxUeXBlQnVpbGRl
cjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlBhZ2U6OlNlYXJjaFJlc3VsdD4gPiYpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXREb2N1bWVudENvbnRlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGZy
YW1lSWQsIGNvbnN0IFN0cmluZyYgaHRtbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzCmluZGV4IDdm
NGI5ZGFlM2QwYTk4MGZjN2ZhNGQ0Zjc3MzJjNzM5OTkxYmQzZmIuLmQ0MjAxZGY0MDMzMzhjZTlk
M2JkMGI2YTc5MDQxNTNjZjAzNDI2ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzCkBAIC00NCw2
ICs0NCw3IEBAIFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcgPSBmdW5jdGlvbih3
b3Jrc3BhY2UpCiAgICAgdGhpcy5fb3JpZ2luYWxVSVNvdXJjZUNvZGVGb3JTY3JpcHRJZCA9IHt9
OwogICAgIHRoaXMuX3NjcmlwdEZvck9yaWdpbmFsVUlTb3VyY2UgPSBuZXcgTWFwKCk7CiAgICAg
dGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5F
dmVudHMuUHJvamVjdFdpbGxSZXNldCwgdGhpcy5fcmVzZXQsIHRoaXMpOworICAgIHRoaXMuX3Nj
cmlwdENhY2hlID0gbnVsbDsKIH0KIAogV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGlu
Zy5wcm90b3R5cGUgPSB7CkBAIC04MiwxNCArODMsMTggQEAgV2ViSW5zcGVjdG9yLkNvbXBpbGVy
U2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuU2NyaXB0fSBzY3JpcHQKICAgICAgKi8KLSAgICBhZGRTY3JpcHQ6IGZ1bmN0aW9u
KHNjcmlwdCkKKyAgICBhZGRTY3JpcHQ6IGZ1bmN0aW9uKHNjcmlwdCwgc291cmNlTWFwUGFyc2Vy
KQogICAgIHsKICAgICAgICAgdmFyIG9yaWdpbmFsVUlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3Bl
Y3Rvci5KYXZhU2NyaXB0U291cmNlKHNjcmlwdC5zb3VyY2VVUkwsIG51bGwsIHNjcmlwdCwgdHJ1
ZSk7CiAgICAgICAgIHRoaXMuX29yaWdpbmFsVUlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0
LnNjcmlwdElkXSA9IG9yaWdpbmFsVUlTb3VyY2VDb2RlOwogICAgICAgICB0aGlzLl9zY3JpcHRG
b3JPcmlnaW5hbFVJU291cmNlLnB1dChvcmlnaW5hbFVJU291cmNlQ29kZSwgc2NyaXB0KTsKICAg
ICAgICAgdGhpcy5fd29ya3NwYWNlLnByb2plY3QoKS5hZGRVSVNvdXJjZUNvZGUob3JpZ2luYWxV
SVNvdXJjZUNvZGUpOwogCi0gICAgICAgIHZhciBzb3VyY2VNYXAgPSB0aGlzLmxvYWRTb3VyY2VN
YXBGb3JTY3JpcHQoc2NyaXB0KTsKKyAgICAgICAgdmFyIHNvdXJjZU1hcDsKKyAgICAgICAgaWYg
KCFzb3VyY2VNYXBQYXJzZXIpCisgICAgICAgICAgICBzb3VyY2VNYXAgPSB0aGlzLmxvYWRTb3Vy
Y2VNYXBGb3JTY3JpcHQoc2NyaXB0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc291cmNl
TWFwID0gc291cmNlTWFwUGFyc2VyOwogCiAgICAgICAgIGlmICh0aGlzLl9zY3JpcHRGb3JTb3Vy
Y2VNYXAuZ2V0KHNvdXJjZU1hcCkpIHsKICAgICAgICAgICAgIHRoaXMuX3NvdXJjZU1hcEZvclNj
cmlwdElkW3NjcmlwdC5zY3JpcHRJZF0gPSBzb3VyY2VNYXA7CkBAIC0xMjYsNiArMTMxLDI3IEBA
IFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgIH0s
CiAKICAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gc291cmNlTWFwVVJMCisgICAgICog
QHBhcmFtIHtzdHJpbmd9IHNvdXJjZUNvbnRlbnQKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0
b3IuU291cmNlTWFwUGFyc2VyfQorICAgICAqLworICAgIGNyZWF0ZVNvdXJjZU1hcFBhcnNlcjog
ZnVuY3Rpb24oc291cmNlTWFwVVJMLCBzb3VyY2VDb250ZW50KQorICAgIHsKKyAgICAgICAgdmFy
IHNvdXJjZU1hcDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VDb250ZW50
LnNsaWNlKDAsIDMpID09PSAiKV19IikKKyAgICAgICAgICAgICAgICBzb3VyY2VDb250ZW50ID0g
c291cmNlQ29udGVudC5zdWJzdHJpbmcocmVzcG9uc2UuaW5kZXhPZignXG4nKSk7CisgICAgICAg
ICAgICB2YXIgcGF5bG9hZCA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlNvdXJjZU1hcFBheWxv
YWR9ICovIEpTT04ucGFyc2Uoc291cmNlQ29udGVudCk7CisgICAgICAgICAgICBzb3VyY2VNYXAg
PSBuZXcgV2ViSW5zcGVjdG9yLlNvdXJjZU1hcFBhcnNlcihzb3VyY2VNYXBVUkwsIHBheWxvYWQp
OworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZS5tZXNz
YWdlKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHRoaXMu
X3NvdXJjZU1hcEJ5VVJMW3NvdXJjZU1hcFVSTF0gPSBzb3VyY2VNYXA7CisgICAgICAgIHJldHVy
biBzb3VyY2VNYXA7CisgICAgfSwKKworICAgIC8qKgogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlNjcmlwdH0gc2NyaXB0CiAgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlNvdXJjZU1h
cFBhcnNlcn0KICAgICAgKi8KQEAgLTEzNiwxOSArMTYyLDI0IEBAIFdlYkluc3BlY3Rvci5Db21w
aWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAgICBpZiAoc291cmNlTWFwKQog
ICAgICAgICAgICAgcmV0dXJuIHNvdXJjZU1hcDsKIAotICAgICAgICB0cnkgeworICAgICAgICB2
YXIgcmVzcG9uc2UgPSAie1widmVyc2lvblwiOjN9IjsKKyAgICAgICAgaWYgKEluc3BlY3RvckZy
b250ZW5kSG9zdC5pc1N0dWIpIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVycm9y
LCBzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIHZhciByZWFsU291cmNlTWFwID0gdGhpcy5j
cmVhdGVTb3VyY2VNYXBQYXJzZXIoc291cmNlTWFwVVJMLCBzb3VyY2UpOworICAgICAgICAgICAg
ICAgIHRoaXMuYWRkU2NyaXB0KHRoaXMuX3NjcmlwdENhY2hlLCByZWFsU291cmNlTWFwKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgUGFnZUFnZW50LmxvYWRSZXNvdXJjZUFzeW5jaHJv
bm91c2x5KHNvdXJjZU1hcFVSTCwgY2FsbGJhY2suYmluZCh0aGlzKSk7CisgICAgICAgICAgICB0
aGlzLl9zY3JpcHRDYWNoZSA9IHNjcmlwdDsKKyAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IC8vIEZJWE1FOiBtYWtlIHNlbmRSZXF1ZXN0IGFzeW5jLgotICAgICAgICAgICAgdmFyIHJlc3Bv
bnNlID0gSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoc291
cmNlTWFwVVJMKTsKLSAgICAgICAgICAgIGlmIChyZXNwb25zZS5zbGljZSgwLCAzKSA9PT0gIild
fSIpCi0gICAgICAgICAgICAgICAgcmVzcG9uc2UgPSByZXNwb25zZS5zdWJzdHJpbmcocmVzcG9u
c2UuaW5kZXhPZignXG4nKSk7Ci0gICAgICAgICAgICB2YXIgcGF5bG9hZCA9IC8qKiBAdHlwZSB7
V2ViSW5zcGVjdG9yLlNvdXJjZU1hcFBheWxvYWR9ICovIEpTT04ucGFyc2UocmVzcG9uc2UpOwot
ICAgICAgICAgICAgc291cmNlTWFwID0gbmV3IFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBQYXJzZXIo
c291cmNlTWFwVVJMLCBwYXlsb2FkKTsKLSAgICAgICAgfSBjYXRjaChlKSB7Ci0gICAgICAgICAg
ICBjb25zb2xlLmVycm9yKGUubWVzc2FnZSk7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAg
ICAgICAgICAgIHJlc3BvbnNlID0gSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoc291cmNlTWFwVVJMKTsKICAgICAgICAgfQotICAgICAgICB0aGlzLl9zb3Vy
Y2VNYXBCeVVSTFtzb3VyY2VNYXBVUkxdID0gc291cmNlTWFwOwotICAgICAgICByZXR1cm4gc291
cmNlTWFwOworCisgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNvdXJjZU1hcFBhcnNlcihzb3Vy
Y2VNYXBVUkwsIHJlc3BvbnNlKTsKICAgICB9LAogCiAgICAgX3Jlc2V0OiBmdW5jdGlvbigpCkBA
IC0xNjAsNiArMTkxLDcgQEAgV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZUJ5VVJMID0ge307CiAgICAgICAg
IHRoaXMuX29yaWdpbmFsVUlTb3VyY2VDb2RlRm9yU2NyaXB0SWQgPSB7fTsKICAgICAgICAgdGhp
cy5fc2NyaXB0Rm9yT3JpZ2luYWxVSVNvdXJjZSA9IG5ldyBNYXAoKTsKKyAgICAgICAgdGhpcy5f
c2NyaXB0Q2FjaGUgPSBudWxsOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db250ZW50UHJvdmlkZXJzLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db250ZW50UHJvdmlkZXJzLmpzCmluZGV4IDljMTk5NTNk
ZDJkMGRhZGZhNGE5YjZjNmIyMzJkMzRjM2YwMWRmZWUuLjUxYzdiNTMwZWMzOTc4ZDA4ZjQ5YTcx
OTgxODk5ZmU1OTFlMjNhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ29udGVudFByb3ZpZGVycy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnRlbnRQcm92aWRlcnMuanMKQEAgLTE4OSw2ICsxODksNyBAQCBXZWJJ
bnNwZWN0b3IuQ29uY2F0ZW5hdGVkU2NyaXB0c0NvbnRlbnRQcm92aWRlci5wcm90b3R5cGUuX19w
cm90b19fID0gV2ViSW5zcGVjdAogV2ViSW5zcGVjdG9yLkNvbXBpbGVyU291cmNlTWFwcGluZ0Nv
bnRlbnRQcm92aWRlciA9IGZ1bmN0aW9uKHNvdXJjZVVSTCkKIHsKICAgICB0aGlzLl9zb3VyY2VV
UkwgPSBzb3VyY2VVUkw7CisgICAgdGhpcy5fb25Tb3VyY2VMb2FkID0gbnVsbDsKIH0KIAogV2Vi
SW5zcGVjdG9yLkNvbXBpbGVyU291cmNlTWFwcGluZ0NvbnRlbnRQcm92aWRlci5wcm90b3R5cGUg
PSB7CkBAIC0yMTMsMTQgKzIxNCwyMyBAQCBXZWJJbnNwZWN0b3IuQ29tcGlsZXJTb3VyY2VNYXBw
aW5nQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICByZXF1ZXN0Q29u
dGVudDogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewotICAgICAgICB2YXIgc291cmNlQ29kZSA9
ICIiOwotICAgICAgICB0cnkgewotICAgICAgICAgICAgLy8gRklYTUU6IG1ha2Ugc2VuZFJlcXVl
c3QgYXN5bmMuCi0gICAgICAgICAgICBzb3VyY2VDb2RlID0gSW5zcGVjdG9yRnJvbnRlbmRIb3N0
LmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkodGhpcy5fc291cmNlVVJMKTsKLSAgICAgICAgfSBj
YXRjaChlKSB7Ci0gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUubWVzc2FnZSk7CisgICAgICAg
IGlmIChJbnNwZWN0b3JGcm9udGVuZEhvc3QuaXNTdHViKSB7CisgICAgICAgICAgICB0aGlzLl9v
blNvdXJjZUxvYWQgPSBjYWxsYmFjazsKKyAgICAgICAgICAgIGZ1bmN0aW9uIHdyYXBDYWxsYmFj
ayhlcnJvciwgY29udGVudCkgeworICAgICAgICAgICAgICAgIHRoaXMuX29uU291cmNlTG9hZChj
b250ZW50LCBmYWxzZSwgInRleHQvamF2YXNjcmlwdCIpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBQYWdlQWdlbnQubG9hZFJlc291cmNlQXN5bmNocm9ub3VzbHkodGhpcy5fc291cmNl
VVJMLCB3cmFwQ2FsbGJhY2suYmluZCh0aGlzKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICB2YXIgc291cmNlQ29kZSA9ICIiOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogbWFrZSBzZW5kUmVxdWVzdCBhc3luYy4KKyAgICAgICAgICAgICAgICBz
b3VyY2VDb2RlID0gSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkodGhpcy5fc291cmNlVVJMKTsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAg
ICAgICAgIGNvbnNvbGUuZXJyb3IoZS5tZXNzYWdlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGNhbGxiYWNrKHNvdXJjZUNvZGUsIGZhbHNlLCAidGV4dC9qYXZhc2NyaXB0Iik7CiAgICAg
ICAgIH0KLSAgICAgICAgY2FsbGJhY2soc291cmNlQ29kZSwgZmFsc2UsICJ0ZXh0L2phdmFzY3Jp
cHQiKTsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyU2NyaXB0TWFwcGluZy5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpzCmluZGV4IDEyY2U5
MjgwMTFkOTZmMjA0NWZjOWQ2YjU1ZGQ1YWY4OGZjZDJiMDQuLjQxZWExNjZlNjgzNGFmNWYwNjdi
NTlkNjAwNDE2YWEyYWU4ZTM3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpzCkBAIC01NCw3ICs1
NCw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewog
ICAgIHsKICAgICAgICAgdmFyIHNjcmlwdCA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlNjcmlw
dH0gKi8gZXZlbnQuZGF0YTsKICAgICAgICAgdmFyIG1hcHBpbmcgPSB0aGlzLl9tYXBwaW5nRm9y
U2NyaXB0KHNjcmlwdCk7Ci0gICAgICAgIG1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdCk7CisgICAg
ICAgIG1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdCwgbnVsbCk7CiAgICAgfSwKIAogICAgIC8qKgo=
</data>
<flag name="review"
          id="176582"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>