<?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>150312</bug_id>
          
          <creation_ts>2015-10-18 22:05:24 -0700</creation_ts>
          <short_desc>Add ouput formatters for FillLayer and all it entails</short_desc>
          <delta_ts>2015-10-19 15:22:39 -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>New Bugs</component>
          <version>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>ryanhaddad</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1134453</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-10-18 22:05:24 -0700</bug_when>
    <thetext>Add ouput formatters for FillLayer and all it entails</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134455</commentid>
    <comment_count>1</comment_count>
      <attachid>263440</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-10-18 22:06:17 -0700</bug_when>
    <thetext>Created attachment 263440
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134457</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-10-18 22:07:09 -0700</bug_when>
    <thetext>Sample output:

(fill-layer
  (x-position [0%])
  (y-position [50%])
  (size-length width=[25%] height=[100%])
  (size-type size-length)
  (size type=size-length size=width=[25%] height=[100%])
  (background-origin left top)
  (repeat no-repeat no-repeat)
  (clip border)
  (origin padding)
  (composite 2)
  (blend-mode normal)
  (mask-type alpha)
  (fill-layer
    (x-position [100%])
    (y-position [50%])
    (size-length width=[45%] height=[100%])
    (size-type size-none)
    (size type=size-none size=width=[45%] height=[100%])
    (background-origin left top)
    (repeat no-repeat no-repeat)
    (clip border)
    (origin padding)
    (composite 2)
    (blend-mode normal)
    (mask-type alpha)))

I&apos;m open to better Length formatting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134584</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-19 08:52:21 -0700</bug_when>
    <thetext>Two formatting questions:

(In reply to comment #2)
&gt; Sample output:
&gt; 
&gt; (fill-layer
&gt;   (x-position [0%])

What are the square brackets for? (Might be able to find out by reading the patch, but I haven&apos;t yet).

&gt;   (size-length width=[25%] height=[100%])
&gt;   (size-type size-length)
&gt;   (size type=size-length size=width=[25%] height=[100%])

Why all three? It seems like the one with the &apos;size&apos; key matches the other two. Also, the equal signs? This should probably read like below, no?

&gt;   (size
&gt;     (type length)
&gt;     (width [25%])
&gt;     (height [100%]))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134651</commentid>
    <comment_count>4</comment_count>
      <attachid>263500</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-10-19 12:11:37 -0700</bug_when>
    <thetext>Created attachment 263500
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134652</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-10-19 12:12:03 -0700</bug_when>
    <thetext>Output is now:

(fill-layer
  (position 0% 50%)
  (size size-length 25% 100%)
  (background-origin left top)
  (repeat no-repeat no-repeat)
  (clip border)
  (origin padding)
  (composite source-over)
  (blend-mode screen)
  (mask-type alpha)
  (fill-layer
    (position 100% 50%)
    (size size-none 45% 100%)
    (background-origin left top)
    (repeat no-repeat no-repeat)
    (clip border)
    (origin padding)
    (composite source-over)
    (blend-mode screen)
    (mask-type alpha)))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134717</commentid>
    <comment_count>6</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2015-10-19 15:20:10 -0700</bug_when>
    <thetext>Simon is already investigating, but this caused 13 tests to crash in debug with ASSERTION FAILED: blendOp &lt; numBlendOperatorNames</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134719</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-10-19 15:22:03 -0700</bug_when>
    <thetext>Fixed in https://trac.webkit.org/r191319</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134720</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-10-19 15:22:39 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/191310</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263440</attachid>
            <date>2015-10-18 22:06:17 -0700</date>
            <delta_ts>2015-10-19 12:11:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150312-20151018220535.patch</filename>
            <type>text/plain</type>
            <size>19879</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDQ3YjBjMTY1OWMxMTMz
OTQwOWJmYWQ0NDhhYmNhNjFkYzc1YzVjMS4uMzE2NWQzYjZiMjk1NmRiN2U2ZThhNDllZGQ3MzVk
MjQ5OGU3YTZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTEwLTE4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBUZXh0U3Ry
ZWFtIGZvcm1hdHRlcnMgZm9yIEZpbGxMYXllciBhbmQgYWxsIGl0IGVudGFpbHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDMxMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBUZXh0U3RyZWFtIG91
dHB1dCBmb3JtYXR0ZXJzIGZvciBGaWxsTGF5ZXIsIGFuZCBhbGwgdGhlIGVudW0KKyAgICAgICAg
dHlwZXMgdXNlZCBieSBpdC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9M
ZW5ndGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxh
dGZvcm0vTGVuZ3RoLmg6CisgICAgICAgICogcGxhdGZvcm0vTGVuZ3RoU2l6ZS5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vTGVu
Z3RoU2l6ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dFN0cmVhbS5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3Bl
cmF0b3I8PCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlQ29uc3RhbnRzLmg6CisKIDIwMTUtMTAtMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgU29ydCB0aGUgcHJvamVjdCBmaWxlLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCBkNmY1ZjFhMDkwY2M2M2YxYzM4MTQ3MTRlMmQzOTE0ZGZjY2Vl
MTBhLi41ZmZhN2ViODZmMzhjNmEzMDU1MjU2YTZhNDY4ZmZhYTliNTY1ZmYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtMjEwNiw2ICsyMTA2LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IHBsYXRmb3JtL0tpbGxSaW5nTm9uZS5jcHAKICAgICBwbGF0Zm9ybS9MYW5ndWFnZS5jcHAKICAg
ICBwbGF0Zm9ybS9MZW5ndGguY3BwCisgICAgcGxhdGZvcm0vTGVuZ3RoU2l6ZS5jcHAKICAgICBw
bGF0Zm9ybS9MaW5rSGFzaC5jcHAKICAgICBwbGF0Zm9ybS9Mb2dnaW5nLmNwcAogICAgIHBsYXRm
b3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCkBAIC0yNTMwLDYgKzI1MzEsNyBAQCBzZXQoV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmNwcAogICAgIHJl
bmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKKyAgICByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwCiAg
ICAgcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmNwcAogICAgIHJlbmRlcmluZy9zdHls
ZS9TVkdSZW5kZXJTdHlsZURlZnMuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL1NoYWRvd0RhdGEu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNTM1NTU1ZmI5ZTE0NTU1ZGRjYzY1ZjU5M2QzYWE5ZDAxMzE2ZTY1NS4uNDdlNjg2
NTA5ZWIzNjkyMDAwYTkzZmY5ZGNkNTNhMWE1NGQzZWFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTgwLDYgKzU4MCw4IEBA
CiAJCTBGRUEzRTg0MTkxQjMxQkYwMDBGMUI1NSAvKiBTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZFQTNFODIxOTFCMzFCRjAwMEYxQjU1IC8qIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMEZFQTNFODcxOTFCM0JENzAwMEYxQjU1IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZFQTNFODUxOTFCM0JENzAwMEYxQjU1IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGUuY3BwICovOyB9OwogCQkwRkVBM0U4ODE5MUIzQkQ3MDAwRjFCNTUgLyogU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZFQTNFODYxOTFCM0JENzAwMEYxQjU1IC8qIFNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQkwRkVGMjBDRTFCRDRBMjQxMDAxMjhFNUQgLyogTGVuZ3RoU2l6ZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkVGMjBDRDFC
RDRBMjQxMDAxMjhFNUQgLyogTGVuZ3RoU2l6ZS5jcHAgKi87IH07CisJCTBGRUYyMEQwMUJENEE2
NEYwMDEyOEU1RCAvKiBSZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkVGMjBDRjFCRDRBNjRGMDAxMjhFNUQgLyog
UmVuZGVyU3R5bGVDb25zdGFudHMuY3BwICovOyB9OwogCQkwRkY1MDI1QjEwMkJBOTAxMDA2NkYz
OUEgLyogRE9NU3R5bGVNZWRpYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEZGNTAyNTkxMDJCQTkwMTAwNjZGMzlBIC8qIERPTVN0eWxlTWVkaWEuaCAq
LzsgfTsKIAkJMEZGNTAyNUMxMDJCQTkwMTAwNjZGMzlBIC8qIERPTVN0eWxlTWVkaWEubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkY1MDI1QTEwMkJB
OTAxMDA2NkYzOUEgLyogRE9NU3R5bGVNZWRpYS5tbSAqLzsgfTsKIAkJMEZGNTAyNjMxMDJCQTky
QzAwNjZGMzlBIC8qIERPTVN0eWxlTWVkaWFJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGNTAyNjIxMDJCQTkyQjAwNjZGMzlBIC8qIERP
TVN0eWxlTWVkaWFJbnRlcm5hbC5oICovOyB9OwpAQCAtNzgxNCw2ICs3ODE2LDggQEAKIAkJMEZF
QTNFODIxOTFCMzFCRjAwMEYxQjU1IC8qIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1N0YXRlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRUEz
RTg1MTkxQjNCRDcwMDBGMUI1NSAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVBM0U4
NjE5MUIzQkQ3MDAwRjFCNTUgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRUYyMENEMUJENEEyNDEw
MDEyOEU1RCAvKiBMZW5ndGhTaXplLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IExlbmd0aFNpemUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkVG
MjBDRjFCRDRBNjRGMDAxMjhFNUQgLyogUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkY1MDI1OTEwMkJBOTAxMDA2NkYzOUEgLyog
RE9NU3R5bGVNZWRpYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01TdHls
ZU1lZGlhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRjUwMjVBMTAyQkE5MDEw
MDY2RjM5QSAvKiBET01TdHlsZU1lZGlhLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gRE9NU3R5bGVNZWRpYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEZGNTAyNjIxMDJCQTkyQjAwNjZGMzlBIC8qIERPTVN0eWxlTWVkaWFJbnRlcm5hbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01TdHlsZU1lZGlhSW50ZXJuYWwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxOTk5LDYgKzIyMDAzLDcgQEAKIAkJCQk1
QTU3NEYyNzEzMURCOTZEMDA0NzFCODggLyogUXVvdGVzRGF0YS5oICovLAogCQkJCUJDOEM4RkFC
MEREQ0QzMUIwMEI1OTJGNCAvKiBSZW5kZXJTdHlsZS5jcHAgKi8sCiAJCQkJQkM4QzhGQUMwRERD
RDMxQjAwQjU5MkY0IC8qIFJlbmRlclN0eWxlLmggKi8sCisJCQkJMEZFRjIwQ0YxQkQ0QTY0RjAw
MTI4RTVEIC8qIFJlbmRlclN0eWxlQ29uc3RhbnRzLmNwcCAqLywKIAkJCQlCQzVFQjY2NzBFODFD
QjcxMDBCMjU5NjUgLyogUmVuZGVyU3R5bGVDb25zdGFudHMuaCAqLywKIAkJCQlCQzVFQjhDMTBF
ODIwMzFCMDBCMjU5NjUgLyogU2hhZG93RGF0YS5jcHAgKi8sCiAJCQkJQkM1RUI4QzIwRTgyMDMx
QjAwQjI1OTY1IC8qIFNoYWRvd0RhdGEuaCAqLywKQEAgLTIyMzQxLDYgKzIyMzQ2LDcgQEAKIAkJ
CQlCQ0U2NUJFODBFQUNERjE2MDA3RTQ1MzMgLyogTGVuZ3RoLmNwcCAqLywKIAkJCQlCQ0U2NUJF
OTBFQUNERjE2MDA3RTQ1MzMgLyogTGVuZ3RoLmggKi8sCiAJCQkJQkNGRjY0OEYwRUFEMTVDMjAw
QzFENkY3IC8qIExlbmd0aEJveC5oICovLAorCQkJCTBGRUYyMENEMUJENEEyNDEwMDEyOEU1RCAv
KiBMZW5ndGhTaXplLmNwcCAqLywKIAkJCQlCQ0ZGNjQ5MDBFQUQxNUMyMDBDMUQ2RjcgLyogTGVu
Z3RoU2l6ZS5oICovLAogCQkJCUE3QUQyRjg1MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5j
cHAgKi8sCiAJCQkJQTdBRDJGODYwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmggKi8sCkBA
IC0yOTY2Miw2ICsyOTY2OCw3IEBACiAJCQkJMDcwNTg1MzMxN0ZERTZEOTAwNUYyQkNCIC8qIEpT
TWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MDU4NTM1MTdG
REU2RDkwMDVGMkJDQiAvKiBKU01lZGlhVHJhY2tDb25zdHJhaW50U2V0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUUxMDc0MDBEMEU3N0JEQzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUYyMENFMUJENEEyNDEwMDEyOEU1RCAvKiBMZW5ndGhT
aXplLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQTVGOTlCMEU3RUFBMjUwMEFGODVFQSAvKiBK
U01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1NzkzRUM4MEQw
Q0U3MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
MTBCN0U3MjEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0zMDQwMyw2ICszMDQxMCw3IEBACiAJCQkJRDMwMjc1NDkxMkE1RkU4NDAw
NEJEODI4IC8qIFJlbmRlckRldGFpbHNNYXJrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUIz
MkNEQUExM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTQzQTAyM0QxN0VCMzcxMzAwNENERDI1IC8qIFJlbmRlckVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEZFRjIwRDAxQkQ0QTY0RjAwMTI4RTVEIC8qIFJlbmRlclN0eWxl
Q29uc3RhbnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNUI3QTU0MTBGNjVEN0EwMDM3NjMw
MiAvKiBSZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEVBNzND
MzBBMTkwMEUzMDBBOEVGNUYgLyogUmVuZGVyRmllbGRzZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDY2Qzc3MzAwQUI2MDNGRDAwMjM4Q0M0IC8qIFJlbmRlckZpbGVVcGxvYWRDb250cm9sLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVu
Z3RoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5jcHAKaW5kZXggNjJkMGI4
ODgzNzcwM2E2OGY3ODdjOGY5ZTJjY2FlODRlNTQ1ZjUxZS4uNmVjNzhhMWY5ZTk0ZGExMGQyYzA4
YjBlNzFhMDRmZTkwZGU5MGY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TGVuZ3RoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguY3BwCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiTGVuZ3RoLmgiCiAKICNpbmNsdWRlICJDYWxjdWxhdGlv
blZhbHVlLmgiCisjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNU
eXBlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KQEAgLTMwMSw0ICszMDIsNTUgQEAgc3RydWN0IFNhbWVTaXplQXNMZW5ndGggewog
fTsKIENPTVBJTEVfQVNTRVJUKHNpemVvZihMZW5ndGgpID09IHNpemVvZihTYW1lU2l6ZUFzTGVu
Z3RoKSwgbGVuZ3RoX3Nob3VsZF9zdGF5X3NtYWxsKTsKIAorc3RhdGljIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIExlbmd0aFR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2gg
KHR5cGUpIHsKKyAgICBjYXNlIEF1dG86IHRzIDw8ICJhdXRvIjsgYnJlYWs7CisgICAgY2FzZSBS
ZWxhdGl2ZTogdHMgPDwgInJlbGF0aXZlIjsgYnJlYWs7CisgICAgY2FzZSBQZXJjZW50OiB0cyA8
PCAicGVyY2VudCI7IGJyZWFrOworICAgIGNhc2UgRml4ZWQ6IHRzIDw8ICJmaXhlZCI7IGJyZWFr
OworICAgIGNhc2UgSW50cmluc2ljOiB0cyA8PCAiaW50cmluc2ljIjsgYnJlYWs7CisgICAgY2Fz
ZSBNaW5JbnRyaW5zaWM6IHRzIDw8ICJtaW4taW50cmluc2ljIjsgYnJlYWs7CisgICAgY2FzZSBN
aW5Db250ZW50OiB0cyA8PCAibWluLWNvbnRlbnQiOyBicmVhazsKKyAgICBjYXNlIE1heENvbnRl
bnQ6IHRzIDw8ICJtYXgtY29udGVudCI7IGJyZWFrOworICAgIGNhc2UgRmlsbEF2YWlsYWJsZTog
dHMgPDwgImZpbGwtYXZhaWxhYmxlIjsgYnJlYWs7CisgICAgY2FzZSBGaXRDb250ZW50OiB0cyA8
PCAiZml0LWNvbnRlbnQiOyBicmVhazsKKyAgICBjYXNlIENhbGN1bGF0ZWQ6IHRzIDw8ICJjYWxj
IjsgYnJlYWs7CisgICAgY2FzZSBVbmRlZmluZWQ6IHRzIDw8ICJ1bmRlZmluZWQiOyBicmVhazsK
KyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBMZW5ndGggbGVuZ3RoKQoreworICAgIHN3aXRjaCAobGVuZ3RoLnR5cGUoKSkg
eworICAgIGNhc2UgQXV0bzoKKyAgICBjYXNlIFVuZGVmaW5lZDoKKyAgICAgICAgdHMgPDwgIlsi
IDw8IGxlbmd0aC50eXBlKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmVsYXRpdmU6Cisg
ICAgY2FzZSBGaXhlZDoKKyAgICBjYXNlIEludHJpbnNpYzoKKyAgICBjYXNlIE1pbkludHJpbnNp
YzoKKyAgICBjYXNlIE1pbkNvbnRlbnQ6CisgICAgY2FzZSBNYXhDb250ZW50OgorICAgIGNhc2Ug
RmlsbEF2YWlsYWJsZToKKyAgICBjYXNlIEZpdENvbnRlbnQ6CisgICAgICAgIHRzIDw8ICJbIiA8
PCBsZW5ndGgudHlwZSgpIDw8ICIgIiA8PCBUZXh0U3RyZWFtOjpGb3JtYXROdW1iZXJSZXNwZWN0
aW5nSW50ZWdlcnMobGVuZ3RoLnZhbHVlKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBl
cmNlbnQ6CisgICAgICAgIHRzIDw8ICJbIiA8PCBUZXh0U3RyZWFtOjpGb3JtYXROdW1iZXJSZXNw
ZWN0aW5nSW50ZWdlcnMobGVuZ3RoLnBlcmNlbnQoKSkgPDwgIiUiOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENhbGN1bGF0ZWQ6CisgICAgICAgIC8vIEZJWE1FOiBkdW1wIENhbGN1bGF0aW9u
VmFsdWUuCisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICAKKyAgICBpZiAobGVuZ3RoLmhhc1F1
aXJrKCkpCisgICAgICAgIHRzIDw8ICIgaGFzLXF1aXJrIjsKKworICAgIHRzIDw8ICJdIjsKKyAg
ICByZXR1cm4gdHM7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TGVuZ3RoLmgKaW5kZXggZTQyOTRlOWIzMTAxZTIwMGMyNjQyMDY1ODg4NDBkNzEwNjk0YTIzZi4u
NzVjY2Y3NzVlOWEzNTNhOGIwODI4OWI3YzJiMjNmMmRmY2QwN2ViOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTGVuZ3RoLmgKQEAgLTQxLDYgKzQxLDcgQEAgZW51bSBMZW5ndGhUeXBlIHsKIH07CiAKIGNs
YXNzIENhbGN1bGF0aW9uVmFsdWU7CitjbGFzcyBUZXh0U3RyZWFtOwogCiBzdHJ1Y3QgTGVuZ3Ro
IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTc0LDcgKzc1LDYgQEAgcHVibGlj
OgogICAgIGZsb2F0IHZhbHVlKCkgY29uc3Q7CiAgICAgaW50IGludFZhbHVlKCkgY29uc3Q7CiAg
ICAgZmxvYXQgcGVyY2VudCgpIGNvbnN0OwotICAgIGZsb2F0IHZpZXdwb3J0UGVyY2VudGFnZUxl
bmd0aCgpIGNvbnN0OwogICAgIENhbGN1bGF0aW9uVmFsdWUmIGNhbGN1bGF0aW9uVmFsdWUoKSBj
b25zdDsKIAogICAgIExlbmd0aFR5cGUgdHlwZSgpIGNvbnN0OwpAQCAtNDM5LDYgKzQzOSw4IEBA
IGlubGluZSBMZW5ndGggTGVuZ3RoOjpibGVuZChjb25zdCBMZW5ndGgmIGZyb20sIGRvdWJsZSBw
cm9ncmVzcykgY29uc3QKICAgICByZXR1cm4gTGVuZ3RoKFdlYkNvcmU6OmJsZW5kKGZyb21WYWx1
ZSwgdG9WYWx1ZSwgcHJvZ3Jlc3MpLCByZXN1bHRUeXBlKTsKIH0KIAorVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiwgTGVuZ3RoKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gTGVuZ3RoX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xlbmd0aFNpemUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoU2l6ZS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTNhMTNjNGM0ODM3MTRkZTVhZDg0ZTRlZmM5ZGQxMGNmYWUxMTlkMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aFNpemUuY3BwCkBA
IC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxlbmd0aFNpemUuaCIKKworI2lu
Y2x1ZGUgIlRleHRTdHJlYW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBMZW5ndGhTaXplJiBzaXplKQorewor
ICAgIHRzIDw8ICJ3aWR0aD0iIDw8IHNpemUud2lkdGgoKTsKKyAgICB0cyA8PCAiIGhlaWdodD0i
IDw8IHNpemUuaGVpZ2h0KCk7CisgICAgcmV0dXJuIHRzOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhTaXplLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhTaXplLmgKaW5kZXggYTY3YmM4OGZhNDg3
YmU4MWM4YjAxOTg1NWJlMTUwNWEyMTM4MmVlNi4uNDBhNmIyYTU1YmYwYTY2YjFjNDVhOWRhM2Qy
Yjc1YTBjZGE3NmJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3Ro
U2l6ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aFNpemUuaApAQCAtNTgs
NiArNTgsOCBAQCBwcml2YXRlOgogICAgIExlbmd0aCBtX2hlaWdodDsKIH07CiAKK1RleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIGNvbnN0IExlbmd0aFNpemUmKTsKKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gTGVuZ3RoU2l6ZV9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvVGV4dFN0cmVhbS5oCmluZGV4IDIyMDJmZDNmYjgwNGQyYmRkOGI4YTM1
NjMyMTk1NDJlYzU3Njk2NDQuLjE0YWVjNDZiMWY4YTY2MDk1OTY2NWIxNzdmN2ZkNjBmNzJkZTFh
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dFN0cmVhbS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dFN0cmVhbS5oCkBAIC0zNyw2
ICszNyw3IEBAIGNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGF5b3V0UmVjdDsKIGNsYXNzIExh
eW91dFVuaXQ7CiAKKy8vIEZJWE1FOiB0aGlzIHNob3VsZCBtb3ZlIHRvIHBsYXRmb3JtLwogY2xh
c3MgVGV4dFN0cmVhbSB7CiBwdWJsaWM6CiAgICAgc3RydWN0IEZvcm1hdE51bWJlclJlc3BlY3Rp
bmdJbnRlZ2VycyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
RmlsbExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIu
Y3BwCmluZGV4IDQ1MjRiMDA2NGU4NDJhYTYyZDZlZTFkMDFiMTZlZjIxYWZlYThhZmQuLmJlOTVh
ZGRiOGJkYzIyY2E2MTg5ZDM4ZWQyYmMxMGI2NmY5YjgxMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRmlsbExheWVyLmgiCiAKKyNpbmNsdWRlICJUZXh0U3Ry
ZWFtLmgiCiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJDb21wYXJpc29uLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTM5NSw0ICszOTYsNDEgQEAgYm9vbCBGaWxsTGF5ZXI6OmltYWdlc0lkZW50
aWNhbChjb25zdCBGaWxsTGF5ZXIqIGxheWVyMSwgY29uc3QgRmlsbExheWVyKiBsYXllcjIKICAg
ICByZXR1cm4gIWxheWVyMSAmJiAhbGF5ZXIyOwogfQogCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBGaWxsU2l6ZSBmaWxsU2l6ZSkKK3sKKyAgICByZXR1cm4gdHMgPDwg
InR5cGU9IiA8PCBmaWxsU2l6ZS50eXBlIDw8ICIgc2l6ZT0iIDw8IGZpbGxTaXplLnNpemU7Cit9
CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZpbGxMYXll
ciYgbGF5ZXIpCit7CisgICAgVGV4dFN0cmVhbTo6R3JvdXBTY29wZSBzY29wZSh0cyk7CisgICAg
dHMgPDwgImZpbGwtbGF5ZXIiOworCisgICAgdHMuZHVtcFByb3BlcnR5KCJ4LXBvc2l0aW9uIiwg
bGF5ZXIueFBvc2l0aW9uKCkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgieS1wb3NpdGlvbiIsIGxh
eWVyLnlQb3NpdGlvbigpKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInNpemUtbGVuZ3RoIiwgbGF5
ZXIuc2l6ZUxlbmd0aCgpKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInNpemUtdHlwZSIsIGxheWVy
LnNpemVUeXBlKCkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgic2l6ZSIsIGxheWVyLnNpemUoKSk7
CisKKyAgICB0cy5zdGFydEdyb3VwKCk7CisgICAgdHMgPDwgImJhY2tncm91bmQtb3JpZ2luICIg
PDwgbGF5ZXIuYmFja2dyb3VuZFhPcmlnaW4oKSA8PCAiICIgPDwgbGF5ZXIuYmFja2dyb3VuZFlP
cmlnaW4oKTsKKyAgICB0cy5lbmRHcm91cCgpOworCisgICAgdHMuc3RhcnRHcm91cCgpOworICAg
IHRzIDw8ICJyZXBlYXQgIiA8PCBsYXllci5yZXBlYXRYKCkgPDwgIiAiIDw8IGxheWVyLnJlcGVh
dFkoKTsKKyAgICB0cy5lbmRHcm91cCgpOworCisgICAgdHMuZHVtcFByb3BlcnR5KCJjbGlwIiwg
bGF5ZXIuY2xpcCgpKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoIm9yaWdpbiIsIGxheWVyLm9yaWdp
bigpKTsKKworICAgIHRzLmR1bXBQcm9wZXJ0eSgiY29tcG9zaXRlIiwgbGF5ZXIuY29tcG9zaXRl
KCkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgiYmxlbmQtbW9kZSIsIGxheWVyLmJsZW5kTW9kZSgp
KTsKKyAgICB0cy5kdW1wUHJvcGVydHkoIm1hc2stdHlwZSIsIGxheWVyLm1hc2tTb3VyY2VUeXBl
KCkpOworCisgICAgaWYgKGxheWVyLm5leHQoKSkKKyAgICAgICAgdHMgPDwgKmxheWVyLm5leHQo
KTsKKworICAgIHJldHVybiB0czsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCmluZGV4IDZmZjJiM2EyMDJhZjQ0
MjM4ZTJlYTMyNTlhNzc5ZWVkNmFiYzg3YmMuLjZkZDBhZGU1NDE4NGMzMjhlNGE1ZmI0ZDQ4Njk5
NmMzZDU0OWE1YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9G
aWxsTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVy
LmgKQEAgLTIxMyw2ICsyMTMsOSBAQCBwcml2YXRlOgogICAgIG11dGFibGUgdW5zaWduZWQgbV9j
bGlwTWF4IDogMjsgLy8gRUZpbGxCb3gsIG1heGltdW0gbV9jbGlwIHZhbHVlIGZyb20gdGhpcyB0
byBib3R0b20gbGF5ZXIKIH07CiAKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYs
IEZpbGxTaXplKTsKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIGNvbnN0IEZp
bGxMYXllciYpOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBGaWxsTGF5
ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU4ZTE2MDM2OGNkYzE4NTQ5NWVlNmM5YjI1
MzlmNmU1MzFlYjU2NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAKQEAgLTAsMCArMSw5OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKKworI2luY2x1ZGUgIlRleHRT
dHJlYW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBFRmlsbFNpemVUeXBlIHNpemVUeXBlKQoreworICAgIHN3aXRjaCAo
c2l6ZVR5cGUpIHsKKyAgICBjYXNlIENvbnRhaW46IHRzIDw8ICJjb250YWluIjsgYnJlYWs7Cisg
ICAgY2FzZSBDb3ZlcjogdHMgPDwgImNvdmVyIjsgYnJlYWs7CisgICAgY2FzZSBTaXplTGVuZ3Ro
OiB0cyA8PCAic2l6ZS1sZW5ndGgiOyBicmVhazsKKyAgICBjYXNlIFNpemVOb25lOiB0cyA8PCAi
c2l6ZS1ub25lIjsgYnJlYWs7CisgICAgfQorICAgIAorICAgIHJldHVybiB0czsKK30KKworVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgRUZpbGxBdHRhY2htZW50IGF0dGFj
aG1lbnQpCit7CisgICAgc3dpdGNoIChhdHRhY2htZW50KSB7CisgICAgY2FzZSBTY3JvbGxCYWNr
Z3JvdW5kQXR0YWNobWVudDogdHMgPDwgInNjcm9sbCI7IGJyZWFrOworICAgIGNhc2UgTG9jYWxC
YWNrZ3JvdW5kQXR0YWNobWVudDogdHMgPDwgImxvY2FsIjsgYnJlYWs7CisgICAgY2FzZSBGaXhl
ZEJhY2tncm91bmRBdHRhY2htZW50OiB0cyA8PCAiZml4ZWQiOyBicmVhazsKKyAgICB9CisgICAg
cmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBF
RmlsbEJveCBmaWxsKQoreworICAgIHN3aXRjaCAoZmlsbCkgeworICAgIGNhc2UgQm9yZGVyRmls
bEJveDogdHMgPDwgImJvcmRlciI7IGJyZWFrOworICAgIGNhc2UgUGFkZGluZ0ZpbGxCb3g6IHRz
IDw8ICJwYWRkaW5nIjsgYnJlYWs7CisgICAgY2FzZSBDb250ZW50RmlsbEJveDogdHMgPDwgImNv
bnRlbnQiOyBicmVhazsKKyAgICBjYXNlIFRleHRGaWxsQm94OiB0cyA8PCAidGV4dCI7IGJyZWFr
OworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIEVGaWxsUmVwZWF0IHJlcGVhdCkKK3sKKyAgICBzd2l0Y2ggKHJlcGVhdCkg
eworICAgIGNhc2UgUmVwZWF0RmlsbDogdHMgPDwgInJlcGVhdCI7IGJyZWFrOworICAgIGNhc2Ug
Tm9SZXBlYXRGaWxsOiB0cyA8PCAibm8tcmVwZWF0IjsgYnJlYWs7CisgICAgY2FzZSBSb3VuZEZp
bGw6IHRzIDw8ICJyb3VuZCI7IGJyZWFrOworICAgIGNhc2UgU3BhY2VGaWxsOiB0cyA8PCAic3Bh
Y2UiOyBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEVNYXNrU291cmNlVHlwZSBtYXNrU291cmNlKQorewor
ICAgIHN3aXRjaCAobWFza1NvdXJjZSkgeworICAgIGNhc2UgTWFza0FscGhhOiB0cyA8PCAiYWxw
aGEiOyBicmVhazsKKyAgICBjYXNlIE1hc2tMdW1pbmFuY2U6IHRzIDw8ICJsdW1pbmFuY2UiOyBi
cmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYgdHMsIEJhY2tncm91bmRFZGdlT3JpZ2luIGVkZ2UpCit7CisgICAgc3dp
dGNoIChlZGdlKSB7CisgICAgY2FzZSBUb3BFZGdlOiB0cyA8PCAidG9wIjsgYnJlYWs7CisgICAg
Y2FzZSBSaWdodEVkZ2U6IHRzIDw8ICJyaWdodCI7IGJyZWFrOworICAgIGNhc2UgQm90dG9tRWRn
ZTogdHMgPDwgImJvdHRvbSI7IGJyZWFrOworICAgIGNhc2UgTGVmdEVkZ2U6IHRzIDw8ICJsZWZ0
IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuaAppbmRleCBiYmI0Y2FhMTEwNDhiMmRjYjc2MWZiMTUzYzM1NGYyYmRmZmFi
OTBmLi5iNzJiM2E3NDVlMDMwMDM0OTAzYjU5YTcyNzA3YmVkZTAxMDFiODQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMu
aApAQCAtMzAsNiArMzAsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFRleHRT
dHJlYW07CisKIHN0YXRpYyBjb25zdCBzaXplX3QgUHJpbnRDb2xvckFkanVzdEJpdHMgPSAxOwog
ZW51bSBQcmludENvbG9yQWRqdXN0IHsKICAgICBQcmludENvbG9yQWRqdXN0RWNvbm9teSwKQEAg
LTY1Niw2ICs2NTgsMTMgQEAgZW51bSBjbGFzcyBUcmFpbGluZ1dvcmQgewogfTsKICNlbmRpZgog
CitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBFRmlsbFNpemVUeXBlKTsKK1Rl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIEVGaWxsQXR0YWNobWVudCk7CitUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBFRmlsbEJveCk7CitUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mLCBFRmlsbFJlcGVhdCk7CitUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mLCBFTWFza1NvdXJjZVR5cGUpOworVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiwgQmFja2dyb3VuZEVkZ2VPcmlnaW4pOworCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBSZW5kZXJTdHlsZUNvbnN0YW50c19oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263500</attachid>
            <date>2015-10-19 12:11:37 -0700</date>
            <delta_ts>2015-10-19 12:21:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150312-20151019121055.patch</filename>
            <type>text/plain</type>
            <size>23868</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzkwZTg0YjFkMThlMWI3
ZWFkNzhmMDA4MGIwNGM0ZWQ2N2QzMTFiOC4uZjZkNjlmODYyZjc5NWEzODMzYWZmNTkwMGZiYzA5
MzU1MmJmMTZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE1LTEwLTE5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBUZXh0U3Ry
ZWFtIGZvcm1hdHRlcnMgZm9yIEZpbGxMYXllciBhbmQgYWxsIGl0IGVudGFpbHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDMxMgorCisgICAgICAg
IFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRkIFRleHRTdHJlYW0gb3V0cHV0
IGZvcm1hdHRlcnMgZm9yIEZpbGxMYXllciwgYW5kIGFsbCB0aGUgZW51bQorICAgICAgICB0eXBl
cyB1c2VkIGJ5IGl0LgorICAgICAgICAKKyAgICAgICAgRHJpdmUtYnkgZml4ZXMgZm9yIENvbXBv
c2l0ZU9wZXJhdG9yIGFuZCBCbGVuZE1vZGUgc3RyaW5nIGNvbnZlcnNpb25zLgorICAgICAgICBj
b21wb3NpdGVPcGVyYXRvck5hbWVzIHdhcyBtaXNzaW5nIHRoZSAiZGlmZmVyZW5jZSIgc3RyaW5n
LCBhbmQgY29tcG9zaXRlT3BlcmF0b3JOYW1lKCkKKyAgICAgICAgd291bGQgZG8gYW4gT09CIG1l
bW9yeSBhY2Nlc3MgaWYgYmxlbmRPcCB3YXMgemVyby4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9MZW5ndGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6
CisgICAgICAgICogcGxhdGZvcm0vTGVuZ3RoLmg6CisgICAgICAgICogcGxhdGZvcm0vTGVuZ3Ro
U2l6ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAg
ICogcGxhdGZvcm0vTGVuZ3RoU2l6ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dFN0
cmVhbS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxM
YXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisKIDIwMTUtMTAtMTkgIENzYWJh
IE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggdGhlICFFTkFC
TEUoQ1NTX0dSSURfTEFZT1VUKSBidWlsZCBhZnRlciByMTkwODQwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IGVhMDczNzU4N2I2NGVhMjFlYjEwMTczZGVmNTgxOTY1NzNlNjljNzIuLjMxMDQ0ZTgy
NzUwYTc4YTJhMjJiYzkwODhhOTZkMWExYTdjODdhZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0yMTEwLDYgKzIxMTAsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vS2ls
bFJpbmdOb25lLmNwcAogICAgIHBsYXRmb3JtL0xhbmd1YWdlLmNwcAogICAgIHBsYXRmb3JtL0xl
bmd0aC5jcHAKKyAgICBwbGF0Zm9ybS9MZW5ndGhTaXplLmNwcAogICAgIHBsYXRmb3JtL0xpbmtI
YXNoLmNwcAogICAgIHBsYXRmb3JtL0xvZ2dpbmcuY3BwCiAgICAgcGxhdGZvcm0vTUlNRVR5cGVS
ZWdpc3RyeS5jcHAKQEAgLTI1MzQsNiArMjUzNSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAg
ICByZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxl
L1F1b3Rlc0RhdGEuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorICAg
IHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAKICAgICByZW5kZXJpbmcv
c3R5bGUvU1ZHUmVuZGVyU3R5bGUuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0
eWxlRGVmcy5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiZjBm
ZTY1ODM1YzdlOTY2Yjc1ODBhYmIzOGRmMjM2ZWI2ZGU4ZTg5Li4zNzA4MGJhNDg4NDNlMWZhNzQ3
ZmNjYzFjNzQ3ODFkYjgyZDViZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01ODAsNiArNTgwLDggQEAKIAkJMEZFQTNFODQx
OTFCMzFCRjAwMEYxQjU1IC8qIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkVBM0U4MjE5
MUIzMUJGMDAwRjFCNTUgLyogU2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkVBM0U4
NzE5MUIzQkQ3MDAwRjFCNTUgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkVBM0U4NTE5
MUIzQkQ3MDAwRjFCNTUgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAgKi87
IH07CiAJCTBGRUEzRTg4MTkxQjNCRDcwMDBGMUI1NSAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkVBM0U4NjE5MUIzQkQ3MDAwRjFCNTUgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTBGRUYyMENFMUJENEEyNDEwMDEyOEU1RCAvKiBMZW5ndGhTaXplLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUYyMENEMUJENEEyNDEwMDEyOEU1
RCAvKiBMZW5ndGhTaXplLmNwcCAqLzsgfTsKKwkJMEZFRjIwRDAxQkQ0QTY0RjAwMTI4RTVEIC8q
IFJlbmRlclN0eWxlQ29uc3RhbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGRUYyMENGMUJENEE2NEYwMDEyOEU1RCAvKiBSZW5kZXJTdHlsZUNv
bnN0YW50cy5jcHAgKi87IH07CiAJCTBGRjUwMjVCMTAyQkE5MDEwMDY2RjM5QSAvKiBET01TdHls
ZU1lZGlhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RkY1MDI1OTEwMkJBOTAxMDA2NkYzOUEgLyogRE9NU3R5bGVNZWRpYS5oICovOyB9OwogCQkwRkY1
MDI1QzEwMkJBOTAxMDA2NkYzOUEgLyogRE9NU3R5bGVNZWRpYS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjUwMjVBMTAyQkE5MDEwMDY2RjM5QSAv
KiBET01TdHlsZU1lZGlhLm1tICovOyB9OwogCQkwRkY1MDI2MzEwMkJBOTJDMDA2NkYzOUEgLyog
RE9NU3R5bGVNZWRpYUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkY1MDI2MjEwMkJBOTJCMDA2NkYzOUEgLyogRE9NU3R5bGVNZWRpYUlu
dGVybmFsLmggKi87IH07CkBAIC03ODI1LDYgKzc4MjcsOCBAQAogCQkwRkVBM0U4MjE5MUIzMUJG
MDAwRjFCNTUgLyogU2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGlu
Z05vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQTNFODUxOTFCM0JENzAw
MEYxQjU1IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRUEzRTg2MTkxQjNCRDcwMDBG
MUI1NSAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZFRjIwQ0QxQkQ0QTI0MTAwMTI4RTVEIC8qIExl
bmd0aFNpemUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGVuZ3Ro
U2l6ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRUYyMENGMUJENEE2NEYw
MDEyOEU1RCAvKiBSZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTdHlsZUNvbnN0YW50cy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGRjUwMjU5MTAyQkE5MDEwMDY2RjM5QSAvKiBET01TdHlsZU1lZGlh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVN0eWxlTWVkaWEuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZGNTAyNUExMDJCQTkwMTAwNjZGMzlBIC8qIERP
TVN0eWxlTWVkaWEubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBE
T01TdHlsZU1lZGlhLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkY1MDI2MjEw
MkJBOTJCMDA2NkYzOUEgLyogRE9NU3R5bGVNZWRpYUludGVybmFsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERPTVN0eWxlTWVkaWFJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjIwNDMsNiArMjIwNDcsNyBAQAogCQkJCTVBNTc0RjI3MTMxREI5
NkQwMDQ3MUI4OCAvKiBRdW90ZXNEYXRhLmggKi8sCiAJCQkJQkM4QzhGQUIwRERDRDMxQjAwQjU5
MkY0IC8qIFJlbmRlclN0eWxlLmNwcCAqLywKIAkJCQlCQzhDOEZBQzBERENEMzFCMDBCNTkyRjQg
LyogUmVuZGVyU3R5bGUuaCAqLywKKwkJCQkwRkVGMjBDRjFCRDRBNjRGMDAxMjhFNUQgLyogUmVu
ZGVyU3R5bGVDb25zdGFudHMuY3BwICovLAogCQkJCUJDNUVCNjY3MEU4MUNCNzEwMEIyNTk2NSAv
KiBSZW5kZXJTdHlsZUNvbnN0YW50cy5oICovLAogCQkJCUJDNUVCOEMxMEU4MjAzMUIwMEIyNTk2
NSAvKiBTaGFkb3dEYXRhLmNwcCAqLywKIAkJCQlCQzVFQjhDMjBFODIwMzFCMDBCMjU5NjUgLyog
U2hhZG93RGF0YS5oICovLApAQCAtMjIzODUsNiArMjIzOTAsNyBAQAogCQkJCUJDRTY1QkU4MEVB
Q0RGMTYwMDdFNDUzMyAvKiBMZW5ndGguY3BwICovLAogCQkJCUJDRTY1QkU5MEVBQ0RGMTYwMDdF
NDUzMyAvKiBMZW5ndGguaCAqLywKIAkJCQlCQ0ZGNjQ4RjBFQUQxNUMyMDBDMUQ2RjcgLyogTGVu
Z3RoQm94LmggKi8sCisJCQkJMEZFRjIwQ0QxQkQ0QTI0MTAwMTI4RTVEIC8qIExlbmd0aFNpemUu
Y3BwICovLAogCQkJCUJDRkY2NDkwMEVBRDE1QzIwMEMxRDZGNyAvKiBMZW5ndGhTaXplLmggKi8s
CiAJCQkJQTdBRDJGODUwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmNwcCAqLywKIAkJCQlB
N0FEMkY4NjBFQzg5RDA3MDA4QUIwMDIgLyogTGlua0hhc2guaCAqLywKQEAgLTI5NzE4LDYgKzI5
NzI0LDcgQEAKIAkJCQkwNzA1ODUzMzE3RkRFNkQ5MDA1RjJCQ0IgLyogSlNNZWRpYVRyYWNrQ29u
c3RyYWludHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcwNTg1MzUxN0ZERTZEOTAwNUYyQkNC
IC8qIEpTTWVkaWFUcmFja0NvbnN0cmFpbnRTZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEw
NzQwMEQwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVzc2FnZUNoYW5uZWwuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEZFRjIwQ0UxQkQ0QTI0MTAwMTI4RTVEIC8qIExlbmd0aFNpemUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTFBNUY5OUIwRTdFQUEyNTAwQUY4NUVBIC8qIEpTTWVzc2FnZUNoYW5u
ZWxDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU3OTNFQzgwRDBDRTcyRDAwN0ZDMEFD
IC8qIEpTTWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMEI3RTcyMTA0NUZB
QjAwMEQ4MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTMwNDYwLDYgKzMwNDY3LDcgQEAKIAkJCQlEMzAyNzU0OTEyQTVGRTg0MDA0QkQ4MjggLyogUmVu
ZGVyRGV0YWlsc01hcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5QjMyQ0RBQTEzREY3RkE5
MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDNB
MDIzRDE3RUIzNzEzMDA0Q0REMjUgLyogUmVuZGVyRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkwRkVGMjBEMDFCRDRBNjRGMDAxMjhFNUQgLyogUmVuZGVyU3R5bGVDb25zdGFudHMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1QjdBNTQxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVt
YmVkZGVkT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4RUE3M0MzMEExOTAwRTMwMEE4
RUY1RiAvKiBSZW5kZXJGaWVsZHNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNjZDNzczMDBB
QjYwM0ZEMDAyMzhDQzQgLyogUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmNwcAppbmRleCA2MmQwYjg4ODM3NzAzYTY4Zjc4
N2M4ZjllMmNjYWU4NGU1NDVmNTFlLi41MTQ0ODNiY2I5OGQ3MWMyODhhNjAxZDNhMmY2YWIyODMw
YmFlYjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlICJMZW5ndGguaCIKIAogI2luY2x1ZGUgIkNhbGN1bGF0aW9uVmFsdWUuaCIKKyNp
bmNsdWRlICJUZXh0U3RyZWFtLmgiCiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAt
MzAxLDQgKzMwMiw1NCBAQCBzdHJ1Y3QgU2FtZVNpemVBc0xlbmd0aCB7CiB9OwogQ09NUElMRV9B
U1NFUlQoc2l6ZW9mKExlbmd0aCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNMZW5ndGgpLCBsZW5ndGhf
c2hvdWxkX3N0YXlfc21hbGwpOwogCitzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgTGVuZ3RoVHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAg
IGNhc2UgQXV0bzogdHMgPDwgImF1dG8iOyBicmVhazsKKyAgICBjYXNlIFJlbGF0aXZlOiB0cyA8
PCAicmVsYXRpdmUiOyBicmVhazsKKyAgICBjYXNlIFBlcmNlbnQ6IHRzIDw8ICJwZXJjZW50Ijsg
YnJlYWs7CisgICAgY2FzZSBGaXhlZDogdHMgPDwgImZpeGVkIjsgYnJlYWs7CisgICAgY2FzZSBJ
bnRyaW5zaWM6IHRzIDw8ICJpbnRyaW5zaWMiOyBicmVhazsKKyAgICBjYXNlIE1pbkludHJpbnNp
YzogdHMgPDwgIm1pbi1pbnRyaW5zaWMiOyBicmVhazsKKyAgICBjYXNlIE1pbkNvbnRlbnQ6IHRz
IDw8ICJtaW4tY29udGVudCI7IGJyZWFrOworICAgIGNhc2UgTWF4Q29udGVudDogdHMgPDwgIm1h
eC1jb250ZW50IjsgYnJlYWs7CisgICAgY2FzZSBGaWxsQXZhaWxhYmxlOiB0cyA8PCAiZmlsbC1h
dmFpbGFibGUiOyBicmVhazsKKyAgICBjYXNlIEZpdENvbnRlbnQ6IHRzIDw8ICJmaXQtY29udGVu
dCI7IGJyZWFrOworICAgIGNhc2UgQ2FsY3VsYXRlZDogdHMgPDwgImNhbGMiOyBicmVhazsKKyAg
ICBjYXNlIFVuZGVmaW5lZDogdHMgPDwgInVuZGVmaW5lZCI7IGJyZWFrOworICAgIH0KKyAgICBy
ZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIExl
bmd0aCBsZW5ndGgpCit7CisgICAgc3dpdGNoIChsZW5ndGgudHlwZSgpKSB7CisgICAgY2FzZSBB
dXRvOgorICAgIGNhc2UgVW5kZWZpbmVkOgorICAgICAgICB0cyA8PCBsZW5ndGgudHlwZSgpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlbGF0aXZlOgorICAgIGNhc2UgRml4ZWQ6CisgICAg
Y2FzZSBJbnRyaW5zaWM6CisgICAgY2FzZSBNaW5JbnRyaW5zaWM6CisgICAgY2FzZSBNaW5Db250
ZW50OgorICAgIGNhc2UgTWF4Q29udGVudDoKKyAgICBjYXNlIEZpbGxBdmFpbGFibGU6CisgICAg
Y2FzZSBGaXRDb250ZW50OgorICAgICAgICB0cyA8PCBsZW5ndGgudHlwZSgpIDw8ICIgIiA8PCBU
ZXh0U3RyZWFtOjpGb3JtYXROdW1iZXJSZXNwZWN0aW5nSW50ZWdlcnMobGVuZ3RoLnZhbHVlKCkp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBlcmNlbnQ6CisgICAgICAgIHRzIDw8IFRleHRT
dHJlYW06OkZvcm1hdE51bWJlclJlc3BlY3RpbmdJbnRlZ2VycyhsZW5ndGgucGVyY2VudCgpKSA8
PCAiJSI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2FsY3VsYXRlZDoKKyAgICAgICAgLy8g
RklYTUU6IGR1bXAgQ2FsY3VsYXRpb25WYWx1ZS4KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IAorICAgIGlmIChsZW5ndGguaGFzUXVpcmsoKSkKKyAgICAgICAgdHMgPDwgIiBoYXMtcXVpcmsi
OworCisgICAgcmV0dXJuIHRzOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xlbmd0aC5oCmluZGV4IGU0Mjk0ZTliMzEwMWUyMDBjMjY0MjA2NTg4ODQwZDcxMDY5
NGEyM2YuLjc1Y2NmNzc1ZTlhMzUzYThiMDgyODliN2MyYjIzZjJkZmNkMDdlYjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xlbmd0aC5oCkBAIC00MSw2ICs0MSw3IEBAIGVudW0gTGVuZ3RoVHlwZSB7CiB9
OwogCiBjbGFzcyBDYWxjdWxhdGlvblZhbHVlOworY2xhc3MgVGV4dFN0cmVhbTsKIAogc3RydWN0
IExlbmd0aCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC03NCw3ICs3NSw2IEBA
IHB1YmxpYzoKICAgICBmbG9hdCB2YWx1ZSgpIGNvbnN0OwogICAgIGludCBpbnRWYWx1ZSgpIGNv
bnN0OwogICAgIGZsb2F0IHBlcmNlbnQoKSBjb25zdDsKLSAgICBmbG9hdCB2aWV3cG9ydFBlcmNl
bnRhZ2VMZW5ndGgoKSBjb25zdDsKICAgICBDYWxjdWxhdGlvblZhbHVlJiBjYWxjdWxhdGlvblZh
bHVlKCkgY29uc3Q7CiAKICAgICBMZW5ndGhUeXBlIHR5cGUoKSBjb25zdDsKQEAgLTQzOSw2ICs0
MzksOCBAQCBpbmxpbmUgTGVuZ3RoIExlbmd0aDo6YmxlbmQoY29uc3QgTGVuZ3RoJiBmcm9tLCBk
b3VibGUgcHJvZ3Jlc3MpIGNvbnN0CiAgICAgcmV0dXJuIExlbmd0aChXZWJDb3JlOjpibGVuZChm
cm9tVmFsdWUsIHRvVmFsdWUsIHByb2dyZXNzKSwgcmVzdWx0VHlwZSk7CiB9CiAKK1RleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIExlbmd0aCk7CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIExlbmd0aF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9MZW5ndGhTaXplLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aFNp
emUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE2ODM5Y2NiYThmMDExOTVmN2U0MmU2ZmMxZmZlZTcyMTU5YWYx
ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhTaXpl
LmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMZW5ndGhTaXplLmgi
CisKKyNpbmNsdWRlICJUZXh0U3RyZWFtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgTGVuZ3RoU2l6ZSYgc2l6
ZSkKK3sKKyAgICByZXR1cm4gdHMgPDwgc2l6ZS53aWR0aCgpIDw8ICIgIiA8PCBzaXplLmhlaWdo
dCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9MZW5ndGhTaXplLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5n
dGhTaXplLmgKaW5kZXggYTY3YmM4OGZhNDg3YmU4MWM4YjAxOTg1NWJlMTUwNWEyMTM4MmVlNi4u
NDBhNmIyYTU1YmYwYTY2YjFjNDVhOWRhM2QyYjc1YTBjZGE3NmJhYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoU2l6ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xlbmd0aFNpemUuaApAQCAtNTgsNiArNTgsOCBAQCBwcml2YXRlOgogICAgIExlbmd0
aCBtX2hlaWdodDsKIH07CiAKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIGNv
bnN0IExlbmd0aFNpemUmKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
TGVuZ3RoU2l6ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc1R5cGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzVHlwZXMuY3BwCmluZGV4IGQ1MjMwOGM3Y2M1MzQ5NTE2MzJlOGUwMGQ2ZWIyZGE1ODYy
NGI3MjMuLjI5ODRkZjVmYWQ3ZGI3NDZkYmI3MTYwMTUxYjhlMjUxM2FmNjM1NzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCkBA
IC00Nyw3ICs0Nyw4IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBjb21wb3NpdGVPcGVyYXRv
ck5hbWVzW10gPSB7CiAgICAgImRlc3RpbmF0aW9uLWF0b3AiLAogICAgICJ4b3IiLAogICAgICJk
YXJrZXIiLAotICAgICJsaWdodGVyIgorICAgICJsaWdodGVyIiwKKyAgICAiZGlmZmVyZW5jZSIK
IH07CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBibGVuZE9wZXJhdG9yTmFtZXNbXSA9IHsK
QEAgLTc3LDcgKzc4LDcgQEAgYm9vbCBwYXJzZUJsZW5kTW9kZShjb25zdCBTdHJpbmcmIHMsIEJs
ZW5kTW9kZSYgYmxlbmRNb2RlKQogewogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQmxlbmRP
cGVyYXRvck5hbWVzOyBpKyspIHsKICAgICAgICAgaWYgKHMgPT0gYmxlbmRPcGVyYXRvck5hbWVz
W2ldKSB7Ci0gICAgICAgICAgICBibGVuZE1vZGUgPSBzdGF0aWNfY2FzdDxCbGVuZE1vZGU+KGkr
MSk7CisgICAgICAgICAgICBibGVuZE1vZGUgPSBzdGF0aWNfY2FzdDxCbGVuZE1vZGU+KGkgKyBC
bGVuZE1vZGVOb3JtYWwpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAg
ICB9CkBAIC0xMTAsMTMgKzExMSwyMCBAQCBTdHJpbmcgY29tcG9zaXRlT3BlcmF0b3JOYW1lKENv
bXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRPcCkKIHsKICAgICBBU1NFUlQob3Ag
Pj0gMCk7CiAgICAgQVNTRVJUKG9wIDwgbnVtQ29tcG9zaXRlT3BlcmF0b3JOYW1lcyk7Ci0gICAg
QVNTRVJUKGJsZW5kT3AgPj0gMCk7Ci0gICAgQVNTRVJUKGJsZW5kT3AgPD0gbnVtQmxlbmRPcGVy
YXRvck5hbWVzKTsKLSAgICBpZiAoYmxlbmRPcCAhPSBCbGVuZE1vZGVOb3JtYWwpCi0gICAgICAg
IHJldHVybiBibGVuZE9wZXJhdG9yTmFtZXNbYmxlbmRPcC0xXTsKKyAgICBBU1NFUlQoYmxlbmRP
cCA+PSBCbGVuZE1vZGVOb3JtYWwpOworICAgIEFTU0VSVChibGVuZE9wIDwgbnVtQmxlbmRPcGVy
YXRvck5hbWVzKTsKKyAgICBpZiAoYmxlbmRPcCA+IEJsZW5kTW9kZU5vcm1hbCkKKyAgICAgICAg
cmV0dXJuIGJsZW5kT3BlcmF0b3JOYW1lc1tibGVuZE9wIC0gQmxlbmRNb2RlTm9ybWFsXTsKICAg
ICByZXR1cm4gY29tcG9zaXRlT3BlcmF0b3JOYW1lc1tvcF07CiB9CiAKK3N0YXRpYyBTdHJpbmcg
YmxlbmRNb2RlTmFtZShCbGVuZE1vZGUgYmxlbmRPcCkKK3sKKyAgICBBU1NFUlQoYmxlbmRPcCA+
PSBCbGVuZE1vZGVOb3JtYWwpOworICAgIEFTU0VSVChibGVuZE9wIDw9IEJsZW5kTW9kZVBsdXNM
aWdodGVyKTsKKyAgICByZXR1cm4gYmxlbmRPcGVyYXRvck5hbWVzW2JsZW5kT3AgLSBCbGVuZE1v
ZGVOb3JtYWxdOworfQorCiBib29sIHBhcnNlTGluZUNhcChjb25zdCBTdHJpbmcmIHMsIExpbmVD
YXAmIGNhcCkKIHsKICAgICBpZiAocyA9PSAiYnV0dCIpIHsKQEAgLTIzNywyOSArMjQ1LDE0IEBA
IGJvb2wgcGFyc2VUZXh0QmFzZWxpbmUoY29uc3QgU3RyaW5nJiBzLCBUZXh0QmFzZWxpbmUmIGJh
c2VsaW5lKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgQ29tcG9zaXRlT3BlcmF0b3Igb3ApCit7CisgICAgcmV0dXJuIHRzIDw8
IGNvbXBvc2l0ZU9wZXJhdG9yTmFtZShvcCwgQmxlbmRNb2RlTm9ybWFsKTsKK30KKwogVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQmxlbmRNb2RlIGJsZW5kTW9kZSkKIHsK
LSAgICBzd2l0Y2ggKGJsZW5kTW9kZSkgewotICAgIGNhc2UgQmxlbmRNb2RlTm9ybWFsOiB0cyA8
PCAibm9ybWFsIjsgYnJlYWs7Ci0gICAgY2FzZSBCbGVuZE1vZGVNdWx0aXBseTogdHMgPDwgIm11
bHRpcGx5IjsgYnJlYWs7Ci0gICAgY2FzZSBCbGVuZE1vZGVTY3JlZW46IHRzIDw8ICJzY3JlZW4i
OyBicmVhazsKLSAgICBjYXNlIEJsZW5kTW9kZU92ZXJsYXk6IHRzIDw8ICJvdmVybGF5IjsgYnJl
YWs7Ci0gICAgY2FzZSBCbGVuZE1vZGVEYXJrZW46IHRzIDw8ICJkYXJrZW4iOyBicmVhazsKLSAg
ICBjYXNlIEJsZW5kTW9kZUxpZ2h0ZW46IHRzIDw8ICJsaWdodGVuIjsgYnJlYWs7Ci0gICAgY2Fz
ZSBCbGVuZE1vZGVDb2xvckRvZGdlOiB0cyA8PCAiY29sb3ItZG9kZ2UiOyBicmVhazsKLSAgICBj
YXNlIEJsZW5kTW9kZUNvbG9yQnVybjogdHMgPDwgImNvbG9yLWJ1cm4iOyBicmVhazsKLSAgICBj
YXNlIEJsZW5kTW9kZUhhcmRMaWdodDogdHMgPDwgImhhcmQtbGlnaHQiOyBicmVhazsKLSAgICBj
YXNlIEJsZW5kTW9kZVNvZnRMaWdodDogdHMgPDwgInNvZnQtbGlnaHQiOyBicmVhazsKLSAgICBj
YXNlIEJsZW5kTW9kZURpZmZlcmVuY2U6IHRzIDw8ICJkaWZmZXJlbmNlIjsgYnJlYWs7Ci0gICAg
Y2FzZSBCbGVuZE1vZGVFeGNsdXNpb246IHRzIDw8ICJleGNsdXNpb24iOyBicmVhazsKLSAgICBj
YXNlIEJsZW5kTW9kZUh1ZTogdHMgPDwgImh1ZSI7IGJyZWFrOwotICAgIGNhc2UgQmxlbmRNb2Rl
U2F0dXJhdGlvbjogdHMgPDwgInNhdHVyYXRpb24iOyBicmVhazsKLSAgICBjYXNlIEJsZW5kTW9k
ZUNvbG9yOiB0cyA8PCAiY29sb3IiOyBicmVhazsKLSAgICBjYXNlIEJsZW5kTW9kZUx1bWlub3Np
dHk6IHRzIDw8ICJsdW1pbm9zaXR5IjsgYnJlYWs7Ci0gICAgY2FzZSBCbGVuZE1vZGVQbHVzRGFy
a2VyOiB0cyA8PCAicGx1cy1kYXJrZXIiOyBicmVhazsKLSAgICBjYXNlIEJsZW5kTW9kZVBsdXNM
aWdodGVyOiB0cyA8PCAicGx1cy1saWdodGVyIjsgYnJlYWs7Ci0gICAgfQotICAgIHJldHVybiB0
czsKKyAgICByZXR1cm4gdHMgPDwgYmxlbmRNb2RlTmFtZShibGVuZE1vZGUpOwogfQogCiBUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBXaW5kUnVsZSBydWxlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oCmluZGV4IDEx
ZGZmZTY3ZGY4NjkyNjNiZDA2ODQ4MDM0MmRkYmM2MjAxY2IyMzguLjRlZjNiZThjYzEyYzZmNjRj
MTBjYTZhMmY5NjU2NjFlYTE0NmM0NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmgKQEAgLTEwOSw2ICsxMDksNyBAQCBib29sIHBhcnNl
VGV4dEJhc2VsaW5lKGNvbnN0IFN0cmluZyYsIFRleHRCYXNlbGluZSYpOwogCiBjbGFzcyBUZXh0
U3RyZWFtOwogV0VCQ09SRV9FWFBPUlQgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiwgQmxlbmRNb2RlKTsKK1dFQkNPUkVfRVhQT1JUIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYsIENvbXBvc2l0ZU9wZXJhdG9yKTsKIFdFQkNPUkVfRVhQT1JUIFRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIFdpbmRSdWxlKTsKIFdFQkNPUkVfRVhQT1JUIFRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIExpbmVDYXApOwogV0VCQ09SRV9FWFBPUlQg
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgTGluZUpvaW4pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0U3RyZWFtLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRTdHJlYW0uaAppbmRleCAyMjAyZmQzZmI4MDRkMmJkZDhi
OGEzNTYzMjE5NTQyZWM1NzY5NjQ0Li4xNGFlYzQ2YjFmOGE2NjA5NTk2NjViMTc3ZjdmZDYwZjcy
ZGUxYWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRTdHJl
YW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRTdHJlYW0uaApAQCAt
MzcsNiArMzcsNyBAQCBjbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExheW91dFJlY3Q7CiBjbGFz
cyBMYXlvdXRVbml0OwogCisvLyBGSVhNRTogdGhpcyBzaG91bGQgbW92ZSB0byBwbGF0Zm9ybS8K
IGNsYXNzIFRleHRTdHJlYW0gewogcHVibGljOgogICAgIHN0cnVjdCBGb3JtYXROdW1iZXJSZXNw
ZWN0aW5nSW50ZWdlcnMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0ZpbGxMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExh
eWVyLmNwcAppbmRleCA0NTI0YjAwNjRlODQyYWE2MmQ2ZWUxZDAxYjE2ZWYyMWFmZWE4YWZkLi5i
MWIzMjA4MDJhMDZkMjI5YWE5ZWI2YWY5YTA4MDhmNzIwYmFlNGNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZpbGxMYXllci5oIgogCisjaW5jbHVkZSAiVGV4
dFN0cmVhbS5oIgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyQ29tcGFyaXNvbi5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC0zOTUsNCArMzk2LDQxIEBAIGJvb2wgRmlsbExheWVyOjppbWFnZXNJ
ZGVudGljYWwoY29uc3QgRmlsbExheWVyKiBsYXllcjEsIGNvbnN0IEZpbGxMYXllciogbGF5ZXIy
CiAgICAgcmV0dXJuICFsYXllcjEgJiYgIWxheWVyMjsKIH0KIAorVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgRmlsbFNpemUgZmlsbFNpemUpCit7CisgICAgcmV0dXJuIHRz
IDw8IGZpbGxTaXplLnR5cGUgPDwgIiAiIDw8IGZpbGxTaXplLnNpemU7Cit9CisKK1RleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZpbGxMYXllciYgbGF5ZXIpCit7
CisgICAgVGV4dFN0cmVhbTo6R3JvdXBTY29wZSBzY29wZSh0cyk7CisgICAgdHMgPDwgImZpbGwt
bGF5ZXIiOworCisgICAgdHMuc3RhcnRHcm91cCgpOworICAgIHRzIDw8ICJwb3NpdGlvbiAiIDw8
IGxheWVyLnhQb3NpdGlvbigpIDw8ICIgIiA8PCBsYXllci55UG9zaXRpb24oKTsKKyAgICB0cy5l
bmRHcm91cCgpOworCisgICAgdHMuZHVtcFByb3BlcnR5KCJzaXplIiwgbGF5ZXIuc2l6ZSgpKTsK
KworICAgIHRzLnN0YXJ0R3JvdXAoKTsKKyAgICB0cyA8PCAiYmFja2dyb3VuZC1vcmlnaW4gIiA8
PCBsYXllci5iYWNrZ3JvdW5kWE9yaWdpbigpIDw8ICIgIiA8PCBsYXllci5iYWNrZ3JvdW5kWU9y
aWdpbigpOworICAgIHRzLmVuZEdyb3VwKCk7CisKKyAgICB0cy5zdGFydEdyb3VwKCk7CisgICAg
dHMgPDwgInJlcGVhdCAiIDw8IGxheWVyLnJlcGVhdFgoKSA8PCAiICIgPDwgbGF5ZXIucmVwZWF0
WSgpOworICAgIHRzLmVuZEdyb3VwKCk7CisKKyAgICB0cy5kdW1wUHJvcGVydHkoImNsaXAiLCBs
YXllci5jbGlwKCkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgib3JpZ2luIiwgbGF5ZXIub3JpZ2lu
KCkpOworCisgICAgdHMuZHVtcFByb3BlcnR5KCJjb21wb3NpdGUiLCBsYXllci5jb21wb3NpdGUo
KSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJibGVuZC1tb2RlIiwgbGF5ZXIuYmxlbmRNb2RlKCkp
OworICAgIHRzLmR1bXBQcm9wZXJ0eSgibWFzay10eXBlIiwgbGF5ZXIubWFza1NvdXJjZVR5cGUo
KSk7CisKKyAgICBpZiAobGF5ZXIubmV4dCgpKQorICAgICAgICB0cyA8PCAqbGF5ZXIubmV4dCgp
OworCisgICAgcmV0dXJuIHRzOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKaW5kZXggNmZmMmIzYTIwMmFmNDQy
MzhlMmVhMzI1OWE3NzllZWQ2YWJjODdiYy4uNmRkMGFkZTU0MTg0YzMyOGU0YTVmYjRkNDg2OTk2
YzNkNTQ5YTViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Zp
bGxMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIu
aApAQCAtMjEzLDYgKzIxMyw5IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSB1bnNpZ25lZCBtX2Ns
aXBNYXggOiAyOyAvLyBFRmlsbEJveCwgbWF4aW11bSBtX2NsaXAgdmFsdWUgZnJvbSB0aGlzIHRv
IGJvdHRvbSBsYXllcgogfTsKIAorVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwg
RmlsbFNpemUpOworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgY29uc3QgRmls
bExheWVyJik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEZpbGxMYXll
cl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNThlMTYwMzY4Y2RjMTg1NDk1ZWU2YzliMjUz
OWY2ZTUzMWViNTY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcApAQCAtMCwwICsxLDk5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgorCisjaW5jbHVkZSAiVGV4dFN0
cmVhbS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIEVGaWxsU2l6ZVR5cGUgc2l6ZVR5cGUpCit7CisgICAgc3dpdGNoIChz
aXplVHlwZSkgeworICAgIGNhc2UgQ29udGFpbjogdHMgPDwgImNvbnRhaW4iOyBicmVhazsKKyAg
ICBjYXNlIENvdmVyOiB0cyA8PCAiY292ZXIiOyBicmVhazsKKyAgICBjYXNlIFNpemVMZW5ndGg6
IHRzIDw8ICJzaXplLWxlbmd0aCI7IGJyZWFrOworICAgIGNhc2UgU2l6ZU5vbmU6IHRzIDw8ICJz
aXplLW5vbmUiOyBicmVhazsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHRzOworfQorCitUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBFRmlsbEF0dGFjaG1lbnQgYXR0YWNo
bWVudCkKK3sKKyAgICBzd2l0Y2ggKGF0dGFjaG1lbnQpIHsKKyAgICBjYXNlIFNjcm9sbEJhY2tn
cm91bmRBdHRhY2htZW50OiB0cyA8PCAic2Nyb2xsIjsgYnJlYWs7CisgICAgY2FzZSBMb2NhbEJh
Y2tncm91bmRBdHRhY2htZW50OiB0cyA8PCAibG9jYWwiOyBicmVhazsKKyAgICBjYXNlIEZpeGVk
QmFja2dyb3VuZEF0dGFjaG1lbnQ6IHRzIDw8ICJmaXhlZCI7IGJyZWFrOworICAgIH0KKyAgICBy
ZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEVG
aWxsQm94IGZpbGwpCit7CisgICAgc3dpdGNoIChmaWxsKSB7CisgICAgY2FzZSBCb3JkZXJGaWxs
Qm94OiB0cyA8PCAiYm9yZGVyIjsgYnJlYWs7CisgICAgY2FzZSBQYWRkaW5nRmlsbEJveDogdHMg
PDwgInBhZGRpbmciOyBicmVhazsKKyAgICBjYXNlIENvbnRlbnRGaWxsQm94OiB0cyA8PCAiY29u
dGVudCI7IGJyZWFrOworICAgIGNhc2UgVGV4dEZpbGxCb3g6IHRzIDw8ICJ0ZXh0IjsgYnJlYWs7
CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgRUZpbGxSZXBlYXQgcmVwZWF0KQoreworICAgIHN3aXRjaCAocmVwZWF0KSB7
CisgICAgY2FzZSBSZXBlYXRGaWxsOiB0cyA8PCAicmVwZWF0IjsgYnJlYWs7CisgICAgY2FzZSBO
b1JlcGVhdEZpbGw6IHRzIDw8ICJuby1yZXBlYXQiOyBicmVhazsKKyAgICBjYXNlIFJvdW5kRmls
bDogdHMgPDwgInJvdW5kIjsgYnJlYWs7CisgICAgY2FzZSBTcGFjZUZpbGw6IHRzIDw8ICJzcGFj
ZSI7IGJyZWFrOworICAgIH0KKworICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgRU1hc2tTb3VyY2VUeXBlIG1hc2tTb3VyY2UpCit7Cisg
ICAgc3dpdGNoIChtYXNrU291cmNlKSB7CisgICAgY2FzZSBNYXNrQWxwaGE6IHRzIDw8ICJhbHBo
YSI7IGJyZWFrOworICAgIGNhc2UgTWFza0x1bWluYW5jZTogdHMgPDwgImx1bWluYW5jZSI7IGJy
ZWFrOworICAgIH0KKworICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgQmFja2dyb3VuZEVkZ2VPcmlnaW4gZWRnZSkKK3sKKyAgICBzd2l0
Y2ggKGVkZ2UpIHsKKyAgICBjYXNlIFRvcEVkZ2U6IHRzIDw8ICJ0b3AiOyBicmVhazsKKyAgICBj
YXNlIFJpZ2h0RWRnZTogdHMgPDwgInJpZ2h0IjsgYnJlYWs7CisgICAgY2FzZSBCb3R0b21FZGdl
OiB0cyA8PCAiYm90dG9tIjsgYnJlYWs7CisgICAgY2FzZSBMZWZ0RWRnZTogdHMgPDwgImxlZnQi
OyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZUNvbnN0YW50cy5oCmluZGV4IGJiYjRjYWExMTA0OGIyZGNiNzYxZmIxNTNjMzU0ZjJiZGZmYWI5
MGYuLmI3MmIzYTc0NWUwMzAwMzQ5MDNiNTlhNzI3MDdiZWRlMDEwMWI4NDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5o
CkBAIC0zMCw2ICszMCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgVGV4dFN0
cmVhbTsKKwogc3RhdGljIGNvbnN0IHNpemVfdCBQcmludENvbG9yQWRqdXN0Qml0cyA9IDE7CiBl
bnVtIFByaW50Q29sb3JBZGp1c3QgewogICAgIFByaW50Q29sb3JBZGp1c3RFY29ub215LApAQCAt
NjU2LDYgKzY1OCwxMyBAQCBlbnVtIGNsYXNzIFRyYWlsaW5nV29yZCB7CiB9OwogI2VuZGlmCiAK
K1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIEVGaWxsU2l6ZVR5cGUpOworVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgRUZpbGxBdHRhY2htZW50KTsKK1RleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIEVGaWxsQm94KTsKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYsIEVGaWxsUmVwZWF0KTsKK1RleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYsIEVNYXNrU291cmNlVHlwZSk7CitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mLCBCYWNrZ3JvdW5kRWRnZU9yaWdpbik7CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIFJlbmRlclN0eWxlQ29uc3RhbnRzX2gK
</data>
<flag name="review"
          id="288650"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>