<?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>199595</bug_id>
          
          <creation_ts>2019-07-08 15:45:49 -0700</creation_ts>
          <short_desc>[WHLSL] Import all tests that pass without compiler changes from the JS reference test suite</short_desc>
          <delta_ts>2019-07-10 18:08:16 -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>WebGPU</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>
          <dependson>199604</dependson>
    
    <dependson>199642</dependson>
    
    <dependson>199647</dependson>
    
    <dependson>199651</dependson>
          <blocked>195681</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jonlee</cc>
    
    <cc>justin_fan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>rmorisset</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1551004</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-07-08 15:45:49 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551080</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-07-08 18:17:22 -0700</bug_when>
    <thetext>Ima skip simple tests where we already have tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551867</commentid>
    <comment_count>2</comment_count>
      <attachid>373870</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-07-10 15:58:57 -0700</bug_when>
    <thetext>Created attachment 373870
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551913</commentid>
    <comment_count>3</comment_count>
      <attachid>373870</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-10 17:59:16 -0700</bug_when>
    <thetext>Comment on attachment 373870
patch for landing

Clearing flags on attachment: 373870

Committed r247338: &lt;https://trac.webkit.org/changeset/247338&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551914</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-10 17:59:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551919</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-10 18:08:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/52925058&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373870</attachid>
            <date>2019-07-10 15:58:57 -0700</date>
            <delta_ts>2019-07-10 17:59:16 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>52707</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI0NzMzMCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDYzIEBACisyMDE5LTA3LTEwICBTYWFtIEJhcmF0aSAgPHNi
YXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFtXSExTTF0gSW1wb3J0IGFsbCB0ZXN0cyB0aGF0
IHBhc3Mgd2l0aG91dCBjb21waWxlciBjaGFuZ2VzIGZyb20gdGhlIEpTIHJlZmVyZW5jZSB0ZXN0
IHN1aXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTk1OTUKKworICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBSb2JpbiBNb3Jpc3NldC4KKworICAg
ICAgICAqIHdlYmdwdS93aGxzbC1hcmd1bWVudC1ldmFsdWF0aW9uLW9yZGVyLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLWFyZ3VtZW50LWV2YWx1YXRpb24tb3Jk
ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLWFycmF5LWxlbmd0aC1zcGVj
LXRlc3RzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLWFycmF5
LWxlbmd0aC1zcGVjLXRlc3RzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1h
cnJheS1zcGVjLXRlc3RzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtYXJy
YXktc3BlYy10ZXN0cy5odG1sOgorICAgICAgICAqIHdlYmdwdS93aGxzbC1iYWQtYWRkLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLWJhZC1hZGQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLWJvb2xzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViZ3B1L3dobHNsLWJvb2xzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdw
dS93aGxzbC1jYXN0cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxz
bC1jYXN0cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtY29tbWVudC1wYXJz
aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLWNvbW1lbnQt
cGFyc2luZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtY29weS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1jb3B5Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdwdS93aGxzbC1kZXJlZmVyZW5jZS1vcmRlcmluZy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1kZXJlZmVyZW5jZS1vcmRlcmluZy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtZG91YmxlLW5vdC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1kb3VibGUtbm90Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdwdS93aGxzbC1kdXBsaWNhdGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViZ3B1L3dobHNsLWR1cGxpY2F0ZXMuaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViZ3B1L3dobHNsLWluY3JlbWVudC1kZWNyZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJncHUvd2hsc2wtaW5jcmVtZW50LWRlY3JlbWVudC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJncHUvd2hsc2wtaW5kZXgtYW5kZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJncHUvd2hsc2wtaW5kZXgtYW5kZXIuaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViZ3B1L3dobHNsLWluZGV4LXNldHRlci1nZXR0ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJncHUvd2hsc2wtaW5kZXgtc2V0dGVyLWdldHRlci5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJncHUvd2hsc2wtbG9naWNhbC1uZWdhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHdlYmdwdS93aGxzbC1sb2dpY2FsLW5lZ2F0aW9uLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdwdS93aGxzbC1sb3RzLW9mLWxvY2FsLXZhcmlhYmxlcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1sb3RzLW9mLWxvY2FsLXZhcmlhYmxl
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtbHZhbHVlcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1sdmFsdWVzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdwdS93aGxzbC1udWxsLWFyZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdwdS93aGxzbC1udWxsLWFyZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
cHUvd2hsc2wtb3BlcmF0b3Itb3ZlcmxvYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJncHUvd2hsc2wtb3BlcmF0b3Itb3ZlcmxvYWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViZ3B1L3dobHNsLW92ZXJsb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2Vi
Z3B1L3dobHNsLW92ZXJsb2FkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1z
ZXR0ZXItc3BlYy10ZXN0cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93
aGxzbC1zZXR0ZXItc3BlYy10ZXN0cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hs
c2wtc3RvcmUtbnVsbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxz
bC1zdG9yZS1udWxsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1zdHJ1Y3Qt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtc3RydWN0Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1zd2l0Y2gtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtc3dpdGNoLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmdwdS93aGxzbC12YXJpYWJsZS1zaGFkb3dpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJncHUvd2hsc2wtdmFyaWFibGUtc2hhZG93aW5nLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdwdS93aGxzbC12ZWN0b3Itc3ludGF4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViZ3B1L3dobHNsLXZlY3Rvci1zeW50YXguaHRtbDogQWRkZWQuCisKIDIwMTkt
MDctMTAgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBB
WDogVm9pY2VPdmVyIGlnbm9yZWQgcm9sZT0icHJlc2VudGF0aW9uIiBvbiA8dGFibGU+IEhUTUwg
ZWxlbWVudHMKSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1hcmd1bWVudC1ldmFsdWF0
aW9uLW9yZGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUv
d2hsc2wtYXJndW1lbnQtZXZhbHVhdGlvbi1vcmRlci1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWFyZ3VtZW50LWV2YWx1YXRpb24tb3JkZXIt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIGV2YWx1
YXRpb25PcmRlckZvckFyZ3VtZW50cyAKKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNs
LWFyZ3VtZW50LWV2YWx1YXRpb24tb3JkZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy93ZWJncHUvd2hsc2wtYXJndW1lbnQtZXZhbHVhdGlvbi1vcmRlci5odG1sCShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1hcmd1bWVudC1ldmFsdWF0aW9uLW9yZGVy
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50
PSJsb25nIj4KKzx0aXRsZT5Db3B5aW5nLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0ianMvd2hsc2wt
dGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJqcy93ZWJncHUtZnVuY3Rp
b25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgd2hsc2xUZXN0cyA9IHt9OworCit3aGxz
bFRlc3RzLmV2YWx1YXRpb25PcmRlckZvckFyZ3VtZW50cyA9IGFzeW5jICgpID0+IHsKKyAgICBj
b25zdCBwcm9ncmFtID0gYAorICAgICAgICBpbnQgZm9vKCkgeyByZXR1cm4gKmJhcigxMCkgKyAq
YmFyKDIwKTsgfQorCisgICAgICAgIHRocmVhZCBpbnQqIGJhcihpbnQgdmFsdWUpCisgICAgICAg
IHsKKyAgICAgICAgICAgIGludCB4ID0gdmFsdWU7CisgICAgICAgICAgICByZXR1cm4gJng7Cisg
ICAgICAgIH0KKworICAgICAgICBpbnQgYmF6KCkgeyByZXR1cm4gcGx1cyhiYXIoMTApLCBiYXIo
MjApKTsgfQorCisgICAgICAgIGludCBwbHVzKHRocmVhZCBpbnQqIHgsIHRocmVhZCBpbnQqIHkp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAqeCArICp5OworICAgICAgICB9CisgICAg
YDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLCAzMCk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJv
Z3JhbSwgImJheiIsIFtdKSwgNDApOworfTsKKworcnVuVGVzdHMod2hsc2xUZXN0cyk7Cis8L3Nj
cmlwdD4KKzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWFycmF5LWxl
bmd0aC1zcGVjLXRlc3RzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93
ZWJncHUvd2hsc2wtYXJyYXktbGVuZ3RoLXNwZWMtdGVzdHMtZXhwZWN0ZWQudHh0CShub25leGlz
dGVudCkKKysrIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1hcnJheS1sZW5ndGgtc3BlYy10ZXN0
cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0IEBACisKK1BBU1Mgbm9u
QXJyYXlSZWZBcnJheUxlbmd0aEZhaWwgCitQQVNTIG5vbkFycmF5UmVmQXJyYXlMZW5ndGhTdWNj
ZWVkIAorCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtYXJyYXktbGVuZ3RoLXNwZWMt
dGVzdHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtYXJyYXkt
bGVuZ3RoLXNwZWMtdGVzdHMuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJn
cHUvd2hsc2wtYXJyYXktbGVuZ3RoLXNwZWMtdGVzdHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPG1ldGEgY2hhcnNldD11dGYt
OD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPlRlc3Qgc3Ry
dWN0cy48L3RpdGxlPgorPHNjcmlwdCBzcmM9ImpzL3dobHNsLXRlc3QtaGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2NvbnN0IHdobHNsVGVzdHMgPSB7fTsKKword2hsc2xUZXN0cy5ub25BcnJheVJlZkFy
cmF5TGVuZ3RoRmFpbCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAg
ICAgICBgCisgICAgICAgICAgICB0aHJlYWQgdWludCogbGVuZ3RoUHRyKCkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBpbnRbNDJdIGFycmF5OworICAgICAgICAgICAgICAgIHJldHVy
biAmKGFycmF5Lmxlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgIGApOworfQorCit3aGxz
bFRlc3RzLm5vbkFycmF5UmVmQXJyYXlMZW5ndGhTdWNjZWVkID0gYXN5bmMgKCkgPT4KK3sKKyAg
ICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgdWludCBmb28oKQorICAgICAgICB7CisgICAgICAg
ICAgICBmbG9hdFs3NTRdIGFycmF5OworICAgICAgICAgICAgcmV0dXJuIGFycmF5Lmxlbmd0aDsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGJhcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlu
dFs3NTRdIGFycmF5OworICAgICAgICAgICAgcmV0dXJuIGFycmF5Lmxlbmd0aDsKKyAgICAgICAg
fQorICAgIGA7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsVWludEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSksIDc1NCk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsVWludEZ1
bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDc1NCk7Cit9CisKK3J1blRlc3RzKHdobHNsVGVz
dHMpOworPC9zY3JpcHQ+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wt
YXJyYXktc3BlYy10ZXN0cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
d2ViZ3B1L3dobHNsLWFycmF5LXNwZWMtdGVzdHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNDcz
MjcpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtYXJyYXktc3BlYy10ZXN0cy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsNCArNCw1IEBAIFBBU1MgYXNzaWduTGVuZ3RoIAog
UEFTUyBhc3NpZ25MZW5ndGhIZWxwZXIgCiBQQVNTIGJ1aWxkQXJyYXlUaGVuU3VtSXQgCiBQQVNT
IGJ1aWxkQXJyYXlUaGVuU3VtSXRVc2luZ0FycmF5UmVmZXJlbmNlIAorUEFTUyBwYXNzaW5nQXJy
YXlUb0Z1bmN0aW9uIAogCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtYXJyYXktc3Bl
Yy10ZXN0cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1hcnJh
eS1zcGVjLXRlc3RzLmh0bWwJKHJldmlzaW9uIDI0NzMyNykKKysrIExheW91dFRlc3RzL3dlYmdw
dS93aGxzbC1hcnJheS1zcGVjLXRlc3RzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTk1LDYgKzk1
LDI4IEBAIHdobHNsVGVzdHMuYnVpbGRBcnJheVRoZW5TdW1JdFVzaW5nQXJyYXkKICAgICBhc3Nl
cnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0MiAq
IDUgKyA0MiAqIDQxIC8gMik7CiB9CiAKK3dobHNsVGVzdHMucGFzc2luZ0FycmF5VG9GdW5jdGlv
biA9IGFzeW5jICgpID0+Cit7CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAgICAgIGludCBmb28o
KQorICAgICAgICB7CisgICAgICAgICAgICBpbnRbMTBdIGFycjsKKyAgICAgICAgICAgIGZvciAo
dWludCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAgICBhcnJbaV0g
PSBpbnQoaSkgKyAxOworICAgICAgICAgICAgcmV0dXJuIHN1bShhcnIpOworICAgICAgICB9CisK
KyAgICAgICAgaW50IHN1bShpbnRbMTBdIHhzKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQg
dCA9IDA7CisgICAgICAgICAgICBmb3IgKHVpbnQgaSA9IDA7IGkgPCB4cy5sZW5ndGg7IGkrKykK
KyAgICAgICAgICAgICAgICB0ID0gdCArIHhzW2ldOworICAgICAgICAgICAgcmV0dXJuIHQ7Cisg
ICAgICAgIH0KKyAgICBgOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSksIDU1KTsKK30KKwogcnVuVGVzdHMod2hsc2xUZXN0cyk7CiA8
L3NjcmlwdD4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1iYWQtYWRk
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtYmFk
LWFkZC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsLWJhZC1hZGQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIGJhZEFkZCAKKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWJhZC1hZGQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtYmFkLWFkZC5odG1s
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1iYWQtYWRkLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25n
Ij4KKzx0aXRsZT5CYWQgYWRkLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0ianMvd2hsc2wtdGVzdC1o
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJqcy93ZWJncHUtZnVuY3Rpb25zLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgd2hsc2xUZXN0cyA9IHt9OworCit3aGxzbFRlc3Rz
LmJhZEFkZCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBg
CisgICAgICAgICAgICB2b2lkIGZvbyhpbnQgeCwgdWludCB5KQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIHVpbnQgeiA9IHggKyB5OworICAgICAgICAgICAgfQorICAgICAgICBgKTsK
K30KKworcnVuVGVzdHMod2hsc2xUZXN0cyk7Cis8L3NjcmlwdD4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL3dlYmdwdS93aGxzbC1ib29scy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWJvb2xzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQp
CisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtYm9vbHMtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIGJvb2xlYW5NYXRoIAorUEFTUyBpZGVudGl0
eUJvb2wgCitQQVNTIGxpdGVyYWxCb29sIAorUEFTUyBvcGVyYXRvckJvb2wgCisKSW5kZXg6IExh
eW91dFRlc3RzL3dlYmdwdS93aGxzbC1ib29scy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3dlYmdwdS93aGxzbC1ib29scy5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3Rz
L3dlYmdwdS93aGxzbC1ib29scy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTI0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5h
bWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPkJvb2xzLjwvdGl0bGU+Cis8c2Ny
aXB0IHNyYz0ianMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgd2hsc2xU
ZXN0cyA9IHt9OworCit3aGxzbFRlc3RzLmJvb2xlYW5NYXRoID0gYXN5bmMgKCkgPT4KK3sKKyAg
ICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgYm9vbCBmb28oKQorICAgICAgICB7CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZSAmJiB0cnVlOworICAgICAgICB9CisgICAgICAgIGJvb2wgZm9vMigp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlICYmIGZhbHNlOworICAgICAgICB9
CisgICAgICAgIGJvb2wgZm9vMygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZSAmJiB0cnVlOworICAgICAgICB9CisgICAgICAgIGJvb2wgZm9vNCgpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZSAmJiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBib29s
IGZvbzUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZSB8fCB0cnVlOworICAg
ICAgICB9CisgICAgICAgIGJvb2wgZm9vNigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlIHx8IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGJvb2wgZm9vNygpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZSB8fCB0cnVlOworICAgICAgICB9CisgICAgICAg
IGJvb2wgZm9vOCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZSB8fCBmYWxz
ZTsKKyAgICAgICAgfQorICAgIGA7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsQm9vbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIHRydWUpOworICAgIGFzc2VydF9lcXVhbHMoYXdh
aXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdKSwgZmFsc2UpOworICAgIGFz
c2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwg
ZmFsc2UpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNCIsIFtdKSwgZmFsc2UpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtdKSwgdHJ1ZSk7CisgICAgYXNzZXJ0X2VxdWFscyhh
d2FpdCBjYWxsQm9vbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10pLCB0cnVlKTsKKyAgICBh
c3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxCb29sRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbXSks
IHRydWUpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFt
LCAiZm9vOCIsIFtdKSwgZmFsc2UpOworfQorCisKK3dobHNsVGVzdHMuaWRlbnRpdHlCb29sID0g
YXN5bmMgKCkgPT4geworICAgIGxldCBwcm9ncmFtID0gImJvb2wgZm9vKGJvb2wgeCkgeyByZXR1
cm4geDsgfSI7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsQm9vbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUJvb2wodHJ1ZSldKSwgdHJ1ZSk7CisgICAgYXNzZXJ0X2VxdWFscyhh
d2FpdCBjYWxsQm9vbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2woZmFsc2UpXSks
IGZhbHNlKTsKK30KKword2hsc2xUZXN0cy5saXRlcmFsQm9vbCA9IGFzeW5jICgpID0+IHsKKyAg
ICBsZXQgcHJvZ3JhbSA9ICJib29sIGZvbygpIHsgcmV0dXJuIHRydWU7IH0iOworICAgIGFzc2Vy
dF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVl
KTsKK30KKword2hsc2xUZXN0cy5vcGVyYXRvckJvb2wgPSBhc3luYyAoKSA9PgoreworICAgIGxl
dCBwcm9ncmFtID0gYAorICAgICAgICBib29sIGJvb2xGcm9tVWNoYXJGYWxzZSgpIHsgcmV0dXJu
IGJvb2wodWNoYXIoMCkpOyB9CisgICAgICAgIGJvb2wgYm9vbEZyb21VY2hhclRydWUoKSB7IHJl
dHVybiBib29sKHVjaGFyKDEpKTsgfQorCisgICAgICAgIGJvb2wgYm9vbEZyb21VaW50RmFsc2Uo
KSB7IHJldHVybiBib29sKHVpbnQoMCkpOyB9CisgICAgICAgIGJvb2wgYm9vbEZyb21VaW50VHJ1
ZSgpIHsgcmV0dXJuIGJvb2wodWludCgxKSk7IH0KKworICAgICAgICBib29sIGJvb2xGcm9tSW50
RmFsc2UoKSB7IHJldHVybiBib29sKGludCgwKSk7IH0KKyAgICAgICAgYm9vbCBib29sRnJvbUlu
dFRydWUoKSB7IHJldHVybiBib29sKGludCgxKSk7IH0KKworICAgICAgICBib29sIGJvb2xGcm9t
RmxvYXRGYWxzZSgpIHsgcmV0dXJuIGJvb2woZmxvYXQoMCkpOyB9CisgICAgICAgIGJvb2wgYm9v
bEZyb21GbG9hdFRydWUoKSB7IHJldHVybiBib29sKGZsb2F0KDEpKTsgfQorICAgICAgICBib29s
IGJvb2xGcm9tRmxvYXROYU4oZmxvYXQgYXJnKSB7IHJldHVybiBib29sKGFyZyk7IH0KKyAgICBg
OworCisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsQm9vbEZ1bmN0aW9uKHByb2dyYW0sICJi
b29sRnJvbVVjaGFyRmFsc2UiLCBbXSksIGZhbHNlKTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0
IGNhbGxCb29sRnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9tVWNoYXJUcnVlIiwgW10pLCB0cnVl
KTsKKworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFtLCAi
Ym9vbEZyb21VaW50RmFsc2UiLCBbXSksIGZhbHNlKTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0
IGNhbGxCb29sRnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9tVWludFRydWUiLCBbXSksIHRydWUp
OworCisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsQm9vbEZ1bmN0aW9uKHByb2dyYW0sICJi
b29sRnJvbUludEZhbHNlIiwgW10pLCBmYWxzZSk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBj
YWxsQm9vbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbUludFRydWUiLCBbXSksIHRydWUpOwor
CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsQm9vbEZ1bmN0aW9uKHByb2dyYW0sICJib29s
RnJvbUZsb2F0RmFsc2UiLCBbXSksIGZhbHNlKTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNh
bGxCb29sRnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9tRmxvYXRUcnVlIiwgW10pLCB0cnVlKTsK
KyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxCb29sRnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xG
cm9tRmxvYXROYU4iLCBbbWFrZUZsb2F0KHByb2dyYW0sIE5hTildKSwgdHJ1ZSk7CisKKyAgICBh
d2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHZvaWQgZm9vKCkKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBmbG9hdDMgeDsKKyAgICAgICAgICAgICAgICBib29s
IHIgPSBib29sKHgpOworICAgICAgICAgICAgfQorICAgICAgICBgKTsKKyAgICAgICAgCisKKyAg
ICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHZvaWQgZm9vKCkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBmbG9hdDN4MyB4OworICAgICAgICAgICAgICAg
IGJvb2wgciA9IGJvb2woeCk7CisgICAgICAgICAgICB9CisgICAgICAgIGApOworICAgICAgICAK
K30KKworcnVuVGVzdHMod2hsc2xUZXN0cyk7Cis8L3NjcmlwdD4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL3dlYmdwdS93aGxzbC1jYXN0cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWNhc3RzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQp
CisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtY2FzdHMtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIGNhc3RzIAorUEFTUyBzZWxmQ2FzdHMgCisK
SW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1jYXN0cy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1jYXN0cy5odG1sCShub25leGlzdGVudCkKKysrIExh
eW91dFRlc3RzL3dlYmdwdS93aGxzbC1jYXN0cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04Pgor
PG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+QmFkIGFkZC48L3Rp
dGxlPgorPHNjcmlwdCBzcmM9ImpzL3dobHNsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Nv
bnN0IHdobHNsVGVzdHMgPSB7fTsKKword2hsc2xUZXN0cy5jYXN0cyA9IGFzeW5jICgpID0+Cit7
CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAgICAgIHN0cnVjdCBGb28geworICAgICAgICAgICAg
aW50IHg7CisgICAgICAgIH0KKyAgICAgICAgc3RydWN0IEJhciB7CisgICAgICAgICAgICBpbnQg
eTsKKyAgICAgICAgfQorICAgICAgICBvcGVyYXRvciBCYXIoRm9vIGZvbykgeworICAgICAgICAg
ICAgQmFyIGI7CisgICAgICAgICAgICBiLnkgPSBmb28ueCArIDc7CisgICAgICAgICAgICByZXR1
cm4gYjsKKyAgICAgICAgfQorICAgICAgICBpbnQgYmF6KGludCB6KSB7CisgICAgICAgICAgICBG
b28gZm9vOworICAgICAgICAgICAgZm9vLnggPSB6OworICAgICAgICAgICAgQmFyIGIgPSBCYXIo
Zm9vKTsKKyAgICAgICAgICAgIHJldHVybiBiLnk7CisgICAgICAgIH0KKyAgICBgOworICAgIGFz
c2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbbWFrZUlu
dCg2KV0pLCAxMyk7Cit9CisKK3dobHNsVGVzdHMuc2VsZkNhc3RzID0gYXN5bmMgKCkgPT4KK3sK
KyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgc3RydWN0IEZvbyB7CisgICAgICAgICAgICBp
bnQgeDsKKyAgICAgICAgfQorICAgICAgICBpbnQgZm9vKCkKKyAgICAgICAgeworICAgICAgICAg
ICAgRm9vIGZvbzsKKyAgICAgICAgICAgIGZvby54ID0gMjE7CisgICAgICAgICAgICBGb28gYmFy
ID0gRm9vKGZvbyk7CisgICAgICAgICAgICBiYXIueCA9IDQyOworICAgICAgICAgICAgcmV0dXJu
IGZvby54ICsgYmFyLng7CisgICAgICAgIH0KKyAgICBgOworICAgIGFzc2VydF9lcXVhbHMoYXdh
aXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDIxICsgNDIpOworfQorCity
dW5UZXN0cyh3aGxzbFRlc3RzKTsKKzwvc2NyaXB0PgorPC9odG1sPgorCkluZGV4OiBMYXlvdXRU
ZXN0cy93ZWJncHUvd2hsc2wtY29tbWVudC1wYXJzaW5nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtY29tbWVudC1wYXJzaW5nLWV4cGVjdGVkLnR4
dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtY29tbWVudC1wYXJz
aW5nLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAKKworUEFTUyBj
b21tZW50UGFyc2luZyAKKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWNvbW1lbnQt
cGFyc2luZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1jb21t
ZW50LXBhcnNpbmcuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hs
c2wtY29tbWVudC1wYXJzaW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5UZXN0IHN0cnVjdHMuPC90aXRsZT4K
KzxzY3JpcHQgc3JjPSJqcy93aGxzbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCB3
aGxzbFRlc3RzID0ge307CisKK3dobHNsVGVzdHMuY29tbWVudFBhcnNpbmcgPSBhc3luYyAoKSA9
PiB7CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAgICAgIC8qIHRoaXMgY29tbWVudAorICAgICAg
ICBydW5zIG92ZXIgbXVsdGlwbGUgbGluZXMgKi8KKyAgICAgICAgYm9vbCBmb28oKSB7IHJldHVy
biB0cnVlOyB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxCb29sRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgdHJ1ZSk7CisKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisg
ICAgICAgIGAKKyAgICAgICAgLyogdGhpcyBjb21tZW50CisgICAgICAgIHJ1bnMgb3ZlciBtdWx0
aXBsZSBsaW5lcworICAgICAgICBib29sIGZvbygpIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAg
YCk7Cit9CisKK3J1blRlc3RzKHdobHNsVGVzdHMpOworPC9zY3JpcHQ+Cis8L2h0bWw+CisKSW5k
ZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1jb3B5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtY29weS1leHBlY3RlZC50eHQJKG5vbmV4aXN0
ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWNvcHktZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIGNvcHlBcnJheSAKKwpJbmRleDogTGF5
b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWNvcHkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy93ZWJncHUvd2hsc2wtY29weS5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3dl
YmdwdS93aGxzbC1jb3B5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0
aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5Db3B5aW5nLjwvdGl0bGU+Cis8c2NyaXB0
IHNyYz0ianMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJq
cy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgd2hsc2xUZXN0
cyA9IHt9OworCit3aGxzbFRlc3RzLmNvcHlBcnJheSA9IGFzeW5jICgpID0+Cit7CisgICAgbGV0
IHByb2dyYW0gPSBgCisgICAgICAgIGludCBmb28oKQorICAgICAgICB7CisgICAgICAgICAgICBp
bnRbMTBdIHhzOworICAgICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgeHMubGVuZ3RoOyBp
KyspCisgICAgICAgICAgICAgICAgeHNbaV0gPSBpbnQoaSkgKyAxOworICAgICAgICAgICAgaW50
WzEwXSB5cyA9IHhzOworICAgICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgeHMubGVuZ3Ro
OyBpKyspCisgICAgICAgICAgICAgICAgeHNbaV0gPSAwOworICAgICAgICAgICAgaW50IHN1bSA9
IDA7CisgICAgICAgICAgICBmb3IgKHVpbnQgaSA9IDA7IGkgPCB5cy5sZW5ndGg7IGkrKykKKyAg
ICAgICAgICAgICAgICBzdW0gPSBzdW0gKyB5c1tpXTsKKyAgICAgICAgICAgIHJldHVybiBzdW07
CisgICAgICAgIH0KKyAgICBgOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDU1KTsKK30KKworcnVuVGVzdHMod2hsc2xUZXN0cyk7
Cis8L3NjcmlwdD4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1kZXJl
ZmVyZW5jZS1vcmRlcmluZy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
d2ViZ3B1L3dobHNsLWRlcmVmZXJlbmNlLW9yZGVyaW5nLWV4cGVjdGVkLnR4dAkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtZGVyZWZlcmVuY2Utb3JkZXJpbmctZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIGNhbGxBcmd1
bWVudHNBcmVDb3BpZWRJbW1lZGlhdGVseUFmdGVyRXZhbHVhdGlvbiAKKwpJbmRleDogTGF5b3V0
VGVzdHMvd2ViZ3B1L3dobHNsLWRlcmVmZXJlbmNlLW9yZGVyaW5nLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWRlcmVmZXJlbmNlLW9yZGVyaW5nLmh0bWwJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWRlcmVmZXJlbmNlLW9yZGVy
aW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250
ZW50PSJsb25nIj4KKzx0aXRsZT5EZXJlZmVyZW5jZSBvcmRlcmluZy48L3RpdGxlPgorPHNjcmlw
dCBzcmM9ImpzL3dobHNsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
anMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2NvbnN0IHdobHNsVGVz
dHMgPSB7fTsKKword2hsc2xUZXN0cy5jYWxsQXJndW1lbnRzQXJlQ29waWVkSW1tZWRpYXRlbHlB
ZnRlckV2YWx1YXRpb24gPSBhc3luYyAoKSA9PiB7CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAg
ICAgIGludCBmb28oKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gKmJhcig1KSArICpi
YXIoNyk7CisgICAgICAgIH0KKworICAgICAgICB0aHJlYWQgaW50KiBiYXIoaW50IHZhbHVlKQor
ICAgICAgICB7CisgICAgICAgICAgICBpbnQgeCA9IHZhbHVlOworICAgICAgICAgICAgcmV0dXJu
ICZ4OworICAgICAgICB9CisgICAgYDsKKworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbElu
dEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDEyKTsKK307CisKK3J1blRlc3RzKHdobHNs
VGVzdHMpOworPC9zY3JpcHQ+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hs
c2wtZG91YmxlLW5vdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2Vi
Z3B1L3dobHNsLWRvdWJsZS1ub3QtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91
dFRlc3RzL3dlYmdwdS93aGxzbC1kb3VibGUtbm90LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDMgQEAKKworUEFTUyBkb3VibGVOb3QgCisKSW5kZXg6IExheW91dFRlc3Rz
L3dlYmdwdS93aGxzbC1kb3VibGUtbm90Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
d2ViZ3B1L3dobHNsLWRvdWJsZS1ub3QuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0
cy93ZWJncHUvd2hsc2wtZG91YmxlLW5vdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1l
dGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+Q29weWluZy48L3RpdGxl
PgorPHNjcmlwdCBzcmM9ImpzL3dobHNsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2NvbnN0
IHdobHNsVGVzdHMgPSB7fTsKKword2hsc2xUZXN0cy5kb3VibGVOb3QgPSBhc3luYyAoKSA9Pgor
eworICAgIGxldCBwcm9ncmFtID0gYAorICAgICAgICBib29sIGZvbyhib29sIHgpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHJldHVybiAhIXg7CisgICAgICAgIH0KKyAgICBgOworICAgIGFzc2Vy
dF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29s
KHRydWUpXSksIHRydWUpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKGZhbHNlKV0pLCBmYWxzZSk7Cit9CisKK3J1blRl
c3RzKHdobHNsVGVzdHMpOworPC9zY3JpcHQ+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93
ZWJncHUvd2hsc2wtZHVwbGljYXRlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvd2ViZ3B1L3dobHNsLWR1cGxpY2F0ZXMtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1kdXBsaWNhdGVzLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAKKworUEFTUyBkdXBsaWNhdGVGdW5jdGlvbnMgCisK
SW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1kdXBsaWNhdGVzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWR1cGxpY2F0ZXMuaHRtbAkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtZHVwbGljYXRlcy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8bWV0YSBj
aGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0
bGU+VGVzdCBwcmVmaXgvcG9zdGZpeC48L3RpdGxlPgorPHNjcmlwdCBzcmM9ImpzL3dobHNsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9u
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2NvbnN0IHdobHNsVGVzdHMgPSB7fTsKKword2hsc2xU
ZXN0cy5kdXBsaWNhdGVGdW5jdGlvbnMgPSBhc3luYyAoKSA9PiB7CisgICAgYXdhaXQgY2hlY2tG
YWlsKGAKKyAgICAgICAgdm9pZCBmb28oKSB7IH0KKyAgICAgICAgdm9pZCBmb28oKSB7IH0KKyAg
ICBgKTsKKworICAgIGF3YWl0IGNoZWNrRmFpbChgCisgICAgICAgIHZvaWQgZm9vKGludCB4KSB7
IH0KKyAgICAgICAgdHlwZWRlZiBBID0gaW50OworICAgICAgICB2b2lkIGZvbyhBIHgpIHsgfQor
ICAgIGApOworCisgICAgY29uc3QgcHJvZ3JhbSA9IGAKKyAgICAgICAgaW50IGJhcigpIHsKKyAg
ICAgICAgICAgIHJldHVybiA0MjsKKyAgICAgICAgfQorICAgICAgICBpbnQgYmFyKGludCB4KSB7
CisgICAgICAgICAgICByZXR1cm4geDsKKyAgICAgICAgfQorICAgICAgICBpbnQgZm9vKCkKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGJhcigpOworICAgICAgICB9CisgICAgICAgIGlu
dCBiYXooKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYmFyKDMpOworICAgICAgICB9
CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10pLCA0Mik7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rp
b24ocHJvZ3JhbSwgImJheiIsIFtdKSwgMyk7CisKKyAgICBhd2FpdCBjaGVja0ZhaWwoYAorICAg
ICAgICBpbnQgb3BlcmF0b3ImW10odGhyZWFkIGludFtdIGEsIHVpbnQgYikgeworICAgICAgICAg
ICAgcmV0dXJuIDQ7CisgICAgICAgIH0KKyAgICBgKTsKKworICAgIGF3YWl0IGNoZWNrRmFpbChg
CisgICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKHRocmVhZCBpbnRbXSBhKSB7CisgICAgICAg
ICAgICByZXR1cm4gNDsKKyAgICAgICAgfQorICAgIGApOworCisgICAgYXdhaXQgY2hlY2tGYWls
KGAKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KHRocmVhZCBpbnRbXSBhLCB0aHJlYWQgaW50W10g
YikgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICBgKTsKKworICAg
IGF3YWl0IGNoZWNrRmFpbChgCisgICAgICAgIGJvb2wgb3BlcmF0b3I9PSh0aHJlYWQgaW50KiBh
LCB0aHJlYWQgaW50KiBiKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQor
ICAgIGApOworfTsKKworcnVuVGVzdHMod2hsc2xUZXN0cyk7Cis8L3NjcmlwdD4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1pbmNyZW1lbnQtZGVjcmVtZW50LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtaW5jcmVtZW50
LWRlY3JlbWVudC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2Vi
Z3B1L3dobHNsLWluY3JlbWVudC1kZWNyZW1lbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIGluY3JlbWVudEFuZERlY3JlbWVudCAKKwpJbmRleDog
TGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWluY3JlbWVudC1kZWNyZW1lbnQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtaW5jcmVtZW50LWRlY3JlbWVudC5odG1s
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1pbmNyZW1lbnQtZGVj
cmVtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBj
b250ZW50PSJsb25nIj4KKzx0aXRsZT5Db3B5aW5nLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0ianMv
d2hsc2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJqcy93ZWJncHUt
ZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgd2hsc2xUZXN0cyA9IHt9Owor
Cit3aGxzbFRlc3RzLmluY3JlbWVudEFuZERlY3JlbWVudCA9IGFzeW5jICgpID0+IHsKKyAgICBs
ZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgaW50IGZvbzEoKSB7IGludCB4ID0gMDsgcmV0dXJuIHgr
KzsgfQorICAgICAgICBpbnQgZm9vMigpIHsgaW50IHggPSAwOyB4Kys7IHJldHVybiB4OyB9Cisg
ICAgICAgIGludCBmb28zKCkgeyBpbnQgeCA9IDA7IHJldHVybiArK3g7IH0KKyAgICAgICAgaW50
IGZvbzQoKSB7IGludCB4ID0gMDsgKyt4OyByZXR1cm4geDsgfQorICAgICAgICBpbnQgZm9vNSgp
IHsgaW50IHggPSAwOyByZXR1cm4geC0tOyB9CisgICAgICAgIGludCBmb282KCkgeyBpbnQgeCA9
IDA7IHgtLTsgcmV0dXJuIHg7IH0KKyAgICAgICAgaW50IGZvbzcoKSB7IGludCB4ID0gMDsgcmV0
dXJuIC0teDsgfQorICAgICAgICBpbnQgZm9vOCgpIHsgaW50IHggPSAwOyAtLXg7IHJldHVybiB4
OyB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFtdKSwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSksIDEpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQg
Y2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10pLCAxKTsKKyAgICBhc3NlcnRfZXF1
YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtdKSwgMSk7CisgICAg
YXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbXSks
IDApOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW10pLCAtMSk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzciLCBbXSksIC0xKTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJ
bnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFtdKSwgLTEpOworfTsKKworcnVuVGVzdHMod2hs
c2xUZXN0cyk7Cis8L3NjcmlwdD4KKzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1
L3dobHNsLWluZGV4LWFuZGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy93ZWJncHUvd2hsc2wtaW5kZXgtYW5kZXItZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysr
IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1pbmRleC1hbmRlci1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgaW5kZXhBbmRlcldpdGhOb3RoaW5nV3Jv
bmcgCitQQVNTIGluZGV4QW5kZXJXaXRoV3JvbmdOdW1iZXJPZkFyZ3VtZW50cyAKKwpJbmRleDog
TGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWluZGV4LWFuZGVyLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWluZGV4LWFuZGVyLmh0bWwJKG5vbmV4aXN0ZW50KQor
KysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWluZGV4LWFuZGVyLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJz
ZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5U
ZXN0IHN0cnVjdHMuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJqcy93aGxzbC10ZXN0LWhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+Citjb25zdCB3aGxzbFRlc3RzID0ge307CisKK3dobHNsVGVzdHMuaW5kZXhB
bmRlcldpdGhOb3RoaW5nV3JvbmcgPSBhc3luYyAoKSA9PgoreworICAgIGxldCBwcm9ncmFtID0g
YAorICAgICAgICBzdHJ1Y3QgRm9vIHsKKyAgICAgICAgICAgIGludCB4OworICAgICAgICB9Cisg
ICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZvbywgdWludCkKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuICZmb28tPng7CisgICAgICAgIH0KKyAgICAgICAg
aW50IGZvbygpCisgICAgICAgIHsKKyAgICAgICAgICAgIEZvbyB4OworICAgICAgICAgICAgeC54
ID0gMTM7CisgICAgICAgICAgICByZXR1cm4geFs2NjZdOworICAgICAgICB9CisgICAgYDsKKyAg
ICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10p
LCAxMyk7Cit9CisKK3dobHNsVGVzdHMuaW5kZXhBbmRlcldpdGhXcm9uZ051bWJlck9mQXJndW1l
bnRzID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAg
ICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKCkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgICAgICByZXR1cm4gJng7CisgICAgICAgICAg
ICB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAg
IGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geworICAgICAgICAgICAgICAgIGludCB4OworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEZv
byogZm9vKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiAmZm9vLT54Owor
ICAgICAgICAgICAgfQorICAgICAgICBgKTsKKyAgICAgICAgCisgICAgYXdhaXQgY2hlY2tGYWls
KAorICAgICAgICBgCisgICAgICAgICAgICBzdHJ1Y3QgRm9vIHsKKyAgICAgICAgICAgICAgICBp
bnQgeDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltd
KHRocmVhZCBGb28qIGZvbywgdWludCwgdWludCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gJmZvby0+eDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYCk7Cit9CisKK3J1
blRlc3RzKHdobHNsVGVzdHMpOworPC9zY3JpcHQ+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy93ZWJncHUvd2hsc2wtaW5kZXgtc2V0dGVyLWdldHRlci1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWluZGV4LXNldHRlci1nZXR0ZXItZXhwZWN0
ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1pbmRleC1z
ZXR0ZXItZ2V0dGVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcgQEAK
KworUEFTUyBpbmRleFNldHRlcldpdGhOb0dldHRlck92ZXJsb2FkIAorUEFTUyBpbmRleFNldHRl
cldpdGhOb0dldHRlck92ZXJsb2FkRml4ZWQgCitQQVNTIG5vdExvbmVJbmRleFNldHRlciAKK1BB
U1MgbG9uZUluZGV4U2V0dGVyIAorUEFTUyBsb25lSW5kZXhTZXR0ZXJQb2ludGVyIAorCkluZGV4
OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtaW5kZXgtc2V0dGVyLWdldHRlci5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1pbmRleC1zZXR0ZXItZ2V0dGVyLmh0
bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWluZGV4LXNldHRl
ci1nZXR0ZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwNSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0
IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5UZXN0IHN0cnVjdHMuPC90aXRsZT4KKzxzY3JpcHQg
c3JjPSJqcy93aGxzbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Impz
L3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCB3aGxzbFRlc3Rz
ID0ge307CisKK3dobHNsVGVzdHMuaW5kZXhTZXR0ZXJXaXRoTm9HZXR0ZXJPdmVybG9hZCA9IGFz
eW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAg
ICBzdHJ1Y3QgRm9vIHsgfQorICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KKyAgICAgICAgICAg
IGludCBvcGVyYXRvcltdKEZvbywgdWludCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gNTM0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109
KEJhciwgdWludCwgaW50KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBC
YXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYCk7CisgICAgICAgIAorfTsKKword2hsc2xU
ZXN0cy5pbmRleFNldHRlcldpdGhOb0dldHRlck92ZXJsb2FkRml4ZWQgPSBhc3luYyAoKSA9Pgor
eworICAgIGNvbnN0IHByb2dyYW0gPSBgCisgICAgICAgIHN0cnVjdCBCYXIgeyB9CisgICAgICAg
IGludCBvcGVyYXRvcltdKEJhciwgdWludCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJu
IDUzNDsKKyAgICAgICAgfQorICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBCYXIoKTsKKyAgICAgICAgfQorICAgICAg
ICBpbnQgZm9vKCkgeyByZXR1cm4gQmFyKClbMF07IH0KKyAgICAgICAgaW50IGJhcigpIHsKKyAg
ICAgICAgICAgIEJhciBiOworICAgICAgICAgICAgYlswXSA9IDQwMDsKKyAgICAgICAgICAgIHJl
dHVybiBiWzBdOworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNh
bGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA1MzQpOworICAgIGFzc2VydF9lcXVh
bHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDUzNCk7Cit9Owor
Cit3aGxzbFRlc3RzLm5vdExvbmVJbmRleFNldHRlciA9IGFzeW5jICgpID0+Cit7CisgICAgY29u
c3QgcHJvZ3JhbSA9IGAKKyAgICAgICAgaW50IG9wZXJhdG9yW10oaW50LCB1aW50KQorICAgICAg
ICB7CisgICAgICAgICAgICByZXR1cm4gNjU7CisgICAgICAgIH0KKyAgICAgICAgaW50IG9wZXJh
dG9yW109KGludCwgdWludCwgaW50KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gNTQz
OworICAgICAgICB9CisgICAgICAgIGludCBmb28oKSB7CisgICAgICAgICAgICBpbnQgeDsKKyAg
ICAgICAgICAgIHJldHVybiB4WzBdOworICAgICAgICB9CisgICAgICAgIGludCBiYXIoKSB7Cisg
ICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgIHhbMF0gPSA0MjsKKyAgICAgICAgICAgIHJl
dHVybiB4OworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJ
bnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA2NSk7CisgICAgYXNzZXJ0X2VxdWFscyhh
d2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwgNTQzKTsKK307CisKK3do
bHNsVGVzdHMubG9uZUluZGV4U2V0dGVyID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBjaGVj
a0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGludCBvcGVyYXRvcltdPShpbnQsIHVpbnQs
IGludCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gNTQzOworICAgICAg
ICAgICAgfQorICAgICAgICBgKTsKKyAgICAgICAgCit9OworCit3aGxzbFRlc3RzLmxvbmVJbmRl
eFNldHRlclBvaW50ZXIgPSBhc3luYyAoKSA9PgoreworICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAg
ICAgICAgYAorICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3JbXT0odGhyZWFkIGludCog
cHRyLCB1aW50LCBpbnQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHB0
cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYCk7CisgICAgICAgIAorfTsKKworcnVuVGVzdHMo
d2hsc2xUZXN0cyk7Cis8L3NjcmlwdD4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3dlYmdw
dS93aGxzbC1sb2dpY2FsLW5lZ2F0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy93ZWJncHUvd2hsc2wtbG9naWNhbC1uZWdhdGlvbi1leHBlY3RlZC50eHQJKG5vbmV4
aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWxvZ2ljYWwtbmVnYXRpb24tZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIGxvZ2ljYWxO
ZWdhdGlvbiAKKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWxvZ2ljYWwtbmVnYXRp
b24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtbG9naWNhbC1u
ZWdhdGlvbi5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1s
b2dpY2FsLW5lZ2F0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0
aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5MdmFsdWVzLjwvdGl0bGU+Cis8c2NyaXB0
IHNyYz0ianMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJq
cy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgd2hsc2xUZXN0
cyA9IHt9OworCit3aGxzbFRlc3RzLmxvZ2ljYWxOZWdhdGlvbiA9IGFzeW5jICgpID0+Cit7Cisg
ICAgbGV0IHByb2dyYW0gPSAiYm9vbCBmb28oYm9vbCB4KSB7IHJldHVybiAheDsgfSI7CisgICAg
YXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsQm9vbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUJvb2wodHJ1ZSldKSwgZmFsc2UpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKGZhbHNlKV0pLCB0cnVlKTsKK30KKwor
cnVuVGVzdHMod2hsc2xUZXN0cyk7Cis8L3NjcmlwdD4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL3dlYmdwdS93aGxzbC1sb3RzLW9mLWxvY2FsLXZhcmlhYmxlcy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWxvdHMtb2YtbG9jYWwtdmFyaWFi
bGVzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hs
c2wtbG90cy1vZi1sb2NhbC12YXJpYWJsZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIGxvdHNPZkxvY2FsVmFyaWFibGVzIAorCkluZGV4OiBMYXlv
dXRUZXN0cy93ZWJncHUvd2hsc2wtbG90cy1vZi1sb2NhbC12YXJpYWJsZXMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtbG90cy1vZi1sb2NhbC12YXJpYWJsZXMu
aHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtbG90cy1vZi1s
b2NhbC12YXJpYWJsZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM3IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRp
bWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPkxvdHMgb2YgbG9jYWwgdmFyaWFibGVzLjwv
dGl0bGU+Cis8c2NyaXB0IHNyYz0ianMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
Y29uc3Qgd2hsc2xUZXN0cyA9IHt9OworCit3aGxzbFRlc3RzLmxvdHNPZkxvY2FsVmFyaWFibGVz
ID0gYXN5bmMgKCkgPT4KK3sKKyAgICBsZXQgc3JjID0gImludCBzdW0oKSB7XG4iOworICAgIHNy
YyArPSAiICAgIGludCBpID0gMDtcbiI7CisgICAgbGV0IHRhcmdldCA9IDA7CisgICAgY29uc3Qg
bnVtVmFycyA9IDUwOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtVmFyczsgaSsrKSB7Cisg
ICAgICAgIHNyYyArPSBgICAgaSA9ICR7aX07XG5gOworICAgICAgICBzcmMgKz0gYCAgIGludCBW
JHtpfSA9IChpICsgMykgKiAoaSArIDMpO1xuYDsKKyAgICAgICAgdGFyZ2V0ICs9IChpICsgMykg
KiAoaSArIDMpOworICAgIH0KKyAgICBzcmMgKz0gIiAgICBpbnQgcmVzdWx0ID0gMDtcbiI7Cisg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1WYXJzOyBpKyspIHsKKyAgICAgICAgc3JjICs9IGAg
ICAgcmVzdWx0ICs9IFYke2l9O1xuYDsKKyAgICB9CisgICAgc3JjICs9ICIgICAgcmV0dXJuIHJl
c3VsdDtcbiI7CisgICAgc3JjICs9ICJ9IjsKKyAgICBsZXQgcHJvZ3JhbSA9IHNyYzsKKyAgICBh
c3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAic3VtIiwgW10pLCB0
YXJnZXQpOworfQorCitydW5UZXN0cyh3aGxzbFRlc3RzKTsKKzwvc2NyaXB0PgorPC9odG1sPgor
CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtbHZhbHVlcy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWx2YWx1ZXMtZXhwZWN0ZWQudHh0
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1sdmFsdWVzLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAKKworUEFTUyBsVmFsdWVzIAor
CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtbHZhbHVlcy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1sdmFsdWVzLmh0bWwJKG5vbmV4aXN0ZW50KQor
KysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWx2YWx1ZXMuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDEwNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJzZXQ9
dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5MdmFs
dWVzLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0ianMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorY29uc3Qgd2hsc2xUZXN0cyA9IHt9OworCit3aGxzbFRlc3RzLmxWYWx1ZXMgPSBhc3lu
YyAoKSA9PiB7CisgICAgYXdhaXQgY2hlY2tGYWlsKGAKKyAgICAgICAgaW50IGZvbygpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGludCB4ID0gMDsKKyAgICAgICAgICAgIHRocmVhZCBpbnQqIHkg
PSAmKHgrKyk7CisgICAgICAgICAgICByZXR1cm4gKnk7CisgICAgICAgIH0KKyAgICBgKTsgCisg
ICAgYXdhaXQgY2hlY2tGYWlsKGAKKyAgICAgICAgaW50IGZvbygpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGludCB4ID0gMDsKKyAgICAgICAgICAgIHRocmVhZCBpbnQqIHkgPSAmKCsreCk7Cisg
ICAgICAgICAgICByZXR1cm4gKnk7CisgICAgICAgIH0KKyAgICBgKTsgCisgICAgYXdhaXQgY2hl
Y2tGYWlsKGAKKyAgICAgICAgaW50IGZvbygpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludCB4
ID0gMDsKKyAgICAgICAgICAgIHRocmVhZCBpbnQqIHkgPSAmKHggPSAzKTsKKyAgICAgICAgICAg
IHJldHVybiAqeTsKKyAgICAgICAgfQorICAgIGApOyAKKyAgICBhd2FpdCBjaGVja0ZhaWwoYAor
ICAgICAgICBpbnQgZm9vKCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IHggPSAwOworICAg
ICAgICAgICAgdGhyZWFkIGludCogeSA9ICYzOworICAgICAgICAgICAgcmV0dXJuICp5OworICAg
ICAgICB9CisgICAgYCk7IAorICAgIGF3YWl0IGNoZWNrRmFpbChgCisgICAgICAgIGludCBiYXIo
aW50IHgpIHsKKyAgICAgICAgICAgIHJldHVybiB4ICsgMTsKKyAgICAgICAgfQorICAgICAgICBp
bnQgZm9vKCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IHggPSAwOworICAgICAgICAgICAg
dGhyZWFkIGludCogeSA9ICZiYXIoMyk7CisgICAgICAgICAgICByZXR1cm4gKnk7CisgICAgICAg
IH0KKyAgICBgKTsgCisgICAgYXdhaXQgY2hlY2tGYWlsKGAKKyAgICAgICAgaW50IGZvbygpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGludCB4ID0gMDsKKyAgICAgICAgICAgIHRocmVhZCBpbnQq
IHkgPSAmKDcsIHgpOworICAgICAgICAgICAgcmV0dXJuICp5OworICAgICAgICB9CisgICAgYCk7
CisgICAgYXdhaXQgY2hlY2tGYWlsKGAKKyAgICAgICAgZW51bSBEYXlzIHsKKyAgICAgICAgICAg
IE1vbmRheSwKKyAgICAgICAgICAgIFR1ZXNkYXkKKyAgICAgICAgfQorICAgICAgICBpbnQgZm9v
KCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IHggPSAwOworICAgICAgICAgICAgdGhyZWFk
IGludCogeSA9ICYoRGF5cy5Nb25kYXkpOworICAgICAgICAgICAgcmV0dXJuICp5OworICAgICAg
ICB9CisgICAgYCk7IAorICAgIGF3YWl0IGNoZWNrRmFpbChgCisgICAgICAgIGludCBmb28oKQor
ICAgICAgICB7CisgICAgICAgICAgICB0aHJlYWQgYm9vbCogeSA9ICYodHJ1ZSAmJiBmYWxzZSk7
CisgICAgICAgICAgICByZXR1cm4gKnk7CisgICAgICAgIH0KKyAgICBgKTsgCisgICAgYXdhaXQg
Y2hlY2tGYWlsKGAKKyAgICAgICAgaW50IGZvbygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRo
cmVhZCBib29sKiB5ID0gJighdHJ1ZSk7CisgICAgICAgICAgICByZXR1cm4gKnk7CisgICAgICAg
IH0KKyAgICBgKTsgCisgICAgY29uc3QgcHJvZ3JhbSA9IGAKKyAgICAgICAgaW50IGZvbygpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGludCB4ID0gMzsKKyAgICAgICAgICAgIHRocmVhZCBpbnQq
IHkgPSAmeDsKKyAgICAgICAgICAgIHJldHVybiAqeTsKKyAgICAgICAgfQorICAgIGA7CisgICAg
YXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwg
Myk7Cit9OworCitydW5UZXN0cyh3aGxzbFRlc3RzKTsKKzwvc2NyaXB0PgorPC9odG1sPgorCisK
SW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1udWxsLWFyZy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW51bGwtYXJnLWV4cGVjdGVkLnR4
dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtbnVsbC1hcmctZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIHBhc3NOdWxs
VG9QdHJNb25vbW9ycGhpYyAKKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW51bGwt
YXJnLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW51bGwtYXJn
Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW51bGwtYXJn
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50
PSJsb25nIj4KKzx0aXRsZT5UZXN0IHN0cnVjdHMuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJqcy93
aGxzbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1m
dW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCB3aGxzbFRlc3RzID0ge307CisK
K3dobHNsVGVzdHMucGFzc051bGxUb1B0ck1vbm9tb3JwaGljID0gYXN5bmMgKCkgPT4KK3sKKyAg
ICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgaW50IGZvbyh0aHJlYWQgaW50KiBwdHIpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHJldHVybiAqcHRyOworICAgICAgICB9CisgICAgICAgIGludCBi
YXIoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZm9vKG51bGwpOworICAgICAgICB9
CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFt
LCAiYmFyIiwgW10pLCAwKTsKK30KKworcnVuVGVzdHMod2hsc2xUZXN0cyk7Cis8L3NjcmlwdD4K
KzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW9wZXJhdG9yLW92ZXJs
b2FkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wt
b3BlcmF0b3Itb3ZlcmxvYWQtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL3dlYmdwdS93aGxzbC1vcGVyYXRvci1vdmVybG9hZC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mgb3BlcmF0b3JXaXRob3V0VW5pbmZlcnJhYmxl
VHlwZVZhcmlhYmxlIAorCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtb3BlcmF0b3It
b3ZlcmxvYWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtb3Bl
cmF0b3Itb3ZlcmxvYWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUv
d2hsc2wtb3BlcmF0b3Itb3ZlcmxvYWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM4
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRh
IG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPk9wZXJhdG9yKyBvdmVybG9h
ZC48L3RpdGxlPgorPHNjcmlwdCBzcmM9ImpzL3dobHNsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2NvbnN0IHdobHNsVGVzdHMgPSB7fTsKKword2hsc2xUZXN0cy5vcGVyYXRvcldpdGhvdXRV
bmluZmVycmFibGVUeXBlVmFyaWFibGUgPSBhc3luYyAoKSA9PiB7CisgICAgbGV0IHByb2dyYW0g
PSBgCisgICAgICAgIHN0cnVjdCBGb28geworICAgICAgICAgICAgaW50IHg7CisgICAgICAgIH0K
KyAgICAgICAgRm9vIG9wZXJhdG9yKyhGb28gYSwgRm9vIGIpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIEZvbyByZXN1bHQ7CisgICAgICAgICAgICByZXN1bHQueCA9IGEueCArIGIueDsKKyAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgaW50IGZvbygpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIEZvbyBhOworICAgICAgICAgICAgYS54ID0gNjQ1OworICAgICAg
ICAgICAgRm9vIGI7CisgICAgICAgICAgICBiLnggPSAtMzU7CisgICAgICAgICAgICByZXR1cm4g
KGEgKyBiKS54OworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNh
bGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA2NDUgLSAzNSk7Cit9CisKK3J1blRl
c3RzKHdobHNsVGVzdHMpOworPC9zY3JpcHQ+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93
ZWJncHUvd2hsc2wtb3ZlcmxvYWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3dlYmdwdS93aGxzbC1vdmVybG9hZC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysg
TGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW92ZXJsb2FkLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDUgQEAKKworUEFTUyBpbnRPdmVybG9hZFJlc29sdXRpb24gCitQQVNT
IGludE92ZXJsb2FkUmVzb2x1dGlvblJldmVyc2VPcmRlciAKK1BBU1Mgbm90RXF1YWxzT3Zlcmxv
YWQgCisKSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1vdmVybG9hZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1vdmVybG9hZC5odG1sCShub25leGlz
dGVudCkKKysrIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1vdmVybG9hZC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8bWV0YSBj
aGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0
bGU+T3ZlcmxvYWQuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJqcy93aGxzbC10ZXN0LWhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+Citjb25zdCB3aGxzbFRlc3RzID0ge307CisKK3dobHNsVGVzdHMuaW50T3Zl
cmxvYWRSZXNvbHV0aW9uID0gYXN5bmMgKCkgPT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAg
ICAgICAgaW50IGZvbyhpbnQpIHsgcmV0dXJuIDE7IH0KKyAgICAgICAgaW50IGZvbyh1aW50KSB7
IHJldHVybiAyOyB9CisgICAgICAgIGludCBmb28oZmxvYXQpIHsgcmV0dXJuIDM7IH0KKyAgICAg
ICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0Mik7IH0KKyAgICBgOworICAgIGFzc2VydF9lcXVh
bHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDEpOworfQorCit3
aGxzbFRlc3RzLmludE92ZXJsb2FkUmVzb2x1dGlvblJldmVyc2VPcmRlciA9IGFzeW5jICgpID0+
Cit7CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAgICAgIGludCBmb28oZmxvYXQpIHsgcmV0dXJu
IDM7IH0KKyAgICAgICAgaW50IGZvbyh1aW50KSB7IHJldHVybiAyOyB9CisgICAgICAgIGludCBm
b28oaW50KSB7IHJldHVybiAxOyB9CisgICAgICAgIGludCBiYXIoKSB7IHJldHVybiBmb28oNDIp
OyB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9n
cmFtLCAiYmFyIiwgW10pLCAxKTsKK30KKword2hsc2xUZXN0cy5ub3RFcXVhbHNPdmVybG9hZCA9
IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAg
ICAgICBzdHJ1Y3QgRm9vIHsgfQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvciE9KEZvbywgRm9v
KSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGApOworfQorCitydW5UZXN0cyh3aGxzbFRlc3Rz
KTsKKzwvc2NyaXB0PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXNl
dHRlci1zcGVjLXRlc3RzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93
ZWJncHUvd2hsc2wtc2V0dGVyLXNwZWMtdGVzdHMtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1zZXR0ZXItc3BlYy10ZXN0cy1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4IEBACisKK1BBU1Mgc2V0dGVyV2l0aE1hdGNo
ZWRUeXBlIAorUEFTUyBzZXR0ZXJXaXRoTm9HZXR0ZXJPdmVybG9hZCAKK1BBU1Mgc2V0dGVyV2l0
aE5vR2V0dGVyT3ZlcmxvYWRGaXhlZCAKK1BBU1MgcmVjdXJzaXZlU2V0dGVycyAKK1BBU1MgbG9u
ZVNldHRlciAKK1BBU1MgbG9uZVNldHRlclBvaW50ZXIgCisKSW5kZXg6IExheW91dFRlc3RzL3dl
YmdwdS93aGxzbC1zZXR0ZXItc3BlYy10ZXN0cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3dlYmdwdS93aGxzbC1zZXR0ZXItc3BlYy10ZXN0cy5odG1sCShub25leGlzdGVudCkKKysr
IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1zZXR0ZXItc3BlYy10ZXN0cy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPG1ldGEg
Y2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRp
dGxlPlRlc3Qgc3RydWN0cy48L3RpdGxlPgorPHNjcmlwdCBzcmM9ImpzL3dobHNsLXRlc3QtaGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK2NvbnN0IHdobHNsVGVzdHMgPSB7fTsKKword2hsc2xUZXN0cy5z
ZXR0ZXJXaXRoTWF0Y2hlZFR5cGUgPSBhc3luYyAoKSA9PgoreworICAgIGNvbnN0IHByb2dyYW0g
PSBgCisgICAgICAgIGludCBvcGVyYXRvci5mb28oaW50KQorICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4gNTsKKyAgICAgICAgfQorICAgICAgICBpbnQgb3BlcmF0b3IuZm9vPShpbnQsIGlu
dCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIDU0MzsKKyAgICAgICAgfQorICAgICAg
ICBpbnQgZm9vKCkgeworICAgICAgICAgICAgaW50IHg7CisgICAgICAgICAgICB4LmZvbyA9IDQy
OworICAgICAgICAgICAgcmV0dXJuIHg7CisgICAgICAgIH0KKyAgICAgICAgaW50IGJhcigpIHsK
KyAgICAgICAgICAgIGludCB4OworICAgICAgICAgICAgcmV0dXJuIHguZm9vOworICAgICAgICB9
CisgICAgYDsKKworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSksIDU0Myk7CisgICAgLy9hc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRG
dW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCA1KTsKK30KKword2hsc2xUZXN0cy5zZXR0ZXJX
aXRoTm9HZXR0ZXJPdmVybG9hZCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWls
KAorICAgICAgICBgCisgICAgICAgICAgICBzdHJ1Y3QgRm9vIHsgfQorICAgICAgICAgICAgc3Ry
dWN0IEJhciB7IH0KKyAgICAgICAgICAgIGludCBvcGVyYXRvci5mb28oRm9vKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIHJldHVybiA1MzQ7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBCYXIgb3BlcmF0b3IuZm9vPShCYXIsIGludCkKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gQmFyKCk7CisgICAgICAgICAgICB9CisgICAgICAgIGApOworICAgICAg
ICAKK30KKword2hsc2xUZXN0cy5zZXR0ZXJXaXRoTm9HZXR0ZXJPdmVybG9hZEZpeGVkID0gYXN5
bmMgKCkgPT4KK3sKKyAgICBjb25zdCBwcm9ncmFtID1gCisgICAgICAgIHN0cnVjdCBCYXIgeyB9
CisgICAgICAgIGludCBvcGVyYXRvci5mb28oQmFyKQorICAgICAgICB7CisgICAgICAgICAgICBy
ZXR1cm4gNTM0OworICAgICAgICB9CisgICAgICAgIEJhciBvcGVyYXRvci5mb289KEJhciwgaW50
KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gQmFyKCk7CisgICAgICAgIH0KKyAgICAg
ICAgaW50IGZvbygpIHsKKyAgICAgICAgICAgIEJhciBiYXI7CisgICAgICAgICAgICByZXR1cm4g
YmFyLmZvbzsKKyAgICAgICAgfQorICAgICAgICBpbnQgYmFyKCkgeworICAgICAgICAgICAgQmFy
IGJhcjsKKyAgICAgICAgICAgIGJhci5mb28gPSA1MjsKKyAgICAgICAgICAgIHJldHVybiBiYXIu
Zm9vOworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA1MzQpOworICAgIGFzc2VydF9lcXVhbHMoYXdh
aXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDUzNCk7Cit9CisKK3dobHNs
VGVzdHMucmVjdXJzaXZlU2V0dGVycyA9IGFzeW5jICgpID0+Cit7CisgICAgbGV0IHByb2dyYW0g
PSBgCisgICAgICAgIHN0cnVjdCBGb28geworICAgICAgICAgICAgaW50IHg7CisgICAgICAgICAg
ICBpbnQgeTsKKyAgICAgICAgfQorICAgICAgICBzdHJ1Y3QgQmFyIHsKKyAgICAgICAgICAgIGlu
dCBhOworICAgICAgICAgICAgaW50IGI7CisgICAgICAgIH0KKyAgICAgICAgaW50IG9wZXJhdG9y
LmMoQmFyIGJhcikgeyByZXR1cm4gYmFyLmE7IH0KKyAgICAgICAgQmFyIG9wZXJhdG9yLmJhcihG
b28gZm9vKSB7IEJhciBiOyBiLmEgPSBmb28ueDsgYi5iID0gZm9vLnk7IHJldHVybiBiOyB9Cisg
ICAgICAgIEJhciBvcGVyYXRvci5jPShCYXIgYmFyLCBpbnQgbmV3dmFsKSB7IGJhci5hID0gbmV3
dmFsOyByZXR1cm4gYmFyOyB9CisgICAgICAgIEZvbyBvcGVyYXRvci5iYXI9KEZvbyBmb28sIEJh
ciBuZXd2YWwpIHsgZm9vLnggPSBuZXd2YWwuYTsgZm9vLnkgPSBuZXd2YWwuYjsgcmV0dXJuIGZv
bzsgfQorICAgICAgICBpbnQgZigpIHsKKyAgICAgICAgICAgIEZvbyBmb287CisgICAgICAgICAg
ICBmb28ueCA9IGZvby55ID0gMzsKKyAgICAgICAgICAgIGZvby5iYXIuYyA9IDg7CisgICAgICAg
ICAgICByZXR1cm4gZm9vLngqMTAgKyBmb28ueTsKKyAgICAgICAgfQorICAgIGA7CisgICAgYXNz
ZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImYiLCBbXSksIDgzKTsK
K30KKword2hsc2xUZXN0cy5sb25lU2V0dGVyID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBj
aGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGludCBvcGVyYXRvci5mb289KGludCwg
aW50KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiA1NDM7CisgICAgICAg
ICAgICB9CisgICAgICAgIGApOworICAgICAgICAKK30KKword2hsc2xUZXN0cy5sb25lU2V0dGVy
UG9pbnRlciA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBg
CisgICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvci5mb289KHRocmVhZCBpbnQqIHB0ciwg
aW50KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBwdHI7CisgICAgICAg
ICAgICB9CisgICAgICAgIGApOworICAgICAgICAKK30KKworcnVuVGVzdHMod2hsc2xUZXN0cyk7
Cis8L3NjcmlwdD4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1zdG9y
ZS1udWxsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hs
c2wtc3RvcmUtbnVsbC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMv
d2ViZ3B1L3dobHNsLXN0b3JlLW51bGwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIHN0b3JlTnVsbCAKKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1
L3dobHNsLXN0b3JlLW51bGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUv
d2hsc2wtc3RvcmUtbnVsbC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3dlYmdw
dS93aGxzbC1zdG9yZS1udWxsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5UZXN0IHN0cnVjdHMuPC90aXRsZT4K
KzxzY3JpcHQgc3JjPSJqcy93aGxzbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCB3
aGxzbFRlc3RzID0ge307CisKK3dobHNsVGVzdHMuc3RvcmVOdWxsID0gYXN5bmMgKCkgPT4KK3sK
KyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHZvaWQgZm9vKCkg
eyAqbnVsbCA9IDQyOyB9CisgICAgICAgIGApOworfQorCitydW5UZXN0cyh3aGxzbFRlc3RzKTsK
Kzwvc2NyaXB0PgorPC9odG1sPgorCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtc3Ry
dWN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wt
c3RydWN0LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUv
d2hsc2wtc3RydWN0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQgQEAK
KworUEFTUyBlbXB0eVN0cnVjdCAKK1BBU1Mgc2V0dGluZ0FuQXJyYXlJbnNpZGVBU3RydWN0IAor
CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtc3RydWN0Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXN0cnVjdC5odG1sCShub25leGlzdGVudCkKKysr
IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1zdHJ1Y3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPG1ldGEgY2hhcnNldD11dGYt
OD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPlRlc3Qgc3Ry
dWN0cy48L3RpdGxlPgorPHNjcmlwdCBzcmM9ImpzL3dobHNsLXRlc3QtaGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2NvbnN0IHdobHNsVGVzdHMgPSB7fTsKKword2hsc2xUZXN0cy5lbXB0eVN0cnVjdCA9
IGFzeW5jICgpID0+Cit7CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAgICAgIHN0cnVjdCBUaGlu
Z3kgeyB9CisgICAgICAgIGludCBmb28oKQorICAgICAgICB7CisgICAgICAgICAgICBUaGluZ3kg
dGhpbmd5OworICAgICAgICAgICAgcmV0dXJuIDQ2OworICAgICAgICB9CisgICAgYDsKKyAgICBh
c3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0
Nik7Cit9OworCit3aGxzbFRlc3RzLnNldHRpbmdBbkFycmF5SW5zaWRlQVN0cnVjdCA9IGFzeW5j
ICgpID0+Cit7CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAgICAgIHN0cnVjdCBGb28geworICAg
ICAgICAgICAgaW50WzFdIGFycmF5OworICAgICAgICB9CisgICAgICAgIGludCBmb28oKQorICAg
ICAgICB7CisgICAgICAgICAgICBGb28gZm9vOworICAgICAgICAgICAgdGhyZWFkIEZvbyogYmFy
ID0gJmZvbzsKKyAgICAgICAgICAgIGJhci0+YXJyYXlbMF0gPSAyMTsKKyAgICAgICAgICAgIHJl
dHVybiBmb28uYXJyYXlbMF07CisgICAgICAgIH0KKyAgICBgOworICAgIGFzc2VydF9lcXVhbHMo
YXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDIxKTsKK307CisKK3J1
blRlc3RzKHdobHNsVGVzdHMpOworPC9zY3JpcHQ+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy93ZWJncHUvd2hsc2wtc3dpdGNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy93ZWJncHUvd2hsc2wtc3dpdGNoLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtc3dpdGNoLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDMgQEAKKworUEFTUyBzd2l0Y2hCcmVhayAKKwpJbmRleDogTGF5b3V0VGVz
dHMvd2ViZ3B1L3dobHNsLXN3aXRjaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dl
YmdwdS93aGxzbC1zd2l0Y2guaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJn
cHUvd2hsc2wtc3dpdGNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0
aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5UZXN0IHByZWZpeC9wb3N0Zml4LjwvdGl0
bGU+Cis8c2NyaXB0IHNyYz0ianMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29u
c3Qgd2hsc2xUZXN0cyA9IHt9OworCit3aGxzbFRlc3RzLnN3aXRjaEJyZWFrID0gYXN5bmMgKCkg
PT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgaW50IGZvbyhpbnQgeCkKKyAgICAg
ICAgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgICAgICBzd2l0Y2ggKHgp
IHsKKyAgICAgICAgICAgIGNhc2UgNzY3OgorICAgICAgICAgICAgICAgIHJlc3VsdCArPSAyNzsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgNjk6CisgICAgICAgICAg
ICAgICAgcmVzdWx0ICs9IDc2MjQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJlc3VsdCArPSA0OTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgIH0KKyAgICBgOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludCg3NjcpXSksIDI3KTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3
YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoNjkpXSksIDc2MjQp
OworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludCgwKV0pLCA0OSk7Cit9CisKK3J1blRlc3RzKHdobHNsVGVzdHMpOworPC9zY3Jp
cHQ+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtdmFyaWFibGUtc2hh
ZG93aW5nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hs
c2wtdmFyaWFibGUtc2hhZG93aW5nLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlv
dXRUZXN0cy93ZWJncHUvd2hsc2wtdmFyaWFibGUtc2hhZG93aW5nLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAKKworUEFTUyB2YXJpYWJsZVNoYWRvd2luZyAKKwpJ
bmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXZhcmlhYmxlLXNoYWRvd2luZy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC12YXJpYWJsZS1zaGFkb3dpbmcu
aHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtdmFyaWFibGUt
c2hhZG93aW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0
IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5UZXN0IHByZWZpeC9wb3N0Zml4LjwvdGl0bGU+Cis8
c2NyaXB0IHNyYz0ianMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgd2hs
c2xUZXN0cyA9IHt9OworCit3aGxzbFRlc3RzLnZhcmlhYmxlU2hhZG93aW5nID0gYXN5bmMgKCkg
PT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgaW50IGZvbygpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGludCB5OworICAgICAgICAgICAgaW50IHggPSA3OworICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIGludCB4ID0gODsKKyAgICAgICAgICAgICAgICB5ID0geDsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB5OworICAgICAgICB9CisgICAgYDsKKyAg
ICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10p
LCA4KTsKKworICAgIHByb2dyYW0gPSBgCisgICAgICAgIGludCBmb28oKQorICAgICAgICB7Cisg
ICAgICAgICAgICBpbnQgeTsKKyAgICAgICAgICAgIGludCB4ID0gNzsKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICBpbnQgeCA9IDg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB5
ID0geDsKKyAgICAgICAgICAgIHJldHVybiB5OworICAgICAgICB9CisgICAgYDsKKyAgICBhc3Nl
cnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3KTsK
K30KKworcnVuVGVzdHMod2hsc2xUZXN0cyk7Cis8L3NjcmlwdD4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL3dlYmdwdS93aGxzbC12ZWN0b3Itc3ludGF4LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtdmVjdG9yLXN5bnRheC1leHBlY3RlZC50
eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXZlY3Rvci1zeW50
YXgtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIHZl
Y3RvclR5cGVTeW50YXggCisKSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC12ZWN0b3It
c3ludGF4Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXZlY3Rv
ci1zeW50YXguaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wt
dmVjdG9yLXN5bnRheC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGlt
ZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+VGVzdCBzdHJ1Y3RzLjwvdGl0bGU+Cis8c2Ny
aXB0IHNyYz0ianMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgd2hsc2xU
ZXN0cyA9IHt9OworCit3aGxzbFRlc3RzLnZlY3RvclR5cGVTeW50YXggPSBhc3luYyAoKSA9Pgor
eworICAgIGxldCBwcm9ncmFtID0gYAorICAgICAgICBpbnQgZm9vMigpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGludDIgeDsKKyAgICAgICAgICAgIHZlY3RvcjxpbnQsIDI+IHogPSBpbnQyKDMs
IDQpOworICAgICAgICAgICAgeCA9IHo7CisgICAgICAgICAgICByZXR1cm4geC55OworICAgICAg
ICB9CisKKyAgICAgICAgaW50IGZvbzMoKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQzIHg7
CisgICAgICAgICAgICB2ZWN0b3I8aW50LCAzPiB6ID0gaW50MygzLCA0LCA1KTsKKyAgICAgICAg
ICAgIHggPSB6OworICAgICAgICAgICAgcmV0dXJuIHguejsKKyAgICAgICAgfQorCisgICAgICAg
IGludCBmb280KCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50NCB4OworICAgICAgICAgICAg
dmVjdG9yPGludCw0PiB6ID0gaW50NCgzLCA0LCA1LCA2KTsKKyAgICAgICAgICAgIHggPSB6Owor
ICAgICAgICAgICAgcmV0dXJuIHgudzsKKyAgICAgICAgfWA7CisKKyAgICBhc3NlcnRfZXF1YWxz
KGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdKSwgNCk7CisgICAgYXNz
ZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksIDUp
OworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb280
IiwgW10pLCA2KTsKKworICAgIHByb2dyYW0gPSBgCisgICAgICAgIHR5cGVkZWYgaSA9IGludDsK
KyAgICAgICAgaW50IGZvbzIoKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQyIHg7CisgICAg
ICAgICAgICB2ZWN0b3I8aSwgMj4geiA9IGludDIoMywgNCk7CisgICAgICAgICAgICB4ID0gejsK
KyAgICAgICAgICAgIHJldHVybiB4Lnk7CisgICAgICAgIH1gOworCisgICAgYXNzZXJ0X2VxdWFs
cyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSksIDQpOworfQorcnVu
VGVzdHMod2hsc2xUZXN0cyk7Cis8L3NjcmlwdD4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>