<?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>129744</bug_id>
          
          <creation_ts>2014-03-05 10:08:04 -0800</creation_ts>
          <short_desc>Web Inspector: Remove unused callId parameter from evaluateInWebInspector</short_desc>
          <delta_ts>2014-03-13 18:14:10 -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>Web Inspector</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>129217</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>ossy</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>987295</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-05 10:08:04 -0800</bug_when>
    <thetext>The old test harness used to pass magic call identifiers to try and intercept the InspectorTest.completeTest() method when it is sent back to the test page. The new inspector test harness doesn&apos;t need this functionality, so we can probably remove it from TestRunner and the WK/WK2 entry points (WKBundleInspectorEvaluateScriptForTest and WebInspector:evaluateInFrontend:callId:script) that also have this extra parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989861</commentid>
    <comment_count>1</comment_count>
      <attachid>226559</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-12 16:46:08 -0700</bug_when>
    <thetext>Created attachment 226559
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989871</commentid>
    <comment_count>2</comment_count>
      <attachid>226559</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-03-12 17:13:01 -0700</bug_when>
    <thetext>Comment on attachment 226559
the patch

Crazy number of files!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989873</commentid>
    <comment_count>3</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-12 17:14:04 -0700</bug_when>
    <thetext>Yeah, I groaned when that many change logs got touched :|</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989875</commentid>
    <comment_count>4</comment_count>
      <attachid>226559</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-03-12 17:21:56 -0700</bug_when>
    <thetext>Comment on attachment 226559
the patch

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

&gt; Source/JavaScriptCore/inspector/agents/InspectorAgent.cpp:78
&gt; +    for (auto&amp; testCommand : m_pendingEvaluateTestCommands) {
&gt; +        if (!m_frontendDispatcher)
&gt; +            break;
&gt; +

You could just not loop at all if !m_frontendDispatcher.

    if (m_frontendDispatcher) {
        for (...)
            ...
    }

However, having said that I don&apos;t believe it is possible for m_frontendDispatcher to be null at this time. Enable can only be called (looking at the code right now) via the protocol. And, if it was null, we wouldn&apos;t have wanted to clear m_pendingEvaluateTestCommands. So, just drop the m_frontendDispatcher check, or turn it into an ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989879</commentid>
    <comment_count>5</comment_count>
      <attachid>226559</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-12 17:35:23 -0700</bug_when>
    <thetext>Comment on attachment 226559
the patch

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

&gt;&gt; Source/JavaScriptCore/inspector/agents/InspectorAgent.cpp:78
&gt;&gt; +
&gt; 
&gt; You could just not loop at all if !m_frontendDispatcher.
&gt; 
&gt;     if (m_frontendDispatcher) {
&gt;         for (...)
&gt;             ...
&gt;     }
&gt; 
&gt; However, having said that I don&apos;t believe it is possible for m_frontendDispatcher to be null at this time. Enable can only be called (looking at the code right now) via the protocol. And, if it was null, we wouldn&apos;t have wanted to clear m_pendingEvaluateTestCommands. So, just drop the m_frontendDispatcher check, or turn it into an ASSERT.

On further discussion: If a frontend dispatched messages synchronously, and one of the test messages called InspectorAgent.disable() further down the call stack (thus nulling out the frontendDispatcher) then we&apos;d have a problem. So it makes sense to be cautious and re-check here, even if we won&apos;t ever hit this in our frontend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989890</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-03-12 18:11:38 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 226559 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=226559&amp;action=review
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/inspector/agents/InspectorAgent.cpp:78
&gt; &gt;&gt; +
&gt; &gt; 
&gt; &gt; You could just not loop at all if !m_frontendDispatcher.
&gt; &gt; 
&gt; &gt;     if (m_frontendDispatcher) {
&gt; &gt;         for (...)
&gt; &gt;             ...
&gt; &gt;     }
&gt; &gt; 
&gt; &gt; However, having said that I don&apos;t believe it is possible for m_frontendDispatcher to be null at this time. Enable can only be called (looking at the code right now) via the protocol. And, if it was null, we wouldn&apos;t have wanted to clear m_pendingEvaluateTestCommands. So, just drop the m_frontendDispatcher check, or turn it into an ASSERT.
&gt; 
&gt; On further discussion: If a frontend dispatched messages synchronously, and one of the test messages called InspectorAgent.disable() further down the call stack (thus nulling out the frontendDispatcher) then we&apos;d have a problem. So it makes sense to be cautious and re-check here, even if we won&apos;t ever hit this in our frontend.

Thinking about this even further, any incoming messages wouldn&apos;t be handled immediately. They would be queued, right? So maybe we don&apos;t need this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990062</commentid>
    <comment_count>7</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-13 10:48:19 -0700</bug_when>
    <thetext>Committed r165545: &lt;http://trac.webkit.org/changeset/165545&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990177</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-03-13 15:12:53 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Committed r165545: &lt;http://trac.webkit.org/changeset/165545&gt;

It broke the Apple Windows build:

   1&gt;..\..\win\WebInspector.cpp(45): error C2259: &apos;WebInspector&apos; : cannot instantiate abstract class
                 due to following members:
                 &apos;HRESULT IWebInspectorPrivate::evaluateInFrontend(ULONG,BSTR)&apos; : is abstract</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990179</commentid>
    <comment_count>9</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-03-13 15:21:18 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Committed r165545: &lt;http://trac.webkit.org/changeset/165545&gt;
&gt; 
&gt; It broke the Apple Windows build:
&gt; 
&gt;    1&gt;..\..\win\WebInspector.cpp(45): error C2259: &apos;WebInspector&apos; : cannot instantiate abstract class
&gt;                  due to following members:
&gt;                  &apos;HRESULT IWebInspectorPrivate::evaluateInFrontend(ULONG,BSTR)&apos; : is abstract

Sounds like we should remove the ULONG requirement somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990184</commentid>
    <comment_count>10</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-13 15:36:24 -0700</bug_when>
    <thetext>I will look into it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990227</commentid>
    <comment_count>11</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-13 18:14:10 -0700</bug_when>
    <thetext>Committed r165585: &lt;http://trac.webkit.org/changeset/165585&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226559</attachid>
            <date>2014-03-12 16:46:08 -0700</date>
            <delta_ts>2014-03-12 17:35:40 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>bug-129744-20140312164725.patch</filename>
            <type>text/plain</type>
            <size>35807</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ZDdhOGQ5NTZkZTQ5MTY5NWJmZWYxOTQwMmI5NzY5MGIyMTFkZGU0Li4yZWQyMmE0YWNiZjQ4Njg5
NjQwYTJhZTNkZGZhMGM1Y2EwYzRjNzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNC0wMy0xMiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgdW51c2VkIGNhbGxJZCBwYXJhbWV0ZXIgZnJv
bSBldmFsdWF0ZUluV2ViSW5zcGVjdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjk3NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwOgor
ICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKElu
c3BlY3Rvcjo6SW5zcGVjdG9yQWdlbnQ6OmV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvcHJvdG9jb2wvSW5zcGVjdG9yRG9tYWluLmpzb246CisKIDIwMTQtMDMtMTIgIENvbW1p
dCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIxNjU0ODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjcyNDE5MTRiZTA4NjhlOGQ3YzQ5
MGZlODEzMjMzODVhNzhjOTUwNC4uNmU3NzBkMzRlNGU5MDI3Mjg4Zjg1ZTJkMWNmZDdhYWExN2Fk
MDFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTAzLTEyICBCcmlhbiBCdXJn
ICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSB1bnVz
ZWQgY2FsbElkIHBhcmFtZXRlciBmcm9tIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTc0NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZCk6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKwogMjAxNC0wMy0x
MiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViVlRU
XSBIVE1MNSAic3BhY2UiIGNhaHJhY3RlcnMgYXJvdW5kICItLT4iIGFyZSBub3QgcmVxdWlyZWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDQ1ZTdhOGE2NzllN2E5ZjJiNGQyMDdjMmVkNWI0
MzJlZTg0NGNmOWUuLjNhYmI0N2Q0YTZjZWY5N2Q0MWZhZWNjMDU2MWEwMzAyYmZjZDA3YmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE2IEBACiAyMDE0LTAzLTEyICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92
ZSB1bnVzZWQgY2FsbElkIHBhcmFtZXRlciBmcm9tIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTc0NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JKU0JhY2tlbmRDb21tYW5kcy5qczoKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3Rvck9ic2VydmVyLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkluc3BlY3Rvck9ic2VydmVyLnByb3RvdHlwZS5ldmFsdWF0ZUZvclRlc3RJbkZy
b250ZW5kKToKKworMjAxNC0wMy0xMiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBjb252ZXJ0IG1vZGVsIHRlc3RzIGFuZCBpbnNwZWN0b3It
dGVzdC5qcyB0byB1c2UgVGVzdC5odG1sCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjkyMTcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IGViN2FiOTJlMjY1
NjliMDYzMGI1ODViZTg3Mjg1YzZiNjMwMjdiOGYuLjcwMjc0YzM4ODdlMDAwMTQ1NTlkM2FlMGRm
Mjk1MTM4M2FlMzhmNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNC0w
My0xMiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBSZW1vdmUgdW51c2VkIGNhbGxJZCBwYXJhbWV0ZXIgZnJvbSBldmFsdWF0ZUluV2ViSW5z
cGVjdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mjk3NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHA6CisgICAgICAgIChE
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oOgorCiAyMDE0LTAz
LTEwICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZM
XSBNb2RpZnkgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgcmVsYXRlZCBmdW5jdGlvbnMgaW4gZXdr
X3ZpZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggOThjZWIwNmRlMWMzM2NjMzYxZjYxNTUxNDNiMzRl
MjkyOWI4MDM3NC4uOGFhZmRmNWM4Y2ExN2IyNmExNWJlNWIxMjYzZGZmZmFiMGE1MDA4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAzLTEyICBCcmlhbiBCdXJnICA8
YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSB1bnVzZWQg
Y2FsbElkIHBhcmFtZXRlciBmcm9tIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTc0NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmlu
c3BlY3Rvci5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX2luc3BlY3Rvcl9leGVjdXRlX3Njcmlw
dCk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmluc3BlY3RvcnByaXZhdGUuaDoKKwogMjAx
NC0wMy0xMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS10gW1N0YWJsZV0gZGVhZGxvY2sgaW4gZ29iamVjdCBpbnRyb3NwZWN0aW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKaW5kZXggMjc5MzQyNjc4NjM1NTEwMTJmYThhYmQyNGMzMjViMDI0ZmRjOGZi
MS4uZTkzNjBlMDFkOTQ1MjdlODhlYmM5ZDMzNWU0MWIxMjVlMGQ5MTI3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAzLTEyICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBw
bGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSB1bnVzZWQgY2FsbElkIHBh
cmFtZXRlciBmcm9tIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTc0NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5t
bToKKyAgICAgICAgKC1bV2ViSW5zcGVjdG9yIGV2YWx1YXRlSW5Gcm9udGVuZDpzY3JpcHQ6XSk6
CisgICAgICAgICogV2ViSW5zcGVjdG9yL1dlYkluc3BlY3RvclByaXZhdGUuaDoKKwogMjAxNC0w
My0xMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBI
b29rIHVwIGltYWdlIGNvbnRyb2xzIGZvciBXZWJLaXQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggM2U3
MDllY2FmM2NiYzczNGNhMmE2MTBlNTc1ZjMxMmJhYjcxZDJkNi4uMDA2OTdlOWRhNmJmOGQwYWM1
NjU1MGUyMzkxMjI4ZTcyOGU4NWM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDE0LTAzLTEyICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFJlbW92ZSB1bnVzZWQgY2FsbElkIHBhcmFtZXRlciBmcm9tIGV2YWx1YXRl
SW5XZWJJbnNwZWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyOTc0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViSW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkluc3BlY3Rvcjo6ZXZhbHVh
dGVJbkZyb250ZW5kKToKKyAgICAgICAgKiBXZWJJbnNwZWN0b3IuaDoKKwogMjAxNC0wMy0wNiAg
Sm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEV4cG9zZSB0aGUgY29uc29sZSBvYmplY3QgaW4gSlNDb250ZXh0cyB0byBpbnRlcmFj
dCB3aXRoIFdlYiBJbnNwZWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4ZjFkZDM2NzgyZWI1MTI4N2FkYmVl
NTBjMjkzY2RjOTA5ZDA3YmNjLi41YzBjNGNlYTZkZjFiMzNkYzVhZTRiM2RjYWJkNWYyNjk2OGJh
NzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQtMDMtMTIgIEJyaWFuIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHVudXNl
ZCBjYWxsSWQgcGFyYW1ldGVyIGZyb20gZXZhbHVhdGVJbldlYkluc3BlY3RvcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NzQ0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKFdLQnVuZGxl
SW5zcGVjdG9yRXZhbHVhdGVTY3JpcHRGb3JUZXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3Bl
Y3Rvcjo6ZXZhbHVhdGVTY3JpcHRGb3JUZXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViSW5zcGVjdG9yLmg6CisKIDIwMTQtMDMtMTIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgSGF2ZSB0aGUgc2Nyb2xsaW5nIHRyZWUgdHJhY2sg
dGhlIHZpZXdwb3J0IHNpemUsIG5vdCB0aGUgdmlld3BvcnQgcmVjdApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3Bw
CmluZGV4IGZjZWU0NmU5ZGViZjM5ZTIzMzI3YTc1YTc5OWYxNzU3YTA1M2VjMDYuLjBiZWY0MjZm
NjIzMGY2NDczMzJhMTNkYTIxNWY3ZmQ1YzdlOTJmMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAKQEAg
LTM1LDggKzM1LDYgQEAKIAogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUg
IlNjcmlwdFZhbHVlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCkBAIC03NCw4ICs3MiwxMyBA
QCB2b2lkIEluc3BlY3RvckFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcqKQogICAgIGlmIChtX3Bl
bmRpbmdJbnNwZWN0RGF0YS5maXJzdCkKICAgICAgICAgaW5zcGVjdChtX3BlbmRpbmdJbnNwZWN0
RGF0YS5maXJzdCwgbV9wZW5kaW5nSW5zcGVjdERhdGEuc2Vjb25kKTsKIAotICAgIGZvciAoVmVj
dG9yPHN0ZDo6cGFpcjxsb25nLCBTdHJpbmc+Pjo6aXRlcmF0b3IgaXQgPSBtX3BlbmRpbmdFdmFs
dWF0ZVRlc3RDb21tYW5kcy5iZWdpbigpOyBtX2Zyb250ZW5kRGlzcGF0Y2hlciAmJiBpdCAhPSBt
X3BlbmRpbmdFdmFsdWF0ZVRlc3RDb21tYW5kcy5lbmQoKTsgKytpdCkKLSAgICAgICAgbV9mcm9u
dGVuZERpc3BhdGNoZXItPmV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoc3RhdGljX2Nhc3Q8aW50
PigoKml0KS5maXJzdCksICgqaXQpLnNlY29uZCk7CisgICAgZm9yIChhdXRvJiB0ZXN0Q29tbWFu
ZCA6IG1fcGVuZGluZ0V2YWx1YXRlVGVzdENvbW1hbmRzKSB7CisgICAgICAgIGlmICghbV9mcm9u
dGVuZERpc3BhdGNoZXIpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBtX2Zyb250ZW5k
RGlzcGF0Y2hlci0+ZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZCh0ZXN0Q29tbWFuZCk7CisgICAg
fQorCiAgICAgbV9wZW5kaW5nRXZhbHVhdGVUZXN0Q29tbWFuZHMuY2xlYXIoKTsKIH0KIApAQCAt
OTcsMTIgKzEwMCwxMiBAQCB2b2lkIEluc3BlY3RvckFnZW50OjppbnNwZWN0KFBhc3NSZWZQdHI8
VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gb2JqZQogICAgIG1fcGVuZGluZ0lu
c3BlY3REYXRhLnNlY29uZCA9IGhpbnRzOwogfQogCi12b2lkIEluc3BlY3RvckFnZW50OjpldmFs
dWF0ZUZvclRlc3RJbkZyb250ZW5kKGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIHNjcmlwdCkK
K3ZvaWQgSW5zcGVjdG9yQWdlbnQ6OmV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoY29uc3QgU3Ry
aW5nJiBzY3JpcHQpCiB7CiAgICAgaWYgKG1fZW5hYmxlZCAmJiBtX2Zyb250ZW5kRGlzcGF0Y2hl
cikKLSAgICAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPmV2YWx1YXRlRm9yVGVzdEluRnJvbnRl
bmQoc3RhdGljX2Nhc3Q8aW50PihjYWxsSWQpLCBzY3JpcHQpOworICAgICAgICBtX2Zyb250ZW5k
RGlzcGF0Y2hlci0+ZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChzY3JpcHQpOwogICAgIGVsc2UK
LSAgICAgICAgbV9wZW5kaW5nRXZhbHVhdGVUZXN0Q29tbWFuZHMuYXBwZW5kKHN0ZDo6cGFpcjxs
b25nLCBTdHJpbmc+KGNhbGxJZCwgc2NyaXB0KSk7CisgICAgICAgIG1fcGVuZGluZ0V2YWx1YXRl
VGVzdENvbW1hbmRzLmFwcGVuZChzY3JpcHQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0
b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JBZ2VudC5oCmluZGV4IGJmNmM3MWE2ZjY3YjgyMmFmYjQ0M2MzNTAyYTRkZjcyYTlk
MGFlOTIuLjQ5NTY1NzNmYmJlM2M2ODZkZjE1ZDkzZDQyYmM2MDZlOWY2ZGM4ODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
QWdlbnQuaApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIkluc3BlY3RvckpTRnJvbnRlbmRE
aXNwYXRjaGVycy5oIgogI2luY2x1ZGUgImluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaCIK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKQEAgLTYxLDEy
ICs2MCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcq
KSBvdmVycmlkZTsKIAogICAgIHZvaWQgaW5zcGVjdChQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpS
dW50aW1lOjpSZW1vdGVPYmplY3Q+IG9iamVjdFRvSW5zcGVjdCwgUGFzc1JlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IGhpbnRzKTsKLSAgICB2b2lkIGV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQobG9u
ZyB0ZXN0Q2FsbElkLCBjb25zdCBTdHJpbmcmIHNjcmlwdCk7CisgICAgdm9pZCBldmFsdWF0ZUZv
clRlc3RJbkZyb250ZW5kKGNvbnN0IFN0cmluZyYgc2NyaXB0KTsKIAogcHJpdmF0ZToKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9ySW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVyPiBtX2Zy
b250ZW5kRGlzcGF0Y2hlcjsKICAgICBSZWZQdHI8SW5zcGVjdG9ySW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXI+IG1fYmFja2VuZERpc3BhdGNoZXI7Ci0gICAgVmVjdG9yPHN0ZDo6cGFpcjxsb25n
LCBTdHJpbmc+PiBtX3BlbmRpbmdFdmFsdWF0ZVRlc3RDb21tYW5kczsKKyAgICBWZWN0b3I8U3Ry
aW5nPiBtX3BlbmRpbmdFdmFsdWF0ZVRlc3RDb21tYW5kczsKICAgICBzdGQ6OnBhaXI8UmVmUHRy
PFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+LCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0Pj4gbV9wZW5kaW5nSW5zcGVjdERhdGE7CiAgICAgYm9vbCBtX2VuYWJsZWQ7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9JbnNwZWN0
b3JEb21haW4uanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wv
SW5zcGVjdG9yRG9tYWluLmpzb24KaW5kZXggODNhMjEzMDIxNWVjMjIwZjI2MTJlOWQxOWU5OTEx
Y2RlNzRmOGRmOS4uNDEwNjMxZjY5MzVkNWQxN2I4ZDQ1NGM3MWFjMjg5MjdlYWMwYmE2YyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9JbnNwZWN0
b3JEb21haW4uanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3Rv
Y29sL0luc3BlY3RvckRvbWFpbi5qc29uCkBAIC0xNSw3ICsxNSw2IEBACiAgICAgICAgIHsKICAg
ICAgICAgICAgICJuYW1lIjogImV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQiLAogICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0ZXN0Q2FsbElk
IiwgInR5cGUiOiAiaW50ZWdlciIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNjcmlw
dCIsICJ0eXBlIjogInN0cmluZyIgfQogICAgICAgICAgICAgXQogICAgICAgICB9LApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgppbmRleCA2ZDkwM2ZkYWM2MjMzMTU3ZmVkYzk1ODQwMmI3NDYyNjFmNjI3MGZj
Li5lN2Q3NGYxNjdlZjkwZjM3NmNlMWU0NmRhNDQyY2FiZDllMmM4YzFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgpAQCAtMjk4Niw3ICsyOTg2LDcgQEAgX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250
cm9sbGVyMTRkaWRDYW5jZWxGcmFtZUV2CiBfX1pON1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xs
ZXIxNWNvbm5lY3RGcm9udGVuZEVQTjlJbnNwZWN0b3IyNEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bEUKIF9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE4ZGlzY29ubmVjdEZyb250ZW5k
RU45SW5zcGVjdG9yMjVJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uRQogX19aTjdXZWJDb3JlMTlJ
bnNwZWN0b3JDb250cm9sbGVyMThzZXRQcm9maWxlckVuYWJsZWRFYgotX19aTjdXZWJDb3JlMTlJ
bnNwZWN0b3JDb250cm9sbGVyMjVldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kRWxSS04zV1RGNlN0
cmluZ0UKK19fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjI1ZXZhbHVhdGVGb3JUZXN0
SW5Gcm9udGVuZEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJv
bGxlcjI2c2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFTlN0M19fMTEwdW5pcXVlX3B0cklOU18y
M0luc3BlY3RvckZyb250ZW5kQ2xpZW50RU5TMV8xNGRlZmF1bHRfZGVsZXRlSVMzX0VFRUUKIF9f
Wk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjM5c2V0UmVzb3VyY2VzRGF0YVNpemVMaW1p
dHNGcm9tSW50ZXJuYWxzRWlpCiBfX1pON1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXI0c2hv
d0V2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKaW5kZXggNTVkOTRhNGI5ZTQ2MzMxMjVjYzAwMjViMTZhNzY5MGZlZGU1Nzg4Zi4uNDc2NjRi
YmY0ZTljZGE5YTg1MTQxNWE0NDk0NTMxNTAxZjdiYTBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMzEwLDkgKzMxMCw5IEBA
IHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0UHJvY2Vzc0lkKGxvbmcgcHJvY2Vzc0lkKQog
ICAgIElkZW50aWZpZXJzRmFjdG9yeTo6c2V0UHJvY2Vzc0lkKHByb2Nlc3NJZCk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChsb25nIGNh
bGxJZCwgY29uc3QgU3RyaW5nJiBzY3JpcHQpCit2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmV2
YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBzY3JpcHQpCiB7Ci0gICAgbV9p
bnNwZWN0b3JBZ2VudC0+ZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChjYWxsSWQsIHNjcmlwdCk7
CisgICAgbV9pbnNwZWN0b3JBZ2VudC0+ZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChzY3JpcHQp
OwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRyYXdIaWdobGlnaHQoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmgKaW5kZXggMGMxYzg2NDAxNGYzNjkwNDQ5YTdiNjQwYWQyNzgzNmY0
ZjdhMjM2OS4uY2NlZTljNzI0NjFlN2Y3ZmU1MmRlOWMyNTYwNDgxOTcxMGYxOGZkMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC0xMTQs
NyArMTE0LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1VuZGVyVGVzdCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNVbmRlclRlc3Q7IH0KICAgICB2b2lkIHNldElzVW5kZXJUZXN0KGJvb2wgaXNVbmRl
clRlc3QpIHsgbV9pc1VuZGVyVGVzdCA9IGlzVW5kZXJUZXN0OyB9Ci0gICAgdm9pZCBldmFsdWF0
ZUZvclRlc3RJbkZyb250ZW5kKGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIHNjcmlwdCk7Cisg
ICAgdm9pZCBldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKGNvbnN0IFN0cmluZyYgc2NyaXB0KTsK
IAogICAgIGJvb2wgcHJvZmlsZXJFbmFibGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRQcm9maWxl
ckVuYWJsZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JKU0JhY2tlbmRDb21tYW5kcy5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckpTQmFja2VuZENv
bW1hbmRzLmpzCmluZGV4IGNiZjI0N2IxMDViZTIzNmY1ZWNiYjNmMWY4YjBjZWI3NjM2NWMxMDAu
LjcyYjE4OGVjZGY4YmYxNTAzOWFjOTNkNjgwYzIxNDQyN2E1ZDMwMjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckpTQmFj
a2VuZENvbW1hbmRzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Byb3RvY29sL0luc3BlY3RvckpTQmFja2VuZENvbW1hbmRzLmpzCkBAIC01NCw3ICs1NCw3IEBA
IEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJEZWJ1Z2dlci5zZXRPdmVybGF5TWVz
c2FnZSIsIFt7Im5hbWUiOiAibWVzc2FnCiAKIC8vIEluc3BlY3Rvci4KIEluc3BlY3RvckJhY2tl
bmQucmVnaXN0ZXJJbnNwZWN0b3JEaXNwYXRjaGVyID0gSW5zcGVjdG9yQmFja2VuZC5yZWdpc3Rl
ckRvbWFpbkRpc3BhdGNoZXIuYmluZChJbnNwZWN0b3JCYWNrZW5kLCAiSW5zcGVjdG9yIik7Ci1J
bnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRXZlbnQoIkluc3BlY3Rvci5ldmFsdWF0ZUZvclRlc3RJ
bkZyb250ZW5kIiwgWyJ0ZXN0Q2FsbElkIiwgInNjcmlwdCJdKTsKK0luc3BlY3RvckJhY2tlbmQu
cmVnaXN0ZXJFdmVudCgiSW5zcGVjdG9yLmV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQiLCBbInNj
cmlwdCJdKTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFdmVudCgiSW5zcGVjdG9yLmluc3Bl
Y3QiLCBbIm9iamVjdCIsICJoaW50cyJdKTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFdmVu
dCgiSW5zcGVjdG9yLmRldGFjaGVkIiwgWyJyZWFzb24iXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJl
Z2lzdGVyRXZlbnQoIkluc3BlY3Rvci50YXJnZXRDcmFzaGVkIiwgW10pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yT2Jz
ZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9J
bnNwZWN0b3JPYnNlcnZlci5qcwppbmRleCA4Yjc0Yzc4ZWIwOGM0MWQ5YWRmMzBkZDkwMzlmZjlm
NTFmYWI5YTUyLi4wZTU1ZTdmMzQ1MTU0MWMwNTRhOTkwMDU2NGUzN2M1MjFmZTE3NGZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNw
ZWN0b3JPYnNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Qcm90b2NvbC9JbnNwZWN0b3JPYnNlcnZlci5qcwpAQCAtMzMsOCArMzMsNyBAQCBXZWJJbnNw
ZWN0b3IuSW5zcGVjdG9yT2JzZXJ2ZXIucHJvdG90eXBlID0gewogCiAgICAgLy8gRXZlbnRzIGRl
ZmluZWQgYnkgdGhlICJJbnNwZWN0b3IiIGRvbWFpbi4KIAotICAgIC8vIEZJWE1FOiBSZW1vdmUg
cGx1bWJpbmcgZm9yIGNhbGxJZGVudGlmaWVyIHBhcmFtZXRlciBmcm9tIGJhY2tlbmQsIGFzIGl0
J3Mgbm90IHVzZWQuCi0gICAgZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZDogZnVuY3Rpb24oY2Fs
bElkZW50aWZpZXIsIHNjcmlwdCkKKyAgICBldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kOiBmdW5j
dGlvbihzY3JpcHQpCiAgICAgewogICAgICAgICBpZiAoIUluc3BlY3RvckZyb250ZW5kSG9zdC5p
c1VuZGVyVGVzdCgpKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5j
cHAKaW5kZXggMmI2MTZhY2NmNWFjMDE5YmIxMjUxMmNjYjUwNjRmOTFjODBiMjQxOS4uZGRjNzRj
MDNkOGYxYmI2NDRiMDRlM2IwY2NmYjY2YmVhZDk4MTEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRF
ZmwuY3BwCkBAIC00NTMsMTUgKzQ1MywxNCBAQCBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bDo6aXNUYXJnZXRJdGVtKGNvbnN0IEV3a19IaXN0b3J5X0l0ZW0qIGV3a0hpc3RvcnlJdAogICAg
IHJldHVybiBoaXN0b3J5SXRlbS0+aXNUYXJnZXRJdGVtKCk7CiB9CiAKLXZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGNvbnN0IEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBsb25nIGNhbGxJZCwgY29uc3QgU3RyaW5nJiBzY3JpcHQpCit2b2lkIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6ZXZhbHVhdGVJbldlYkluc3BlY3Rvcihjb25zdCBFdmFzX09i
amVjdCogZXdrVmlldywgY29uc3QgU3RyaW5nJiBzY3JpcHQpCiB7CiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKICAgICBEUlRfU1VQUFJUX1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsK
IAotICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5ldmFsdWF0ZUZvclRlc3RJbkZyb250
ZW5kKGNhbGxJZCwgc2NyaXB0KTsKKyAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZXZh
bHVhdGVGb3JUZXN0SW5Gcm9udGVuZChzY3JpcHQpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
ZXdrVmlldyk7Ci0gICAgVU5VU0VEX1BBUkFNKGNhbGxJZCk7CiAgICAgVU5VU0VEX1BBUkFNKHNj
cmlwdCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKaW5kZXggMDgxZDYyZTA3M2Qx
Mjc3YjNmMWM5NTJhN2Y1ZjRhMmNkZThjMzk5My4uM2ZlNWUxMzEyYjA2NzMwYTJiODBmMDcxYzI0
YzUxMWIyOTY3MGZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKQEAgLTk3LDcgKzk3LDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBIaXN0b3J5SXRlbUNoaWxkcmVuVmVjdG9yIGNoaWxkSGlzdG9y
eUl0ZW1zKGNvbnN0IEV3a19IaXN0b3J5X0l0ZW0qKTsKICAgICBzdGF0aWMgU3RyaW5nIGhpc3Rv
cnlJdGVtVGFyZ2V0KGNvbnN0IEV3a19IaXN0b3J5X0l0ZW0qKTsKICAgICBzdGF0aWMgYm9vbCBp
c1RhcmdldEl0ZW0oY29uc3QgRXdrX0hpc3RvcnlfSXRlbSopOwotICAgIHN0YXRpYyB2b2lkIGV2
YWx1YXRlSW5XZWJJbnNwZWN0b3IoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGxvbmcgY2Fs
bElkLCBjb25zdCBTdHJpbmcmIHNjcmlwdCk7CisgICAgc3RhdGljIHZvaWQgZXZhbHVhdGVJbldl
Ykluc3BlY3Rvcihjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgU3RyaW5nJiBzY3Jp
cHQpOwogICAgIHN0YXRpYyB2b2lkIGV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKGNvbnN0
IEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgaW50IHdvcmxkSUQsIEpTT2JqZWN0UmVmIGdsb2JhbE9i
amVjdCwgY29uc3QgU3RyaW5nJiBzY3JpcHQpOwogICAgIHN0YXRpYyBKU0dsb2JhbENvbnRleHRS
ZWYgZ2xvYmFsQ29udGV4dFJlZkZvckZyYW1lKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJpbnNwZWN0
b3IuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHAK
aW5kZXggZGE4ZDUxYjg0ZTljYTIxNjFkYzA3ZGNmZjY3YmU4NTczYzI5ZGE0Zi4uMWJjMTZhNTIx
Nzg5MTYwMjNkYmVhMjM0NDA2MjhkY2QyOTYzZGM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHAKQEAgLTU1NiwxMSArNTU2LDExIEBAIHZv
aWQgd2Via2l0X3dlYl9pbnNwZWN0b3JfY2xvc2UoV2ViS2l0V2ViSW5zcGVjdG9yKiB3ZWJJbnNw
ZWN0b3IpCiAgICAgcHJpdi0+cGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmNsb3NlKCk7CiB9
CiAKLXZvaWQgd2Via2l0X3dlYl9pbnNwZWN0b3JfZXhlY3V0ZV9zY3JpcHQoV2ViS2l0V2ViSW5z
cGVjdG9yKiB3ZWJJbnNwZWN0b3IsIGxvbmcgY2FsbElkLCBjb25zdCBnY2hhciogc2NyaXB0KQor
dm9pZCB3ZWJraXRfd2ViX2luc3BlY3Rvcl9leGVjdXRlX3NjcmlwdChXZWJLaXRXZWJJbnNwZWN0
b3IqIHdlYkluc3BlY3RvciwgY29uc3QgZ2NoYXIqIHNjcmlwdCkKIHsKICAgICBnX3JldHVybl9p
Zl9mYWlsKFdFQktJVF9JU19XRUJfSU5TUEVDVE9SKHdlYkluc3BlY3RvcikpOwogICAgIGdfcmV0
dXJuX2lmX2ZhaWwoc2NyaXB0KTsKIAogICAgIFdlYktpdFdlYkluc3BlY3RvclByaXZhdGUqIHBy
aXYgPSB3ZWJJbnNwZWN0b3ItPnByaXY7Ci0gICAgcHJpdi0+cGFnZS0+aW5zcGVjdG9yQ29udHJv
bGxlcigpLmV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoY2FsbElkLCBzY3JpcHQpOworICAgIHBy
aXYtPnBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5ldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5k
KHNjcmlwdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2ViaW5zcGVjdG9ycHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
Ymluc3BlY3RvcnByaXZhdGUuaAppbmRleCA2NGJhMDlhNWQ4NzM2ZDBlMzg0YTQwYTI4NDA4NTdl
NDc0ODU3MjRmLi42NzI1NGE5NGEzNGI5ZWM0NmExMzlmZWY3YjJhOTQxYTNiNjUyZmY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9ycHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3Jwcml2
YXRlLmgKQEAgLTMxLDcgKzMxLDcgQEAgdm9pZCB3ZWJraXRfd2ViX2luc3BlY3Rvcl9zZXRfd2Vi
X3ZpZXcoV2ViS2l0V2ViSW5zcGVjdG9yKiwgV2ViS2l0V2ViVmlldyopOwogCiB2b2lkIHdlYmtp
dF93ZWJfaW5zcGVjdG9yX3NldF9pbnNwZWN0ZWRfdXJpKFdlYktpdFdlYkluc3BlY3RvciosIGNv
bnN0IGdjaGFyKik7CiAKLVdFQktJVF9BUEkgdm9pZCB3ZWJraXRfd2ViX2luc3BlY3Rvcl9leGVj
dXRlX3NjcmlwdChXZWJLaXRXZWJJbnNwZWN0b3IqLCBsb25nIGNhbGxJZCwgY29uc3QgZ2NoYXIq
IHNjcmlwdCk7CitXRUJLSVRfQVBJIHZvaWQgd2Via2l0X3dlYl9pbnNwZWN0b3JfZXhlY3V0ZV9z
Y3JpcHQoV2ViS2l0V2ViSW5zcGVjdG9yKiwgY29uc3QgZ2NoYXIqIHNjcmlwdCk7CiAKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJJbnNwZWN0b3IubW0KaW5kZXgg
ZTRlOWFhZDZlYmUwZjQ5YWZhNmJkOTE3ZjE4NjA5ODViNzY5YjkyNS4uMzZjZDU0YTg2MThiNDAy
NjQ1Y2Y3ZWRhOWQ5MWRlMmRmYzJkNzU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJ
bnNwZWN0b3IvV2ViSW5zcGVjdG9yLm1tCkBAIC0xODIsMTAgKzE4MiwxMCBAQCAtICh2b2lkKWRl
dGFjaDooaWQpc2VuZGVyCiAgICAgW19mcm9udGVuZCBkZXRhY2hdOwogfQogCi0tICh2b2lkKWV2
YWx1YXRlSW5Gcm9udGVuZDooaWQpc2VuZGVyIGNhbGxJZDoobG9uZyljYWxsSWQgc2NyaXB0OihO
U1N0cmluZyAqKXNjcmlwdAorLSAodm9pZClldmFsdWF0ZUluRnJvbnRlbmQ6KGlkKXNlbmRlciBz
Y3JpcHQ6KE5TU3RyaW5nICopc2NyaXB0CiB7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBjb3JlKF93
ZWJWaWV3KSkKLSAgICAgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmV2YWx1YXRlRm9y
VGVzdEluRnJvbnRlbmQoY2FsbElkLCBzY3JpcHQpOworICAgICAgICBwYWdlLT5pbnNwZWN0b3JD
b250cm9sbGVyKCkuZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChzY3JpcHQpOwogfQogCiAtICh2
b2lkKXNldEZyb250ZW5kOihXZWJJbnNwZWN0b3JGcm9udGVuZCAqKWZyb250ZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYkluc3BlY3RvclByaXZhdGUuaApp
bmRleCAzZDkyNGQ2MTI5YjAxM2QwNzJkMWU2NDI5MTA1NTBiNGNhZmJlMGViLi5mNzUzMDMxMTAw
MWQxYWZlMTgyZWMxMWQ5ZjViZjNlNzk1YmJkMGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkluc3BlY3Rvci9XZWJJbnNwZWN0b3JQcml2YXRlLmgKQEAgLTMzLDcgKzMzLDcg
QEAKIEBjbGFzcyBXZWJJbnNwZWN0b3JGcm9udGVuZDsKIAogQGludGVyZmFjZSBXZWJJbnNwZWN0
b3IgKFdlYlByaXZhdGUpCi0tICh2b2lkKWV2YWx1YXRlSW5Gcm9udGVuZDooaWQpc2VuZGVyIGNh
bGxJZDoobG9uZyljYWxsSWQgc2NyaXB0OihOU1N0cmluZyAqKXNjcmlwdDsKKy0gKHZvaWQpZXZh
bHVhdGVJbkZyb250ZW5kOihpZClzZW5kZXIgc2NyaXB0OihOU1N0cmluZyAqKXNjcmlwdDsKIC0g
KHZvaWQpc2hvd1dpbmRvdzsKIC0gKHZvaWQpc2V0RnJvbnRlbmQ6KFdlYkluc3BlY3RvckZyb250
ZW5kICopZnJvbnRlbmQ7CiAtICh2b2lkKXJlbGVhc2VGcm9udGVuZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJJ
bnNwZWN0b3IuY3BwCmluZGV4IGZkNThmZDZhMDg0NTU3NzAxZDAwZDY2NDczYzRiZDVhM2FlNjll
NjQuLmQwMzMwY2QxNmRiYTMxMmY0NzcxMTZiNTk0YzI2ZjkyMGY1YmJkOWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC93
aW4vV2ViSW5zcGVjdG9yLmNwcApAQCAtMjM3LDcgKzIzNyw3IEBAIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgV2ViSW5zcGVjdG9yOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChCT09M
IGVuYWJsCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
IFdlYkluc3BlY3Rvcjo6ZXZhbHVhdGVJbkZyb250ZW5kKFVMT05HIGNhbGxJZCwgQlNUUiBiU2Ny
aXB0KQorSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSAgV2ViSW5zcGVjdG9yOjpldmFsdWF0ZUlu
RnJvbnRlbmQoQlNUUiBiU2NyaXB0KQogewogICAgIGlmICghbV93ZWJWaWV3KQogICAgICAgICBy
ZXR1cm4gU19PSzsKQEAgLTI0Nyw3ICsyNDcsNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
ICBXZWJJbnNwZWN0b3I6OmV2YWx1YXRlSW5Gcm9udGVuZChVTE9ORyBjYWxsSWQsIEJTVFIgYgog
ICAgICAgICByZXR1cm4gU19PSzsKIAogICAgIFN0cmluZyBzY3JpcHQoYlNjcmlwdCwgU3lzU3Ry
aW5nTGVuKGJTY3JpcHQpKTsKLSAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZXZhbHVh
dGVGb3JUZXN0SW5Gcm9udGVuZChjYWxsSWQsIHNjcmlwdCk7CisgICAgcGFnZS0+aW5zcGVjdG9y
Q29udHJvbGxlcigpLmV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoc2NyaXB0KTsKICAgICByZXR1
cm4gU19PSzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViSW5zcGVjdG9y
LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0b3IuaAppbmRleCA0NjQ1OTk5MGEzNmFm
MjE5Y2RkN2M4OWI2Yjk1NGNhNWQxNWU4ZjhkLi5hYTQwYzlhYjExN2VkZWEwYmRmYTI3NGVjYjQy
MDE0NTJjNGMwNzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0b3IuaApAQCAtNjMsNyArNjMsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGlzSmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQoQk9PTCogaXNQcm9maWxpbmdFbmFibGVkKTsKICAgICB2aXJ0
dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQoQk9PTCk7CiAKLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZXZhbHVh
dGVJbkZyb250ZW5kKFVMT05HIGNhbGxJZCwgQlNUUiBzY3JpcHQpOworICAgIHZpcnR1YWwgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBldmFsdWF0ZUluRnJvbnRlbmQoQlNUUiBzY3JpcHQpOwog
CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGlzVGltZWxpbmVQcm9maWxp
bmdFbmFibGVkKEJPT0wqIGlzRW5hYmxlZCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIHNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZChCT09MKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJ
bnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZUluc3BlY3Rvci5jcHAKaW5kZXggNTU0Y2YzY2Q4OTY5MzMyZmRiZDMzOGMx
M2E3NjMxMjJjMzdhZjEwMi4uYjZhYWVhYWZlYzExMjM1ZDVhZTI1YzgyMWZiMjNjNmJjNTE1NGNh
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZUluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5jcHAKQEAgLTU2LDEwICs1
NiwxMCBAQCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yQ2xvc2UoV0tCdW5kbGVJbnNwZWN0b3JSZWYg
aW5zcGVjdG9yUmVmKQogI2VuZGlmCiB9CiAKLXZvaWQgV0tCdW5kbGVJbnNwZWN0b3JFdmFsdWF0
ZVNjcmlwdEZvclRlc3QoV0tCdW5kbGVJbnNwZWN0b3JSZWYgaW5zcGVjdG9yUmVmLCBsb25nIGNh
bGxJRCwgV0tTdHJpbmdSZWYgc2NyaXB0KQordm9pZCBXS0J1bmRsZUluc3BlY3RvckV2YWx1YXRl
U2NyaXB0Rm9yVGVzdChXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0b3JSZWYsIFdLU3RyaW5n
UmVmIHNjcmlwdCkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIHRvSW1wbChpbnNwZWN0
b3JSZWYpLT5ldmFsdWF0ZVNjcmlwdEZvclRlc3QoY2FsbElELCB0b1dURlN0cmluZyhzY3JpcHQp
KTsKKyAgICB0b0ltcGwoaW5zcGVjdG9yUmVmKS0+ZXZhbHVhdGVTY3JpcHRGb3JUZXN0KHRvV1RG
U3RyaW5nKHNjcmlwdCkpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNw
ZWN0b3IuaAppbmRleCAyMGQwNzA5OTU5MDljNTBkNzA3MWJkNmNlZTcwYmM2ZGMyOGNhY2ZkLi4x
ZWQzY2VhZWRhN2ExNjZmZDAyNjRmMDA0ZGZlMzEyN2MzNmNiY2VlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVj
dG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZUluc3BlY3Rvci5oCkBAIC00MSw3ICs0MSw3IEBAIFdLX0VYUE9SVCBXS1R5cGVJ
RCBXS0J1bmRsZUluc3BlY3RvckdldFR5cGVJRCgpOwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVJ
bnNwZWN0b3JTaG93KFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3Rvcik7CiBXS19FWFBPUlQg
dm9pZCBXS0J1bmRsZUluc3BlY3RvckNsb3NlKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3Rv
cik7CiAKLVdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yRXZhbHVhdGVTY3JpcHRGb3JU
ZXN0KFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvciwgbG9uZyBjYWxsSUQsIFdLU3RyaW5n
UmVmIHNjcmlwdCk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZUluc3BlY3RvckV2YWx1YXRlU2Ny
aXB0Rm9yVGVzdChXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0b3IsIFdLU3RyaW5nUmVmIHNj
cmlwdCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZUluc3BlY3RvclNldFBhZ2VQcm9maWxpbmdF
bmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvciwgYm9vbCBlbmFibGVkKTsKIAog
I2lmZGVmIF9fY3BsdXNwbHVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IDYwYzhmOTUxZDI1N2VkYjA5MDJjYjBiNjdlYzkx
NjliMmYyNzE4Y2YuLmFmMjZkMDBlNjkyMGM2NjQzOGVjNGI5MzFhMTBlNzZkY2NlYjllNTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3Iu
Y3BwCkBAIC0yMzEsOSArMjMxLDkgQEAgdm9pZCBXZWJJbnNwZWN0b3I6OmRldGFjaGVkKCkKICAg
ICAgICAgbV9mcm9udGVuZENsaWVudC0+c2V0QXR0YWNoZWRXaW5kb3coSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQ6OlVORE9DS0VEKTsKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3I6OmV2YWx1YXRlU2Ny
aXB0Rm9yVGVzdChsb25nIGNhbGxJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQpCit2b2lkIFdlYklu
c3BlY3Rvcjo6ZXZhbHVhdGVTY3JpcHRGb3JUZXN0KGNvbnN0IFN0cmluZyYgc2NyaXB0KQogewot
ICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmV2YWx1YXRlRm9y
VGVzdEluRnJvbnRlbmQoY2FsbElELCBzY3JpcHQpOworICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLmV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoc2NyaXB0KTsK
IH0KIAogdm9pZCBXZWJJbnNwZWN0b3I6OnNob3dDb25zb2xlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaAppbmRleCBmMjdkNWViOTE0MGZl
Mzc5MWRkODU3OGUwNTI1YWNkNjczYTE0NjY2Li5jOTNiY2IzZmNhZmUxMTU4MmQ2MDRmZGNhZDI3
MmM0ZjkyNThjMDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGF0dGFj
aGVkUmlnaHQoKTsKICAgICB2b2lkIGRldGFjaGVkKCk7CiAKLSAgICB2b2lkIGV2YWx1YXRlU2Ny
aXB0Rm9yVGVzdChsb25nIGNhbGxJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQpOworICAgIHZvaWQg
ZXZhbHVhdGVTY3JpcHRGb3JUZXN0KGNvbnN0IFN0cmluZyYgc2NyaXB0KTsKIAogICAgIHZvaWQg
c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzdGFydFBhZ2VQ
cm9maWxpbmcoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBiMjM2MmFkYjE0YjFkNjM5ZDhmNzAzMmQwMDJmNTgyYzAzM2E2NmNhLi40ZDk2OGNm
NmUzN2I1ZDExZjkzNTBmZTNjZDk2MDExMzM1N2U0MWNhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTQtMDMtMTIg
IEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
UmVtb3ZlIHVudXNlZCBjYWxsSWQgcGFyYW1ldGVyIGZyb20gZXZhbHVhdGVJbldlYkluc3BlY3Rv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NzQ0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKGV2YWx1YXRlSW5XZWJJbnNwZWN0
b3JDYWxsYmFjayk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcDoKKyAgICAgICAgKFRl
c3RSdW5uZXI6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OmV2YWx1YXRl
SW5XZWJJbnNwZWN0b3IpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVy
TWFjLm1tOgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZXZhbHVhdGVJbldlYkluc3BlY3Rvcik6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwOgorICAgICAgICAo
VGVzdFJ1bm5lcjo6ZXZhbHVhdGVJbldlYkluc3BlY3Rvcik6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAg
ICAoV1RSOjpUZXN0UnVubmVyOjpldmFsdWF0ZUluV2ViSW5zcGVjdG9yKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKwogMjAxNC0wMy0x
MiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZC4gRml4IEdUSysgY21ha2UgYnVpbGQgYWZ0ZXIgcjE2NTQ4OC4KZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdFJ1bm5lci5jcHAKaW5kZXggN2IyNDk3NzBlOTM4NjUyNDdiYzAzZTE2N2EyNmRj
OTkxNTgyYWNmOS4uYmI4Nzk2MzQ5ZDlmYjFhMWY0ZjZlYTMyODQxZTVkZjBjNTgyNjRkZCAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKQEAgLTE1NzksMTIgKzE1NzksMTAgQEAgc3Rh
dGljIEpTVmFsdWVSZWYgY2xvc2VXZWJJbnNwZWN0b3JDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnUKIHN0YXRpYyBKU1ZhbHVlUmVmIGV2YWx1YXRlSW5XZWJJbnNw
ZWN0b3JDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgVGVzdFJ1
bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFBy
aXZhdGUodGhpc09iamVjdCkpOwotICAgIGRvdWJsZSBjYWxsSWQgPSBKU1ZhbHVlVG9OdW1iZXIo
Y29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pOwotICAgIEFTU0VSVCghKmV4Y2VwdGlv
bik7Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHNjcmlwdChBZG9wdCwgSlNWYWx1ZVRv
U3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMV0sIGV4Y2VwdGlvbikpOworICAgIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBzY3JpcHQoQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29u
dGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKICAgICBBU1NFUlQoISpleGNlcHRpb24p
OwogCi0gICAgY29udHJvbGxlci0+ZXZhbHVhdGVJbldlYkluc3BlY3RvcihzdGF0aWNfY2FzdDxs
b25nPihjYWxsSWQpLCBzY3JpcHQuZ2V0KCkpOworICAgIGNvbnRyb2xsZXItPmV2YWx1YXRlSW5X
ZWJJbnNwZWN0b3Ioc2NyaXB0LmdldCgpKTsKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoY29udGV4dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RS
dW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAppbmRleCA4ODJjMGU5
NmNhZjJiMWUzZDFlNTQyNjhhZmFiNmEzMDcyMWYyM2RjLi44ZGNkMTk3ZmRjMzJmNTZjMmRkNWNk
M2JkY2NhOWM3M2JhNzc3OGU5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCkBAIC0zMDcs
NyArMzA3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChi
b29sKTsKICAgICB2b2lkIHNob3dXZWJJbnNwZWN0b3IoKTsKICAgICB2b2lkIGNsb3NlV2ViSW5z
cGVjdG9yKCk7Ci0gICAgdm9pZCBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGxvbmcgY2FsbElkLCBK
U1N0cmluZ1JlZiBzY3JpcHQpOworICAgIHZvaWQgZXZhbHVhdGVJbldlYkluc3BlY3RvcihKU1N0
cmluZ1JlZiBzY3JpcHQpOwogICAgIHZvaWQgZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQo
dW5zaWduZWQgd29ybGRJRCwgSlNPYmplY3RSZWYgZ2xvYmFsT2JqZWN0LCBKU1N0cmluZ1JlZiBz
Y3JpcHQpOwogICAgIHZvaWQgZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGRBbmRSZXR1cm5W
YWx1ZSh1bnNpZ25lZCB3b3JsZElELCBKU09iamVjdFJlZiBnbG9iYWxPYmplY3QsIEpTU3RyaW5n
UmVmIHNjcmlwdCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0
UnVubmVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNw
cAppbmRleCA3ZmU5M2QzZWZmNzAxYzM4MmQ0YjFhMGFiZjc2Nzg1YzUxYjYxMTMxLi5jNTAyOTA4
N2E2YjI3ZmFmNDllY2I3YzNjODEyZjk0MmMyMmI0MjliIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCkBAIC02ODcsOSArNjg3LDkgQEAgdm9pZCBUZXN0UnVu
bmVyOjpjbG9zZVdlYkluc3BlY3RvcigpCiAgICAgZXdrX3ZpZXdfaW5zcGVjdG9yX2Nsb3NlKGJy
b3dzZXItPm1haW5WaWV3KCkpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OmV2YWx1YXRlSW5XZWJJ
bnNwZWN0b3IobG9uZyBjYWxsSWQsIEpTU3RyaW5nUmVmIHNjcmlwdCkKK3ZvaWQgVGVzdFJ1bm5l
cjo6ZXZhbHVhdGVJbldlYkluc3BlY3RvcihKU1N0cmluZ1JlZiBzY3JpcHQpCiB7Ci0gICAgRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsOjpldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGJyb3dzZXItPm1h
aW5WaWV3KCksIGNhbGxJZCwgc2NyaXB0LT5zdHJpbmcoKSk7CisgICAgRHVtcFJlbmRlclRyZWVT
dXBwb3J0RWZsOjpldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGJyb3dzZXItPm1haW5WaWV3KCksIHNj
cmlwdC0+c3RyaW5nKCkpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OmV2YWx1YXRlU2NyaXB0SW5J
c29sYXRlZFdvcmxkQW5kUmV0dXJuVmFsdWUodW5zaWduZWQsIEpTT2JqZWN0UmVmLCBKU1N0cmlu
Z1JlZikKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3Rr
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAppbmRleCBj
MGIyZGVjYTJlMWNlMjM3ZDA0YjE3YjA4Mzc4ZWIwZThjOWZmMzk5Li4xNGM4NDQyYzhmMGVlMmVm
OTVjMzY0YzQyMWMwYWVmMmUxYWY3NmNlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rl
c3RSdW5uZXJHdGsuY3BwCkBAIC01MSw3ICs1MSw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKIGV4dGVybiAiQyIgewotdm9pZCB3ZWJraXRfd2ViX2luc3BlY3Rvcl9leGVj
dXRlX3NjcmlwdChXZWJLaXRXZWJJbnNwZWN0b3IqIGluc3BlY3RvciwgbG9uZyBjYWxsSWQsIGNv
bnN0IGdjaGFyKiBzY3JpcHQpOwordm9pZCB3ZWJraXRfd2ViX2luc3BlY3Rvcl9leGVjdXRlX3Nj
cmlwdChXZWJLaXRXZWJJbnNwZWN0b3IqIGluc3BlY3RvciwgY29uc3QgZ2NoYXIqIHNjcmlwdCk7
CiB9CiAKIFRlc3RSdW5uZXI6On5UZXN0UnVubmVyKCkKQEAgLTc2NywxMyArNzY3LDEzIEBAIHZv
aWQgVGVzdFJ1bm5lcjo6Y2xvc2VXZWJJbnNwZWN0b3IoKQogICAgIHdlYmtpdF93ZWJfaW5zcGVj
dG9yX2Nsb3NlKGluc3BlY3Rvcik7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6ZXZhbHVhdGVJbldl
Ykluc3BlY3Rvcihsb25nIGNhbGxJZCwgSlNTdHJpbmdSZWYgc2NyaXB0KQordm9pZCBUZXN0UnVu
bmVyOjpldmFsdWF0ZUluV2ViSW5zcGVjdG9yKEpTU3RyaW5nUmVmIHNjcmlwdCkKIHsKICAgICBX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gd2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcobWFp
bkZyYW1lKTsKICAgICBXZWJLaXRXZWJJbnNwZWN0b3IqIGluc3BlY3RvciA9IHdlYmtpdF93ZWJf
dmlld19nZXRfaW5zcGVjdG9yKHdlYlZpZXcpOwogICAgIGNoYXIqIHNjcmlwdFN0cmluZyA9IEpT
U3RyaW5nQ29weVVURjhDU3RyaW5nKHNjcmlwdCk7CiAKLSAgICB3ZWJraXRfd2ViX2luc3BlY3Rv
cl9leGVjdXRlX3NjcmlwdChpbnNwZWN0b3IsIGNhbGxJZCwgc2NyaXB0U3RyaW5nKTsKKyAgICB3
ZWJraXRfd2ViX2luc3BlY3Rvcl9leGVjdXRlX3NjcmlwdChpbnNwZWN0b3IsIHNjcmlwdFN0cmlu
Zyk7CiAgICAgZ19mcmVlKHNjcmlwdFN0cmluZyk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL1Rlc3RSdW5uZXJNYWMubW0KaW5kZXggNjQwMzMzMWI4OGM1NGRmOGI3ODg3YTE0NTYwYzJi
MTY5ZTRjYzgzNS4uMWQyMWE2NzJlNGNkOTRkNzVlN2E5MmNlYTIwMDI5NWFmZTM5MDQ4ZiAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KQEAgLTgyOSwxMiArODI5
LDEyIEBAIHZvaWQgVGVzdFJ1bm5lcjo6Y2xvc2VXZWJJbnNwZWN0b3IoKQogI2VuZGlmCiB9CiAK
LXZvaWQgVGVzdFJ1bm5lcjo6ZXZhbHVhdGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJZCwgSlNT
dHJpbmdSZWYgc2NyaXB0KQordm9pZCBUZXN0UnVubmVyOjpldmFsdWF0ZUluV2ViSW5zcGVjdG9y
KEpTU3RyaW5nUmVmIHNjcmlwdCkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4gc2NyaXB0Q0YgPSBhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5n
KGtDRkFsbG9jYXRvckRlZmF1bHQsIHNjcmlwdCkpOwogICAgIE5TU3RyaW5nICpzY3JpcHROUyA9
IChOU1N0cmluZyAqKXNjcmlwdENGLmdldCgpOwotICAgIFtbW21haW5GcmFtZSB3ZWJWaWV3XSBp
bnNwZWN0b3JdIGV2YWx1YXRlSW5Gcm9udGVuZDpuaWwgY2FsbElkOmNhbGxJZCBzY3JpcHQ6c2Ny
aXB0TlNdOworICAgIFtbW21haW5GcmFtZSB3ZWJWaWV3XSBpbnNwZWN0b3JdIGV2YWx1YXRlSW5G
cm9udGVuZDpuaWwgc2NyaXB0OnNjcmlwdE5TXTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggMjE4MjdkZTk2ZjcwZWVlOTkxMTll
NGY3ZWQ0OGRlODMzNzZjNzIwNi4uZmExYTJmMmU5YjA1ZTBjODliYTk3NTNkN2Y3MjQ0ZjNiYmU0
Nzg5YSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4u
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcApAQCAt
OTczLDcgKzk3Myw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6Y2xvc2VXZWJJbnNwZWN0b3IoKQogICAg
IGluc3BlY3Rvci0+Y2xvc2UoKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpldmFsdWF0ZUluV2Vi
SW5zcGVjdG9yKGxvbmcgY2FsbElkLCBKU1N0cmluZ1JlZiBzY3JpcHQpCit2b2lkIFRlc3RSdW5u
ZXI6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IoSlNTdHJpbmdSZWYgc2NyaXB0KQogewogICAgIENP
TVB0cjxJV2ViVmlldz4gd2ViVmlldzsKICAgICBpZiAoRkFJTEVEKGZyYW1lLT53ZWJWaWV3KCZ3
ZWJWaWV3KSkpCkBAIC05OTEsNyArOTkxLDcgQEAgdm9pZCBUZXN0UnVubmVyOjpldmFsdWF0ZUlu
V2ViSW5zcGVjdG9yKGxvbmcgY2FsbElkLCBKU1N0cmluZ1JlZiBzY3JpcHQpCiAgICAgaWYgKCFp
bnNwZWN0b3JQcml2YXRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbnNwZWN0b3JQcml2YXRl
LT5ldmFsdWF0ZUluRnJvbnRlbmQoY2FsbElkLCBic3RyVChzY3JpcHQpLkdldEJTVFIoKSk7Cisg
ICAgaW5zcGVjdG9yUHJpdmF0ZS0+ZXZhbHVhdGVJbkZyb250ZW5kKGJzdHJUKHNjcmlwdCkuR2V0
QlNUUigpKTsKIH0KIAogdHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBDT01QdHI8SVdlYlNjcmlw
dFdvcmxkPiA+IFdvcmxkTWFwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggZTI5ZGE1
MWY5YWUzZDc5ODg0ODY1NWJlNDdlNTk2MjI1NTBjYmRiNS4uYmI5YTdhMGYwZWY2MmQ1YzVlNTA5
MmJjZTU0ODFkOTZjOTNkNGZlZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0xMjMs
NyArMTIzLDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIC8vIEZvciBXZWIgSW5zcGVj
dG9yIHRlc3RzCiAgICAgdm9pZCBzaG93V2ViSW5zcGVjdG9yKCk7CiAgICAgdm9pZCBjbG9zZVdl
Ykluc3BlY3RvcigpOwotICAgIHZvaWQgZXZhbHVhdGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJ
RCwgRE9NU3RyaW5nIHNjcmlwdCk7CisgICAgdm9pZCBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKERP
TVN0cmluZyBzY3JpcHQpOwogCiAgICAgdm9pZCBzZXRQT1NJWExvY2FsZShET01TdHJpbmcgbG9j
YWxlKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5jcHAKaW5kZXggYzEzZmMxMmM2ZDU2YmVlNTlhY2VmZjRmMWM3MDNmZjc1MGI1
NTEwNi4uNGQzMWFlNzRlYjI5Y2FjNmQzYmM4YzcxODdjYjgxYzMyYjBjZGI5NCAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
CkBAIC00MTIsMTEgKzQxMiwxMSBAQCB2b2lkIFRlc3RSdW5uZXI6OmNsb3NlV2ViSW5zcGVjdG9y
KCkKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQogfQogCi12b2lkIFRlc3RSdW5uZXI6OmV2
YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSUQsIEpTU3RyaW5nUmVmIHNjcmlwdCkKK3Zv
aWQgVGVzdFJ1bm5lcjo6ZXZhbHVhdGVJbldlYkluc3BlY3RvcihKU1N0cmluZ1JlZiBzY3JpcHQp
CiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
c2NyaXB0V0sgPSB0b1dLKHNjcmlwdCk7Ci0gICAgV0tCdW5kbGVJbnNwZWN0b3JFdmFsdWF0ZVNj
cmlwdEZvclRlc3QoV0tCdW5kbGVQYWdlR2V0SW5zcGVjdG9yKEluamVjdGVkQnVuZGxlOjpzaGFy
ZWQoKS5wYWdlKCktPnBhZ2UoKSksIGNhbGxJRCwgc2NyaXB0V0suZ2V0KCkpOworICAgIFdLQnVu
ZGxlSW5zcGVjdG9yRXZhbHVhdGVTY3JpcHRGb3JUZXN0KFdLQnVuZGxlUGFnZUdldEluc3BlY3Rv
cihJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCkpLCBzY3JpcHRXSy5nZXQo
KSk7CiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCAzNWUxMzhjNmJk
Y2QyMzZlNDg0ZjVhNTZkN2Q5Y2FlYjdhMjUxM2I0Li42ZWIzNzVhN2I4MjdlZTU4NzhjZTQxMWNj
MDI1MDBlNDgzM2MzNzkzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMTk4LDcgKzE5OCw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgc2hvd1dlYkluc3BlY3RvcigpOwogICAgIHZvaWQgY2xvc2VXZWJJbnNwZWN0b3IoKTsK
LSAgICB2b2lkIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSWQsIEpTU3RyaW5nUmVm
IHNjcmlwdCk7CisgICAgdm9pZCBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKEpTU3RyaW5nUmVmIHNj
cmlwdCk7CiAKICAgICB2b2lkIHNldFBPU0lYTG9jYWxlKEpTU3RyaW5nUmVmKTsKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDk3Y2IxYTRhZDRkNjc0ZmJmMzdiODk1ZTU2OGE5MTVlMDQ0N2NmMTkuLjM2OTI1OTU3MWFhNDUw
Njc1M2JlOWU3OGVhYzI5ODc4N2JjNmY5MDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAxNC0w
My0xMiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIgSW5zcGVj
dG9yOiBSZW1vdmUgdW51c2VkIGNhbGxJZCBwYXJhbWV0ZXIgZnJvbSBldmFsdWF0ZUluV2ViSW5z
cGVjdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mjk3NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGluc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qczoKKyAgICAgICAgKHJ1blRlc3QpOiBTdG9wIHBh
c3NpbmcgYSBkdW1teSBhcmd1bWVudCB0byBUZXN0UnVubmVyLmV2YWx1YXRlSW5XZWJJbnNwZWN0
b3IuCisKKzIwMTQtMDMtMTIgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogY29udmVydCBtb2RlbCB0ZXN0cyBhbmQgaW5zcGVjdG9yLXRlc3Qu
anMgdG8gdXNlIFRlc3QuaHRtbAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI5MjE3CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cwppbmRleCA0MzU5ZTlmOGIyYTdlZDUxMjcwNGQyZDVmNDJjMzQwZjY3NThkY2FkLi5iZTRiZjEw
NjVkNmYzMGYyOGExNTQ0MTIzYWFlN2FjNjRmMzI5YjcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzCkBAIC04OCwxMSArODgsMTEgQEAgZnVuY3Rpb24gcnVuVGVzdCgp
CiAgICAgfQogCiAgICAgdmFyIGNvZGVTdHJpbmdUb0V2YWx1YXRlID0gIigiICsgcnVuSW5pdGlh
bGl6YXRpb25NZXRob2RzSW5Gcm9udGVuZC50b1N0cmluZygpICsgIikoWyIgKyBJbnNwZWN0b3JU
ZXN0UHJveHkuX2luaXRpYWxpemVycyArICJdKTsiOwotICAgIHRlc3RSdW5uZXIuZXZhbHVhdGVJ
bldlYkluc3BlY3RvcigwLCBjb2RlU3RyaW5nVG9FdmFsdWF0ZSk7CisgICAgdGVzdFJ1bm5lci5l
dmFsdWF0ZUluV2ViSW5zcGVjdG9yKGNvZGVTdHJpbmdUb0V2YWx1YXRlKTsKIAogICAgIC8vIGB0
ZXN0YCByZWZlcnMgdG8gYSBmdW5jdGlvbiBkZWZpbmVkIGluIGdsb2JhbCBzY29wZSBpbiB0aGUg
dGVzdCBIVE1MIHBhZ2UuCiAgICAgY29kZVN0cmluZ1RvRXZhbHVhdGUgPSAiKCIgKyBydW5UZXN0
TWV0aG9kSW5Gcm9udGVuZC50b1N0cmluZygpICsgIikoIiArIHRlc3QudG9TdHJpbmcoKSArICIp
OyI7Ci0gICAgdGVzdFJ1bm5lci5ldmFsdWF0ZUluV2ViSW5zcGVjdG9yKDAsIGNvZGVTdHJpbmdU
b0V2YWx1YXRlKTsKKyAgICB0ZXN0UnVubmVyLmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IoY29kZVN0
cmluZ1RvRXZhbHVhdGUpOwogfQogCiBJbnNwZWN0b3JUZXN0UHJveHkuY29tcGxldGVUZXN0ID0g
ZnVuY3Rpb24oKQo=
</data>
<flag name="review"
          id="250798"
          type_id="1"
          status="+"
          setter="timothy"
    />
    <flag name="commit-queue"
          id="250804"
          type_id="3"
          status="+"
          setter="bburg"
    />
          </attachment>
      

    </bug>

</bugzilla>