<?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>24686</bug_id>
          
          <creation_ts>2009-03-18 17:00:37 -0700</creation_ts>
          <short_desc>Hit testing child RenderLayers of transformed layers is broken</short_desc>
          <delta_ts>2009-03-19 12:14:32 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>ml</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>114254</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-03-18 17:00:37 -0700</bug_when>
    <thetext>There&apos;s a problem in hit testing through 3d content, when you encounter a layer that is a child of layer with a 3d transform. It picks that child layer, even if there&apos;s another layer in front of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114255</commentid>
    <comment_count>1</comment_count>
      <attachid>28738</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-03-18 17:01:17 -0700</bug_when>
    <thetext>Created attachment 28738
Testcase

In the testcase, note how &apos;event-grabber&apos; no longer gets hover style when you hover over one of the inner blue boxes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114281</commentid>
    <comment_count>2</comment_count>
      <attachid>28746</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-03-18 22:09:11 -0700</bug_when>
    <thetext>Created attachment 28746
Patch, testcases, changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114343</commentid>
    <comment_count>3</comment_count>
      <attachid>28746</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-03-19 11:48:51 -0700</bug_when>
    <thetext>Comment on attachment 28746
Patch, testcases, changelog


&gt; +        if (hitTestContents(request, tempResult, layerBounds, hitTestPoint, HitTestSelf) &amp;&amp;
&gt; +                isHitCandidate(this, false, zOffsetForContentsPtr, unflattenedTransformState.get())) {

Seems like funny indentation to me here.  I usually just line up multiple lines with &amp;&amp; or || chains, e.g.,

if (hitTestContents(request, tempResult, layerBounds, hitTestPoint, HitTestSelf) &amp;&amp;
    isHitCandidate(this, false, zOffsetForContentsPtr, unflattenedTransformState.get())) {

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114344</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-19 11:55:33 -0700</bug_when>
    <thetext>I normally put the &amp;&amp; or the || on the beginning of the new line like this:

    if (hitTestContents(request, tempResult, layerBounds, hitTestPoint, HitTestSelf)
            &amp;&amp; isHitCandidate(this, false, zOffsetForContentsPtr, unflattenedTransformState.get())) {
        &lt;body&gt;

I also indent one extra level so it doesn&apos;t have the same indentation as the body. It seems like we should settle on a style and get it into the WebKit coding style guide document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114345</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-03-19 12:14:32 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/41840</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>28738</attachid>
            <date>2009-03-18 17:01:17 -0700</date>
            <delta_ts>2009-03-18 17:01:17 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>3d-hit-testing.html</filename>
            <type>text/html</type>
            <size>3524</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
Ly9FTiIKICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Cgo8aHRtbCBs
YW5nPSJlbiI+CjxoZWFkPgogIDx0aXRsZT5DYXJvdXNlbCBoaXQgdGVzdGluZzwvdGl0bGU+CiAg
PHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KICAgICNjb250YWluZXIgewog
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHdpZHRoOiAzMjBweDsKICAgICAgaGVpZ2h0
OiA0MTZweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CiAgICB9CgogICAgI3Jpbmct
Y29udGFpbmVyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB3aWR0aDogMzIwcHg7
CiAgICAgIGhlaWdodDogNDE2cHg7CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVz
ZXJ2ZS0zZDsKICAgICAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogMTAwMDsKICAgICAgLXdlYmtpdC1w
ZXJzcGVjdGl2ZS1vcmlnaW46IDUwJSA1MCU7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEo
MCwgMCwgMjU1LCAwLjIpOwogICAgfQoKICAgICNyaW5nLXN0YWdlIHsKICAgICAgcG9zaXRpb246
IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHdpZHRoOiAxMDAl
OwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVz
ZXJ2ZS0zZDsKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTIzNXB4KTsKICAg
IH0KCiAgICAjcm90b3IgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsK
ICAgICAgbGVmdDogNXB4OyAvKiBuZWVkIHRvIG9mZnNldCB0aGUgcmluZyBhIGJpdCBzbyB0aGF0
IGl0J3MgY2VudGVyZWQgKi8KICAgICAgd2lkdGg6IDMxMHB4OwogICAgICBoZWlnaHQ6IDEwMCU7
CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsKICAgICAgLXdlYmtp
dC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7CiAgICB9CgogICAgI3Jpbmcg
ewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMjA4cHg7IC8qIGhhbGYgdGhl
IGhlaWdodCBpdHMgY29udGFpbmVyICovCiAgICAgIHdpZHRoOiAwcHg7CiAgICAgIGhlaWdodDog
MHB4OwogICAgICAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7CiAgICAgIGxp
c3Qtc3R5bGUtdHlwZTogbm9uZTsKICAgICAgLXdlYmtpdC1wYWRkaW5nLXN0YXJ0OiAwOwogICAg
ICBtYXJnaW46IDA7CiAgICB9CgogICAgI3JpbmcgPiBsaSB7CiAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKICAgICAgdG9wOiAtNThweDsgLyogaGFsZiB0aGUgaGVpZ2h0LCBzbyBpdCBvdmVybGll
cyB0aGUgY2VudGVyIG9mIHRoZSB0cmFuc2Zvcm0gb24gdGhlIHJpbmcgKi8KICAgICAgbGVmdDog
MDsKICAgICAgaGVpZ2h0OiAxMTdweDsKICAgICAgd2lkdGg6IDMxMHB4OwogICAgICAtd2Via2l0
LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVz
OiA1cHg7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrOwogICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBncmF5OwogICAgfQoKICAgICNyaW5nID4gbGk6aG92ZXIgewogICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBvcmFuZ2U7CiAgICB9CgogICAgI2V2ZW50LWdyYWJiZXIgewogICAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgICAgd2lkdGg6IDMy
MHB4OwogICAgICBoZWlnaHQ6IDQxNnB4OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1
NSwgMCwgMCwgMC4zKTsKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooNDAwcHgp
OwogICAgfQoKICAgICNldmVudC1ncmFiYmVyOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZC1jb2xv
cjogcmdiYSgyNTUsIDI1NSwgMCwgMC4zKTsKICAgIH0KICAgIAogICAgLmlubmVyIHsKICAgICAg
cG9zaXRpb246IGFic29sdXRlOwogICAgICBtYXJnaW46IDEwcHg7CiAgICAgIGhlaWdodDogMTAw
cHg7CiAgICAgIHdpZHRoOiAxNTBweDsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKICAg
IH0KICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKICA8ZGl2IGlkPSJjb250YWluZXIiPgoKICAg
IDxkaXYgaWQ9InJpbmctY29udGFpbmVyIj4KICAgICAgPCEtLSBUaGlzIGRpdiBpcyBwdXNoZWQg
YmFjayBpbiBaIHNvIHRoYXQgdGhlIGZyb250IG9mIHRoZSByaW5nIGFsaWducyB3aXRoIHRoZSBz
Y3JlZW4gLS0+CiAgICAgIDxkaXYgaWQ9InJpbmctc3RhZ2UiPgogICAgICAgIDxkaXYgaWQ9InJv
dG9yIj4KICAgICAgICAgIDxvbCBpZD0icmluZyI+CiAgICAgICAgICAgIDxsaSBzdHlsZT0iLXdl
YmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoLTkwZGVnKSB0cmFuc2xhdGVaKDIzNXB4KSI+CiAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXIiPklubmVyPC9kaXY+CiAgICAgICAgICAgIDwvbGk+
CiAgICAgICAgICAgIDxsaSBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoLTYwZGVn
KSB0cmFuc2xhdGVaKDIzNXB4KSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXIiPklu
bmVyPC9kaXY+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaSBzdHlsZT0iLXdlYmtp
dC10cmFuc2Zvcm06IHJvdGF0ZVgoLTMwZGVnKSB0cmFuc2xhdGVaKDIzNXB4KSI+CiAgICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iaW5uZXIiPklubmVyPC9kaXY+CiAgICAgICAgICAgIDwvbGk+CiAg
ICAgICAgICAgIDxsaSBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoMGRlZykgdHJh
bnNsYXRlWigyMzVweCkiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyIj5Jbm5lcjwv
ZGl2PgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGkgc3R5bGU9Ii13ZWJraXQtdHJh
bnNmb3JtOiByb3RhdGVYKDMwZGVnKSB0cmFuc2xhdGVaKDIzNXB4KSI+CiAgICAgICAgICAgICAg
PGRpdiBjbGFzcz0iaW5uZXIiPklubmVyPC9kaXY+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAg
ICAgIDxsaSBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoNjBkZWcpIHRyYW5zbGF0
ZVooMjM1cHgpIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lciI+SW5uZXI8L2Rpdj4K
ICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPGxpIHN0eWxlPSItd2Via2l0LXRyYW5zZm9y
bTogcm90YXRlWCg5MGRlZykgdHJhbnNsYXRlWigyMzVweCkiPgogICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImlubmVyIj5Jbm5lcjwvZGl2PgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgPC9v
bD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJl
dmVudC1ncmFiYmVyIj48L2Rpdj4KICA8L2Rpdj4KCjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28746</attachid>
            <date>2009-03-18 22:09:11 -0700</date>
            <delta_ts>2009-03-19 11:48:51 -0700</delta_ts>
            <desc>Patch, testcases, changelog</desc>
            <filename>24686_patch.txt</filename>
            <type>text/plain</type>
            <size>20900</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NTlkZTY2Li5iN2Q1Zjc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDMt
MTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ2ODYKKyAgICAgICAgCisgICAgICAgIE5ldyB0
ZXN0cyBmb3IgaGl0IHRlc3RpbmcgdHJhbnNmb3JtZWQsIGNvcGxhbmFyIGVsZW1lbnRzLCBhbmQg
dHJhbnNmb3JtZWQgZWxlbWVudHMKKyAgICAgICAgd2l0aCBhIHRyYW5zZm9ybWVkIG92ZXJsYXku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvdHJhbnNmb3Jtcy8zZC9wb2ludC1tYXBwaW5nLzNk
LXBvaW50LW1hcHBpbmctY29wbGFuYXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvdHJhbnNmb3Jtcy8zZC9wb2ludC1tYXBwaW5nLzNkLXBvaW50LW1hcHBpbmct
b3ZlcmxhcHBpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0cmFuc2Zvcm1zLzNk
L3BvaW50LW1hcHBpbmcvM2QtcG9pbnQtbWFwcGluZy1jb3BsYW5hci5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB0cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBpbmcvM2QtcG9pbnQtbWFwcGluZy1vdmVy
bGFwcGluZy5odG1sOiBBZGRlZC4KKwogMjAwOS0wMy0xOCAgTWFyayBSb3dlICA8bXJvd2VAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvdHJhbnNmb3Jtcy8zZC9wb2ludC1tYXBwaW5nLzNkLXBv
aW50LW1hcHBpbmctY29wbGFuYXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3RyYW5zZm9ybXMvM2QvcG9pbnQtbWFwcGluZy8zZC1wb2ludC1tYXBwaW5nLWNvcGxhbmFy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzhjYzYx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3RyYW5zZm9ybXMv
M2QvcG9pbnQtbWFwcGluZy8zZC1wb2ludC1tYXBwaW5nLWNvcGxhbmFyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDM3IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCld
CisgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMSwxKSBzaXplIDc5OHgzNDIKKyAg
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDIwLDIwKSBzaXplIDMwMngzMDIgW2JvcmRlcjog
KDFweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMHgwCisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDEsMzU5KSBzaXplIDc5OHgxOAor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNjZ4MTgKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNjY6ICJXaGVuIGhpdC10ZXN0aW5nIGNvcGxhbmFy
IGVsZW1lbnRzLCBkb2N1bWVudCBvcmRlciB3aW5zLiIKK2xheWVyIGF0ICgzMCw0MDApIHNpemUg
MzA2eDcyCisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMzAsNDAwKSBzaXpl
IDMwNng3MgorICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyOTh4MTggW2Nv
bG9yPSMwMDgwMDBdCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyOTh4
MTgKKyAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjk4OiAiUEFTUzogZXZlbnQgYXQg
KDQ0LCA0NCkgaGl0IGJveDEgYXQgb2Zmc2V0ICgyLCAyKSIKKyAgICBSZW5kZXJCUiB7QlJ9IGF0
ICgyOTgsMTQpIHNpemUgMHgwCisgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXpl
IDI5OHgxOCBbY29sb3I9IzAwODAwMF0KKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwx
OCkgc2l6ZSAyOTh4MTgKKyAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDI5ODogIlBB
U1M6IGV2ZW50IGF0ICg3MCwgNTkpIGhpdCBib3gyIGF0IG9mZnNldCAoMiwgMikiCisgICAgUmVu
ZGVyQlIge0JSfSBhdCAoMjk4LDMyKSBzaXplIDB4MAorICAgIFJlbmRlcklubGluZSB7U1BBTn0g
YXQgKDAsMCkgc2l6ZSAzMDZ4MTggW2NvbG9yPSMwMDgwMDBdCisgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMzYpIHNpemUgMzA2eDE4CisgICAgICAgIHRleHQgcnVuIGF0ICgwLDM2KSB3
aWR0aCAzMDY6ICJQQVNTOiBldmVudCBhdCAoNzAsIDEwMSkgaGl0IGJveDMgYXQgb2Zmc2V0ICgy
LCAyKSIKKyAgICBSZW5kZXJCUiB7QlJ9IGF0ICgzMDYsNTApIHNpemUgMHgwCisgICAgUmVuZGVy
SW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDMwNngxOCBbY29sb3I9IzAwODAwMF0KKyAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw1NCkgc2l6ZSAzMDZ4MTgKKyAgICAgICAgdGV4dCBy
dW4gYXQgKDAsNTQpIHdpZHRoIDMwNjogIlBBU1M6IGV2ZW50IGF0ICg3MCwgMTQ0KSBoaXQgYm94
NCBhdCBvZmZzZXQgKDIsIDIpIgorICAgIFJlbmRlckJSIHtCUn0gYXQgKDMwNiw2OCkgc2l6ZSAw
eDAKK2xheWVyIGF0ICg0Miw0Mikgc2l6ZSAyNjB4MjYwCisgIFJlbmRlckJsb2NrIChyZWxhdGl2
ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMjEsMjEpIHNpemUgMjYweDI2MCBbYmdjb2xvcj0jRERE
REREXSBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQorbGF5ZXIgYXQgKDczLDYzKSBzaXpl
IDIwMHgxMDAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgzMSwyMSkgc2l6
ZSAyMDB4MTAwIFtiZ2NvbG9yPSNBQUFBQUFdIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCld
CitsYXllciBhdCAoNzMsMTAzKSBzaXplIDIwMHgxMDAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9u
ZWQpIHtESVZ9IGF0ICgzMSw2MSkgc2l6ZSAyMDB4MTAwIFtiZ2NvbG9yPSNBQUFBQUFdIFtib3Jk
ZXI6ICgxcHggc29saWQgIzAwMDAwMCldCitsYXllciBhdCAoNzMsMTQzKSBzaXplIDIwMHgxMDAK
KyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgzMSwxMDEpIHNpemUgMjAweDEw
MCBbYmdjb2xvcj0jQUFBQUFBXSBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3RyYW5zZm9ybXMvM2QvcG9pbnQtbWFwcGlu
Zy8zZC1wb2ludC1tYXBwaW5nLW92ZXJsYXBwaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy90cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBpbmcvM2QtcG9pbnQtbWFwcGlu
Zy1vdmVybGFwcGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uY2ZlOWUzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy90cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBpbmcvM2QtcG9pbnQtbWFwcGluZy1vdmVybGFwcGlu
Zy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAor
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICgwLDApIHNpemUgODAweDYwMCBbYm9yZGVyOiAoMXB4
IHNvbGlkICMwMDAwMDApXQorICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDEsMSkg
c2l6ZSA3OTh4MzQyCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4
MAorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgxLDM1OSkgc2l6ZSA3OTh4MTgKKyAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNjAyeDE4CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNjAyOiAiVGhlIGdyZWVuIG92ZXJsYXkgaXMgdHJhbnNsYXRlZCBp
biBaIGJ5IDEwMHB4LCBzbyBzaG91bGQgaGl0IHRlc3QgaW4gZnJvbnQgcmVsYXRpdmUgdG8gdGhl
IGJsdWUgYm94LiIKK2xheWVyIGF0ICgzMCw0MDApIHNpemUgMzQ1eDcyCisgIFJlbmRlckJsb2Nr
IChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMzAsNDAwKSBzaXplIDM0NXg3MgorICAgIFJlbmRlcklu
bGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAzMjJ4MTggW2NvbG9yPSMwMDgwMDBdCisgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMjJ4MTgKKyAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggMzIyOiAiUEFTUzogZXZlbnQgYXQgKDI4NSwgNTApIGhpdCBib3gyIGF0
IG9mZnNldCAoMTk4LCAyKSIKKyAgICBSZW5kZXJCUiB7QlJ9IGF0ICgzMjIsMTQpIHNpemUgMHgw
CisgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDMyMngxOCBbY29sb3I9IzAw
ODAwMF0KKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxOCkgc2l6ZSAzMjJ4MTgKKyAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDMyMjogIlBBU1M6IGV2ZW50IGF0ICgxNzQs
IDEwOCkgaGl0IGJveDMgYXQgb2Zmc2V0ICg1MCwgMikiCisgICAgUmVuZGVyQlIge0JSfSBhdCAo
MzIyLDMyKSBzaXplIDB4MAorICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAz
Mjl4MTggW2NvbG9yPSMwMDgwMDBdCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMzYp
IHNpemUgMzI5eDE4CisgICAgICAgIHRleHQgcnVuIGF0ICgwLDM2KSB3aWR0aCAzMjk6ICJQQVNT
OiBldmVudCBhdCAoNjEsIDUwKSBoaXQgb3ZlcmxheSBhdCBvZmZzZXQgKDM5LCAyOCkiCisgICAg
UmVuZGVyQlIge0JSfSBhdCAoMzI5LDUwKSBzaXplIDB4MAorICAgIFJlbmRlcklubGluZSB7U1BB
Tn0gYXQgKDAsMCkgc2l6ZSAzNDV4MTggW2NvbG9yPSMwMDgwMDBdCisgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsNTQpIHNpemUgMzQ1eDE4CisgICAgICAgIHRleHQgcnVuIGF0ICgwLDU0
KSB3aWR0aCAzNDU6ICJQQVNTOiBldmVudCBhdCAoMTE5LCAxMDgpIGhpdCBvdmVybGF5IGF0IG9m
ZnNldCAoOTcsIDg2KSIKKyAgICBSZW5kZXJCUiB7QlJ9IGF0ICgzNDUsNjgpIHNpemUgMHgwCits
YXllciBhdCAoMjEsMjEpIHNpemUgMzAyeDMwMgorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9z
aXRpb25lZCkge0RJVn0gYXQgKDIwLDIwKSBzaXplIDMwMngzMDIgW2JvcmRlcjogKDFweCBzb2xp
ZCAjMDAwMDAwKV0KK2xheWVyIGF0ICg0Miw0Mikgc2l6ZSAyNjB4MjYwCisgIFJlbmRlckJsb2Nr
IChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMjEsMjEpIHNpemUgMjYweDI2MCBbYmdjb2xvcj0jRERE
REREXSBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQorbGF5ZXIgYXQgKDczLDYzKSBzaXpl
IDIwMHgyMDEKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgzMSwyMSkgc2l6
ZSAyMDB4MjAwIFtiZ2NvbG9yPSNBQUFBQUFdIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCld
CitsYXllciBhdCAoMTI0LDExNCkgc2l6ZSAxMDB4MTAwCisgIFJlbmRlckJsb2NrIChyZWxhdGl2
ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoNTEsNTEpIHNpemUgMTAweDEwMCBbYmdjb2xvcj0jMDAw
MEZGXQorbGF5ZXIgYXQgKDIyLDIyKSBzaXplIDE1MHgzMDAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0
aW9uZWQpIHtESVZ9IGF0ICgxLDEpIHNpemUgMTUweDMwMCBbYmdjb2xvcj0jMDA4MDAwNENdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBpbmcvM2QtcG9p
bnQtbWFwcGluZy1jb3BsYW5hci5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9wb2lu
dC1tYXBwaW5nLzNkLXBvaW50LW1hcHBpbmctY29wbGFuYXIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5kODQ1MjAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvdHJhbnNmb3Jtcy8zZC9wb2ludC1tYXBwaW5nLzNkLXBvaW50LW1hcHBpbmctY29wbGFuYXIu
aHRtbApAQCAtMCwwICsxLDk4IEBACis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+SGl0IHRlc3Qg
Y29wbGFuYXIgZWxlbWVudHM8L3RpdGxlPgorICA8c2NyaXB0IHNyYz0icG9pbnQtbWFwcGluZy1o
ZWxwZXJzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48L3Njcmlw
dD4KKyAgCisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+
CisgICAgCisgICAgZnVuY3Rpb24gdGVzdCgpCisgICAgeworICAgICAgZGlzcGF0Y2hFdmVudCg0
NCwgNDQsICdib3gxJywgMiwgMik7CisgICAgICBkaXNwYXRjaEV2ZW50KDcwLCA1OSwgJ2JveDIn
LCAyLCAyKTsKKyAgICAgIGRpc3BhdGNoRXZlbnQoNzAsIDEwMSwgJ2JveDMnLCAyLCAyKTsKKyAg
ICAgIGRpc3BhdGNoRXZlbnQoNzAsIDE0NCwgJ2JveDQnLCAyLCAyKTsKKyAgICB9CisgICAgCisg
IDwvc2NyaXB0PgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorICAK
KyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworICAgICAgY3Vyc29yOiBjcm9zc2hhaXI7CisgICAgfQorCisgICAgLnRlc3QgeworICAg
ICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgIHdp
ZHRoOiAzMDBweDsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgbWFyZ2lu
OiAyMHB4OworICAgIH0KKworICAgIC5ib3ggeworICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAg
IHdpZHRoOiAyMDBweDsKKyAgICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAg
ICAgIGJhY2tncm91bmQtY29sb3I6ICNEREQ7CisgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFj
azsKKyAgICB9CisKKyAgICAuYm94OmhvdmVyIHsKKyAgICAgIG91dGxpbmU6IDNweCBzb2xpZCBv
cmFuZ2U7CisgICAgfQorICAgIAorICAgIC5jb250YWluZXIgeworICAgICAgcG9zaXRpb246IHJl
bGF0aXZlOworICAgICAgaGVpZ2h0OiAyNjBweDsKKyAgICAgIHdpZHRoOiAyNjBweDsKKyAgICAg
IG1hcmdpbjogMjBweDsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgLXdl
YmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgICAgLXdlYmtpdC1wZXJzcGVjdGl2ZTog
NDAwOworICAgIH0KKyAgICAKKyAgICAudHJhbnNmb3JtZWQgeworICAgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgICAgdG9wOiAyMHB4OworICAgICAgbGVmdDogMzBweDsKKyAgICAgIGhlaWdo
dDogMTAwcHg7CisgICAgICB3aWR0aDogMjAwcHg7CisgICAgICBib3JkZXI6IDFweCBzb2xpZCBi
bGFjazsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6ICNBQUE7CisgICAgICAtd2Via2l0LWJveC1z
aXppbmc6IGJvcmRlci1ib3g7CisgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigy
MHB4KTsKKyAgICB9CisgICAgCisgICAgI3Jlc3VsdHMgeworICAgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgICAgbGVmdDogMzBweDsKKyAgICAgIHRvcDogNDAwcHg7CisgICAgfQorICAgIAor
ICAgICNtb3VzZXBvcyB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICBsZWZ0OiAz
MHB4OworICAgICAgdG9wOiA3MDBweDsKKyAgICAgIGNvbG9yOiBncmF5OworICAgICAgZm9udC1z
aXplOiBzbWFsbGVyOworICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IG9uY2xpY2s9
ImNsaWNrZWQoZXZlbnQpIj4KKworPGRpdiBpZD0icmVzdWx0cyI+PC9kaXY+Cis8ZGl2IGNsYXNz
PSJ0ZXN0Ij4KKyAgPCEtLSBTaW1wbGUgdHJhbnNmb3JtZWQgZGl2IGluIHBlcnBzZWN0aXZlIC0t
PgorICA8ZGl2IGNsYXNzPSJjb250YWluZXIgYm94IiBpZD0iYm94MSI+CisgICAgPGRpdiBjbGFz
cz0idHJhbnNmb3JtZWQgYm94IiBpZD0iYm94MiI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0idHJh
bnNmb3JtZWQgYm94IiBpZD0iYm94MyIgc3R5bGU9InRvcDogNjBweDsiPjwvZGl2PgorICAgIDxk
aXYgY2xhc3M9InRyYW5zZm9ybWVkIGJveCIgaWQ9ImJveDQiIHN0eWxlPSJ0b3A6IDEwMHB4OyI+
PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+Cis8cD5XaGVuIGhpdC10ZXN0aW5nIGNvcGxhbmFyIGVs
ZW1lbnRzLCBkb2N1bWVudCBvcmRlciB3aW5zLjwvcD4KKworPGRpdiBpZD0ibW91c2Vwb3MiPjwv
ZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2Zv
cm1zLzNkL3BvaW50LW1hcHBpbmcvM2QtcG9pbnQtbWFwcGluZy1vdmVybGFwcGluZy5odG1sIGIv
TGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9wb2ludC1tYXBwaW5nLzNkLXBvaW50LW1hcHBpbmct
b3ZlcmxhcHBpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODMw
NGY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9wb2ludC1t
YXBwaW5nLzNkLXBvaW50LW1hcHBpbmctb3ZlcmxhcHBpbmcuaHRtbApAQCAtMCwwICsxLDExNyBA
QAorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPkhpdCB0ZXN0IG92ZXJsYXBwaW5nIDNkIGVsZW1l
bnRzPC90aXRsZT4KKyAgPHNjcmlwdCBzcmM9InBvaW50LW1hcHBpbmctaGVscGVycy5qcyIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+PC9zY3JpcHQ+CisgIAorICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIAorICAgIGZ1
bmN0aW9uIHRlc3QoKQorICAgIHsKKyAgICAgIGRpc3BhdGNoRXZlbnQoMjg1LCA1MCwgJ2JveDIn
LCAxOTgsIDIpOworICAgICAgZGlzcGF0Y2hFdmVudCgxNzQsIDEwOCwgJ2JveDMnLCA1MCwgMik7
CisKKyAgICAgIGRpc3BhdGNoRXZlbnQoNjEsIDUwLCAnb3ZlcmxheScsIDM5LCAyOCk7CisgICAg
ICBkaXNwYXRjaEV2ZW50KDExOSwgMTA4LCAnb3ZlcmxheScsIDk3LCA4Nik7CisgICAgfQorICAg
IAorICA8L3NjcmlwdD4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4K
KyAgCisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgICBib3JkZXI6IDFweCBzb2xp
ZCBibGFjazsKKyAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOworICAgIH0KKworICAgIC50ZXN0IHsK
KyAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsK
KyAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICB3aWR0aDogMzAwcHg7CisgICAgICBib3JkZXI6
IDFweCBzb2xpZCBibGFjazsKKyAgICAgIG1hcmdpbjogMjBweDsKKyAgICB9CisKKyAgICAuYm94
IHsKKyAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAtd2Vi
a2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRERE
OworICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorCisgICAgLmJveDpob3Zl
ciB7CisgICAgICBvdXRsaW5lOiAzcHggc29saWQgb3JhbmdlOworICAgIH0KKyAgICAKKyAgICAu
Y29udGFpbmVyIHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIGhlaWdodDogMjYw
cHg7CisgICAgICB3aWR0aDogMjYwcHg7CisgICAgICBtYXJnaW46IDIwcHg7CisgICAgICBib3Jk
ZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJv
eDsKKyAgICAgIC13ZWJraXQtcGVyc3BlY3RpdmU6IDQwMDsKKyAgICB9CisgICAgCisgICAgLnRy
YW5zZm9ybWVkIHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIHRvcDogMjBweDsK
KyAgICAgIGxlZnQ6IDMwcHg7CisgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgd2lkdGg6IDIw
MHB4OworICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiAjQUFBOworICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgICAg
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooNTBweCk7CisgICAgfQorICAgIAorICAgICNv
dmVybGF5IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIGhlaWdodDogMzAwcHg7
CisgICAgICB3aWR0aDogMTUwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEy
OCwgMCwgMC4zKTsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDEwMHB4KTsK
KyAgICB9CisgICAgCisgICAgLmlubmVyIHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAg
ICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgbWFyZ2luOiA1MHB4OworICAgIH0KKworICAgICNyZXN1bHRz
IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIGxlZnQ6IDMwcHg7CisgICAgICB0
b3A6IDQwMHB4OworICAgIH0KKyAgICAKKyAgICAjbW91c2Vwb3MgeworICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgbGVmdDogMzBweDsKKyAgICAgIHRvcDogNzAwcHg7CisgICAgICBj
b2xvcjogZ3JheTsKKyAgICAgIGZvbnQtc2l6ZTogc21hbGxlcjsKKyAgICB9CisgIDwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keSBvbmNsaWNrPSJjbGlja2VkKGV2ZW50KSI+CisKKzxkaXYgaWQ9InJl
c3VsdHMiPjwvZGl2PgorPGRpdiBjbGFzcz0idGVzdCI+CisgIDwhLS0gU2ltcGxlIHRyYW5zZm9y
bWVkIGRpdiBpbiBwZXJwc2VjdGl2ZSAtLT4KKyAgPGRpdiBjbGFzcz0iY29udGFpbmVyIGJveCIg
aWQ9ImJveDEiPgorICAgIDxkaXYgY2xhc3M9InRyYW5zZm9ybWVkIGJveCIgaWQ9ImJveDIiPgor
ICAgICAgPGRpdiBjbGFzcz0iaW5uZXIiIGlkPSJib3gzIj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAg
PC9kaXY+CisgIDxkaXYgaWQ9Im92ZXJsYXkiPjwvZGl2PgorPC9kaXY+Cis8cD5UaGUgZ3JlZW4g
b3ZlcmxheSBpcyB0cmFuc2xhdGVkIGluIFogYnkgMTAwcHgsIHNvIHNob3VsZCBoaXQgdGVzdCBp
biBmcm9udCByZWxhdGl2ZSB0byB0aGUgYmx1ZSBib3guPC9wPgorCis8ZGl2IGlkPSJtb3VzZXBv
cyI+PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzhiOWEyNi4uMTQwZWJlZiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NiBAQAorMjAwOS0wMy0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDY4NgorICAgICAgICAK
KyAgICAgICAgV2hlbiBoaXQgdGVzdGluZyBhIFJlbmRlckxheWVyIHdob3NlIHBhcmVudCBsaXZl
cyBpbiBhIHByZXNlcnZlcy0zRCBoaWVyYXJjaHksCisgICAgICAgIHdlIG5lZWQgdG8gY29tcGFy
ZSB0aGUgY29tcHV0ZWQgei1vZmZzZXQgd2l0aCB0aGUgZGVwdGgtdGVzdCB6LW9mZnNldCBiZWZv
cmUKKyAgICAgICAgZGVjaWRpbmcgdGhhdCBzdWNoIGEgUmVuZGVyTGF5ZXIgd2FzIGhpdC4gVGhp
cyBmaXhlcyBhbiBpc3N1ZSwgdGVzdGVkIGJ5IHRoZQorICAgICAgICAzZC1wb2ludC1tYXBwaW5n
LW92ZXJsYXBwaW5nLmh0bWwgdGVzdCwgd2hlcmUgdGhlIGNoaWxkIG9mIGEgdHJhbnNmb3JtZWQg
ZWxlbWVudAorICAgICAgICBpcyBmb3VuZCBieSBoaXQgdGVzdGluZywgZXZlbiB3aGVuIHNvbWUg
b3RoZXIgZWxlbWVudCB3aXRoIGdyZWF0ZXIgWiBvdmVybGFwcworICAgICAgICB0aGVtIGJvdGgu
CisgICAgICAgIAorICAgICAgICBJbXByb3ZlZCB0aGUgY29kZSBieSBhZGRpbmcgYSB1dGlsaXR5
IG1ldGhvZCwgaXNIaXRDYW5kaWRhdGUoKSwgd2hpY2ggY29tcHV0ZXMgYW5kIHRlc3RzCisgICAg
ICAgIHotZGVwdGggd2hlbiBuZWNlc3NhcnkuCisKKyAgICAgICAgVGVzdHM6IHRyYW5zZm9ybXMv
M2QvcG9pbnQtbWFwcGluZy8zZC1wb2ludC1tYXBwaW5nLWNvcGxhbmFyLmh0bWwKKyAgICAgICAg
ICAgICAgIHRyYW5zZm9ybXMvM2QvcG9pbnQtbWFwcGluZy8zZC1wb2ludC1tYXBwaW5nLW92ZXJs
YXBwaW5nLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjppc0hpdENhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6aGl0VGVzdExheWVyKToKKwogMjAwOS0wMy0xOCAgRXJpYyBDYXJsc29uICA8ZXJpYy5j
YXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggYzFkYjI5NS4uYTgyMmM4ZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjE4OCw2ICsyMTg4LDMxIEBAIFBhc3NSZWZQdHI8SGl0
VGVzdGluZ1RyYW5zZm9ybVN0YXRlPiBSZW5kZXJMYXllcjo6Y3JlYXRlTG9jYWxUcmFuc2Zvcm1T
dGF0ZShSZW5kCiAgICAgcmV0dXJuIHRyYW5zZm9ybVN0YXRlOwogfQogCisKK3N0YXRpYyBib29s
IGlzSGl0Q2FuZGlkYXRlKGNvbnN0IFJlbmRlckxheWVyKiBoaXRMYXllciwgYm9vbCBjYW5EZXB0
aFNvcnQsIGRvdWJsZSogek9mZnNldCwgY29uc3QgSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlKiB0
cmFuc2Zvcm1TdGF0ZSkKK3sKKyAgICBpZiAoIWhpdExheWVyKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICAvLyBUaGUgaGl0IGxheWVyIGlzIGRlcHRoLXNvcnRpbmcgd2l0aCBvdGhlciBs
YXllcnMsIHNvIGp1c3Qgc2F5IHRoYXQgaXQgd2FzIGhpdC4KKyAgICBpZiAoY2FuRGVwdGhTb3J0
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAKKyAgICAvLyBXZSBuZWVkIHRvIGxvb2sgYXQg
ei1kZXB0aCB0byBkZWNpZGUgaWYgdGhpcyBsYXllciB3YXMgaGl0LgorICAgIGlmICh6T2Zmc2V0
KSB7CisgICAgICAgIEFTU0VSVCh0cmFuc2Zvcm1TdGF0ZSk7CisgICAgICAgIC8vIFRoaXMgaXMg
YWN0dWFsbHkgY29tcHV0aW5nIG91ciB6LCBidXQgdGhhdCdzIE9LIGJlY2F1c2UgdGhlIGhpdExh
eWVyIGlzIGNvcGxhbmFyIHdpdGggdXMuCisgICAgICAgIGRvdWJsZSBjaGlsZFpPZmZzZXQgPSBj
b21wdXRlWk9mZnNldCgqdHJhbnNmb3JtU3RhdGUpOworICAgICAgICBpZiAoY2hpbGRaT2Zmc2V0
ID4gKnpPZmZzZXQpIHsKKyAgICAgICAgICAgICp6T2Zmc2V0ID0gY2hpbGRaT2Zmc2V0OworICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiAvLyBoaXRUZXN0UG9pbnQgYW5kIGhpdFRl
c3RSZWN0IGFyZSByZWxhdGl2ZSB0byByb290TGF5ZXIuCiAvLyBBICdmbGF0dGVuaW5nJyBsYXll
ciBpcyBvbmUgcHJlc2VydmVzM0QoKSA9PSBmYWxzZS4KIC8vIHRyYW5zZm9ybVN0YXRlLm1fYWNj
dW11bGF0ZWRUcmFuc2Zvcm0gaG9sZHMgdGhlIHRyYW5zZm9ybSBmcm9tIHRoZSBjb250YWluaW5n
IGZsYXR0ZW5pbmcgbGF5ZXIuCkBAIC0yMzAwLDE3ICsyMzI1LDE0IEBAIFJlbmRlckxheWVyKiBS
ZW5kZXJMYXllcjo6aGl0VGVzdExheWVyKFJlbmRlckxheWVyKiByb290TGF5ZXIsIFJlbmRlckxh
eWVyKiBjb250CiAgICAgLy8gQmVnaW4gYnkgd2Fsa2luZyBvdXIgbGlzdCBvZiBwb3NpdGl2ZSBs
YXllcnMgZnJvbSBoaWdoZXN0IHotaW5kZXggZG93biB0byB0aGUgbG93ZXN0IHotaW5kZXguCiAg
ICAgaWYgKG1fcG9zWk9yZGVyTGlzdCkgewogICAgICAgICBmb3IgKGludCBpID0gbV9wb3NaT3Jk
ZXJMaXN0LT5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgewotICAgICAgICAgICAgUmVuZGVyTGF5
ZXIqIGhpdExheWVyID0gbV9wb3NaT3JkZXJMaXN0LT5hdChpKS0+aGl0VGVzdExheWVyKHJvb3RM
YXllciwgdGhpcywgcmVxdWVzdCwgcmVzdWx0LCBoaXRUZXN0UmVjdCwgaGl0VGVzdFBvaW50LCBm
YWxzZSwgbG9jYWxUcmFuc2Zvcm1TdGF0ZS5nZXQoKSwgek9mZnNldEZvckRlc2NlbmRhbnRzUHRy
KTsKLSAgICAgICAgICAgIGlmIChoaXRMYXllcikgewotICAgICAgICAgICAgICAgIGlmIChkZXB0
aFNvcnREZXNjZW5kYW50cykgewotICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCByZXR1cm4g
eWV0LiBLZWVwIGEgcmVmIHRvIHRoZSBmcm9udG1vc3QgbGF5ZXIsIGFuZCBrZWVwIGxvb2tpbmcu
Ci0gICAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZUxheWVyID0gaGl0TGF5ZXI7Ci0gICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gT3VyIGNvbnRhaW5lciBu
ZWVkcyB0byBrbm93IHRoZSB6IG9mIHRoZSBoaXQgbGF5ZXIuIFRoaXMgaXMgYWN0dWFsbHkgY29t
cHV0aW5nIG91ciB6LCBidXQgdGhhdCdzIE9LIGJlY2F1c2UgdGhlIGhpdExheWVyIGlzIGNvcGxh
bmFyIHdpdGggdXMuCi0gICAgICAgICAgICAgICAgICAgIGlmICh6T2Zmc2V0ICYmICF6T2Zmc2V0
Rm9yRGVzY2VuZGFudHNQdHIpCi0gICAgICAgICAgICAgICAgICAgICAgICAqek9mZnNldCA9IGNv
bXB1dGVaT2Zmc2V0KCp1bmZsYXR0ZW5lZFRyYW5zZm9ybVN0YXRlKTsKKyAgICAgICAgICAgIEhp
dFRlc3RSZXN1bHQgdGVtcFJlc3VsdChyZXN1bHQucG9pbnQoKSk7CisgICAgICAgICAgICBSZW5k
ZXJMYXllciogaGl0TGF5ZXIgPSBtX3Bvc1pPcmRlckxpc3QtPmF0KGkpLT5oaXRUZXN0TGF5ZXIo
cm9vdExheWVyLCB0aGlzLCByZXF1ZXN0LCB0ZW1wUmVzdWx0LCBoaXRUZXN0UmVjdCwgaGl0VGVz
dFBvaW50LCBmYWxzZSwgbG9jYWxUcmFuc2Zvcm1TdGF0ZS5nZXQoKSwgek9mZnNldEZvckRlc2Nl
bmRhbnRzUHRyKTsKKyAgICAgICAgICAgIGlmIChpc0hpdENhbmRpZGF0ZShoaXRMYXllciwgZGVw
dGhTb3J0RGVzY2VuZGFudHMsIHpPZmZzZXQsIHVuZmxhdHRlbmVkVHJhbnNmb3JtU3RhdGUuZ2V0
KCkpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGVtcFJlc3VsdDsKKyAgICAgICAgICAg
ICAgICBpZiAoIWRlcHRoU29ydERlc2NlbmRhbnRzKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gaGl0TGF5ZXI7Ci0gICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY2FuZGlk
YXRlTGF5ZXIgPSBoaXRMYXllcjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAg
LTIzMjEsMTcgKzIzNDMsMTUgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpoaXRUZXN0TGF5
ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgUmVuZGVyTGF5ZXIqIGNvbnQKICAgICAgICAgICAg
IFJlbmRlckxheWVyKiBjdXJyTGF5ZXIgPSBtX25vcm1hbEZsb3dMaXN0LT5hdChpKTsKICAgICAg
ICAgICAgIGlmICghY3VyckxheWVyLT5pc1NlbGZQYWludGluZ0xheWVyKCkpCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIEhpdFRlc3RSZXN1bHQgdGVtcFJlc3VsdChy
ZXN1bHQucG9pbnQoKSk7CiAgICAgICAgICAgICBSZW5kZXJMYXllciogaGl0TGF5ZXIgPSBjdXJy
TGF5ZXItPmhpdFRlc3RMYXllcihyb290TGF5ZXIsIHRoaXMsIHJlcXVlc3QsIHJlc3VsdCwgaGl0
VGVzdFJlY3QsIGhpdFRlc3RQb2ludCwgZmFsc2UsIGxvY2FsVHJhbnNmb3JtU3RhdGUuZ2V0KCks
IHpPZmZzZXRGb3JEZXNjZW5kYW50c1B0cik7Ci0gICAgICAgICAgICBpZiAoaGl0TGF5ZXIpIHsK
LSAgICAgICAgICAgICAgICBpZiAoZGVwdGhTb3J0RGVzY2VuZGFudHMpIHsKLSAgICAgICAgICAg
ICAgICAgICAgLy8gRG9uJ3QgcmV0dXJuIHlldC4gS2VlcCBhIHJlZiB0byB0aGUgZnJvbnRtb3N0
IGxheWVyLCBhbmQga2VlcCBsb29raW5nLgotICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGVM
YXllciA9IGhpdExheWVyOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgICAgIC8vIE91ciBjb250YWluZXIgbmVlZHMgdG8ga25vdyB0aGUgeiBvZiB0aGUgaGl0IGxh
eWVyLiBUaGlzIGlzIGFjdHVhbGx5IGNvbXB1dGluZyBvdXIgeiwgYnV0IHRoYXQncyBPSyBiZWNh
dXNlIHRoZSBoaXRMYXllciBpcyBjb3BsYW5hciB3aXRoIHVzLgotICAgICAgICAgICAgICAgICAg
ICBpZiAoek9mZnNldCAmJiAhek9mZnNldEZvckRlc2NlbmRhbnRzUHRyKQotICAgICAgICAgICAg
ICAgICAgICAgICAgKnpPZmZzZXQgPSBjb21wdXRlWk9mZnNldCgqdW5mbGF0dGVuZWRUcmFuc2Zv
cm1TdGF0ZSk7CisgICAgICAgICAgICBpZiAoaXNIaXRDYW5kaWRhdGUoaGl0TGF5ZXIsIGRlcHRo
U29ydERlc2NlbmRhbnRzLCB6T2Zmc2V0LCB1bmZsYXR0ZW5lZFRyYW5zZm9ybVN0YXRlLmdldCgp
KSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRlbXBSZXN1bHQ7CisgICAgICAgICAgICAg
ICAgaWYgKCFkZXB0aFNvcnREZXNjZW5kYW50cykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGhpdExheWVyOwotICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNhbmRpZGF0
ZUxheWVyID0gaGl0TGF5ZXI7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0y
MzQwLDM4ICsyMzYwLDI3IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6aGl0VGVzdExheWVy
KFJlbmRlckxheWVyKiByb290TGF5ZXIsIFJlbmRlckxheWVyKiBjb250CiAgICAgaWYgKGZnUmVj
dC5jb250YWlucyhoaXRUZXN0UG9pbnQpKSB7CiAgICAgICAgIC8vIEhpdCB0ZXN0IHdpdGggYSB0
ZW1wb3JhcnkgSGl0VGVzdFJlc3VsdCwgYmVjYXVzZSB3ZSBvbmx5bCB3YW50IHRvIGNvbW1pdCB0
byAncmVzdWx0JyBpZiB3ZSBrbm93IHdlJ3JlIGZyb250bW9zdC4KICAgICAgICAgSGl0VGVzdFJl
c3VsdCB0ZW1wUmVzdWx0KHJlc3VsdC5wb2ludCgpKTsKLSAgICAgICAgaWYgKGhpdFRlc3RDb250
ZW50cyhyZXF1ZXN0LCB0ZW1wUmVzdWx0LCBsYXllckJvdW5kcywgaGl0VGVzdFBvaW50LCBIaXRU
ZXN0RGVzY2VuZGFudHMpKSB7Ci0gICAgICAgICAgICBpZiAoek9mZnNldEZvckNvbnRlbnRzUHRy
KSB7Ci0gICAgICAgICAgICAgICAgZG91YmxlIGZvcmVncm91bmRaT2Zmc2V0ID0gY29tcHV0ZVpP
ZmZzZXQoKnVuZmxhdHRlbmVkVHJhbnNmb3JtU3RhdGUpOwotICAgICAgICAgICAgICAgIGlmIChm
b3JlZ3JvdW5kWk9mZnNldCA+ICp6T2Zmc2V0Rm9yQ29udGVudHNQdHIpIHsKLSAgICAgICAgICAg
ICAgICAgICAgKnpPZmZzZXRGb3JDb250ZW50c1B0ciA9IGZvcmVncm91bmRaT2Zmc2V0OwotICAg
ICAgICAgICAgICAgICAgICByZXN1bHQgPSB0ZW1wUmVzdWx0OwotICAgICAgICAgICAgICAgICAg
ICBpZiAoZGVwdGhTb3J0RGVzY2VuZGFudHMpCi0gICAgICAgICAgICAgICAgICAgICAgICBjYW5k
aWRhdGVMYXllciA9IHRoaXM7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB0aGlzOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gdGVtcFJlc3VsdDsKKyAgICAgICAg
aWYgKGhpdFRlc3RDb250ZW50cyhyZXF1ZXN0LCB0ZW1wUmVzdWx0LCBsYXllckJvdW5kcywgaGl0
VGVzdFBvaW50LCBIaXRUZXN0RGVzY2VuZGFudHMpICYmCisgICAgICAgICAgICAgICAgaXNIaXRD
YW5kaWRhdGUodGhpcywgZmFsc2UsIHpPZmZzZXRGb3JDb250ZW50c1B0ciwgdW5mbGF0dGVuZWRU
cmFuc2Zvcm1TdGF0ZS5nZXQoKSkpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IHRlbXBSZXN1bHQ7
CisgICAgICAgICAgICBpZiAoIWRlcHRoU29ydERlc2NlbmRhbnRzKQogICAgICAgICAgICAgICAg
IHJldHVybiB0aGlzOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gRm9yZWdyb3VuZCBj
YW4gZGVwdGgtc29ydCB3aXRoIGRlc2NlbmRhbnQgbGF5ZXJzLCBzbyBrZWVwIHRoaXMgYXMgYSBj
YW5kaWRhdGUuCisgICAgICAgICAgICBjYW5kaWRhdGVMYXllciA9IHRoaXM7CiAgICAgICAgIH0K
ICAgICB9CiAKICAgICAvLyBOb3cgY2hlY2sgb3VyIG5lZ2F0aXZlIHotaW5kZXggY2hpbGRyZW4u
CiAgICAgaWYgKG1fbmVnWk9yZGVyTGlzdCkgewogICAgICAgICBmb3IgKGludCBpID0gbV9uZWda
T3JkZXJMaXN0LT5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgeworICAgICAgICAgICAgSGl0VGVz
dFJlc3VsdCB0ZW1wUmVzdWx0KHJlc3VsdC5wb2ludCgpKTsKICAgICAgICAgICAgIFJlbmRlckxh
eWVyKiBoaXRMYXllciA9IG1fbmVnWk9yZGVyTGlzdC0+YXQoaSktPmhpdFRlc3RMYXllcihyb290
TGF5ZXIsIHRoaXMsIHJlcXVlc3QsIHJlc3VsdCwgaGl0VGVzdFJlY3QsIGhpdFRlc3RQb2ludCwg
ZmFsc2UsIGxvY2FsVHJhbnNmb3JtU3RhdGUuZ2V0KCksIHpPZmZzZXRGb3JEZXNjZW5kYW50c1B0
cik7Ci0gICAgICAgICAgICBpZiAoaGl0TGF5ZXIpIHsKLSAgICAgICAgICAgICAgICBpZiAoZGVw
dGhTb3J0RGVzY2VuZGFudHMpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gRG9uJ3QgcmV0dXJu
IHlldC4gS2VlcCBhIHJlZiB0byB0aGUgZnJvbnRtb3N0IGxheWVyLCBhbmQga2VlcCBsb29raW5n
LgotICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGVMYXllciA9IGhpdExheWVyOwotICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIE91ciBjb250YWluZXIg
bmVlZHMgdG8ga25vdyB0aGUgeiBvZiB0aGUgaGl0IGxheWVyLiBUaGlzIGlzIGFjdHVhbGx5IGNv
bXB1dGluZyBvdXIgeiwgYnV0IHRoYXQncyBPSyBiZWNhdXNlIHRoZSBoaXRMYXllciBpcyBjb3Bs
YW5hciB3aXRoIHVzLgotICAgICAgICAgICAgICAgICAgICBpZiAoek9mZnNldCAmJiAhek9mZnNl
dEZvckRlc2NlbmRhbnRzUHRyKQotICAgICAgICAgICAgICAgICAgICAgICAgKnpPZmZzZXQgPSBj
b21wdXRlWk9mZnNldCgqdW5mbGF0dGVuZWRUcmFuc2Zvcm1TdGF0ZSk7CisgICAgICAgICAgICBp
ZiAoaXNIaXRDYW5kaWRhdGUoaGl0TGF5ZXIsIGRlcHRoU29ydERlc2NlbmRhbnRzLCB6T2Zmc2V0
LCB1bmZsYXR0ZW5lZFRyYW5zZm9ybVN0YXRlLmdldCgpKSkgeworICAgICAgICAgICAgICAgIHJl
c3VsdCA9IHRlbXBSZXN1bHQ7CisgICAgICAgICAgICAgICAgaWYgKCFkZXB0aFNvcnREZXNjZW5k
YW50cykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGhpdExheWVyOwotICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgIGNhbmRpZGF0ZUxheWVyID0gaGl0TGF5ZXI7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0yMzgyLDE4ICsyMzkxLDEwIEBAIFJlbmRl
ckxheWVyKiBSZW5kZXJMYXllcjo6aGl0VGVzdExheWVyKFJlbmRlckxheWVyKiByb290TGF5ZXIs
IFJlbmRlckxheWVyKiBjb250CiAKICAgICBpZiAoYmdSZWN0LmNvbnRhaW5zKGhpdFRlc3RQb2lu
dCkpIHsKICAgICAgICAgSGl0VGVzdFJlc3VsdCB0ZW1wUmVzdWx0KHJlc3VsdC5wb2ludCgpKTsK
LSAgICAgICAgaWYgKGhpdFRlc3RDb250ZW50cyhyZXF1ZXN0LCB0ZW1wUmVzdWx0LCBsYXllckJv
dW5kcywgaGl0VGVzdFBvaW50LCBIaXRUZXN0U2VsZikpIHsKLSAgICAgICAgICAgIGlmICh6T2Zm
c2V0Rm9yQ29udGVudHNQdHIpIHsKLSAgICAgICAgICAgICAgICBkb3VibGUgYmFja2dyb3VuZFpP
ZmZzZXQgPSBjb21wdXRlWk9mZnNldCgqdW5mbGF0dGVuZWRUcmFuc2Zvcm1TdGF0ZSk7Ci0gICAg
ICAgICAgICAgICAgaWYgKGJhY2tncm91bmRaT2Zmc2V0ID4gKnpPZmZzZXRGb3JDb250ZW50c1B0
cikgewotICAgICAgICAgICAgICAgICAgICAqek9mZnNldEZvckNvbnRlbnRzUHRyID0gYmFja2dy
b3VuZFpPZmZzZXQ7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRlbXBSZXN1bHQ7Ci0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gdGVtcFJlc3VsdDsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gdGhpczsKLSAgICAgICAgICAgIH0KKyAgICAgICAgaWYgKGhp
dFRlc3RDb250ZW50cyhyZXF1ZXN0LCB0ZW1wUmVzdWx0LCBsYXllckJvdW5kcywgaGl0VGVzdFBv
aW50LCBIaXRUZXN0U2VsZikgJiYKKyAgICAgICAgICAgICAgICBpc0hpdENhbmRpZGF0ZSh0aGlz
LCBmYWxzZSwgek9mZnNldEZvckNvbnRlbnRzUHRyLCB1bmZsYXR0ZW5lZFRyYW5zZm9ybVN0YXRl
LmdldCgpKSkgeworICAgICAgICAgICAgcmVzdWx0ID0gdGVtcFJlc3VsdDsKKyAgICAgICAgICAg
IHJldHVybiB0aGlzOwogICAgICAgICB9CiAgICAgfQogICAgIAo=
</data>
<flag name="review"
          id="14175"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>