<?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>164580</bug_id>
          
          <creation_ts>2016-11-09 21:06:07 -0800</creation_ts>
          <short_desc>CSS 3D transform by matrix3d with translations doesn&apos;t take page zoom into account</short_desc>
          <delta_ts>2022-10-11 19:15:48 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=245606</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Franklin Ta">fta2012</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1249673</commentid>
    <comment_count>0</comment_count>
    <who name="Franklin Ta">fta2012</who>
    <bug_when>2016-11-09 21:06:07 -0800</bug_when>
    <thetext>Chromium bug: https://bugs.chromium.org/p/chromium/issues/detail?id=242685.

Fixed in https://codereview.chromium.org/2482753002

Analogous change is in https://github.com/WebKit/webkit/blob/48bf6ce187a5b7a28b8ab4e3f3e45866487b5b17/Source/WebCore/css/TransformFunctions.cpp#L292 where it should be:

            TransformationMatrix matrix(downcast&lt;CSSPrimitiveValue&gt;(*transformValue.itemWithoutBoundsCheck(0)).doubleValue(),
                downcast&lt;CSSPrimitiveValue&gt;(*transformValue.itemWithoutBoundsCheck(1)).doubleValue(),
                downcast&lt;CSSPrimitiveValue&gt;(*transformValue.itemWithoutBoundsCheck(2)).doubleValue(),
                downcast&lt;CSSPrimitiveValue&gt;(*transformValue.itemWithoutBoundsCheck(3)).doubleValue() / conversionData.zoom(),
                downcast&lt;CSSPrimitiveValue&gt;(*transformValue.itemWithoutBoundsCheck(4)).doubleValue(),
                downcast&lt;CSSPrimitiveValue&gt;(*transformValue.itemWithoutBoundsCheck(5)).doubleValue(),
                downcast&lt;CSSPrimitiveValue&gt;(*transformValue.itemWithoutBoundsCheck(6)).doubleValue(),
                downcast&lt;CSSPrimitiveValue&gt;(*transformValue.itemWithoutBoundsCheck(7)).doubleValue() / conversionData.zoom(),
                downcast&lt;CSSPrimitiveValue&gt;(*transformValue.itemWithoutBoundsCheck(8)).doubleValue(),
                downcast&lt;CSSPrimitiveValue&gt;(*transformValue.itemWithoutBoundsCheck(9)).doubleValue(),
                downcast&lt;CSSPrimitiveValue&gt;(*transformValue.itemWithoutBoundsCheck(10)).doubleValue(),
                downcast&lt;CSSPrimitiveValue&gt;(*transformValue.itemWithoutBoundsCheck(11)).doubleValue() / conversionData.zoom(),
                conversionData.zoom() * downcast&lt;CSSPrimitiveValue&gt;(*transformValue.itemWithoutBoundsCheck(12)).doubleValue(),
                conversionData.zoom() * downcast&lt;CSSPrimitiveValue&gt;(*transformValue.itemWithoutBoundsCheck(13)).doubleValue(),
                conversionData.zoom() * downcast&lt;CSSPrimitiveValue&gt;(*transformValue.itemWithoutBoundsCheck(14)).doubleValue(),
                downcast&lt;CSSPrimitiveValue&gt;(*transformValue.itemWithoutBoundsCheck(15)).doubleValue());

Or have that logic encapsulated in a zoom method on TransformationMatrix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250599</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-11-11 21:24:07 -0800</bug_when>
    <thetext>&lt;rdar://problem/29232128&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1903978</commentid>
    <comment_count>2</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-10-06 21:49:42 -0700</bug_when>
    <thetext>*** Bug 246198 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904132</commentid>
    <comment_count>3</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-10-07 12:59:35 -0700</bug_when>
    <thetext>Thank you very much, Franklin! I&apos;m going to cherry-pick your chromium patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904138</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-10-07 13:21:47 -0700</bug_when>
    <thetext>How does this relate to bug 245606 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904149</commentid>
    <comment_count>5</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-10-07 14:04:31 -0700</bug_when>
    <thetext>Oh, I didn&apos;t know that. It&apos;s an incomplete fix. See comment#0. 3rd, 7th, 11th elements needs divisions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904694</commentid>
    <comment_count>6</comment_count>
      <attachid>462919</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-10-10 19:24:23 -0700</bug_when>
    <thetext>Created attachment 462919
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904697</commentid>
    <comment_count>7</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-10-10 19:30:55 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/5220</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904969</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-10-11 19:15:45 -0700</bug_when>
    <thetext>Committed 255416@main (fee4b197a6bb): &lt;https://commits.webkit.org/255416@main&gt;

Reviewed commits have been landed. Closing PR #5220 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462919</attachid>
            <date>2022-10-10 19:24:23 -0700</date>
            <delta_ts>2022-10-10 19:27:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164580-20221011112421.patch</filename>
            <type>text/plain</type>
            <size>30751</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">RnJvbSA5ZDk5OGYyODVkNjlkZjI0NTkxNWQ4NzdlYmEwOTFiMmNhNGYwMWQ4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBIaXJvbm9yaSA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CkRhdGU6IFR1ZSwgMTEgT2N0IDIwMjIgMTA6NTk6MTEgKzA5MDAKU3ViamVjdDogW1BBVENI
XSBDU1MgM0QgdHJhbnNmb3JtIGJ5IG1hdHJpeDNkIHdpdGggdHJhbnNsYXRpb25zIGRvZXNuJ3Qg
dGFrZQogcGFnZSB6b29tIGludG8gYWNjb3VudCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NTgwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9w
bGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCm1hdHJpeDNkKCkgaGFkIGEgcHJvYmxlbSBpZiBtYXRy
aXgzZCgpIGluY2x1ZGVzIHRyYW5zbGF0aW9ucyBhbmQgcGFnZQp6b29tIGlzIGFwcGxpZWQuIFRo
ZSB0cmFuc2xhdGlvbiBjb21wb25lbnQgc2hvdWxkIGJlIHRyZWF0ZWQgaW4gdGhlCmluaXRpYWwg
cGFnZSB6b29tLgpzY2FsZTNkKHpvb20sIHpvb20sIHpvb20pIMOXIG1hdHJpeCDDlyBzY2FsZTNk
KDEgLyB6b29tLCAxIC8gem9vbSwgMSAvIHpvb20pCgpDaHJyeS1waWNrZWQgQ2hyb21pdW0gY2hh
bmdlLgo8aHR0cHM6Ly9jb2RlcmV2aWV3LmNocm9taXVtLm9yZy8yNDgyNzUzMDAyPgoKKiBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdpdGgtem9v
bS1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9j
b21wdXRlZC1zdHlsZS13aXRoLXpvb20uaHRtbDoKCiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxp
bmsvYW5pbWF0aW9ucy9yZXNwb25zaXZlL3Jlc291cmNlcy96b29tLXJlc3BvbnNpdmUuY3NzOgoq
IExheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1hdGlvbnMvcmVzcG9uc2l2ZS9yZXNvdXJj
ZXMvem9vbS1yZXNwb25zaXZlLmpzOgoqIExheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1h
dGlvbnMvcmVzcG9uc2l2ZS96b29tLXJlc3BvbnNpdmUtdHJhbnNmb3JtLWFuaW1hdGlvbi0wMDEt
ZXhwZWN0ZWQuaHRtbDoKKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9hbmltYXRpb25zL3Jl
c3BvbnNpdmUvem9vbS1yZXNwb25zaXZlLXRyYW5zZm9ybS1hbmltYXRpb24tMDAxLmh0bWw6Ciog
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvYW5pbWF0aW9ucy9yZXNwb25zaXZlL3pvb20tcmVz
cG9uc2l2ZS10cmFuc2Zvcm0tYW5pbWF0aW9uLTAwMi1leHBlY3RlZC5odG1sOgoqIExheW91dFRl
c3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1hdGlvbnMvcmVzcG9uc2l2ZS96b29tLXJlc3BvbnNpdmUt
dHJhbnNmb3JtLWFuaW1hdGlvbi0wMDIuaHRtbDoKKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGlu
ay9hbmltYXRpb25zL3Jlc3BvbnNpdmUvem9vbS1yZXNwb25zaXZlLXRyYW5zZm9ybS1hbmltYXRp
b24tMDAzLWV4cGVjdGVkLmh0bWw6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvYW5pbWF0
aW9ucy9yZXNwb25zaXZlL3pvb20tcmVzcG9uc2l2ZS10cmFuc2Zvcm0tYW5pbWF0aW9uLTAwMy5o
dG1sOgoqIExheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1hdGlvbnMvcmVzcG9uc2l2ZS96
b29tLXJlc3BvbnNpdmUtdHJhbnNsYXRlLWFuaW1hdGlvbi1leHBlY3RlZC5odG1sOgoqIExheW91
dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1hdGlvbnMvcmVzcG9uc2l2ZS96b29tLXJlc3BvbnNp
dmUtdHJhbnNsYXRlLWFuaW1hdGlvbi5odG1sOgpJbXBvcnRlZCBmcm9tIENocm9taXVtLiBSZXBs
YWNlZCB0ZXN0UnVubmVyLnNldFBhZ2Vab29tRmFjdG9yIHdpdGggZXZlbnRTZW5kZXIuem9vbVBh
Z2VJbi4KCiogTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9nZW5lcmFsL2Nzc21hdHJpeC0zZC16
b29tLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgoqIExheW91dFRlc3RzL3RyYW5zZm9ybXMvM2QvZ2Vu
ZXJhbC9jc3NtYXRyaXgtM2Qtem9vbS1leHBlY3RlZC5wbmc6IFJlbW92ZWQuCiogTGF5b3V0VGVz
dHMvdHJhbnNmb3Jtcy8zZC9nZW5lcmFsL2Nzc21hdHJpeC0zZC16b29tLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKiBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzNkL2dlbmVyYWwvY3NzbWF0cml4LTNk
LXpvb20uaHRtbDogQ29udmVydGVkCmEgcmVmLXRlc3QuCgoqIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
b21wdXRlZFN0eWxlRXh0cmFjdG9yLmNwcDoKKFdlYkNvcmU6Om1hdHJpeFRyYW5zZm9ybVZhbHVl
KToKKFdlYkNvcmU6Onpvb21BZGp1c3RlZE51bWJlclZhbHVlKTogRGVsZXRlZC4KKiBTb3VyY2Uv
V2ViQ29yZS9jc3MvVHJhbnNmb3JtRnVuY3Rpb25zLmNwcDoKKFdlYkNvcmU6OnRyYW5zZm9ybXNG
b3JWYWx1ZSk6CiogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9U
cmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHA6CihXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6
em9vbSk6CiogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFu
c2Zvcm1hdGlvbk1hdHJpeC5oOgotLS0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9Db21wdXRlZFN0eWxl
RXh0cmFjdG9yLmNwcCB8ICAxOCArKy0tCiBTb3VyY2UvV2ViQ29yZS9jc3MvVHJhbnNmb3JtRnVu
Y3Rpb25zLmNwcCAgICAgfCAgIDcgKy0KIC4uLi90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0
cml4LmNwcCAgICAgICB8ICAxMSArKysKIC4uLi90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0
cml4LmggICAgICAgICB8ICAxMCArKysKIC4uLi9jb21wdXRlZC1zdHlsZS13aXRoLXpvb20tZXhw
ZWN0ZWQudHh0ICAgICB8ICAgMSArCiAuLi4vY29tcHV0ZWQtc3R5bGUtd2l0aC16b29tLmh0bWwg
ICAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9yZXNwb25zaXZlL3Jlc291cmNlcy96b29tLXJlc3Bv
bnNpdmUuY3NzICB8ICAxMiArKysKIC4uLi9yZXNwb25zaXZlL3Jlc291cmNlcy96b29tLXJlc3Bv
bnNpdmUuanMgICB8ICA3NyArKysrKysrKysrKysrKysrKysKIC4uLnNpdmUtdHJhbnNmb3JtLWFu
aW1hdGlvbi0wMDEtZXhwZWN0ZWQuaHRtbCB8ICAxMiArKysKIC4uLm9tLXJlc3BvbnNpdmUtdHJh
bnNmb3JtLWFuaW1hdGlvbi0wMDEuaHRtbCB8ICAxMiArKysKIC4uLnNpdmUtdHJhbnNmb3JtLWFu
aW1hdGlvbi0wMDItZXhwZWN0ZWQuaHRtbCB8ICAxNiArKysrCiAuLi5vbS1yZXNwb25zaXZlLXRy
YW5zZm9ybS1hbmltYXRpb24tMDAyLmh0bWwgfCAgMTYgKysrKwogLi4uc2l2ZS10cmFuc2Zvcm0t
YW5pbWF0aW9uLTAwMy1leHBlY3RlZC5odG1sIHwgIDE2ICsrKysKIC4uLm9tLXJlc3BvbnNpdmUt
dHJhbnNmb3JtLWFuaW1hdGlvbi0wMDMuaHRtbCB8ICAxNiArKysrCiAuLi5zcG9uc2l2ZS10cmFu
c2xhdGUtYW5pbWF0aW9uLWV4cGVjdGVkLmh0bWwgfCAgNTYgKysrKysrKysrKysrKwogLi4uL3pv
b20tcmVzcG9uc2l2ZS10cmFuc2xhdGUtYW5pbWF0aW9uLmh0bWwgIHwgIDU4ICsrKysrKysrKysr
KysKIC4uLi9nZW5lcmFsL2Nzc21hdHJpeC0zZC16b29tLWV4cGVjdGVkLmh0bWwgICB8ICAyNyAr
KysrKysKIC4uLi8zZC9nZW5lcmFsL2Nzc21hdHJpeC0zZC16b29tLWV4cGVjdGVkLnBuZyB8IEJp
biAxMTExNSAtPiAwIGJ5dGVzCiAuLi4vM2QvZ2VuZXJhbC9jc3NtYXRyaXgtM2Qtem9vbS1leHBl
Y3RlZC50eHQgfCAgIDkgLS0KIC4uLi8zZC9nZW5lcmFsL2Nzc21hdHJpeC0zZC16b29tLmh0bWwg
ICAgICAgICB8ICA0OSArKy0tLS0tLS0tLQogMjAgZmlsZXMgY2hhbmdlZCwgMzU4IGluc2VydGlv
bnMoKyksIDY3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2lt
cG9ydGVkL2JsaW5rL2FuaW1hdGlvbnMvcmVzcG9uc2l2ZS9yZXNvdXJjZXMvem9vbS1yZXNwb25z
aXZlLmNzcwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Fu
aW1hdGlvbnMvcmVzcG9uc2l2ZS9yZXNvdXJjZXMvem9vbS1yZXNwb25zaXZlLmpzCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvYW5pbWF0aW9ucy9yZXNwb25z
aXZlL3pvb20tcmVzcG9uc2l2ZS10cmFuc2Zvcm0tYW5pbWF0aW9uLTAwMS1leHBlY3RlZC5odG1s
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvYW5pbWF0aW9u
cy9yZXNwb25zaXZlL3pvb20tcmVzcG9uc2l2ZS10cmFuc2Zvcm0tYW5pbWF0aW9uLTAwMS5odG1s
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvYW5pbWF0aW9u
cy9yZXNwb25zaXZlL3pvb20tcmVzcG9uc2l2ZS10cmFuc2Zvcm0tYW5pbWF0aW9uLTAwMi1leHBl
Y3RlZC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsv
YW5pbWF0aW9ucy9yZXNwb25zaXZlL3pvb20tcmVzcG9uc2l2ZS10cmFuc2Zvcm0tYW5pbWF0aW9u
LTAwMi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsv
YW5pbWF0aW9ucy9yZXNwb25zaXZlL3pvb20tcmVzcG9uc2l2ZS10cmFuc2Zvcm0tYW5pbWF0aW9u
LTAwMy1leHBlY3RlZC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvYmxpbmsvYW5pbWF0aW9ucy9yZXNwb25zaXZlL3pvb20tcmVzcG9uc2l2ZS10cmFuc2Zvcm0t
YW5pbWF0aW9uLTAwMy5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvYmxpbmsvYW5pbWF0aW9ucy9yZXNwb25zaXZlL3pvb20tcmVzcG9uc2l2ZS10cmFuc2xhdGUt
YW5pbWF0aW9uLWV4cGVjdGVkLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9p
bXBvcnRlZC9ibGluay9hbmltYXRpb25zL3Jlc3BvbnNpdmUvem9vbS1yZXNwb25zaXZlLXRyYW5z
bGF0ZS1hbmltYXRpb24uaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3RyYW5z
Zm9ybXMvM2QvZ2VuZXJhbC9jc3NtYXRyaXgtM2Qtem9vbS1leHBlY3RlZC5odG1sCiBkZWxldGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9nZW5lcmFsL2Nzc21hdHJpeC0z
ZC16b29tLWV4cGVjdGVkLnBuZwogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3RyYW5z
Zm9ybXMvM2QvZ2VuZXJhbC9jc3NtYXRyaXgtM2Qtem9vbS1leHBlY3RlZC50eHQKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvci5jcHAKaW5kZXggNzY4M2QzNTM3
NTc3Li5lZTdlODBjNjRhNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db21wdXRl
ZFN0eWxlRXh0cmFjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29tcHV0ZWRTdHls
ZUV4dHJhY3Rvci5jcHAKQEAgLTM3MCwxMSArMzcwLDYgQEAgUmVmPENTU1ByaW1pdGl2ZVZhbHVl
PiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp6b29tQWRqdXN0ZWRQaXhlbFZhbHVlKGRvdWJsZSB2
YWwKICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZShhZGp1
c3RGbG9hdEZvckFic29sdXRlWm9vbSh2YWx1ZSwgc3R5bGUpLCBDU1NVbml0VHlwZTo6Q1NTX1BY
KTsKIH0KIAotc3RhdGljIGlubGluZSBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IHpvb21BZGp1c3Rl
ZE51bWJlclZhbHVlKGRvdWJsZSB2YWx1ZSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQotewot
ICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKHZhbHVlIC8g
c3R5bGUuZWZmZWN0aXZlWm9vbSgpLCBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUik7Ci19Ci0KIFJl
ZjxDU1NQcmltaXRpdmVWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6em9vbUFkanVzdGVk
UGl4ZWxWYWx1ZUZvckxlbmd0aChjb25zdCBMZW5ndGgmIGxlbmd0aCwgY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlKQogewogICAgIGlmIChsZW5ndGguaXNGaXhlZCgpKQpAQCAtNjgzLDkgKzY3OCwx
MCBAQCBzdGF0aWMgTGF5b3V0UmVjdCBzaXppbmdCb3goUmVuZGVyT2JqZWN0JiByZW5kZXJlcikK
ICAgICByZXR1cm4gYm94LnN0eWxlKCkuYm94U2l6aW5nKCkgPT0gQm94U2l6aW5nOjpCb3JkZXJC
b3ggPyBib3guYm9yZGVyQm94UmVjdCgpIDogYm94LmNvbXB1dGVkQ1NTQ29udGVudEJveFJlY3Qo
KTsKIH0KIAotc3RhdGljIFJlZjxDU1NGdW5jdGlvblZhbHVlPiBtYXRyaXhUcmFuc2Zvcm1WYWx1
ZShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUpCitzdGF0aWMgUmVmPENTU0Z1bmN0aW9uVmFsdWU+IG1hdHJpeFRyYW5zZm9ybVZh
bHVlKFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0
eWxlKQogewogICAgIFJlZlB0cjxDU1NGdW5jdGlvblZhbHVlPiB0cmFuc2Zvcm1WYWx1ZTsKKyAg
ICB0cmFuc2Zvcm0uem9vbSgxIC8gc3R5bGUuZWZmZWN0aXZlWm9vbSgpKTsKICAgICBhdXRvJiBj
c3NWYWx1ZVBvb2wgPSBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpOwogICAgIGlmICh0cmFuc2Zv
cm0uaXNBZmZpbmUoKSkgewogICAgICAgICB0cmFuc2Zvcm1WYWx1ZSA9IENTU0Z1bmN0aW9uVmFs
dWU6OmNyZWF0ZShDU1NWYWx1ZU1hdHJpeCk7CkBAIC02OTQsOCArNjkwLDggQEAgc3RhdGljIFJl
ZjxDU1NGdW5jdGlvblZhbHVlPiBtYXRyaXhUcmFuc2Zvcm1WYWx1ZShjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgdHIKICAgICAgICAgdHJhbnNmb3JtVmFsdWUtPmFwcGVuZChjc3NWYWx1ZVBv
b2wuY3JlYXRlVmFsdWUodHJhbnNmb3JtLmIoKSwgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIpKTsK
ICAgICAgICAgdHJhbnNmb3JtVmFsdWUtPmFwcGVuZChjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUo
dHJhbnNmb3JtLmMoKSwgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIpKTsKICAgICAgICAgdHJhbnNm
b3JtVmFsdWUtPmFwcGVuZChjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUodHJhbnNmb3JtLmQoKSwg
Q1NTVW5pdFR5cGU6OkNTU19OVU1CRVIpKTsKLSAgICAgICAgdHJhbnNmb3JtVmFsdWUtPmFwcGVu
ZCh6b29tQWRqdXN0ZWROdW1iZXJWYWx1ZSh0cmFuc2Zvcm0uZSgpLCBzdHlsZSkpOwotICAgICAg
ICB0cmFuc2Zvcm1WYWx1ZS0+YXBwZW5kKHpvb21BZGp1c3RlZE51bWJlclZhbHVlKHRyYW5zZm9y
bS5mKCksIHN0eWxlKSk7CisgICAgICAgIHRyYW5zZm9ybVZhbHVlLT5hcHBlbmQoY3NzVmFsdWVQ
b29sLmNyZWF0ZVZhbHVlKHRyYW5zZm9ybS5lKCksIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSKSk7
CisgICAgICAgIHRyYW5zZm9ybVZhbHVlLT5hcHBlbmQoY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVl
KHRyYW5zZm9ybS5mKCksIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSKSk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgdHJhbnNmb3JtVmFsdWUgPSBDU1NGdW5jdGlvblZhbHVlOjpjcmVhdGUoQ1NTVmFs
dWVNYXRyaXgzZCk7CiAKQEAgLTcxNCw5ICs3MTAsOSBAQCBzdGF0aWMgUmVmPENTU0Z1bmN0aW9u
VmFsdWU+IG1hdHJpeFRyYW5zZm9ybVZhbHVlKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0
cgogICAgICAgICB0cmFuc2Zvcm1WYWx1ZS0+YXBwZW5kKGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1
ZSh0cmFuc2Zvcm0ubTMzKCksIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSKSk7CiAgICAgICAgIHRy
YW5zZm9ybVZhbHVlLT5hcHBlbmQoY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHRyYW5zZm9ybS5t
MzQoKSwgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIpKTsKIAotICAgICAgICB0cmFuc2Zvcm1WYWx1
ZS0+YXBwZW5kKHpvb21BZGp1c3RlZE51bWJlclZhbHVlKHRyYW5zZm9ybS5tNDEoKSwgc3R5bGUp
KTsKLSAgICAgICAgdHJhbnNmb3JtVmFsdWUtPmFwcGVuZCh6b29tQWRqdXN0ZWROdW1iZXJWYWx1
ZSh0cmFuc2Zvcm0ubTQyKCksIHN0eWxlKSk7Ci0gICAgICAgIHRyYW5zZm9ybVZhbHVlLT5hcHBl
bmQoem9vbUFkanVzdGVkTnVtYmVyVmFsdWUodHJhbnNmb3JtLm00MygpLCBzdHlsZSkpOworICAg
ICAgICB0cmFuc2Zvcm1WYWx1ZS0+YXBwZW5kKGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZSh0cmFu
c2Zvcm0ubTQxKCksIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSKSk7CisgICAgICAgIHRyYW5zZm9y
bVZhbHVlLT5hcHBlbmQoY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHRyYW5zZm9ybS5tNDIoKSwg
Q1NTVW5pdFR5cGU6OkNTU19OVU1CRVIpKTsKKyAgICAgICAgdHJhbnNmb3JtVmFsdWUtPmFwcGVu
ZChjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUodHJhbnNmb3JtLm00MygpLCBDU1NVbml0VHlwZTo6
Q1NTX05VTUJFUikpOwogICAgICAgICB0cmFuc2Zvcm1WYWx1ZS0+YXBwZW5kKGNzc1ZhbHVlUG9v
bC5jcmVhdGVWYWx1ZSh0cmFuc2Zvcm0ubTQ0KCksIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSKSk7
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvVHJhbnNmb3JtRnVuY3Rp
b25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9UcmFuc2Zvcm1GdW5jdGlvbnMuY3BwCmluZGV4
IDcyMmZhZTY3M2JhOC4uZDcwMTc4YmYzZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvVHJhbnNmb3JtRnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvVHJhbnNm
b3JtRnVuY3Rpb25zLmNwcApAQCAtMzE1LDEwICszMTUsMTEgQEAgYm9vbCB0cmFuc2Zvcm1zRm9y
VmFsdWUoY29uc3QgQ1NTVmFsdWUmIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhJgogICAgICAgICAgICAgICAgIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdHJhbnNm
b3JtVmFsdWUuaXRlbVdpdGhvdXRCb3VuZHNDaGVjayg5KSkuZG91YmxlVmFsdWUoKSwKICAgICAg
ICAgICAgICAgICBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRyYW5zZm9ybVZhbHVlLml0
ZW1XaXRob3V0Qm91bmRzQ2hlY2soMTApKS5kb3VibGVWYWx1ZSgpLAogICAgICAgICAgICAgICAg
IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdHJhbnNmb3JtVmFsdWUuaXRlbVdpdGhvdXRC
b3VuZHNDaGVjaygxMSkpLmRvdWJsZVZhbHVlKCksCi0gICAgICAgICAgICAgICAgY29udmVyc2lv
bkRhdGEuem9vbSgpICogZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0cmFuc2Zvcm1WYWx1
ZS5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKDEyKSkuZG91YmxlVmFsdWUoKSwKLSAgICAgICAgICAg
ICAgICBjb252ZXJzaW9uRGF0YS56b29tKCkgKiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4o
KnRyYW5zZm9ybVZhbHVlLml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soMTMpKS5kb3VibGVWYWx1ZSgp
LAotICAgICAgICAgICAgICAgIGNvbnZlcnNpb25EYXRhLnpvb20oKSAqIGRvd25jYXN0PENTU1By
aW1pdGl2ZVZhbHVlPigqdHJhbnNmb3JtVmFsdWUuaXRlbVdpdGhvdXRCb3VuZHNDaGVjaygxNCkp
LmRvdWJsZVZhbHVlKCksCisgICAgICAgICAgICAgICAgZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWU+KCp0cmFuc2Zvcm1WYWx1ZS5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKDEyKSkuZG91YmxlVmFs
dWUoKSwKKyAgICAgICAgICAgICAgICBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRyYW5z
Zm9ybVZhbHVlLml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soMTMpKS5kb3VibGVWYWx1ZSgpLAorICAg
ICAgICAgICAgICAgIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdHJhbnNmb3JtVmFsdWUu
aXRlbVdpdGhvdXRCb3VuZHNDaGVjaygxNCkpLmRvdWJsZVZhbHVlKCksCiAgICAgICAgICAgICAg
ICAgZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0cmFuc2Zvcm1WYWx1ZS5pdGVtV2l0aG91
dEJvdW5kc0NoZWNrKDE1KSkuZG91YmxlVmFsdWUoKSk7CisgICAgICAgICAgICBtYXRyaXguem9v
bShjb252ZXJzaW9uRGF0YS56b29tKCkpOwogICAgICAgICAgICAgb3BlcmF0aW9ucy5hcHBlbmQo
TWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZShtYXRyaXgpKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3Bw
CmluZGV4IDI4MWM5NWRjYTZkZS4uNjI1ZGU2Zjc3NjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5z
Zm9ybWF0aW9uTWF0cml4LmNwcApAQCAtMTE1Nyw2ICsxMTU3LDE3IEBAIFRyYW5zZm9ybWF0aW9u
TWF0cml4IFRyYW5zZm9ybWF0aW9uTWF0cml4OjpyZWN0VG9SZWN0KGNvbnN0IEZsb2F0UmVjdCYg
ZnJvbSwgY29uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvLnkoKSAtIGZyb20u
eSgpKTsKIH0KIAorVHJhbnNmb3JtYXRpb25NYXRyaXgmIFRyYW5zZm9ybWF0aW9uTWF0cml4Ojp6
b29tKGRvdWJsZSB6b29tRmFjdG9yKQoreworICAgIG1fbWF0cml4WzBdWzNdIC89IHpvb21GYWN0
b3I7CisgICAgbV9tYXRyaXhbMV1bM10gLz0gem9vbUZhY3RvcjsKKyAgICBtX21hdHJpeFsyXVsz
XSAvPSB6b29tRmFjdG9yOworICAgIG1fbWF0cml4WzNdWzBdICo9IHpvb21GYWN0b3I7CisgICAg
bV9tYXRyaXhbM11bMV0gKj0gem9vbUZhY3RvcjsKKyAgICBtX21hdHJpeFszXVsyXSAqPSB6b29t
RmFjdG9yOworICAgIHJldHVybiAqdGhpczsKK30KKwogLy8gdGhpcyA9IG1hdCAqIHRoaXMuCiBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgVHJhbnNmb3JtYXRpb25NYXRyaXg6Om11bHRpcGx5KGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9u
TWF0cml4LmgKaW5kZXggODU1ZDJlNzJhMTVhLi41MTIxYWQ3ZDJhNmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25N
YXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKQEAgLTI4Myw2ICsyODMsMTYgQEAgcHVibGljOgogICAg
IC8vIFJldHVybnMgYSB0cmFuc2Zvcm1hdGlvbiB0aGF0IG1hcHMgYSByZWN0IHRvIGEgcmVjdC4K
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVHJhbnNmb3JtYXRpb25NYXRyaXggcmVjdFRvUmVj
dChjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmKTsKIAorICAgIC8vIENoYW5nZXMg
dGhlIHRyYW5zZm9ybSB0bzoKKyAgICAvLworICAgIC8vICAgICBzY2FsZTNkKHosIHosIHopICog
bWF0ICogc2NhbGUzZCgxL3osIDEveiwgMS96KQorICAgIC8vCisgICAgLy8gVXNlZnVsIGZvciBt
YXBwaW5nIHpvb21lZCBwb2ludHMgdG8gdGhlaXIgem9vbWVkIHRyYW5zZm9ybWVkIHJlc3VsdDoK
KyAgICAvLworICAgIC8vICAgICBuZXdfbWF0ICogKHNjYWxlM2QoeiwgeiwgeikgKiB4KSA9PSBz
Y2FsZTNkKHosIHosIHopICogKG1hdCAqIHgpCisgICAgLy8KKyAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgem9vbShkb3VibGUgem9vbUZhY3Rvcik7CisKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGlzSW52ZXJ0aWJsZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8
VHJhbnNmb3JtYXRpb25NYXRyaXg+IGludmVyc2UoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRoLXpv
b20tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9j
b21wdXRlZC1zdHlsZS13aXRoLXpvb20tZXhwZWN0ZWQudHh0CmluZGV4IDU5NmUyOGUyOWQxZS4u
MDMxNTA1OWE3Mzc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRl
ZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdpdGgtem9vbS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRoLXpvb20t
ZXhwZWN0ZWQudHh0CkBAIC0xMiw2ICsxMiw3IEBAIFBBU1MgLXdlYmtpdC1wZXJzcGVjdGl2ZS1v
cmlnaW4sIHZhbHVlOiAiMjBweCAyMHB4IgogUEFTUyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRo
LCB2YWx1ZTogIjIwcHgiCiBQQVNTIC13ZWJraXQtdHJhbnNmb3JtLCB2YWx1ZTogIm1hdHJpeCgx
LCAwLCAwLCAxLCAyMCwgMjApIgogUEFTUyAtd2Via2l0LXRyYW5zZm9ybSwgdmFsdWU6ICJtYXRy
aXgzZCgxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAwLCAyMCwgMjAsIDIwLCAxKSIK
K1BBU1MgLXdlYmtpdC10cmFuc2Zvcm0sIHZhbHVlOiAibWF0cml4M2QoMTYsIDE1LCAxNCwgMTMs
IDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEpIgogUEFTUyAtd2Via2l0LXRy
YW5zZm9ybS1vcmlnaW4sIHZhbHVlOiAiMjBweCAyMHB4IgogUEFTUyAtd2Via2l0LXRyYW5zZm9y
bS1vcmlnaW4sIHZhbHVlOiAiLTIwcHggLTIwcHgiCiBQQVNTIGJvcmRlci1ib3R0b20tbGVmdC1y
YWRpdXMsIHZhbHVlOiAiMjBweCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dl
dENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aC16b29tLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdpdGgtem9vbS5odG1s
CmluZGV4IGVmZDQ5ZjBlZDI2My4uZmE2NTc2MWFhZDMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdpdGgtem9vbS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5
bGUtd2l0aC16b29tLmh0bWwKQEAgLTUyLDcgKzUyLDcgQEAgdmFyIHRlc3REYXRhID0gWwogICAg
IFsnLXdlYmtpdC1jb2x1bW4tcnVsZS13aWR0aCcsICcyMHB4J10sCiAgICAgWyctd2Via2l0LXBl
cnNwZWN0aXZlLW9yaWdpbicsICcyMHB4IDIwcHgnXSwKICAgICBbJy13ZWJraXQtdGV4dC1zdHJv
a2Utd2lkdGgnXSwKLSAgICBbJy13ZWJraXQtdHJhbnNmb3JtJywgJ3RyYW5zbGF0ZSgyMHB4LCAy
MHB4KScsICd0cmFuc2xhdGUzZCgyMHB4LCAyMHB4LCAyMHB4KSddLAorICAgIFsnLXdlYmtpdC10
cmFuc2Zvcm0nLCAndHJhbnNsYXRlKDIwcHgsIDIwcHgpJywgJ3RyYW5zbGF0ZTNkKDIwcHgsIDIw
cHgsIDIwcHgpJywgJ21hdHJpeDNkKDE2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3
LCA2LCA1LCA0LCAzLCAyLCAxKSddLAogICAgIFsnLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luJywg
JzIwcHggMjBweCcsICctMjBweCAtMjBweCddLAogICAgIFsnYm9yZGVyLWJvdHRvbS1sZWZ0LXJh
ZGl1cyddLAogICAgIFsnYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMnXSwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1hdGlvbnMvcmVzcG9uc2l2ZS9yZXNvdXJj
ZXMvem9vbS1yZXNwb25zaXZlLmNzcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1h
dGlvbnMvcmVzcG9uc2l2ZS9yZXNvdXJjZXMvem9vbS1yZXNwb25zaXZlLmNzcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjYwMTYxNmU3ODdiMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1hdGlvbnMvcmVzcG9uc2l2ZS9y
ZXNvdXJjZXMvem9vbS1yZXNwb25zaXZlLmNzcwpAQCAtMCwwICsxLDEyIEBACisjY29udGFpbmVy
IHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDA7CisgIGZvbnQtc2l6ZTogMTBweDsK
K30KKy50YXJnZXQgeworICB3aWR0aDogNDBweDsKKyAgaGVpZ2h0OiA0MHB4OworICBib3JkZXIt
dG9wOiBzb2xpZDsKKyAgYm9yZGVyLWxlZnQ6IHNvbGlkOworICBtYXJnaW4tYm90dG9tOiAyMHB4
OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvYW5pbWF0aW9ucy9y
ZXNwb25zaXZlL3Jlc291cmNlcy96b29tLXJlc3BvbnNpdmUuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC9ibGluay9hbmltYXRpb25zL3Jlc3BvbnNpdmUvcmVzb3VyY2VzL3pvb20tcmVzcG9uc2l2
ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmVjNWZkOTdkZThj
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1hdGlv
bnMvcmVzcG9uc2l2ZS9yZXNvdXJjZXMvem9vbS1yZXNwb25zaXZlLmpzCkBAIC0wLDAgKzEsNzcg
QEAKKyd1c2Ugc3RyaWN0JzsKKworZnVuY3Rpb24gcG9wdWxhdGUocHJvcGVydHksIHZhbHVlcykg
eworICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2NvbnRhaW5lcicp
OworICB2YWx1ZXMuZm9yRWFjaCh2YWx1ZSA9PiB7CisgICAgdmFyIHRleHQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0ZXh0LnRleHRDb250ZW50ID0gdmFsdWU7CisgICAg
Y29udGFpbmVyLmFwcGVuZENoaWxkKHRleHQpOworCisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdldC5jbGFzc0xpc3QuYWRkKCd0YXJnZXQn
KTsKKyAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKKworICAgIHZhciBrZXlmcmFt
ZSA9IHt9OworICAgIGtleWZyYW1lW3Byb3BlcnR5XSA9IHZhbHVlOworCisgICAgdGFyZ2V0LmFu
aW1hdGUoW2tleWZyYW1lLCBrZXlmcmFtZV0sIDFlOCk7CisgIH0pOworfQorCitmdW5jdGlvbiB6
b29tRHVyaW5nQW5pbWF0aW9uKHByb3BlcnR5LCB2YWx1ZXMpIHsKKyAgdmFyIGZvb3RlciA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGZvb3Rlcik7CisgIHBvcHVsYXRlKHByb3BlcnR5LCB2YWx1ZXMpOworCisgIGZ1bmN0aW9uIHdh
aXRGb3JDb21wb3NpdG9yKCkgeworICAgIHJldHVybiBmb290ZXIuYW5pbWF0ZSh7b3BhY2l0eTog
WycxJywgJzEnXX0sIDEpLnJlYWR5OworICB9CisKKyAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICByZXR1cm47CisKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgcmVxdWVz
dEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4g
eworICAgICAgZXZlbnRTZW5kZXIuem9vbVBhZ2VJbigpOworCisgICAgICByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoKCkgPT4geworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewor
ICAgICAgICAgIHdhaXRGb3JDb21wb3NpdG9yKCkudGhlbigoKSA9PiB7CisgICAgICAgICAgICBy
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgIH0pOworICAgICAgICB9KTsK
KyAgICAgIH0pOworICAgIH0pOworICB9KTsKK30KKworZnVuY3Rpb24gem9vbUJlZm9yZUFuaW1h
dGlvbihwcm9wZXJ0eSwgdmFsdWVzKSB7CisgIGV2ZW50U2VuZGVyLnpvb21QYWdlSW4oKTsKKwor
ICB2YXIgZm9vdGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZm9vdGVyKTsKKyAgcG9wdWxhdGUocHJvcGVydHksIHZhbHVlcyk7
CisKKyAgZnVuY3Rpb24gd2FpdEZvckNvbXBvc2l0b3IoKSB7CisgICAgcmV0dXJuIGZvb3Rlci5h
bmltYXRlKHtvcGFjaXR5OiBbJzEnLCAnMSddfSwgMSkucmVhZHk7CisgIH0KKworICBpZiAoIXdp
bmRvdy50ZXN0UnVubmVyKQorICAgIHJldHVybjsKKworICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKworICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgIHJlcXVlc3RBbmlt
YXRpb25GcmFtZSgoKSA9PiB7CisgICAgICB3YWl0Rm9yQ29tcG9zaXRvcigpLnRoZW4oKCkgPT4g
eworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICAgIH0pOworICAgIH0pOworICB9
KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1hdGlvbnMv
cmVzcG9uc2l2ZS96b29tLXJlc3BvbnNpdmUtdHJhbnNmb3JtLWFuaW1hdGlvbi0wMDEtZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1hdGlvbnMvcmVzcG9uc2l2
ZS96b29tLXJlc3BvbnNpdmUtdHJhbnNmb3JtLWFuaW1hdGlvbi0wMDEtZXhwZWN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjVhYTFlY2JhZTQ1MgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1hdGlvbnMvcmVz
cG9uc2l2ZS96b29tLXJlc3BvbnNpdmUtdHJhbnNmb3JtLWFuaW1hdGlvbi0wMDEtZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0icmVzb3VyY2VzL3pvb20tcmVzcG9uc2l2ZS5jc3MiPgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy96b29tLXJlc3BvbnNpdmUuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0iY29udGFp
bmVyIj48L2Rpdj4KKzxzY3JpcHQ+CisKK3pvb21CZWZvcmVBbmltYXRpb24oJ3RyYW5zZm9ybScs
IFsKKyAgJ3BlcnNwZWN0aXZlKDIwMHB4KSB0cmFuc2xhdGUzRCgxMHB4LCAxMHB4LCAxMHB4KScs
CisgICdtYXRyaXgoMCwgMSwgMSwgMCwgMTAsIDEwKScKK10pOworCis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1hdGlvbnMvcmVzcG9uc2l2ZS96
b29tLXJlc3BvbnNpdmUtdHJhbnNmb3JtLWFuaW1hdGlvbi0wMDEuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL2JsaW5rL2FuaW1hdGlvbnMvcmVzcG9uc2l2ZS96b29tLXJlc3BvbnNpdmUtdHJh
bnNmb3JtLWFuaW1hdGlvbi0wMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLmYwZWFlZGEwMDAwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL2JsaW5rL2FuaW1hdGlvbnMvcmVzcG9uc2l2ZS96b29tLXJlc3BvbnNpdmUtdHJhbnNm
b3JtLWFuaW1hdGlvbi0wMDEuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3pvb20tcmVzcG9uc2l2ZS5j
c3MiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy96b29tLXJlc3BvbnNpdmUuanMiPjwvc2NyaXB0
PgorPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKzxzY3JpcHQ+CisKK3pvb21EdXJpbmdBbmlt
YXRpb24oJ3RyYW5zZm9ybScsIFsKKyAgJ3BlcnNwZWN0aXZlKDIwMHB4KSB0cmFuc2xhdGUzRCgx
MHB4LCAxMHB4LCAxMHB4KScsCisgICdtYXRyaXgoMCwgMSwgMSwgMCwgMTAsIDEwKScKK10pOwor
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1h
dGlvbnMvcmVzcG9uc2l2ZS96b29tLXJlc3BvbnNpdmUtdHJhbnNmb3JtLWFuaW1hdGlvbi0wMDIt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1hdGlvbnMvcmVz
cG9uc2l2ZS96b29tLXJlc3BvbnNpdmUtdHJhbnNmb3JtLWFuaW1hdGlvbi0wMDItZXhwZWN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFhNjVlZDRmZDhl
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1hdGlv
bnMvcmVzcG9uc2l2ZS96b29tLXJlc3BvbnNpdmUtdHJhbnNmb3JtLWFuaW1hdGlvbi0wMDItZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3pvb20tcmVzcG9uc2l2ZS5jc3MiPgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy96b29tLXJlc3BvbnNpdmUuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0i
Y29udGFpbmVyIj48L2Rpdj4KKzxzY3JpcHQ+CisKK3pvb21CZWZvcmVBbmltYXRpb24oJ3RyYW5z
Zm9ybScsIFsKKyAgJ21hdHJpeDNkKCcgKworICAgICcwLCAxLCAwLCAwLCAnICsKKyAgICAnMSwg
MCwgMCwgMCwgJyArCisgICAgJzAsIDAsIDEsIDAsICcgKworICAgICcxMCwgMTAsIDEwLCAxKScs
CisgICdwZXJzcGVjdGl2ZSgyMDBweCkgcm90YXRlWSg0NWRlZyknLAorXSk7CisKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvYW5pbWF0aW9ucy9yZXNw
b25zaXZlL3pvb20tcmVzcG9uc2l2ZS10cmFuc2Zvcm0tYW5pbWF0aW9uLTAwMi5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvYW5pbWF0aW9ucy9yZXNwb25zaXZlL3pvb20tcmVzcG9u
c2l2ZS10cmFuc2Zvcm0tYW5pbWF0aW9uLTAwMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMC4uNDViNGZhNjA0MjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvYmxpbmsvYW5pbWF0aW9ucy9yZXNwb25zaXZlL3pvb20tcmVzcG9uc2l2
ZS10cmFuc2Zvcm0tYW5pbWF0aW9uLTAwMi5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvem9vbS1yZXNw
b25zaXZlLmNzcyI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3pvb20tcmVzcG9uc2l2ZS5qcyI+
PC9zY3JpcHQ+Cis8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgorPHNjcmlwdD4KKworem9vbUR1
cmluZ0FuaW1hdGlvbigndHJhbnNmb3JtJywgWworICAnbWF0cml4M2QoJyArCisgICAgJzAsIDEs
IDAsIDAsICcgKworICAgICcxLCAwLCAwLCAwLCAnICsKKyAgICAnMCwgMCwgMSwgMCwgJyArCisg
ICAgJzEwLCAxMCwgMTAsIDEpJywKKyAgJ3BlcnNwZWN0aXZlKDIwMHB4KSByb3RhdGVZKDQ1ZGVn
KScsCitdKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9i
bGluay9hbmltYXRpb25zL3Jlc3BvbnNpdmUvem9vbS1yZXNwb25zaXZlLXRyYW5zZm9ybS1hbmlt
YXRpb24tMDAzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9hbmlt
YXRpb25zL3Jlc3BvbnNpdmUvem9vbS1yZXNwb25zaXZlLXRyYW5zZm9ybS1hbmltYXRpb24tMDAz
LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4x
MzIxNmIwZTI4ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGlu
ay9hbmltYXRpb25zL3Jlc3BvbnNpdmUvem9vbS1yZXNwb25zaXZlLXRyYW5zZm9ybS1hbmltYXRp
b24tMDAzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy96b29tLXJlc3BvbnNpdmUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvem9vbS1yZXNwb25zaXZlLmpzIj48L3NjcmlwdD4K
KzxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Cis8c2NyaXB0PgorCit6b29tQmVmb3JlQW5pbWF0
aW9uKCd0cmFuc2Zvcm0nLCBbCisgICdtYXRyaXgzZCgnICsKKyAgICAnMC43MDcxMDY3ODExODY1
NDgsIDAuMDAwMDAwMDAwMDAwMDAwLCAtMC43MDcxMDY3ODExODY1NDcsIDAuMDAzNTM1NTMzOTA1
OTMzLCcgKworICAgICcwLjAwMDAwMDAwMDAwMDAwMCwgMS4wMDAwMDAwMDAwMDAwMDAsIDAuMDAw
MDAwMDAwMDAwMDAwLCAwLjAwMDAwMDAwMDAwMDAwMCwnICsKKyAgICAnMC43MDcxMDY3ODExODY1
NDcsIDAuMDAwMDAwMDAwMDAwMDAwLCAwLjcwNzEwNjc4MTE4NjU0OCwgLTAuMDAzNTM1NTMzOTA1
OTMzLCcgKworICAgICcwLjAwMDAwMDAwMDAwMDAwMCwgMC4wMDAwMDAwMDAwMDAwMDAsIDAuMDAw
MDAwMDAwMDAwMDAwLCAxLjAwMDAwMDAwMDAwMDAwMCknLAorICAnbm9uZScsCitdKTsKKworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9hbmltYXRpb25z
L3Jlc3BvbnNpdmUvem9vbS1yZXNwb25zaXZlLXRyYW5zZm9ybS1hbmltYXRpb24tMDAzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9hbmltYXRpb25zL3Jlc3BvbnNpdmUvem9vbS1y
ZXNwb25zaXZlLXRyYW5zZm9ybS1hbmltYXRpb24tMDAzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43ZGNhZDk0MmExYjYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9hbmltYXRpb25zL3Jlc3BvbnNpdmUvem9vbS1yZXNw
b25zaXZlLXRyYW5zZm9ybS1hbmltYXRpb24tMDAzLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy96b29t
LXJlc3BvbnNpdmUuY3NzIj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvem9vbS1yZXNwb25zaXZl
LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Cis8c2NyaXB0PgorCit6
b29tRHVyaW5nQW5pbWF0aW9uKCd0cmFuc2Zvcm0nLCBbCisgICdtYXRyaXgzZCgnICsKKyAgICAn
MC43MDcxMDY3ODExODY1NDgsIDAuMDAwMDAwMDAwMDAwMDAwLCAtMC43MDcxMDY3ODExODY1NDcs
IDAuMDAzNTM1NTMzOTA1OTMzLCcgKworICAgICcwLjAwMDAwMDAwMDAwMDAwMCwgMS4wMDAwMDAw
MDAwMDAwMDAsIDAuMDAwMDAwMDAwMDAwMDAwLCAwLjAwMDAwMDAwMDAwMDAwMCwnICsKKyAgICAn
MC43MDcxMDY3ODExODY1NDcsIDAuMDAwMDAwMDAwMDAwMDAwLCAwLjcwNzEwNjc4MTE4NjU0OCwg
LTAuMDAzNTM1NTMzOTA1OTMzLCcgKworICAgICcwLjAwMDAwMDAwMDAwMDAwMCwgMC4wMDAwMDAw
MDAwMDAwMDAsIDAuMDAwMDAwMDAwMDAwMDAwLCAxLjAwMDAwMDAwMDAwMDAwMCknLAorICAnbm9u
ZScsCitdKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9i
bGluay9hbmltYXRpb25zL3Jlc3BvbnNpdmUvem9vbS1yZXNwb25zaXZlLXRyYW5zbGF0ZS1hbmlt
YXRpb24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1hdGlv
bnMvcmVzcG9uc2l2ZS96b29tLXJlc3BvbnNpdmUtdHJhbnNsYXRlLWFuaW1hdGlvbi1leHBlY3Rl
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZWIzZDYyOWZi
ODhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvYW5pbWF0
aW9ucy9yZXNwb25zaXZlL3pvb20tcmVzcG9uc2l2ZS10cmFuc2xhdGUtYW5pbWF0aW9uLWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSw1NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisjY29u
dGFpbmVyIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDA7CisgIGZvbnQtc2l6ZTog
MTBweDsKK30KKy50YXJnZXQgeworICB3aWR0aDogNDBweDsKKyAgaGVpZ2h0OiA0MHB4OworICBi
b3JkZXItdG9wOiBzb2xpZDsKKyAgYm9yZGVyLWxlZnQ6IHNvbGlkOworICBtYXJnaW4tYm90dG9t
OiAyMHB4OworfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Cis8ZGl2IGlk
PSJmb290ZXIiPjwvZGl2PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICBldmVudFNlbmRlci56b29tUGFnZUluKCk7CisKK1sKKyAgJzEwcHggMTBw
eCAxMHB4JywKKyAgJ25vbmUnLCAvLyBDb21wb3NpdGVkIGFuaW1hdGlvbnMgZmFpbCB0byB6b29t
IHRoZSBsYXN0IGV4cGVjdGF0aW9uIGNvcnJlY3RseS4gKToKK10uZm9yRWFjaCh0cmFuc2xhdGlv
biA9PiB7CisgIHZhciB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgIHRl
eHQudGV4dENvbnRlbnQgPSB0cmFuc2xhdGlvbjsKKyAgY29udGFpbmVyLmFwcGVuZENoaWxkKHRl
eHQpOworCisgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAg
dGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ3RhcmdldCcpOworICBjb250YWluZXIuYXBwZW5kQ2hpbGQo
dGFyZ2V0KTsKKyAgdGFyZ2V0LmFuaW1hdGUoWworICAgIHt0cmFuc2xhdGU6IHRyYW5zbGF0aW9u
fSwKKyAgICB7dHJhbnNsYXRlOiB0cmFuc2xhdGlvbn0sCisgIF0sIDFlOCk7Cit9KTsKKworLy8g
V2UgbXVzdCB3YWl0IGEgZnJhbWUgdG8gbGV0IGNvbXBvc2l0b3IgYW5pbWF0aW9ucyByZW5kZXIu
CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
CitmdW5jdGlvbiB3YWl0Rm9yQ29tcG9zaXRvcigpIHsKKyAgcmV0dXJuIGZvb3Rlci5hbmltYXRl
KHtvcGFjaXR5OiBbJzEnLCAnMSddfSwgMSkuZmluaXNoZWQ7Cit9CisKK3JlcXVlc3RBbmltYXRp
b25GcmFtZSgoKSA9PiB7CisgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgd2Fp
dEZvckNvbXBvc2l0b3IoKS50aGVuKCgpID0+IHsKKyAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSk7CisgIH0pOworfSk7
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FuaW1h
dGlvbnMvcmVzcG9uc2l2ZS96b29tLXJlc3BvbnNpdmUtdHJhbnNsYXRlLWFuaW1hdGlvbi5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvYW5pbWF0aW9ucy9yZXNwb25zaXZlL3pvb20t
cmVzcG9uc2l2ZS10cmFuc2xhdGUtYW5pbWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi44NDYwZGU1YmU0YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC9ibGluay9hbmltYXRpb25zL3Jlc3BvbnNpdmUvem9vbS1yZXNwb25z
aXZlLXRyYW5zbGF0ZS1hbmltYXRpb24uaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxzdHlsZT4KKyNjb250YWluZXIgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRv
cDogMDsKKyAgZm9udC1zaXplOiAxMHB4OworfQorLnRhcmdldCB7CisgIHdpZHRoOiA0MHB4Owor
ICBoZWlnaHQ6IDQwcHg7CisgIGJvcmRlci10b3A6IHNvbGlkOworICBib3JkZXItbGVmdDogc29s
aWQ7CisgIG1hcmdpbi1ib3R0b206IDIwcHg7Cit9Cis8L3N0eWxlPgorPGRpdiBpZD0iY29udGFp
bmVyIj48L2Rpdj4KKzxkaXYgaWQ9ImZvb3RlciI+PC9kaXY+Cis8c2NyaXB0PgorJ3VzZSBzdHJp
Y3QnOworWworICAnMTBweCAxMHB4IDEwcHgnLAorICAnbm9uZScsIC8vIENvbXBvc2l0ZWQgYW5p
bWF0aW9ucyBmYWlsIHRvIHpvb20gdGhlIGxhc3QgZXhwZWN0YXRpb24gY29ycmVjdGx5LiApOgor
XS5mb3JFYWNoKHRyYW5zbGF0aW9uID0+IHsKKyAgdmFyIHRleHQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKKyAgdGV4dC50ZXh0Q29udGVudCA9IHRyYW5zbGF0aW9uOworICBjb250
YWluZXIuYXBwZW5kQ2hpbGQodGV4dCk7CisKKyAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOworICB0YXJnZXQuY2xhc3NMaXN0LmFkZCgndGFyZ2V0Jyk7CisgIGNv
bnRhaW5lci5hcHBlbmRDaGlsZCh0YXJnZXQpOworICB0YXJnZXQuYW5pbWF0ZShbCisgICAge3Ry
YW5zbGF0ZTogdHJhbnNsYXRpb259LAorICAgIHt0cmFuc2xhdGU6IHRyYW5zbGF0aW9ufSwKKyAg
XSwgMWU4KTsKK30pOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworCitmdW5jdGlvbiB3YWl0Rm9yQ29tcG9zaXRvcigpIHsKKyAgcmV0dXJu
IGZvb3Rlci5hbmltYXRlKHtvcGFjaXR5OiBbJzEnLCAnMSddfSwgMSkuZmluaXNoZWQ7Cit9CisK
K3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgo
KSA9PiB7CisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgIGV2ZW50U2VuZGVyLnpv
b21QYWdlSW4oKTsKKyAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgcmVx
dWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgd2FpdEZvckNvbXBvc2l0b3IoKS50
aGVuKCgpID0+IHsKKyAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgICB9KTsKKyAgICB9
KTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNm
b3Jtcy8zZC9nZW5lcmFsL2Nzc21hdHJpeC0zZC16b29tLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy90cmFuc2Zvcm1zLzNkL2dlbmVyYWwvY3NzbWF0cml4LTNkLXpvb20tZXhwZWN0ZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjA5ODU2YzU3ODk3NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvM2QvZ2VuZXJhbC9jc3Nt
YXRyaXgtM2Qtem9vbS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIHpvb206IDEuMjsKKyAg
ICBwYWRkaW5nOiAwOworICAgIG1hcmdpbjogMDsKK30KKworI2IgeworICAgIHdpZHRoOiAxMDBw
eDsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDYwcHg7CisgICAgbGVmdDogNDBweDsKKyAg
ICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMHB4KSB0cmFuc2xhdGUzZCgxMDBweCwgNTBweCwg
MjVweCkgcm90YXRlWSg0NWRlZyk7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKzxk
aXYgaWQ9J2InPjwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy90cmFuc2Zvcm1zLzNkL2dlbmVyYWwvY3NzbWF0cml4LTNkLXpvb20tZXhwZWN0ZWQucG5n
IGIvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9nZW5lcmFsL2Nzc21hdHJpeC0zZC16b29tLWV4
cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDk3NGVmYmJiMTgxMWJl
N2M3NGNmNmNjZmYzMjdjODBmYjliYjZjMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJh
bCAxMTExNQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtC
OWdDQ000NyQ9U3VGeGVUZD4KemlLZENCJHRLMUkjd2tXQUNLaV40PF5+MV43TiR2LTxfMVFfaERJ
X21OQWlJdHl2dVpVNClBbiNSdFBBe1BzX3xuCnpXbmlkYVl6O1l8RSRrQHImbiQxezF0cEhDWWAj
cXU2Tz1xN1M3KjNoRzVhZitsK0FObmV3KnVyNmwyZThkMWtOUQp6c2NsYF9AI043KHQkVkktN3Fi
NnZrZ05LVHFWTHJqPCpJUlN3TU5vSGFvdncrXkwofX5lUmJlbS1SRkRlP2Aha1IKej9sYlRmVHs4
TEYhMTlGbWMrZXVqJSR5cGh0VW56TGVUejY5TztrZn56d3VMSGI4SWdEU15mTSo2QE8hTip4fkJt
Cno8KHRhYSZicVgxN0pKS0loWD9NblpmYjNLRko4ek1EYTYhYWJBT0BjQGUrPnZrOGdaPih7SmZs
UyNmWUh6cWFqPgp6TlRuSkZRezhqKnpCX2A/cyRPPHpfT09gcHdKXndUJmhfcG8qSmFyPV5Ve3U7
NVpMUUtWY0c2OD9eWSkqb2E2VjYKelpeR1dXVStWbGUtP0taVWMhKm5hdC1hZmgtZyNlcHVHJjlK
ZTdOTTxrdjNaeTNEWWs+NT02STR0Xjhxbk5GLWpzCnpTQTlgUDtZfmY+azJCVyY0ZzJLUFI0fkVm
Ujd6cSlhZz5NdWIpVVEreVZfWjYpdmdQI2VeZWU4X15gNUhJUWB6MAp6eVlGM1pGfDlZP2xqVmAo
blpAZjdBbUdaOUlBY1NBTHp8NzFwfjxFcWQqIyheKHZ6IT1OPiNGVW1uNkF0YmdWWUoKelc0az9Z
JHo3WCY4Y0t5em9WUmpKYHM0VWRZeUM8OHI8RmZYJDg1TH1fST05USp8VDxpZFNIRkA+Q0J4e2FA
UX1QCnpjd0Zvb1MyT2lXKzJuQmRYPV5JMF9STS1DVyZiOTh5NVh9WClCWXBIOC05UChqaH1qRXhA
TTJhKFpge21Vd09CYgp6TWo0dmxwUHk1MlpUbT4/eXghSnAjY01tZSZCSkMtUHlkX2NAJSFEWEoo
SGg+e2A4T2dgdGVXdCooMXIxRyE1MHQKenh9R2FgUEN1Jm1hbmNSJSkhZEh+YSp1UCZvIVh7KERS
PCY4bTglSH12LVcofGtGfTRrKnl+byReRUdnYTxlNXQkCnpvIXsjWlh7RElWLU5+MiN0Ti1AI0tq
S2ZtY1JpbzQhSzl6XztLYTtieHh0MCsxczB8KiVgMEJWQik8UCo/VDJsNwp6Kl5CRWV7OykqWXRR
SzF2V0lBN0E1MkgrM2R6SVZeJV44PWNPKj9CRClVR3BzQH4pU3NsN2h8eis7JEVNeH5fVVgKeilt
dj15JStSRWxXakFKQ21kJXF7WHpCRiokYTFnTCQtbVpyNnh7SDRMKHRFa1lsM2RwYEFKPUNvYz01
U3pARVJaCnoyUChRZDg1azU4Slk1X15EajQ3MWJuSDQ1QW1TM0p7NFA0Q2t8JDN3cHlGWjV5fXc8
LV4rNlNMdTdDZF5zTm00Ugp6ent0ZUhBKXclcHB6dU5GUEMqbGwzbGdfeVdJcDFJdFZBdUw7bWl0
SUM0e0J9Mz9KRCpueFVyNTtGTTQ+JlQyO3oKekY+dSVlSDZOQGJqZnczPCZuLW9XamJJVFRmcWJa
RGtTVUViOHlKbGltdnRieWc4N0l2KzxjJWJOMVh0UXRJPCN4Cno0Rnk9ZjlaZF9QWDw7LWlqTWZw
ciU2aWIobG4rYFA0JWw8YyV6ciVwQHlXOF8yUX5BfXwyTnlLTHopaitPbSZQYQp6UDFXP18/Uztr
LTRVOXMxe3cwWGtmKy17T2w0fj5lZlpIcUpSPkw3Q0hqZj1QN2RoY2drU2k9YTZRWXRvM0JpKkMK
ejJlKlg2ISVyP3lKQWZeZDBBVH0ldGxwRX1ASyVSe1BDYFM9WTJtcj5IaXZgbjBmdGVCakUyWik4
WDMoc3F2WiVKCnoxViY1TihZbDV2d1FzP2s+KkRBMXQ+RCFAQmE8VEl7KVUhUUxRQGVuYXhBYiRI
cktGK3Q3KTc3WSNMfkpoYWoyOwp6ck5FfWF5Izs+fE8jPiVqYmdqP3tMfjB0YUA9VH58e3YtQGIm
O2xJNShUYXRlVHZUREI3WVlJNTFgZS15UHgmTDcKejF9ZWEmIUtnejxMdTUzS2pPSDN4MndXTDBN
QENFNShZamB8XzhvMUhqSkQ4NW5+SmF5NztRWHtifCokVlNjOXB7Cno4Q3cyLTc2U3dPY2hGaloo
U0dwZyROKVM5TSNvQTxNfl9Ddyg/JHBPTXUkM3dAOEVCdntedHw/RDt4SVI7e2RMbgpPVyQ8K01i
Nk13PCY7JFRpdDJtfHIKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzNkL2dl
bmVyYWwvY3NzbWF0cml4LTNkLXpvb20tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdHJhbnNm
b3Jtcy8zZC9nZW5lcmFsL2Nzc21hdHJpeC0zZC16b29tLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggM2EyYTg2YTgwNGFjLi4wMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9nZW5lcmFsL2Nzc21hdHJpeC0zZC16b29tLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYw
MAotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQg
KDQ4LDcyKSBzaXplIDEyMHgxMjAKLSAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0
ICg0OCw3Mikgc2l6ZSAxMjB4MTIwIFtiZ2NvbG9yPSNGRjAwMDBdCi1sYXllciBhdCAoNDgsNzIp
IHNpemUgMTIweDEyMAotICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDQ4LDcy
KSBzaXplIDEyMHgxMjAgW2JnY29sb3I9IzAwODAwMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3RyYW5zZm9ybXMvM2QvZ2VuZXJhbC9jc3NtYXRyaXgtM2Qtem9vbS5odG1sIGIvTGF5b3V0VGVz
dHMvdHJhbnNmb3Jtcy8zZC9nZW5lcmFsL2Nzc21hdHJpeC0zZC16b29tLmh0bWwKaW5kZXggYTlj
ZThiMDIxNGRlLi4zYWUxYmE0NTNmMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zZm9y
bXMvM2QvZ2VuZXJhbC9jc3NtYXRyaXgtM2Qtem9vbS5odG1sCisrKyBiL0xheW91dFRlc3RzL3Ry
YW5zZm9ybXMvM2QvZ2VuZXJhbC9jc3NtYXRyaXgtM2Qtem9vbS5odG1sCkBAIC0xLDMgKzEsNCBA
QAorPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgogPHN0eWxlPgpAQCAtNyw2MCArOCwy
MiBAQCBib2R5IHsKICAgICBtYXJnaW46IDA7CiB9CiAKLS5ib3ggeworI2IgewogICAgIHdpZHRo
OiAxMDBweDsKICAgICBoZWlnaHQ6IDEwMHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7
CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CiAgICAgcG9zaXRpb246IGFic29sdXRlOwog
ICAgIHRvcDogNjBweDsKICAgICBsZWZ0OiA0MHB4OwogfQotCi0udHJhbnNsYXRlIHsKLSAgICAt
d2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMHB4LCA1MHB4KTsKLSAgICBiYWNrZ3JvdW5k
LWNvbG9yOiByZWQ7Ci19Ci0KLS5tYXRyaXggewotICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVu
OwotfQogPC9zdHlsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLQotICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKLQotICAgICAg
ICB2YXIgaWQxID0gImEiOwotICAgICAgICB2YXIgaWQyID0gImIiOwotICAgICAgICB2YXIgZWxl
bWVudDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZDEpOwotICAgICAgICB2YXIgZWxlbWVu
dDIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZDIpOwotICAgICAgICB2YXIgeDEgPSB3ZWJr
aXRDb252ZXJ0UG9pbnRGcm9tTm9kZVRvUGFnZShlbGVtZW50MSwgbmV3IFdlYktpdFBvaW50KDAs
MCkpLng7Ci0gICAgICAgIHZhciB5MSA9IHdlYmtpdENvbnZlcnRQb2ludEZyb21Ob2RlVG9QYWdl
KGVsZW1lbnQxLCBuZXcgV2ViS2l0UG9pbnQoMCwwKSkueTsKLSAgICAgICAgdmFyIHgyID0gd2Vi
a2l0Q29udmVydFBvaW50RnJvbU5vZGVUb1BhZ2UoZWxlbWVudDIsIG5ldyBXZWJLaXRQb2ludCgw
LDApKS54OwotICAgICAgICB2YXIgeTIgPSB3ZWJraXRDb252ZXJ0UG9pbnRGcm9tTm9kZVRvUGFn
ZShlbGVtZW50MiwgbmV3IFdlYktpdFBvaW50KDAsMCkpLnk7Ci0KLSAgICAgICAgdmFyIHJlc3Vs
dFN0cmluZyA9ICcnOwotICAgICAgICBpZiAoeDEgPT0geDIgJiYgeTEgPT0geTIpIHsKLSAgICAg
ICAgICAgIHJlc3VsdFN0cmluZyArPSAiUEFTUyAtIEVsZW1lbnQgIiArIGlkMSArICIgYW5kIEVs
ZW1lbnQgIiArIGlkMiArICIgaGFkIGlkZW50aWNhbCBwb3NpdGlvbnMiOwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgcmVzdWx0U3RyaW5nICs9ICJGQUlMIC0gRWxlbWVudCAiICsgaWQx
ICsgIiBhbmQgRWxlbWVudCAiICsgaWQyICsgIiBoYWQgZGlmZmVyZW50IHBvc2l0aW9ucyI7Ci0g
ICAgICAgIH0KLQotICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKHJlc3VsdFN0cmluZykpOwotICAgIH0KLX0KLTwvc2NyaXB0PgogPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KLQotPCEtLSBZb3Ugc2hvdWxkIHNlZSBncmVl
biBib3ggb25seS4gSWYgeW91IHNlZSByZWQsIHRoZSB0ZXN0IGhhcyBmYWlsZWQgLS0+Cis8Ym9k
eT4KIAotPGRpdiBpZD0nYScgY2xhc3M9ImJveCB0cmFuc2xhdGUiPjwvZGl2PgotPGRpdiBpZD0n
YicgY2xhc3M9ImJveCBtYXRyaXgiPjwvZGl2PgorPGRpdiBpZD0nYic+PC9kaXY+CiAKIDxzY3Jp
cHQ+Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2InKS5zdHlsZS53ZWJraXRUcmFuc2Zv
cm0gPSBuZXcgV2ViS2l0Q1NTTWF0cml4KCdtYXRyaXgzZCgxLCAwLCAwLCAwLCAwLCAxLCAwLCAw
LCAwLCAwLCAxLCAwLCAxMDAsIDUwLCAwLCAxKScpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdiJykuc3R5bGUud2Via2l0VHJhbnNmb3JtID0gbmV3IFdlYktpdENTU01hdHJpeCgnbWF0
cml4M2QoMC43MDcxMDcsIDAsIC0wLjcwNzEwNywgMC4wMDM1MzU1MywgMCwgMSwgMCwgMCwgMC43
MDcxMDcsIDAsIDAuNzA3MTA3LCAtMC4wMDM1MzU1MywgMTAwLCA1MCwgMjUsIDAuODc1KScpOwog
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>