<?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>201212</bug_id>
          
          <creation_ts>2019-08-27 19:44:02 -0700</creation_ts>
          <short_desc>[WHLSL] Matrices need to have correct alignment</short_desc>
          <delta_ts>2019-08-28 12:47:15 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>rmorisset</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1565623</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-08-27 19:44:02 -0700</bug_when>
    <thetext>[WHLSL] Matrices need to have 16-byte alignment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565624</commentid>
    <comment_count>1</comment_count>
      <attachid>377418</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-08-27 19:44:17 -0700</bug_when>
    <thetext>Created attachment 377418
Needs tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565658</commentid>
    <comment_count>2</comment_count>
      <attachid>377431</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-08-27 23:31:00 -0700</bug_when>
    <thetext>Created attachment 377431
Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565755</commentid>
    <comment_count>3</comment_count>
      <attachid>377453</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-08-28 09:56:34 -0700</bug_when>
    <thetext>Created attachment 377453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565763</commentid>
    <comment_count>4</comment_count>
      <attachid>377456</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-08-28 10:06:56 -0700</bug_when>
    <thetext>Created attachment 377456
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565764</commentid>
    <comment_count>5</comment_count>
      <attachid>377457</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-08-28 10:08:10 -0700</bug_when>
    <thetext>Created attachment 377457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565796</commentid>
    <comment_count>6</comment_count>
      <attachid>377457</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-08-28 10:49:28 -0700</bug_when>
    <thetext>Comment on attachment 377457
Patch

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

r=me

&gt; Source/WebCore/ChangeLog:8
&gt; +        Matrices have particular alignment requirements and size requirements.

Maybe document these requirements here?

&gt; Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLNativeTypeWriter.cpp:125
&gt; +            unsigned alignment = 16;

maybe &quot;const unsigned alignment = columns == 2 ? 8 : 16;&quot; ?
I was a bit surprised that for columns == 2 the if changes alignment, while for columns = 3 it does something completely different.
Not having the visual parallelism might make it clearer to someone skimming through (on top of being slightly shorter).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565826</commentid>
    <comment_count>7</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-08-28 12:46:51 -0700</bug_when>
    <thetext>Committed r249214: &lt;https://trac.webkit.org/changeset/249214&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565827</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-28 12:47:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/54803557&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377418</attachid>
            <date>2019-08-27 19:44:17 -0700</date>
            <delta_ts>2019-08-28 09:56:33 -0700</delta_ts>
            <desc>Needs tests</desc>
            <filename>bug-201212-20190827194416.patch</filename>
            <type>text/plain</type>
            <size>1807</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODQyZTg4NWZlNDZiMjk4
YjU1ODIzOGNhMjk1MWVhYWRiMGM1NjYyYS4uNjRiMmQ0YTVlNDhiNTJjNzQ2YzhmNjUyY2IwMDlj
MWJhMzRiM2RkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA4LTI3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dITFNMXSBN
YXRyaWNlcyBuZWVkIHRvIGhhdmUgMTYtYnl0ZSBhbGlnbm1lbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTIxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisg
ICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvTWV0YWwvV0hMU0xOYXRpdmVUeXBlV3JpdGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpNZXRhbDo6d3JpdGVOYXRpdmVUeXBlKToK
KwogMjAxOS0wOC0yNyAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlh
LmNvbT4KIAogICAgICAgICBEcmF3aW5nIGFuIGFuaW1hdGVkIGltYWdlIHRvIGEgY2FudmFzIHZp
YSBkcmF3SW1hZ2Ugc2hvdWxkIGRyYXcgdGhlIGZpcnN0IGZyYW1lCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9NZXRhbC9XSExTTE5hdGl2ZVR5cGVXcml0
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvTWV0YWwvV0hMU0xO
YXRpdmVUeXBlV3JpdGVyLmNwcAppbmRleCA5MTQzNjAzMmY4ZDU5MTdiNThiNGMwNzE2YTdkZGNk
MjJmMTg3NjQzLi40Y2RhNDJjOTEzYmZiNTRhMDkxMWFkMjZlYjM1YmQyM2IzNTA4ZTI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9NZXRhbC9XSExTTE5h
dGl2ZVR5cGVXcml0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dI
TFNML01ldGFsL1dITFNMTmF0aXZlVHlwZVdyaXRlci5jcHAKQEAgLTExNCw3ICsxMTQsNyBAQCBT
dHJpbmcgd3JpdGVOYXRpdmVUeXBlKEFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uJiBuYXRpdmVU
eXBlRGVjbGFyYXRpb24pCiAgICAgICAgIGF1dG8mIGludGVnZXJMaXRlcmFsMiA9IGNvbnN0YW50
RXhwcmVzc2lvbjIuaW50ZWdlckxpdGVyYWwoKTsKICAgICAgICAgdW5zaWduZWQgY29sdW1ucyA9
IGludGVnZXJMaXRlcmFsMi52YWx1ZSgpOwogICAgICAgICBBU1NFUlQoY29sdW1ucyA9PSAyIHx8
IGNvbHVtbnMgPT0gMyB8fCBjb2x1bW5zID09IDQpOwotICAgICAgICByZXR1cm4gbWFrZVN0cmlu
ZygiYXJyYXk8IiwgcHJlZml4LCAiLCAiLCBjb2x1bW5zICogcm93cywgIj4iKTsKKyAgICAgICAg
cmV0dXJuIG1ha2VTdHJpbmcoImFycmF5PCIsIHByZWZpeCwgIiwgIiwgY29sdW1ucyAqIHJvd3Ms
ICI+IF9fYXR0cmlidXRlX18oKGFsaWduZWQoMTYpKSkiKTsKICAgICB9CiAgICAgQVNTRVJUKG5h
dGl2ZVR5cGVEZWNsYXJhdGlvbi50eXBlQXJndW1lbnRzKCkuc2l6ZSgpID09IDEpOwogICAgIEFT
U0VSVChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxBU1Q6OlR5cGVSZWZlcmVuY2U+PihuYXRp
dmVUeXBlRGVjbGFyYXRpb24udHlwZUFyZ3VtZW50cygpWzBdKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>377431</attachid>
            <date>2019-08-27 23:31:00 -0700</date>
            <delta_ts>2019-08-28 09:57:12 -0700</delta_ts>
            <desc>Test</desc>
            <filename>matrix-alignment.html</filename>
            <type>text/html</type>
            <size>6131</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHNjcmlwdCBzcmM9Ii4uL2pzL3dlYmdwdS1m
dW5jdGlvbnMuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4KPHNjcmlwdD4KY29uc3Qgc2hhZGVy
U291cmNlID0gYApzdHJ1Y3QgQ29udGFpbmVyMngyIHsKICAgIGZsb2F0IHg7CiAgICBmbG9hdDJ4
MiBtOwogICAgZmxvYXQgeTsKfQoKc3RydWN0IENvbnRhaW5lcjJ4MyB7CiAgICBmbG9hdCB4Owog
ICAgZmxvYXQyeDMgbTsKICAgIGZsb2F0IHk7Cn0KCnN0cnVjdCBDb250YWluZXIyeDQgewogICAg
ZmxvYXQgeDsKICAgIGZsb2F0Mng0IG07CiAgICBmbG9hdCB5Owp9CgpzdHJ1Y3QgQ29udGFpbmVy
M3gyIHsKICAgIGZsb2F0IHg7CiAgICBmbG9hdDN4MiBtOwogICAgZmxvYXQgeTsKfQoKc3RydWN0
IENvbnRhaW5lcjN4MyB7CiAgICBmbG9hdCB4OwogICAgZmxvYXQzeDMgbTsKICAgIGZsb2F0IHk7
Cn0KCnN0cnVjdCBDb250YWluZXIzeDQgewogICAgZmxvYXQgeDsKICAgIGZsb2F0M3g0IG07CiAg
ICBmbG9hdCB5Owp9CgpzdHJ1Y3QgQ29udGFpbmVyNHgyIHsKICAgIGZsb2F0IHg7CiAgICBmbG9h
dDR4MiBtOwogICAgZmxvYXQgeTsKfQoKc3RydWN0IENvbnRhaW5lcjR4MyB7CiAgICBmbG9hdCB4
OwogICAgZmxvYXQ0eDMgbTsKICAgIGZsb2F0IHk7Cn0KCnN0cnVjdCBDb250YWluZXI0eDQgewog
ICAgZmxvYXQgeDsKICAgIGZsb2F0NHg0IG07CiAgICBmbG9hdCB5Owp9CgpbbnVtdGhyZWFkcygx
LCAxLCAxKV0KY29tcHV0ZSB2b2lkIGNvbXB1dGVTaGFkZXIyeDIoZGV2aWNlIENvbnRhaW5lcjJ4
MltdIGlucHV0IDogcmVnaXN0ZXIodTApLCBkZXZpY2UgZmxvYXRbXSBvdXRwdXQgOiByZWdpc3Rl
cih1MSkpIHsKICAgIG91dHB1dFswXSA9IGlucHV0WzBdLm1bMF1bMF07CiAgICBvdXRwdXRbMV0g
PSBpbnB1dFswXS55Owp9CgpbbnVtdGhyZWFkcygxLCAxLCAxKV0KY29tcHV0ZSB2b2lkIGNvbXB1
dGVTaGFkZXIyeDMoZGV2aWNlIENvbnRhaW5lcjJ4M1tdIGlucHV0IDogcmVnaXN0ZXIodTApLCBk
ZXZpY2UgZmxvYXRbXSBvdXRwdXQgOiByZWdpc3Rlcih1MSkpIHsKICAgIG91dHB1dFswXSA9IGlu
cHV0WzBdLm1bMF1bMF07CiAgICBvdXRwdXRbMV0gPSBpbnB1dFswXS55Owp9CgpbbnVtdGhyZWFk
cygxLCAxLCAxKV0KY29tcHV0ZSB2b2lkIGNvbXB1dGVTaGFkZXIyeDQoZGV2aWNlIENvbnRhaW5l
cjJ4M1tdIGlucHV0IDogcmVnaXN0ZXIodTApLCBkZXZpY2UgZmxvYXRbXSBvdXRwdXQgOiByZWdp
c3Rlcih1MSkpIHsKICAgIG91dHB1dFswXSA9IGlucHV0WzBdLm1bMF1bMF07CiAgICBvdXRwdXRb
MV0gPSBpbnB1dFswXS55Owp9CgpbbnVtdGhyZWFkcygxLCAxLCAxKV0KY29tcHV0ZSB2b2lkIGNv
bXB1dGVTaGFkZXIzeDIoZGV2aWNlIENvbnRhaW5lcjN4MltdIGlucHV0IDogcmVnaXN0ZXIodTAp
LCBkZXZpY2UgZmxvYXRbXSBvdXRwdXQgOiByZWdpc3Rlcih1MSkpIHsKICAgIG91dHB1dFswXSA9
IGlucHV0WzBdLm1bMF1bMF07CiAgICBvdXRwdXRbMV0gPSBpbnB1dFswXS55Owp9CgpbbnVtdGhy
ZWFkcygxLCAxLCAxKV0KY29tcHV0ZSB2b2lkIGNvbXB1dGVTaGFkZXIzeDMoZGV2aWNlIENvbnRh
aW5lcjN4M1tdIGlucHV0IDogcmVnaXN0ZXIodTApLCBkZXZpY2UgZmxvYXRbXSBvdXRwdXQgOiBy
ZWdpc3Rlcih1MSkpIHsKICAgIG91dHB1dFswXSA9IGlucHV0WzBdLm1bMF1bMF07CiAgICBvdXRw
dXRbMV0gPSBpbnB1dFswXS55Owp9CgpbbnVtdGhyZWFkcygxLCAxLCAxKV0KY29tcHV0ZSB2b2lk
IGNvbXB1dGVTaGFkZXIzeDQoZGV2aWNlIENvbnRhaW5lcjN4NFtdIGlucHV0IDogcmVnaXN0ZXIo
dTApLCBkZXZpY2UgZmxvYXRbXSBvdXRwdXQgOiByZWdpc3Rlcih1MSkpIHsKICAgIG91dHB1dFsw
XSA9IGlucHV0WzBdLm1bMF1bMF07CiAgICBvdXRwdXRbMV0gPSBpbnB1dFswXS55Owp9CgpbbnVt
dGhyZWFkcygxLCAxLCAxKV0KY29tcHV0ZSB2b2lkIGNvbXB1dGVTaGFkZXI0eDIoZGV2aWNlIENv
bnRhaW5lcjR4MltdIGlucHV0IDogcmVnaXN0ZXIodTApLCBkZXZpY2UgZmxvYXRbXSBvdXRwdXQg
OiByZWdpc3Rlcih1MSkpIHsKICAgIG91dHB1dFswXSA9IGlucHV0WzBdLm1bMF1bMF07CiAgICBv
dXRwdXRbMV0gPSBpbnB1dFswXS55Owp9CgpbbnVtdGhyZWFkcygxLCAxLCAxKV0KY29tcHV0ZSB2
b2lkIGNvbXB1dGVTaGFkZXI0eDMoZGV2aWNlIENvbnRhaW5lcjR4M1tdIGlucHV0IDogcmVnaXN0
ZXIodTApLCBkZXZpY2UgZmxvYXRbXSBvdXRwdXQgOiByZWdpc3Rlcih1MSkpIHsKICAgIG91dHB1
dFswXSA9IGlucHV0WzBdLm1bMF1bMF07CiAgICBvdXRwdXRbMV0gPSBpbnB1dFswXS55Owp9Cgpb
bnVtdGhyZWFkcygxLCAxLCAxKV0KY29tcHV0ZSB2b2lkIGNvbXB1dGVTaGFkZXI0eDQoZGV2aWNl
IENvbnRhaW5lcjR4NFtdIGlucHV0IDogcmVnaXN0ZXIodTApLCBkZXZpY2UgZmxvYXRbXSBvdXRw
dXQgOiByZWdpc3Rlcih1MSkpIHsKICAgIG91dHB1dFswXSA9IGlucHV0WzBdLm1bMF1bMF07CiAg
ICBvdXRwdXRbMV0gPSBpbnB1dFswXS55Owp9CmA7Cgphc3luYyBmdW5jdGlvbiBzdGFydChkZXZp
Y2UpIHsKICAgIGNvbnN0IHNoYWRlck1vZHVsZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUo
e2NvZGU6IHNoYWRlclNvdXJjZSwgaXNXSExTTDogdHJ1ZX0pOwoKICAgIGNvbnN0IGJpbmRHcm91
cExheW91dERlc2NyaXB0b3IgPSB7YmluZGluZ3M6IFt7YmluZGluZzogMCwgdmlzaWJpbGl0eTog
NywgdHlwZTogInN0b3JhZ2UtYnVmZmVyIn0sIHtiaW5kaW5nOiAxLCB2aXNpYmlsaXR5OiA3LCB0
eXBlOiAic3RvcmFnZS1idWZmZXIifV19OwogICAgY29uc3QgYmluZEdyb3VwTGF5b3V0ID0gZGV2
aWNlLmNyZWF0ZUJpbmRHcm91cExheW91dChiaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yKTsKICAg
IGNvbnN0IHBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciA9IHtiaW5kR3JvdXBMYXlvdXRzOiBbYmlu
ZEdyb3VwTGF5b3V0XX07CiAgICBjb25zdCBwaXBlbGluZUxheW91dCA9IGRldmljZS5jcmVhdGVQ
aXBlbGluZUxheW91dChwaXBlbGluZUxheW91dERlc2NyaXB0b3IpOwoKICAgIGNvbnN0IGlucHV0
U2l6ZSA9IEZsb2F0MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDMyOwogICAgY29uc3Qgb3V0
cHV0U2l6ZSA9IEZsb2F0MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDI7CgogICAgY29uc3Qg
dXBsb2FkQnVmZmVyRGVzY3JpcHRvciA9IHtzaXplOiBpbnB1dFNpemUsIHVzYWdlOiBHUFVCdWZm
ZXJVc2FnZS5NQVBfV1JJVEUgfCBHUFVCdWZmZXJVc2FnZS5UUkFOU0ZFUl9TUkN9OwogICAgY29u
c3QgdXBsb2FkQnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih1cGxvYWRCdWZmZXJEZXNjcmlw
dG9yKTsKICAgIGNvbnN0IHVwbG9hZEJ1ZmZlckFycmF5QnVmZmVyID0gYXdhaXQgdXBsb2FkQnVm
ZmVyLm1hcFdyaXRlQXN5bmMoKTsKICAgIGNvbnN0IHVwbG9hZEJ1ZmZlckZsb2F0MzJBcnJheSA9
IG5ldyBGbG9hdDMyQXJyYXkodXBsb2FkQnVmZmVyQXJyYXlCdWZmZXIpOwogICAgZm9yIChsZXQg
aSA9IDA7IGkgPCAzMjsgKytpKQogICAgICAgIHVwbG9hZEJ1ZmZlckZsb2F0MzJBcnJheVtpXSA9
IGk7CiAgICB1cGxvYWRCdWZmZXIudW5tYXAoKTsKCiAgICBjb25zdCBpbnB1dEJ1ZmZlckRlc2Ny
aXB0b3IgPSB7c2l6ZTogaW5wdXRTaXplLCB1c2FnZTogR1BVQnVmZmVyVXNhZ2UuVFJBTlNGRVJf
RFNUIHwgR1BVQnVmZmVyVXNhZ2UuU1RPUkFHRX07CiAgICBjb25zdCBpbnB1dEJ1ZmZlciA9IGRl
dmljZS5jcmVhdGVCdWZmZXIoaW5wdXRCdWZmZXJEZXNjcmlwdG9yKTsKCiAgICBjb25zdCBvdXRw
dXRCdWZmZXJEZXNjcmlwdG9yID0ge3NpemU6IG91dHB1dFNpemUsIHVzYWdlOiBHUFVCdWZmZXJV
c2FnZS5TVE9SQUdFIHwgR1BVQnVmZmVyVXNhZ2UuTUFQX1JFQUR9OwogICAgY29uc3Qgb3V0cHV0
QnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcihvdXRwdXRCdWZmZXJEZXNjcmlwdG9yKTsKCiAg
ICBjb25zdCBiaW5kR3JvdXBEZXNjcmlwdG9yID0ge2xheW91dDogYmluZEdyb3VwTGF5b3V0LCBi
aW5kaW5nczogW3tiaW5kaW5nOiAwLCByZXNvdXJjZToge2J1ZmZlcjogaW5wdXRCdWZmZXIsIHNp
emU6IGlucHV0U2l6ZX19LCB7YmluZGluZzogMSwgcmVzb3VyY2U6IHtidWZmZXI6IG91dHB1dEJ1
ZmZlciwgc2l6ZTogb3V0cHV0U2l6ZX19XX07CiAgICBjb25zdCBiaW5kR3JvdXAgPSBkZXZpY2Uu
Y3JlYXRlQmluZEdyb3VwKGJpbmRHcm91cERlc2NyaXB0b3IpOwoKICAgIGxldCB0ZXN0cyA9IFsi
Y29tcHV0ZVNoYWRlcjJ4MiIsICJjb21wdXRlU2hhZGVyMngzIiwgImNvbXB1dGVTaGFkZXIyeDQi
LCAiY29tcHV0ZVNoYWRlcjN4MiIsICJjb21wdXRlU2hhZGVyM3gzIiwgImNvbXB1dGVTaGFkZXIz
eDQiLCAiY29tcHV0ZVNoYWRlcjR4MiIsICJjb21wdXRlU2hhZGVyNHgzIiwgImNvbXB1dGVTaGFk
ZXI0eDQiXTsKICAgIGxldCByZXN1bHRzID0gW107CiAgICBmb3IgKGxldCB0ZXN0IG9mIHRlc3Rz
KSB7CiAgICAgICAgY29uc3QgY29tcHV0ZVBpcGVsaW5lID0gZGV2aWNlLmNyZWF0ZUNvbXB1dGVQ
aXBlbGluZSh7Y29tcHV0ZVN0YWdlOiB7bW9kdWxlOiBzaGFkZXJNb2R1bGUsIGVudHJ5UG9pbnQ6
IHRlc3R9LCBsYXlvdXQ6IHBpcGVsaW5lTGF5b3V0fSk7CiAgICAgICAgY29uc3QgY29tbWFuZEVu
Y29kZXIgPSBkZXZpY2UuY3JlYXRlQ29tbWFuZEVuY29kZXIoKTsgLy8ge30KICAgICAgICBjb21t
YW5kRW5jb2Rlci5jb3B5QnVmZmVyVG9CdWZmZXIodXBsb2FkQnVmZmVyLCAwLCBpbnB1dEJ1ZmZl
ciwgMCwgaW5wdXRTaXplKTsKICAgICAgICBjb25zdCBjb21wdXRlUGFzc0VuY29kZXIgPSBjb21t
YW5kRW5jb2Rlci5iZWdpbkNvbXB1dGVQYXNzKCk7CiAgICAgICAgY29tcHV0ZVBhc3NFbmNvZGVy
LnNldFBpcGVsaW5lKGNvbXB1dGVQaXBlbGluZSk7CiAgICAgICAgY29tcHV0ZVBhc3NFbmNvZGVy
LnNldEJpbmRHcm91cCgwLCBiaW5kR3JvdXApOwogICAgICAgIGNvbXB1dGVQYXNzRW5jb2Rlci5k
aXNwYXRjaCgxLCAxLCAxKTsKICAgICAgICBjb21wdXRlUGFzc0VuY29kZXIuZW5kUGFzcygpOwog
ICAgICAgIGNvbnN0IGNvbW1hbmRCdWZmZXIgPSBjb21tYW5kRW5jb2Rlci5maW5pc2goKTsKICAg
ICAgICBkZXZpY2UuZ2V0UXVldWUoKS5zdWJtaXQoW2NvbW1hbmRCdWZmZXJdKTsKCiAgICAgICAg
Y29uc3Qgb3V0cHV0QXJyYXlCdWZmZXIgPSBhd2FpdCBvdXRwdXRCdWZmZXIubWFwUmVhZEFzeW5j
KCk7CiAgICAgICAgY29uc3Qgb3V0cHV0RmxvYXQzMkFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShv
dXRwdXRBcnJheUJ1ZmZlcik7CiAgICAgICAgcmVzdWx0cy5wdXNoKG91dHB1dEZsb2F0MzJBcnJh
eVswXSk7CiAgICAgICAgcmVzdWx0cy5wdXNoKG91dHB1dEZsb2F0MzJBcnJheVsxXSk7CiAgICAg
ICAgb3V0cHV0QnVmZmVyLnVubWFwKCk7CiAgICB9CiAgICBsZXQgZXhwZWN0ZWQgPSBbMiwgNiwg
NCwgMTIsIDQsIDEyLCAyLCA4LCA0LCAxNiwgNCwgMTYsIDIsIDEwLCA0LCAyMCwgNCwgMjBdOwog
ICAgbGV0IGVycm9yID0gZmFsc2U7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGV4cGVjdGVkLmxl
bmd0aDsgKytpKSB7CiAgICAgICAgaWYgKHJlc3VsdHNbaV0gIT0gZXhwZWN0ZWRbaV0pIHsKICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAg
ICB9CiAgICB0ZXN0UGFzc2VkKCIiKTsKfQp3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cmdl
dEJhc2ljRGV2aWNlKCkudGhlbihmdW5jdGlvbihkZXZpY2UpIHsKICAgIHN0YXJ0KGRldmljZSku
dGhlbihmdW5jdGlvbigpIHsKICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgIH0sIGZ1bmN0aW9u
KCkgewogICAgICAgIHRlc3RGYWlsZWQoIiIpOwogICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAg
fSk7Cn0sIGZ1bmN0aW9uKCkgewogICAgdGVzdFBhc3NlZCgiIik7CiAgICBmaW5pc2hKU1Rlc3Qo
KTsKfSk7Cjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377453</attachid>
            <date>2019-08-28 09:56:34 -0700</date>
            <delta_ts>2019-08-28 10:06:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201212-20190828095633.patch</filename>
            <type>text/plain</type>
            <size>9902</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmIxNjkzYjBkNTJjM2Zj
ZjUyNTFmN2QyMzI5MDY2OGMxZTRjMDk1Mi4uYWMxZTA1YzAyYWRhZDAxODNmNDc4MmY5NmJmYjFk
OTU3OWMyOTY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTA4LTI4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dITFNMXSBN
YXRyaWNlcyBuZWVkIHRvIGhhdmUgY29ycmVjdCBhbGlnbm1lbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTIxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hdHJpY2VzIGhhdmUgcGFydGljdWxhciBh
bGlnbm1lbnQgcmVxdWlyZW1lbnRzIGFuZCBzaXplIHJlcXVpcmVtZW50cy4KKyAgICAgICAgVGhl
c2UgYXJlIGltcG9ydGFudCBiZWNhdXNlIHRoZXkgbWF5IGJlIGEgbWVtYmVyIG9mIGEgc3RydWN0
LCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBtaXNwbGFjZQorICAgICAgICBldmVyeSBzdWNjZXNzaXZl
IGl0ZW0gaW4gdGhlIHN0cnVjdC4KKworICAgICAgICBUZXN0OiB3ZWJncHUvd2hsc2wvbWF0cml4
LWFsaWdubWVudC5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9NZXRhbC9X
SExTTE5hdGl2ZVR5cGVXcml0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6Ok1ldGFs
Ojp3cml0ZU5hdGl2ZVR5cGUpOgorCiAyMDE5LTA4LTI0ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bVEZDXSBBZGQgc2VjdGlvbiByZW5kZXJlcnMgdG8g
dGhlIGxheW91dCB0cmVlIChUSEVBRC9UQk9EWS9URk9PVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML01ldGFsL1dITFNMTmF0aXZlVHlwZVdyaXRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9NZXRhbC9XSExTTE5hdGl2
ZVR5cGVXcml0ZXIuY3BwCmluZGV4IDkxNDM2MDMyZjhkNTkxN2I1OGI0YzA3MTZhN2RkY2QyMmYx
ODc2NDMuLjA2ZGIzZTI1MjRmNzg3ZDU0YjA1NmY0MGIzZDYxODNlYjkxNGI4N2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML01ldGFsL1dITFNMTmF0aXZl
VHlwZVdyaXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wv
TWV0YWwvV0hMU0xOYXRpdmVUeXBlV3JpdGVyLmNwcApAQCAtMTE0LDcgKzExNCwxMyBAQCBTdHJp
bmcgd3JpdGVOYXRpdmVUeXBlKEFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uJiBuYXRpdmVUeXBl
RGVjbGFyYXRpb24pCiAgICAgICAgIGF1dG8mIGludGVnZXJMaXRlcmFsMiA9IGNvbnN0YW50RXhw
cmVzc2lvbjIuaW50ZWdlckxpdGVyYWwoKTsKICAgICAgICAgdW5zaWduZWQgY29sdW1ucyA9IGlu
dGVnZXJMaXRlcmFsMi52YWx1ZSgpOwogICAgICAgICBBU1NFUlQoY29sdW1ucyA9PSAyIHx8IGNv
bHVtbnMgPT0gMyB8fCBjb2x1bW5zID09IDQpOwotICAgICAgICByZXR1cm4gbWFrZVN0cmluZygi
YXJyYXk8IiwgcHJlZml4LCAiLCAiLCBjb2x1bW5zICogcm93cywgIj4iKTsKKworICAgICAgICB1
bnNpZ25lZCBhbGlnbm1lbnQgPSAxNjsKKyAgICAgICAgaWYgKGNvbHVtbnMgPT0gMikKKyAgICAg
ICAgICAgIGFsaWdubWVudCA9IDg7CisgICAgICAgIGlmIChjb2x1bW5zID09IDMpCisgICAgICAg
ICAgICBjb2x1bW5zID0gNDsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoImFycmF5PCIsIHBy
ZWZpeCwgIiwgIiwgY29sdW1ucyAqIHJvd3MsICI+IF9fYXR0cmlidXRlX18oKGFsaWduZWQoIiwg
YWxpZ25tZW50LCAiKSkpIik7CiAgICAgfQogICAgIEFTU0VSVChuYXRpdmVUeXBlRGVjbGFyYXRp
b24udHlwZUFyZ3VtZW50cygpLnNpemUoKSA9PSAxKTsKICAgICBBU1NFUlQoV1RGOjpob2xkc19h
bHRlcm5hdGl2ZTxSZWY8QVNUOjpUeXBlUmVmZXJlbmNlPj4obmF0aXZlVHlwZURlY2xhcmF0aW9u
LnR5cGVBcmd1bWVudHMoKVswXSkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA1NjQ2YjkwNzg5ODRkOTM0MzM1YTNjZjlm
YzQ5NzhiODBhM2Q5OTYuLjcwYTE2ZTdhN2RhZDIzYjFhNTJhMjhiNWJlNDc3YzM4YmIzYjgyNDMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0wOC0yOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxt
bWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtXSExTTF0gTWF0cmljZXMgbmVlZCB0byBo
YXZlIGNvcnJlY3QgYWxpZ25tZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDEyMTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHdlYmdwdS93aGxzbC9tYXRyaXgtYWxpZ25tZW50LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsL21hdHJpeC1hbGlnbm1lbnQuaHRtbDog
QWRkZWQuCisKIDIwMTktMDgtMjMgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGNyZWF0ZSBhZGRpdGlvbmFsIGNvbW1hbmQgbGluZSBh
cGkgZnVuY3Rpb25zIGZvciBvdGhlciBjb25zb2xlIG1ldGhvZHMKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdwdS93aGxzbC9tYXRyaXgtYWxpZ25tZW50LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3dlYmdwdS93aGxzbC9tYXRyaXgtYWxpZ25tZW50LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40ODgyZjkwNDU4YTU2ZjU0NWViMTljNzRkMjdmOGY2YWYyMzE4MmQ0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsL21hdHJpeC1hbGlnbm1lbnQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUv
d2hsc2wvbWF0cml4LWFsaWdubWVudC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsL21h
dHJpeC1hbGlnbm1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWM0OWM5ZDYzMjBkYjJmNjY3OTgwMmNm
ODYxYmEyOTc3YTVhMjgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsL21hdHJpeC1hbGlnbm1lbnQuaHRtbApAQCAtMCwwICsxLDE5MiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3dlYmdwdS1mdW5jdGlvbnMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Citjb25zdCBzaGFkZXJTb3Vy
Y2UgPSBgCitzdHJ1Y3QgQ29udGFpbmVyMngyIHsKKyAgICBmbG9hdCB4OworICAgIGZsb2F0Mngy
IG07CisgICAgZmxvYXQgeTsKK30KKworc3RydWN0IENvbnRhaW5lcjJ4MyB7CisgICAgZmxvYXQg
eDsKKyAgICBmbG9hdDJ4MyBtOworICAgIGZsb2F0IHk7Cit9CisKK3N0cnVjdCBDb250YWluZXIy
eDQgeworICAgIGZsb2F0IHg7CisgICAgZmxvYXQyeDQgbTsKKyAgICBmbG9hdCB5OworfQorCitz
dHJ1Y3QgQ29udGFpbmVyM3gyIHsKKyAgICBmbG9hdCB4OworICAgIGZsb2F0M3gyIG07CisgICAg
ZmxvYXQgeTsKK30KKworc3RydWN0IENvbnRhaW5lcjN4MyB7CisgICAgZmxvYXQgeDsKKyAgICBm
bG9hdDN4MyBtOworICAgIGZsb2F0IHk7Cit9CisKK3N0cnVjdCBDb250YWluZXIzeDQgeworICAg
IGZsb2F0IHg7CisgICAgZmxvYXQzeDQgbTsKKyAgICBmbG9hdCB5OworfQorCitzdHJ1Y3QgQ29u
dGFpbmVyNHgyIHsKKyAgICBmbG9hdCB4OworICAgIGZsb2F0NHgyIG07CisgICAgZmxvYXQgeTsK
K30KKworc3RydWN0IENvbnRhaW5lcjR4MyB7CisgICAgZmxvYXQgeDsKKyAgICBmbG9hdDR4MyBt
OworICAgIGZsb2F0IHk7Cit9CisKK3N0cnVjdCBDb250YWluZXI0eDQgeworICAgIGZsb2F0IHg7
CisgICAgZmxvYXQ0eDQgbTsKKyAgICBmbG9hdCB5OworfQorCitbbnVtdGhyZWFkcygxLCAxLCAx
KV0KK2NvbXB1dGUgdm9pZCBjb21wdXRlU2hhZGVyMngyKGRldmljZSBDb250YWluZXIyeDJbXSBp
bnB1dCA6IHJlZ2lzdGVyKHUwKSwgZGV2aWNlIGZsb2F0W10gb3V0cHV0IDogcmVnaXN0ZXIodTEp
KSB7CisgICAgb3V0cHV0WzBdID0gaW5wdXRbMF0ubVswXVswXTsKKyAgICBvdXRwdXRbMV0gPSBp
bnB1dFswXS55OworfQorCitbbnVtdGhyZWFkcygxLCAxLCAxKV0KK2NvbXB1dGUgdm9pZCBjb21w
dXRlU2hhZGVyMngzKGRldmljZSBDb250YWluZXIyeDNbXSBpbnB1dCA6IHJlZ2lzdGVyKHUwKSwg
ZGV2aWNlIGZsb2F0W10gb3V0cHV0IDogcmVnaXN0ZXIodTEpKSB7CisgICAgb3V0cHV0WzBdID0g
aW5wdXRbMF0ubVswXVswXTsKKyAgICBvdXRwdXRbMV0gPSBpbnB1dFswXS55OworfQorCitbbnVt
dGhyZWFkcygxLCAxLCAxKV0KK2NvbXB1dGUgdm9pZCBjb21wdXRlU2hhZGVyMng0KGRldmljZSBD
b250YWluZXIyeDRbXSBpbnB1dCA6IHJlZ2lzdGVyKHUwKSwgZGV2aWNlIGZsb2F0W10gb3V0cHV0
IDogcmVnaXN0ZXIodTEpKSB7CisgICAgb3V0cHV0WzBdID0gaW5wdXRbMF0ubVswXVswXTsKKyAg
ICBvdXRwdXRbMV0gPSBpbnB1dFswXS55OworfQorCitbbnVtdGhyZWFkcygxLCAxLCAxKV0KK2Nv
bXB1dGUgdm9pZCBjb21wdXRlU2hhZGVyM3gyKGRldmljZSBDb250YWluZXIzeDJbXSBpbnB1dCA6
IHJlZ2lzdGVyKHUwKSwgZGV2aWNlIGZsb2F0W10gb3V0cHV0IDogcmVnaXN0ZXIodTEpKSB7Cisg
ICAgb3V0cHV0WzBdID0gaW5wdXRbMF0ubVswXVswXTsKKyAgICBvdXRwdXRbMV0gPSBpbnB1dFsw
XS55OworfQorCitbbnVtdGhyZWFkcygxLCAxLCAxKV0KK2NvbXB1dGUgdm9pZCBjb21wdXRlU2hh
ZGVyM3gzKGRldmljZSBDb250YWluZXIzeDNbXSBpbnB1dCA6IHJlZ2lzdGVyKHUwKSwgZGV2aWNl
IGZsb2F0W10gb3V0cHV0IDogcmVnaXN0ZXIodTEpKSB7CisgICAgb3V0cHV0WzBdID0gaW5wdXRb
MF0ubVswXVswXTsKKyAgICBvdXRwdXRbMV0gPSBpbnB1dFswXS55OworfQorCitbbnVtdGhyZWFk
cygxLCAxLCAxKV0KK2NvbXB1dGUgdm9pZCBjb21wdXRlU2hhZGVyM3g0KGRldmljZSBDb250YWlu
ZXIzeDRbXSBpbnB1dCA6IHJlZ2lzdGVyKHUwKSwgZGV2aWNlIGZsb2F0W10gb3V0cHV0IDogcmVn
aXN0ZXIodTEpKSB7CisgICAgb3V0cHV0WzBdID0gaW5wdXRbMF0ubVswXVswXTsKKyAgICBvdXRw
dXRbMV0gPSBpbnB1dFswXS55OworfQorCitbbnVtdGhyZWFkcygxLCAxLCAxKV0KK2NvbXB1dGUg
dm9pZCBjb21wdXRlU2hhZGVyNHgyKGRldmljZSBDb250YWluZXI0eDJbXSBpbnB1dCA6IHJlZ2lz
dGVyKHUwKSwgZGV2aWNlIGZsb2F0W10gb3V0cHV0IDogcmVnaXN0ZXIodTEpKSB7CisgICAgb3V0
cHV0WzBdID0gaW5wdXRbMF0ubVswXVswXTsKKyAgICBvdXRwdXRbMV0gPSBpbnB1dFswXS55Owor
fQorCitbbnVtdGhyZWFkcygxLCAxLCAxKV0KK2NvbXB1dGUgdm9pZCBjb21wdXRlU2hhZGVyNHgz
KGRldmljZSBDb250YWluZXI0eDNbXSBpbnB1dCA6IHJlZ2lzdGVyKHUwKSwgZGV2aWNlIGZsb2F0
W10gb3V0cHV0IDogcmVnaXN0ZXIodTEpKSB7CisgICAgb3V0cHV0WzBdID0gaW5wdXRbMF0ubVsw
XVswXTsKKyAgICBvdXRwdXRbMV0gPSBpbnB1dFswXS55OworfQorCitbbnVtdGhyZWFkcygxLCAx
LCAxKV0KK2NvbXB1dGUgdm9pZCBjb21wdXRlU2hhZGVyNHg0KGRldmljZSBDb250YWluZXI0eDRb
XSBpbnB1dCA6IHJlZ2lzdGVyKHUwKSwgZGV2aWNlIGZsb2F0W10gb3V0cHV0IDogcmVnaXN0ZXIo
dTEpKSB7CisgICAgb3V0cHV0WzBdID0gaW5wdXRbMF0ubVswXVswXTsKKyAgICBvdXRwdXRbMV0g
PSBpbnB1dFswXS55OworfQorYDsKKworYXN5bmMgZnVuY3Rpb24gc3RhcnQoZGV2aWNlKSB7Cisg
ICAgY29uc3Qgc2hhZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7Y29kZTog
c2hhZGVyU291cmNlLCBpc1dITFNMOiB0cnVlfSk7CisKKyAgICBjb25zdCBiaW5kR3JvdXBMYXlv
dXREZXNjcmlwdG9yID0ge2JpbmRpbmdzOiBbe2JpbmRpbmc6IDAsIHZpc2liaWxpdHk6IDcsIHR5
cGU6ICJzdG9yYWdlLWJ1ZmZlciJ9LCB7YmluZGluZzogMSwgdmlzaWJpbGl0eTogNywgdHlwZTog
InN0b3JhZ2UtYnVmZmVyIn1dfTsKKyAgICBjb25zdCBiaW5kR3JvdXBMYXlvdXQgPSBkZXZpY2Uu
Y3JlYXRlQmluZEdyb3VwTGF5b3V0KGJpbmRHcm91cExheW91dERlc2NyaXB0b3IpOworICAgIGNv
bnN0IHBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciA9IHtiaW5kR3JvdXBMYXlvdXRzOiBbYmluZEdy
b3VwTGF5b3V0XX07CisgICAgY29uc3QgcGlwZWxpbmVMYXlvdXQgPSBkZXZpY2UuY3JlYXRlUGlw
ZWxpbmVMYXlvdXQocGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yKTsKKworICAgIGNvbnN0IGlucHV0
U2l6ZSA9IEZsb2F0MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDMyOworICAgIGNvbnN0IG91
dHB1dFNpemUgPSBGbG9hdDMyQXJyYXkuQllURVNfUEVSX0VMRU1FTlQgKiAyOworCisgICAgY29u
c3QgdXBsb2FkQnVmZmVyRGVzY3JpcHRvciA9IHtzaXplOiBpbnB1dFNpemUsIHVzYWdlOiBHUFVC
dWZmZXJVc2FnZS5NQVBfV1JJVEUgfCBHUFVCdWZmZXJVc2FnZS5UUkFOU0ZFUl9TUkN9OworICAg
IGNvbnN0IHVwbG9hZEJ1ZmZlciA9IGRldmljZS5jcmVhdGVCdWZmZXIodXBsb2FkQnVmZmVyRGVz
Y3JpcHRvcik7CisgICAgY29uc3QgdXBsb2FkQnVmZmVyQXJyYXlCdWZmZXIgPSBhd2FpdCB1cGxv
YWRCdWZmZXIubWFwV3JpdGVBc3luYygpOworICAgIGNvbnN0IHVwbG9hZEJ1ZmZlckZsb2F0MzJB
cnJheSA9IG5ldyBGbG9hdDMyQXJyYXkodXBsb2FkQnVmZmVyQXJyYXlCdWZmZXIpOworICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgMzI7ICsraSkKKyAgICAgICAgdXBsb2FkQnVmZmVyRmxvYXQzMkFy
cmF5W2ldID0gaTsKKyAgICB1cGxvYWRCdWZmZXIudW5tYXAoKTsKKworICAgIGNvbnN0IGlucHV0
QnVmZmVyRGVzY3JpcHRvciA9IHtzaXplOiBpbnB1dFNpemUsIHVzYWdlOiBHUFVCdWZmZXJVc2Fn
ZS5UUkFOU0ZFUl9EU1QgfCBHUFVCdWZmZXJVc2FnZS5TVE9SQUdFfTsKKyAgICBjb25zdCBpbnB1
dEJ1ZmZlciA9IGRldmljZS5jcmVhdGVCdWZmZXIoaW5wdXRCdWZmZXJEZXNjcmlwdG9yKTsKKwor
ICAgIGNvbnN0IG91dHB1dEJ1ZmZlckRlc2NyaXB0b3IgPSB7c2l6ZTogb3V0cHV0U2l6ZSwgdXNh
Z2U6IEdQVUJ1ZmZlclVzYWdlLlNUT1JBR0UgfCBHUFVCdWZmZXJVc2FnZS5NQVBfUkVBRH07Cisg
ICAgY29uc3Qgb3V0cHV0QnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcihvdXRwdXRCdWZmZXJE
ZXNjcmlwdG9yKTsKKworICAgIGNvbnN0IGJpbmRHcm91cERlc2NyaXB0b3IgPSB7bGF5b3V0OiBi
aW5kR3JvdXBMYXlvdXQsIGJpbmRpbmdzOiBbe2JpbmRpbmc6IDAsIHJlc291cmNlOiB7YnVmZmVy
OiBpbnB1dEJ1ZmZlciwgc2l6ZTogaW5wdXRTaXplfX0sIHtiaW5kaW5nOiAxLCByZXNvdXJjZTog
e2J1ZmZlcjogb3V0cHV0QnVmZmVyLCBzaXplOiBvdXRwdXRTaXplfX1dfTsKKyAgICBjb25zdCBi
aW5kR3JvdXAgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3VwKGJpbmRHcm91cERlc2NyaXB0b3IpOwor
CisgICAgbGV0IHRlc3RzID0gWyJjb21wdXRlU2hhZGVyMngyIiwgImNvbXB1dGVTaGFkZXIyeDMi
LCAiY29tcHV0ZVNoYWRlcjJ4NCIsICJjb21wdXRlU2hhZGVyM3gyIiwgImNvbXB1dGVTaGFkZXIz
eDMiLCAiY29tcHV0ZVNoYWRlcjN4NCIsICJjb21wdXRlU2hhZGVyNHgyIiwgImNvbXB1dGVTaGFk
ZXI0eDMiLCAiY29tcHV0ZVNoYWRlcjR4NCJdOworICAgIGxldCByZXN1bHRzID0gW107CisgICAg
Zm9yIChsZXQgdGVzdCBvZiB0ZXN0cykgeworICAgICAgICBjb25zdCBjb21wdXRlUGlwZWxpbmUg
PSBkZXZpY2UuY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKHtjb21wdXRlU3RhZ2U6IHttb2R1bGU6IHNo
YWRlck1vZHVsZSwgZW50cnlQb2ludDogdGVzdH0sIGxheW91dDogcGlwZWxpbmVMYXlvdXR9KTsK
KyAgICAgICAgY29uc3QgY29tbWFuZEVuY29kZXIgPSBkZXZpY2UuY3JlYXRlQ29tbWFuZEVuY29k
ZXIoKTsgLy8ge30KKyAgICAgICAgY29tbWFuZEVuY29kZXIuY29weUJ1ZmZlclRvQnVmZmVyKHVw
bG9hZEJ1ZmZlciwgMCwgaW5wdXRCdWZmZXIsIDAsIGlucHV0U2l6ZSk7CisgICAgICAgIGNvbnN0
IGNvbXB1dGVQYXNzRW5jb2RlciA9IGNvbW1hbmRFbmNvZGVyLmJlZ2luQ29tcHV0ZVBhc3MoKTsK
KyAgICAgICAgY29tcHV0ZVBhc3NFbmNvZGVyLnNldFBpcGVsaW5lKGNvbXB1dGVQaXBlbGluZSk7
CisgICAgICAgIGNvbXB1dGVQYXNzRW5jb2Rlci5zZXRCaW5kR3JvdXAoMCwgYmluZEdyb3VwKTsK
KyAgICAgICAgY29tcHV0ZVBhc3NFbmNvZGVyLmRpc3BhdGNoKDEsIDEsIDEpOworICAgICAgICBj
b21wdXRlUGFzc0VuY29kZXIuZW5kUGFzcygpOworICAgICAgICBjb25zdCBjb21tYW5kQnVmZmVy
ID0gY29tbWFuZEVuY29kZXIuZmluaXNoKCk7CisgICAgICAgIGRldmljZS5nZXRRdWV1ZSgpLnN1
Ym1pdChbY29tbWFuZEJ1ZmZlcl0pOworCisgICAgICAgIGNvbnN0IG91dHB1dEFycmF5QnVmZmVy
ID0gYXdhaXQgb3V0cHV0QnVmZmVyLm1hcFJlYWRBc3luYygpOworICAgICAgICBjb25zdCBvdXRw
dXRGbG9hdDMyQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KG91dHB1dEFycmF5QnVmZmVyKTsKKyAg
ICAgICAgcmVzdWx0cy5wdXNoKG91dHB1dEZsb2F0MzJBcnJheVswXSk7CisgICAgICAgIHJlc3Vs
dHMucHVzaChvdXRwdXRGbG9hdDMyQXJyYXlbMV0pOworICAgICAgICBvdXRwdXRCdWZmZXIudW5t
YXAoKTsKKyAgICB9CisgICAgbGV0IGV4cGVjdGVkID0gWzIsIDYsIDQsIDEyLCA0LCAxMiwgMiwg
OCwgNCwgMTYsIDQsIDE2LCAyLCAxMCwgNCwgMjAsIDQsIDIwXTsKKyAgICBsZXQgZXJyb3IgPSBm
YWxzZTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aDsgKytpKSB7Cisg
ICAgICAgIGlmIChyZXN1bHRzW2ldICE9IGV4cGVjdGVkW2ldKSB7CisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCIiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICB0
ZXN0UGFzc2VkKCIiKTsKK30KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2dldEJhc2lj
RGV2aWNlKCkudGhlbihmdW5jdGlvbihkZXZpY2UpIHsKKyAgICBzdGFydChkZXZpY2UpLnRoZW4o
ZnVuY3Rpb24oKSB7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0sIGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgdGVzdEZhaWxlZCgiIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
IH0pOworfSwgZnVuY3Rpb24oKSB7CisgICAgdGVzdFBhc3NlZCgiIik7CisgICAgZmluaXNoSlNU
ZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377456</attachid>
            <date>2019-08-28 10:06:56 -0700</date>
            <delta_ts>2019-08-28 10:08:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201212-20190828100655.patch</filename>
            <type>text/plain</type>
            <size>11114</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmIxNjkzYjBkNTJjM2Zj
ZjUyNTFmN2QyMzI5MDY2OGMxZTRjMDk1Mi4uYWMxZTA1YzAyYWRhZDAxODNmNDc4MmY5NmJmYjFk
OTU3OWMyOTY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTA4LTI4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dITFNMXSBN
YXRyaWNlcyBuZWVkIHRvIGhhdmUgY29ycmVjdCBhbGlnbm1lbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTIxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hdHJpY2VzIGhhdmUgcGFydGljdWxhciBh
bGlnbm1lbnQgcmVxdWlyZW1lbnRzIGFuZCBzaXplIHJlcXVpcmVtZW50cy4KKyAgICAgICAgVGhl
c2UgYXJlIGltcG9ydGFudCBiZWNhdXNlIHRoZXkgbWF5IGJlIGEgbWVtYmVyIG9mIGEgc3RydWN0
LCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBtaXNwbGFjZQorICAgICAgICBldmVyeSBzdWNjZXNzaXZl
IGl0ZW0gaW4gdGhlIHN0cnVjdC4KKworICAgICAgICBUZXN0OiB3ZWJncHUvd2hsc2wvbWF0cml4
LWFsaWdubWVudC5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9NZXRhbC9X
SExTTE5hdGl2ZVR5cGVXcml0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6Ok1ldGFs
Ojp3cml0ZU5hdGl2ZVR5cGUpOgorCiAyMDE5LTA4LTI0ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bVEZDXSBBZGQgc2VjdGlvbiByZW5kZXJlcnMgdG8g
dGhlIGxheW91dCB0cmVlIChUSEVBRC9UQk9EWS9URk9PVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML01ldGFsL1dITFNMTmF0aXZlVHlwZVdyaXRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9NZXRhbC9XSExTTE5hdGl2
ZVR5cGVXcml0ZXIuY3BwCmluZGV4IDkxNDM2MDMyZjhkNTkxN2I1OGI0YzA3MTZhN2RkY2QyMmYx
ODc2NDMuLjFkMWM1NzkzZGU1MzEzYzlmYjlkMzM1YTQ4YzE1NjM0Yzc2NTE2ODggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML01ldGFsL1dITFNMTmF0aXZl
VHlwZVdyaXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wv
TWV0YWwvV0hMU0xOYXRpdmVUeXBlV3JpdGVyLmNwcApAQCAtMzgsNiArMzgsMTEgQEAgbmFtZXNw
YWNlIFdITFNMIHsKIAogbmFtZXNwYWNlIE1ldGFsIHsKIAorZW51bSBjbGFzcyBNYXRyaXhUeXBl
IDogdWludDhfdCB7CisgICAgRmxvYXQsCisgICAgQm9vbAorfTsKKwogU3RyaW5nIHdyaXRlTmF0
aXZlVHlwZShBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbiYgbmF0aXZlVHlwZURlY2xhcmF0aW9u
KQogewogICAgIGlmIChuYXRpdmVUeXBlRGVjbGFyYXRpb24ubmFtZSgpID09ICJ2b2lkIikKQEAg
LTk2LDExICsxMDEsMTEgQEAgU3RyaW5nIHdyaXRlTmF0aXZlVHlwZShBU1Q6Ok5hdGl2ZVR5cGVE
ZWNsYXJhdGlvbiYgbmF0aXZlVHlwZURlY2xhcmF0aW9uKQogICAgICAgICBhdXRvJiB1bmlmeU5v
ZGUgPSB0eXBlUmVmZXJlbmNlLT51bmlmeU5vZGUoKTsKICAgICAgICAgYXV0byYgbmFtZWRUeXBl
ID0gZG93bmNhc3Q8QVNUOjpOYW1lZFR5cGU+KHVuaWZ5Tm9kZSk7CiAgICAgICAgIGF1dG8mIHBh
cmFtZXRlclR5cGUgPSBkb3duY2FzdDxBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbj4obmFtZWRU
eXBlKTsKLSAgICAgICAgYXV0byBwcmVmaXggPSAoWyZdKCkgLT4gU3RyaW5nIHsKKyAgICAgICAg
YXV0byBtYXRyaXhUeXBlID0gKFsmXSgpIC0+IE1hdHJpeFR5cGUgewogICAgICAgICAgICAgaWYg
KHBhcmFtZXRlclR5cGUubmFtZSgpID09ICJib29sIikKLSAgICAgICAgICAgICAgICByZXR1cm4g
ImJvb2wiOworICAgICAgICAgICAgICAgIHJldHVybiBNYXRyaXhUeXBlOjpCb29sOwogICAgICAg
ICAgICAgQVNTRVJUKHBhcmFtZXRlclR5cGUubmFtZSgpID09ICJmbG9hdCIpOwotICAgICAgICAg
ICAgcmV0dXJuICJmbG9hdCI7CisgICAgICAgICAgICByZXR1cm4gTWF0cml4VHlwZTo6RmxvYXQ7
CiAgICAgICAgIH0pKCk7CiAKICAgICAgICAgQVNTRVJUKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8
QVNUOjpDb25zdGFudEV4cHJlc3Npb24+KG5hdGl2ZVR5cGVEZWNsYXJhdGlvbi50eXBlQXJndW1l
bnRzKClbMV0pKTsKQEAgLTExNCw3ICsxMTksMTkgQEAgU3RyaW5nIHdyaXRlTmF0aXZlVHlwZShB
U1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbiYgbmF0aXZlVHlwZURlY2xhcmF0aW9uKQogICAgICAg
ICBhdXRvJiBpbnRlZ2VyTGl0ZXJhbDIgPSBjb25zdGFudEV4cHJlc3Npb24yLmludGVnZXJMaXRl
cmFsKCk7CiAgICAgICAgIHVuc2lnbmVkIGNvbHVtbnMgPSBpbnRlZ2VyTGl0ZXJhbDIudmFsdWUo
KTsKICAgICAgICAgQVNTRVJUKGNvbHVtbnMgPT0gMiB8fCBjb2x1bW5zID09IDMgfHwgY29sdW1u
cyA9PSA0KTsKLSAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoImFycmF5PCIsIHByZWZpeCwgIiwg
IiwgY29sdW1ucyAqIHJvd3MsICI+Iik7CisKKyAgICAgICAgc3dpdGNoIChtYXRyaXhUeXBlKSB7
CisgICAgICAgIGNhc2UgTWF0cml4VHlwZTo6RmxvYXQ6IHsKKyAgICAgICAgICAgIHVuc2lnbmVk
IGFsaWdubWVudCA9IDE2OworICAgICAgICAgICAgaWYgKGNvbHVtbnMgPT0gMikKKyAgICAgICAg
ICAgICAgICBhbGlnbm1lbnQgPSA4OworICAgICAgICAgICAgaWYgKGNvbHVtbnMgPT0gMykKKyAg
ICAgICAgICAgICAgICBjb2x1bW5zID0gNDsKKyAgICAgICAgICAgIHJldHVybiBtYWtlU3RyaW5n
KCJhcnJheTxmbG9hdCwgIiwgY29sdW1ucyAqIHJvd3MsICI+IF9fYXR0cmlidXRlX18oKGFsaWdu
ZWQoIiwgYWxpZ25tZW50LCAiKSkpIik7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBNYXRyaXhU
eXBlOjpCb29sOgorICAgICAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoImFycmF5PGJvb2wsICIs
IGNvbHVtbnMgKiByb3dzLCAiPiIpOworICAgICAgICB9CiAgICAgfQogICAgIEFTU0VSVChuYXRp
dmVUeXBlRGVjbGFyYXRpb24udHlwZUFyZ3VtZW50cygpLnNpemUoKSA9PSAxKTsKICAgICBBU1NF
UlQoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8QVNUOjpUeXBlUmVmZXJlbmNlPj4obmF0aXZl
VHlwZURlY2xhcmF0aW9uLnR5cGVBcmd1bWVudHMoKVswXSkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA1NjQ2YjkwNzg5
ODRkOTM0MzM1YTNjZjlmYzQ5NzhiODBhM2Q5OTYuLjcwYTE2ZTdhN2RhZDIzYjFhNTJhMjhiNWJl
NDc3YzM4YmIzYjgyNDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0wOC0yOCAgTXlsZXMg
Qy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtXSExTTF0gTWF0
cmljZXMgbmVlZCB0byBoYXZlIGNvcnJlY3QgYWxpZ25tZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEyMTIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYmdwdS93aGxzbC9tYXRyaXgtYWxpZ25t
ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsL21hdHJpeC1h
bGlnbm1lbnQuaHRtbDogQWRkZWQuCisKIDIwMTktMDgtMjMgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGNyZWF0ZSBhZGRpdGlvbmFs
IGNvbW1hbmQgbGluZSBhcGkgZnVuY3Rpb25zIGZvciBvdGhlciBjb25zb2xlIG1ldGhvZHMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC9tYXRyaXgtYWxpZ25tZW50LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC9tYXRyaXgtYWxpZ25tZW50LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40ODgyZjkwNDU4YTU2ZjU0NWViMTljNzRkMjdmOGY2YWYyMzE4
MmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsL21hdHJpeC1h
bGlnbm1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJncHUvd2hsc2wvbWF0cml4LWFsaWdubWVudC5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ3B1L3dobHNsL21hdHJpeC1hbGlnbm1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWM0OWM5ZDYz
MjBkYjJmNjY3OTgwMmNmODYxYmEyOTc3YTVhMjgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ3B1L3dobHNsL21hdHJpeC1hbGlnbm1lbnQuaHRtbApAQCAtMCwwICsxLDE5MiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3dl
YmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Citj
b25zdCBzaGFkZXJTb3VyY2UgPSBgCitzdHJ1Y3QgQ29udGFpbmVyMngyIHsKKyAgICBmbG9hdCB4
OworICAgIGZsb2F0MngyIG07CisgICAgZmxvYXQgeTsKK30KKworc3RydWN0IENvbnRhaW5lcjJ4
MyB7CisgICAgZmxvYXQgeDsKKyAgICBmbG9hdDJ4MyBtOworICAgIGZsb2F0IHk7Cit9CisKK3N0
cnVjdCBDb250YWluZXIyeDQgeworICAgIGZsb2F0IHg7CisgICAgZmxvYXQyeDQgbTsKKyAgICBm
bG9hdCB5OworfQorCitzdHJ1Y3QgQ29udGFpbmVyM3gyIHsKKyAgICBmbG9hdCB4OworICAgIGZs
b2F0M3gyIG07CisgICAgZmxvYXQgeTsKK30KKworc3RydWN0IENvbnRhaW5lcjN4MyB7CisgICAg
ZmxvYXQgeDsKKyAgICBmbG9hdDN4MyBtOworICAgIGZsb2F0IHk7Cit9CisKK3N0cnVjdCBDb250
YWluZXIzeDQgeworICAgIGZsb2F0IHg7CisgICAgZmxvYXQzeDQgbTsKKyAgICBmbG9hdCB5Owor
fQorCitzdHJ1Y3QgQ29udGFpbmVyNHgyIHsKKyAgICBmbG9hdCB4OworICAgIGZsb2F0NHgyIG07
CisgICAgZmxvYXQgeTsKK30KKworc3RydWN0IENvbnRhaW5lcjR4MyB7CisgICAgZmxvYXQgeDsK
KyAgICBmbG9hdDR4MyBtOworICAgIGZsb2F0IHk7Cit9CisKK3N0cnVjdCBDb250YWluZXI0eDQg
eworICAgIGZsb2F0IHg7CisgICAgZmxvYXQ0eDQgbTsKKyAgICBmbG9hdCB5OworfQorCitbbnVt
dGhyZWFkcygxLCAxLCAxKV0KK2NvbXB1dGUgdm9pZCBjb21wdXRlU2hhZGVyMngyKGRldmljZSBD
b250YWluZXIyeDJbXSBpbnB1dCA6IHJlZ2lzdGVyKHUwKSwgZGV2aWNlIGZsb2F0W10gb3V0cHV0
IDogcmVnaXN0ZXIodTEpKSB7CisgICAgb3V0cHV0WzBdID0gaW5wdXRbMF0ubVswXVswXTsKKyAg
ICBvdXRwdXRbMV0gPSBpbnB1dFswXS55OworfQorCitbbnVtdGhyZWFkcygxLCAxLCAxKV0KK2Nv
bXB1dGUgdm9pZCBjb21wdXRlU2hhZGVyMngzKGRldmljZSBDb250YWluZXIyeDNbXSBpbnB1dCA6
IHJlZ2lzdGVyKHUwKSwgZGV2aWNlIGZsb2F0W10gb3V0cHV0IDogcmVnaXN0ZXIodTEpKSB7Cisg
ICAgb3V0cHV0WzBdID0gaW5wdXRbMF0ubVswXVswXTsKKyAgICBvdXRwdXRbMV0gPSBpbnB1dFsw
XS55OworfQorCitbbnVtdGhyZWFkcygxLCAxLCAxKV0KK2NvbXB1dGUgdm9pZCBjb21wdXRlU2hh
ZGVyMng0KGRldmljZSBDb250YWluZXIyeDRbXSBpbnB1dCA6IHJlZ2lzdGVyKHUwKSwgZGV2aWNl
IGZsb2F0W10gb3V0cHV0IDogcmVnaXN0ZXIodTEpKSB7CisgICAgb3V0cHV0WzBdID0gaW5wdXRb
MF0ubVswXVswXTsKKyAgICBvdXRwdXRbMV0gPSBpbnB1dFswXS55OworfQorCitbbnVtdGhyZWFk
cygxLCAxLCAxKV0KK2NvbXB1dGUgdm9pZCBjb21wdXRlU2hhZGVyM3gyKGRldmljZSBDb250YWlu
ZXIzeDJbXSBpbnB1dCA6IHJlZ2lzdGVyKHUwKSwgZGV2aWNlIGZsb2F0W10gb3V0cHV0IDogcmVn
aXN0ZXIodTEpKSB7CisgICAgb3V0cHV0WzBdID0gaW5wdXRbMF0ubVswXVswXTsKKyAgICBvdXRw
dXRbMV0gPSBpbnB1dFswXS55OworfQorCitbbnVtdGhyZWFkcygxLCAxLCAxKV0KK2NvbXB1dGUg
dm9pZCBjb21wdXRlU2hhZGVyM3gzKGRldmljZSBDb250YWluZXIzeDNbXSBpbnB1dCA6IHJlZ2lz
dGVyKHUwKSwgZGV2aWNlIGZsb2F0W10gb3V0cHV0IDogcmVnaXN0ZXIodTEpKSB7CisgICAgb3V0
cHV0WzBdID0gaW5wdXRbMF0ubVswXVswXTsKKyAgICBvdXRwdXRbMV0gPSBpbnB1dFswXS55Owor
fQorCitbbnVtdGhyZWFkcygxLCAxLCAxKV0KK2NvbXB1dGUgdm9pZCBjb21wdXRlU2hhZGVyM3g0
KGRldmljZSBDb250YWluZXIzeDRbXSBpbnB1dCA6IHJlZ2lzdGVyKHUwKSwgZGV2aWNlIGZsb2F0
W10gb3V0cHV0IDogcmVnaXN0ZXIodTEpKSB7CisgICAgb3V0cHV0WzBdID0gaW5wdXRbMF0ubVsw
XVswXTsKKyAgICBvdXRwdXRbMV0gPSBpbnB1dFswXS55OworfQorCitbbnVtdGhyZWFkcygxLCAx
LCAxKV0KK2NvbXB1dGUgdm9pZCBjb21wdXRlU2hhZGVyNHgyKGRldmljZSBDb250YWluZXI0eDJb
XSBpbnB1dCA6IHJlZ2lzdGVyKHUwKSwgZGV2aWNlIGZsb2F0W10gb3V0cHV0IDogcmVnaXN0ZXIo
dTEpKSB7CisgICAgb3V0cHV0WzBdID0gaW5wdXRbMF0ubVswXVswXTsKKyAgICBvdXRwdXRbMV0g
PSBpbnB1dFswXS55OworfQorCitbbnVtdGhyZWFkcygxLCAxLCAxKV0KK2NvbXB1dGUgdm9pZCBj
b21wdXRlU2hhZGVyNHgzKGRldmljZSBDb250YWluZXI0eDNbXSBpbnB1dCA6IHJlZ2lzdGVyKHUw
KSwgZGV2aWNlIGZsb2F0W10gb3V0cHV0IDogcmVnaXN0ZXIodTEpKSB7CisgICAgb3V0cHV0WzBd
ID0gaW5wdXRbMF0ubVswXVswXTsKKyAgICBvdXRwdXRbMV0gPSBpbnB1dFswXS55OworfQorCitb
bnVtdGhyZWFkcygxLCAxLCAxKV0KK2NvbXB1dGUgdm9pZCBjb21wdXRlU2hhZGVyNHg0KGRldmlj
ZSBDb250YWluZXI0eDRbXSBpbnB1dCA6IHJlZ2lzdGVyKHUwKSwgZGV2aWNlIGZsb2F0W10gb3V0
cHV0IDogcmVnaXN0ZXIodTEpKSB7CisgICAgb3V0cHV0WzBdID0gaW5wdXRbMF0ubVswXVswXTsK
KyAgICBvdXRwdXRbMV0gPSBpbnB1dFswXS55OworfQorYDsKKworYXN5bmMgZnVuY3Rpb24gc3Rh
cnQoZGV2aWNlKSB7CisgICAgY29uc3Qgc2hhZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRl
ck1vZHVsZSh7Y29kZTogc2hhZGVyU291cmNlLCBpc1dITFNMOiB0cnVlfSk7CisKKyAgICBjb25z
dCBiaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yID0ge2JpbmRpbmdzOiBbe2JpbmRpbmc6IDAsIHZp
c2liaWxpdHk6IDcsIHR5cGU6ICJzdG9yYWdlLWJ1ZmZlciJ9LCB7YmluZGluZzogMSwgdmlzaWJp
bGl0eTogNywgdHlwZTogInN0b3JhZ2UtYnVmZmVyIn1dfTsKKyAgICBjb25zdCBiaW5kR3JvdXBM
YXlvdXQgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3VwTGF5b3V0KGJpbmRHcm91cExheW91dERlc2Ny
aXB0b3IpOworICAgIGNvbnN0IHBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciA9IHtiaW5kR3JvdXBM
YXlvdXRzOiBbYmluZEdyb3VwTGF5b3V0XX07CisgICAgY29uc3QgcGlwZWxpbmVMYXlvdXQgPSBk
ZXZpY2UuY3JlYXRlUGlwZWxpbmVMYXlvdXQocGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yKTsKKwor
ICAgIGNvbnN0IGlucHV0U2l6ZSA9IEZsb2F0MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDMy
OworICAgIGNvbnN0IG91dHB1dFNpemUgPSBGbG9hdDMyQXJyYXkuQllURVNfUEVSX0VMRU1FTlQg
KiAyOworCisgICAgY29uc3QgdXBsb2FkQnVmZmVyRGVzY3JpcHRvciA9IHtzaXplOiBpbnB1dFNp
emUsIHVzYWdlOiBHUFVCdWZmZXJVc2FnZS5NQVBfV1JJVEUgfCBHUFVCdWZmZXJVc2FnZS5UUkFO
U0ZFUl9TUkN9OworICAgIGNvbnN0IHVwbG9hZEJ1ZmZlciA9IGRldmljZS5jcmVhdGVCdWZmZXIo
dXBsb2FkQnVmZmVyRGVzY3JpcHRvcik7CisgICAgY29uc3QgdXBsb2FkQnVmZmVyQXJyYXlCdWZm
ZXIgPSBhd2FpdCB1cGxvYWRCdWZmZXIubWFwV3JpdGVBc3luYygpOworICAgIGNvbnN0IHVwbG9h
ZEJ1ZmZlckZsb2F0MzJBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkodXBsb2FkQnVmZmVyQXJyYXlC
dWZmZXIpOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMzI7ICsraSkKKyAgICAgICAgdXBsb2Fk
QnVmZmVyRmxvYXQzMkFycmF5W2ldID0gaTsKKyAgICB1cGxvYWRCdWZmZXIudW5tYXAoKTsKKwor
ICAgIGNvbnN0IGlucHV0QnVmZmVyRGVzY3JpcHRvciA9IHtzaXplOiBpbnB1dFNpemUsIHVzYWdl
OiBHUFVCdWZmZXJVc2FnZS5UUkFOU0ZFUl9EU1QgfCBHUFVCdWZmZXJVc2FnZS5TVE9SQUdFfTsK
KyAgICBjb25zdCBpbnB1dEJ1ZmZlciA9IGRldmljZS5jcmVhdGVCdWZmZXIoaW5wdXRCdWZmZXJE
ZXNjcmlwdG9yKTsKKworICAgIGNvbnN0IG91dHB1dEJ1ZmZlckRlc2NyaXB0b3IgPSB7c2l6ZTog
b3V0cHV0U2l6ZSwgdXNhZ2U6IEdQVUJ1ZmZlclVzYWdlLlNUT1JBR0UgfCBHUFVCdWZmZXJVc2Fn
ZS5NQVBfUkVBRH07CisgICAgY29uc3Qgb3V0cHV0QnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZl
cihvdXRwdXRCdWZmZXJEZXNjcmlwdG9yKTsKKworICAgIGNvbnN0IGJpbmRHcm91cERlc2NyaXB0
b3IgPSB7bGF5b3V0OiBiaW5kR3JvdXBMYXlvdXQsIGJpbmRpbmdzOiBbe2JpbmRpbmc6IDAsIHJl
c291cmNlOiB7YnVmZmVyOiBpbnB1dEJ1ZmZlciwgc2l6ZTogaW5wdXRTaXplfX0sIHtiaW5kaW5n
OiAxLCByZXNvdXJjZToge2J1ZmZlcjogb3V0cHV0QnVmZmVyLCBzaXplOiBvdXRwdXRTaXplfX1d
fTsKKyAgICBjb25zdCBiaW5kR3JvdXAgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3VwKGJpbmRHcm91
cERlc2NyaXB0b3IpOworCisgICAgbGV0IHRlc3RzID0gWyJjb21wdXRlU2hhZGVyMngyIiwgImNv
bXB1dGVTaGFkZXIyeDMiLCAiY29tcHV0ZVNoYWRlcjJ4NCIsICJjb21wdXRlU2hhZGVyM3gyIiwg
ImNvbXB1dGVTaGFkZXIzeDMiLCAiY29tcHV0ZVNoYWRlcjN4NCIsICJjb21wdXRlU2hhZGVyNHgy
IiwgImNvbXB1dGVTaGFkZXI0eDMiLCAiY29tcHV0ZVNoYWRlcjR4NCJdOworICAgIGxldCByZXN1
bHRzID0gW107CisgICAgZm9yIChsZXQgdGVzdCBvZiB0ZXN0cykgeworICAgICAgICBjb25zdCBj
b21wdXRlUGlwZWxpbmUgPSBkZXZpY2UuY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKHtjb21wdXRlU3Rh
Z2U6IHttb2R1bGU6IHNoYWRlck1vZHVsZSwgZW50cnlQb2ludDogdGVzdH0sIGxheW91dDogcGlw
ZWxpbmVMYXlvdXR9KTsKKyAgICAgICAgY29uc3QgY29tbWFuZEVuY29kZXIgPSBkZXZpY2UuY3Jl
YXRlQ29tbWFuZEVuY29kZXIoKTsgLy8ge30KKyAgICAgICAgY29tbWFuZEVuY29kZXIuY29weUJ1
ZmZlclRvQnVmZmVyKHVwbG9hZEJ1ZmZlciwgMCwgaW5wdXRCdWZmZXIsIDAsIGlucHV0U2l6ZSk7
CisgICAgICAgIGNvbnN0IGNvbXB1dGVQYXNzRW5jb2RlciA9IGNvbW1hbmRFbmNvZGVyLmJlZ2lu
Q29tcHV0ZVBhc3MoKTsKKyAgICAgICAgY29tcHV0ZVBhc3NFbmNvZGVyLnNldFBpcGVsaW5lKGNv
bXB1dGVQaXBlbGluZSk7CisgICAgICAgIGNvbXB1dGVQYXNzRW5jb2Rlci5zZXRCaW5kR3JvdXAo
MCwgYmluZEdyb3VwKTsKKyAgICAgICAgY29tcHV0ZVBhc3NFbmNvZGVyLmRpc3BhdGNoKDEsIDEs
IDEpOworICAgICAgICBjb21wdXRlUGFzc0VuY29kZXIuZW5kUGFzcygpOworICAgICAgICBjb25z
dCBjb21tYW5kQnVmZmVyID0gY29tbWFuZEVuY29kZXIuZmluaXNoKCk7CisgICAgICAgIGRldmlj
ZS5nZXRRdWV1ZSgpLnN1Ym1pdChbY29tbWFuZEJ1ZmZlcl0pOworCisgICAgICAgIGNvbnN0IG91
dHB1dEFycmF5QnVmZmVyID0gYXdhaXQgb3V0cHV0QnVmZmVyLm1hcFJlYWRBc3luYygpOworICAg
ICAgICBjb25zdCBvdXRwdXRGbG9hdDMyQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KG91dHB1dEFy
cmF5QnVmZmVyKTsKKyAgICAgICAgcmVzdWx0cy5wdXNoKG91dHB1dEZsb2F0MzJBcnJheVswXSk7
CisgICAgICAgIHJlc3VsdHMucHVzaChvdXRwdXRGbG9hdDMyQXJyYXlbMV0pOworICAgICAgICBv
dXRwdXRCdWZmZXIudW5tYXAoKTsKKyAgICB9CisgICAgbGV0IGV4cGVjdGVkID0gWzIsIDYsIDQs
IDEyLCA0LCAxMiwgMiwgOCwgNCwgMTYsIDQsIDE2LCAyLCAxMCwgNCwgMjAsIDQsIDIwXTsKKyAg
ICBsZXQgZXJyb3IgPSBmYWxzZTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IGV4cGVjdGVkLmxl
bmd0aDsgKytpKSB7CisgICAgICAgIGlmIChyZXN1bHRzW2ldICE9IGV4cGVjdGVkW2ldKSB7Cisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCIiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgIH0KKyAgICB0ZXN0UGFzc2VkKCIiKTsKK30KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKK2dldEJhc2ljRGV2aWNlKCkudGhlbihmdW5jdGlvbihkZXZpY2UpIHsKKyAgICBzdGFy
dChkZXZpY2UpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
IH0sIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiIik7CisgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgIH0pOworfSwgZnVuY3Rpb24oKSB7CisgICAgdGVzdFBhc3NlZCgiIik7
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377457</attachid>
            <date>2019-08-28 10:08:10 -0700</date>
            <delta_ts>2019-08-28 10:49:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201212-20190828100809.patch</filename>
            <type>text/plain</type>
            <size>11323</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmIxNjkzYjBkNTJjM2Zj
ZjUyNTFmN2QyMzI5MDY2OGMxZTRjMDk1Mi4uYWMxZTA1YzAyYWRhZDAxODNmNDc4MmY5NmJmYjFk
OTU3OWMyOTY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTA4LTI4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dITFNMXSBN
YXRyaWNlcyBuZWVkIHRvIGhhdmUgY29ycmVjdCBhbGlnbm1lbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTIxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hdHJpY2VzIGhhdmUgcGFydGljdWxhciBh
bGlnbm1lbnQgcmVxdWlyZW1lbnRzIGFuZCBzaXplIHJlcXVpcmVtZW50cy4KKyAgICAgICAgVGhl
c2UgYXJlIGltcG9ydGFudCBiZWNhdXNlIHRoZXkgbWF5IGJlIGEgbWVtYmVyIG9mIGEgc3RydWN0
LCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBtaXNwbGFjZQorICAgICAgICBldmVyeSBzdWNjZXNzaXZl
IGl0ZW0gaW4gdGhlIHN0cnVjdC4KKworICAgICAgICBUZXN0OiB3ZWJncHUvd2hsc2wvbWF0cml4
LWFsaWdubWVudC5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9NZXRhbC9X
SExTTE5hdGl2ZVR5cGVXcml0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6Ok1ldGFs
Ojp3cml0ZU5hdGl2ZVR5cGUpOgorCiAyMDE5LTA4LTI0ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bVEZDXSBBZGQgc2VjdGlvbiByZW5kZXJlcnMgdG8g
dGhlIGxheW91dCB0cmVlIChUSEVBRC9UQk9EWS9URk9PVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML01ldGFsL1dITFNMTmF0aXZlVHlwZVdyaXRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9NZXRhbC9XSExTTE5hdGl2
ZVR5cGVXcml0ZXIuY3BwCmluZGV4IDkxNDM2MDMyZjhkNTkxN2I1OGI0YzA3MTZhN2RkY2QyMmYx
ODc2NDMuLjFkMWM1NzkzZGU1MzEzYzlmYjlkMzM1YTQ4YzE1NjM0Yzc2NTE2ODggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML01ldGFsL1dITFNMTmF0aXZl
VHlwZVdyaXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wv
TWV0YWwvV0hMU0xOYXRpdmVUeXBlV3JpdGVyLmNwcApAQCAtMzgsNiArMzgsMTEgQEAgbmFtZXNw
YWNlIFdITFNMIHsKIAogbmFtZXNwYWNlIE1ldGFsIHsKIAorZW51bSBjbGFzcyBNYXRyaXhUeXBl
IDogdWludDhfdCB7CisgICAgRmxvYXQsCisgICAgQm9vbAorfTsKKwogU3RyaW5nIHdyaXRlTmF0
aXZlVHlwZShBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbiYgbmF0aXZlVHlwZURlY2xhcmF0aW9u
KQogewogICAgIGlmIChuYXRpdmVUeXBlRGVjbGFyYXRpb24ubmFtZSgpID09ICJ2b2lkIikKQEAg
LTk2LDExICsxMDEsMTEgQEAgU3RyaW5nIHdyaXRlTmF0aXZlVHlwZShBU1Q6Ok5hdGl2ZVR5cGVE
ZWNsYXJhdGlvbiYgbmF0aXZlVHlwZURlY2xhcmF0aW9uKQogICAgICAgICBhdXRvJiB1bmlmeU5v
ZGUgPSB0eXBlUmVmZXJlbmNlLT51bmlmeU5vZGUoKTsKICAgICAgICAgYXV0byYgbmFtZWRUeXBl
ID0gZG93bmNhc3Q8QVNUOjpOYW1lZFR5cGU+KHVuaWZ5Tm9kZSk7CiAgICAgICAgIGF1dG8mIHBh
cmFtZXRlclR5cGUgPSBkb3duY2FzdDxBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbj4obmFtZWRU
eXBlKTsKLSAgICAgICAgYXV0byBwcmVmaXggPSAoWyZdKCkgLT4gU3RyaW5nIHsKKyAgICAgICAg
YXV0byBtYXRyaXhUeXBlID0gKFsmXSgpIC0+IE1hdHJpeFR5cGUgewogICAgICAgICAgICAgaWYg
KHBhcmFtZXRlclR5cGUubmFtZSgpID09ICJib29sIikKLSAgICAgICAgICAgICAgICByZXR1cm4g
ImJvb2wiOworICAgICAgICAgICAgICAgIHJldHVybiBNYXRyaXhUeXBlOjpCb29sOwogICAgICAg
ICAgICAgQVNTRVJUKHBhcmFtZXRlclR5cGUubmFtZSgpID09ICJmbG9hdCIpOwotICAgICAgICAg
ICAgcmV0dXJuICJmbG9hdCI7CisgICAgICAgICAgICByZXR1cm4gTWF0cml4VHlwZTo6RmxvYXQ7
CiAgICAgICAgIH0pKCk7CiAKICAgICAgICAgQVNTRVJUKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8
QVNUOjpDb25zdGFudEV4cHJlc3Npb24+KG5hdGl2ZVR5cGVEZWNsYXJhdGlvbi50eXBlQXJndW1l
bnRzKClbMV0pKTsKQEAgLTExNCw3ICsxMTksMTkgQEAgU3RyaW5nIHdyaXRlTmF0aXZlVHlwZShB
U1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbiYgbmF0aXZlVHlwZURlY2xhcmF0aW9uKQogICAgICAg
ICBhdXRvJiBpbnRlZ2VyTGl0ZXJhbDIgPSBjb25zdGFudEV4cHJlc3Npb24yLmludGVnZXJMaXRl
cmFsKCk7CiAgICAgICAgIHVuc2lnbmVkIGNvbHVtbnMgPSBpbnRlZ2VyTGl0ZXJhbDIudmFsdWUo
KTsKICAgICAgICAgQVNTRVJUKGNvbHVtbnMgPT0gMiB8fCBjb2x1bW5zID09IDMgfHwgY29sdW1u
cyA9PSA0KTsKLSAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoImFycmF5PCIsIHByZWZpeCwgIiwg
IiwgY29sdW1ucyAqIHJvd3MsICI+Iik7CisKKyAgICAgICAgc3dpdGNoIChtYXRyaXhUeXBlKSB7
CisgICAgICAgIGNhc2UgTWF0cml4VHlwZTo6RmxvYXQ6IHsKKyAgICAgICAgICAgIHVuc2lnbmVk
IGFsaWdubWVudCA9IDE2OworICAgICAgICAgICAgaWYgKGNvbHVtbnMgPT0gMikKKyAgICAgICAg
ICAgICAgICBhbGlnbm1lbnQgPSA4OworICAgICAgICAgICAgaWYgKGNvbHVtbnMgPT0gMykKKyAg
ICAgICAgICAgICAgICBjb2x1bW5zID0gNDsKKyAgICAgICAgICAgIHJldHVybiBtYWtlU3RyaW5n
KCJhcnJheTxmbG9hdCwgIiwgY29sdW1ucyAqIHJvd3MsICI+IF9fYXR0cmlidXRlX18oKGFsaWdu
ZWQoIiwgYWxpZ25tZW50LCAiKSkpIik7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBNYXRyaXhU
eXBlOjpCb29sOgorICAgICAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoImFycmF5PGJvb2wsICIs
IGNvbHVtbnMgKiByb3dzLCAiPiIpOworICAgICAgICB9CiAgICAgfQogICAgIEFTU0VSVChuYXRp
dmVUeXBlRGVjbGFyYXRpb24udHlwZUFyZ3VtZW50cygpLnNpemUoKSA9PSAxKTsKICAgICBBU1NF
UlQoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8QVNUOjpUeXBlUmVmZXJlbmNlPj4obmF0aXZl
VHlwZURlY2xhcmF0aW9uLnR5cGVBcmd1bWVudHMoKVswXSkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA1NjQ2YjkwNzg5
ODRkOTM0MzM1YTNjZjlmYzQ5NzhiODBhM2Q5OTYuLjRmNzhjOThjZDE3ZDUzOTcyNzI3MmU4NWIy
NDM2NzcwNzQ1MWRlZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOS0wOC0yOCAgTXlsZXMg
Qy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtXSExTTF0gTWF0
cmljZXMgbmVlZCB0byBoYXZlIGNvcnJlY3QgYWxpZ25tZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEyMTIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IHRoZSBhbGlnbm1lbnQgYW5kIHNpemUg
b2YgZmxvYXQgbWF0cmljZXMuCisKKyAgICAgICAgSW50ZW50aW9uYWxseSBkb24ndCB0ZXN0IGJv
b2wgbWF0cmljZXMsIGJlY2F1c2UgdGhleSBjYW4ndCBiZSBwbGFjZWQgaW4gYnVmZmVycywKKyAg
ICAgICAgbWVhbmluZyB0aGVpciBzaXplIGFuZCBhbGlnbm1lbnQgaXMgdW5vYnNlcnZhYmxlLgor
CisgICAgICAgICogd2ViZ3B1L3dobHNsL21hdHJpeC1hbGlnbm1lbnQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wvbWF0cml4LWFsaWdubWVudC5odG1sOiBBZGRl
ZC4KKwogMjAxOS0wOC0yMyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogY3JlYXRlIGFkZGl0aW9uYWwgY29tbWFuZCBsaW5lIGFwaSBm
dW5jdGlvbnMgZm9yIG90aGVyIGNvbnNvbGUgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ3B1L3dobHNsL21hdHJpeC1hbGlnbm1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvd2ViZ3B1L3dobHNsL21hdHJpeC1hbGlnbm1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ4ODJmOTA0NThhNTZmNTQ1ZWIxOWM3NGQyN2Y4ZjZhZjIzMTgyZDQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wvbWF0cml4LWFsaWdubWVudC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS93aGxz
bC9tYXRyaXgtYWxpZ25tZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wvbWF0cml4
LWFsaWdubWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhYzQ5YzlkNjMyMGRiMmY2Njc5ODAyY2Y4NjFi
YTI5NzdhNWEyODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wv
bWF0cml4LWFsaWdubWVudC5odG1sCkBAIC0wLDAgKzEsMTkyIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2NvbnN0IHNoYWRlclNvdXJjZSA9
IGAKK3N0cnVjdCBDb250YWluZXIyeDIgeworICAgIGZsb2F0IHg7CisgICAgZmxvYXQyeDIgbTsK
KyAgICBmbG9hdCB5OworfQorCitzdHJ1Y3QgQ29udGFpbmVyMngzIHsKKyAgICBmbG9hdCB4Owor
ICAgIGZsb2F0MngzIG07CisgICAgZmxvYXQgeTsKK30KKworc3RydWN0IENvbnRhaW5lcjJ4NCB7
CisgICAgZmxvYXQgeDsKKyAgICBmbG9hdDJ4NCBtOworICAgIGZsb2F0IHk7Cit9CisKK3N0cnVj
dCBDb250YWluZXIzeDIgeworICAgIGZsb2F0IHg7CisgICAgZmxvYXQzeDIgbTsKKyAgICBmbG9h
dCB5OworfQorCitzdHJ1Y3QgQ29udGFpbmVyM3gzIHsKKyAgICBmbG9hdCB4OworICAgIGZsb2F0
M3gzIG07CisgICAgZmxvYXQgeTsKK30KKworc3RydWN0IENvbnRhaW5lcjN4NCB7CisgICAgZmxv
YXQgeDsKKyAgICBmbG9hdDN4NCBtOworICAgIGZsb2F0IHk7Cit9CisKK3N0cnVjdCBDb250YWlu
ZXI0eDIgeworICAgIGZsb2F0IHg7CisgICAgZmxvYXQ0eDIgbTsKKyAgICBmbG9hdCB5OworfQor
CitzdHJ1Y3QgQ29udGFpbmVyNHgzIHsKKyAgICBmbG9hdCB4OworICAgIGZsb2F0NHgzIG07Cisg
ICAgZmxvYXQgeTsKK30KKworc3RydWN0IENvbnRhaW5lcjR4NCB7CisgICAgZmxvYXQgeDsKKyAg
ICBmbG9hdDR4NCBtOworICAgIGZsb2F0IHk7Cit9CisKK1tudW10aHJlYWRzKDEsIDEsIDEpXQor
Y29tcHV0ZSB2b2lkIGNvbXB1dGVTaGFkZXIyeDIoZGV2aWNlIENvbnRhaW5lcjJ4MltdIGlucHV0
IDogcmVnaXN0ZXIodTApLCBkZXZpY2UgZmxvYXRbXSBvdXRwdXQgOiByZWdpc3Rlcih1MSkpIHsK
KyAgICBvdXRwdXRbMF0gPSBpbnB1dFswXS5tWzBdWzBdOworICAgIG91dHB1dFsxXSA9IGlucHV0
WzBdLnk7Cit9CisKK1tudW10aHJlYWRzKDEsIDEsIDEpXQorY29tcHV0ZSB2b2lkIGNvbXB1dGVT
aGFkZXIyeDMoZGV2aWNlIENvbnRhaW5lcjJ4M1tdIGlucHV0IDogcmVnaXN0ZXIodTApLCBkZXZp
Y2UgZmxvYXRbXSBvdXRwdXQgOiByZWdpc3Rlcih1MSkpIHsKKyAgICBvdXRwdXRbMF0gPSBpbnB1
dFswXS5tWzBdWzBdOworICAgIG91dHB1dFsxXSA9IGlucHV0WzBdLnk7Cit9CisKK1tudW10aHJl
YWRzKDEsIDEsIDEpXQorY29tcHV0ZSB2b2lkIGNvbXB1dGVTaGFkZXIyeDQoZGV2aWNlIENvbnRh
aW5lcjJ4NFtdIGlucHV0IDogcmVnaXN0ZXIodTApLCBkZXZpY2UgZmxvYXRbXSBvdXRwdXQgOiBy
ZWdpc3Rlcih1MSkpIHsKKyAgICBvdXRwdXRbMF0gPSBpbnB1dFswXS5tWzBdWzBdOworICAgIG91
dHB1dFsxXSA9IGlucHV0WzBdLnk7Cit9CisKK1tudW10aHJlYWRzKDEsIDEsIDEpXQorY29tcHV0
ZSB2b2lkIGNvbXB1dGVTaGFkZXIzeDIoZGV2aWNlIENvbnRhaW5lcjN4MltdIGlucHV0IDogcmVn
aXN0ZXIodTApLCBkZXZpY2UgZmxvYXRbXSBvdXRwdXQgOiByZWdpc3Rlcih1MSkpIHsKKyAgICBv
dXRwdXRbMF0gPSBpbnB1dFswXS5tWzBdWzBdOworICAgIG91dHB1dFsxXSA9IGlucHV0WzBdLnk7
Cit9CisKK1tudW10aHJlYWRzKDEsIDEsIDEpXQorY29tcHV0ZSB2b2lkIGNvbXB1dGVTaGFkZXIz
eDMoZGV2aWNlIENvbnRhaW5lcjN4M1tdIGlucHV0IDogcmVnaXN0ZXIodTApLCBkZXZpY2UgZmxv
YXRbXSBvdXRwdXQgOiByZWdpc3Rlcih1MSkpIHsKKyAgICBvdXRwdXRbMF0gPSBpbnB1dFswXS5t
WzBdWzBdOworICAgIG91dHB1dFsxXSA9IGlucHV0WzBdLnk7Cit9CisKK1tudW10aHJlYWRzKDEs
IDEsIDEpXQorY29tcHV0ZSB2b2lkIGNvbXB1dGVTaGFkZXIzeDQoZGV2aWNlIENvbnRhaW5lcjN4
NFtdIGlucHV0IDogcmVnaXN0ZXIodTApLCBkZXZpY2UgZmxvYXRbXSBvdXRwdXQgOiByZWdpc3Rl
cih1MSkpIHsKKyAgICBvdXRwdXRbMF0gPSBpbnB1dFswXS5tWzBdWzBdOworICAgIG91dHB1dFsx
XSA9IGlucHV0WzBdLnk7Cit9CisKK1tudW10aHJlYWRzKDEsIDEsIDEpXQorY29tcHV0ZSB2b2lk
IGNvbXB1dGVTaGFkZXI0eDIoZGV2aWNlIENvbnRhaW5lcjR4MltdIGlucHV0IDogcmVnaXN0ZXIo
dTApLCBkZXZpY2UgZmxvYXRbXSBvdXRwdXQgOiByZWdpc3Rlcih1MSkpIHsKKyAgICBvdXRwdXRb
MF0gPSBpbnB1dFswXS5tWzBdWzBdOworICAgIG91dHB1dFsxXSA9IGlucHV0WzBdLnk7Cit9CisK
K1tudW10aHJlYWRzKDEsIDEsIDEpXQorY29tcHV0ZSB2b2lkIGNvbXB1dGVTaGFkZXI0eDMoZGV2
aWNlIENvbnRhaW5lcjR4M1tdIGlucHV0IDogcmVnaXN0ZXIodTApLCBkZXZpY2UgZmxvYXRbXSBv
dXRwdXQgOiByZWdpc3Rlcih1MSkpIHsKKyAgICBvdXRwdXRbMF0gPSBpbnB1dFswXS5tWzBdWzBd
OworICAgIG91dHB1dFsxXSA9IGlucHV0WzBdLnk7Cit9CisKK1tudW10aHJlYWRzKDEsIDEsIDEp
XQorY29tcHV0ZSB2b2lkIGNvbXB1dGVTaGFkZXI0eDQoZGV2aWNlIENvbnRhaW5lcjR4NFtdIGlu
cHV0IDogcmVnaXN0ZXIodTApLCBkZXZpY2UgZmxvYXRbXSBvdXRwdXQgOiByZWdpc3Rlcih1MSkp
IHsKKyAgICBvdXRwdXRbMF0gPSBpbnB1dFswXS5tWzBdWzBdOworICAgIG91dHB1dFsxXSA9IGlu
cHV0WzBdLnk7Cit9CitgOworCithc3luYyBmdW5jdGlvbiBzdGFydChkZXZpY2UpIHsKKyAgICBj
b25zdCBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHtjb2RlOiBzaGFk
ZXJTb3VyY2UsIGlzV0hMU0w6IHRydWV9KTsKKworICAgIGNvbnN0IGJpbmRHcm91cExheW91dERl
c2NyaXB0b3IgPSB7YmluZGluZ3M6IFt7YmluZGluZzogMCwgdmlzaWJpbGl0eTogNywgdHlwZTog
InN0b3JhZ2UtYnVmZmVyIn0sIHtiaW5kaW5nOiAxLCB2aXNpYmlsaXR5OiA3LCB0eXBlOiAic3Rv
cmFnZS1idWZmZXIifV19OworICAgIGNvbnN0IGJpbmRHcm91cExheW91dCA9IGRldmljZS5jcmVh
dGVCaW5kR3JvdXBMYXlvdXQoYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcik7CisgICAgY29uc3Qg
cGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yID0ge2JpbmRHcm91cExheW91dHM6IFtiaW5kR3JvdXBM
YXlvdXRdfTsKKyAgICBjb25zdCBwaXBlbGluZUxheW91dCA9IGRldmljZS5jcmVhdGVQaXBlbGlu
ZUxheW91dChwaXBlbGluZUxheW91dERlc2NyaXB0b3IpOworCisgICAgY29uc3QgaW5wdXRTaXpl
ID0gRmxvYXQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogMzI7CisgICAgY29uc3Qgb3V0cHV0
U2l6ZSA9IEZsb2F0MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDI7CisKKyAgICBjb25zdCB1
cGxvYWRCdWZmZXJEZXNjcmlwdG9yID0ge3NpemU6IGlucHV0U2l6ZSwgdXNhZ2U6IEdQVUJ1ZmZl
clVzYWdlLk1BUF9XUklURSB8IEdQVUJ1ZmZlclVzYWdlLlRSQU5TRkVSX1NSQ307CisgICAgY29u
c3QgdXBsb2FkQnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih1cGxvYWRCdWZmZXJEZXNjcmlw
dG9yKTsKKyAgICBjb25zdCB1cGxvYWRCdWZmZXJBcnJheUJ1ZmZlciA9IGF3YWl0IHVwbG9hZEJ1
ZmZlci5tYXBXcml0ZUFzeW5jKCk7CisgICAgY29uc3QgdXBsb2FkQnVmZmVyRmxvYXQzMkFycmF5
ID0gbmV3IEZsb2F0MzJBcnJheSh1cGxvYWRCdWZmZXJBcnJheUJ1ZmZlcik7CisgICAgZm9yIChs
ZXQgaSA9IDA7IGkgPCAzMjsgKytpKQorICAgICAgICB1cGxvYWRCdWZmZXJGbG9hdDMyQXJyYXlb
aV0gPSBpOworICAgIHVwbG9hZEJ1ZmZlci51bm1hcCgpOworCisgICAgY29uc3QgaW5wdXRCdWZm
ZXJEZXNjcmlwdG9yID0ge3NpemU6IGlucHV0U2l6ZSwgdXNhZ2U6IEdQVUJ1ZmZlclVzYWdlLlRS
QU5TRkVSX0RTVCB8IEdQVUJ1ZmZlclVzYWdlLlNUT1JBR0V9OworICAgIGNvbnN0IGlucHV0QnVm
ZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcihpbnB1dEJ1ZmZlckRlc2NyaXB0b3IpOworCisgICAg
Y29uc3Qgb3V0cHV0QnVmZmVyRGVzY3JpcHRvciA9IHtzaXplOiBvdXRwdXRTaXplLCB1c2FnZTog
R1BVQnVmZmVyVXNhZ2UuU1RPUkFHRSB8IEdQVUJ1ZmZlclVzYWdlLk1BUF9SRUFEfTsKKyAgICBj
b25zdCBvdXRwdXRCdWZmZXIgPSBkZXZpY2UuY3JlYXRlQnVmZmVyKG91dHB1dEJ1ZmZlckRlc2Ny
aXB0b3IpOworCisgICAgY29uc3QgYmluZEdyb3VwRGVzY3JpcHRvciA9IHtsYXlvdXQ6IGJpbmRH
cm91cExheW91dCwgYmluZGluZ3M6IFt7YmluZGluZzogMCwgcmVzb3VyY2U6IHtidWZmZXI6IGlu
cHV0QnVmZmVyLCBzaXplOiBpbnB1dFNpemV9fSwge2JpbmRpbmc6IDEsIHJlc291cmNlOiB7YnVm
ZmVyOiBvdXRwdXRCdWZmZXIsIHNpemU6IG91dHB1dFNpemV9fV19OworICAgIGNvbnN0IGJpbmRH
cm91cCA9IGRldmljZS5jcmVhdGVCaW5kR3JvdXAoYmluZEdyb3VwRGVzY3JpcHRvcik7CisKKyAg
ICBsZXQgdGVzdHMgPSBbImNvbXB1dGVTaGFkZXIyeDIiLCAiY29tcHV0ZVNoYWRlcjJ4MyIsICJj
b21wdXRlU2hhZGVyMng0IiwgImNvbXB1dGVTaGFkZXIzeDIiLCAiY29tcHV0ZVNoYWRlcjN4MyIs
ICJjb21wdXRlU2hhZGVyM3g0IiwgImNvbXB1dGVTaGFkZXI0eDIiLCAiY29tcHV0ZVNoYWRlcjR4
MyIsICJjb21wdXRlU2hhZGVyNHg0Il07CisgICAgbGV0IHJlc3VsdHMgPSBbXTsKKyAgICBmb3Ig
KGxldCB0ZXN0IG9mIHRlc3RzKSB7CisgICAgICAgIGNvbnN0IGNvbXB1dGVQaXBlbGluZSA9IGRl
dmljZS5jcmVhdGVDb21wdXRlUGlwZWxpbmUoe2NvbXB1dGVTdGFnZToge21vZHVsZTogc2hhZGVy
TW9kdWxlLCBlbnRyeVBvaW50OiB0ZXN0fSwgbGF5b3V0OiBwaXBlbGluZUxheW91dH0pOworICAg
ICAgICBjb25zdCBjb21tYW5kRW5jb2RlciA9IGRldmljZS5jcmVhdGVDb21tYW5kRW5jb2Rlcigp
OyAvLyB7fQorICAgICAgICBjb21tYW5kRW5jb2Rlci5jb3B5QnVmZmVyVG9CdWZmZXIodXBsb2Fk
QnVmZmVyLCAwLCBpbnB1dEJ1ZmZlciwgMCwgaW5wdXRTaXplKTsKKyAgICAgICAgY29uc3QgY29t
cHV0ZVBhc3NFbmNvZGVyID0gY29tbWFuZEVuY29kZXIuYmVnaW5Db21wdXRlUGFzcygpOworICAg
ICAgICBjb21wdXRlUGFzc0VuY29kZXIuc2V0UGlwZWxpbmUoY29tcHV0ZVBpcGVsaW5lKTsKKyAg
ICAgICAgY29tcHV0ZVBhc3NFbmNvZGVyLnNldEJpbmRHcm91cCgwLCBiaW5kR3JvdXApOworICAg
ICAgICBjb21wdXRlUGFzc0VuY29kZXIuZGlzcGF0Y2goMSwgMSwgMSk7CisgICAgICAgIGNvbXB1
dGVQYXNzRW5jb2Rlci5lbmRQYXNzKCk7CisgICAgICAgIGNvbnN0IGNvbW1hbmRCdWZmZXIgPSBj
b21tYW5kRW5jb2Rlci5maW5pc2goKTsKKyAgICAgICAgZGV2aWNlLmdldFF1ZXVlKCkuc3VibWl0
KFtjb21tYW5kQnVmZmVyXSk7CisKKyAgICAgICAgY29uc3Qgb3V0cHV0QXJyYXlCdWZmZXIgPSBh
d2FpdCBvdXRwdXRCdWZmZXIubWFwUmVhZEFzeW5jKCk7CisgICAgICAgIGNvbnN0IG91dHB1dEZs
b2F0MzJBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkob3V0cHV0QXJyYXlCdWZmZXIpOworICAgICAg
ICByZXN1bHRzLnB1c2gob3V0cHV0RmxvYXQzMkFycmF5WzBdKTsKKyAgICAgICAgcmVzdWx0cy5w
dXNoKG91dHB1dEZsb2F0MzJBcnJheVsxXSk7CisgICAgICAgIG91dHB1dEJ1ZmZlci51bm1hcCgp
OworICAgIH0KKyAgICBsZXQgZXhwZWN0ZWQgPSBbMiwgNiwgNCwgMTIsIDQsIDEyLCAyLCA4LCA0
LCAxNiwgNCwgMTYsIDIsIDEwLCA0LCAyMCwgNCwgMjBdOworICAgIGxldCBlcnJvciA9IGZhbHNl
OworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgaWYgKHJlc3VsdHNbaV0gIT0gZXhwZWN0ZWRbaV0pIHsKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIHRlc3RQ
YXNzZWQoIiIpOworfQord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZ2V0QmFzaWNEZXZp
Y2UoKS50aGVuKGZ1bmN0aW9uKGRldmljZSkgeworICAgIHN0YXJ0KGRldmljZSkudGhlbihmdW5j
dGlvbigpIHsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgZnVuY3Rpb24oZSkgewor
ICAgICAgICB0ZXN0RmFpbGVkKCIiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7
Cit9LCBmdW5jdGlvbigpIHsKKyAgICB0ZXN0UGFzc2VkKCIiKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKK30pOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="393196"
          type_id="1"
          status="+"
          setter="rmorisset"
    />
          </attachment>
      

    </bug>

</bugzilla>