<?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>144932</bug_id>
          
          <creation_ts>2015-05-12 15:40:36 -0700</creation_ts>
          <short_desc>Don&apos;t export all JS bindings classes</short_desc>
          <delta_ts>2015-05-12 20:51:34 -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>Bindings</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1094296</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-05-12 15:40:36 -0700</bug_when>
    <thetext>Most of the JavaScript bindings don&apos;t need WEBCORE_EXPORT.  Let&apos;s manage a small list of those that do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094297</commentid>
    <comment_count>1</comment_count>
      <attachid>252992</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-05-12 15:44:00 -0700</bug_when>
    <thetext>Created attachment 252992
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094298</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-12 15:46:26 -0700</bug_when>
    <thetext>Attachment 252992 did not pass style-queue:


ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h:93:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h:30:  Extra space between class and JSTestEventTarget  [whitespace/declaration] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h:93:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.h:83:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.h:30:  Extra space between class and JSTestNamedConstructor  [whitespace/declaration] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.h:83:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.h:82:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.h:30:  Extra space between class and JSTestMediaQueryListListener  [whitespace/declaration] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.h:82:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestObj.h:98:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestObj.h:30:  Extra space between class and JSTestObj  [whitespace/declaration] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestObj.h:98:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.h:84:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.h:32:  Extra space between class and JSTestEventConstructor  [whitespace/declaration] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.h:84:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.h:85:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.h:30:  Extra space between class and JSTestActiveDOMObject  [whitespace/declaration] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.h:85:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.h:85:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.h:30:  Extra space between class and JSTestTypedefs  [whitespace/declaration] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.h:85:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.h:82:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.h:30:  Extra space between class and JSTestGenerateIsReachable  [whitespace/declaration] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.h:82:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestException.h:86:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestException.h:31:  Extra space between class and JSTestException  [whitespace/declaration] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestException.h:86:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.h:82:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.h:30:  Extra space between class and JSTestNondeterministic  [whitespace/declaration] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.h:82:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h:82:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h:30:  Extra space between class and JSTestOverloadedConstructors  [whitespace/declaration] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h:82:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSreadonly.h:82:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSreadonly.h:30:  Extra space between class and JSreadonly  [whitespace/declaration] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSreadonly.h:82:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.h:89:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.h:30:  Extra space between class and JSTestCustomNamedGetter  [whitespace/declaration] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.h:89:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSattribute.h:83:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSattribute.h:31:  Extra space between class and JSattribute  [whitespace/declaration] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSattribute.h:83:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:88:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:32:  Extra space between class and JSTestSerializedScriptValueInterface  [whitespace/declaration] [3]
ERROR: Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:88:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 45 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094335</commentid>
    <comment_count>3</comment_count>
      <attachid>252992</attachid>
    <who name="">mitz</who>
    <bug_when>2015-05-12 18:12:15 -0700</bug_when>
    <thetext>Comment on attachment 252992
Patch

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

r=me, please fix the extra spaces

&gt; Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.h:30
&gt; +class  JSTestActiveDOMObject : public JSDOMWrapper {

Too many spaces

&gt; Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.h:85
&gt; + JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestActiveDOMObject*);

One extra space at the start

&gt; Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.h:89
&gt; + JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestCustomNamedGetter*);

Here too

&gt; Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.h:32
&gt; +class  JSTestEventConstructor : public JSDOMWrapper {

again

&gt; Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h:30
&gt; +class  JSTestEventTarget : public JSDOMWrapper {

…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094336</commentid>
    <comment_count>4</comment_count>
      <attachid>253000</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-05-12 18:19:52 -0700</bug_when>
    <thetext>Created attachment 253000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094355</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-05-12 18:48:52 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/184228</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094358</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-05-12 18:52:03 -0700</bug_when>
    <thetext>rdar://problem/20899034</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094380</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-05-12 20:51:34 -0700</bug_when>
    <thetext>Landed a build fix in https://trac.webkit.org/changeset/184234.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252992</attachid>
            <date>2015-05-12 15:44:00 -0700</date>
            <delta_ts>2015-05-12 18:19:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144932-20150512154238.patch</filename>
            <type>text/plain</type>
            <size>19899</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDIyMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE1LTA1LTEyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRG9uJ3QgZXhw
b3J0IGFsbCBKUyBiaW5kaW5ncyBjbGFzc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0OTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaXMgZ29vZCBpZiBpdCBjb21waWxlcyBh
bmQgbGlua3Mgc3VjY2Vzc2Z1bGx5LgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG06CisgICAgICAgIChFeHBvcnRMYWJlbEZvckNsYXNzKToKKyAgICAgICAg
QWRkIGEgbGlzdCBvZiB0aGUgSlMgYmluZGluZ3MgY2xhc3NlcyB0aGF0IG5lZWQgV0VCQ09SRV9F
WFBPUlQgdG8gcHJldmVudCBleHBvcnRpbmcgdG9vIG1hbnkgc3ltYm9scyBmcm9tIFdlYkNvcmUu
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVj
dC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1l
ZEdldHRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dENvbnN0cnVjdG9yLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEV2ZW50VGFyZ2V0Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEV4Y2VwdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmg6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmg6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaDoKKyAgICAgICAgVXBkYXRl
IGJpbmRpbmdzIHRlc3RzIHRvIHJlbW92ZSBXRUJDT1JFX0VYUE9SVCBmcm9tIG1vc3Qgb2YgdGhl
IHRlc3RzLAorICAgICAgICBidXQga2VlcCBvbmUgdGVzdCB3aXRoIFdFQkNPUkVfRVhQT1JUIGFu
ZCBvbmUgdGVzdCB3aXRoIFdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JULgorCiAyMDE1LTA1LTEy
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihy
MTc1NjE3KTogU29tZSB0ZXh0IGRvZXNuJ3QgcmVuZGVyIG9uIGludGVybmF0aW9uYWxjdWxpbmFy
eWNlbnRlci5jb20KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAxODQyMTQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAt
MjI5LDYgKzIyOSwzMiBAQCBteSAldGVzdFN1cHBvcnRDbGFzc2VzID0gKAogICAgICJKU01hbGxv
Y1N0YXRpc3RpY3MiID0+IDEsCiAgICAgIkpTTWVtb3J5SW5mbyIgPT4gMSwKICAgICAiSlNUeXBl
Q29udmVyc2lvbnMiID0+IDEsCisKKyAgICAjIFRoaXMgaXMgZm9yIHRoZSBiaW5kaW5ncyB0ZXN0
cy4KKyAgICAiSlNUZXN0Tm9kZSIgPT4gMSwKKyk7CisKK215ICVjbGFzc2VzTmVlZGluZ1dlYkNv
cmVFeHBvcnQgPSAoCisgICAgIkpTQXVkaW9Db250ZXh0IiA9PiAxLAorICAgICJKU0NsaWVudFJl
Y3QiID0+IDEsCisgICAgIkpTQ2xpZW50UmVjdExpc3QiID0+IDEsCisgICAgIkpTQ1NTU3R5bGVE
ZWNsYXJhdGlvbiIgPT4gMSwKKyAgICAiSlNEb2N1bWVudCIgPT4gMSwKKyAgICAiSlNET01XaW5k
b3ciID0+IDEsCisgICAgIkpTRWxlbWVudCIgPT4gMSwKKyAgICAiSlNGaWxlIiA9PiAxLAorICAg
ICJKU0hUTUxFbGVtZW50IiA9PiAxLAorICAgICJKU0hUTUxNZWRpYUVsZW1lbnQiID0+IDEsCisg
ICAgIkpTTm9kZSIgPT4gMSwKKyAgICAiSlNOb3RpZmljYXRpb24iID0+IDEsCisgICAgIkpTUmFu
Z2UiID0+IDEsCisgICAgIkpTU2NyaXB0UHJvZmlsZSIgPT4gMSwKKyAgICAiSlNTY3JpcHRQcm9m
aWxlTm9kZSIgPT4gMSwKKyAgICAiSlNUaW1lUmFuZ2VzIiA9PiAxLAorICAgICJKU1hNTEh0dHBS
ZXF1ZXN0IiA9PiAxLAorCisgICAgIyBUaGlzIGlzIGZvciB0aGUgYmluZGluZ3MgdGVzdHMuCisg
ICAgIkpTVGVzdEludGVyZmFjZSIgPT4gMSwKICk7CiAKIHN1YiBFeHBvcnRMYWJlbEZvckNsYXNz
CkBAIC0yMzYsNyArMjYyLDggQEAgc3ViIEV4cG9ydExhYmVsRm9yQ2xhc3MKICAgICBteSAkY2xh
c3MgPSBzaGlmdDsKIAogICAgIHJldHVybiAiV0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQiIGlm
ICR0ZXN0U3VwcG9ydENsYXNzZXN7JGNsYXNzfTsKLSAgICByZXR1cm4gIldFQkNPUkVfRVhQT1JU
IgorICAgIHJldHVybiAiV0VCQ09SRV9FWFBPUlQiIGlmICRjbGFzc2VzTmVlZGluZ1dlYkNvcmVF
eHBvcnR7JGNsYXNzfTsKKyAgICByZXR1cm4gIiIKIH0KIAogc3ViIEFkZEluY2x1ZGVzRm9yVHlw
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFj
dGl2ZURPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAkocmV2aXNpb24gMTg0MjE0KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURP
TU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0QWN0aXZlRE9NT2JqZWN0IDog
cHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFzcyAgSlNUZXN0QWN0aXZlRE9NT2JqZWN0IDogcHVi
bGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFz
ZTsKICAgICBzdGF0aWMgSlNUZXN0QWN0aXZlRE9NT2JqZWN0KiBjcmVhdGUoSlNDOjpTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RB
Y3RpdmVET01PYmplY3Q+JiYgaW1wbCkKQEAgLTgyLDcgKzgyLDcgQEAgaW5saW5lIEpTQzo6V2Vh
a0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZQogICAgIHJldHVybiAmb3duZXIuZ2V0KCk7CiB9CiAK
LVdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqLCBUZXN0QWN0aXZlRE9NT2JqZWN0Kik7CisgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RBY3RpdmVET01PYmplY3Qq
KTsKIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEFjdGl2ZURPTU9iamVjdCYgaW1wbCkgeyBy
ZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsICZpbXBsKTsgfQogCiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oCShyZXZpc2lvbiAxODQyMTQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyIDogcHVibGlj
IEpTRE9NV3JhcHBlciB7CitjbGFzcyAgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIgOiBwdWJsaWMg
SlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwog
ICAgIHN0YXRpYyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlciogY3JlYXRlKEpTQzo6U3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXI+JiYgaW1wbCkKQEAgLTg2LDcgKzg2LDcgQEAgaW5saW5lIEpTQzo6V2Vh
a0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZQogICAgIHJldHVybiAmb3duZXIuZ2V0KCk7CiB9CiAK
LVdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqLCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqKTsKKyBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEN1c3RvbU5hbWVkR2V0
dGVyKik7CiBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDdXN0b21OYW1lZEdldHRlciYgaW1w
bCkgeyByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsICZpbXBsKTsgfQogCiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0
cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaAkocmV2aXNpb24gMTg0MjE0KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEpTRGljdGlvbmFyeTsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0RXZl
bnRDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgIEpTVGVzdEV2ZW50
Q29uc3RydWN0b3IgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVm
IEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RFdmVudENvbnN0cnVjdG9yKiBj
cmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUmVmPFRlc3RFdmVudENvbnN0cnVjdG9yPiYmIGltcGwpCkBAIC04MSw3ICs4MSw3
IEBAIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmUKICAgICByZXR1cm4g
Jm93bmVyLmdldCgpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEV2ZW50Q29uc3RydWN0b3IqKTsK
KyBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kiwg
VGVzdEV2ZW50Q29uc3RydWN0b3IqKTsKIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEV2ZW50
Q29uc3RydWN0b3ImIGltcGwpIHsgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCAmaW1w
bCk7IH0KIAogYm9vbCBmaWxsVGVzdEV2ZW50Q29uc3RydWN0b3JJbml0KFRlc3RFdmVudENvbnN0
cnVjdG9ySW5pdCYsIEpTRGljdGlvbmFyeSYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgJ
KHJldmlzaW9uIDE4NDIxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0RXZl
bnRUYXJnZXQgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKK2NsYXNzICBKU1Rlc3RFdmVudFRhcmdl
dCA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFw
cGVyIEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEV2ZW50VGFyZ2V0KiBjcmVhdGUoSlNDOjpTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRl
c3RFdmVudFRhcmdldD4mJiBpbXBsKQpAQCAtOTAsNyArOTAsNyBAQCBpbmxpbmUgSlNDOjpXZWFr
SGFuZGxlT3duZXIqIHdyYXBwZXJPd25lCiAgICAgcmV0dXJuICZvd25lci5nZXQoKTsKIH0KIAot
V0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUds
b2JhbE9iamVjdCosIFRlc3RFdmVudFRhcmdldCopOworIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0RXZlbnRUYXJnZXQqKTsKIGlubGlu
ZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgVGVzdEV2ZW50VGFyZ2V0JiBpbXBsKSB7IHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCwgJmltcGwpOyB9CiAKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaAko
cmV2aXNpb24gMTg0MjE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV4Y2VwdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0RXhjZXB0
aW9uIDogcHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFzcyAgSlNUZXN0RXhjZXB0aW9uIDogcHVi
bGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFz
ZTsKICAgICBzdGF0aWMgSlNUZXN0RXhjZXB0aW9uKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RFeGNlcHRp
b24+JiYgaW1wbCkKQEAgLTgzLDcgKzgzLDcgQEAgaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVy
KiB3cmFwcGVyT3duZQogICAgIHJldHVybiAmb3duZXIuZ2V0KCk7CiB9CiAKLVdFQkNPUkVfRVhQ
T1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3Qq
LCBUZXN0RXhjZXB0aW9uKik7CisgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCosIFRlc3RFeGNlcHRpb24qKTsKIGlubGluZSBKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgVGVzdEV4Y2VwdGlvbiYgaW1wbCkgeyByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3Qs
ICZpbXBsKTsgfQogCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUu
aAkocmV2aXNpb24gMTg0MjE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NyArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFdFQkNPUkVfRVhQT1JU
IEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKK2NsYXNz
ICBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIDogcHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJs
aWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZSogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZT4m
JiBpbXBsKQpAQCAtNzksNyArNzksNyBAQCBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdy
YXBwZXJPd25lCiAgICAgcmV0dXJuICZvd25lci5nZXQoKTsKIH0KIAotV0VCQ09SRV9FWFBPUlQg
SlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlKik7CisgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKik7CiBpbmxp
bmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlJiBpbXBsKSB7IHJldHVy
biB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgJmltcGwpOyB9CiAKIApJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCShyZXZpc2lvbiAxODQyMTQpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lciA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgIEpTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVm
IEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgUmVmPFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiYmIGltcGwpCkBA
IC03OSw3ICs3OSw3IEBAIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmUK
ICAgICByZXR1cm4gJm93bmVyLmdldCgpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFs
dWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIqKTsKKyBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpT
RE9NR2xvYmFsT2JqZWN0KiwgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqKTsKIGlubGluZSBK
U0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXImIGltcGwpIHsgcmV0dXJu
IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCAmaW1wbCk7IH0KIAogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZENvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDE4NDIxNCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yIDogcHVibGljIEpTRE9NV3Jh
cHBlciB7CitjbGFzcyAgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU0RPTVdyYXBw
ZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGlj
IEpTVGVzdE5hbWVkQ29uc3RydWN0b3IqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJl
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdE5hbWVkQ29uc3RydWN0
b3I+JiYgaW1wbCkKQEAgLTgwLDcgKzgwLDcgQEAgaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVy
KiB3cmFwcGVyT3duZQogICAgIHJldHVybiAmb3duZXIuZ2V0KCk7CiB9CiAKLVdFQkNPUkVfRVhQ
T1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3Qq
LCBUZXN0TmFtZWRDb25zdHJ1Y3RvciopOworIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0TmFtZWRDb25zdHJ1Y3RvciopOwogaW5saW5l
IEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBUZXN0TmFtZWRDb25zdHJ1Y3RvciYgaW1wbCkgeyByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsICZpbXBsKTsgfQogCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaAkocmV2aXNp
b24gMTg0MjE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdE5vZGUgOiBwdWJsaWMgSlNO
b2RlIHsKK2NsYXNzIFdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JUIEpTVGVzdE5vZGUgOiBwdWJs
aWMgSlNOb2RlIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9kZSBCYXNlOwogICAgIHN0YXRp
YyBKU1Rlc3ROb2RlKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3ROb2RlPiYmIGltcGwpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Yy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmgJKHJldmlzaW9uIDE4NDIxNCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3ROb25kZXRlcm1pbmlzdGljIDogcHVibGljIEpT
RE9NV3JhcHBlciB7CitjbGFzcyAgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyA6IHB1YmxpYyBKU0RP
TVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAg
c3RhdGljIEpTVGVzdE5vbmRldGVybWluaXN0aWMqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdE5vbmRldGVy
bWluaXN0aWM+JiYgaW1wbCkKQEAgLTc5LDcgKzc5LDcgQEAgaW5saW5lIEpTQzo6V2Vha0hhbmRs
ZU93bmVyKiB3cmFwcGVyT3duZQogICAgIHJldHVybiAmb3duZXIuZ2V0KCk7CiB9CiAKLVdFQkNP
UkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqLCBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyopOworIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyopOwog
aW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyYgaW1wbCkgeyByZXR1
cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsICZpbXBsKTsgfQogCiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgJKHJl
dmlzaW9uIDE4NDIxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdE9iaiA6IHB1YmxpYyBK
U0RPTVdyYXBwZXIgeworY2xhc3MgIEpTVGVzdE9iaiA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewog
cHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGljIEpTVGVz
dE9iaiogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0T2JqPiYmIGltcGwpCkBAIC05NSw3ICs5NSw3IEBAIGlu
bGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmUKICAgICByZXR1cm4gJm93bmVy
LmdldCgpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdE9iaiopOworIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0T2JqKik7CiBpbmxpbmUg
SlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFRlc3RPYmomIGltcGwpIHsgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCAmaW1wbCk7IH0KIAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzLmgJKHJldmlzaW9uIDE4NDIxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzIDogcHVibGljIEpT
RE9NV3JhcHBlciB7CitjbGFzcyAgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyA6IHB1Ymxp
YyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7
CiAgICAgc3RhdGljIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIGNyZWF0ZShKU0M6OlN0
cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+JiYgaW1wbCkKQEAgLTc5LDcgKzc5LDcgQEAgaW5s
aW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZQogICAgIHJldHVybiAmb3duZXIu
Z2V0KCk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyopOwor
IEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyopOwogaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyYgaW1wbCkgeyByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsICZpbXBsKTsgfQogCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgJKHJldmlzaW9uIDE4NDIxNCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZSA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgIEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewog
cHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGljIEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPiYmIGltcGwpCkBAIC04NSw3ICs4NSw3IEBAIGlubGlu
ZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmUKICAgICByZXR1cm4gJm93bmVyLmdl
dCgpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZSopOworIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqLCBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKik7CiBpbmxpbmUgSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UmIGltcGwpIHsgcmV0
dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCAmaW1wbCk7IH0KIAogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlw
ZWRlZnMuaAkocmV2aXNpb24gMTg0MjE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBXRUJDT1JFX0VYUE9SVCBKU1Rl
c3RUeXBlZGVmcyA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgIEpTVGVzdFR5cGVkZWZz
IDogcHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBw
ZXIgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0VHlwZWRlZnMqIGNyZWF0ZShKU0M6OlN0cnVjdHVy
ZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdFR5
cGVkZWZzPiYmIGltcGwpCkBAIC04Miw3ICs4Miw3IEBAIGlubGluZSBKU0M6OldlYWtIYW5kbGVP
d25lciogd3JhcHBlck93bmUKICAgICByZXR1cm4gJm93bmVyLmdldCgpOwogfQogCi1XRUJDT1JF
X0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2Jq
ZWN0KiwgVGVzdFR5cGVkZWZzKik7CisgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUq
LCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RUeXBlZGVmcyopOwogaW5saW5lIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBUZXN0VHlwZWRlZnMmIGltcGwpIHsgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
LCAmaW1wbCk7IH0KIAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNhdHRyaWJ1dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaAkocmV2aXNpb24gMTg0MjE0KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBXRUJDT1JFX0VYUE9SVCBKU2F0dHJpYnV0ZSA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xh
c3MgIEpTYXR0cmlidXRlIDogcHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNhdHRyaWJ1dGUqIGNyZWF0ZShK
U0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBSZWY8YXR0cmlidXRlPiYmIGltcGwpCkBAIC04MCw3ICs4MCw3IEBAIGlubGluZSBKU0M6Oldl
YWtIYW5kbGVPd25lciogd3JhcHBlck93bmUKICAgICByZXR1cm4gJm93bmVyLmdldCgpOwogfQog
Ci1XRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9N
R2xvYmFsT2JqZWN0KiwgYXR0cmlidXRlKik7CisgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIGF0dHJpYnV0ZSopOwogaW5saW5lIEpTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBhdHRyaWJ1dGUmIGltcGwpIHsgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
LCAmaW1wbCk7IH0KIAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNyZWFkb25seS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgJKHJldmlzaW9uIDE4NDIxNCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBX
RUJDT1JFX0VYUE9SVCBKU3JlYWRvbmx5IDogcHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFzcyAg
SlNyZWFkb25seSA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYg
SlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGljIEpTcmVhZG9ubHkqIGNyZWF0ZShKU0M6OlN0
cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8
cmVhZG9ubHk+JiYgaW1wbCkKQEAgLTc5LDcgKzc5LDcgQEAgaW5saW5lIEpTQzo6V2Vha0hhbmRs
ZU93bmVyKiB3cmFwcGVyT3duZQogICAgIHJldHVybiAmb3duZXIuZ2V0KCk7CiB9CiAKLVdFQkNP
UkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqLCByZWFkb25seSopOworIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwg
SlNET01HbG9iYWxPYmplY3QqLCByZWFkb25seSopOwogaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBy
ZWFkb25seSYgaW1wbCkgeyByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsICZpbXBsKTsg
fQogCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253000</attachid>
            <date>2015-05-12 18:19:52 -0700</date>
            <delta_ts>2015-05-12 18:49:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144932-20150512181830.patch</filename>
            <type>text/plain</type>
            <size>20943</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDIyMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE1LTA1LTEyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRG9uJ3QgZXhw
b3J0IGFsbCBKUyBiaW5kaW5ncyBjbGFzc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0OTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJl
cm5zdGVpbi4KKworICAgICAgICBUaGlzIGNoYW5nZSBpcyBnb29kIGlmIGl0IGNvbXBpbGVzIGFu
ZCBsaW5rcyBzdWNjZXNzZnVsbHkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEV4cG9ydExhYmVsRm9yQ2xhc3MpOgorICAgICAgICBB
ZGQgYSBsaXN0IG9mIHRoZSBKUyBiaW5kaW5ncyBjbGFzc2VzIHRoYXQgbmVlZCBXRUJDT1JFX0VY
UE9SVCB0byBwcmV2ZW50IGV4cG9ydGluZyB0b28gbWFueSBzeW1ib2xzIGZyb20gV2ViQ29yZS4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0
Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50
Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXZlbnRUYXJnZXQuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXhjZXB0aW9uLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGUuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmg6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5oOgorICAgICAgICBVcGRhdGUg
YmluZGluZ3MgdGVzdHMgdG8gcmVtb3ZlIFdFQkNPUkVfRVhQT1JUIGZyb20gbW9zdCBvZiB0aGUg
dGVzdHMsCisgICAgICAgIGJ1dCBrZWVwIG9uZSB0ZXN0IHdpdGggV0VCQ09SRV9FWFBPUlQgYW5k
IG9uZSB0ZXN0IHdpdGggV0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQuCisKIDIwMTUtMDUtMTIg
IFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIx
NzU2MTcpOiBTb21lIHRleHQgZG9lc24ndCByZW5kZXIgb24gaW50ZXJuYXRpb25hbGN1bGluYXJ5
Y2VudGVyLmNvbQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDE4NDIxNCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0y
MjksMTQgKzIyOSw0MSBAQCBteSAldGVzdFN1cHBvcnRDbGFzc2VzID0gKAogICAgICJKU01hbGxv
Y1N0YXRpc3RpY3MiID0+IDEsCiAgICAgIkpTTWVtb3J5SW5mbyIgPT4gMSwKICAgICAiSlNUeXBl
Q29udmVyc2lvbnMiID0+IDEsCisKKyAgICAjIFRoaXMgaXMgZm9yIHRoZSBiaW5kaW5ncyB0ZXN0
cy4KKyAgICAiSlNUZXN0Tm9kZSIgPT4gMSwKKyk7CisKK215ICVjbGFzc2VzTmVlZGluZ1dlYkNv
cmVFeHBvcnQgPSAoCisgICAgIkpTQXVkaW9Db250ZXh0IiA9PiAxLAorICAgICJKU0NsaWVudFJl
Y3QiID0+IDEsCisgICAgIkpTQ2xpZW50UmVjdExpc3QiID0+IDEsCisgICAgIkpTQ1NTU3R5bGVE
ZWNsYXJhdGlvbiIgPT4gMSwKKyAgICAiSlNEb2N1bWVudCIgPT4gMSwKKyAgICAiSlNET01XaW5k
b3ciID0+IDEsCisgICAgIkpTRWxlbWVudCIgPT4gMSwKKyAgICAiSlNGaWxlIiA9PiAxLAorICAg
ICJKU0hUTUxFbGVtZW50IiA9PiAxLAorICAgICJKU0hUTUxNZWRpYUVsZW1lbnQiID0+IDEsCisg
ICAgIkpTTm9kZSIgPT4gMSwKKyAgICAiSlNOb3RpZmljYXRpb24iID0+IDEsCisgICAgIkpTUmFu
Z2UiID0+IDEsCisgICAgIkpTU2NyaXB0UHJvZmlsZSIgPT4gMSwKKyAgICAiSlNTY3JpcHRQcm9m
aWxlTm9kZSIgPT4gMSwKKyAgICAiSlNUaW1lUmFuZ2VzIiA9PiAxLAorICAgICJKU1hNTEh0dHBS
ZXF1ZXN0IiA9PiAxLAorCisgICAgIyBUaGlzIGlzIGZvciB0aGUgYmluZGluZ3MgdGVzdHMuCisg
ICAgIkpTVGVzdEludGVyZmFjZSIgPT4gMSwKICk7CiAKIHN1YiBFeHBvcnRMYWJlbEZvckNsYXNz
CiB7CiAgICAgbXkgJGNsYXNzID0gc2hpZnQ7CiAKLSAgICByZXR1cm4gIldFQkNPUkVfVEVTVFNV
UFBPUlRfRVhQT1JUIiBpZiAkdGVzdFN1cHBvcnRDbGFzc2VzeyRjbGFzc307Ci0gICAgcmV0dXJu
ICJXRUJDT1JFX0VYUE9SVCIKKyAgICByZXR1cm4gIldFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JU
ICIgaWYgJHRlc3RTdXBwb3J0Q2xhc3Nlc3skY2xhc3N9OworICAgIHJldHVybiAiV0VCQ09SRV9F
WFBPUlQgIiBpZiAkY2xhc3Nlc05lZWRpbmdXZWJDb3JlRXhwb3J0eyRjbGFzc307CisgICAgcmV0
dXJuICIiOwogfQogCiBzdWIgQWRkSW5jbHVkZXNGb3JUeXBlCkBAIC04MTcsNyArODQ0LDcgQEAg
c3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgbXkgJGV4cG9ydExhYmVsID0gRXhwb3J0TGFiZWxGb3JD
bGFzcygkY2xhc3NOYW1lKTsKIAogICAgICMgQ2xhc3MgZGVjbGFyYXRpb24KLSAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiY2xhc3MgJGV4cG9ydExhYmVsICRjbGFzc05hbWUgOiBwdWJsaWMgJHBh
cmVudENsYXNzTmFtZSB7XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiY2xhc3MgJGV4
cG9ydExhYmVsJGNsYXNzTmFtZSA6IHB1YmxpYyAkcGFyZW50Q2xhc3NOYW1lIHtcbiIpOwogCiAg
ICAgIyBTdGF0aWMgY3JlYXRlIG1ldGhvZHMKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHVi
bGljOlxuIik7CkBAIC0xMTY4LDcgKzExOTUsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAg
ICAgaWYgKCRpbXBsVHlwZSBlcSAiTm9kZSIgb3IgJGltcGxUeXBlIGVxICJOb2RlTGlzdCIpIHsK
ICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgJGltcGxUeXBlKik7XG4iKTsKICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIkZXhwb3J0TGFi
ZWwgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCos
ICRpbXBsVHlwZSopO1xuIik7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAkZXhw
b3J0TGFiZWwuIkpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqLCAkaW1wbFR5cGUqKTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICJpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsICRpbXBsVHlwZSYgaW1wbCkgeyByZXR1
cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsICZpbXBsKTsgfVxuIik7CiAgICAgfQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAkocmV2aXNpb24gMTg0MjE0KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0QWN0aXZlRE9NT2JqZWN0IDogcHVibGljIEpT
RE9NV3JhcHBlciB7CitjbGFzcyBKU1Rlc3RBY3RpdmVET01PYmplY3QgOiBwdWJsaWMgSlNET01X
cmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0
YXRpYyBKU1Rlc3RBY3RpdmVET01PYmplY3QqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0
dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEFjdGl2ZURPTU9i
amVjdD4mJiBpbXBsKQpAQCAtODIsNyArODIsNyBAQCBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3du
ZXIqIHdyYXBwZXJPd25lCiAgICAgcmV0dXJuICZvd25lci5nZXQoKTsKIH0KIAotV0VCQ09SRV9F
WFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCosIFRlc3RBY3RpdmVET01PYmplY3QqKTsKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0QWN0aXZlRE9NT2JqZWN0Kik7CiBpbmxpbmUg
SlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFRlc3RBY3RpdmVET01PYmplY3QmIGltcGwpIHsgcmV0dXJuIHRvSlMo
ZXhlYywgZ2xvYmFsT2JqZWN0LCAmaW1wbCk7IH0KIAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIuaAkocmV2aXNpb24gMTg0MjE0KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBX
RUJDT1JFX0VYUE9SVCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlciA6IHB1YmxpYyBKU0RPTVdyYXBw
ZXIgeworY2xhc3MgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIgOiBwdWJsaWMgSlNET01XcmFwcGVy
IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBK
U1Rlc3RDdXN0b21OYW1lZEdldHRlciogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXI+JiYgaW1wbCkKQEAgLTg2LDcgKzg2LDcgQEAgaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVy
KiB3cmFwcGVyT3duZQogICAgIHJldHVybiAmb3duZXIuZ2V0KCk7CiB9CiAKLVdFQkNPUkVfRVhQ
T1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3Qq
LCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqKTsKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqKTsKIGlubGlu
ZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgVGVzdEN1c3RvbU5hbWVkR2V0dGVyJiBpbXBsKSB7IHJldHVybiB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgJmltcGwpOyB9CiAKIApJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXZlbnRDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAxODQyMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSlNE
aWN0aW9uYXJ5OwogCi1jbGFzcyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3RFdmVudENvbnN0cnVjdG9y
IDogcHVibGljIEpTRE9NV3JhcHBlciB7CitjbGFzcyBKU1Rlc3RFdmVudENvbnN0cnVjdG9yIDog
cHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIg
QmFzZTsKICAgICBzdGF0aWMgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6U3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxU
ZXN0RXZlbnRDb25zdHJ1Y3Rvcj4mJiBpbXBsKQpAQCAtODEsNyArODEsNyBAQCBpbmxpbmUgSlND
OjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lCiAgICAgcmV0dXJuICZvd25lci5nZXQoKTsK
IH0KIAotV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCosIFRlc3RFdmVudENvbnN0cnVjdG9yKik7CitKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEV2ZW50Q29uc3Ry
dWN0b3IqKTsKIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEV2ZW50Q29uc3RydWN0b3ImIGlt
cGwpIHsgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCAmaW1wbCk7IH0KIAogYm9vbCBm
aWxsVGVzdEV2ZW50Q29uc3RydWN0b3JJbml0KFRlc3RFdmVudENvbnN0cnVjdG9ySW5pdCYsIEpT
RGljdGlvbmFyeSYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgJKHJldmlzaW9uIDE4NDIx
NCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dFRhcmdldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0RXZlbnRUYXJnZXQgOiBwdWJs
aWMgSlNET01XcmFwcGVyIHsKK2NsYXNzIEpTVGVzdEV2ZW50VGFyZ2V0IDogcHVibGljIEpTRE9N
V3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBz
dGF0aWMgSlNUZXN0RXZlbnRUYXJnZXQqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJl
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEV2ZW50VGFyZ2V0PiYm
IGltcGwpCkBAIC05MCw3ICs5MCw3IEBAIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3Jh
cHBlck93bmUKICAgICByZXR1cm4gJm93bmVyLmdldCgpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBK
U0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVz
dEV2ZW50VGFyZ2V0Kik7CitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9N
R2xvYmFsT2JqZWN0KiwgVGVzdEV2ZW50VGFyZ2V0Kik7CiBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFRlc3RFdmVudFRhcmdldCYgaW1wbCkgeyByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3Qs
ICZpbXBsKTsgfQogCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFeGNlcHRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmgJKHJldmlzaW9uIDE4NDIxNCkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRp
b24uaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIFdFQkNPUkVfRVhQT1JUIEpTVGVzdEV4Y2VwdGlvbiA6IHB1YmxpYyBKU0RP
TVdyYXBwZXIgeworY2xhc3MgSlNUZXN0RXhjZXB0aW9uIDogcHVibGljIEpTRE9NV3JhcHBlciB7
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNU
ZXN0RXhjZXB0aW9uKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RFeGNlcHRpb24+JiYgaW1wbCkKQEAgLTgz
LDcgKzgzLDcgQEAgaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZQogICAg
IHJldHVybiAmb3duZXIuZ2V0KCk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0RXhjZXB0aW9uKik7
CitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kiwg
VGVzdEV4Y2VwdGlvbiopOwogaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRl
KiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0RXhjZXB0aW9uJiBp
bXBsKSB7IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgJmltcGwpOyB9CiAKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCShyZXZpc2lvbiAxODQyMTQp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZSA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgSlNUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZSA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNE
T01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqIGNy
ZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBSZWY8VGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+JiYgaW1wbCkKQEAgLTc5LDcgKzc5
LDcgQEAgaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZQogICAgIHJldHVy
biAmb3duZXIuZ2V0KCk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZSopOworSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCosIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKik7CiBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlJiBpbXBsKSB7IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9i
amVjdCwgJmltcGwpOyB9CiAKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5oCShyZXZpc2lvbiAxODQyMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
V0VCQ09SRV9FWFBPUlQgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciA6IHB1YmxpYyBKU0RP
TVdyYXBwZXIgeworY2xhc3MgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciA6IHB1YmxpYyBK
U0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAg
ICAgc3RhdGljIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIGNyZWF0ZShKU0M6OlN0cnVj
dHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+JiYgaW1wbCkKQEAgLTc5LDcgKzc5LDcgQEAgaW5saW5l
IEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZQogICAgIHJldHVybiAmb3duZXIuZ2V0
KCk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRl
KiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciopOworSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKik7CiBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyJiBpbXBsKSB7IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgJmltcGwpOyB9CiAKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCShy
ZXZpc2lvbiAxODQyMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0
TmFtZWRDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgSlNUZXN0TmFt
ZWRDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVk
ZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdE5hbWVkQ29uc3RydWN0b3Iq
IGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBSZWY8VGVzdE5hbWVkQ29uc3RydWN0b3I+JiYgaW1wbCkKQEAgLTgwLDcgKzgw
LDcgQEAgaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZQogICAgIHJldHVy
biAmb3duZXIuZ2V0KCk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0TmFtZWRDb25zdHJ1Y3Rvciop
OworSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCos
IFRlc3ROYW1lZENvbnN0cnVjdG9yKik7CiBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYW1l
ZENvbnN0cnVjdG9yJiBpbXBsKSB7IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgJmlt
cGwpOyB9CiAKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCShyZXZpc2lvbiAxODQyMTQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiw3ICsyNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgV0VCQ09S
RV9FWFBPUlQgSlNUZXN0Tm9kZSA6IHB1YmxpYyBKU05vZGUgeworY2xhc3MgV0VCQ09SRV9URVNU
U1VQUE9SVF9FWFBPUlQgSlNUZXN0Tm9kZSA6IHB1YmxpYyBKU05vZGUgewogcHVibGljOgogICAg
IHR5cGVkZWYgSlNOb2RlIEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdE5vZGUqIGNyZWF0ZShKU0M6
OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBS
ZWY8VGVzdE5vZGU+JiYgaW1wbCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMu
aAkocmV2aXNpb24gMTg0MjE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyAr
MjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFdFQkNPUkVfRVhQT1JUIEpT
VGVzdE5vbmRldGVybWluaXN0aWMgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKK2NsYXNzIEpTVGVz
dE5vbmRldGVybWluaXN0aWMgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0
eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3ROb25kZXRlcm1pbmlz
dGljKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgUmVmPFRlc3ROb25kZXRlcm1pbmlzdGljPiYmIGltcGwpCkBAIC03OSw3
ICs3OSw3IEBAIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmUKICAgICBy
ZXR1cm4gJm93bmVyLmdldCgpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdE5vbmRldGVybWluaXN0
aWMqKTsKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqLCBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyopOwogaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0
Tm9uZGV0ZXJtaW5pc3RpYyYgaW1wbCkgeyByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3Qs
ICZpbXBsKTsgfQogCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgJKHJldmlzaW9uIDE4NDIxNCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAkod29ya2luZyBjb3B5
KQpAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFdFQkNP
UkVfRVhQT1JUIEpTVGVzdE9iaiA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgSlNUZXN0
T2JqIDogcHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdy
YXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0T2JqKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RPYmo+
JiYgaW1wbCkKQEAgLTk1LDcgKzk1LDcgQEAgaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3
cmFwcGVyT3duZQogICAgIHJldHVybiAmb3duZXIuZ2V0KCk7CiB9CiAKLVdFQkNPUkVfRVhQT1JU
IEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBU
ZXN0T2JqKik7CitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0KiwgVGVzdE9iaiopOwogaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0T2JqJiBpbXBs
KSB7IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgJmltcGwpOyB9CiAKIApJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCShyZXZpc2lvbiAxODQy
MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycyA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgeworY2xhc3MgSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycyA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAg
IHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+JiYg
aW1wbCkKQEAgLTc5LDcgKzc5LDcgQEAgaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFw
cGVyT3duZQogICAgIHJldHVybiAmb3duZXIuZ2V0KCk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIEpT
Qzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyopOworSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKik7CiBp
bmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzJiBpbXBsKSB7
IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgJmltcGwpOyB9CiAKIApJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAko
cmV2aXNpb24gMTg0MjE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgV0VCQ09S
RV9FWFBPUlQgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIDogcHVibGljIEpT
RE9NV3JhcHBlciB7CitjbGFzcyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Ug
OiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBl
ciBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uq
IGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBSZWY8VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT4mJiBpbXBs
KQpAQCAtODUsNyArODUsNyBAQCBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJP
d25lCiAgICAgcmV0dXJuICZvd25lci5nZXQoKTsKIH0KIAotV0VCQ09SRV9FWFBPUlQgSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqKTsKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlKik7CiBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UmIGltcGwpIHsgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCAmaW1w
bCk7IH0KIAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0VHlwZWRlZnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaAkocmV2aXNpb24gMTg0MjE0KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBXRUJDT1JFX0VYUE9SVCBKU1Rlc3RUeXBlZGVmcyA6IHB1YmxpYyBKU0RPTVdyYXBwZXIg
eworY2xhc3MgSlNUZXN0VHlwZWRlZnMgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoK
ICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RUeXBlZGVm
cyogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFJlZjxUZXN0VHlwZWRlZnM+JiYgaW1wbCkKQEAgLTgyLDcgKzgyLDcgQEAg
aW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZQogICAgIHJldHVybiAmb3du
ZXIuZ2V0KCk7CiB9CiAKLVdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0VHlwZWRlZnMqKTsKK0pTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0VHlwZWRlZnMq
KTsKIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdFR5cGVkZWZzJiBpbXBsKSB7IHJldHVybiB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgJmltcGwpOyB9CiAKIApJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgJKHJl
dmlzaW9uIDE4NDIxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU2F0dHJpYnV0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNhdHRyaWJ1dGUgOiBwdWJs
aWMgSlNET01XcmFwcGVyIHsKK2NsYXNzIEpTYXR0cmlidXRlIDogcHVibGljIEpTRE9NV3JhcHBl
ciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMg
SlNhdHRyaWJ1dGUqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8YXR0cmlidXRlPiYmIGltcGwpCkBAIC04MCw3ICs4
MCw3IEBAIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmUKICAgICByZXR1
cm4gJm93bmVyLmdldCgpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgYXR0cmlidXRlKik7CitKU0M6OkpT
VmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgYXR0cmlidXRl
Kik7CiBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGF0dHJpYnV0ZSYgaW1wbCkgeyByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsICZpbXBsKTsgfQogCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaAkocmV2aXNp
b24gMTg0MjE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
cmVhZG9ubHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIFdFQkNPUkVfRVhQT1JUIEpTcmVhZG9ubHkgOiBwdWJsaWMgSlNE
T01XcmFwcGVyIHsKK2NsYXNzIEpTcmVhZG9ubHkgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1
YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBKU3JlYWRv
bmx5KiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgUmVmPHJlYWRvbmx5PiYmIGltcGwpCkBAIC03OSw3ICs3OSw3IEBAIGlu
bGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmUKICAgICByZXR1cm4gJm93bmVy
LmdldCgpOwogfQogCi1XRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgcmVhZG9ubHkqKTsKK0pTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCByZWFkb25seSopOwogaW5saW5l
IEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCByZWFkb25seSYgaW1wbCkgeyByZXR1cm4gdG9KUyhleGVjLCBnbG9i
YWxPYmplY3QsICZpbXBsKTsgfQogCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>