<?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>100049</bug_id>
          
          <creation_ts>2012-10-22 16:26:14 -0700</creation_ts>
          <short_desc>[CSS Exclusions] Implement empty segments for multiple-segment shape-insides</short_desc>
          <delta_ts>2013-04-19 16:27:14 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>89256</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bear Travis">betravis</reporter>
          <assigned_to name="Bear Travis">betravis</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>giles_joplin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>748053</commentid>
    <comment_count>0</comment_count>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-10-22 16:26:14 -0700</bug_when>
    <thetext>We at least need several tests to cover these cases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>876946</commentid>
    <comment_count>1</comment_count>
      <attachid>198452</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-04-16 16:43:19 -0700</bug_when>
    <thetext>Created attachment 198452
Initial Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877569</commentid>
    <comment_count>2</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-04-17 16:42:32 -0700</bug_when>
    <thetext>Source/WebCore/ChangeLog
&gt; Shape-insides do not require content in every segment. 
I&apos;m not exactly sure what this means. Some line segments within a shape may be empty because because the interior of the shape does not completely overlap the line?


Source/WebCore/rendering/RenderBlockLineLayout.cpp

&gt;       float minWidth = 0;
&gt;       for (size_t i = 0; i &lt; wordMeasurements.size(); i++) {
&gt;           minWidth = wordMeasurements[i].width;
&gt;           if (minWidth &gt; 0)
&gt;               break;
&gt;       }

Maybe move this litte loop into an aptly named inline function, so:

    float minWidth = firstPositiveWidth(wordMeasurements);

And I&apos;m hoping that there&apos;s no such thing as negative WordMeasurement.width values.  Note also: the cosmetic feedback I&apos;ve been getting about this kind of loop is to use unsigned and ++i, as in: for (unsigned i = 0; i &lt; wordMeasurements.size(); ++i)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878050</commentid>
    <comment_count>3</comment_count>
      <attachid>198757</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-04-18 13:24:50 -0700</bug_when>
    <thetext>Created attachment 198757
Incorporating feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878072</commentid>
    <comment_count>4</comment_count>
      <attachid>198757</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-18 14:00:49 -0700</bug_when>
    <thetext>Comment on attachment 198757
Incorporating feedback

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

Some minor comments bellow.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:1629
&gt; +    for (unsigned i = 0; i &lt; wordMeasurements.size(); i++) {

unsigned-&gt; size_t
i++ -&gt; ++i

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:1715
&gt; +            ASSERT(minWidth || !wordMeasurements.size());

!wordMeasurements.size() -&gt; wordMeasurements.isEmpty()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878086</commentid>
    <comment_count>5</comment_count>
      <attachid>198764</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-04-18 14:43:46 -0700</bug_when>
    <thetext>Created attachment 198764
Updating patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878565</commentid>
    <comment_count>6</comment_count>
      <attachid>198764</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-04-19 10:48:32 -0700</bug_when>
    <thetext>Comment on attachment 198764
Updating patch

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

r=me, although see comment.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:1722
&gt; +        if (exclusionShapeInsideInfo &amp;&amp; end == resolver.position()) {
&gt; +            float minWidth = firstPositiveWidth(wordMeasurements);
&gt; +            ASSERT(minWidth || wordMeasurements.isEmpty());
&gt; +            LayoutUnit nextLineHeight;
&gt; +            if (minWidth &gt; 0 &amp;&amp; exclusionShapeInsideInfo-&gt;adjustLogicalLineTop(minWidth))
&gt; +                nextLineHeight = exclusionShapeInsideInfo-&gt;logicalLineTop() - absoluteLogicalTop;
&gt; +            else
&gt; +                nextLineHeight = exclusionShapeInsideInfo-&gt;shapeLogicalBottom() - absoluteLogicalTop;
&gt; +            end = restartLayoutRunsAndFloatsInRange(logicalHeight(), nextLineHeight, lastFloatFromPreviousLine, resolver, oldEnd);
&gt;              continue;

I think it would be nice to put this into a helper function, even if it&apos;s just a static function that is up with firstPositiveWidth&apos;s definition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878652</commentid>
    <comment_count>7</comment_count>
      <attachid>198915</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-04-19 14:40:17 -0700</bug_when>
    <thetext>Created attachment 198915
Factoring out line adjustment code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878660</commentid>
    <comment_count>8</comment_count>
      <attachid>198915</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-04-19 15:45:21 -0700</bug_when>
    <thetext>Comment on attachment 198915
Factoring out line adjustment code

Adding to commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878676</commentid>
    <comment_count>9</comment_count>
      <attachid>198915</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-19 16:27:12 -0700</bug_when>
    <thetext>Comment on attachment 198915
Factoring out line adjustment code

Clearing flags on attachment: 198915

Committed r148781: &lt;http://trac.webkit.org/changeset/148781&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878677</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-19 16:27:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198452</attachid>
            <date>2013-04-16 16:43:19 -0700</date>
            <delta_ts>2013-04-18 13:24:48 -0700</delta_ts>
            <desc>Initial Patch</desc>
            <filename>bug-100049-20130416164252.patch</filename>
            <type>text/plain</type>
            <size>22200</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2IyOTE0OGJiNTNjNTZl
NTJjNWE0M2U1ZjgzMGE1ZTIxZGRmZDczOS4uZjQ0NWRlOWRmNGExZThhNzIwN2U4NTdmZDhkNTg1
NzY3YWE2OGE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTA0LTE2ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IEltcGxlbWVudCBlbXB0eSBzZWdtZW50cyBmb3IgbXVsdGlwbGUtc2VnbWVudCBzaGFwZS1pbnNp
ZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAw
NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaGFw
ZS1pbnNpZGVzIGRvIG5vdCByZXF1aXJlIGNvbnRlbnQgaW4gZXZlcnkgc2VnbWVudC4gT3ZlcmZs
b3cgbWF5IGJlIHB1c2hlZAorICAgICAgICB0byBvdXRzaWRlIHRoZSBzaGFwZS4gVGhpcyBwYXRj
aCByZW1vdmVzIHRoZSByZXN0cmljdGlvbiB0aGF0IGV2ZXJ5IGxpbmUgbXVzdAorICAgICAgICBj
b25zdW1lIGF0IGxlYXN0IHNvbWUgdGV4dCBpbnB1dCB3aGlsZSBpbnNpZGUgYSBzaGFwZS1pbnNp
ZGUuIENvbnRlbnQgdGhhdAorICAgICAgICBkb2VzIG5vdCBmaXQgaXMgcHVzaGVkIGRvd24gdW50
aWwgaXQgZG9lcywgZWl0aGVyIGluc2lkZSB0aGUgc2hhcGUgb3IganVzdAorICAgICAgICBiZWxv
dyBpdC4KKworICAgICAgICBUZXN0OiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1lbXB0eS1zZWdtZW50cy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEJpZGlSdW5z
Rm9yU2VnbWVudCk6IERvIG5vdCBpbmNsdWRlIGVtcHR5IHNlZ21lbnRzIGZvcgorICAgICAgICBj
b25zaWRlcmF0aW9uLCBhcyB0aGUgYWN0dWFsIEJpZGlSdW5zIGNvbnN0cnVjdGlvbiBleHBlY3Rz
IHRvIGNvbnN1bWUgYXQKKyAgICAgICAgbGVhc3Qgb25lIGNoYXJhY3Rlci4KKyAgICAgICAgKFdl
YkNvcmU6OmNvbnN0cnVjdEJpZGlSdW5zRm9yTGluZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKTogSWYgbm90aGluZyBm
aXQgaW4gdGhlCisgICAgICAgIGN1cnJlbnQgc2VnbWVudCwgZmluZCB0aGUgZmlyc3QgYXZhaWxh
YmxlIHBvc2l0aW9uIGZvciB0aGUgc21hbGxlc3QgaXRlbQorICAgICAgICBhdCB0aGUgYmVnaW5u
aW5nIG9mIHRoZSB0ZXh0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OkxpbmVCcmVh
a2VyOjpuZXh0TGluZUJyZWFrKTogUmV0dXJuIGFuIGVtcHR5IHNlZ21lbnQKKyAgICAgICAgZm9y
IGEgbGluZSB0aGF0IGlzIGluc2lkZSB0aGUgc2hhcGUsIGJ1dCBoYXMgbm8gc2VnbWVudHMuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6TGluZUJyZWFrZXI6Om5leHRTZWdtZW50QnJl
YWspOiBEbyBub3QgY29uc3VtZQorICAgICAgICBpbnB1dCB0byBtZWV0IG1pbmltdW0gc2l6ZSBy
ZXF1aXJlbWVudHMgaWYgeW91IGFyZSBpbnNpZGUgYSBzaGFwZS4KKwogMjAxMy0wNC0xNiAgSmFt
ZXMgQ3JhaWcgIDxqYW1lc0Bjb29raWVjcm9vay5jb20+CiAKICAgICAgICAgZGZuIGVsZW1lbnQg
c2hvdWxkIGJlIGV4cG9zZWQgYXMgQVhHcm91cDpBWERlZmluaXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5kZXggNDgxYmE2
NGRiMDY3ZTE2NWJhZDk2YjU0MzEzYWNiZWE4ZmVkM2I3ZC4uYzRhNmVlNDNjYmNlNTRhNjFkMDI5
OWI4MGNhNzY5MGJhYWY4NjZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTEyODYsNiArMTI4Niw3IEBAIHN0YXRpYyBp
bmxpbmUgdm9pZCBjb25zdHJ1Y3RCaWRpUnVuc0ZvclNlZ21lbnQoSW5saW5lQmlkaVJlc29sdmVy
JiB0b3BSZXNvbHZlciwKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHBhc3MgYSBCaWRpUnVuTGlz
dCBpbnRvIGNyZWF0ZUJpZGlSdW5zRm9yTGluZSBpbnN0ZWFkCiAgICAgLy8gb2YgdGhlIHJlc29s
dmVyIG93bmluZyB0aGUgcnVucy4KICAgICBBU1NFUlQoJnRvcFJlc29sdmVyLnJ1bnMoKSA9PSAm
YmlkaVJ1bnMpOworICAgIEFTU0VSVCh0b3BSZXNvbHZlci5wb3NpdGlvbigpICE9IGVuZE9mUnVu
cyk7CiAgICAgUmVuZGVyT2JqZWN0KiBjdXJyZW50Um9vdCA9IHRvcFJlc29sdmVyLnBvc2l0aW9u
KCkucm9vdCgpOwogICAgIHRvcFJlc29sdmVyLmNyZWF0ZUJpZGlSdW5zRm9yTGluZShlbmRPZlJ1
bnMsIG92ZXJyaWRlLCBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHkpOwogCkBAIC0xMzcyLDYgKzEz
NzMsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY29uc3RydWN0QmlkaVJ1bnNGb3JMaW5lKGNvbnN0
IFJlbmRlckJsb2NrKiBibG9jaywgSW5saW5lQmlkaQogICAgICAgICAgICAgLy8gRG8gbm90IGNv
bGxhcHNlIG1pZHBvaW50cyBiZXR3ZWVuIHNlZ21lbnRzCiAgICAgICAgICAgICB0b3BSZXNvbHZl
ci5taWRwb2ludFN0YXRlKCkuYmV0d2Vlbk1pZHBvaW50cyA9IGZhbHNlOwogICAgICAgICB9Cisg
ICAgICAgIGlmIChzZWdtZW50U3RhcnQgPT0gc2VnbWVudEVuZCkKKyAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICB0b3BSZXNvbHZlci5zZXRQb3NpdGlvbihzZWdtZW50U3RhcnQsIG51bWJl
ck9mSXNvbGF0ZUFuY2VzdG9ycyhzZWdtZW50U3RhcnQpKTsKICAgICAgICAgY29uc3RydWN0Qmlk
aVJ1bnNGb3JTZWdtZW50KHRvcFJlc29sdmVyLCBiaWRpUnVucywgc2VnbWVudEVuZCwgb3ZlcnJp
ZGUsIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSk7CiAgICAgfQpAQCAtMTY4NCwxNSArMTY4Nywy
OCBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRzSW5SYW5nZShMaW5lTGF5
b3V0U3RhdGUmIGxheW91dFN0YXRlLCBJbmxpbgogICAgICAgICAgICAgcmVzb2x2ZXIuc2V0UG9z
aXRpb24oSW5saW5lSXRlcmF0b3IocmVzb2x2ZXIucG9zaXRpb24oKS5yb290KCksIDAsIDApLCAw
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIEFTU0VSVChlbmQgIT0g
cmVzb2x2ZXIucG9zaXRpb24oKSk7CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAg
ICAgIGlmIChleGNsdXNpb25TaGFwZUluc2lkZUluZm8gJiYgd29yZE1lYXN1cmVtZW50cy5zaXpl
KCkgJiYgZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5hZGp1c3RMb2dpY2FsTGluZVRvcCh3b3Jk
TWVhc3VyZW1lbnRzWzBdLndpZHRoKSkgewotICAgICAgICAgICAgZW5kID0gcmVzdGFydExheW91
dFJ1bnNBbmRGbG9hdHNJblJhbmdlKGxvZ2ljYWxIZWlnaHQoKSwgZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLT5sb2dpY2FsTGluZVRvcCgpIC0gYWJzb2x1dGVMb2dpY2FsVG9wLCBsYXN0RmxvYXRG
cm9tUHJldmlvdXNMaW5lLCByZXNvbHZlciwgb2xkRW5kKTsKKyAgICAgICAgaWYgKGV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbyAmJiBlbmQgPT0gcmVzb2x2ZXIucG9zaXRpb24oKSkgeworICAgICAg
ICAgICAgZmxvYXQgbWluV2lkdGggPSAwOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCB3b3JkTWVhc3VyZW1lbnRzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgbWlu
V2lkdGggPSB3b3JkTWVhc3VyZW1lbnRzW2ldLndpZHRoOworICAgICAgICAgICAgICAgIGlmICht
aW5XaWR0aCA+IDApCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgQVNTRVJUKG1pbldpZHRoIHx8ICF3b3JkTWVhc3VyZW1lbnRzLnNpemUoKSk7
CisgICAgICAgICAgICBMYXlvdXRVbml0IG5leHRMaW5lSGVpZ2h0OworICAgICAgICAgICAgaWYg
KG1pbldpZHRoID4gMCAmJiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmFkanVzdExvZ2ljYWxM
aW5lVG9wKG1pbldpZHRoKSkKKyAgICAgICAgICAgICAgICBuZXh0TGluZUhlaWdodCA9IGV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mby0+bG9naWNhbExpbmVUb3AoKSAtIGFic29sdXRlTG9naWNhbFRv
cDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXh0TGluZUhlaWdodCA9IGV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+c2hhcGVMb2dpY2FsQm90dG9tKCkgLSBhYnNvbHV0ZUxv
Z2ljYWxUb3A7CisgICAgICAgICAgICBlbmQgPSByZXN0YXJ0TGF5b3V0UnVuc0FuZEZsb2F0c0lu
UmFuZ2UobG9naWNhbEhlaWdodCgpLCBuZXh0TGluZUhlaWdodCwgbGFzdEZsb2F0RnJvbVByZXZp
b3VzTGluZSwgcmVzb2x2ZXIsIG9sZEVuZCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfQogI2VuZGlmCiAKKyAgICAgICAgQVNTRVJUKGVuZCAhPSByZXNvbHZlci5wb3NpdGlvbigp
KTsKKwogICAgICAgICAvLyBUaGlzIGlzIGEgc2hvcnQtY3V0IGZvciBlbXB0eSBsaW5lcy4KICAg
ICAgICAgaWYgKGxheW91dFN0YXRlLmxpbmVJbmZvKCkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBpZiAobGFzdFJvb3RCb3goKSkKQEAgLTI2NDIsMTIgKzI2NTgsMTggQEAgSW5saW5lSXRlcmF0
b3IgUmVuZGVyQmxvY2s6OkxpbmVCcmVha2VyOjpuZXh0TGluZUJyZWFrKElubGluZUJpZGlSZXNv
bHZlciYgcmVzb2wKICAgICByZXR1cm4gbmV4dFNlZ21lbnRCcmVhayhyZXNvbHZlciwgbGluZUlu
Zm8sIHJlbmRlclRleHRJbmZvLCBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lLCBjb25zZWN1dGl2
ZUh5cGhlbmF0ZWRMaW5lcywgd29yZE1lYXN1cmVtZW50cyk7CiAjZWxzZQogICAgIEV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gbV9ibG9jay0+bGF5
b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7Ci0gICAgaWYgKCFleGNsdXNpb25TaGFwZUlu
c2lkZUluZm8gfHwgIWV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+aGFzU2VnbWVudHMoKSkKKyAg
ICBpZiAoIWV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyB8fCAhZXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvLT5saW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpKQogICAgICAgICByZXR1cm4gbmV4dFNlZ21l
bnRCcmVhayhyZXNvbHZlciwgbGluZUluZm8sIHJlbmRlclRleHRJbmZvLCBsYXN0RmxvYXRGcm9t
UHJldmlvdXNMaW5lLCBjb25zZWN1dGl2ZUh5cGhlbmF0ZWRMaW5lcywgd29yZE1lYXN1cmVtZW50
cyk7CiAKICAgICBJbmxpbmVJdGVyYXRvciBlbmQgPSByZXNvbHZlci5wb3NpdGlvbigpOwogICAg
IElubGluZUl0ZXJhdG9yIG9sZEVuZCA9IGVuZDsKIAorICAgIGlmICghZXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvLT5oYXNTZWdtZW50cygpKSB7CisgICAgICAgIGVuZCA9IG5leHRTZWdtZW50QnJl
YWsocmVzb2x2ZXIsIGxpbmVJbmZvLCByZW5kZXJUZXh0SW5mbywgbGFzdEZsb2F0RnJvbVByZXZp
b3VzTGluZSwgY29uc2VjdXRpdmVIeXBoZW5hdGVkTGluZXMsIHdvcmRNZWFzdXJlbWVudHMpOwor
ICAgICAgICByZXNvbHZlci5zZXRQb3NpdGlvbklnbm9yaW5nTmVzdGVkSXNvbGF0ZXMob2xkRW5k
KTsKKyAgICAgICAgcmV0dXJuIG9sZEVuZDsKKyAgICB9CisKICAgICBjb25zdCBTZWdtZW50TGlz
dCYgc2VnbWVudHMgPSBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPnNlZ21lbnRzKCk7CiAgICAg
U2VnbWVudFJhbmdlTGlzdCYgc2VnbWVudFJhbmdlcyA9IGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
by0+c2VnbWVudFJhbmdlcygpOwogCkBAIC0yNjYyLDYgKzI2ODQsNyBAQCBJbmxpbmVJdGVyYXRv
ciBSZW5kZXJCbG9jazo6TGluZUJyZWFrZXI6Om5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29s
dmVyJiByZXNvbAogICAgICAgICB9CiAgICAgICAgIGlmIChyZXNvbHZlci5wb3NpdGlvbigpID09
IGVuZCkgewogICAgICAgICAgICAgLy8gTm90aGluZyBmaXQgdGhpcyBzZWdtZW50CisgICAgICAg
ICAgICBlbmQgPSBzZWdtZW50U3RhcnQ7CiAgICAgICAgICAgICBzZWdtZW50UmFuZ2VzLmFwcGVu
ZChMaW5lU2VnbWVudFJhbmdlKHNlZ21lbnRTdGFydCwgc2VnbWVudFN0YXJ0KSk7CiAgICAgICAg
ICAgICByZXNvbHZlci5zZXRQb3NpdGlvbklnbm9yaW5nTmVzdGVkSXNvbGF0ZXMoc2VnbWVudFN0
YXJ0KTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTI2NzcsNiArMjcwMCw3IEBAIElubGluZUl0ZXJh
dG9yIFJlbmRlckJsb2NrOjpMaW5lQnJlYWtlcjo6bmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVz
b2x2ZXImIHJlc29sCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CisKICAgICByZXNv
bHZlci5zZXRQb3NpdGlvbklnbm9yaW5nTmVzdGVkSXNvbGF0ZXMob2xkRW5kKTsKICAgICByZXR1
cm4gZW5kOwogI2VuZGlmCkBAIC0zMjc1LDcgKzMyOTksMTQgQEAgSW5saW5lSXRlcmF0b3IgUmVu
ZGVyQmxvY2s6OkxpbmVCcmVha2VyOjpuZXh0U2VnbWVudEJyZWFrKElubGluZUJpZGlSZXNvbHZl
ciYgcmUKICAgICAgICAgbEJyZWFrLmNsZWFyKCk7CiAKICBlbmQ6Ci0gICAgaWYgKGxCcmVhayA9
PSByZXNvbHZlci5wb3NpdGlvbigpICYmICghbEJyZWFrLm1fb2JqIHx8ICFsQnJlYWsubV9vYmot
PmlzQlIoKSkpIHsKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvKiBzaGFwZUluZm8gPSBtX2Jsb2NrLT5sYXlvdXRFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8oKTsKKyAgICBib29sIHNlZ21lbnRBbGxvd3NPdmVyZmxvdyA9ICFzaGFwZUluZm8g
fHwgIXNoYXBlSW5mby0+aGFzU2VnbWVudHMoKTsKKyNlbHNlCisgICAgYm9vbCBzZWdtZW50QWxs
b3dzT3ZlcmZsb3cgPSB0cnVlOworI2VuZGlmCisKKyAgICBpZiAobEJyZWFrID09IHJlc29sdmVy
LnBvc2l0aW9uKCkgJiYgKCFsQnJlYWsubV9vYmogfHwgIWxCcmVhay5tX29iai0+aXNCUigpKSAm
JiBzZWdtZW50QWxsb3dzT3ZlcmZsb3cpIHsKICAgICAgICAgLy8gd2UganVzdCBhZGQgYXMgbXVj
aCBhcyBwb3NzaWJsZQogICAgICAgICBpZiAoYmxvY2tTdHlsZS0+d2hpdGVTcGFjZSgpID09IFBS
RSAmJiAhY3VycmVudC5tX3BvcykgewogICAgICAgICAgICAgbEJyZWFrLm1vdmVUbyhsYXN0LCBs
YXN0LT5pc1RleHQoKSA/IGxhc3QtPmxlbmd0aCgpIDogMCk7CkBAIC0zMjg3LDEwICszMzE4LDgg
QEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OkxpbmVCcmVha2VyOjpuZXh0U2VnbWVudEJy
ZWFrKElubGluZUJpZGlSZXNvbHZlciYgcmUKICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIEZJ
WE1FIEJ1ZyAxMDAwNDk6IFdlIGRvIG5vdCBuZWVkIHRvIGNvbnN1bWUgaW5wdXQgaW4gYSBtdWx0
aS1zZWdtZW50IGxpbmUKLSAgICAvLyB1bmxlc3Mgbm8gc2VnbWVudCB3aWxsLgogICAgIC8vIG1h
a2Ugc3VyZSB3ZSBjb25zdW1lIGF0IGxlYXN0IG9uZSBjaGFyL29iamVjdC4KLSAgICBpZiAobEJy
ZWFrID09IHJlc29sdmVyLnBvc2l0aW9uKCkpCisgICAgaWYgKGxCcmVhayA9PSByZXNvbHZlci5w
b3NpdGlvbigpICYmIHNlZ21lbnRBbGxvd3NPdmVyZmxvdykKICAgICAgICAgbEJyZWFrLmluY3Jl
bWVudCgpOwogCiAgICAgLy8gU2FuaXR5IGNoZWNrIG91ciBtaWRwb2ludHMuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDM3
NTRiNjlmYmIxYTRkYmM3NDIwMDU1OGEyZGFmM2Q1NDUxYzIyMi4uZGNlMGRmNmIzZWQ4MGViZWNj
MDNlNjcxYTRjZTg0M2I5M2Y5OTczYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTA0LTE2
ICBCZWFyIFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1
c2lvbnNdIEltcGxlbWVudCBlbXB0eSBzZWdtZW50cyBmb3IgbXVsdGlwbGUtc2VnbWVudCBzaGFw
ZS1pbnNpZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDAwNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0aW5nIHRoYXQgc2hhcGUtaW5zaWRlcyBkbyBub3QgcGxhY2UgY29udGVudCB3aGVyZSBp
dCB3aWxsIG5vdCBmaXQuIEFsc28KKyAgICAgICAgZml4aW5nIHVwIHNvbWUgcHJldmlvdXMgdGVz
dHMgYW5kIGV4cGVjdGF0aW9ucy4KKworICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9yZXNvdXJj
ZXMvbXVsdGktc2VnbWVudC1wb2x5Z29uLmpzOgorICAgICAgICAoc2ltdWxhdGVXaXRoVGV4dCk6
IEVuYWJsZSBtdWx0aS1saW5lIHNoYXBlIGV4cGVjdGF0aW9ucyB1c2luZyBhcnJheXMuCisgICAg
ICAgICogZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9zaW1wbGUtcmVjdGFuZ2xlLmpzOgorICAg
ICAgICAoY3JlYXRlUmVjdGFuZ2xlVGVzdCk6IEFkZCBvdmVyZmxvdzogYnJlYWstd29yZCBwcm9w
ZXJ0eSB0byB0ZXN0cy4KKyAgICAgICAgKGNyZWF0ZVJlY3RhbmdsZVRlc3RSZXN1bHQpOiBEaXR0
by4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1l
bXB0eS1leHBlY3RlZC5odG1sOiBBZGp1c3QgcmVzdWx0cworICAgICAgICBmb3IgdGVzdHMgd2hl
cmUgY29udGVudCBzaG91bGQgYmUgcHVzaGVkIGRvd24uCisgICAgICAgICogZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZW1wdHktc2VnbWVudHMtZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtZW1wdHktc2VnbWVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZW1wdHkuaHRtbDogU2hhcGVzIHdpdGggaGVp
Z2h0IGJ1dAorICAgICAgICBubyB3aWR0aCBzaG91bGQgc3RpbGwgcHVzaCBjb250ZW50IGRvd24g
YmVsb3cgdGhlIHNoYXBlLgorCiAyMDEzLTA0LTE2ICBKYW1lcyBDcmFpZyAgPGphbWVzQGNvb2tp
ZWNyb29rLmNvbT4KIAogICAgICAgICBkZm4gZWxlbWVudCBzaG91bGQgYmUgZXhwb3NlZCBhcyBB
WEdyb3VwOkFYRGVmaW5pdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3Jlc291cmNlcy9tdWx0aS1zZWdtZW50LXBvbHlnb24uanMgYi9MYXlvdXRUZXN0cy9mYXN0
L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL211bHRpLXNlZ21lbnQtcG9seWdvbi5qcwppbmRleCA4NjM0
NmUxNjgxNjcwMGU5NTdiMjI0NzA1YjU5NjUwZTZjNjY5M2ZhLi4zMjI5YTE4ZGI2YzU2NTg3Yzky
ZGE2NzVjY2Q2N2NjZmE0ZGU1ZDA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1
c2lvbnMvcmVzb3VyY2VzL211bHRpLXNlZ21lbnQtcG9seWdvbi5qcworKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL211bHRpLXNlZ21lbnQtcG9seWdvbi5qcwpAQCAt
MjEsNiArMjEsMTAgQEAgZnVuY3Rpb24gc2ltdWxhdGVXaXRoVGV4dCh3aWR0aCwgaGVpZ2h0LCBm
b250U2l6ZSwgY29udGVudCwgZWxlbWVudElkKSB7CiAgICAgZGl2LnN0eWxlLnNldFByb3BlcnR5
KCdoZWlnaHQnLCBoZWlnaHQgKyAncHgnKTsKICAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkoJ2Zv
bnQnLCBmb250U2l6ZSArICdweC8xIEFoZW0sIHNhbnMtc2VyaWYnKTsKICAgICBkaXYuc3R5bGUu
c2V0UHJvcGVydHkoJ2NvbG9yJywgJ2dyZWVuJyk7CisgICAgaWYgKGNvbnRlbnQgaW5zdGFuY2Vv
ZiBBcnJheSkgeworICAgICAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkoJ3doaXRlLXNwYWNlJywg
J3ByZScpOworICAgICAgICBjb250ZW50ID0gY29udGVudC5qb2luKCdcbicpOworICAgIH0KICAg
ICBkaXYuaW5uZXJIVE1MID0gY29udGVudDsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9zaW1wbGUtcmVjdGFuZ2xlLmpzIGIvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9zaW1wbGUtcmVjdGFuZ2xlLmpzCmluZGV4IDY5
MzUxOTU0MjgyMmVkYjMzZTBhMzdkMzMyOGYyYjQxMjQ1N2VkYTEuLjM0N2QwYTk0MjRkZWFjMTkw
YWQ1NDgzY2YzZGYwZjQ0ZmJmNmVkOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhj
bHVzaW9ucy9yZXNvdXJjZXMvc2ltcGxlLXJlY3RhbmdsZS5qcworKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL3NpbXBsZS1yZWN0YW5nbGUuanMKQEAgLTE4LDYgKzE4
LDcgQEAgZnVuY3Rpb24gY3JlYXRlUmVjdGFuZ2xlVGVzdChlbGVtZW50SWQsIHN0eWxlc2hlZXRJ
ZCwgYm91bmRzLCBzaGFwZUJvdW5kcywgdW5pdHMKICAgICB2YXIgcmVjdGFuZ2xlQm91bmRzID0g
W3NoYXBlQm91bmRzLnggKyB1bml0cywgc2hhcGVCb3VuZHMueSArIHVuaXRzLCBzaGFwZUJvdW5k
cy53aWR0aCArIHVuaXRzLCBzaGFwZUJvdW5kcy5oZWlnaHQgKyB1bml0c107CiAgICAgcnVsZXMu
cHVzaCgnLXdlYmtpdC1zaGFwZS1pbnNpZGU6IHJlY3RhbmdsZSgnICsgcmVjdGFuZ2xlQm91bmRz
LmpvaW4oJywnKSArICcpJyk7CiAgICAgcnVsZXMucHVzaCgncG9zaXRpb246IHJlbGF0aXZlJyk7
CisgICAgcnVsZXMucHVzaCgnb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZCcpOwogICAgIHN0eWxl
c2hlZXQuaW5zZXJ0UnVsZSgnIycgKyBlbGVtZW50SWQgKyAneycgKyBydWxlcy5qb2luKCc7Jykg
KyAnfScpOwogCiAgICAgcnVsZXMgPSBbXTsKQEAgLTQ1LDYgKzQ2LDcgQEAgZnVuY3Rpb24gY3Jl
YXRlUmVjdGFuZ2xlVGVzdFJlc3VsdChlbGVtZW50SWQsIHN0eWxlc2hlZXRJZCwgYm91bmRzLCBz
aGFwZUJvdW5kcywKICAgICBydWxlcy5wdXNoKCdwYWRkaW5nLWxlZnQ6ICcgKyBzaGFwZUJvdW5k
cy54ICsgdW5pdHMsICdwYWRkaW5nLXJpZ2h0OiAnICsgKGJvdW5kcy53aWR0aCAtIHNoYXBlQm91
bmRzLndpZHRoIC0gc2hhcGVCb3VuZHMueCkgKyB1bml0cyk7CiAgICAgcnVsZXMucHVzaCgncGFk
ZGluZy10b3A6ICcgKyBzaGFwZUJvdW5kcy55ICsgdW5pdHMsICdwYWRkaW5nLWJvdHRvbTogJyAr
IChib3VuZHMuaGVpZ2h0IC0gc2hhcGVCb3VuZHMuaGVpZ2h0IC0gc2hhcGVCb3VuZHMueSkgKyB1
bml0cyk7CiAgICAgcnVsZXMucHVzaCgncG9zaXRpb246IHJlbGF0aXZlJyk7CisgICAgcnVsZXMu
cHVzaCgnb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZCcpOwogICAgIHN0eWxlc2hlZXQuaW5zZXJ0
UnVsZSgnIycgKyBlbGVtZW50SWQgKyAneycgKyBydWxlcy5qb2luKCc7JykgKyAnfScpOwogCiAg
ICAgcnVsZXMgPSBbXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVtcHR5LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbXB0eS1leHBlY3Rl
ZC5odG1sCmluZGV4IDA2NTBmMWY1YTU2MzllMWViN2M0OWNiMWIwZjUzNTkzOWU2YjZlM2YuLjIy
MzA2Y2MwMGUyZDQyYjRkZmQ5MzY3MjI0ZjVlMTViMzQyNjg3NDIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVtcHR5LWV4
cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtZW1wdHktZXhwZWN0ZWQuaHRtbApAQCAtMTAsMzMgKzEwLDM0IEBACiAg
ICAgICAgIHdpZHRoOiA4MDBweDsKICAgICAgICAgaGVpZ2h0OiAyZW07CiAgICAgICAgIGJvcmRl
cjogc29saWQgZ3JlZW47CisgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgfQor
ICAgIC5wYWRkZWQgeworICAgICAgICBwYWRkaW5nLXRvcDogMWVtOwogICAgIH0KIDwvc3R5bGU+
CiA8L2hlYWQ+CiA8Ym9keT4KLSAgICA8cCBjbGFzcz0ic2hhcGUtaW5zaWRlIj4KLSAgICAgICAg
VGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSByZWN0YW5nbGUoMHB4LCAw
cHgsIDBweCwgMTAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCisgICAgPHAgY2xhc3M9
InNoYXBlLWluc2lkZSBwYWRkZWQiPgorICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIHNoaWZ0
ZWQgZG93biAxZW0gYnkgdGhlIHJlY3RhbmdsZSgwcHgsIDBweCwgMHB4LCAxZW0pIHNoYXBlLWlu
c2lkZSBDU1MgcHJvcGVydHkuCiAgICAgPC9wPgogICAgIDxwIGNsYXNzPSJzaGFwZS1pbnNpZGUi
PgotICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIHVuY29uc3RyYWluZWQgYnkgdGhlIHJlY3Rh
bmdsZSgwcHgsIDBweCwgMTAwcHgsIDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KKyAg
ICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSByZWN0YW5nbGUo
MHB4LCAwcHgsIDFlbSwgMHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgogICAgIDwvcD4K
ICAgICA8cCBjbGFzcz0ic2hhcGUtaW5zaWRlIj4KICAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBi
ZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSBjaXJjbGUoMHB4LCAwcHgsIDBweCkgc2hhcGUtaW5zaWRl
IENTUyBwcm9wZXJ0eS4KICAgICA8L3A+Ci0gICAgPHAgY2xhc3M9InNoYXBlLWluc2lkZSI+Ci0g
ICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgZWxsaXBzZVgw
KDBweCwgMHB4LCAwcHgsIDEwMHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgotICAgIDwv
cD4KLSAgICA8cCBjbGFzcz0ic2hhcGUtaW5zaWRlIj4KLSAgICAgICAgVGhpcyB0ZXh0IHNob3Vs
ZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSBlbGxpcHNlKDBweCwgMHB4LCAxMDBweCwgMHB4KSBz
aGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgorICAgIDxwIGNsYXNzPSJzaGFwZS1pbnNpZGUgcGFk
ZGVkIj4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBzaGlmdGVkIGRvd24gMWVtIGJ5IHRo
ZSBlbGxpcHNlWDAoMHB4LCAwcHgsIDBweCwgMWVtKSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5
LgogICAgIDwvcD4KICAgICA8cCBjbGFzcz0ic2hhcGUtaW5zaWRlIj4KLSAgICAgICAgVGhpcyB0
ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSBwb2x5Z29uKCkgc2hhcGUtaW5zaWRl
IENTUyBwcm9wZXJ0eS4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVk
IGJ5IHRoZSBlbGxpcHNlKDBweCwgMHB4LCAxZW0sIDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9w
ZXJ0eS4KICAgICA8L3A+CiAgICAgPHAgY2xhc3M9InNoYXBlLWluc2lkZSI+CiAgICAgICAgIFRo
aXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgcG9seWdvbigwcHggMHB4KSBz
aGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgogICAgIDwvcD4KICAgICA8cCBjbGFzcz0ic2hhcGUt
aW5zaWRlIj4KLSAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRo
ZSBwb2x5Z29uKDBweCAwcHgsIDEwcHggMHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5Lgor
ICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIHVuY29uc3RyYWluZWQgYnkgdGhlIHBvbHlnb24o
MHB4IDBweCwgMWVtIDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KICAgICA8L3A+CiA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
c2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbXB0eS1zZWdtZW50cy1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZW1w
dHktc2VnbWVudHMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2ExMGZjNWFkYTJmYTM0Y2Qz
MGUzYTc3M2ZiZDI5N2MwNzk5Nzg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZW1wdHktc2VnbWVudHMtZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0nLi4vcmVzb3VyY2VzL211bHRpLXNlZ21lbnQtcG9seWdvbi5qcyc+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAg
ICAgICAgc2ltdWxhdGVXaXRoVGV4dCgxMDAsIDEwMCwgNTAsIFsnIHgnLCAneHgnXSwgJ2ZpcnN0
Jyk7CisgICAgICAgIHNpbXVsYXRlV2l0aFRleHQoMTAwLCAxMDAsIDUwLCBbJ3gnLCAneHgnXSwg
J2xhc3QnKTsKKyAgICAgICAgc2ltdWxhdGVXaXRoVGV4dCgyMDAsIDEwMCwgNTAsIFsneCAgeCcs
ICd4eHh4J10sICdtaWRkbGUnKTsKKyAgICAgICAgc2ltdWxhdGVXaXRoVGV4dCgxMDAsIDEwMCwg
NTAsIFsnIHgnLCAneHgnXSwgJ2ZpcnN0LW91dHNpZGUnKTsKKyAgICAgICAgc2ltdWxhdGVXaXRo
VGV4dCgxMDAsIDEwMCwgNTAsIFsneCcsICd4eCddLCAnbGFzdC1vdXRzaWRlJyk7CisgICAgICAg
IHNpbXVsYXRlV2l0aFRleHQoMTAwLCAxMDAsIDUwLCBbJyB4JywgJ3h4J10sICdmaXJzdC1pbnRl
cnNlY3QnKTsKKyAgICAgICAgc2ltdWxhdGVXaXRoVGV4dCgxMDAsIDEwMCwgNTAsIFsneCcsICd4
eCddLCAnbGFzdC1pbnRlcnNlY3QnKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICAgIDxwPlRoZXNlIHRlc3RzIGNvdmVyIG11bHRpc2VnbWVudCBwb2x5Z29ucyB3aGVyZSBz
b21lIHNlZ21lbnRzIHNob3VsZCBub3QgaGF2ZSBjb250ZW50LCBlaXRoZXIgYmVjYXVzZSB0aGV5
IGFyZSB0b28gc21hbGwsIG9yIGJlY2F1c2UgdGhleSBhcmUgb3V0c2lkZSB0aGUgY29udGVudCBi
b3guIEl0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuPC9wPgorICAgIDxwPkFuIGVtcHR5IGluaXRp
YWwgc2VnbWVudCBvbiB0aGUgZmlyc3QgbGluZSBbMngyIGdyaWRdPC9wPgorICAgIDxkaXYgaWQ9
J2ZpcnN0Jz48L2Rpdj4KKyAgICA8cD5BbiBlbXB0eSBmaW5hbCBzZWdtZW50IG9uIHRoZSBmaXJz
dCBsaW5lIFsyeDIgZ3JpZF08L3A+CisgICAgPGRpdiBpZD0nbGFzdCc+PC9kaXY+CisgICAgPHA+
QW4gZW1wdHkgbWlkZGxlIHNlZ21lbnQgb24gdGhlIGZpcnN0IGxpbmUgWzR4Ml0gZ3JpZDwvcD4K
KyAgICA8ZGl2IGlkPSdtaWRkbGUnPjwvZGl2PgorICAgIDxwPlRoZSBpbml0aWFsIHNlZ21lbnQg
aXMgb3V0c2lkZSB0aGUgY29udGVudCBib3ggWzJ4Ml0gZ3JpZDwvcD4KKyAgICA8ZGl2IGlkPSdm
aXJzdC1vdXRzaWRlJz48L2Rpdj4KKyAgICA8cD5UaGUgZmluYWwgc2VnbWVudCBpcyBvdXRzaWRl
IHRoZSBjb250ZW50IGJveCBbMngyXSBncmlkPC9wPgorICAgIDxkaXYgaWQ9J2xhc3Qtb3V0c2lk
ZSc+PC9kaXY+CisgICAgPHA+VGhlIGZpcnN0IHNlZ21lbnQgaW50ZXJzZWN0cyB0aGUgY29udGVu
dCBib3gsIGFuZCBpcyB0b28gc21hbGwgWzJ4Ml0gZ3JpZDwvcD4KKyAgICA8ZGl2IGlkPSdmaXJz
dC1pbnRlcnNlY3QnPjwvZGl2PgorICAgIDxwPlRoZSBsYXN0IHNlZ21lbnQgaW50ZXJzZWN0cyB0
aGUgY29udGVudCBib3gsIGFuZCBpcyB0b28gc21hbGwgWzJ4Ml0gZ3JpZDwvcD4KKyAgICA8ZGl2
IGlkPSdsYXN0LWludGVyc2VjdCc+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZW1wdHktc2VnbWVudHMuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVtcHR5LXNlZ21l
bnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc2ZjY1YWFmM2JmMmM1NDYyMzA4ZGQ3Nzg0YTc0ZTBhNDQ2
MmIyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFw
ZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVtcHR5LXNlZ21lbnRzLmh0bWwKQEAgLTAsMCArMSwzNCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291
cmNlcy9tdWx0aS1zZWdtZW50LXBvbHlnb24uanMnPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICB3
aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGdlbmVyYXRlUG9seWdvbigxMDAs
IDEwMCwgNTAsIFswLCAwLCAyNSwgMCwgMjUsIDUwLCA1MCwgNTAsIDUwLCAwLCAxMDAsIDAsIDEw
MCwgMTAwLCAwLCAxMDBdLCAneHh4JywgJ2ZpcnN0Jyk7CisgICAgICAgIGdlbmVyYXRlUG9seWdv
bigxMDAsIDEwMCwgNTAsIFswLCAwLCA1MCwgMCwgNTAsIDUwLCA3NSwgNTAsIDc1LCAwLCAxMDAs
IDAsIDEwMCwgMTAwLCAwLCAxMDBdLCAneHh4JywgJ2xhc3QnKTsKKyAgICAgICAgZ2VuZXJhdGVQ
b2x5Z29uKDIwMCwgMTAwLCA1MCwgWzAsIDAsIDUwLCAwLCA1MCwgNTAsIDc1LCA1MCwgNzUsIDAs
IDEwMCwgMCwgMTAwLCA1MCwgMTUwLCA1MCwgMTUwLCAwLCAyMDAsIDAsIDIwMCwgMTAwLCAwLCAx
MDBdLCAneHh4eHh4JywgJ21pZGRsZScpOworICAgICAgICBnZW5lcmF0ZVBvbHlnb24oMTAwLCAx
MDAsIDUwLCBbLTUwLCAwLCAwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMTAwLCAwLCAxMDAs
IDEwMCwgLTUwLCAxMDBdLCAneHh4JywgJ2ZpcnN0LW91dHNpZGUnKTsKKyAgICAgICAgZ2VuZXJh
dGVQb2x5Z29uKDEwMCwgMTAwLCA1MCwgWzAsIDAsIDUwLCAwLCA1MCwgNTAsIDEwMCwgNTAsIDEw
MCwgMCwgMTUwLCAwLCAxNTAsIDEwMCwgMCwgMTAwXSwgJ3h4eCcsICdsYXN0LW91dHNpZGUnKTsK
KyAgICAgICAgZ2VuZXJhdGVQb2x5Z29uKDEwMCwgMTAwLCA1MCwgWy01MCwgLTUwLCAyNSwgLTUw
LCAyNSwgNTAsIDUwLCA1MCwgNTAsIDAsIDEwMCwgMCwgMTAwLCAxMDAsIDAsIDEwMF0sICd4eHgn
LCAnZmlyc3QtaW50ZXJzZWN0Jyk7CisgICAgICAgIGdlbmVyYXRlUG9seWdvbigxMDAsIDEwMCwg
NTAsIFswLCAwLCA1MCwgMCwgNTAsIDUwLCA3NSwgNTAsIDc1LCAtNTAsIDE1MCwgLTUwLCAxNTAs
IDEwMCwgMCwgMTAwXSwgJ3h4eCcsICdsYXN0LWludGVyc2VjdCcpOworICAgIH0KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHA+VGhlc2UgdGVzdHMgY292ZXIgbXVsdGlzZWdtZW50
IHBvbHlnb25zIHdoZXJlIHNvbWUgc2VnbWVudHMgc2hvdWxkIG5vdCBoYXZlIGNvbnRlbnQsIGVp
dGhlciBiZWNhdXNlIHRoZXkgYXJlIHRvbyBzbWFsbCwgb3IgYmVjYXVzZSB0aGV5IGFyZSBvdXRz
aWRlIHRoZSBjb250ZW50IGJveC4gSXQgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC48L3A+CisgICAg
PHA+QW4gZW1wdHkgaW5pdGlhbCBzZWdtZW50IG9uIHRoZSBmaXJzdCBsaW5lIFsyeDIgZ3JpZF08
L3A+CisgICAgPGRpdiBpZD0nZmlyc3QnPjwvZGl2PgorICAgIDxwPkFuIGVtcHR5IGZpbmFsIHNl
Z21lbnQgb24gdGhlIGZpcnN0IGxpbmUgWzJ4MiBncmlkXTwvcD4KKyAgICA8ZGl2IGlkPSdsYXN0
Jz48L2Rpdj4KKyAgICA8cD5BbiBlbXB0eSBtaWRkbGUgc2VnbWVudCBvbiB0aGUgZmlyc3QgbGlu
ZSBbNHgyXSBncmlkPC9wPgorICAgIDxkaXYgaWQ9J21pZGRsZSc+PC9kaXY+CisgICAgPHA+VGhl
IGluaXRpYWwgc2VnbWVudCBpcyBvdXRzaWRlIHRoZSBjb250ZW50IGJveCBbMngyXSBncmlkPC9w
PgorICAgIDxkaXYgaWQ9J2ZpcnN0LW91dHNpZGUnPjwvZGl2PgorICAgIDxwPlRoZSBmaW5hbCBz
ZWdtZW50IGlzIG91dHNpZGUgdGhlIGNvbnRlbnQgYm94IFsyeDJdIGdyaWQ8L3A+CisgICAgPGRp
diBpZD0nbGFzdC1vdXRzaWRlJz48L2Rpdj4KKyAgICA8cD5UaGUgZmlyc3Qgc2VnbWVudCBpbnRl
cnNlY3RzIHRoZSBjb250ZW50IGJveCwgYW5kIGlzIHRvbyBzbWFsbCBbMngyXSBncmlkPC9wPgor
ICAgIDxkaXYgaWQ9J2ZpcnN0LWludGVyc2VjdCc+PC9kaXY+CisgICAgPHA+VGhlIGxhc3Qgc2Vn
bWVudCBpbnRlcnNlY3RzIHRoZSBjb250ZW50IGJveCwgYW5kIGlzIHRvbyBzbWFsbCBbMngyXSBn
cmlkPC9wPgorICAgIDxkaXYgaWQ9J2xhc3QtaW50ZXJzZWN0Jz48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbXB0eS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZW1w
dHkuaHRtbAppbmRleCAzYzk4MjNlNzc5ZmQwNmY1YTIyYzkxMjg3OWIyODFhMzBiM2YyZjI0Li42
YmNkZGY3ZDRlNWFkZmE2NmVmNzI4NzVmYzY2YjkyMjFjNDQzZTM5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbXB0eS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLWVtcHR5Lmh0bWwKQEAgLTEwLDE0ICsxMCwxNiBAQAogICAgICAgICB3aWR0aDogODAw
cHg7CiAgICAgICAgIGhlaWdodDogMmVtOwogICAgICAgICBib3JkZXI6IHNvbGlkIGdyZWVuOwor
ICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgIH0KIAogICAgICNzaGFwZS1pbnNp
ZGUtcmVjdGFuZ2xlLXdpZHRoMCB7Ci0gICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0
YW5nbGUoMHB4LCAwcHgsIDBweCwgMTAwcHgpOworICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lk
ZTogcmVjdGFuZ2xlKDBweCwgMHB4LCAwcHgsIDFlbSk7CisgICAgICAgIHBhZGRpbmctdG9wOiAx
ZW07CiAgICAgfQogCiAgICAgI3NoYXBlLWluc2lkZS1yZWN0YW5nbGUtaGVpZ2h0MCB7Ci0gICAg
ICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0YW5nbGUoMHB4LCAwcHgsIDEwMHB4LCAwcHgp
OworICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcmVjdGFuZ2xlKDBweCwgMHB4LCAxZW0s
IDBweCk7CiAgICAgfQogCiAgICAgI3NoYXBlLWluc2lkZS1jaXJjbGUtcmFkaXVzMCB7CkBAIC0y
NSwxNSArMjcsMTIgQEAKICAgICB9CiAKICAgICAjc2hhcGUtaW5zaWRlLWVsbGlwc2UtcmFkaXVz
WDAgewotICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogZWxsaXBzZSgwcHgsIDBweCwgMHB4
LCAxMDBweCk7CisgICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiBlbGxpcHNlKDBweCwgMHB4
LCAwcHgsIDFlbSk7CisgICAgICAgIHBhZGRpbmctdG9wOiAxZW07CiAgICAgfQogCiAgICAgI3No
YXBlLWluc2lkZS1lbGxpcHNlLXJhZGl1c1kwIHsKLSAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNp
ZGU6IGVsbGlwc2UoMHB4LCAwcHgsIDEwMHB4LCAwcHgpOwotICAgIH0KLQotICAgICNzaGFwZS1p
bnNpZGUtcG9seWdvbi0wdmVydGljZXMgewotICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTog
cG9seWdvbigpOworICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogZWxsaXBzZSgwcHgsIDBw
eCwgMWVtLCAwcHgpOwogICAgIH0KIAogICAgICNzaGFwZS1pbnNpZGUtcG9seWdvbi0xdmVydGV4
IHsKQEAgLTQxLDM0ICs0MCwzMSBAQAogICAgIH0KIAogICAgICNzaGFwZS1pbnNpZGUtcG9seWdv
bi0ydmVydGljZXMgewotICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcG9seWdvbigwcHgg
MHB4LCAxMHB4IDBweCk7CisgICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiBwb2x5Z29uKDBw
eCAwcHgsIDFlbSAwcHgpOwogICAgIH0KIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KICAgICA8
cCBjbGFzcz0ic2hhcGUtaW5zaWRlIiBpZD0ic2hhcGUtaW5zaWRlLXJlY3RhbmdsZS13aWR0aDAi
PgotICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIHVuY29uc3RyYWluZWQgYnkgdGhlIHJlY3Rh
bmdsZSgwcHgsIDBweCwgMHB4LCAxMDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KKyAg
ICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBzaGlmdGVkIGRvd24gMWVtIGJ5IHRoZSByZWN0YW5n
bGUoMHB4LCAwcHgsIDBweCwgMWVtKSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgogICAgIDwv
cD4KICAgICA8cCBjbGFzcz0ic2hhcGUtaW5zaWRlIiBpZD0ic2hhcGUtaW5zaWRlLXJlY3Rhbmds
ZS1oZWlnaHQwIj4KLSAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5
IHRoZSByZWN0YW5nbGUoMHB4LCAwcHgsIDEwMHB4LCAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJv
cGVydHkuCisgICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUg
cmVjdGFuZ2xlKDBweCwgMHB4LCAxZW0sIDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4K
ICAgICA8L3A+CiAgICAgPHAgY2xhc3M9InNoYXBlLWluc2lkZSIgaWQ9InNoYXBlLWluc2lkZS1j
aXJjbGUtcmFkaXVzMCI+CiAgICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5l
ZCBieSB0aGUgY2lyY2xlKDBweCwgMHB4LCAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHku
CiAgICAgPC9wPgogICAgIDxwIGNsYXNzPSJzaGFwZS1pbnNpZGUiIGlkPSJzaGFwZS1pbnNpZGUt
ZWxsaXBzZS1yYWRpdXNYMCI+Ci0gICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJh
aW5lZCBieSB0aGUgZWxsaXBzZVgwKDBweCwgMHB4LCAwcHgsIDEwMHB4KSBzaGFwZS1pbnNpZGUg
Q1NTIHByb3BlcnR5LgorICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIHNoaWZ0ZWQgZG93biAx
ZW0gYnkgdGhlIGVsbGlwc2VYMCgwcHgsIDBweCwgMHB4LCAxZW0pIHNoYXBlLWluc2lkZSBDU1Mg
cHJvcGVydHkuCiAgICAgPC9wPgogICAgIDxwIGNsYXNzPSJzaGFwZS1pbnNpZGUiIGlkPSJzaGFw
ZS1pbnNpZGUtZWxsaXBzZS1yYWRpdXNZMCI+Ci0gICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUg
dW5jb25zdHJhaW5lZCBieSB0aGUgZWxsaXBzZSgwcHgsIDBweCwgMTAwcHgsIDBweCkgc2hhcGUt
aW5zaWRlIENTUyBwcm9wZXJ0eS4KLSAgICA8L3A+Ci0gICAgPHAgY2xhc3M9InNoYXBlLWluc2lk
ZSIgaWQ9InNoYXBlLWluc2lkZS1wb2x5Z29uLTB2ZXJ0aWNlcyI+Ci0gICAgICAgIFRoaXMgdGV4
dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgcG9seWdvbigpIHNoYXBlLWluc2lkZSBD
U1MgcHJvcGVydHkuCisgICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBi
eSB0aGUgZWxsaXBzZSgwcHgsIDBweCwgMWVtLCAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVy
dHkuCiAgICAgPC9wPgogICAgIDxwIGNsYXNzPSJzaGFwZS1pbnNpZGUiIGlkPSJzaGFwZS1pbnNp
ZGUtcG9seWdvbi0xdmVydGV4Ij4KICAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0
cmFpbmVkIGJ5IHRoZSBwb2x5Z29uKDBweCAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHku
CiAgICAgPC9wPgogICAgIDxwIGNsYXNzPSJzaGFwZS1pbnNpZGUiIGlkPSJzaGFwZS1pbnNpZGUt
cG9seWdvbi0ydmVydGljZXMiPgotICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIHVuY29uc3Ry
YWluZWQgYnkgdGhlIHBvbHlnb24oMHB4IDBweCwgMTBweCAwcHgpIHNoYXBlLWluc2lkZSBDU1Mg
cHJvcGVydHkuCisgICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0
aGUgcG9seWdvbigwcHggMHB4LCAxZW0gMHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5Lgog
ICAgIDwvcD4KIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198757</attachid>
            <date>2013-04-18 13:24:50 -0700</date>
            <delta_ts>2013-04-18 14:43:44 -0700</delta_ts>
            <desc>Incorporating feedback</desc>
            <filename>bug-100049-20130418132422.patch</filename>
            <type>text/plain</type>
            <size>22752</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZmNmUyYTI1OTNkNTMw
MWQ2MDg5MWRmM2YwYmJjYzVlMzk4OGE0NC4uNjQ1YjgyZjQ4Y2Y5NTVjODQ4NGRhMDg3Y2NhMTAx
YjY1ODUxOTdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTA0LTE4ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IEltcGxlbWVudCBlbXB0eSBzZWdtZW50cyBmb3IgbXVsdGlwbGUtc2VnbWVudCBzaGFwZS1pbnNp
ZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAw
NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb250
ZW50IHNob3VsZCBub3Qgb3ZlcmZsb3cgYSBzaGFwZS1pbnNpZGUgc2VnbWVudCwgZXZlbiBpZiB0
aGF0IG1lYW5zIG5vIGNvbnRlbnQKKyAgICAgICAgd2lsbCBiZSBwbGFjZWQgaW4gdGhhdCBzZWdt
ZW50LiBPdmVyZmxvdyBtYXkgYmUgcHVzaGVkIHRvIG91dHNpZGUgdGhlIHNoYXBlLiBUaGlzCisg
ICAgICAgIHBhdGNoIHJlbW92ZXMgdGhlIHJlc3RyaWN0aW9uIHRoYXQgZXZlcnkgbGluZSBtdXN0
IGNvbnN1bWUgYXQgbGVhc3Qgc29tZSB0ZXh0CisgICAgICAgIGlucHV0IHdoaWxlIGluc2lkZSBh
IHNoYXBlLWluc2lkZS4gQ29udGVudCB0aGF0IGRvZXMgbm90IGZpdCBpcyBwdXNoZWQgZG93biB1
bnRpbAorICAgICAgICBpdCBkb2VzLCBlaXRoZXIgaW5zaWRlIHRoZSBzaGFwZSBvciBqdXN0IGJl
bG93IGl0LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLWVtcHR5LXNlZ21lbnRzLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0QmlkaVJ1
bnNGb3JTZWdtZW50KTogRG8gbm90IGluY2x1ZGUgZW1wdHkgc2VnbWVudHMgZm9yCisgICAgICAg
IGNvbnNpZGVyYXRpb24sIGFzIHRoZSBhY3R1YWwgQmlkaVJ1bnMgY29uc3RydWN0aW9uIGV4cGVj
dHMgdG8gY29uc3VtZSBhdAorICAgICAgICBsZWFzdCBvbmUgY2hhcmFjdGVyLgorICAgICAgICAo
V2ViQ29yZTo6Y29uc3RydWN0QmlkaVJ1bnNGb3JMaW5lKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpmaXJzdFBvc2l0aXZlV2lkdGgpOiBGaW5kIHRoZSBmaXJzdCBwb3NpdGl2ZSB3b3JkIG1l
YXN1cmVtZW50IHdpZHRoLAorICAgICAgICBhcyB0aGVyZSBtYXkgYmUgc29tZSBlbXB0eSB3b3Jk
IGJyZWFrIG1lYXN1cmVtZW50cyBpbnNlcnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRzSW5SYW5nZSk6IElmIG5vdGhpbmcgZml0IGluIHRoZQor
ICAgICAgICBjdXJyZW50IHNlZ21lbnQsIGZpbmQgdGhlIGZpcnN0IGF2YWlsYWJsZSBwb3NpdGlv
biBmb3IgdGhlIHNtYWxsZXN0IGl0ZW0KKyAgICAgICAgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUg
dGV4dC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpMaW5lQnJlYWtlcjo6bmV4dExp
bmVCcmVhayk6IFJldHVybiBhbiBlbXB0eSBzZWdtZW50CisgICAgICAgIGZvciBhIGxpbmUgdGhh
dCBpcyBpbnNpZGUgdGhlIHNoYXBlLCBidXQgaGFzIG5vIHNlZ21lbnRzLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OkxpbmVCcmVha2VyOjpuZXh0U2VnbWVudEJyZWFrKTogRG8gbm90
IGNvbnN1bWUKKyAgICAgICAgaW5wdXQgdG8gbWVldCBtaW5pbXVtIHNpemUgcmVxdWlyZW1lbnRz
IGlmIHlvdSBhcmUgaW5zaWRlIGEgc2hhcGUuCisKIDIwMTMtMDQtMTcgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGFuZ2Ugc3RvcmFnZSBmYWN0b3J5
IGZ1bmN0aW9ucyB0byB0YWtlIGEgUGFnZUdyb3VwIGFuZCBQYWdlIHJlc3BlY3RpdmVseQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApp
bmRleCBhODFmODZmOWIzNTM1NzI3YTYwYTE3YjMyMjQxZTA2OWJlYmFiNmYxLi40MzFhZjA0ZWM2
MTBiODI3MmRkYjg4NmU3MTgyYmVkYWQzMTA3MDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtMTI5Niw2ICsxMjk2LDcg
QEAgc3RhdGljIGlubGluZSB2b2lkIGNvbnN0cnVjdEJpZGlSdW5zRm9yU2VnbWVudChJbmxpbmVC
aWRpUmVzb2x2ZXImIHRvcFJlc29sdmVyLAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyBh
IEJpZGlSdW5MaXN0IGludG8gY3JlYXRlQmlkaVJ1bnNGb3JMaW5lIGluc3RlYWQKICAgICAvLyBv
ZiB0aGUgcmVzb2x2ZXIgb3duaW5nIHRoZSBydW5zLgogICAgIEFTU0VSVCgmdG9wUmVzb2x2ZXIu
cnVucygpID09ICZiaWRpUnVucyk7CisgICAgQVNTRVJUKHRvcFJlc29sdmVyLnBvc2l0aW9uKCkg
IT0gZW5kT2ZSdW5zKTsKICAgICBSZW5kZXJPYmplY3QqIGN1cnJlbnRSb290ID0gdG9wUmVzb2x2
ZXIucG9zaXRpb24oKS5yb290KCk7CiAgICAgdG9wUmVzb2x2ZXIuY3JlYXRlQmlkaVJ1bnNGb3JM
aW5lKGVuZE9mUnVucywgb3ZlcnJpZGUsIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSk7CiAKQEAg
LTEzODIsNiArMTM4Myw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjb25zdHJ1Y3RCaWRpUnVuc0Zv
ckxpbmUoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrLCBJbmxpbmVCaWRpCiAgICAgICAgICAgICAv
LyBEbyBub3QgY29sbGFwc2UgbWlkcG9pbnRzIGJldHdlZW4gc2VnbWVudHMKICAgICAgICAgICAg
IHRvcFJlc29sdmVyLm1pZHBvaW50U3RhdGUoKS5iZXR3ZWVuTWlkcG9pbnRzID0gZmFsc2U7CiAg
ICAgICAgIH0KKyAgICAgICAgaWYgKHNlZ21lbnRTdGFydCA9PSBzZWdtZW50RW5kKQorICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIHRvcFJlc29sdmVyLnNldFBvc2l0aW9uKHNlZ21lbnRT
dGFydCwgbnVtYmVyT2ZJc29sYXRlQW5jZXN0b3JzKHNlZ21lbnRTdGFydCkpOwogICAgICAgICBj
b25zdHJ1Y3RCaWRpUnVuc0ZvclNlZ21lbnQodG9wUmVzb2x2ZXIsIGJpZGlSdW5zLCBzZWdtZW50
RW5kLCBvdmVycmlkZSwgcHJldmlvdXNMaW5lQnJva2VDbGVhbmx5KTsKICAgICB9CkBAIC0xNjIw
LDYgKzE2MjMsMTcgQEAgaW5saW5lIGNvbnN0IElubGluZUl0ZXJhdG9yJiBSZW5kZXJCbG9jazo6
cmVzdGFydExheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKExheW8KICAgICByZXR1cm4gb2xkRW5k
OwogfQogCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorc3RhdGljIGlubGluZSBmbG9hdCBm
aXJzdFBvc2l0aXZlV2lkdGgoY29uc3QgV29yZE1lYXN1cmVtZW50cyYgd29yZE1lYXN1cmVtZW50
cykKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgd29yZE1lYXN1cmVtZW50cy5zaXpl
KCk7IGkrKykgeworICAgICAgICBpZiAod29yZE1lYXN1cmVtZW50c1tpXS53aWR0aCA+IDApCisg
ICAgICAgICAgICByZXR1cm4gd29yZE1lYXN1cmVtZW50c1tpXS53aWR0aDsKKyAgICB9CisgICAg
cmV0dXJuIDA7Cit9CisjZW5kaWYKKwogdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZs
b2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgSW5saW5lQmlkaVJlc29s
dmVyJiByZXNvbHZlciwgY29uc3QgSW5saW5lSXRlcmF0b3ImIGNsZWFuTGluZVN0YXJ0LCBjb25z
dCBCaWRpU3RhdHVzJiBjbGVhbkxpbmVCaWRpU3RhdHVzLCB1bnNpZ25lZCBjb25zZWN1dGl2ZUh5
cGhlbmF0ZWRMaW5lcykKIHsKICAgICBSZW5kZXJTdHlsZSogc3R5bGVUb1VzZSA9IHN0eWxlKCk7
CkBAIC0xNjk0LDE1ICsxNzA4LDIzIEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRG
bG9hdHNJblJhbmdlKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIElubGluCiAgICAgICAg
ICAgICByZXNvbHZlci5zZXRQb3NpdGlvbihJbmxpbmVJdGVyYXRvcihyZXNvbHZlci5wb3NpdGlv
bigpLnJvb3QoKSwgMCwgMCksIDApOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAg
ICAgICAgQVNTRVJUKGVuZCAhPSByZXNvbHZlci5wb3NpdGlvbigpKTsKIAogI2lmIEVOQUJMRShD
U1NfRVhDTFVTSU9OUykKLSAgICAgICAgaWYgKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyAmJiB3
b3JkTWVhc3VyZW1lbnRzLnNpemUoKSAmJiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmFkanVz
dExvZ2ljYWxMaW5lVG9wKHdvcmRNZWFzdXJlbWVudHNbMF0ud2lkdGgpKSB7Ci0gICAgICAgICAg
ICBlbmQgPSByZXN0YXJ0TGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UobG9naWNhbEhlaWdodCgp
LCBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmxvZ2ljYWxMaW5lVG9wKCkgLSBhYnNvbHV0ZUxv
Z2ljYWxUb3AsIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIHJlc29sdmVyLCBvbGRFbmQpOwor
ICAgICAgICBpZiAoZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvICYmIGVuZCA9PSByZXNvbHZlci5w
b3NpdGlvbigpKSB7CisgICAgICAgICAgICBmbG9hdCBtaW5XaWR0aCA9IGZpcnN0UG9zaXRpdmVX
aWR0aCh3b3JkTWVhc3VyZW1lbnRzKTsKKyAgICAgICAgICAgIEFTU0VSVChtaW5XaWR0aCB8fCAh
d29yZE1lYXN1cmVtZW50cy5zaXplKCkpOworICAgICAgICAgICAgTGF5b3V0VW5pdCBuZXh0TGlu
ZUhlaWdodDsKKyAgICAgICAgICAgIGlmIChtaW5XaWR0aCA+IDAgJiYgZXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvLT5hZGp1c3RMb2dpY2FsTGluZVRvcChtaW5XaWR0aCkpCisgICAgICAgICAgICAg
ICAgbmV4dExpbmVIZWlnaHQgPSBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmxvZ2ljYWxMaW5l
VG9wKCkgLSBhYnNvbHV0ZUxvZ2ljYWxUb3A7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgbmV4dExpbmVIZWlnaHQgPSBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPnNoYXBlTG9n
aWNhbEJvdHRvbSgpIC0gYWJzb2x1dGVMb2dpY2FsVG9wOworICAgICAgICAgICAgZW5kID0gcmVz
dGFydExheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKGxvZ2ljYWxIZWlnaHQoKSwgbmV4dExpbmVI
ZWlnaHQsIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIHJlc29sdmVyLCBvbGRFbmQpOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICNlbmRpZgogCisgICAgICAgIEFTU0VSVChl
bmQgIT0gcmVzb2x2ZXIucG9zaXRpb24oKSk7CisKICAgICAgICAgLy8gVGhpcyBpcyBhIHNob3J0
LWN1dCBmb3IgZW1wdHkgbGluZXMuCiAgICAgICAgIGlmIChsYXlvdXRTdGF0ZS5saW5lSW5mbygp
LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgaWYgKGxhc3RSb290Qm94KCkpCkBAIC0yNjUyLDEy
ICsyNjc0LDE4IEBAIElubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpMaW5lQnJlYWtlcjo6bmV4
dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sCiAgICAgcmV0dXJuIG5leHRTZWdt
ZW50QnJlYWsocmVzb2x2ZXIsIGxpbmVJbmZvLCByZW5kZXJUZXh0SW5mbywgbGFzdEZsb2F0RnJv
bVByZXZpb3VzTGluZSwgY29uc2VjdXRpdmVIeXBoZW5hdGVkTGluZXMsIHdvcmRNZWFzdXJlbWVu
dHMpOwogI2Vsc2UKICAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbyA9IG1fYmxvY2stPmxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOwot
ICAgIGlmICghZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvIHx8ICFleGNsdXNpb25TaGFwZUluc2lk
ZUluZm8tPmhhc1NlZ21lbnRzKCkpCisgICAgaWYgKCFleGNsdXNpb25TaGFwZUluc2lkZUluZm8g
fHwgIWV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+bGluZU92ZXJsYXBzU2hhcGVCb3VuZHMoKSkK
ICAgICAgICAgcmV0dXJuIG5leHRTZWdtZW50QnJlYWsocmVzb2x2ZXIsIGxpbmVJbmZvLCByZW5k
ZXJUZXh0SW5mbywgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSwgY29uc2VjdXRpdmVIeXBoZW5h
dGVkTGluZXMsIHdvcmRNZWFzdXJlbWVudHMpOwogCiAgICAgSW5saW5lSXRlcmF0b3IgZW5kID0g
cmVzb2x2ZXIucG9zaXRpb24oKTsKICAgICBJbmxpbmVJdGVyYXRvciBvbGRFbmQgPSBlbmQ7CiAK
KyAgICBpZiAoIWV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+aGFzU2VnbWVudHMoKSkgeworICAg
ICAgICBlbmQgPSBuZXh0U2VnbWVudEJyZWFrKHJlc29sdmVyLCBsaW5lSW5mbywgcmVuZGVyVGV4
dEluZm8sIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIGNvbnNlY3V0aXZlSHlwaGVuYXRlZExp
bmVzLCB3b3JkTWVhc3VyZW1lbnRzKTsKKyAgICAgICAgcmVzb2x2ZXIuc2V0UG9zaXRpb25JZ25v
cmluZ05lc3RlZElzb2xhdGVzKG9sZEVuZCk7CisgICAgICAgIHJldHVybiBvbGRFbmQ7CisgICAg
fQorCiAgICAgY29uc3QgU2VnbWVudExpc3QmIHNlZ21lbnRzID0gZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLT5zZWdtZW50cygpOwogICAgIFNlZ21lbnRSYW5nZUxpc3QmIHNlZ21lbnRSYW5nZXMg
PSBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPnNlZ21lbnRSYW5nZXMoKTsKIApAQCAtMjY3Miw2
ICsyNzAwLDcgQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OkxpbmVCcmVha2VyOjpuZXh0
TGluZUJyZWFrKElubGluZUJpZGlSZXNvbHZlciYgcmVzb2wKICAgICAgICAgfQogICAgICAgICBp
ZiAocmVzb2x2ZXIucG9zaXRpb24oKSA9PSBlbmQpIHsKICAgICAgICAgICAgIC8vIE5vdGhpbmcg
Zml0IHRoaXMgc2VnbWVudAorICAgICAgICAgICAgZW5kID0gc2VnbWVudFN0YXJ0OwogICAgICAg
ICAgICAgc2VnbWVudFJhbmdlcy5hcHBlbmQoTGluZVNlZ21lbnRSYW5nZShzZWdtZW50U3RhcnQs
IHNlZ21lbnRTdGFydCkpOwogICAgICAgICAgICAgcmVzb2x2ZXIuc2V0UG9zaXRpb25JZ25vcmlu
Z05lc3RlZElzb2xhdGVzKHNlZ21lbnRTdGFydCk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0zMjk1
LDcgKzMzMjQsMTQgQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OkxpbmVCcmVha2VyOjpu
ZXh0U2VnbWVudEJyZWFrKElubGluZUJpZGlSZXNvbHZlciYgcmUKICAgICAgICAgbEJyZWFrLmNs
ZWFyKCk7CiAKICBlbmQ6Ci0gICAgaWYgKGxCcmVhayA9PSByZXNvbHZlci5wb3NpdGlvbigpICYm
ICghbEJyZWFrLm1fb2JqIHx8ICFsQnJlYWsubV9vYmotPmlzQlIoKSkpIHsKKyNpZiBFTkFCTEUo
Q1NTX0VYQ0xVU0lPTlMpCisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBzaGFwZUluZm8g
PSBtX2Jsb2NrLT5sYXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKKyAgICBib29sIHNl
Z21lbnRBbGxvd3NPdmVyZmxvdyA9ICFzaGFwZUluZm8gfHwgIXNoYXBlSW5mby0+aGFzU2VnbWVu
dHMoKTsKKyNlbHNlCisgICAgYm9vbCBzZWdtZW50QWxsb3dzT3ZlcmZsb3cgPSB0cnVlOworI2Vu
ZGlmCisKKyAgICBpZiAobEJyZWFrID09IHJlc29sdmVyLnBvc2l0aW9uKCkgJiYgKCFsQnJlYWsu
bV9vYmogfHwgIWxCcmVhay5tX29iai0+aXNCUigpKSAmJiBzZWdtZW50QWxsb3dzT3ZlcmZsb3cp
IHsKICAgICAgICAgLy8gd2UganVzdCBhZGQgYXMgbXVjaCBhcyBwb3NzaWJsZQogICAgICAgICBp
ZiAoYmxvY2tTdHlsZS0+d2hpdGVTcGFjZSgpID09IFBSRSAmJiAhY3VycmVudC5tX3Bvcykgewog
ICAgICAgICAgICAgbEJyZWFrLm1vdmVUbyhsYXN0LCBsYXN0LT5pc1RleHQoKSA/IGxhc3QtPmxl
bmd0aCgpIDogMCk7CkBAIC0zMzA3LDEwICszMzQzLDggQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVy
QmxvY2s6OkxpbmVCcmVha2VyOjpuZXh0U2VnbWVudEJyZWFrKElubGluZUJpZGlSZXNvbHZlciYg
cmUKICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIEZJWE1FIEJ1ZyAxMDAwNDk6IFdlIGRvIG5v
dCBuZWVkIHRvIGNvbnN1bWUgaW5wdXQgaW4gYSBtdWx0aS1zZWdtZW50IGxpbmUKLSAgICAvLyB1
bmxlc3Mgbm8gc2VnbWVudCB3aWxsLgogICAgIC8vIG1ha2Ugc3VyZSB3ZSBjb25zdW1lIGF0IGxl
YXN0IG9uZSBjaGFyL29iamVjdC4KLSAgICBpZiAobEJyZWFrID09IHJlc29sdmVyLnBvc2l0aW9u
KCkpCisgICAgaWYgKGxCcmVhayA9PSByZXNvbHZlci5wb3NpdGlvbigpICYmIHNlZ21lbnRBbGxv
d3NPdmVyZmxvdykKICAgICAgICAgbEJyZWFrLmluY3JlbWVudCgpOwogCiAgICAgLy8gU2FuaXR5
IGNoZWNrIG91ciBtaWRwb2ludHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmIyNjM4MWRmZjg5Mjg2YTMyZjRmM2U5ZDdm
NTliNDhhZDE3MGM3OS4uZDVmOWViNTNjNjExYzRlYmM4MzkxZTk1YzgzMDMwYTg2YjllYzM4NiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTA0LTE4ICBCZWFyIFRyYXZpcyAgPGJldHJhdmlz
QGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEltcGxlbWVudCBlbXB0eSBz
ZWdtZW50cyBmb3IgbXVsdGlwbGUtc2VnbWVudCBzaGFwZS1pbnNpZGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAwNDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0aW5nIHRoYXQgc2hhcGUtaW5z
aWRlcyBkbyBub3QgcGxhY2UgY29udGVudCB3aGVyZSBpdCB3aWxsIG5vdCBmaXQuIEFsc28KKyAg
ICAgICAgZml4aW5nIHVwIHNvbWUgcHJldmlvdXMgdGVzdHMgYW5kIGV4cGVjdGF0aW9ucy4KKwor
ICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMvbXVsdGktc2VnbWVudC1wb2x5Z29u
LmpzOgorICAgICAgICAoc2ltdWxhdGVXaXRoVGV4dCk6IEVuYWJsZSBtdWx0aS1saW5lIHNoYXBl
IGV4cGVjdGF0aW9ucyB1c2luZyBhcnJheXMuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3Jl
c291cmNlcy9zaW1wbGUtcmVjdGFuZ2xlLmpzOgorICAgICAgICAoY3JlYXRlUmVjdGFuZ2xlVGVz
dCk6IEFkZCBvdmVyZmxvdzogYnJlYWstd29yZCBwcm9wZXJ0eSB0byB0ZXN0cy4KKyAgICAgICAg
KGNyZWF0ZVJlY3RhbmdsZVRlc3RSZXN1bHQpOiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2V4Y2x1
c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbXB0eS1leHBlY3RlZC5odG1sOiBBZGp1
c3QgcmVzdWx0cworICAgICAgICBmb3IgdGVzdHMgd2hlcmUgY29udGVudCBzaG91bGQgYmUgcHVz
aGVkIGRvd24uCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtZW1wdHktc2VnbWVudHMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZW1wdHktc2VnbWVudHMuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtZW1wdHkuaHRtbDogU2hhcGVzIHdpdGggaGVpZ2h0IGJ1dAorICAgICAgICBubyB3aWR0
aCBzaG91bGQgc3RpbGwgcHVzaCBjb250ZW50IGRvd24gYmVsb3cgdGhlIHNoYXBlLgorCiAyMDEz
LTA0LTE4ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXSBmYXN0L2NhbnZhcy9EcmF3SW1hZ2VTaW5nbGVQaXhlbFN0cmV0Y2guaHRtbCBmYWls
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9tdWx0
aS1zZWdtZW50LXBvbHlnb24uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcmVzb3Vy
Y2VzL211bHRpLXNlZ21lbnQtcG9seWdvbi5qcwppbmRleCA4NjM0NmUxNjgxNjcwMGU5NTdiMjI0
NzA1YjU5NjUwZTZjNjY5M2ZhLi4zMjI5YTE4ZGI2YzU2NTg3YzkyZGE2NzVjY2Q2N2NjZmE0ZGU1
ZDA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL211
bHRpLXNlZ21lbnQtcG9seWdvbi5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
cmVzb3VyY2VzL211bHRpLXNlZ21lbnQtcG9seWdvbi5qcwpAQCAtMjEsNiArMjEsMTAgQEAgZnVu
Y3Rpb24gc2ltdWxhdGVXaXRoVGV4dCh3aWR0aCwgaGVpZ2h0LCBmb250U2l6ZSwgY29udGVudCwg
ZWxlbWVudElkKSB7CiAgICAgZGl2LnN0eWxlLnNldFByb3BlcnR5KCdoZWlnaHQnLCBoZWlnaHQg
KyAncHgnKTsKICAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkoJ2ZvbnQnLCBmb250U2l6ZSArICdw
eC8xIEFoZW0sIHNhbnMtc2VyaWYnKTsKICAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkoJ2NvbG9y
JywgJ2dyZWVuJyk7CisgICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAg
ICBkaXYuc3R5bGUuc2V0UHJvcGVydHkoJ3doaXRlLXNwYWNlJywgJ3ByZScpOworICAgICAgICBj
b250ZW50ID0gY29udGVudC5qb2luKCdcbicpOworICAgIH0KICAgICBkaXYuaW5uZXJIVE1MID0g
Y29udGVudDsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Jl
c291cmNlcy9zaW1wbGUtcmVjdGFuZ2xlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3Jlc291cmNlcy9zaW1wbGUtcmVjdGFuZ2xlLmpzCmluZGV4IDY5MzUxOTU0MjgyMmVkYjMzZTBh
MzdkMzMyOGYyYjQxMjQ1N2VkYTEuLjM0N2QwYTk0MjRkZWFjMTkwYWQ1NDgzY2YzZGYwZjQ0ZmJm
NmVkOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMv
c2ltcGxlLXJlY3RhbmdsZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcmVz
b3VyY2VzL3NpbXBsZS1yZWN0YW5nbGUuanMKQEAgLTE4LDYgKzE4LDcgQEAgZnVuY3Rpb24gY3Jl
YXRlUmVjdGFuZ2xlVGVzdChlbGVtZW50SWQsIHN0eWxlc2hlZXRJZCwgYm91bmRzLCBzaGFwZUJv
dW5kcywgdW5pdHMKICAgICB2YXIgcmVjdGFuZ2xlQm91bmRzID0gW3NoYXBlQm91bmRzLnggKyB1
bml0cywgc2hhcGVCb3VuZHMueSArIHVuaXRzLCBzaGFwZUJvdW5kcy53aWR0aCArIHVuaXRzLCBz
aGFwZUJvdW5kcy5oZWlnaHQgKyB1bml0c107CiAgICAgcnVsZXMucHVzaCgnLXdlYmtpdC1zaGFw
ZS1pbnNpZGU6IHJlY3RhbmdsZSgnICsgcmVjdGFuZ2xlQm91bmRzLmpvaW4oJywnKSArICcpJyk7
CiAgICAgcnVsZXMucHVzaCgncG9zaXRpb246IHJlbGF0aXZlJyk7CisgICAgcnVsZXMucHVzaCgn
b3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZCcpOwogICAgIHN0eWxlc2hlZXQuaW5zZXJ0UnVsZSgn
IycgKyBlbGVtZW50SWQgKyAneycgKyBydWxlcy5qb2luKCc7JykgKyAnfScpOwogCiAgICAgcnVs
ZXMgPSBbXTsKQEAgLTQ1LDYgKzQ2LDcgQEAgZnVuY3Rpb24gY3JlYXRlUmVjdGFuZ2xlVGVzdFJl
c3VsdChlbGVtZW50SWQsIHN0eWxlc2hlZXRJZCwgYm91bmRzLCBzaGFwZUJvdW5kcywKICAgICBy
dWxlcy5wdXNoKCdwYWRkaW5nLWxlZnQ6ICcgKyBzaGFwZUJvdW5kcy54ICsgdW5pdHMsICdwYWRk
aW5nLXJpZ2h0OiAnICsgKGJvdW5kcy53aWR0aCAtIHNoYXBlQm91bmRzLndpZHRoIC0gc2hhcGVC
b3VuZHMueCkgKyB1bml0cyk7CiAgICAgcnVsZXMucHVzaCgncGFkZGluZy10b3A6ICcgKyBzaGFw
ZUJvdW5kcy55ICsgdW5pdHMsICdwYWRkaW5nLWJvdHRvbTogJyArIChib3VuZHMuaGVpZ2h0IC0g
c2hhcGVCb3VuZHMuaGVpZ2h0IC0gc2hhcGVCb3VuZHMueSkgKyB1bml0cyk7CiAgICAgcnVsZXMu
cHVzaCgncG9zaXRpb246IHJlbGF0aXZlJyk7CisgICAgcnVsZXMucHVzaCgnb3ZlcmZsb3ctd3Jh
cDogYnJlYWstd29yZCcpOwogICAgIHN0eWxlc2hlZXQuaW5zZXJ0UnVsZSgnIycgKyBlbGVtZW50
SWQgKyAneycgKyBydWxlcy5qb2luKCc7JykgKyAnfScpOwogCiAgICAgcnVsZXMgPSBbXTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLWVtcHR5LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
c2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbXB0eS1leHBlY3RlZC5odG1sCmluZGV4IDA2NTBm
MWY1YTU2MzllMWViN2M0OWNiMWIwZjUzNTkzOWU2YjZlM2YuLjIyMzA2Y2MwMGUyZDQyYjRkZmQ5
MzY3MjI0ZjVlMTViMzQyNjg3NDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVtcHR5LWV4cGVjdGVkLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZW1w
dHktZXhwZWN0ZWQuaHRtbApAQCAtMTAsMzMgKzEwLDM0IEBACiAgICAgICAgIHdpZHRoOiA4MDBw
eDsKICAgICAgICAgaGVpZ2h0OiAyZW07CiAgICAgICAgIGJvcmRlcjogc29saWQgZ3JlZW47Cisg
ICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgfQorICAgIC5wYWRkZWQgeworICAg
ICAgICBwYWRkaW5nLXRvcDogMWVtOwogICAgIH0KIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4K
LSAgICA8cCBjbGFzcz0ic2hhcGUtaW5zaWRlIj4KLSAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBi
ZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSByZWN0YW5nbGUoMHB4LCAwcHgsIDBweCwgMTAwcHgpIHNo
YXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCisgICAgPHAgY2xhc3M9InNoYXBlLWluc2lkZSBwYWRk
ZWQiPgorICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIHNoaWZ0ZWQgZG93biAxZW0gYnkgdGhl
IHJlY3RhbmdsZSgwcHgsIDBweCwgMHB4LCAxZW0pIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHku
CiAgICAgPC9wPgogICAgIDxwIGNsYXNzPSJzaGFwZS1pbnNpZGUiPgotICAgICAgICBUaGlzIHRl
eHQgc2hvdWxkIGJlIHVuY29uc3RyYWluZWQgYnkgdGhlIHJlY3RhbmdsZSgwcHgsIDBweCwgMTAw
cHgsIDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KKyAgICAgICAgVGhpcyB0ZXh0IHNo
b3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSByZWN0YW5nbGUoMHB4LCAwcHgsIDFlbSwgMHB4
KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgogICAgIDwvcD4KICAgICA8cCBjbGFzcz0ic2hh
cGUtaW5zaWRlIj4KICAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5
IHRoZSBjaXJjbGUoMHB4LCAwcHgsIDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KICAg
ICA8L3A+Ci0gICAgPHAgY2xhc3M9InNoYXBlLWluc2lkZSI+Ci0gICAgICAgIFRoaXMgdGV4dCBz
aG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgZWxsaXBzZVgwKDBweCwgMHB4LCAwcHgsIDEw
MHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgotICAgIDwvcD4KLSAgICA8cCBjbGFzcz0i
c2hhcGUtaW5zaWRlIj4KLSAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVk
IGJ5IHRoZSBlbGxpcHNlKDBweCwgMHB4LCAxMDBweCwgMHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHBy
b3BlcnR5LgorICAgIDxwIGNsYXNzPSJzaGFwZS1pbnNpZGUgcGFkZGVkIj4KKyAgICAgICAgVGhp
cyB0ZXh0IHNob3VsZCBiZSBzaGlmdGVkIGRvd24gMWVtIGJ5IHRoZSBlbGxpcHNlWDAoMHB4LCAw
cHgsIDBweCwgMWVtKSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgogICAgIDwvcD4KICAgICA8
cCBjbGFzcz0ic2hhcGUtaW5zaWRlIj4KLSAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNv
bnN0cmFpbmVkIGJ5IHRoZSBwb2x5Z29uKCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KKyAg
ICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSBlbGxpcHNlKDBw
eCwgMHB4LCAxZW0sIDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KICAgICA8L3A+CiAg
ICAgPHAgY2xhc3M9InNoYXBlLWluc2lkZSI+CiAgICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUg
dW5jb25zdHJhaW5lZCBieSB0aGUgcG9seWdvbigwcHggMHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHBy
b3BlcnR5LgogICAgIDwvcD4KICAgICA8cCBjbGFzcz0ic2hhcGUtaW5zaWRlIj4KLSAgICAgICAg
VGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSBwb2x5Z29uKDBweCAwcHgs
IDEwcHggMHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgorICAgICAgICBUaGlzIHRleHQg
c2hvdWxkIGJlIHVuY29uc3RyYWluZWQgYnkgdGhlIHBvbHlnb24oMHB4IDBweCwgMWVtIDBweCkg
c2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KICAgICA8L3A+CiA8L2JvZHk+CiA8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1lbXB0eS1zZWdtZW50cy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZW1wdHktc2VnbWVudHMtZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45N2ExMGZjNWFkYTJmYTM0Y2QzMGUzYTc3M2ZiZDI5N2MwNzk5
Nzg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtZW1wdHktc2VnbWVudHMtZXhwZWN0ZWQuaHRtbApAQCAtMCww
ICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0n
Li4vcmVzb3VyY2VzL211bHRpLXNlZ21lbnQtcG9seWdvbi5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgc2ltdWxhdGVXaXRo
VGV4dCgxMDAsIDEwMCwgNTAsIFsnIHgnLCAneHgnXSwgJ2ZpcnN0Jyk7CisgICAgICAgIHNpbXVs
YXRlV2l0aFRleHQoMTAwLCAxMDAsIDUwLCBbJ3gnLCAneHgnXSwgJ2xhc3QnKTsKKyAgICAgICAg
c2ltdWxhdGVXaXRoVGV4dCgyMDAsIDEwMCwgNTAsIFsneCAgeCcsICd4eHh4J10sICdtaWRkbGUn
KTsKKyAgICAgICAgc2ltdWxhdGVXaXRoVGV4dCgxMDAsIDEwMCwgNTAsIFsnIHgnLCAneHgnXSwg
J2ZpcnN0LW91dHNpZGUnKTsKKyAgICAgICAgc2ltdWxhdGVXaXRoVGV4dCgxMDAsIDEwMCwgNTAs
IFsneCcsICd4eCddLCAnbGFzdC1vdXRzaWRlJyk7CisgICAgICAgIHNpbXVsYXRlV2l0aFRleHQo
MTAwLCAxMDAsIDUwLCBbJyB4JywgJ3h4J10sICdmaXJzdC1pbnRlcnNlY3QnKTsKKyAgICAgICAg
c2ltdWxhdGVXaXRoVGV4dCgxMDAsIDEwMCwgNTAsIFsneCcsICd4eCddLCAnbGFzdC1pbnRlcnNl
Y3QnKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxwPlRoZXNlIHRl
c3RzIGNvdmVyIG11bHRpc2VnbWVudCBwb2x5Z29ucyB3aGVyZSBzb21lIHNlZ21lbnRzIHNob3Vs
ZCBub3QgaGF2ZSBjb250ZW50LCBlaXRoZXIgYmVjYXVzZSB0aGV5IGFyZSB0b28gc21hbGwsIG9y
IGJlY2F1c2UgdGhleSBhcmUgb3V0c2lkZSB0aGUgY29udGVudCBib3guIEl0IHJlcXVpcmVzIHRo
ZSBBaGVtIGZvbnQuPC9wPgorICAgIDxwPkFuIGVtcHR5IGluaXRpYWwgc2VnbWVudCBvbiB0aGUg
Zmlyc3QgbGluZSBbMngyIGdyaWRdPC9wPgorICAgIDxkaXYgaWQ9J2ZpcnN0Jz48L2Rpdj4KKyAg
ICA8cD5BbiBlbXB0eSBmaW5hbCBzZWdtZW50IG9uIHRoZSBmaXJzdCBsaW5lIFsyeDIgZ3JpZF08
L3A+CisgICAgPGRpdiBpZD0nbGFzdCc+PC9kaXY+CisgICAgPHA+QW4gZW1wdHkgbWlkZGxlIHNl
Z21lbnQgb24gdGhlIGZpcnN0IGxpbmUgWzR4Ml0gZ3JpZDwvcD4KKyAgICA8ZGl2IGlkPSdtaWRk
bGUnPjwvZGl2PgorICAgIDxwPlRoZSBpbml0aWFsIHNlZ21lbnQgaXMgb3V0c2lkZSB0aGUgY29u
dGVudCBib3ggWzJ4Ml0gZ3JpZDwvcD4KKyAgICA8ZGl2IGlkPSdmaXJzdC1vdXRzaWRlJz48L2Rp
dj4KKyAgICA8cD5UaGUgZmluYWwgc2VnbWVudCBpcyBvdXRzaWRlIHRoZSBjb250ZW50IGJveCBb
MngyXSBncmlkPC9wPgorICAgIDxkaXYgaWQ9J2xhc3Qtb3V0c2lkZSc+PC9kaXY+CisgICAgPHA+
VGhlIGZpcnN0IHNlZ21lbnQgaW50ZXJzZWN0cyB0aGUgY29udGVudCBib3gsIGFuZCBpcyB0b28g
c21hbGwgWzJ4Ml0gZ3JpZDwvcD4KKyAgICA8ZGl2IGlkPSdmaXJzdC1pbnRlcnNlY3QnPjwvZGl2
PgorICAgIDxwPlRoZSBsYXN0IHNlZ21lbnQgaW50ZXJzZWN0cyB0aGUgY29udGVudCBib3gsIGFu
ZCBpcyB0b28gc21hbGwgWzJ4Ml0gZ3JpZDwvcD4KKyAgICA8ZGl2IGlkPSdsYXN0LWludGVyc2Vj
dCc+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtZW1wdHktc2VnbWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVtcHR5LXNlZ21lbnRzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDc2ZjY1YWFmM2JmMmM1NDYyMzA4ZGQ3Nzg0YTc0ZTBhNDQ2MmIyMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLWVtcHR5LXNlZ21lbnRzLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy9tdWx0aS1zZWdtZW50
LXBvbHlnb24uanMnPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICB3aW5kb3cub25sb2FkID0gZnVu
Y3Rpb24oKSB7CisgICAgICAgIGdlbmVyYXRlUG9seWdvbigxMDAsIDEwMCwgNTAsIFswLCAwLCAy
NSwgMCwgMjUsIDUwLCA1MCwgNTAsIDUwLCAwLCAxMDAsIDAsIDEwMCwgMTAwLCAwLCAxMDBdLCAn
eHh4JywgJ2ZpcnN0Jyk7CisgICAgICAgIGdlbmVyYXRlUG9seWdvbigxMDAsIDEwMCwgNTAsIFsw
LCAwLCA1MCwgMCwgNTAsIDUwLCA3NSwgNTAsIDc1LCAwLCAxMDAsIDAsIDEwMCwgMTAwLCAwLCAx
MDBdLCAneHh4JywgJ2xhc3QnKTsKKyAgICAgICAgZ2VuZXJhdGVQb2x5Z29uKDIwMCwgMTAwLCA1
MCwgWzAsIDAsIDUwLCAwLCA1MCwgNTAsIDc1LCA1MCwgNzUsIDAsIDEwMCwgMCwgMTAwLCA1MCwg
MTUwLCA1MCwgMTUwLCAwLCAyMDAsIDAsIDIwMCwgMTAwLCAwLCAxMDBdLCAneHh4eHh4JywgJ21p
ZGRsZScpOworICAgICAgICBnZW5lcmF0ZVBvbHlnb24oMTAwLCAxMDAsIDUwLCBbLTUwLCAwLCAw
LCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMTAwLCAwLCAxMDAsIDEwMCwgLTUwLCAxMDBdLCAn
eHh4JywgJ2ZpcnN0LW91dHNpZGUnKTsKKyAgICAgICAgZ2VuZXJhdGVQb2x5Z29uKDEwMCwgMTAw
LCA1MCwgWzAsIDAsIDUwLCAwLCA1MCwgNTAsIDEwMCwgNTAsIDEwMCwgMCwgMTUwLCAwLCAxNTAs
IDEwMCwgMCwgMTAwXSwgJ3h4eCcsICdsYXN0LW91dHNpZGUnKTsKKyAgICAgICAgZ2VuZXJhdGVQ
b2x5Z29uKDEwMCwgMTAwLCA1MCwgWy01MCwgLTUwLCAyNSwgLTUwLCAyNSwgNTAsIDUwLCA1MCwg
NTAsIDAsIDEwMCwgMCwgMTAwLCAxMDAsIDAsIDEwMF0sICd4eHgnLCAnZmlyc3QtaW50ZXJzZWN0
Jyk7CisgICAgICAgIGdlbmVyYXRlUG9seWdvbigxMDAsIDEwMCwgNTAsIFswLCAwLCA1MCwgMCwg
NTAsIDUwLCA3NSwgNTAsIDc1LCAtNTAsIDE1MCwgLTUwLCAxNTAsIDEwMCwgMCwgMTAwXSwgJ3h4
eCcsICdsYXN0LWludGVyc2VjdCcpOworICAgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
CisgICAgPHA+VGhlc2UgdGVzdHMgY292ZXIgbXVsdGlzZWdtZW50IHBvbHlnb25zIHdoZXJlIHNv
bWUgc2VnbWVudHMgc2hvdWxkIG5vdCBoYXZlIGNvbnRlbnQsIGVpdGhlciBiZWNhdXNlIHRoZXkg
YXJlIHRvbyBzbWFsbCwgb3IgYmVjYXVzZSB0aGV5IGFyZSBvdXRzaWRlIHRoZSBjb250ZW50IGJv
eC4gSXQgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC48L3A+CisgICAgPHA+QW4gZW1wdHkgaW5pdGlh
bCBzZWdtZW50IG9uIHRoZSBmaXJzdCBsaW5lIFsyeDIgZ3JpZF08L3A+CisgICAgPGRpdiBpZD0n
Zmlyc3QnPjwvZGl2PgorICAgIDxwPkFuIGVtcHR5IGZpbmFsIHNlZ21lbnQgb24gdGhlIGZpcnN0
IGxpbmUgWzJ4MiBncmlkXTwvcD4KKyAgICA8ZGl2IGlkPSdsYXN0Jz48L2Rpdj4KKyAgICA8cD5B
biBlbXB0eSBtaWRkbGUgc2VnbWVudCBvbiB0aGUgZmlyc3QgbGluZSBbNHgyXSBncmlkPC9wPgor
ICAgIDxkaXYgaWQ9J21pZGRsZSc+PC9kaXY+CisgICAgPHA+VGhlIGluaXRpYWwgc2VnbWVudCBp
cyBvdXRzaWRlIHRoZSBjb250ZW50IGJveCBbMngyXSBncmlkPC9wPgorICAgIDxkaXYgaWQ9J2Zp
cnN0LW91dHNpZGUnPjwvZGl2PgorICAgIDxwPlRoZSBmaW5hbCBzZWdtZW50IGlzIG91dHNpZGUg
dGhlIGNvbnRlbnQgYm94IFsyeDJdIGdyaWQ8L3A+CisgICAgPGRpdiBpZD0nbGFzdC1vdXRzaWRl
Jz48L2Rpdj4KKyAgICA8cD5UaGUgZmlyc3Qgc2VnbWVudCBpbnRlcnNlY3RzIHRoZSBjb250ZW50
IGJveCwgYW5kIGlzIHRvbyBzbWFsbCBbMngyXSBncmlkPC9wPgorICAgIDxkaXYgaWQ9J2ZpcnN0
LWludGVyc2VjdCc+PC9kaXY+CisgICAgPHA+VGhlIGxhc3Qgc2VnbWVudCBpbnRlcnNlY3RzIHRo
ZSBjb250ZW50IGJveCwgYW5kIGlzIHRvbyBzbWFsbCBbMngyXSBncmlkPC9wPgorICAgIDxkaXYg
aWQ9J2xhc3QtaW50ZXJzZWN0Jz48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
c2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbXB0eS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZW1wdHkuaHRtbAppbmRleCAzYzk4
MjNlNzc5ZmQwNmY1YTIyYzkxMjg3OWIyODFhMzBiM2YyZjI0Li42YmNkZGY3ZDRlNWFkZmE2NmVm
NzI4NzVmYzY2YjkyMjFjNDQzZTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1
c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbXB0eS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVtcHR5Lmh0bWwK
QEAgLTEwLDE0ICsxMCwxNiBAQAogICAgICAgICB3aWR0aDogODAwcHg7CiAgICAgICAgIGhlaWdo
dDogMmVtOwogICAgICAgICBib3JkZXI6IHNvbGlkIGdyZWVuOworICAgICAgICBib3gtc2l6aW5n
OiBib3JkZXItYm94OwogICAgIH0KIAogICAgICNzaGFwZS1pbnNpZGUtcmVjdGFuZ2xlLXdpZHRo
MCB7Ci0gICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0YW5nbGUoMHB4LCAwcHgsIDBw
eCwgMTAwcHgpOworICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcmVjdGFuZ2xlKDBweCwg
MHB4LCAwcHgsIDFlbSk7CisgICAgICAgIHBhZGRpbmctdG9wOiAxZW07CiAgICAgfQogCiAgICAg
I3NoYXBlLWluc2lkZS1yZWN0YW5nbGUtaGVpZ2h0MCB7Ci0gICAgICAgIC13ZWJraXQtc2hhcGUt
aW5zaWRlOiByZWN0YW5nbGUoMHB4LCAwcHgsIDEwMHB4LCAwcHgpOworICAgICAgICAtd2Via2l0
LXNoYXBlLWluc2lkZTogcmVjdGFuZ2xlKDBweCwgMHB4LCAxZW0sIDBweCk7CiAgICAgfQogCiAg
ICAgI3NoYXBlLWluc2lkZS1jaXJjbGUtcmFkaXVzMCB7CkBAIC0yNSwxNSArMjcsMTIgQEAKICAg
ICB9CiAKICAgICAjc2hhcGUtaW5zaWRlLWVsbGlwc2UtcmFkaXVzWDAgewotICAgICAgICAtd2Vi
a2l0LXNoYXBlLWluc2lkZTogZWxsaXBzZSgwcHgsIDBweCwgMHB4LCAxMDBweCk7CisgICAgICAg
IC13ZWJraXQtc2hhcGUtaW5zaWRlOiBlbGxpcHNlKDBweCwgMHB4LCAwcHgsIDFlbSk7CisgICAg
ICAgIHBhZGRpbmctdG9wOiAxZW07CiAgICAgfQogCiAgICAgI3NoYXBlLWluc2lkZS1lbGxpcHNl
LXJhZGl1c1kwIHsKLSAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6IGVsbGlwc2UoMHB4LCAw
cHgsIDEwMHB4LCAwcHgpOwotICAgIH0KLQotICAgICNzaGFwZS1pbnNpZGUtcG9seWdvbi0wdmVy
dGljZXMgewotICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcG9seWdvbigpOworICAgICAg
ICAtd2Via2l0LXNoYXBlLWluc2lkZTogZWxsaXBzZSgwcHgsIDBweCwgMWVtLCAwcHgpOwogICAg
IH0KIAogICAgICNzaGFwZS1pbnNpZGUtcG9seWdvbi0xdmVydGV4IHsKQEAgLTQxLDM0ICs0MCwz
MSBAQAogICAgIH0KIAogICAgICNzaGFwZS1pbnNpZGUtcG9seWdvbi0ydmVydGljZXMgewotICAg
ICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcG9seWdvbigwcHggMHB4LCAxMHB4IDBweCk7Cisg
ICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiBwb2x5Z29uKDBweCAwcHgsIDFlbSAwcHgpOwog
ICAgIH0KIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KICAgICA8cCBjbGFzcz0ic2hhcGUtaW5z
aWRlIiBpZD0ic2hhcGUtaW5zaWRlLXJlY3RhbmdsZS13aWR0aDAiPgotICAgICAgICBUaGlzIHRl
eHQgc2hvdWxkIGJlIHVuY29uc3RyYWluZWQgYnkgdGhlIHJlY3RhbmdsZSgwcHgsIDBweCwgMHB4
LCAxMDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KKyAgICAgICAgVGhpcyB0ZXh0IHNo
b3VsZCBiZSBzaGlmdGVkIGRvd24gMWVtIGJ5IHRoZSByZWN0YW5nbGUoMHB4LCAwcHgsIDBweCwg
MWVtKSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgogICAgIDwvcD4KICAgICA8cCBjbGFzcz0i
c2hhcGUtaW5zaWRlIiBpZD0ic2hhcGUtaW5zaWRlLXJlY3RhbmdsZS1oZWlnaHQwIj4KLSAgICAg
ICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSByZWN0YW5nbGUoMHB4
LCAwcHgsIDEwMHB4LCAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCisgICAgICAgIFRo
aXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgcmVjdGFuZ2xlKDBweCwgMHB4
LCAxZW0sIDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KICAgICA8L3A+CiAgICAgPHAg
Y2xhc3M9InNoYXBlLWluc2lkZSIgaWQ9InNoYXBlLWluc2lkZS1jaXJjbGUtcmFkaXVzMCI+CiAg
ICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgY2lyY2xlKDBw
eCwgMHB4LCAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCiAgICAgPC9wPgogICAgIDxw
IGNsYXNzPSJzaGFwZS1pbnNpZGUiIGlkPSJzaGFwZS1pbnNpZGUtZWxsaXBzZS1yYWRpdXNYMCI+
Ci0gICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgZWxsaXBz
ZVgwKDBweCwgMHB4LCAwcHgsIDEwMHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgorICAg
ICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIHNoaWZ0ZWQgZG93biAxZW0gYnkgdGhlIGVsbGlwc2VY
MCgwcHgsIDBweCwgMHB4LCAxZW0pIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCiAgICAgPC9w
PgogICAgIDxwIGNsYXNzPSJzaGFwZS1pbnNpZGUiIGlkPSJzaGFwZS1pbnNpZGUtZWxsaXBzZS1y
YWRpdXNZMCI+Ci0gICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0
aGUgZWxsaXBzZSgwcHgsIDBweCwgMTAwcHgsIDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0
eS4KLSAgICA8L3A+Ci0gICAgPHAgY2xhc3M9InNoYXBlLWluc2lkZSIgaWQ9InNoYXBlLWluc2lk
ZS1wb2x5Z29uLTB2ZXJ0aWNlcyI+Ci0gICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25z
dHJhaW5lZCBieSB0aGUgcG9seWdvbigpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCisgICAg
ICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgZWxsaXBzZSgwcHgs
IDBweCwgMWVtLCAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCiAgICAgPC9wPgogICAg
IDxwIGNsYXNzPSJzaGFwZS1pbnNpZGUiIGlkPSJzaGFwZS1pbnNpZGUtcG9seWdvbi0xdmVydGV4
Ij4KICAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSBwb2x5
Z29uKDBweCAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCiAgICAgPC9wPgogICAgIDxw
IGNsYXNzPSJzaGFwZS1pbnNpZGUiIGlkPSJzaGFwZS1pbnNpZGUtcG9seWdvbi0ydmVydGljZXMi
PgotICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIHVuY29uc3RyYWluZWQgYnkgdGhlIHBvbHln
b24oMHB4IDBweCwgMTBweCAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCisgICAgICAg
IFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgcG9seWdvbigwcHggMHB4
LCAxZW0gMHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgogICAgIDwvcD4KIDwvYm9keT4K
IDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198764</attachid>
            <date>2013-04-18 14:43:46 -0700</date>
            <delta_ts>2013-04-19 14:40:50 -0700</delta_ts>
            <desc>Updating patch</desc>
            <filename>bug-100049-20130418144318.patch</filename>
            <type>text/plain</type>
            <size>22752</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZmNmUyYTI1OTNkNTMw
MWQ2MDg5MWRmM2YwYmJjYzVlMzk4OGE0NC4uNjQ1YjgyZjQ4Y2Y5NTVjODQ4NGRhMDg3Y2NhMTAx
YjY1ODUxOTdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTA0LTE4ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IEltcGxlbWVudCBlbXB0eSBzZWdtZW50cyBmb3IgbXVsdGlwbGUtc2VnbWVudCBzaGFwZS1pbnNp
ZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAw
NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb250
ZW50IHNob3VsZCBub3Qgb3ZlcmZsb3cgYSBzaGFwZS1pbnNpZGUgc2VnbWVudCwgZXZlbiBpZiB0
aGF0IG1lYW5zIG5vIGNvbnRlbnQKKyAgICAgICAgd2lsbCBiZSBwbGFjZWQgaW4gdGhhdCBzZWdt
ZW50LiBPdmVyZmxvdyBtYXkgYmUgcHVzaGVkIHRvIG91dHNpZGUgdGhlIHNoYXBlLiBUaGlzCisg
ICAgICAgIHBhdGNoIHJlbW92ZXMgdGhlIHJlc3RyaWN0aW9uIHRoYXQgZXZlcnkgbGluZSBtdXN0
IGNvbnN1bWUgYXQgbGVhc3Qgc29tZSB0ZXh0CisgICAgICAgIGlucHV0IHdoaWxlIGluc2lkZSBh
IHNoYXBlLWluc2lkZS4gQ29udGVudCB0aGF0IGRvZXMgbm90IGZpdCBpcyBwdXNoZWQgZG93biB1
bnRpbAorICAgICAgICBpdCBkb2VzLCBlaXRoZXIgaW5zaWRlIHRoZSBzaGFwZSBvciBqdXN0IGJl
bG93IGl0LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLWVtcHR5LXNlZ21lbnRzLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0QmlkaVJ1
bnNGb3JTZWdtZW50KTogRG8gbm90IGluY2x1ZGUgZW1wdHkgc2VnbWVudHMgZm9yCisgICAgICAg
IGNvbnNpZGVyYXRpb24sIGFzIHRoZSBhY3R1YWwgQmlkaVJ1bnMgY29uc3RydWN0aW9uIGV4cGVj
dHMgdG8gY29uc3VtZSBhdAorICAgICAgICBsZWFzdCBvbmUgY2hhcmFjdGVyLgorICAgICAgICAo
V2ViQ29yZTo6Y29uc3RydWN0QmlkaVJ1bnNGb3JMaW5lKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpmaXJzdFBvc2l0aXZlV2lkdGgpOiBGaW5kIHRoZSBmaXJzdCBwb3NpdGl2ZSB3b3JkIG1l
YXN1cmVtZW50IHdpZHRoLAorICAgICAgICBhcyB0aGVyZSBtYXkgYmUgc29tZSBlbXB0eSB3b3Jk
IGJyZWFrIG1lYXN1cmVtZW50cyBpbnNlcnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRzSW5SYW5nZSk6IElmIG5vdGhpbmcgZml0IGluIHRoZQor
ICAgICAgICBjdXJyZW50IHNlZ21lbnQsIGZpbmQgdGhlIGZpcnN0IGF2YWlsYWJsZSBwb3NpdGlv
biBmb3IgdGhlIHNtYWxsZXN0IGl0ZW0KKyAgICAgICAgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUg
dGV4dC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpMaW5lQnJlYWtlcjo6bmV4dExp
bmVCcmVhayk6IFJldHVybiBhbiBlbXB0eSBzZWdtZW50CisgICAgICAgIGZvciBhIGxpbmUgdGhh
dCBpcyBpbnNpZGUgdGhlIHNoYXBlLCBidXQgaGFzIG5vIHNlZ21lbnRzLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OkxpbmVCcmVha2VyOjpuZXh0U2VnbWVudEJyZWFrKTogRG8gbm90
IGNvbnN1bWUKKyAgICAgICAgaW5wdXQgdG8gbWVldCBtaW5pbXVtIHNpemUgcmVxdWlyZW1lbnRz
IGlmIHlvdSBhcmUgaW5zaWRlIGEgc2hhcGUuCisKIDIwMTMtMDQtMTcgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGFuZ2Ugc3RvcmFnZSBmYWN0b3J5
IGZ1bmN0aW9ucyB0byB0YWtlIGEgUGFnZUdyb3VwIGFuZCBQYWdlIHJlc3BlY3RpdmVseQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApp
bmRleCBhODFmODZmOWIzNTM1NzI3YTYwYTE3YjMyMjQxZTA2OWJlYmFiNmYxLi5kNThmM2U1MmYz
NTEyNDQyYjFkNTc0ZWY5MDY2MzgwNDg2ZWFiMDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtMTI5Niw2ICsxMjk2LDcg
QEAgc3RhdGljIGlubGluZSB2b2lkIGNvbnN0cnVjdEJpZGlSdW5zRm9yU2VnbWVudChJbmxpbmVC
aWRpUmVzb2x2ZXImIHRvcFJlc29sdmVyLAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyBh
IEJpZGlSdW5MaXN0IGludG8gY3JlYXRlQmlkaVJ1bnNGb3JMaW5lIGluc3RlYWQKICAgICAvLyBv
ZiB0aGUgcmVzb2x2ZXIgb3duaW5nIHRoZSBydW5zLgogICAgIEFTU0VSVCgmdG9wUmVzb2x2ZXIu
cnVucygpID09ICZiaWRpUnVucyk7CisgICAgQVNTRVJUKHRvcFJlc29sdmVyLnBvc2l0aW9uKCkg
IT0gZW5kT2ZSdW5zKTsKICAgICBSZW5kZXJPYmplY3QqIGN1cnJlbnRSb290ID0gdG9wUmVzb2x2
ZXIucG9zaXRpb24oKS5yb290KCk7CiAgICAgdG9wUmVzb2x2ZXIuY3JlYXRlQmlkaVJ1bnNGb3JM
aW5lKGVuZE9mUnVucywgb3ZlcnJpZGUsIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSk7CiAKQEAg
LTEzODIsNiArMTM4Myw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjb25zdHJ1Y3RCaWRpUnVuc0Zv
ckxpbmUoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrLCBJbmxpbmVCaWRpCiAgICAgICAgICAgICAv
LyBEbyBub3QgY29sbGFwc2UgbWlkcG9pbnRzIGJldHdlZW4gc2VnbWVudHMKICAgICAgICAgICAg
IHRvcFJlc29sdmVyLm1pZHBvaW50U3RhdGUoKS5iZXR3ZWVuTWlkcG9pbnRzID0gZmFsc2U7CiAg
ICAgICAgIH0KKyAgICAgICAgaWYgKHNlZ21lbnRTdGFydCA9PSBzZWdtZW50RW5kKQorICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIHRvcFJlc29sdmVyLnNldFBvc2l0aW9uKHNlZ21lbnRT
dGFydCwgbnVtYmVyT2ZJc29sYXRlQW5jZXN0b3JzKHNlZ21lbnRTdGFydCkpOwogICAgICAgICBj
b25zdHJ1Y3RCaWRpUnVuc0ZvclNlZ21lbnQodG9wUmVzb2x2ZXIsIGJpZGlSdW5zLCBzZWdtZW50
RW5kLCBvdmVycmlkZSwgcHJldmlvdXNMaW5lQnJva2VDbGVhbmx5KTsKICAgICB9CkBAIC0xNjIw
LDYgKzE2MjMsMTcgQEAgaW5saW5lIGNvbnN0IElubGluZUl0ZXJhdG9yJiBSZW5kZXJCbG9jazo6
cmVzdGFydExheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKExheW8KICAgICByZXR1cm4gb2xkRW5k
OwogfQogCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorc3RhdGljIGlubGluZSBmbG9hdCBm
aXJzdFBvc2l0aXZlV2lkdGgoY29uc3QgV29yZE1lYXN1cmVtZW50cyYgd29yZE1lYXN1cmVtZW50
cykKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdvcmRNZWFzdXJlbWVudHMuc2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgaWYgKHdvcmRNZWFzdXJlbWVudHNbaV0ud2lkdGggPiAwKQorICAg
ICAgICAgICAgcmV0dXJuIHdvcmRNZWFzdXJlbWVudHNbaV0ud2lkdGg7CisgICAgfQorICAgIHJl
dHVybiAwOworfQorI2VuZGlmCisKIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9h
dHNJblJhbmdlKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIElubGluZUJpZGlSZXNvbHZl
ciYgcmVzb2x2ZXIsIGNvbnN0IElubGluZUl0ZXJhdG9yJiBjbGVhbkxpbmVTdGFydCwgY29uc3Qg
QmlkaVN0YXR1cyYgY2xlYW5MaW5lQmlkaVN0YXR1cywgdW5zaWduZWQgY29uc2VjdXRpdmVIeXBo
ZW5hdGVkTGluZXMpCiB7CiAgICAgUmVuZGVyU3R5bGUqIHN0eWxlVG9Vc2UgPSBzdHlsZSgpOwpA
QCAtMTY5NCwxNSArMTcwOCwyMyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRSdW5zQW5kRmxv
YXRzSW5SYW5nZShMaW5lTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBJbmxpbgogICAgICAgICAg
ICAgcmVzb2x2ZXIuc2V0UG9zaXRpb24oSW5saW5lSXRlcmF0b3IocmVzb2x2ZXIucG9zaXRpb24o
KS5yb290KCksIDAsIDApLCAwKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAg
ICAgIEFTU0VSVChlbmQgIT0gcmVzb2x2ZXIucG9zaXRpb24oKSk7CiAKICNpZiBFTkFCTEUoQ1NT
X0VYQ0xVU0lPTlMpCi0gICAgICAgIGlmIChleGNsdXNpb25TaGFwZUluc2lkZUluZm8gJiYgd29y
ZE1lYXN1cmVtZW50cy5zaXplKCkgJiYgZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5hZGp1c3RM
b2dpY2FsTGluZVRvcCh3b3JkTWVhc3VyZW1lbnRzWzBdLndpZHRoKSkgewotICAgICAgICAgICAg
ZW5kID0gcmVzdGFydExheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKGxvZ2ljYWxIZWlnaHQoKSwg
ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5sb2dpY2FsTGluZVRvcCgpIC0gYWJzb2x1dGVMb2dp
Y2FsVG9wLCBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lLCByZXNvbHZlciwgb2xkRW5kKTsKKyAg
ICAgICAgaWYgKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyAmJiBlbmQgPT0gcmVzb2x2ZXIucG9z
aXRpb24oKSkgeworICAgICAgICAgICAgZmxvYXQgbWluV2lkdGggPSBmaXJzdFBvc2l0aXZlV2lk
dGgod29yZE1lYXN1cmVtZW50cyk7CisgICAgICAgICAgICBBU1NFUlQobWluV2lkdGggfHwgd29y
ZE1lYXN1cmVtZW50cy5pc0VtcHR5KCkpOworICAgICAgICAgICAgTGF5b3V0VW5pdCBuZXh0TGlu
ZUhlaWdodDsKKyAgICAgICAgICAgIGlmIChtaW5XaWR0aCA+IDAgJiYgZXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvLT5hZGp1c3RMb2dpY2FsTGluZVRvcChtaW5XaWR0aCkpCisgICAgICAgICAgICAg
ICAgbmV4dExpbmVIZWlnaHQgPSBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmxvZ2ljYWxMaW5l
VG9wKCkgLSBhYnNvbHV0ZUxvZ2ljYWxUb3A7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgbmV4dExpbmVIZWlnaHQgPSBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPnNoYXBlTG9n
aWNhbEJvdHRvbSgpIC0gYWJzb2x1dGVMb2dpY2FsVG9wOworICAgICAgICAgICAgZW5kID0gcmVz
dGFydExheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKGxvZ2ljYWxIZWlnaHQoKSwgbmV4dExpbmVI
ZWlnaHQsIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIHJlc29sdmVyLCBvbGRFbmQpOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICNlbmRpZgogCisgICAgICAgIEFTU0VSVChl
bmQgIT0gcmVzb2x2ZXIucG9zaXRpb24oKSk7CisKICAgICAgICAgLy8gVGhpcyBpcyBhIHNob3J0
LWN1dCBmb3IgZW1wdHkgbGluZXMuCiAgICAgICAgIGlmIChsYXlvdXRTdGF0ZS5saW5lSW5mbygp
LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgaWYgKGxhc3RSb290Qm94KCkpCkBAIC0yNjUyLDEy
ICsyNjc0LDE4IEBAIElubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpMaW5lQnJlYWtlcjo6bmV4
dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sCiAgICAgcmV0dXJuIG5leHRTZWdt
ZW50QnJlYWsocmVzb2x2ZXIsIGxpbmVJbmZvLCByZW5kZXJUZXh0SW5mbywgbGFzdEZsb2F0RnJv
bVByZXZpb3VzTGluZSwgY29uc2VjdXRpdmVIeXBoZW5hdGVkTGluZXMsIHdvcmRNZWFzdXJlbWVu
dHMpOwogI2Vsc2UKICAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbyA9IG1fYmxvY2stPmxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOwot
ICAgIGlmICghZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvIHx8ICFleGNsdXNpb25TaGFwZUluc2lk
ZUluZm8tPmhhc1NlZ21lbnRzKCkpCisgICAgaWYgKCFleGNsdXNpb25TaGFwZUluc2lkZUluZm8g
fHwgIWV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+bGluZU92ZXJsYXBzU2hhcGVCb3VuZHMoKSkK
ICAgICAgICAgcmV0dXJuIG5leHRTZWdtZW50QnJlYWsocmVzb2x2ZXIsIGxpbmVJbmZvLCByZW5k
ZXJUZXh0SW5mbywgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSwgY29uc2VjdXRpdmVIeXBoZW5h
dGVkTGluZXMsIHdvcmRNZWFzdXJlbWVudHMpOwogCiAgICAgSW5saW5lSXRlcmF0b3IgZW5kID0g
cmVzb2x2ZXIucG9zaXRpb24oKTsKICAgICBJbmxpbmVJdGVyYXRvciBvbGRFbmQgPSBlbmQ7CiAK
KyAgICBpZiAoIWV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+aGFzU2VnbWVudHMoKSkgeworICAg
ICAgICBlbmQgPSBuZXh0U2VnbWVudEJyZWFrKHJlc29sdmVyLCBsaW5lSW5mbywgcmVuZGVyVGV4
dEluZm8sIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIGNvbnNlY3V0aXZlSHlwaGVuYXRlZExp
bmVzLCB3b3JkTWVhc3VyZW1lbnRzKTsKKyAgICAgICAgcmVzb2x2ZXIuc2V0UG9zaXRpb25JZ25v
cmluZ05lc3RlZElzb2xhdGVzKG9sZEVuZCk7CisgICAgICAgIHJldHVybiBvbGRFbmQ7CisgICAg
fQorCiAgICAgY29uc3QgU2VnbWVudExpc3QmIHNlZ21lbnRzID0gZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLT5zZWdtZW50cygpOwogICAgIFNlZ21lbnRSYW5nZUxpc3QmIHNlZ21lbnRSYW5nZXMg
PSBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPnNlZ21lbnRSYW5nZXMoKTsKIApAQCAtMjY3Miw2
ICsyNzAwLDcgQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OkxpbmVCcmVha2VyOjpuZXh0
TGluZUJyZWFrKElubGluZUJpZGlSZXNvbHZlciYgcmVzb2wKICAgICAgICAgfQogICAgICAgICBp
ZiAocmVzb2x2ZXIucG9zaXRpb24oKSA9PSBlbmQpIHsKICAgICAgICAgICAgIC8vIE5vdGhpbmcg
Zml0IHRoaXMgc2VnbWVudAorICAgICAgICAgICAgZW5kID0gc2VnbWVudFN0YXJ0OwogICAgICAg
ICAgICAgc2VnbWVudFJhbmdlcy5hcHBlbmQoTGluZVNlZ21lbnRSYW5nZShzZWdtZW50U3RhcnQs
IHNlZ21lbnRTdGFydCkpOwogICAgICAgICAgICAgcmVzb2x2ZXIuc2V0UG9zaXRpb25JZ25vcmlu
Z05lc3RlZElzb2xhdGVzKHNlZ21lbnRTdGFydCk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0zMjk1
LDcgKzMzMjQsMTQgQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OkxpbmVCcmVha2VyOjpu
ZXh0U2VnbWVudEJyZWFrKElubGluZUJpZGlSZXNvbHZlciYgcmUKICAgICAgICAgbEJyZWFrLmNs
ZWFyKCk7CiAKICBlbmQ6Ci0gICAgaWYgKGxCcmVhayA9PSByZXNvbHZlci5wb3NpdGlvbigpICYm
ICghbEJyZWFrLm1fb2JqIHx8ICFsQnJlYWsubV9vYmotPmlzQlIoKSkpIHsKKyNpZiBFTkFCTEUo
Q1NTX0VYQ0xVU0lPTlMpCisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBzaGFwZUluZm8g
PSBtX2Jsb2NrLT5sYXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKKyAgICBib29sIHNl
Z21lbnRBbGxvd3NPdmVyZmxvdyA9ICFzaGFwZUluZm8gfHwgIXNoYXBlSW5mby0+aGFzU2VnbWVu
dHMoKTsKKyNlbHNlCisgICAgYm9vbCBzZWdtZW50QWxsb3dzT3ZlcmZsb3cgPSB0cnVlOworI2Vu
ZGlmCisKKyAgICBpZiAobEJyZWFrID09IHJlc29sdmVyLnBvc2l0aW9uKCkgJiYgKCFsQnJlYWsu
bV9vYmogfHwgIWxCcmVhay5tX29iai0+aXNCUigpKSAmJiBzZWdtZW50QWxsb3dzT3ZlcmZsb3cp
IHsKICAgICAgICAgLy8gd2UganVzdCBhZGQgYXMgbXVjaCBhcyBwb3NzaWJsZQogICAgICAgICBp
ZiAoYmxvY2tTdHlsZS0+d2hpdGVTcGFjZSgpID09IFBSRSAmJiAhY3VycmVudC5tX3Bvcykgewog
ICAgICAgICAgICAgbEJyZWFrLm1vdmVUbyhsYXN0LCBsYXN0LT5pc1RleHQoKSA/IGxhc3QtPmxl
bmd0aCgpIDogMCk7CkBAIC0zMzA3LDEwICszMzQzLDggQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVy
QmxvY2s6OkxpbmVCcmVha2VyOjpuZXh0U2VnbWVudEJyZWFrKElubGluZUJpZGlSZXNvbHZlciYg
cmUKICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIEZJWE1FIEJ1ZyAxMDAwNDk6IFdlIGRvIG5v
dCBuZWVkIHRvIGNvbnN1bWUgaW5wdXQgaW4gYSBtdWx0aS1zZWdtZW50IGxpbmUKLSAgICAvLyB1
bmxlc3Mgbm8gc2VnbWVudCB3aWxsLgogICAgIC8vIG1ha2Ugc3VyZSB3ZSBjb25zdW1lIGF0IGxl
YXN0IG9uZSBjaGFyL29iamVjdC4KLSAgICBpZiAobEJyZWFrID09IHJlc29sdmVyLnBvc2l0aW9u
KCkpCisgICAgaWYgKGxCcmVhayA9PSByZXNvbHZlci5wb3NpdGlvbigpICYmIHNlZ21lbnRBbGxv
d3NPdmVyZmxvdykKICAgICAgICAgbEJyZWFrLmluY3JlbWVudCgpOwogCiAgICAgLy8gU2FuaXR5
IGNoZWNrIG91ciBtaWRwb2ludHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmIyNjM4MWRmZjg5Mjg2YTMyZjRmM2U5ZDdm
NTliNDhhZDE3MGM3OS4uZDVmOWViNTNjNjExYzRlYmM4MzkxZTk1YzgzMDMwYTg2YjllYzM4NiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTA0LTE4ICBCZWFyIFRyYXZpcyAgPGJldHJhdmlz
QGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEltcGxlbWVudCBlbXB0eSBz
ZWdtZW50cyBmb3IgbXVsdGlwbGUtc2VnbWVudCBzaGFwZS1pbnNpZGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAwNDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0aW5nIHRoYXQgc2hhcGUtaW5z
aWRlcyBkbyBub3QgcGxhY2UgY29udGVudCB3aGVyZSBpdCB3aWxsIG5vdCBmaXQuIEFsc28KKyAg
ICAgICAgZml4aW5nIHVwIHNvbWUgcHJldmlvdXMgdGVzdHMgYW5kIGV4cGVjdGF0aW9ucy4KKwor
ICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMvbXVsdGktc2VnbWVudC1wb2x5Z29u
LmpzOgorICAgICAgICAoc2ltdWxhdGVXaXRoVGV4dCk6IEVuYWJsZSBtdWx0aS1saW5lIHNoYXBl
IGV4cGVjdGF0aW9ucyB1c2luZyBhcnJheXMuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3Jl
c291cmNlcy9zaW1wbGUtcmVjdGFuZ2xlLmpzOgorICAgICAgICAoY3JlYXRlUmVjdGFuZ2xlVGVz
dCk6IEFkZCBvdmVyZmxvdzogYnJlYWstd29yZCBwcm9wZXJ0eSB0byB0ZXN0cy4KKyAgICAgICAg
KGNyZWF0ZVJlY3RhbmdsZVRlc3RSZXN1bHQpOiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2V4Y2x1
c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbXB0eS1leHBlY3RlZC5odG1sOiBBZGp1
c3QgcmVzdWx0cworICAgICAgICBmb3IgdGVzdHMgd2hlcmUgY29udGVudCBzaG91bGQgYmUgcHVz
aGVkIGRvd24uCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtZW1wdHktc2VnbWVudHMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZW1wdHktc2VnbWVudHMuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtZW1wdHkuaHRtbDogU2hhcGVzIHdpdGggaGVpZ2h0IGJ1dAorICAgICAgICBubyB3aWR0
aCBzaG91bGQgc3RpbGwgcHVzaCBjb250ZW50IGRvd24gYmVsb3cgdGhlIHNoYXBlLgorCiAyMDEz
LTA0LTE4ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXSBmYXN0L2NhbnZhcy9EcmF3SW1hZ2VTaW5nbGVQaXhlbFN0cmV0Y2guaHRtbCBmYWls
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9tdWx0
aS1zZWdtZW50LXBvbHlnb24uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcmVzb3Vy
Y2VzL211bHRpLXNlZ21lbnQtcG9seWdvbi5qcwppbmRleCA4NjM0NmUxNjgxNjcwMGU5NTdiMjI0
NzA1YjU5NjUwZTZjNjY5M2ZhLi4zMjI5YTE4ZGI2YzU2NTg3YzkyZGE2NzVjY2Q2N2NjZmE0ZGU1
ZDA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL211
bHRpLXNlZ21lbnQtcG9seWdvbi5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
cmVzb3VyY2VzL211bHRpLXNlZ21lbnQtcG9seWdvbi5qcwpAQCAtMjEsNiArMjEsMTAgQEAgZnVu
Y3Rpb24gc2ltdWxhdGVXaXRoVGV4dCh3aWR0aCwgaGVpZ2h0LCBmb250U2l6ZSwgY29udGVudCwg
ZWxlbWVudElkKSB7CiAgICAgZGl2LnN0eWxlLnNldFByb3BlcnR5KCdoZWlnaHQnLCBoZWlnaHQg
KyAncHgnKTsKICAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkoJ2ZvbnQnLCBmb250U2l6ZSArICdw
eC8xIEFoZW0sIHNhbnMtc2VyaWYnKTsKICAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkoJ2NvbG9y
JywgJ2dyZWVuJyk7CisgICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAg
ICBkaXYuc3R5bGUuc2V0UHJvcGVydHkoJ3doaXRlLXNwYWNlJywgJ3ByZScpOworICAgICAgICBj
b250ZW50ID0gY29udGVudC5qb2luKCdcbicpOworICAgIH0KICAgICBkaXYuaW5uZXJIVE1MID0g
Y29udGVudDsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Jl
c291cmNlcy9zaW1wbGUtcmVjdGFuZ2xlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3Jlc291cmNlcy9zaW1wbGUtcmVjdGFuZ2xlLmpzCmluZGV4IDY5MzUxOTU0MjgyMmVkYjMzZTBh
MzdkMzMyOGYyYjQxMjQ1N2VkYTEuLjM0N2QwYTk0MjRkZWFjMTkwYWQ1NDgzY2YzZGYwZjQ0ZmJm
NmVkOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMv
c2ltcGxlLXJlY3RhbmdsZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcmVz
b3VyY2VzL3NpbXBsZS1yZWN0YW5nbGUuanMKQEAgLTE4LDYgKzE4LDcgQEAgZnVuY3Rpb24gY3Jl
YXRlUmVjdGFuZ2xlVGVzdChlbGVtZW50SWQsIHN0eWxlc2hlZXRJZCwgYm91bmRzLCBzaGFwZUJv
dW5kcywgdW5pdHMKICAgICB2YXIgcmVjdGFuZ2xlQm91bmRzID0gW3NoYXBlQm91bmRzLnggKyB1
bml0cywgc2hhcGVCb3VuZHMueSArIHVuaXRzLCBzaGFwZUJvdW5kcy53aWR0aCArIHVuaXRzLCBz
aGFwZUJvdW5kcy5oZWlnaHQgKyB1bml0c107CiAgICAgcnVsZXMucHVzaCgnLXdlYmtpdC1zaGFw
ZS1pbnNpZGU6IHJlY3RhbmdsZSgnICsgcmVjdGFuZ2xlQm91bmRzLmpvaW4oJywnKSArICcpJyk7
CiAgICAgcnVsZXMucHVzaCgncG9zaXRpb246IHJlbGF0aXZlJyk7CisgICAgcnVsZXMucHVzaCgn
b3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZCcpOwogICAgIHN0eWxlc2hlZXQuaW5zZXJ0UnVsZSgn
IycgKyBlbGVtZW50SWQgKyAneycgKyBydWxlcy5qb2luKCc7JykgKyAnfScpOwogCiAgICAgcnVs
ZXMgPSBbXTsKQEAgLTQ1LDYgKzQ2LDcgQEAgZnVuY3Rpb24gY3JlYXRlUmVjdGFuZ2xlVGVzdFJl
c3VsdChlbGVtZW50SWQsIHN0eWxlc2hlZXRJZCwgYm91bmRzLCBzaGFwZUJvdW5kcywKICAgICBy
dWxlcy5wdXNoKCdwYWRkaW5nLWxlZnQ6ICcgKyBzaGFwZUJvdW5kcy54ICsgdW5pdHMsICdwYWRk
aW5nLXJpZ2h0OiAnICsgKGJvdW5kcy53aWR0aCAtIHNoYXBlQm91bmRzLndpZHRoIC0gc2hhcGVC
b3VuZHMueCkgKyB1bml0cyk7CiAgICAgcnVsZXMucHVzaCgncGFkZGluZy10b3A6ICcgKyBzaGFw
ZUJvdW5kcy55ICsgdW5pdHMsICdwYWRkaW5nLWJvdHRvbTogJyArIChib3VuZHMuaGVpZ2h0IC0g
c2hhcGVCb3VuZHMuaGVpZ2h0IC0gc2hhcGVCb3VuZHMueSkgKyB1bml0cyk7CiAgICAgcnVsZXMu
cHVzaCgncG9zaXRpb246IHJlbGF0aXZlJyk7CisgICAgcnVsZXMucHVzaCgnb3ZlcmZsb3ctd3Jh
cDogYnJlYWstd29yZCcpOwogICAgIHN0eWxlc2hlZXQuaW5zZXJ0UnVsZSgnIycgKyBlbGVtZW50
SWQgKyAneycgKyBydWxlcy5qb2luKCc7JykgKyAnfScpOwogCiAgICAgcnVsZXMgPSBbXTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLWVtcHR5LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
c2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbXB0eS1leHBlY3RlZC5odG1sCmluZGV4IDA2NTBm
MWY1YTU2MzllMWViN2M0OWNiMWIwZjUzNTkzOWU2YjZlM2YuLjIyMzA2Y2MwMGUyZDQyYjRkZmQ5
MzY3MjI0ZjVlMTViMzQyNjg3NDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVtcHR5LWV4cGVjdGVkLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZW1w
dHktZXhwZWN0ZWQuaHRtbApAQCAtMTAsMzMgKzEwLDM0IEBACiAgICAgICAgIHdpZHRoOiA4MDBw
eDsKICAgICAgICAgaGVpZ2h0OiAyZW07CiAgICAgICAgIGJvcmRlcjogc29saWQgZ3JlZW47Cisg
ICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgfQorICAgIC5wYWRkZWQgeworICAg
ICAgICBwYWRkaW5nLXRvcDogMWVtOwogICAgIH0KIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4K
LSAgICA8cCBjbGFzcz0ic2hhcGUtaW5zaWRlIj4KLSAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBi
ZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSByZWN0YW5nbGUoMHB4LCAwcHgsIDBweCwgMTAwcHgpIHNo
YXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCisgICAgPHAgY2xhc3M9InNoYXBlLWluc2lkZSBwYWRk
ZWQiPgorICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIHNoaWZ0ZWQgZG93biAxZW0gYnkgdGhl
IHJlY3RhbmdsZSgwcHgsIDBweCwgMHB4LCAxZW0pIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHku
CiAgICAgPC9wPgogICAgIDxwIGNsYXNzPSJzaGFwZS1pbnNpZGUiPgotICAgICAgICBUaGlzIHRl
eHQgc2hvdWxkIGJlIHVuY29uc3RyYWluZWQgYnkgdGhlIHJlY3RhbmdsZSgwcHgsIDBweCwgMTAw
cHgsIDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KKyAgICAgICAgVGhpcyB0ZXh0IHNo
b3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSByZWN0YW5nbGUoMHB4LCAwcHgsIDFlbSwgMHB4
KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgogICAgIDwvcD4KICAgICA8cCBjbGFzcz0ic2hh
cGUtaW5zaWRlIj4KICAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5
IHRoZSBjaXJjbGUoMHB4LCAwcHgsIDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KICAg
ICA8L3A+Ci0gICAgPHAgY2xhc3M9InNoYXBlLWluc2lkZSI+Ci0gICAgICAgIFRoaXMgdGV4dCBz
aG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgZWxsaXBzZVgwKDBweCwgMHB4LCAwcHgsIDEw
MHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgotICAgIDwvcD4KLSAgICA8cCBjbGFzcz0i
c2hhcGUtaW5zaWRlIj4KLSAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVk
IGJ5IHRoZSBlbGxpcHNlKDBweCwgMHB4LCAxMDBweCwgMHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHBy
b3BlcnR5LgorICAgIDxwIGNsYXNzPSJzaGFwZS1pbnNpZGUgcGFkZGVkIj4KKyAgICAgICAgVGhp
cyB0ZXh0IHNob3VsZCBiZSBzaGlmdGVkIGRvd24gMWVtIGJ5IHRoZSBlbGxpcHNlWDAoMHB4LCAw
cHgsIDBweCwgMWVtKSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgogICAgIDwvcD4KICAgICA8
cCBjbGFzcz0ic2hhcGUtaW5zaWRlIj4KLSAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNv
bnN0cmFpbmVkIGJ5IHRoZSBwb2x5Z29uKCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KKyAg
ICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSBlbGxpcHNlKDBw
eCwgMHB4LCAxZW0sIDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KICAgICA8L3A+CiAg
ICAgPHAgY2xhc3M9InNoYXBlLWluc2lkZSI+CiAgICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUg
dW5jb25zdHJhaW5lZCBieSB0aGUgcG9seWdvbigwcHggMHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHBy
b3BlcnR5LgogICAgIDwvcD4KICAgICA8cCBjbGFzcz0ic2hhcGUtaW5zaWRlIj4KLSAgICAgICAg
VGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSBwb2x5Z29uKDBweCAwcHgs
IDEwcHggMHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgorICAgICAgICBUaGlzIHRleHQg
c2hvdWxkIGJlIHVuY29uc3RyYWluZWQgYnkgdGhlIHBvbHlnb24oMHB4IDBweCwgMWVtIDBweCkg
c2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KICAgICA8L3A+CiA8L2JvZHk+CiA8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1lbXB0eS1zZWdtZW50cy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZW1wdHktc2VnbWVudHMtZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45N2ExMGZjNWFkYTJmYTM0Y2QzMGUzYTc3M2ZiZDI5N2MwNzk5
Nzg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtZW1wdHktc2VnbWVudHMtZXhwZWN0ZWQuaHRtbApAQCAtMCww
ICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0n
Li4vcmVzb3VyY2VzL211bHRpLXNlZ21lbnQtcG9seWdvbi5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgc2ltdWxhdGVXaXRo
VGV4dCgxMDAsIDEwMCwgNTAsIFsnIHgnLCAneHgnXSwgJ2ZpcnN0Jyk7CisgICAgICAgIHNpbXVs
YXRlV2l0aFRleHQoMTAwLCAxMDAsIDUwLCBbJ3gnLCAneHgnXSwgJ2xhc3QnKTsKKyAgICAgICAg
c2ltdWxhdGVXaXRoVGV4dCgyMDAsIDEwMCwgNTAsIFsneCAgeCcsICd4eHh4J10sICdtaWRkbGUn
KTsKKyAgICAgICAgc2ltdWxhdGVXaXRoVGV4dCgxMDAsIDEwMCwgNTAsIFsnIHgnLCAneHgnXSwg
J2ZpcnN0LW91dHNpZGUnKTsKKyAgICAgICAgc2ltdWxhdGVXaXRoVGV4dCgxMDAsIDEwMCwgNTAs
IFsneCcsICd4eCddLCAnbGFzdC1vdXRzaWRlJyk7CisgICAgICAgIHNpbXVsYXRlV2l0aFRleHQo
MTAwLCAxMDAsIDUwLCBbJyB4JywgJ3h4J10sICdmaXJzdC1pbnRlcnNlY3QnKTsKKyAgICAgICAg
c2ltdWxhdGVXaXRoVGV4dCgxMDAsIDEwMCwgNTAsIFsneCcsICd4eCddLCAnbGFzdC1pbnRlcnNl
Y3QnKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxwPlRoZXNlIHRl
c3RzIGNvdmVyIG11bHRpc2VnbWVudCBwb2x5Z29ucyB3aGVyZSBzb21lIHNlZ21lbnRzIHNob3Vs
ZCBub3QgaGF2ZSBjb250ZW50LCBlaXRoZXIgYmVjYXVzZSB0aGV5IGFyZSB0b28gc21hbGwsIG9y
IGJlY2F1c2UgdGhleSBhcmUgb3V0c2lkZSB0aGUgY29udGVudCBib3guIEl0IHJlcXVpcmVzIHRo
ZSBBaGVtIGZvbnQuPC9wPgorICAgIDxwPkFuIGVtcHR5IGluaXRpYWwgc2VnbWVudCBvbiB0aGUg
Zmlyc3QgbGluZSBbMngyIGdyaWRdPC9wPgorICAgIDxkaXYgaWQ9J2ZpcnN0Jz48L2Rpdj4KKyAg
ICA8cD5BbiBlbXB0eSBmaW5hbCBzZWdtZW50IG9uIHRoZSBmaXJzdCBsaW5lIFsyeDIgZ3JpZF08
L3A+CisgICAgPGRpdiBpZD0nbGFzdCc+PC9kaXY+CisgICAgPHA+QW4gZW1wdHkgbWlkZGxlIHNl
Z21lbnQgb24gdGhlIGZpcnN0IGxpbmUgWzR4Ml0gZ3JpZDwvcD4KKyAgICA8ZGl2IGlkPSdtaWRk
bGUnPjwvZGl2PgorICAgIDxwPlRoZSBpbml0aWFsIHNlZ21lbnQgaXMgb3V0c2lkZSB0aGUgY29u
dGVudCBib3ggWzJ4Ml0gZ3JpZDwvcD4KKyAgICA8ZGl2IGlkPSdmaXJzdC1vdXRzaWRlJz48L2Rp
dj4KKyAgICA8cD5UaGUgZmluYWwgc2VnbWVudCBpcyBvdXRzaWRlIHRoZSBjb250ZW50IGJveCBb
MngyXSBncmlkPC9wPgorICAgIDxkaXYgaWQ9J2xhc3Qtb3V0c2lkZSc+PC9kaXY+CisgICAgPHA+
VGhlIGZpcnN0IHNlZ21lbnQgaW50ZXJzZWN0cyB0aGUgY29udGVudCBib3gsIGFuZCBpcyB0b28g
c21hbGwgWzJ4Ml0gZ3JpZDwvcD4KKyAgICA8ZGl2IGlkPSdmaXJzdC1pbnRlcnNlY3QnPjwvZGl2
PgorICAgIDxwPlRoZSBsYXN0IHNlZ21lbnQgaW50ZXJzZWN0cyB0aGUgY29udGVudCBib3gsIGFu
ZCBpcyB0b28gc21hbGwgWzJ4Ml0gZ3JpZDwvcD4KKyAgICA8ZGl2IGlkPSdsYXN0LWludGVyc2Vj
dCc+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtZW1wdHktc2VnbWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVtcHR5LXNlZ21lbnRzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDc2ZjY1YWFmM2JmMmM1NDYyMzA4ZGQ3Nzg0YTc0ZTBhNDQ2MmIyMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLWVtcHR5LXNlZ21lbnRzLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy9tdWx0aS1zZWdtZW50
LXBvbHlnb24uanMnPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICB3aW5kb3cub25sb2FkID0gZnVu
Y3Rpb24oKSB7CisgICAgICAgIGdlbmVyYXRlUG9seWdvbigxMDAsIDEwMCwgNTAsIFswLCAwLCAy
NSwgMCwgMjUsIDUwLCA1MCwgNTAsIDUwLCAwLCAxMDAsIDAsIDEwMCwgMTAwLCAwLCAxMDBdLCAn
eHh4JywgJ2ZpcnN0Jyk7CisgICAgICAgIGdlbmVyYXRlUG9seWdvbigxMDAsIDEwMCwgNTAsIFsw
LCAwLCA1MCwgMCwgNTAsIDUwLCA3NSwgNTAsIDc1LCAwLCAxMDAsIDAsIDEwMCwgMTAwLCAwLCAx
MDBdLCAneHh4JywgJ2xhc3QnKTsKKyAgICAgICAgZ2VuZXJhdGVQb2x5Z29uKDIwMCwgMTAwLCA1
MCwgWzAsIDAsIDUwLCAwLCA1MCwgNTAsIDc1LCA1MCwgNzUsIDAsIDEwMCwgMCwgMTAwLCA1MCwg
MTUwLCA1MCwgMTUwLCAwLCAyMDAsIDAsIDIwMCwgMTAwLCAwLCAxMDBdLCAneHh4eHh4JywgJ21p
ZGRsZScpOworICAgICAgICBnZW5lcmF0ZVBvbHlnb24oMTAwLCAxMDAsIDUwLCBbLTUwLCAwLCAw
LCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMTAwLCAwLCAxMDAsIDEwMCwgLTUwLCAxMDBdLCAn
eHh4JywgJ2ZpcnN0LW91dHNpZGUnKTsKKyAgICAgICAgZ2VuZXJhdGVQb2x5Z29uKDEwMCwgMTAw
LCA1MCwgWzAsIDAsIDUwLCAwLCA1MCwgNTAsIDEwMCwgNTAsIDEwMCwgMCwgMTUwLCAwLCAxNTAs
IDEwMCwgMCwgMTAwXSwgJ3h4eCcsICdsYXN0LW91dHNpZGUnKTsKKyAgICAgICAgZ2VuZXJhdGVQ
b2x5Z29uKDEwMCwgMTAwLCA1MCwgWy01MCwgLTUwLCAyNSwgLTUwLCAyNSwgNTAsIDUwLCA1MCwg
NTAsIDAsIDEwMCwgMCwgMTAwLCAxMDAsIDAsIDEwMF0sICd4eHgnLCAnZmlyc3QtaW50ZXJzZWN0
Jyk7CisgICAgICAgIGdlbmVyYXRlUG9seWdvbigxMDAsIDEwMCwgNTAsIFswLCAwLCA1MCwgMCwg
NTAsIDUwLCA3NSwgNTAsIDc1LCAtNTAsIDE1MCwgLTUwLCAxNTAsIDEwMCwgMCwgMTAwXSwgJ3h4
eCcsICdsYXN0LWludGVyc2VjdCcpOworICAgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
CisgICAgPHA+VGhlc2UgdGVzdHMgY292ZXIgbXVsdGlzZWdtZW50IHBvbHlnb25zIHdoZXJlIHNv
bWUgc2VnbWVudHMgc2hvdWxkIG5vdCBoYXZlIGNvbnRlbnQsIGVpdGhlciBiZWNhdXNlIHRoZXkg
YXJlIHRvbyBzbWFsbCwgb3IgYmVjYXVzZSB0aGV5IGFyZSBvdXRzaWRlIHRoZSBjb250ZW50IGJv
eC4gSXQgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC48L3A+CisgICAgPHA+QW4gZW1wdHkgaW5pdGlh
bCBzZWdtZW50IG9uIHRoZSBmaXJzdCBsaW5lIFsyeDIgZ3JpZF08L3A+CisgICAgPGRpdiBpZD0n
Zmlyc3QnPjwvZGl2PgorICAgIDxwPkFuIGVtcHR5IGZpbmFsIHNlZ21lbnQgb24gdGhlIGZpcnN0
IGxpbmUgWzJ4MiBncmlkXTwvcD4KKyAgICA8ZGl2IGlkPSdsYXN0Jz48L2Rpdj4KKyAgICA8cD5B
biBlbXB0eSBtaWRkbGUgc2VnbWVudCBvbiB0aGUgZmlyc3QgbGluZSBbNHgyXSBncmlkPC9wPgor
ICAgIDxkaXYgaWQ9J21pZGRsZSc+PC9kaXY+CisgICAgPHA+VGhlIGluaXRpYWwgc2VnbWVudCBp
cyBvdXRzaWRlIHRoZSBjb250ZW50IGJveCBbMngyXSBncmlkPC9wPgorICAgIDxkaXYgaWQ9J2Zp
cnN0LW91dHNpZGUnPjwvZGl2PgorICAgIDxwPlRoZSBmaW5hbCBzZWdtZW50IGlzIG91dHNpZGUg
dGhlIGNvbnRlbnQgYm94IFsyeDJdIGdyaWQ8L3A+CisgICAgPGRpdiBpZD0nbGFzdC1vdXRzaWRl
Jz48L2Rpdj4KKyAgICA8cD5UaGUgZmlyc3Qgc2VnbWVudCBpbnRlcnNlY3RzIHRoZSBjb250ZW50
IGJveCwgYW5kIGlzIHRvbyBzbWFsbCBbMngyXSBncmlkPC9wPgorICAgIDxkaXYgaWQ9J2ZpcnN0
LWludGVyc2VjdCc+PC9kaXY+CisgICAgPHA+VGhlIGxhc3Qgc2VnbWVudCBpbnRlcnNlY3RzIHRo
ZSBjb250ZW50IGJveCwgYW5kIGlzIHRvbyBzbWFsbCBbMngyXSBncmlkPC9wPgorICAgIDxkaXYg
aWQ9J2xhc3QtaW50ZXJzZWN0Jz48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
c2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbXB0eS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZW1wdHkuaHRtbAppbmRleCAzYzk4
MjNlNzc5ZmQwNmY1YTIyYzkxMjg3OWIyODFhMzBiM2YyZjI0Li42YmNkZGY3ZDRlNWFkZmE2NmVm
NzI4NzVmYzY2YjkyMjFjNDQzZTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1
c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbXB0eS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVtcHR5Lmh0bWwK
QEAgLTEwLDE0ICsxMCwxNiBAQAogICAgICAgICB3aWR0aDogODAwcHg7CiAgICAgICAgIGhlaWdo
dDogMmVtOwogICAgICAgICBib3JkZXI6IHNvbGlkIGdyZWVuOworICAgICAgICBib3gtc2l6aW5n
OiBib3JkZXItYm94OwogICAgIH0KIAogICAgICNzaGFwZS1pbnNpZGUtcmVjdGFuZ2xlLXdpZHRo
MCB7Ci0gICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0YW5nbGUoMHB4LCAwcHgsIDBw
eCwgMTAwcHgpOworICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcmVjdGFuZ2xlKDBweCwg
MHB4LCAwcHgsIDFlbSk7CisgICAgICAgIHBhZGRpbmctdG9wOiAxZW07CiAgICAgfQogCiAgICAg
I3NoYXBlLWluc2lkZS1yZWN0YW5nbGUtaGVpZ2h0MCB7Ci0gICAgICAgIC13ZWJraXQtc2hhcGUt
aW5zaWRlOiByZWN0YW5nbGUoMHB4LCAwcHgsIDEwMHB4LCAwcHgpOworICAgICAgICAtd2Via2l0
LXNoYXBlLWluc2lkZTogcmVjdGFuZ2xlKDBweCwgMHB4LCAxZW0sIDBweCk7CiAgICAgfQogCiAg
ICAgI3NoYXBlLWluc2lkZS1jaXJjbGUtcmFkaXVzMCB7CkBAIC0yNSwxNSArMjcsMTIgQEAKICAg
ICB9CiAKICAgICAjc2hhcGUtaW5zaWRlLWVsbGlwc2UtcmFkaXVzWDAgewotICAgICAgICAtd2Vi
a2l0LXNoYXBlLWluc2lkZTogZWxsaXBzZSgwcHgsIDBweCwgMHB4LCAxMDBweCk7CisgICAgICAg
IC13ZWJraXQtc2hhcGUtaW5zaWRlOiBlbGxpcHNlKDBweCwgMHB4LCAwcHgsIDFlbSk7CisgICAg
ICAgIHBhZGRpbmctdG9wOiAxZW07CiAgICAgfQogCiAgICAgI3NoYXBlLWluc2lkZS1lbGxpcHNl
LXJhZGl1c1kwIHsKLSAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6IGVsbGlwc2UoMHB4LCAw
cHgsIDEwMHB4LCAwcHgpOwotICAgIH0KLQotICAgICNzaGFwZS1pbnNpZGUtcG9seWdvbi0wdmVy
dGljZXMgewotICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcG9seWdvbigpOworICAgICAg
ICAtd2Via2l0LXNoYXBlLWluc2lkZTogZWxsaXBzZSgwcHgsIDBweCwgMWVtLCAwcHgpOwogICAg
IH0KIAogICAgICNzaGFwZS1pbnNpZGUtcG9seWdvbi0xdmVydGV4IHsKQEAgLTQxLDM0ICs0MCwz
MSBAQAogICAgIH0KIAogICAgICNzaGFwZS1pbnNpZGUtcG9seWdvbi0ydmVydGljZXMgewotICAg
ICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcG9seWdvbigwcHggMHB4LCAxMHB4IDBweCk7Cisg
ICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiBwb2x5Z29uKDBweCAwcHgsIDFlbSAwcHgpOwog
ICAgIH0KIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KICAgICA8cCBjbGFzcz0ic2hhcGUtaW5z
aWRlIiBpZD0ic2hhcGUtaW5zaWRlLXJlY3RhbmdsZS13aWR0aDAiPgotICAgICAgICBUaGlzIHRl
eHQgc2hvdWxkIGJlIHVuY29uc3RyYWluZWQgYnkgdGhlIHJlY3RhbmdsZSgwcHgsIDBweCwgMHB4
LCAxMDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KKyAgICAgICAgVGhpcyB0ZXh0IHNo
b3VsZCBiZSBzaGlmdGVkIGRvd24gMWVtIGJ5IHRoZSByZWN0YW5nbGUoMHB4LCAwcHgsIDBweCwg
MWVtKSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgogICAgIDwvcD4KICAgICA8cCBjbGFzcz0i
c2hhcGUtaW5zaWRlIiBpZD0ic2hhcGUtaW5zaWRlLXJlY3RhbmdsZS1oZWlnaHQwIj4KLSAgICAg
ICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSByZWN0YW5nbGUoMHB4
LCAwcHgsIDEwMHB4LCAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCisgICAgICAgIFRo
aXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgcmVjdGFuZ2xlKDBweCwgMHB4
LCAxZW0sIDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KICAgICA8L3A+CiAgICAgPHAg
Y2xhc3M9InNoYXBlLWluc2lkZSIgaWQ9InNoYXBlLWluc2lkZS1jaXJjbGUtcmFkaXVzMCI+CiAg
ICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgY2lyY2xlKDBw
eCwgMHB4LCAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCiAgICAgPC9wPgogICAgIDxw
IGNsYXNzPSJzaGFwZS1pbnNpZGUiIGlkPSJzaGFwZS1pbnNpZGUtZWxsaXBzZS1yYWRpdXNYMCI+
Ci0gICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgZWxsaXBz
ZVgwKDBweCwgMHB4LCAwcHgsIDEwMHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgorICAg
ICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIHNoaWZ0ZWQgZG93biAxZW0gYnkgdGhlIGVsbGlwc2VY
MCgwcHgsIDBweCwgMHB4LCAxZW0pIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCiAgICAgPC9w
PgogICAgIDxwIGNsYXNzPSJzaGFwZS1pbnNpZGUiIGlkPSJzaGFwZS1pbnNpZGUtZWxsaXBzZS1y
YWRpdXNZMCI+Ci0gICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0
aGUgZWxsaXBzZSgwcHgsIDBweCwgMTAwcHgsIDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0
eS4KLSAgICA8L3A+Ci0gICAgPHAgY2xhc3M9InNoYXBlLWluc2lkZSIgaWQ9InNoYXBlLWluc2lk
ZS1wb2x5Z29uLTB2ZXJ0aWNlcyI+Ci0gICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25z
dHJhaW5lZCBieSB0aGUgcG9seWdvbigpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCisgICAg
ICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgZWxsaXBzZSgwcHgs
IDBweCwgMWVtLCAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCiAgICAgPC9wPgogICAg
IDxwIGNsYXNzPSJzaGFwZS1pbnNpZGUiIGlkPSJzaGFwZS1pbnNpZGUtcG9seWdvbi0xdmVydGV4
Ij4KICAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSBwb2x5
Z29uKDBweCAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCiAgICAgPC9wPgogICAgIDxw
IGNsYXNzPSJzaGFwZS1pbnNpZGUiIGlkPSJzaGFwZS1pbnNpZGUtcG9seWdvbi0ydmVydGljZXMi
PgotICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIHVuY29uc3RyYWluZWQgYnkgdGhlIHBvbHln
b24oMHB4IDBweCwgMTBweCAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCisgICAgICAg
IFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgcG9seWdvbigwcHggMHB4
LCAxZW0gMHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgogICAgIDwvcD4KIDwvYm9keT4K
IDwvaHRtbD4K
</data>
<flag name="review"
          id="220442"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198915</attachid>
            <date>2013-04-19 14:40:17 -0700</date>
            <delta_ts>2013-04-19 16:27:12 -0700</delta_ts>
            <desc>Factoring out line adjustment code</desc>
            <filename>bug-100049-20130419143946.patch</filename>
            <type>text/plain</type>
            <size>23085</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQzNjZlOTA1Y2Y5NWY3
M2NjYjM4MzBiYjg1Y2JlZmMzZWU3OWFhMS4uNDMwZDkwZGEzY2NhNDI5NDk2ZWJlYTgyYjIzMzA5
MWMyNGZlMjE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTA0LTE5ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IEltcGxlbWVudCBlbXB0eSBzZWdtZW50cyBmb3IgbXVsdGlwbGUtc2VnbWVudCBzaGFwZS1pbnNp
ZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAw
NDkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KKworICAgICAgICBDb250ZW50
IHNob3VsZCBub3Qgb3ZlcmZsb3cgYSBzaGFwZS1pbnNpZGUgc2VnbWVudCwgZXZlbiBpZiB0aGF0
IG1lYW5zIG5vIGNvbnRlbnQKKyAgICAgICAgd2lsbCBiZSBwbGFjZWQgaW4gdGhhdCBzZWdtZW50
LiBPdmVyZmxvdyBtYXkgYmUgcHVzaGVkIHRvIG91dHNpZGUgdGhlIHNoYXBlLiBUaGlzCisgICAg
ICAgIHBhdGNoIHJlbW92ZXMgdGhlIHJlc3RyaWN0aW9uIHRoYXQgZXZlcnkgbGluZSBtdXN0IGNv
bnN1bWUgYXQgbGVhc3Qgc29tZSB0ZXh0CisgICAgICAgIGlucHV0IHdoaWxlIGluc2lkZSBhIHNo
YXBlLWluc2lkZS4gQ29udGVudCB0aGF0IGRvZXMgbm90IGZpdCBpcyBwdXNoZWQgZG93biB1bnRp
bAorICAgICAgICBpdCBkb2VzLCBlaXRoZXIgaW5zaWRlIHRoZSBzaGFwZSBvciBqdXN0IGJlbG93
IGl0LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLWVtcHR5LXNlZ21lbnRzLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
bG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0QmlkaVJ1bnNG
b3JTZWdtZW50KTogRG8gbm90IGluY2x1ZGUgZW1wdHkgc2VnbWVudHMgZm9yCisgICAgICAgIGNv
bnNpZGVyYXRpb24sIGFzIHRoZSBhY3R1YWwgQmlkaVJ1bnMgY29uc3RydWN0aW9uIGV4cGVjdHMg
dG8gY29uc3VtZSBhdAorICAgICAgICBsZWFzdCBvbmUgY2hhcmFjdGVyLgorICAgICAgICAoV2Vi
Q29yZTo6Y29uc3RydWN0QmlkaVJ1bnNGb3JMaW5lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpmaXJzdFBvc2l0aXZlV2lkdGgpOiBGaW5kIHRoZSBmaXJzdCBwb3NpdGl2ZSB3b3JkIG1lYXN1
cmVtZW50IHdpZHRoLAorICAgICAgICBhcyB0aGVyZSBtYXkgYmUgc29tZSBlbXB0eSB3b3JkIGJy
ZWFrIG1lYXN1cmVtZW50cyBpbnNlcnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFkanVzdExvZ2lj
YWxMaW5lVG9wKTogTW92ZSB0aGUgY3VycmVudCBsaW5lIGRvd24sIGlmIG5lY2Vzc2FyeSwgdG8K
KyAgICAgICAgZml0IGl0IHdpdGhpbiB0aGUgc2hhcGUgaW5zaWRlLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKTogSWYgbm90aGluZyBm
aXQgaW4gdGhlCisgICAgICAgIGN1cnJlbnQgc2VnbWVudCwgZmluZCB0aGUgZmlyc3QgYXZhaWxh
YmxlIHBvc2l0aW9uIGZvciB0aGUgc21hbGxlc3QgaXRlbQorICAgICAgICBhdCB0aGUgYmVnaW5u
aW5nIG9mIHRoZSB0ZXh0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OkxpbmVCcmVh
a2VyOjpuZXh0TGluZUJyZWFrKTogUmV0dXJuIGFuIGVtcHR5IHNlZ21lbnQKKyAgICAgICAgZm9y
IGEgbGluZSB0aGF0IGlzIGluc2lkZSB0aGUgc2hhcGUsIGJ1dCBoYXMgbm8gc2VnbWVudHMuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6TGluZUJyZWFrZXI6Om5leHRTZWdtZW50QnJl
YWspOiBEbyBub3QgY29uc3VtZQorICAgICAgICBpbnB1dCB0byBtZWV0IG1pbmltdW0gc2l6ZSBy
ZXF1aXJlbWVudHMgaWYgeW91IGFyZSBpbnNpZGUgYSBzaGFwZS4KKwogMjAxMy0wNC0xOSAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIFZlY3Rv
ciBpbnN0ZWFkIG9mIFN0cmluZ0J1aWxkZXIgZm9yIENTU1ByZWxvYWRTY2FubmVyJ3MgYnVmZmVy
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxh
eW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0
LmNwcAppbmRleCBhODFmODZmOWIzNTM1NzI3YTYwYTE3YjMyMjQxZTA2OWJlYmFiNmYxLi41YTUw
MDM4NTE2YmQ3Mzk4MWYyNzc3ZTQ3YzUxY2NlMzRmNzA0M2YzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtMTI5Niw2ICsx
Mjk2LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGNvbnN0cnVjdEJpZGlSdW5zRm9yU2VnbWVudChJ
bmxpbmVCaWRpUmVzb2x2ZXImIHRvcFJlc29sdmVyLAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
cGFzcyBhIEJpZGlSdW5MaXN0IGludG8gY3JlYXRlQmlkaVJ1bnNGb3JMaW5lIGluc3RlYWQKICAg
ICAvLyBvZiB0aGUgcmVzb2x2ZXIgb3duaW5nIHRoZSBydW5zLgogICAgIEFTU0VSVCgmdG9wUmVz
b2x2ZXIucnVucygpID09ICZiaWRpUnVucyk7CisgICAgQVNTRVJUKHRvcFJlc29sdmVyLnBvc2l0
aW9uKCkgIT0gZW5kT2ZSdW5zKTsKICAgICBSZW5kZXJPYmplY3QqIGN1cnJlbnRSb290ID0gdG9w
UmVzb2x2ZXIucG9zaXRpb24oKS5yb290KCk7CiAgICAgdG9wUmVzb2x2ZXIuY3JlYXRlQmlkaVJ1
bnNGb3JMaW5lKGVuZE9mUnVucywgb3ZlcnJpZGUsIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSk7
CiAKQEAgLTEzODIsNiArMTM4Myw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjb25zdHJ1Y3RCaWRp
UnVuc0ZvckxpbmUoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrLCBJbmxpbmVCaWRpCiAgICAgICAg
ICAgICAvLyBEbyBub3QgY29sbGFwc2UgbWlkcG9pbnRzIGJldHdlZW4gc2VnbWVudHMKICAgICAg
ICAgICAgIHRvcFJlc29sdmVyLm1pZHBvaW50U3RhdGUoKS5iZXR3ZWVuTWlkcG9pbnRzID0gZmFs
c2U7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKHNlZ21lbnRTdGFydCA9PSBzZWdtZW50RW5kKQor
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIHRvcFJlc29sdmVyLnNldFBvc2l0aW9uKHNl
Z21lbnRTdGFydCwgbnVtYmVyT2ZJc29sYXRlQW5jZXN0b3JzKHNlZ21lbnRTdGFydCkpOwogICAg
ICAgICBjb25zdHJ1Y3RCaWRpUnVuc0ZvclNlZ21lbnQodG9wUmVzb2x2ZXIsIGJpZGlSdW5zLCBz
ZWdtZW50RW5kLCBvdmVycmlkZSwgcHJldmlvdXNMaW5lQnJva2VDbGVhbmx5KTsKICAgICB9CkBA
IC0xNjIwLDYgKzE2MjMsMzAgQEAgaW5saW5lIGNvbnN0IElubGluZUl0ZXJhdG9yJiBSZW5kZXJC
bG9jazo6cmVzdGFydExheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKExheW8KICAgICByZXR1cm4g
b2xkRW5kOwogfQogCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorc3RhdGljIGlubGluZSBm
bG9hdCBmaXJzdFBvc2l0aXZlV2lkdGgoY29uc3QgV29yZE1lYXN1cmVtZW50cyYgd29yZE1lYXN1
cmVtZW50cykKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdvcmRNZWFzdXJlbWVudHMu
c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKHdvcmRNZWFzdXJlbWVudHNbaV0ud2lkdGggPiAw
KQorICAgICAgICAgICAgcmV0dXJuIHdvcmRNZWFzdXJlbWVudHNbaV0ud2lkdGg7CisgICAgfQor
ICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIExheW91dFVuaXQgYWRqdXN0TG9naWNh
bExpbmVUb3AoRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8sIElubGluZUl0ZXJhdG9yIHN0YXJ0LCBJbmxpbmVJdGVyYXRvciBlbmQsIGNvbnN0IFdvcmRN
ZWFzdXJlbWVudHMmIHdvcmRNZWFzdXJlbWVudHMpCit7CisgICAgaWYgKCFleGNsdXNpb25TaGFw
ZUluc2lkZUluZm8gfHwgZW5kICE9IHN0YXJ0KQorICAgICAgICByZXR1cm4gMDsKKworICAgIGZs
b2F0IG1pbldpZHRoID0gZmlyc3RQb3NpdGl2ZVdpZHRoKHdvcmRNZWFzdXJlbWVudHMpOworICAg
IEFTU0VSVChtaW5XaWR0aCB8fCB3b3JkTWVhc3VyZW1lbnRzLmlzRW1wdHkoKSk7CisgICAgaWYg
KG1pbldpZHRoID4gMCAmJiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmFkanVzdExvZ2ljYWxM
aW5lVG9wKG1pbldpZHRoKSkKKyAgICAgICAgcmV0dXJuIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
by0+bG9naWNhbExpbmVUb3AoKTsKKworICAgIHJldHVybiBleGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8tPnNoYXBlTG9naWNhbEJvdHRvbSgpOworfQorI2VuZGlmCisKIHZvaWQgUmVuZGVyQmxvY2s6
OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUs
IElubGluZUJpZGlSZXNvbHZlciYgcmVzb2x2ZXIsIGNvbnN0IElubGluZUl0ZXJhdG9yJiBjbGVh
bkxpbmVTdGFydCwgY29uc3QgQmlkaVN0YXR1cyYgY2xlYW5MaW5lQmlkaVN0YXR1cywgdW5zaWdu
ZWQgY29uc2VjdXRpdmVIeXBoZW5hdGVkTGluZXMpCiB7CiAgICAgUmVuZGVyU3R5bGUqIHN0eWxl
VG9Vc2UgPSBzdHlsZSgpOwpAQCAtMTY5NCwxNSArMTcyMSwxNiBAQCB2b2lkIFJlbmRlckJsb2Nr
OjpsYXlvdXRSdW5zQW5kRmxvYXRzSW5SYW5nZShMaW5lTGF5b3V0U3RhdGUmIGxheW91dFN0YXRl
LCBJbmxpbgogICAgICAgICAgICAgcmVzb2x2ZXIuc2V0UG9zaXRpb24oSW5saW5lSXRlcmF0b3Io
cmVzb2x2ZXIucG9zaXRpb24oKS5yb290KCksIDAsIDApLCAwKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9Ci0gICAgICAgIEFTU0VSVChlbmQgIT0gcmVzb2x2ZXIucG9zaXRpb24oKSk7
CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgICAgIGlmIChleGNsdXNpb25TaGFw
ZUluc2lkZUluZm8gJiYgd29yZE1lYXN1cmVtZW50cy5zaXplKCkgJiYgZXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvLT5hZGp1c3RMb2dpY2FsTGluZVRvcCh3b3JkTWVhc3VyZW1lbnRzWzBdLndpZHRo
KSkgewotICAgICAgICAgICAgZW5kID0gcmVzdGFydExheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdl
KGxvZ2ljYWxIZWlnaHQoKSwgZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5sb2dpY2FsTGluZVRv
cCgpIC0gYWJzb2x1dGVMb2dpY2FsVG9wLCBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lLCByZXNv
bHZlciwgb2xkRW5kKTsKKyAgICAgICAgaWYgKExheW91dFVuaXQgYWRqdXN0ZWRMb2dpY2FsTGlu
ZVRvcCA9IGFkanVzdExvZ2ljYWxMaW5lVG9wKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbywgcmVz
b2x2ZXIucG9zaXRpb24oKSwgZW5kLCB3b3JkTWVhc3VyZW1lbnRzKSkgeworICAgICAgICAgICAg
ZW5kID0gcmVzdGFydExheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKGxvZ2ljYWxIZWlnaHQoKSwg
YWRqdXN0ZWRMb2dpY2FsTGluZVRvcCAtIGFic29sdXRlTG9naWNhbFRvcCwgbGFzdEZsb2F0RnJv
bVByZXZpb3VzTGluZSwgcmVzb2x2ZXIsIG9sZEVuZCk7CiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgfQogI2VuZGlmCiAKKyAgICAgICAgQVNTRVJUKGVuZCAhPSByZXNvbHZlci5wb3Np
dGlvbigpKTsKKwogICAgICAgICAvLyBUaGlzIGlzIGEgc2hvcnQtY3V0IGZvciBlbXB0eSBsaW5l
cy4KICAgICAgICAgaWYgKGxheW91dFN0YXRlLmxpbmVJbmZvKCkuaXNFbXB0eSgpKSB7CiAgICAg
ICAgICAgICBpZiAobGFzdFJvb3RCb3goKSkKQEAgLTI2NTIsMTIgKzI2ODAsMTggQEAgSW5saW5l
SXRlcmF0b3IgUmVuZGVyQmxvY2s6OkxpbmVCcmVha2VyOjpuZXh0TGluZUJyZWFrKElubGluZUJp
ZGlSZXNvbHZlciYgcmVzb2wKICAgICByZXR1cm4gbmV4dFNlZ21lbnRCcmVhayhyZXNvbHZlciwg
bGluZUluZm8sIHJlbmRlclRleHRJbmZvLCBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lLCBjb25z
ZWN1dGl2ZUh5cGhlbmF0ZWRMaW5lcywgd29yZE1lYXN1cmVtZW50cyk7CiAjZWxzZQogICAgIEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gbV9ibG9j
ay0+bGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7Ci0gICAgaWYgKCFleGNsdXNpb25T
aGFwZUluc2lkZUluZm8gfHwgIWV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+aGFzU2VnbWVudHMo
KSkKKyAgICBpZiAoIWV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyB8fCAhZXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvLT5saW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpKQogICAgICAgICByZXR1cm4gbmV4
dFNlZ21lbnRCcmVhayhyZXNvbHZlciwgbGluZUluZm8sIHJlbmRlclRleHRJbmZvLCBsYXN0Rmxv
YXRGcm9tUHJldmlvdXNMaW5lLCBjb25zZWN1dGl2ZUh5cGhlbmF0ZWRMaW5lcywgd29yZE1lYXN1
cmVtZW50cyk7CiAKICAgICBJbmxpbmVJdGVyYXRvciBlbmQgPSByZXNvbHZlci5wb3NpdGlvbigp
OwogICAgIElubGluZUl0ZXJhdG9yIG9sZEVuZCA9IGVuZDsKIAorICAgIGlmICghZXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvLT5oYXNTZWdtZW50cygpKSB7CisgICAgICAgIGVuZCA9IG5leHRTZWdt
ZW50QnJlYWsocmVzb2x2ZXIsIGxpbmVJbmZvLCByZW5kZXJUZXh0SW5mbywgbGFzdEZsb2F0RnJv
bVByZXZpb3VzTGluZSwgY29uc2VjdXRpdmVIeXBoZW5hdGVkTGluZXMsIHdvcmRNZWFzdXJlbWVu
dHMpOworICAgICAgICByZXNvbHZlci5zZXRQb3NpdGlvbklnbm9yaW5nTmVzdGVkSXNvbGF0ZXMo
b2xkRW5kKTsKKyAgICAgICAgcmV0dXJuIG9sZEVuZDsKKyAgICB9CisKICAgICBjb25zdCBTZWdt
ZW50TGlzdCYgc2VnbWVudHMgPSBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPnNlZ21lbnRzKCk7
CiAgICAgU2VnbWVudFJhbmdlTGlzdCYgc2VnbWVudFJhbmdlcyA9IGV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mby0+c2VnbWVudFJhbmdlcygpOwogCkBAIC0yNjcyLDYgKzI3MDYsNyBAQCBJbmxpbmVJ
dGVyYXRvciBSZW5kZXJCbG9jazo6TGluZUJyZWFrZXI6Om5leHRMaW5lQnJlYWsoSW5saW5lQmlk
aVJlc29sdmVyJiByZXNvbAogICAgICAgICB9CiAgICAgICAgIGlmIChyZXNvbHZlci5wb3NpdGlv
bigpID09IGVuZCkgewogICAgICAgICAgICAgLy8gTm90aGluZyBmaXQgdGhpcyBzZWdtZW50Cisg
ICAgICAgICAgICBlbmQgPSBzZWdtZW50U3RhcnQ7CiAgICAgICAgICAgICBzZWdtZW50UmFuZ2Vz
LmFwcGVuZChMaW5lU2VnbWVudFJhbmdlKHNlZ21lbnRTdGFydCwgc2VnbWVudFN0YXJ0KSk7CiAg
ICAgICAgICAgICByZXNvbHZlci5zZXRQb3NpdGlvbklnbm9yaW5nTmVzdGVkSXNvbGF0ZXMoc2Vn
bWVudFN0YXJ0KTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTMyOTUsNyArMzMzMCwxNCBAQCBJbmxp
bmVJdGVyYXRvciBSZW5kZXJCbG9jazo6TGluZUJyZWFrZXI6Om5leHRTZWdtZW50QnJlYWsoSW5s
aW5lQmlkaVJlc29sdmVyJiByZQogICAgICAgICBsQnJlYWsuY2xlYXIoKTsKIAogIGVuZDoKLSAg
ICBpZiAobEJyZWFrID09IHJlc29sdmVyLnBvc2l0aW9uKCkgJiYgKCFsQnJlYWsubV9vYmogfHwg
IWxCcmVhay5tX29iai0+aXNCUigpKSkgeworI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAg
ICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIHNoYXBlSW5mbyA9IG1fYmxvY2stPmxheW91dEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOworICAgIGJvb2wgc2VnbWVudEFsbG93c092ZXJmbG93
ID0gIXNoYXBlSW5mbyB8fCAhc2hhcGVJbmZvLT5oYXNTZWdtZW50cygpOworI2Vsc2UKKyAgICBi
b29sIHNlZ21lbnRBbGxvd3NPdmVyZmxvdyA9IHRydWU7CisjZW5kaWYKKworICAgIGlmIChsQnJl
YWsgPT0gcmVzb2x2ZXIucG9zaXRpb24oKSAmJiAoIWxCcmVhay5tX29iaiB8fCAhbEJyZWFrLm1f
b2JqLT5pc0JSKCkpICYmIHNlZ21lbnRBbGxvd3NPdmVyZmxvdykgewogICAgICAgICAvLyB3ZSBq
dXN0IGFkZCBhcyBtdWNoIGFzIHBvc3NpYmxlCiAgICAgICAgIGlmIChibG9ja1N0eWxlLT53aGl0
ZVNwYWNlKCkgPT0gUFJFICYmICFjdXJyZW50Lm1fcG9zKSB7CiAgICAgICAgICAgICBsQnJlYWsu
bW92ZVRvKGxhc3QsIGxhc3QtPmlzVGV4dCgpID8gbGFzdC0+bGVuZ3RoKCkgOiAwKTsKQEAgLTMz
MDcsMTAgKzMzNDksOCBAQCBJbmxpbmVJdGVyYXRvciBSZW5kZXJCbG9jazo6TGluZUJyZWFrZXI6
Om5leHRTZWdtZW50QnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiByZQogICAgICAgICB9CiAgICAg
fQogCi0gICAgLy8gRklYTUUgQnVnIDEwMDA0OTogV2UgZG8gbm90IG5lZWQgdG8gY29uc3VtZSBp
bnB1dCBpbiBhIG11bHRpLXNlZ21lbnQgbGluZQotICAgIC8vIHVubGVzcyBubyBzZWdtZW50IHdp
bGwuCiAgICAgLy8gbWFrZSBzdXJlIHdlIGNvbnN1bWUgYXQgbGVhc3Qgb25lIGNoYXIvb2JqZWN0
LgotICAgIGlmIChsQnJlYWsgPT0gcmVzb2x2ZXIucG9zaXRpb24oKSkKKyAgICBpZiAobEJyZWFr
ID09IHJlc29sdmVyLnBvc2l0aW9uKCkgJiYgc2VnbWVudEFsbG93c092ZXJmbG93KQogICAgICAg
ICBsQnJlYWsuaW5jcmVtZW50KCk7CiAKICAgICAvLyBTYW5pdHkgY2hlY2sgb3VyIG1pZHBvaW50
cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAyMjhmNGU3ZThjNzk2ODVhMTg1NjgyM2IyODdmMzA0MmU0MjZkNDlhLi45ZTJk
YjRkNDlkNTlkYjg4ZmIyNDEwNDFkNmZkNjQzYmU5ODhjMTA4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTMtMDQtMTkgIEJlYXIgVHJhdmlzICA8YmV0cmF2aXNAYWRvYmUuY29tPgorCisgICAg
ICAgIFtDU1MgRXhjbHVzaW9uc10gSW1wbGVtZW50IGVtcHR5IHNlZ21lbnRzIGZvciBtdWx0aXBs
ZS1zZWdtZW50IHNoYXBlLWluc2lkZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMDA0OQorCisgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEh5YXR0
LgorCisgICAgICAgIFRlc3RpbmcgdGhhdCBzaGFwZS1pbnNpZGVzIGRvIG5vdCBwbGFjZSBjb250
ZW50IHdoZXJlIGl0IHdpbGwgbm90IGZpdC4gQWxzbworICAgICAgICBmaXhpbmcgdXAgc29tZSBw
cmV2aW91cyB0ZXN0cyBhbmQgZXhwZWN0YXRpb25zLgorCisgICAgICAgICogZmFzdC9leGNsdXNp
b25zL3Jlc291cmNlcy9tdWx0aS1zZWdtZW50LXBvbHlnb24uanM6CisgICAgICAgIChzaW11bGF0
ZVdpdGhUZXh0KTogRW5hYmxlIG11bHRpLWxpbmUgc2hhcGUgZXhwZWN0YXRpb25zIHVzaW5nIGFy
cmF5cy4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL3NpbXBsZS1yZWN0YW5n
bGUuanM6CisgICAgICAgIChjcmVhdGVSZWN0YW5nbGVUZXN0KTogQWRkIG92ZXJmbG93OiBicmVh
ay13b3JkIHByb3BlcnR5IHRvIHRlc3RzLgorICAgICAgICAoY3JlYXRlUmVjdGFuZ2xlVGVzdFJl
c3VsdCk6IERpdHRvLgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLWVtcHR5LWV4cGVjdGVkLmh0bWw6IEFkanVzdCByZXN1bHRzCisgICAgICAgIGZv
ciB0ZXN0cyB3aGVyZSBjb250ZW50IHNob3VsZCBiZSBwdXNoZWQgZG93bi4KKyAgICAgICAgKiBm
YXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbXB0eS1zZWdtZW50cy1l
eHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1lbXB0eS1zZWdtZW50cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbXB0eS5odG1sOiBTaGFw
ZXMgd2l0aCBoZWlnaHQgYnV0CisgICAgICAgIG5vIHdpZHRoIHNob3VsZCBzdGlsbCBwdXNoIGNv
bnRlbnQgZG93biBiZWxvdyB0aGUgc2hhcGUuCisKIDIwMTMtMDQtMTkgIEpvc2VwaCBQZWNvcmFy
byAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBCYWNrZW5k
IHNob3VsZCBkZXRlY3Qgc291cmNlTWFwcGluZ1VSTHMgaW4gQ1NTIFJlc291cmNlcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9tdWx0aS1zZWdtZW50
LXBvbHlnb24uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL211bHRp
LXNlZ21lbnQtcG9seWdvbi5qcwppbmRleCA4NjM0NmUxNjgxNjcwMGU5NTdiMjI0NzA1YjU5NjUw
ZTZjNjY5M2ZhLi4zMjI5YTE4ZGI2YzU2NTg3YzkyZGE2NzVjY2Q2N2NjZmE0ZGU1ZDA0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL211bHRpLXNlZ21l
bnQtcG9seWdvbi5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2Vz
L211bHRpLXNlZ21lbnQtcG9seWdvbi5qcwpAQCAtMjEsNiArMjEsMTAgQEAgZnVuY3Rpb24gc2lt
dWxhdGVXaXRoVGV4dCh3aWR0aCwgaGVpZ2h0LCBmb250U2l6ZSwgY29udGVudCwgZWxlbWVudElk
KSB7CiAgICAgZGl2LnN0eWxlLnNldFByb3BlcnR5KCdoZWlnaHQnLCBoZWlnaHQgKyAncHgnKTsK
ICAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkoJ2ZvbnQnLCBmb250U2l6ZSArICdweC8xIEFoZW0s
IHNhbnMtc2VyaWYnKTsKICAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkoJ2NvbG9yJywgJ2dyZWVu
Jyk7CisgICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICBkaXYuc3R5
bGUuc2V0UHJvcGVydHkoJ3doaXRlLXNwYWNlJywgJ3ByZScpOworICAgICAgICBjb250ZW50ID0g
Y29udGVudC5qb2luKCdcbicpOworICAgIH0KICAgICBkaXYuaW5uZXJIVE1MID0gY29udGVudDsK
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9z
aW1wbGUtcmVjdGFuZ2xlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Jlc291cmNl
cy9zaW1wbGUtcmVjdGFuZ2xlLmpzCmluZGV4IDY5MzUxOTU0MjgyMmVkYjMzZTBhMzdkMzMyOGYy
YjQxMjQ1N2VkYTEuLjM0N2QwYTk0MjRkZWFjMTkwYWQ1NDgzY2YzZGYwZjQ0ZmJmNmVkOTAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMvc2ltcGxlLXJl
Y3RhbmdsZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL3Np
bXBsZS1yZWN0YW5nbGUuanMKQEAgLTE4LDYgKzE4LDcgQEAgZnVuY3Rpb24gY3JlYXRlUmVjdGFu
Z2xlVGVzdChlbGVtZW50SWQsIHN0eWxlc2hlZXRJZCwgYm91bmRzLCBzaGFwZUJvdW5kcywgdW5p
dHMKICAgICB2YXIgcmVjdGFuZ2xlQm91bmRzID0gW3NoYXBlQm91bmRzLnggKyB1bml0cywgc2hh
cGVCb3VuZHMueSArIHVuaXRzLCBzaGFwZUJvdW5kcy53aWR0aCArIHVuaXRzLCBzaGFwZUJvdW5k
cy5oZWlnaHQgKyB1bml0c107CiAgICAgcnVsZXMucHVzaCgnLXdlYmtpdC1zaGFwZS1pbnNpZGU6
IHJlY3RhbmdsZSgnICsgcmVjdGFuZ2xlQm91bmRzLmpvaW4oJywnKSArICcpJyk7CiAgICAgcnVs
ZXMucHVzaCgncG9zaXRpb246IHJlbGF0aXZlJyk7CisgICAgcnVsZXMucHVzaCgnb3ZlcmZsb3ct
d3JhcDogYnJlYWstd29yZCcpOwogICAgIHN0eWxlc2hlZXQuaW5zZXJ0UnVsZSgnIycgKyBlbGVt
ZW50SWQgKyAneycgKyBydWxlcy5qb2luKCc7JykgKyAnfScpOwogCiAgICAgcnVsZXMgPSBbXTsK
QEAgLTQ1LDYgKzQ2LDcgQEAgZnVuY3Rpb24gY3JlYXRlUmVjdGFuZ2xlVGVzdFJlc3VsdChlbGVt
ZW50SWQsIHN0eWxlc2hlZXRJZCwgYm91bmRzLCBzaGFwZUJvdW5kcywKICAgICBydWxlcy5wdXNo
KCdwYWRkaW5nLWxlZnQ6ICcgKyBzaGFwZUJvdW5kcy54ICsgdW5pdHMsICdwYWRkaW5nLXJpZ2h0
OiAnICsgKGJvdW5kcy53aWR0aCAtIHNoYXBlQm91bmRzLndpZHRoIC0gc2hhcGVCb3VuZHMueCkg
KyB1bml0cyk7CiAgICAgcnVsZXMucHVzaCgncGFkZGluZy10b3A6ICcgKyBzaGFwZUJvdW5kcy55
ICsgdW5pdHMsICdwYWRkaW5nLWJvdHRvbTogJyArIChib3VuZHMuaGVpZ2h0IC0gc2hhcGVCb3Vu
ZHMuaGVpZ2h0IC0gc2hhcGVCb3VuZHMueSkgKyB1bml0cyk7CiAgICAgcnVsZXMucHVzaCgncG9z
aXRpb246IHJlbGF0aXZlJyk7CisgICAgcnVsZXMucHVzaCgnb3ZlcmZsb3ctd3JhcDogYnJlYWst
d29yZCcpOwogICAgIHN0eWxlc2hlZXQuaW5zZXJ0UnVsZSgnIycgKyBlbGVtZW50SWQgKyAneycg
KyBydWxlcy5qb2luKCc7JykgKyAnfScpOwogCiAgICAgcnVsZXMgPSBbXTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVt
cHR5LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1lbXB0eS1leHBlY3RlZC5odG1sCmluZGV4IDA2NTBmMWY1YTU2Mzll
MWViN2M0OWNiMWIwZjUzNTkzOWU2YjZlM2YuLjIyMzA2Y2MwMGUyZDQyYjRkZmQ5MzY3MjI0ZjVl
MTViMzQyNjg3NDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFw
ZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVtcHR5LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZW1wdHktZXhwZWN0
ZWQuaHRtbApAQCAtMTAsMzMgKzEwLDM0IEBACiAgICAgICAgIHdpZHRoOiA4MDBweDsKICAgICAg
ICAgaGVpZ2h0OiAyZW07CiAgICAgICAgIGJvcmRlcjogc29saWQgZ3JlZW47CisgICAgICAgIGJv
eC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgfQorICAgIC5wYWRkZWQgeworICAgICAgICBwYWRk
aW5nLXRvcDogMWVtOwogICAgIH0KIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KLSAgICA8cCBj
bGFzcz0ic2hhcGUtaW5zaWRlIj4KLSAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0
cmFpbmVkIGJ5IHRoZSByZWN0YW5nbGUoMHB4LCAwcHgsIDBweCwgMTAwcHgpIHNoYXBlLWluc2lk
ZSBDU1MgcHJvcGVydHkuCisgICAgPHAgY2xhc3M9InNoYXBlLWluc2lkZSBwYWRkZWQiPgorICAg
ICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIHNoaWZ0ZWQgZG93biAxZW0gYnkgdGhlIHJlY3Rhbmds
ZSgwcHgsIDBweCwgMHB4LCAxZW0pIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCiAgICAgPC9w
PgogICAgIDxwIGNsYXNzPSJzaGFwZS1pbnNpZGUiPgotICAgICAgICBUaGlzIHRleHQgc2hvdWxk
IGJlIHVuY29uc3RyYWluZWQgYnkgdGhlIHJlY3RhbmdsZSgwcHgsIDBweCwgMTAwcHgsIDBweCkg
c2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1
bmNvbnN0cmFpbmVkIGJ5IHRoZSByZWN0YW5nbGUoMHB4LCAwcHgsIDFlbSwgMHB4KSBzaGFwZS1p
bnNpZGUgQ1NTIHByb3BlcnR5LgogICAgIDwvcD4KICAgICA8cCBjbGFzcz0ic2hhcGUtaW5zaWRl
Ij4KICAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSBjaXJj
bGUoMHB4LCAwcHgsIDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KICAgICA8L3A+Ci0g
ICAgPHAgY2xhc3M9InNoYXBlLWluc2lkZSI+Ci0gICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUg
dW5jb25zdHJhaW5lZCBieSB0aGUgZWxsaXBzZVgwKDBweCwgMHB4LCAwcHgsIDEwMHB4KSBzaGFw
ZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgotICAgIDwvcD4KLSAgICA8cCBjbGFzcz0ic2hhcGUtaW5z
aWRlIj4KLSAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSBl
bGxpcHNlKDBweCwgMHB4LCAxMDBweCwgMHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5Lgor
ICAgIDxwIGNsYXNzPSJzaGFwZS1pbnNpZGUgcGFkZGVkIj4KKyAgICAgICAgVGhpcyB0ZXh0IHNo
b3VsZCBiZSBzaGlmdGVkIGRvd24gMWVtIGJ5IHRoZSBlbGxpcHNlWDAoMHB4LCAwcHgsIDBweCwg
MWVtKSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgogICAgIDwvcD4KICAgICA8cCBjbGFzcz0i
c2hhcGUtaW5zaWRlIj4KLSAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVk
IGJ5IHRoZSBwb2x5Z29uKCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KKyAgICAgICAgVGhp
cyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSBlbGxpcHNlKDBweCwgMHB4LCAx
ZW0sIDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KICAgICA8L3A+CiAgICAgPHAgY2xh
c3M9InNoYXBlLWluc2lkZSI+CiAgICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJh
aW5lZCBieSB0aGUgcG9seWdvbigwcHggMHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5Lgog
ICAgIDwvcD4KICAgICA8cCBjbGFzcz0ic2hhcGUtaW5zaWRlIj4KLSAgICAgICAgVGhpcyB0ZXh0
IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSBwb2x5Z29uKDBweCAwcHgsIDEwcHggMHB4
KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgorICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJl
IHVuY29uc3RyYWluZWQgYnkgdGhlIHBvbHlnb24oMHB4IDBweCwgMWVtIDBweCkgc2hhcGUtaW5z
aWRlIENTUyBwcm9wZXJ0eS4KICAgICA8L3A+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1l
bXB0eS1zZWdtZW50cy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZW1wdHktc2VnbWVudHMtZXhwZWN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45N2ExMGZjNWFkYTJmYTM0Y2QzMGUzYTc3M2ZiZDI5N2MwNzk5Nzg2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9z
aGFwZS1pbnNpZGUtZW1wdHktc2VnbWVudHMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDM0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0nLi4vcmVzb3Vy
Y2VzL211bHRpLXNlZ21lbnQtcG9seWdvbi5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIHdp
bmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgc2ltdWxhdGVXaXRoVGV4dCgxMDAs
IDEwMCwgNTAsIFsnIHgnLCAneHgnXSwgJ2ZpcnN0Jyk7CisgICAgICAgIHNpbXVsYXRlV2l0aFRl
eHQoMTAwLCAxMDAsIDUwLCBbJ3gnLCAneHgnXSwgJ2xhc3QnKTsKKyAgICAgICAgc2ltdWxhdGVX
aXRoVGV4dCgyMDAsIDEwMCwgNTAsIFsneCAgeCcsICd4eHh4J10sICdtaWRkbGUnKTsKKyAgICAg
ICAgc2ltdWxhdGVXaXRoVGV4dCgxMDAsIDEwMCwgNTAsIFsnIHgnLCAneHgnXSwgJ2ZpcnN0LW91
dHNpZGUnKTsKKyAgICAgICAgc2ltdWxhdGVXaXRoVGV4dCgxMDAsIDEwMCwgNTAsIFsneCcsICd4
eCddLCAnbGFzdC1vdXRzaWRlJyk7CisgICAgICAgIHNpbXVsYXRlV2l0aFRleHQoMTAwLCAxMDAs
IDUwLCBbJyB4JywgJ3h4J10sICdmaXJzdC1pbnRlcnNlY3QnKTsKKyAgICAgICAgc2ltdWxhdGVX
aXRoVGV4dCgxMDAsIDEwMCwgNTAsIFsneCcsICd4eCddLCAnbGFzdC1pbnRlcnNlY3QnKTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxwPlRoZXNlIHRlc3RzIGNvdmVy
IG11bHRpc2VnbWVudCBwb2x5Z29ucyB3aGVyZSBzb21lIHNlZ21lbnRzIHNob3VsZCBub3QgaGF2
ZSBjb250ZW50LCBlaXRoZXIgYmVjYXVzZSB0aGV5IGFyZSB0b28gc21hbGwsIG9yIGJlY2F1c2Ug
dGhleSBhcmUgb3V0c2lkZSB0aGUgY29udGVudCBib3guIEl0IHJlcXVpcmVzIHRoZSBBaGVtIGZv
bnQuPC9wPgorICAgIDxwPkFuIGVtcHR5IGluaXRpYWwgc2VnbWVudCBvbiB0aGUgZmlyc3QgbGlu
ZSBbMngyIGdyaWRdPC9wPgorICAgIDxkaXYgaWQ9J2ZpcnN0Jz48L2Rpdj4KKyAgICA8cD5BbiBl
bXB0eSBmaW5hbCBzZWdtZW50IG9uIHRoZSBmaXJzdCBsaW5lIFsyeDIgZ3JpZF08L3A+CisgICAg
PGRpdiBpZD0nbGFzdCc+PC9kaXY+CisgICAgPHA+QW4gZW1wdHkgbWlkZGxlIHNlZ21lbnQgb24g
dGhlIGZpcnN0IGxpbmUgWzR4Ml0gZ3JpZDwvcD4KKyAgICA8ZGl2IGlkPSdtaWRkbGUnPjwvZGl2
PgorICAgIDxwPlRoZSBpbml0aWFsIHNlZ21lbnQgaXMgb3V0c2lkZSB0aGUgY29udGVudCBib3gg
WzJ4Ml0gZ3JpZDwvcD4KKyAgICA8ZGl2IGlkPSdmaXJzdC1vdXRzaWRlJz48L2Rpdj4KKyAgICA8
cD5UaGUgZmluYWwgc2VnbWVudCBpcyBvdXRzaWRlIHRoZSBjb250ZW50IGJveCBbMngyXSBncmlk
PC9wPgorICAgIDxkaXYgaWQ9J2xhc3Qtb3V0c2lkZSc+PC9kaXY+CisgICAgPHA+VGhlIGZpcnN0
IHNlZ21lbnQgaW50ZXJzZWN0cyB0aGUgY29udGVudCBib3gsIGFuZCBpcyB0b28gc21hbGwgWzJ4
Ml0gZ3JpZDwvcD4KKyAgICA8ZGl2IGlkPSdmaXJzdC1pbnRlcnNlY3QnPjwvZGl2PgorICAgIDxw
PlRoZSBsYXN0IHNlZ21lbnQgaW50ZXJzZWN0cyB0aGUgY29udGVudCBib3gsIGFuZCBpcyB0b28g
c21hbGwgWzJ4Ml0gZ3JpZDwvcD4KKyAgICA8ZGl2IGlkPSdsYXN0LWludGVyc2VjdCc+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUt
ZW1wdHktc2VnbWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1p
bnNpZGUvc2hhcGUtaW5zaWRlLWVtcHR5LXNlZ21lbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc2ZjY1
YWFmM2JmMmM1NDYyMzA4ZGQ3Nzg0YTc0ZTBhNDQ2MmIyMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVtcHR5
LXNlZ21lbnRzLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy9tdWx0aS1zZWdtZW50LXBvbHlnb24u
anMnPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7
CisgICAgICAgIGdlbmVyYXRlUG9seWdvbigxMDAsIDEwMCwgNTAsIFswLCAwLCAyNSwgMCwgMjUs
IDUwLCA1MCwgNTAsIDUwLCAwLCAxMDAsIDAsIDEwMCwgMTAwLCAwLCAxMDBdLCAneHh4JywgJ2Zp
cnN0Jyk7CisgICAgICAgIGdlbmVyYXRlUG9seWdvbigxMDAsIDEwMCwgNTAsIFswLCAwLCA1MCwg
MCwgNTAsIDUwLCA3NSwgNTAsIDc1LCAwLCAxMDAsIDAsIDEwMCwgMTAwLCAwLCAxMDBdLCAneHh4
JywgJ2xhc3QnKTsKKyAgICAgICAgZ2VuZXJhdGVQb2x5Z29uKDIwMCwgMTAwLCA1MCwgWzAsIDAs
IDUwLCAwLCA1MCwgNTAsIDc1LCA1MCwgNzUsIDAsIDEwMCwgMCwgMTAwLCA1MCwgMTUwLCA1MCwg
MTUwLCAwLCAyMDAsIDAsIDIwMCwgMTAwLCAwLCAxMDBdLCAneHh4eHh4JywgJ21pZGRsZScpOwor
ICAgICAgICBnZW5lcmF0ZVBvbHlnb24oMTAwLCAxMDAsIDUwLCBbLTUwLCAwLCAwLCAwLCAwLCA1
MCwgNTAsIDUwLCA1MCwgMCwgMTAwLCAwLCAxMDAsIDEwMCwgLTUwLCAxMDBdLCAneHh4JywgJ2Zp
cnN0LW91dHNpZGUnKTsKKyAgICAgICAgZ2VuZXJhdGVQb2x5Z29uKDEwMCwgMTAwLCA1MCwgWzAs
IDAsIDUwLCAwLCA1MCwgNTAsIDEwMCwgNTAsIDEwMCwgMCwgMTUwLCAwLCAxNTAsIDEwMCwgMCwg
MTAwXSwgJ3h4eCcsICdsYXN0LW91dHNpZGUnKTsKKyAgICAgICAgZ2VuZXJhdGVQb2x5Z29uKDEw
MCwgMTAwLCA1MCwgWy01MCwgLTUwLCAyNSwgLTUwLCAyNSwgNTAsIDUwLCA1MCwgNTAsIDAsIDEw
MCwgMCwgMTAwLCAxMDAsIDAsIDEwMF0sICd4eHgnLCAnZmlyc3QtaW50ZXJzZWN0Jyk7CisgICAg
ICAgIGdlbmVyYXRlUG9seWdvbigxMDAsIDEwMCwgNTAsIFswLCAwLCA1MCwgMCwgNTAsIDUwLCA3
NSwgNTAsIDc1LCAtNTAsIDE1MCwgLTUwLCAxNTAsIDEwMCwgMCwgMTAwXSwgJ3h4eCcsICdsYXN0
LWludGVyc2VjdCcpOworICAgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHA+
VGhlc2UgdGVzdHMgY292ZXIgbXVsdGlzZWdtZW50IHBvbHlnb25zIHdoZXJlIHNvbWUgc2VnbWVu
dHMgc2hvdWxkIG5vdCBoYXZlIGNvbnRlbnQsIGVpdGhlciBiZWNhdXNlIHRoZXkgYXJlIHRvbyBz
bWFsbCwgb3IgYmVjYXVzZSB0aGV5IGFyZSBvdXRzaWRlIHRoZSBjb250ZW50IGJveC4gSXQgcmVx
dWlyZXMgdGhlIEFoZW0gZm9udC48L3A+CisgICAgPHA+QW4gZW1wdHkgaW5pdGlhbCBzZWdtZW50
IG9uIHRoZSBmaXJzdCBsaW5lIFsyeDIgZ3JpZF08L3A+CisgICAgPGRpdiBpZD0nZmlyc3QnPjwv
ZGl2PgorICAgIDxwPkFuIGVtcHR5IGZpbmFsIHNlZ21lbnQgb24gdGhlIGZpcnN0IGxpbmUgWzJ4
MiBncmlkXTwvcD4KKyAgICA8ZGl2IGlkPSdsYXN0Jz48L2Rpdj4KKyAgICA8cD5BbiBlbXB0eSBt
aWRkbGUgc2VnbWVudCBvbiB0aGUgZmlyc3QgbGluZSBbNHgyXSBncmlkPC9wPgorICAgIDxkaXYg
aWQ9J21pZGRsZSc+PC9kaXY+CisgICAgPHA+VGhlIGluaXRpYWwgc2VnbWVudCBpcyBvdXRzaWRl
IHRoZSBjb250ZW50IGJveCBbMngyXSBncmlkPC9wPgorICAgIDxkaXYgaWQ9J2ZpcnN0LW91dHNp
ZGUnPjwvZGl2PgorICAgIDxwPlRoZSBmaW5hbCBzZWdtZW50IGlzIG91dHNpZGUgdGhlIGNvbnRl
bnQgYm94IFsyeDJdIGdyaWQ8L3A+CisgICAgPGRpdiBpZD0nbGFzdC1vdXRzaWRlJz48L2Rpdj4K
KyAgICA8cD5UaGUgZmlyc3Qgc2VnbWVudCBpbnRlcnNlY3RzIHRoZSBjb250ZW50IGJveCwgYW5k
IGlzIHRvbyBzbWFsbCBbMngyXSBncmlkPC9wPgorICAgIDxkaXYgaWQ9J2ZpcnN0LWludGVyc2Vj
dCc+PC9kaXY+CisgICAgPHA+VGhlIGxhc3Qgc2VnbWVudCBpbnRlcnNlY3RzIHRoZSBjb250ZW50
IGJveCwgYW5kIGlzIHRvbyBzbWFsbCBbMngyXSBncmlkPC9wPgorICAgIDxkaXYgaWQ9J2xhc3Qt
aW50ZXJzZWN0Jz48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1lbXB0eS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZW1wdHkuaHRtbAppbmRleCAzYzk4MjNlNzc5ZmQw
NmY1YTIyYzkxMjg3OWIyODFhMzBiM2YyZjI0Li42YmNkZGY3ZDRlNWFkZmE2NmVmNzI4NzVmYzY2
YjkyMjFjNDQzZTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbXB0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVtcHR5Lmh0bWwKQEAgLTEwLDE0
ICsxMCwxNiBAQAogICAgICAgICB3aWR0aDogODAwcHg7CiAgICAgICAgIGhlaWdodDogMmVtOwog
ICAgICAgICBib3JkZXI6IHNvbGlkIGdyZWVuOworICAgICAgICBib3gtc2l6aW5nOiBib3JkZXIt
Ym94OwogICAgIH0KIAogICAgICNzaGFwZS1pbnNpZGUtcmVjdGFuZ2xlLXdpZHRoMCB7Ci0gICAg
ICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0YW5nbGUoMHB4LCAwcHgsIDBweCwgMTAwcHgp
OworICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcmVjdGFuZ2xlKDBweCwgMHB4LCAwcHgs
IDFlbSk7CisgICAgICAgIHBhZGRpbmctdG9wOiAxZW07CiAgICAgfQogCiAgICAgI3NoYXBlLWlu
c2lkZS1yZWN0YW5nbGUtaGVpZ2h0MCB7Ci0gICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiBy
ZWN0YW5nbGUoMHB4LCAwcHgsIDEwMHB4LCAwcHgpOworICAgICAgICAtd2Via2l0LXNoYXBlLWlu
c2lkZTogcmVjdGFuZ2xlKDBweCwgMHB4LCAxZW0sIDBweCk7CiAgICAgfQogCiAgICAgI3NoYXBl
LWluc2lkZS1jaXJjbGUtcmFkaXVzMCB7CkBAIC0yNSwxNSArMjcsMTIgQEAKICAgICB9CiAKICAg
ICAjc2hhcGUtaW5zaWRlLWVsbGlwc2UtcmFkaXVzWDAgewotICAgICAgICAtd2Via2l0LXNoYXBl
LWluc2lkZTogZWxsaXBzZSgwcHgsIDBweCwgMHB4LCAxMDBweCk7CisgICAgICAgIC13ZWJraXQt
c2hhcGUtaW5zaWRlOiBlbGxpcHNlKDBweCwgMHB4LCAwcHgsIDFlbSk7CisgICAgICAgIHBhZGRp
bmctdG9wOiAxZW07CiAgICAgfQogCiAgICAgI3NoYXBlLWluc2lkZS1lbGxpcHNlLXJhZGl1c1kw
IHsKLSAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6IGVsbGlwc2UoMHB4LCAwcHgsIDEwMHB4
LCAwcHgpOwotICAgIH0KLQotICAgICNzaGFwZS1pbnNpZGUtcG9seWdvbi0wdmVydGljZXMgewot
ICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcG9seWdvbigpOworICAgICAgICAtd2Via2l0
LXNoYXBlLWluc2lkZTogZWxsaXBzZSgwcHgsIDBweCwgMWVtLCAwcHgpOwogICAgIH0KIAogICAg
ICNzaGFwZS1pbnNpZGUtcG9seWdvbi0xdmVydGV4IHsKQEAgLTQxLDM0ICs0MCwzMSBAQAogICAg
IH0KIAogICAgICNzaGFwZS1pbnNpZGUtcG9seWdvbi0ydmVydGljZXMgewotICAgICAgICAtd2Vi
a2l0LXNoYXBlLWluc2lkZTogcG9seWdvbigwcHggMHB4LCAxMHB4IDBweCk7CisgICAgICAgIC13
ZWJraXQtc2hhcGUtaW5zaWRlOiBwb2x5Z29uKDBweCAwcHgsIDFlbSAwcHgpOwogICAgIH0KIDwv
c3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KICAgICA8cCBjbGFzcz0ic2hhcGUtaW5zaWRlIiBpZD0i
c2hhcGUtaW5zaWRlLXJlY3RhbmdsZS13aWR0aDAiPgotICAgICAgICBUaGlzIHRleHQgc2hvdWxk
IGJlIHVuY29uc3RyYWluZWQgYnkgdGhlIHJlY3RhbmdsZSgwcHgsIDBweCwgMHB4LCAxMDBweCkg
c2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBz
aGlmdGVkIGRvd24gMWVtIGJ5IHRoZSByZWN0YW5nbGUoMHB4LCAwcHgsIDBweCwgMWVtKSBzaGFw
ZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgogICAgIDwvcD4KICAgICA8cCBjbGFzcz0ic2hhcGUtaW5z
aWRlIiBpZD0ic2hhcGUtaW5zaWRlLXJlY3RhbmdsZS1oZWlnaHQwIj4KLSAgICAgICAgVGhpcyB0
ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSByZWN0YW5nbGUoMHB4LCAwcHgsIDEw
MHB4LCAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCisgICAgICAgIFRoaXMgdGV4dCBz
aG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgcmVjdGFuZ2xlKDBweCwgMHB4LCAxZW0sIDBw
eCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KICAgICA8L3A+CiAgICAgPHAgY2xhc3M9InNo
YXBlLWluc2lkZSIgaWQ9InNoYXBlLWluc2lkZS1jaXJjbGUtcmFkaXVzMCI+CiAgICAgICAgIFRo
aXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgY2lyY2xlKDBweCwgMHB4LCAw
cHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCiAgICAgPC9wPgogICAgIDxwIGNsYXNzPSJz
aGFwZS1pbnNpZGUiIGlkPSJzaGFwZS1pbnNpZGUtZWxsaXBzZS1yYWRpdXNYMCI+Ci0gICAgICAg
IFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgZWxsaXBzZVgwKDBweCwg
MHB4LCAwcHgsIDEwMHB4KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgorICAgICAgICBUaGlz
IHRleHQgc2hvdWxkIGJlIHNoaWZ0ZWQgZG93biAxZW0gYnkgdGhlIGVsbGlwc2VYMCgwcHgsIDBw
eCwgMHB4LCAxZW0pIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCiAgICAgPC9wPgogICAgIDxw
IGNsYXNzPSJzaGFwZS1pbnNpZGUiIGlkPSJzaGFwZS1pbnNpZGUtZWxsaXBzZS1yYWRpdXNZMCI+
Ci0gICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgZWxsaXBz
ZSgwcHgsIDBweCwgMTAwcHgsIDBweCkgc2hhcGUtaW5zaWRlIENTUyBwcm9wZXJ0eS4KLSAgICA8
L3A+Ci0gICAgPHAgY2xhc3M9InNoYXBlLWluc2lkZSIgaWQ9InNoYXBlLWluc2lkZS1wb2x5Z29u
LTB2ZXJ0aWNlcyI+Ci0gICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBi
eSB0aGUgcG9seWdvbigpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCisgICAgICAgIFRoaXMg
dGV4dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgZWxsaXBzZSgwcHgsIDBweCwgMWVt
LCAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCiAgICAgPC9wPgogICAgIDxwIGNsYXNz
PSJzaGFwZS1pbnNpZGUiIGlkPSJzaGFwZS1pbnNpZGUtcG9seWdvbi0xdmVydGV4Ij4KICAgICAg
ICAgVGhpcyB0ZXh0IHNob3VsZCBiZSB1bmNvbnN0cmFpbmVkIGJ5IHRoZSBwb2x5Z29uKDBweCAw
cHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCiAgICAgPC9wPgogICAgIDxwIGNsYXNzPSJz
aGFwZS1pbnNpZGUiIGlkPSJzaGFwZS1pbnNpZGUtcG9seWdvbi0ydmVydGljZXMiPgotICAgICAg
ICBUaGlzIHRleHQgc2hvdWxkIGJlIHVuY29uc3RyYWluZWQgYnkgdGhlIHBvbHlnb24oMHB4IDBw
eCwgMTBweCAwcHgpIHNoYXBlLWluc2lkZSBDU1MgcHJvcGVydHkuCisgICAgICAgIFRoaXMgdGV4
dCBzaG91bGQgYmUgdW5jb25zdHJhaW5lZCBieSB0aGUgcG9seWdvbigwcHggMHB4LCAxZW0gMHB4
KSBzaGFwZS1pbnNpZGUgQ1NTIHByb3BlcnR5LgogICAgIDwvcD4KIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>