<?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>76383</bug_id>
          
          <creation_ts>2012-01-16 07:58:20 -0800</creation_ts>
          <short_desc>Web Inspector: do not merge iframes into a single DOM hierarchy.</short_desc>
          <delta_ts>2012-01-16 12:41:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>536554</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-01-16 07:58:20 -0800</bug_when>
    <thetext>&lt;div&gt;
  &lt;iframe&gt;
    &lt;html&gt;
    &lt;/html&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

DOM tree above has been returned in a single node hierarchy where &lt;html&gt;&apos;s parent node was &lt;iframe&gt;. After this change, same tree will be rendered as 

&lt;div&gt;
  &lt;iframe&gt;
    #document
      &lt;html&gt;
      &lt;/html&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

with explicit #document entry that corresponds to the iframe&apos;s content document. It will not be returned as one of the iframe&apos;s children, but will rather be a contentDocument property of the iframe itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536555</commentid>
    <comment_count>1</comment_count>
      <attachid>122638</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-01-16 08:00:02 -0800</bug_when>
    <thetext>Created attachment 122638
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536572</commentid>
    <comment_count>2</comment_count>
      <attachid>122638</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2012-01-16 08:24:54 -0800</bug_when>
    <thetext>Comment on attachment 122638
Patch

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

&gt; Source/WebCore/ChangeLog:29
&gt; +        ():

You should fix this.

&gt; Source/WebCore/inspector/front-end/DOMAgent.js:39
&gt; +    this._domAgent = domAgent;

Why does domAgent need passed to everyone? WebInspector.domAgent is a singleton.

&gt; Source/WebCore/inspector/front-end/DOMAgent.js:67
&gt; +        this.children = [this._contentDocument];

Why does children contain itself? Shouldn&apos;t it stay empty so it can be populated with the root DOM nodes?

&gt; Source/WebCore/inspector/front-end/DOMAgent.js:508
&gt;      this.documentURL;

Why is this here? Is it for the compiler?

&gt; Source/WebCore/inspector/front-end/ElementsTreeOutline.js:-1524
&gt; -            case Node.DOCUMENT_NODE:
&gt; -                info.titleDOM.appendChild(document.createTextNode(&quot;Document&quot;));
&gt; -                break;
&gt; -

Because it was never used?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536574</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2012-01-16 08:26:08 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; &lt;div&gt;
&gt;   &lt;iframe&gt;
&gt;     &lt;html&gt;
&gt;     &lt;/html&gt;
&gt;   &lt;/iframe&gt;
&gt; &lt;/div&gt;
&gt; 
&gt; DOM tree above has been returned in a single node hierarchy where &lt;html&gt;&apos;s parent node was &lt;iframe&gt;. After this change, same tree will be rendered as 
&gt; 
&gt; &lt;div&gt;
&gt;   &lt;iframe&gt;
&gt;     #document
&gt;       &lt;html&gt;
&gt;       &lt;/html&gt;
&gt;   &lt;/iframe&gt;
&gt; &lt;/div&gt;
&gt; 
&gt; with explicit #document entry that corresponds to the iframe&apos;s content document. It will not be returned as one of the iframe&apos;s children, but will rather be a contentDocument property of the iframe itself.

So just walking the children/parentNode chain you will still get this:

&lt;div&gt;
  &lt;iframe&gt;
    &lt;html&gt;
    &lt;/html&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

Right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536584</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-01-16 08:48:09 -0800</bug_when>
    <thetext>&gt; &gt; +        ():
&gt; 
&gt; You should fix this.

Done.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/DOMAgent.js:39
&gt; &gt; +    this._domAgent = domAgent;
&gt; 
&gt; Why does domAgent need passed to everyone? WebInspector.domAgent is a singleton.

I&apos;m trying to get rid of the singletons where possible to ease the potential testing using mocks. It is also compiler non-friendly since singletons are usually assigned in the client code (inspector.js) that is outside the compiled component (DOMAgent in this case).

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/DOMAgent.js:67
&gt; &gt; +        this.children = [this._contentDocument];
&gt; 
&gt; Why does children contain itself? Shouldn&apos;t it stay empty so it can be populated with the root DOM nodes?

In this case, children of &lt;iframe&gt; is single element, contentDocument. It gets populated with this single root node instantly. I.e. you don&apos;t need to ask for frame&apos;s children to the the #document over the protocol.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/DOMAgent.js:508
&gt; &gt;      this.documentURL;
&gt; 
&gt; Why is this here? Is it for the compiler?
&gt; 

Yes :(

&gt; &gt; Source/WebCore/inspector/front-end/ElementsTreeOutline.js:-1524
&gt; &gt; -            case Node.DOCUMENT_NODE:
&gt; &gt; -                info.titleDOM.appendChild(document.createTextNode(&quot;Document&quot;));
&gt; &gt; -                break;
&gt; &gt; -
&gt; 
&gt; Because it was never used?

Because there is a generic code that uses .nodeName below. Using #document as label makes it more clear to the user.

(In reply to comment #3)

&gt; So just walking the children/parentNode chain you will still get this:
&gt; 
&gt; &lt;div&gt;
&gt;   &lt;iframe&gt;
&gt;     &lt;html&gt;
&gt;     &lt;/html&gt;
&gt;   &lt;/iframe&gt;
&gt; &lt;/div&gt;
&gt; 
&gt; Right?

Walking the children/parentNode chain on the protocol level will give

&lt;div&gt;
  &lt;iframe&gt;
&lt;/div&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536592</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-01-16 08:56:41 -0800</bug_when>
    <thetext>Committed r105067: &lt;http://trac.webkit.org/changeset/105067&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536712</commentid>
    <comment_count>6</comment_count>
      <attachid>122638</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2012-01-16 12:41:45 -0800</bug_when>
    <thetext>Comment on attachment 122638
Patch

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

&gt; Source/WebCore/inspector/front-end/DOMAgent.js:509
&gt;      this._listeners = {};

This looks like dead code. No where is _listeners used. Looks like WebInspector.DOMDocument is a pointless subclass at this point.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122638</attachid>
            <date>2012-01-16 08:00:02 -0800</date>
            <delta_ts>2012-01-16 12:41:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76383-20120116200000.patch</filename>
            <type>text/plain</type>
            <size>18469</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTlmYzg1ODNlM2NlOGUy
OTZiODdkOWEyNGI5OTk5M2Q2OWJmYTY4ZC4uOTFlN2Q0NjM4NmJjNjE3ZWY1YjA4ODg4NTAxNTli
ODljYWM4ZGEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAxLTE2ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBkbyBub3QgbWVyZ2UgaWZyYW1lcyBpbnRvIGEgc2luZ2xlIERPTSBoaWVyYXJjaHkuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM4MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL0RP
TUVkaXRvci5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRE9NQWdlbnQ6OnVuYmluZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01B
Z2VudDo6YnVpbGRPYmplY3RGb3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50Ojppbm5lckZpcnN0Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9N
QWdlbnQ6OmlubmVyUGFyZW50Tm9kZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9D
U1NTdHlsZU1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJv
dG90eXBlLnNldFJ1bGVTZWxlY3Rvci5jYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
Q1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuc2V0UnVsZVNlbGVjdG9yKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5hZGRSdWxlLmNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5hZGRSdWxlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5fb3duZXJEb2N1bWVudElk
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRPTU5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJv
dG90eXBlLmdldENoaWxkTm9kZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJv
dG90eXBlLl9pbnNlcnRDaGlsZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90
b3R5cGUuX3NldENoaWxkcmVuUGF5bG9hZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NRG9j
dW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZS5fc2V0RGV0
YWNoZWRSb290KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91
dGxpbmUuanM6CisgICAgICAgICgpOgorCiAyMDEyLTAxLTE1ICBQYXZlbCBGZWxkbWFuICA8cGZl
bGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGVkaXRpbmcgYm9k
eSBtdWx0aXBsaWVzIGhlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9E
T01FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01FZGl0b3IuaAppbmRleCA5
YTA2ZTQ2MzY4Y2Y0N2EwNWFlNGE2NzAyZjM3ZDUyNDU5ZWFjZDgxLi40YWZmYjAwYjFhNjk5MTA1
NDZlOWRkNDU2NmExMjQ5OWQ0NzU4YzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvRE9NRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTUVkaXRv
ci5oCkBAIC00Myw3ICs0Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29udGFp
bmVyTm9kZTsKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBOYW1l
ZE5vZGVNYXA7CiBjbGFzcyBOb2RlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24KaW5kZXggMzA4YzFiMDY4MDJmYmJlZWViMjQ3ZGVmYTkwMjYyZjNiYzlmZWZlYi4uNjJl
ZDkzN2Q4OTg3MGExMzM5NDQyZmMwMjdjNjIwYTExMjc1ZTNhNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMTE0Myw3ICsxMTQzLDggQEAKICAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJpbnRlcm5hbFN1YnNldCIsICJ0eXBlIjogInN0cmluZyIsICJv
cHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICI8Y29kZT5Eb2N1bWVudFR5cGU8L2NvZGU+
J3MgaW50ZXJuYWxTdWJzZXQuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInht
bFZlcnNpb24iLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRp
b24iOiAiPGNvZGU+RG9jdW1lbnQ8L2NvZGU+J3MgWE1MIHZlcnNpb24gaW4gY2FzZSBvZiBYTUwg
ZG9jdW1lbnRzLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuYW1lIiwgInR5
cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIjxjb2RlPkF0
dHI8L2NvZGU+J3MgbmFtZS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidmFs
dWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAi
PGNvZGU+QXR0cjwvY29kZT4ncyB2YWx1ZS4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJ2YWx1ZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICI8Y29kZT5BdHRyPC9jb2RlPidzIHZhbHVlLiIgfSwKKyAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJjb250ZW50RG9jdW1lbnQiLCAiJHJlZiI6ICJOb2RlIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNvbnRlbnQgZG9jdW1lbnQgZm9yIGZyYW1lIG93bmVy
IGVsZW1lbnRzLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkRPTSBpbnRlcmFjdGlvbiBpcyBpbXBsZW1lbnRlZCBpbiB0ZXJtcyBvZiBtaXJy
b3Igb2JqZWN0cyB0aGF0IHJlcHJlc2VudCB0aGUgYWN0dWFsIERPTSBub2Rlcy4gRE9NTm9kZSBp
cyBhIGJhc2Ugbm9kZSBtaXJyb3IgdHlwZS4iCiAgICAgICAgICAgICB9LApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggYWI2MjkwNWI2MDUx
N2ExZGQyYTFjYTY1MTExMjA4OGZiZDg1MGEyMy4uZThlZmE5MDc1MWI1NWNmYWJhZWRmMTE1MDFm
N2I1MmYyYTE4ZDlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwCkBAIC0yOTIsMTYgKzI5MiwxOSBAQCBpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6
OmJpbmQoTm9kZSogbm9kZSwgTm9kZVRvSWRNYXAqIG5vZGVzTWFwKQogCiB2b2lkIEluc3BlY3Rv
ckRPTUFnZW50Ojp1bmJpbmQoTm9kZSogbm9kZSwgTm9kZVRvSWRNYXAqIG5vZGVzTWFwKQogewor
ICAgIGludCBpZCA9IG5vZGVzTWFwLT5nZXQobm9kZSk7CisgICAgaWYgKCFpZCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9pZFRvTm9kZS5yZW1vdmUoaWQpOworCiAgICAgaWYgKG5vZGUtPmlz
RnJhbWVPd25lckVsZW1lbnQoKSkgewogICAgICAgICBjb25zdCBIVE1MRnJhbWVPd25lckVsZW1l
bnQqIGZyYW1lT3duZXIgPSBzdGF0aWNfY2FzdDxjb25zdCBIVE1MRnJhbWVPd25lckVsZW1lbnQq
Pihub2RlKTsKICAgICAgICAgaWYgKG1fZG9tTGlzdGVuZXIpCiAgICAgICAgICAgICBtX2RvbUxp
c3RlbmVyLT5kaWRSZW1vdmVEb2N1bWVudChmcmFtZU93bmVyLT5jb250ZW50RG9jdW1lbnQoKSk7
CisgICAgICAgIHVuYmluZChmcmFtZU93bmVyLT5jb250ZW50RG9jdW1lbnQoKSwgbm9kZXNNYXAp
OwogICAgIH0KIAotICAgIGludCBpZCA9IG5vZGVzTWFwLT5nZXQobm9kZSk7Ci0gICAgaWYgKCFp
ZCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1faWRUb05vZGUucmVtb3ZlKGlkKTsKICAgICBub2Rl
c01hcC0+cmVtb3ZlKG5vZGUpOwogICAgIGJvb2wgY2hpbGRyZW5SZXF1ZXN0ZWQgPSBtX2NoaWxk
cmVuUmVxdWVzdGVkLmNvbnRhaW5zKGlkKTsKICAgICBpZiAoY2hpbGRyZW5SZXF1ZXN0ZWQpIHsK
QEAgLTExNDUsNyArMTE0OCw5IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0
b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JOb2RlKE5vZGUqIG5vZGUsIGluCiAgICAgICAgICAg
ICB2YWx1ZS0+c2V0QXJyYXkoImF0dHJpYnV0ZXMiLCBidWlsZEFycmF5Rm9yRWxlbWVudEF0dHJp
YnV0ZXMoZWxlbWVudCkpOwogICAgICAgICAgICAgaWYgKG5vZGUtPmlzRnJhbWVPd25lckVsZW1l
bnQoKSkgewogICAgICAgICAgICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCogZnJhbWVPd25l
ciA9IHN0YXRpY19jYXN0PEhUTUxGcmFtZU93bmVyRWxlbWVudCo+KG5vZGUpOwotICAgICAgICAg
ICAgICAgIHZhbHVlLT5zZXREb2N1bWVudFVSTChkb2N1bWVudFVSTFN0cmluZyhmcmFtZU93bmVy
LT5jb250ZW50RG9jdW1lbnQoKSkpOworICAgICAgICAgICAgICAgIERvY3VtZW50KiBkb2MgPSBm
cmFtZU93bmVyLT5jb250ZW50RG9jdW1lbnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoZG9jKQor
ICAgICAgICAgICAgICAgICAgICB2YWx1ZS0+c2V0Q29udGVudERvY3VtZW50KGJ1aWxkT2JqZWN0
Rm9yTm9kZShkb2MsIDAsIG5vZGVzTWFwKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxz
ZSBpZiAobm9kZS0+bm9kZVR5cGUoKSA9PSBOb2RlOjpET0NVTUVOVF9OT0RFKSB7CiAgICAgICAg
ICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG5vZGUpOwpA
QCAtMTIyNiwxMiArMTIzMSw2IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0
b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JFdmVudExpc3RlbmVyKGNvbnN0CiAKIE5vZGUqIElu
c3BlY3RvckRPTUFnZW50Ojppbm5lckZpcnN0Q2hpbGQoTm9kZSogbm9kZSkKIHsKLSAgICBpZiAo
bm9kZS0+aXNGcmFtZU93bmVyRWxlbWVudCgpKSB7Ci0gICAgICAgIEhUTUxGcmFtZU93bmVyRWxl
bWVudCogZnJhbWVPd25lciA9IHN0YXRpY19jYXN0PEhUTUxGcmFtZU93bmVyRWxlbWVudCo+KG5v
ZGUpOwotICAgICAgICBEb2N1bWVudCogZG9jID0gZnJhbWVPd25lci0+Y29udGVudERvY3VtZW50
KCk7Ci0gICAgICAgIGlmIChkb2MpCi0gICAgICAgICAgICByZXR1cm4gZG9jLT5maXJzdENoaWxk
KCk7Ci0gICAgfQogICAgIG5vZGUgPSBub2RlLT5maXJzdENoaWxkKCk7CiAgICAgd2hpbGUgKGlz
V2hpdGVzcGFjZShub2RlKSkKICAgICAgICAgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCk7CkBA
IC0xMjY3LDEwICsxMjY2LDcgQEAgdW5zaWduZWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmlubmVyQ2hp
bGROb2RlQ291bnQoTm9kZSogbm9kZSkKIAogTm9kZSogSW5zcGVjdG9yRE9NQWdlbnQ6OmlubmVy
UGFyZW50Tm9kZShOb2RlKiBub2RlKQogewotICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IG5v
ZGUtPnBhcmVudE5vZGUoKTsKLSAgICBpZiAocGFyZW50ICYmIHBhcmVudC0+aXNEb2N1bWVudE5v
ZGUoKSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PERvY3VtZW50Kj4ocGFyZW50KS0+b3du
ZXJFbGVtZW50KCk7Ci0gICAgcmV0dXJuIHBhcmVudDsKKyAgICByZXR1cm4gbm9kZS0+cGFyZW50
Tm9kZSgpOwogfQogCiBib29sIEluc3BlY3RvckRPTUFnZW50Ojppc1doaXRlc3BhY2UoTm9kZSog
bm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NT
U3R5bGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5
bGVNb2RlbC5qcwppbmRleCA1ZGE3ZTUwNDBiZjdmNjA2MGYxYmJhMDQyNTFhYTQwZjcxZDU2ZjE3
Li4xZWI3ZDAzMmZhYWQ1YTVjMDEyM2E2NzVhNTZkOGJlMmU5ODZkMmExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCkBAIC0x
OTcsOSArMTk3LDkgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgICAgIGZhaWx1cmVDYWxsYmFjaygp
OwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgdmFyIGRvY3VtZW50RWxlbWVu
dElkID0gdGhpcy5fZG9jdW1lbnRFbGVtZW50SWQobm9kZUlkKTsKLSAgICAgICAgICAgICAgICBp
ZiAoZG9jdW1lbnRFbGVtZW50SWQpCi0gICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
b21BZ2VudC5xdWVyeVNlbGVjdG9yQWxsKGRvY3VtZW50RWxlbWVudElkLCBuZXdTZWxlY3Rvciwg
Y2hlY2tBZmZlY3RzQ2FsbGJhY2suYmluZCh0aGlzLCBub2RlSWQsIHN1Y2Nlc3NDYWxsYmFjaywg
cnVsZVBheWxvYWQpKTsKKyAgICAgICAgICAgICAgICB2YXIgb3duZXJEb2N1bWVudElkID0gdGhp
cy5fb3duZXJEb2N1bWVudElkKG5vZGVJZCk7CisgICAgICAgICAgICAgICAgaWYgKG93bmVyRG9j
dW1lbnRJZCkKKyAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnF1ZXJ5
U2VsZWN0b3JBbGwob3duZXJEb2N1bWVudElkLCBuZXdTZWxlY3RvciwgY2hlY2tBZmZlY3RzQ2Fs
bGJhY2suYmluZCh0aGlzLCBub2RlSWQsIHN1Y2Nlc3NDYWxsYmFjaywgcnVsZVBheWxvYWQpKTsK
ICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIGZhaWx1cmVDYWxsYmFj
aygpOwogICAgICAgICAgICAgfQpAQCAtMjQwLDkgKzI0MCw5IEBAIFdlYkluc3BlY3Rvci5DU1NT
dHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAvLyBJbnZhbGlkIHN5bnRh
eCBmb3IgYSBzZWxlY3RvcgogICAgICAgICAgICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOwogICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICB2YXIgZG9jdW1lbnRFbGVtZW50SWQg
PSB0aGlzLl9kb2N1bWVudEVsZW1lbnRJZChub2RlSWQpOwotICAgICAgICAgICAgICAgIGlmIChk
b2N1bWVudEVsZW1lbnRJZCkKLSAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFn
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZG9jdW1lbnRFbGVtZW50SWQsIHNlbGVjdG9yLCBjaGVja0Fm
ZmVjdHNDYWxsYmFjay5iaW5kKHRoaXMsIG5vZGVJZCwgc3VjY2Vzc0NhbGxiYWNrLCBydWxlUGF5
bG9hZCkpOworICAgICAgICAgICAgICAgIHZhciBvd25lckRvY3VtZW50SWQgPSB0aGlzLl9vd25l
ckRvY3VtZW50SWQobm9kZUlkKTsKKyAgICAgICAgICAgICAgICBpZiAob3duZXJEb2N1bWVudElk
KQorICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQucXVlcnlTZWxlY3Rv
ckFsbChvd25lckRvY3VtZW50SWQsIHNlbGVjdG9yLCBjaGVja0FmZmVjdHNDYWxsYmFjay5iaW5k
KHRoaXMsIG5vZGVJZCwgc3VjY2Vzc0NhbGxiYWNrLCBydWxlUGF5bG9hZCkpOwogICAgICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUNhbGxiYWNrKCk7CiAgICAg
ICAgICAgICB9CkBAIC0yNTYsMTIgKzI1NiwxMiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2Rl
bC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdl
Ykluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cy5NZWRpYVF1ZXJ5UmVzdWx0Q2hhbmdlZCk7
CiAgICAgfSwKIAotICAgIF9kb2N1bWVudEVsZW1lbnRJZDogZnVuY3Rpb24obm9kZUlkKQorICAg
IF9vd25lckRvY3VtZW50SWQ6IGZ1bmN0aW9uKG5vZGVJZCkKICAgICB7CiAgICAgICAgIHZhciBu
b2RlID0gV2ViSW5zcGVjdG9yLmRvbUFnZW50Lm5vZGVGb3JJZChub2RlSWQpOwogICAgICAgICBp
ZiAoIW5vZGUpCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgcmV0dXJuIG5vZGUu
b3duZXJEb2N1bWVudEVsZW1lbnQoKS5pZDsKKyAgICAgICAgcmV0dXJuIG5vZGUub3duZXJEb2N1
bWVudCA/IG5vZGUub3duZXJEb2N1bWVudC5pZCA6IG51bGw7CiAgICAgfSwKIAogICAgIC8qKgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKaW5kZXgg
ZmI4NjhmYTkyOGZlNzY4Y2NlMTRmMzQ0MDYwOWI4YTMyZjBlZmI5Zi4uODhkYTgyZWM1ZTZkYzhk
NmRkNTU1ZmQ4YjUyYmVhMzg0YWU4NDEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCkBAIC0zMSwxMCArMzEsMTIgQEAKIAogLyoqCiAgKiBA
Y29uc3RydWN0b3IKLSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkRPTURvY3VtZW50fSBkb2MKKyAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLkRPTUFnZW50fSBkb21BZ2VudAorICogQHBhcmFtIHs/V2Vi
SW5zcGVjdG9yLkRPTURvY3VtZW50fSBkb2MKICAqIEBwYXJhbSB7RE9NQWdlbnQuTm9kZX0gcGF5
bG9hZAogICovCi1XZWJJbnNwZWN0b3IuRE9NTm9kZSA9IGZ1bmN0aW9uKGRvYywgcGF5bG9hZCkg
eworV2ViSW5zcGVjdG9yLkRPTU5vZGUgPSBmdW5jdGlvbihkb21BZ2VudCwgZG9jLCBwYXlsb2Fk
KSB7CisgICAgdGhpcy5fZG9tQWdlbnQgPSBkb21BZ2VudDsKICAgICB0aGlzLm93bmVyRG9jdW1l
bnQgPSBkb2M7CiAKICAgICB0aGlzLmlkID0gcGF5bG9hZC5ub2RlSWQ7CkBAIC02MCwxNSArNjIs
MTggQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUgPSBmdW5jdGlvbihkb2MsIHBheWxvYWQpIHsKICAg
ICBpZiAocGF5bG9hZC5jaGlsZHJlbikKICAgICAgICAgdGhpcy5fc2V0Q2hpbGRyZW5QYXlsb2Fk
KHBheWxvYWQuY2hpbGRyZW4pOwogCi0gICAgdGhpcy5fY29tcHV0ZWRTdHlsZSA9IG51bGw7Ci0g
ICAgdGhpcy5zdHlsZSA9IG51bGw7Ci0gICAgdGhpcy5fbWF0Y2hlZENTU1J1bGVzID0gW107Cisg
ICAgaWYgKHBheWxvYWQuY29udGVudERvY3VtZW50KSB7CisgICAgICAgIHRoaXMuX2NvbnRlbnRE
b2N1bWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuRE9NRG9jdW1lbnQoZG9tQWdlbnQsIHBheWxvYWQu
Y29udGVudERvY3VtZW50KTsKKyAgICAgICAgdGhpcy5jaGlsZHJlbiA9IFt0aGlzLl9jb250ZW50
RG9jdW1lbnRdOworICAgICAgICB0aGlzLl9yZW51bWJlcigpOworICAgICAgICB0aGlzLl9kb21B
Z2VudC5faWRUb0RPTU5vZGVbdGhpcy5fY29udGVudERvY3VtZW50LmlkXSA9IHRoaXMuX2NvbnRl
bnREb2N1bWVudDsKKyAgICB9CiAKICAgICBpZiAodGhpcy5fbm9kZVR5cGUgPT09IE5vZGUuRUxF
TUVOVF9OT0RFKSB7CiAgICAgICAgIC8vIEhUTUwgYW5kIEJPRFkgZnJvbSBpbnRlcm5hbCBpZnJh
bWVzIHNob3VsZCBub3Qgb3ZlcndyaXRlIHRvcC1sZXZlbCBvbmVzLgotICAgICAgICBpZiAoIXRo
aXMub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgdGhpcy5fbm9kZU5hbWUgPT09ICJI
VE1MIikKKyAgICAgICAgaWYgKHRoaXMub3duZXJEb2N1bWVudCAmJiAhdGhpcy5vd25lckRvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudCAmJiB0aGlzLl9ub2RlTmFtZSA9PT0gIkhUTUwiKQogICAgICAg
ICAgICAgdGhpcy5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCA9IHRoaXM7Ci0gICAgICAg
IGlmICghdGhpcy5vd25lckRvY3VtZW50LmJvZHkgJiYgdGhpcy5fbm9kZU5hbWUgPT09ICJCT0RZ
IikKKyAgICAgICAgaWYgKHRoaXMub3duZXJEb2N1bWVudCAmJiAhdGhpcy5vd25lckRvY3VtZW50
LmJvZHkgJiYgdGhpcy5fbm9kZU5hbWUgPT09ICJCT0RZIikKICAgICAgICAgICAgIHRoaXMub3du
ZXJEb2N1bWVudC5ib2R5ID0gdGhpczsKICAgICAgICAgaWYgKHBheWxvYWQuZG9jdW1lbnRVUkwp
CiAgICAgICAgICAgICB0aGlzLmRvY3VtZW50VVJMID0gcGF5bG9hZC5kb2N1bWVudFVSTDsKQEAg
LTI0MSw2ICsyNDYsNyBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICBpZiAoIWVycm9yICYmIGNhbGxiYWNrKQogICAgICAgICAgICAgICAgIGNhbGxiYWNr
KHRoaXMuY2hpbGRyZW4pOwogICAgICAgICB9CisKICAgICAgICAgRE9NQWdlbnQucmVxdWVzdENo
aWxkTm9kZXModGhpcy5pZCwgbXljYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICB9LAogCkBAIC0z
NzEsNyArMzc3LDcgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlID0gewogICAgICAq
LwogICAgIF9pbnNlcnRDaGlsZDogZnVuY3Rpb24ocHJldiwgcGF5bG9hZCkKICAgICB7Ci0gICAg
ICAgIHZhciBub2RlID0gbmV3IFdlYkluc3BlY3Rvci5ET01Ob2RlKHRoaXMub3duZXJEb2N1bWVu
dCwgcGF5bG9hZCk7CisgICAgICAgIHZhciBub2RlID0gbmV3IFdlYkluc3BlY3Rvci5ET01Ob2Rl
KHRoaXMuX2RvbUFnZW50LCB0aGlzLm93bmVyRG9jdW1lbnQsIHBheWxvYWQpOwogICAgICAgICBp
ZiAoIXByZXYpIHsKICAgICAgICAgICAgIGlmICghdGhpcy5jaGlsZHJlbikgewogICAgICAgICAg
ICAgICAgIC8vIEZpcnN0IG5vZGUKQEAgLTQwMiw3ICs0MDgsNyBAQCBXZWJJbnNwZWN0b3IuRE9N
Tm9kZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuY2hpbGRyZW4gPSBbXTsKICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBwYXlsb2Fkcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAg
dmFyIHBheWxvYWQgPSBwYXlsb2Fkc1tpXTsKLSAgICAgICAgICAgIHZhciBub2RlID0gbmV3IFdl
Ykluc3BlY3Rvci5ET01Ob2RlKHRoaXMub3duZXJEb2N1bWVudCwgcGF5bG9hZCk7CisgICAgICAg
ICAgICB2YXIgbm9kZSA9IG5ldyBXZWJJbnNwZWN0b3IuRE9NTm9kZSh0aGlzLl9kb21BZ2VudCwg
dGhpcy5vd25lckRvY3VtZW50LCBwYXlsb2FkKTsKICAgICAgICAgICAgIHRoaXMuY2hpbGRyZW4u
cHVzaChub2RlKTsKICAgICAgICAgfQogICAgICAgICB0aGlzLl9yZW51bWJlcigpOwpAQCAtNDY4
LDE5ICs0NzQsNiBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUgPSB7CiAgICAgfSwK
IAogICAgIC8qKgotICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5ET01Ob2RlfQotICAgICAq
LwotICAgIG93bmVyRG9jdW1lbnRFbGVtZW50OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICAv
LyBkb2N1bWVudCBlbGVtZW50IGlzIHRoZSBjaGlsZCBvZiB0aGUgZG9jdW1lbnQgLyBmcmFtZSBv
d25lciBub2RlIHRoYXQgaGFzIGRvY3VtZW50VVJMIHByb3BlcnR5LgotICAgICAgICAvLyBGSVhN
RTogcmV0dXJuIGRvY3VtZW50IG5vZGVzIGFzIGEgcGFydCBvZiB0aGUgRE9NIHRyZWUgc3RydWN0
dXJlLgotICAgICAgICB2YXIgbm9kZSA9IHRoaXM7Ci0gICAgICAgIHdoaWxlIChub2RlLnBhcmVu
dE5vZGUgJiYgIW5vZGUucGFyZW50Tm9kZS5kb2N1bWVudFVSTCkKLSAgICAgICAgICAgIG5vZGUg
PSBub2RlLnBhcmVudE5vZGU7Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgIH0sCi0KLSAgICAv
KioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5ET01Ob2RlfSB0YXJnZXROb2RlCiAgICAg
ICogQHBhcmFtIHs/V2ViSW5zcGVjdG9yLkRPTU5vZGV9IGFuY2hvck5vZGUKICAgICAgKiBAcGFy
YW0ge2Z1bmN0aW9uKD9Qcm90b2NvbC5FcnJvcik9fSBjYWxsYmFjawpAQCAtNTA3LDE0ICs1MDAs
MTMgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlID0gewogICovCiBXZWJJbnNwZWN0
b3IuRE9NRG9jdW1lbnQgPSBmdW5jdGlvbihkb21BZ2VudCwgcGF5bG9hZCkKIHsKLSAgICBXZWJJ
bnNwZWN0b3IuRE9NTm9kZS5jYWxsKHRoaXMsIHRoaXMsIHBheWxvYWQpOworICAgIFdlYkluc3Bl
Y3Rvci5ET01Ob2RlLmNhbGwodGhpcywgZG9tQWdlbnQsIHRoaXMsIHBheWxvYWQpOwogCiAgICAg
LyoqCiAgICAgICogQHR5cGUge3N0cmluZ30gRG9jdW1lbnQgbm9kZXMgYWx3YXlzIGhhdmUgZG9j
dW1lbnRVUkwKICAgICAgKi8KICAgICB0aGlzLmRvY3VtZW50VVJMOwogICAgIHRoaXMuX2xpc3Rl
bmVycyA9IHt9OwotICAgIHRoaXMuX2RvbUFnZW50ID0gZG9tQWdlbnQ7CiB9CiAKIFdlYkluc3Bl
Y3Rvci5ET01Eb2N1bWVudC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLkRPTU5v
ZGUucHJvdG90eXBlOwpAQCAtNzU2LDcgKzc0OCw3IEBAIFdlYkluc3BlY3Rvci5ET01BZ2VudC5w
cm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX3NldERldGFjaGVkUm9vdDogZnVuY3Rpb24ocGF5
bG9hZCkKICAgICB7Ci0gICAgICAgIHZhciByb290ID0gbmV3IFdlYkluc3BlY3Rvci5ET01Ob2Rl
KHRoaXMuX2RvY3VtZW50LCBwYXlsb2FkKTsKKyAgICAgICAgdmFyIHJvb3QgPSBuZXcgV2ViSW5z
cGVjdG9yLkRPTU5vZGUodGhpcywgbnVsbCwgcGF5bG9hZCk7CiAgICAgICAgIHRoaXMuX2lkVG9E
T01Ob2RlW3BheWxvYWQubm9kZUlkXSA9IHJvb3Q7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpz
CmluZGV4IDJlOTMyY2ZiZjU4NzliNDc3OTVlY2VlZGRjZDUwOGQ4OGU2YzhhMTYuLmJmMGViZGE0
YTc3YWEwMmNiMzU2N2ZjZTdjMTMxYzFkZjBiMTFmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKQEAg
LTE1MTgsMTAgKzE1MTgsNiBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHZhciBpbmZvID0ge3RpdGxlRE9NOiBkb2N1bWVudC5jcmVhdGVE
b2N1bWVudEZyYWdtZW50KCksIGhhc0NoaWxkcmVuOiB0aGlzLmhhc0NoaWxkcmVufTsKIAogICAg
ICAgICBzd2l0Y2ggKG5vZGUubm9kZVR5cGUoKSkgewotICAgICAgICAgICAgY2FzZSBOb2RlLkRP
Q1VNRU5UX05PREU6Ci0gICAgICAgICAgICAgICAgaW5mby50aXRsZURPTS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiRG9jdW1lbnQiKSk7Ci0gICAgICAgICAgICAgICAgYnJl
YWs7Ci0KICAgICAgICAgICAgIGNhc2UgTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgogICAg
ICAgICAgICAgICAgIGluZm8udGl0bGVET00uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoIkRvY3VtZW50IEZyYWdtZW50IikpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGQyMmQ4MjJjMWRjODMzNWVhZGZmMTA5ODYwNjZkOGQxMzE2ZTQ0NGMuLmRmOTI0MTY5NTQ1
NzQzNTMxZWI5N2Q3ZmYxMWZmZTZmOTE4OGEzMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
Mi0wMS0xNiAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogZG8gbm90IG1lcmdlIGlmcmFtZXMgaW50byBhIHNpbmdsZSBET00gaGll
cmFyY2h5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzYzODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGh0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanM6CisgICAgICAgIChpbml0aWFs
aXplX0VsZW1lbnRUZXN0Lkluc3BlY3RvclRlc3QuZmluZE5vZGUucHJvY2Vzc0NoaWxkcmVuKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWRpcnhtbC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS10ZXN0cy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1sLWJvZHkuaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pZnJhbWUuaHRtbDoKKwogMjAxMi0w
MS0xNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBlZGl0aW5nIGJvZHkgbXVsdGlwbGllcyBoZWFkCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcwppbmRleCAwYWU0NzBm
MDBmOGIxNDk1MTRlMDQ0YTg4OWFjZjY4MmFhOWQ3MDQ5Li43OTk3ZWRlMTFkNzFlYjRiYzhkMDUx
ODE0MzBlMzA5YTRjZTMzOTY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzLXRlc3QuanMKQEAgLTE5LDExICsxOSw2IEBAIEluc3BlY3RvclRlc3Qu
ZmluZE5vZGUgPSBmdW5jdGlvbihtYXRjaEZ1bmN0aW9uLCBjYWxsYmFjaykKICAgICAgICAgICAg
ICAgICBjYWxsYmFjayhyZXN1bHQpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGlmIChjaGlsZE5vZGUuc2hhZG93Um9vdCAmJiBtYXRjaEZ1bmN0
aW9uKGNoaWxkTm9kZS5zaGFkb3dSb290KSkgewotICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNo
aWxkTm9kZS5zaGFkb3dSb290OwotICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQogICAgICAgICAgICAgcGVuZGlu
Z1JlcXVlc3RzKys7CiAgICAgICAgICAgICBjaGlsZE5vZGUuZ2V0Q2hpbGROb2Rlcyhwcm9jZXNz
Q2hpbGRyZW4uYmluZChudWxsLCBmYWxzZSkpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWRpcnhtbC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWRpcnhtbC1leHBlY3RlZC50eHQK
aW5kZXggMTY3M2NiNDA2NjdkZTQ3MzMyMTNiMWE0ZjU3OTM0OWU1MGE3NzBkNy4uNmFkY2JiZTFm
ZmZmMTEyYjgyM2ZiZTkzY2ZkMDAyNDEzYWM4ZjE4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXJ4bWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZGlyeG1sLWV4cGVjdGVkLnR4dApAQCAt
NCw3ICs0LDcgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0OiBbb2JqZWN0IEhUTUxQYXJhZ3Jh
cGhFbGVtZW50XQogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE1OiBbb2JqZWN0IEhUTUxQYXJhZ3Jh
cGhFbGVtZW50XQogVGVzdHMgdGhhdCBjb25zb2xlIGxvZ2dpbmcgZHVtcHMgcHJvcGVyIG1lc3Nh
Z2VzLgogCi1jb25zb2xlLWRpcnhtbC5odG1sOjEyRG9jdW1lbnQKK2NvbnNvbGUtZGlyeG1sLmh0
bWw6MTIjZG9jdW1lbnQKIGNvbnNvbGUtZGlyeG1sLmh0bWw6MTNEb2N1bWVudCBGcmFnbWVudAog
Y29uc29sZS1kaXJ4bWwuaHRtbDoxNDxwPjwvcD4KIGNvbnNvbGUtZGlyeG1sLmh0bWw6MTVbPHA+
PC9wPl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
dGVzdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29s
ZS10ZXN0cy1leHBlY3RlZC50eHQKaW5kZXggZmE2ZWJmNDhkNWRiNjMzNjlmOTY1Zjk0ZjZkMzE4
YmExZmI3NWZkYy4uMDMzNzVhMDdhYzI4YjhmMDc1NzZmOWYyMTRjZTRhYmMzNDc3MGI5ZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS10ZXN0cy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS10ZXN0
cy1leHBlY3RlZC50eHQKQEAgLTM4LDcgKzM4LDcgQEAgY29uc29sZS10ZXN0cy5odG1sOjIzNDIg
Y29uc29sZS1tZXNzYWdlIGNvbnNvbGUtbG9nLWxldmVsCiBjb25zb2xlLXRlc3RzLmh0bWw6MjR0
cnVlIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWxvZy1sZXZlbAogY29uc29sZS10ZXN0cy5odG1s
OjI1bnVsbCBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1sb2ctbGV2ZWwKIGNvbnNvbGUtdGVzdHMu
aHRtbDoyNnVuZGVmaW5lZCBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1sb2ctbGV2ZWwKLWNvbnNv
bGUtdGVzdHMuaHRtbDoyN0RvY3VtZW50IGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWxvZy1sZXZl
bAorY29uc29sZS10ZXN0cy5odG1sOjI3I2RvY3VtZW50IGNvbnNvbGUtbWVzc2FnZSBjb25zb2xl
LWxvZy1sZXZlbAogY29uc29sZS10ZXN0cy5odG1sOjI4ZnVuY3Rpb24gKCkgeyB9IGNvbnNvbGUt
bWVzc2FnZSBjb25zb2xlLWxvZy1sZXZlbAogY29uc29sZS10ZXN0cy5odG1sOjI5ZnVuY3Rpb24g
ZigpIHsgfSBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1sb2ctbGV2ZWwKIGNvbnNvbGUtdGVzdHMu
aHRtbDozMFsxLCAyLCAzXSBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1sb2ctbGV2ZWwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXItaHRtbC1ib2R5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LW91dGVyLWh0bWwtYm9k
eS5odG1sCmluZGV4IGNlMWVmODBkZmEzMjI2N2MzYmZlNzczYzk5NGY5NTU0ODM1NTEwNWMuLmRj
ZmRmOTY2ZTQwZjJiMjMxZjllNjAzNTJhMjUzOGNlNTQ2OTYzYTQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXItaHRtbC1ib2R5Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1sLWJvZHkuaHRtbApA
QCAtNDksNyArNDksNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB7CiAgICAgICAgIGZ1bmN0aW9u
IGR1bXAoKQogICAgICAgICB7Ci0gICAgICAgICAgICAvLyBVc2VyIGNvbnNvbGUubG9nIGZvciBv
dXRwdXQgc2luY2UgYm9keSBoYXMgYmVlbiBvdmVyd3JpdHRlbi4KICAgICAgICAgICAgIERPTUFn
ZW50LmdldE91dGVySFRNTChodG1sTm9kZS5pZCwgY2FsbGJhY2spOwogICAgICAgICAgICAgZnVu
Y3Rpb24gY2FsbGJhY2soZXJyb3IsIHRleHQpCiAgICAgICAgICAgICB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pZnJhbWUuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWlmcmFtZS5odG1sCmluZGV4IGQ4ODJlMmEwZmZh
ZWJkOWQ2ODA0MmViOTM0ZTBlMjJjY2ZlMzNhMDYuLjdlZDE5NTU4NTVlODQwY2VmNWQyZGM5ODUz
YWIyZGUwNzRmN2NjZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
c3R5bGVzLWlmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5
bGVzLWlmcmFtZS5odG1sCkBAIC0xMyw3ICsxMyw3IEBAIGZ1bmN0aW9uIGxvYWRJZnJhbWUoKQog
ewogICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKICAg
ICBpZnJhbWUuc3JjID0gInJlc291cmNlcy9zdHlsZXMtaWZyYW1lLWRhdGEuaHRtbCI7Ci0gICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJtYWluIikuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKIH0KIAogZnVuY3Rpb24gdGVzdCgp
Cg==
</data>
<flag name="review"
          id="123491"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>