<?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>81366</bug_id>
          
          <creation_ts>2012-03-16 10:27:44 -0700</creation_ts>
          <short_desc>Add a RenderMultiColumnBlock subclass for multi-column layout.</short_desc>
          <delta_ts>2012-03-16 12:55:59 -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>Layout and Rendering</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>580642</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-03-16 10:27:44 -0700</bug_when>
    <thetext>Add RenderMultiColumnBlock to handle layout of multi-column blocks. This will allow most of the multi-column code that is polluting RenderBlock to be implemented in the subclass instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580647</commentid>
    <comment_count>1</comment_count>
      <attachid>132313</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-03-16 10:31:04 -0700</bug_when>
    <thetext>Created attachment 132313
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580655</commentid>
    <comment_count>2</comment_count>
      <attachid>132313</attachid>
    <who name="">mitz</who>
    <bug_when>2012-03-16 10:37:48 -0700</bug_when>
    <thetext>Comment on attachment 132313
Patch

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

&gt; Source/WebCore/rendering/RenderMultiColumnBlock.cpp:43
&gt; +    if (isAnonymousBlock())
&gt; +        return &quot;RenderMultiColumnBlock (anonymous)&quot;;

Just curious, can this case ever happen?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580663</commentid>
    <comment_count>3</comment_count>
      <attachid>132313</attachid>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2012-03-16 10:42:17 -0700</bug_when>
    <thetext>Comment on attachment 132313
Patch

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

&gt; Source/WebCore/rendering/RenderMultiColumnBlock.cpp:44
&gt; +    else if (isAnonymous())

drive-by nit: s/else if/if/ for consistency, considering that we know that isAnonymousBlock() and other previous checks are false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580735</commentid>
    <comment_count>4</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-03-16 11:41:18 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 132313 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=132313&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderMultiColumnBlock.cpp:44
&gt; &gt; +    else if (isAnonymous())
&gt; 
&gt; drive-by nit: s/else if/if/ for consistency, considering that we know that isAnonymousBlock() and other previous checks are false.

Yup, sure. This was cut-and-paste from RenderBlock, which has the same issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580737</commentid>
    <comment_count>5</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-03-16 11:42:33 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 132313 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=132313&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderMultiColumnBlock.cpp:43
&gt; &gt; +    if (isAnonymousBlock())
&gt; &gt; +        return &quot;RenderMultiColumnBlock (anonymous)&quot;;
&gt; 
&gt; Just curious, can this case ever happen?

Theoretically it will be possible to create anonymous multi-column layouts using CSS Page Templates, so I figured I might as well leave it in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580803</commentid>
    <comment_count>6</comment_count>
      <attachid>132347</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-03-16 12:31:19 -0700</bug_when>
    <thetext>Created attachment 132347
New patch just to test EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580808</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-16 12:33:23 -0700</bug_when>
    <thetext>Attachment 132347 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1
Source/WebCore/rendering/RenderMultiColumnBlock.h:35:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 16 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>580826</commentid>
    <comment_count>8</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-03-16 12:55:59 -0700</bug_when>
    <thetext>Fixed in r111048. Will watch bots.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132313</attachid>
            <date>2012-03-16 10:31:04 -0700</date>
            <delta_ts>2012-03-16 10:42:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>24289</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMTAyNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDEyLTAzLTE2ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODEzNjYKKyAgICAgICAgCisgICAgICAgIEFkZCBSZW5kZXJNdWx0
aUNvbHVtbkJsb2NrIHN1YmNsYXNzIG9mIFJlbmRlckJsb2NrLiBUaGlzIG5ldyBjbGFzcyB3aWxs
IGhvbGQgYWxsIG9mIHRoZSBtdWx0aS1jb2x1bW4KKyAgICAgICAgbG9naWMgKGFzIHdlbGwgYXMg
cGFpbnRpbmcvaGl0IHRlc3RpbmcpLiBUaGF0IHdheSB0aGUgY29sdW1uIGNvZGUgY2FuIGJlIGtl
cHQgb3V0IG9mIHRoZSBiYXNlIGNsYXNzCisgICAgICAgIGFuZCBiZSBtb3JlIGNsZWFubHkgZmFj
dG9yZWQuCisKKyAgICAgICAgUGF0Y2ggTm9kZTo6ZGlmZiBzbyB0aGF0IHdlIGRldGFjaCBhbmQg
cmUtYXR0YWNoIHRoZSByZW5kZXJlciBpZiBjb2x1bW4gY291bnRzIG9yIHdpZHRocyBjaGFuZ2UK
KyAgICAgICAgZnJvbSBhdXRvIHRvIG5vbi1hdXRvIChhbmQgdmljZSB2ZXJzYSkgdG8gZW5zdXJl
IHRoZSByaWdodCByZW5kZXJlciBnZXRzIG1hZGUuCisgICAgICAgIAorICAgICAgICBQYXRjaCBS
ZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCB0byBtYWtlIGEgUmVuZGVyTXVsdGlDb2x1bW5CbG9j
ayBpZiBlaXRoZXIgdGhlIGNvbHVtbiBjb3VudCBvcgorICAgICAgICBjb2x1bW4gd2lkdGggaXMg
bm9uLWF1dG8uCisgICAgICAgIAorICAgICAgICBQYXRjaCBSZW5kZXJCbG9jazo6Y2FsY0NvbHVt
bldpZHRoIHRvICJ0dXJuIG9mZiIgdGhlIG9sZCBpbXBsZW1lbnRhdGlvbiBvZiBjb2x1bW5zIGlm
IHRoZSBwcmVmIHRvIHVzZQorICAgICAgICB0aGUgbmV3IGNvbHVtbiBpbXBsZW1lbnRhdGlvbiBp
cyBzZXQuIFRoaXMgc2luZ2xlIGNob2tlcG9pbnQgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIGRp
c2FibGluZyB0aGUgb2xkCisgICAgICAgIGNvbHVtbnMgaW4gZmF2b3Igb2YgdGhlIG5ldy4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlZ2lvbkJhc2VkQ29sdW1u
c0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6cmVjYWxjU3R5bGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9j
dW1lbnQpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpkaWZmKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
Y2FsY0NvbHVtbldpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp1cGRhdGVG
aXJzdExldHRlclN0eWxlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5C
bG9jay5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNdWx0aUNvbHVtbkJsb2NrOjpSZW5kZXJNdWx0aUNvbHVtbkJsb2NrKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uQmxvY2s6OnJlbmRlck5hbWUpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChSZW5kZXJNdWx0aUNvbHVtbkJsb2NrKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
Y3JlYXRlT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6dXBkYXRlQmVm
b3JlQWZ0ZXJDb250ZW50KToKKwogMjAxMi0wMy0xNiAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEFkZCBvdmVyZHJhdyBtZXRyaWNzIGZv
ciB0ZXh0dXJlIHVwbG9hZHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMTA4
ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MTMyMyw2ICsxMzIzLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHJlbmRlcmluZy9SZW5k
ZXJNYXJxdWVlLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKICAgICByZW5k
ZXJpbmcvUmVuZGVyTWV0ZXIuY3BwCisgICAgcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxv
Y2suY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKICAgICByZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJQYXJ0LmNwcApJbmRl
eDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMTA4ODYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zNzAzLDYg
KzM3MDMsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZW51TGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0
ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0ZXIuaCBcCisgICAg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suY3BwIFwKKyAg
ICBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CShyZXZpc2lvbiAxMTA4ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtp
bmcgY29weSkKQEAgLTQ2MDIsNiArNDYwMiw4IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL1Jl
bmRlck1lbnVMaXN0LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJNZXRlci5jcHAn
LAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJNZXRlci5oJywKKyAgICAgICAgICAgICdy
ZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAnLAorICAgICAgICAgICAgJ3JlbmRl
cmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hp
bGRMaXN0LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclBhcnQuY3BwJywKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZp
c2lvbiAxMTA4ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzk2NDUsNiArMzk2NDUsNjIgQEAKIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJNZXRlci5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAg
ICAgICAgICAgIDxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyTXVs
dGlDb2x1bW5CbG9jay5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
UmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVi
dWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmgi
CisJCQkJPgorCQkJPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRl
cmluZ1xSZW5kZXJPYmplY3QuY3BwIgogCQkJCT4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDExMDg4NikKKysr
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtNTIwNiw2ICs1MjA2LDcgQEAKIAkJQkMzQzM5QjYwQzBEM0Q4RDAwNUY0RDdB
IC8qIEpTTWVkaWFMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDM0MzOUI0MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlhTGlzdC5jcHAgKi87
IH07CiAJCUJDM0MzOUI3MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlhTGlzdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzQzM5QjUwQzBEM0Q4RDAw
NUY0RDdBIC8qIEpTTWVkaWFMaXN0LmggKi87IH07CiAJCUJDNDM2OEU4MEMyMjZFMzIwMDVFRkI1
RiAvKiBSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzQzNjhFNzBDMjI2RTMyMDA1RUZCNUYgLyogUmVjdC5oICovOyB9OworCQlCQzQ1ODI3RjE1
MTI5OUMxMDA2MUE1NTYgLyogUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ1ODI3RTE1MTI5OUMxMDA2MUE1
NTYgLyogUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAgKi87IH07CiAJCUJDNDZDMUVFMEMwRERC
REYwMDIwQ0ZDMyAvKiBKU0NTU1J1bGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0NkMxRUQwQzBEREJERjAwMjBDRkMzIC8qIEpTQ1NT
UnVsZUN1c3RvbS5jcHAgKi87IH07CiAJCUJDNDZDMUZBMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NT
U0NoYXJzZXRSdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDNDZDMUYwMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU0NoYXJzZXRSdWxlLmNwcCAq
LzsgfTsKIAkJQkM0NkMxRkIwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTQ2hhcnNldFJ1bGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDZDMUYxMEMw
RERDOEYwMDIwQ0ZDMyAvKiBKU0NTU0NoYXJzZXRSdWxlLmggKi87IH07CkBAIC01NDYxLDYgKzU0
NjIsNyBAQAogCQlCQ0MwNjU4OTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU4
NTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5jcHAgKi87IH07CiAJCUJDQzA2
NThBMEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU4NjBGM0NFMkE3MDBDRDJEODcg
LyogSlNDbGllbnRSZWN0TGlzdC5oICovOyB9OwogCQlCQ0M0Mzg3ODBFODg2Q0M3MDA1MzNERDUg
LyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzQzODc3MEU4ODZDQzcwMDUzM0RENSAvKiBKU0hUTUxJ
bnB1dEVsZW1lbnRDdXN0b20uY3BwICovOyB9OworCQlCQ0M1MkZENjE1MTI5OEQyMDAzRjkxNEIg
LyogUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNDNTJGRDUxNTEyOThEMTAwM0Y5MTRCIC8qIFJlbmRlck11bHRp
Q29sdW1uQmxvY2suaCAqLzsgfTsKIAkJQkNDNTczMzUwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVBy
b2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDQzU3MzMzMEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50LmggKi87IH07
CiAJCUJDQzU3MzM2MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDNTczMzQwRDY5NUJC
RTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQubW0gKi87IH07CiAJCUJDQzU3MzM4MEQ2OTVC
RDcwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzU3MzM3MEQ2OTVCRDcwMDZFRjUxNyAv
KiBET01Qcm9ncmVzc0V2ZW50SW50ZXJuYWwuaCAqLzsgfTsKQEAgLTEyMjIyLDYgKzEyMjI0LDcg
QEAKIAkJQkMzQzM5QjQwQzBEM0Q4RDAwNUY0RDdBIC8qIEpTTWVkaWFMaXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhTGlzdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDM0MzOUI1MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlh
TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYUxpc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0MzY4RTcwQzIyNkUzMjAwNUVGQjVGIC8q
IFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlY3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0NTgyN0UxNTEyOTlDMTAwNjFBNTU2IC8qIFJlbmRl
ck11bHRpQ29sdW1uQmxvY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDNDZDMUVEMEMwRERCREYwMDIwQ0ZDMyAvKiBKU0NTU1J1bGVDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTUnVsZUN1c3RvbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNDZDMUYwMEMwRERDOEYwMDIwQ0ZDMyAvKiBK
U0NTU0NoYXJzZXRSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0NTU0NoYXJzZXRSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0
NkMxRjEwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTQ2hhcnNldFJ1bGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1NTQ2hhcnNldFJ1bGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTEyNDk4LDYgKzEyNTAxLDcgQEAKIAkJQkNDMDY1ODUwRjNDRTJBNzAw
Q0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNDbGllbnRSZWN0TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDQzA2NTg2MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ2xpZW50UmVjdExpc3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNDNDM4NzcwRTg4NkNDNzAwNTMzREQ1IC8qIEpTSFRN
TElucHV0RWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCQ0M1MkZENTE1MTI5OEQxMDAzRjkxNEIgLyogUmVuZGVyTXVsdGlDb2x1bW5CbG9j
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJNdWx0aUNvbHVtbkJs
b2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzU3MzMzMEQ2OTVCQkUwMDZF
RjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTVByb2dyZXNzRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkND
NTczMzQwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01Qcm9ncmVzc0V2ZW50Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0M1NzMzNzBENjk1QkQ3MDA2RUY1MTcgLyogRE9NUHJv
Z3Jlc3NFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERP
TVByb2dyZXNzRXZlbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjA2NzEsNiArMjA2NzUsOCBAQAogCQkJCUFCRERGRTc0MEE1QzZFNzAwMEEzRTExRCAvKiBSZW5k
ZXJNZW51TGlzdC5oICovLAogCQkJCUE0NTQ0MjRDMTE5QjM2ODcwMDlCRTkxMiAvKiBSZW5kZXJN
ZXRlci5jcHAgKi8sCiAJCQkJQTQ1NDQyNEQxMTlCMzY4NzAwOUJFOTEyIC8qIFJlbmRlck1ldGVy
LmggKi8sCisJCQkJQkNDNTJGRDUxNTEyOThEMTAwM0Y5MTRCIC8qIFJlbmRlck11bHRpQ29sdW1u
QmxvY2suaCAqLywKKwkJCQlCQzQ1ODI3RTE1MTI5OUMxMDA2MUE1NTYgLyogUmVuZGVyTXVsdGlD
b2x1bW5CbG9jay5jcHAgKi8sCiAJCQkJQkNFQTQ4NDAwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRl
ck9iamVjdC5jcHAgKi8sCiAJCQkJQkNFQTQ4NDEwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlck9i
amVjdC5oICovLAogCQkJCUJDNjBFRkI2MEYzM0EwRTcwMDgxMkE5MyAvKiBSZW5kZXJPYmplY3RD
aGlsZExpc3QuY3BwICovLApAQCAtMjQ1NzksNiArMjQ1ODUsNyBAQAogCQkJCUUxQ0RFOTIyMTUw
MTkxNjkwMDg2MkNDNSAvKiBBc3luY0ZpbGVTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1
MENFQkYxMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlDNUI0QzI0RDE1MDkyMzZDMDBBNkVGMzcgLyogV2ViQ29yZU5TVVJMRXh0cmFzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlCQ0M1MkZENjE1MTI5OEQyMDAzRjkxNEIgLyogUmVuZGVyTXVs
dGlDb2x1bW5CbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNzU2MCw2ICsyNzU2Nyw3IEBACiAJ
CQkJQzVCNEMyNEUxNTA5MjM2QzAwQTZFRjM3IC8qIFdlYkNvcmVOU1VSTEV4dHJhcy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTlCMkI3QUMxMTUwOTg1MEEwMDg5MzJDQyAvKiBNaWNyb0RhdGFJdGVt
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzE1N0YwNjIxNTBCNjU2NDAwNkVBQUJEIC8q
IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzQ1ODI3
RjE1MTI5OUMxMDA2MUE1NTYgLyogUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMTEwODg2KQorKysg
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxNSw2
ICsxMDE1LDExIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gRG9jdW1lbnQ6OmNyZWF0ZUVsZW0KICAg
ICByZXR1cm4gZS5yZWxlYXNlKCk7CiB9CiAKK2Jvb2wgRG9jdW1lbnQ6OnJlZ2lvbkJhc2VkQ29s
dW1uc0VuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBzZXR0aW5ncygpICYmIHNldHRpbmdz
KCktPnJlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQoKTsgCit9CisKIGJvb2wgRG9jdW1lbnQ6OmNz
c1JlZ2lvbnNFbmFibGVkKCkgY29uc3QKIHsKICAgICByZXR1cm4gc2V0dGluZ3MoKSAmJiBzZXR0
aW5ncygpLT5jc3NSZWdpb25zRW5hYmxlZCgpOyAKQEAgLTE2MDksNyArMTYxNCw3IEBAIHZvaWQg
RG9jdW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGMKICAgICAgICAgbV9oYXNOb2Rlc1dp
dGhQbGFjZWhvbGRlclN0eWxlID0gZmFsc2U7CiAgICAgICAgIAogICAgICAgICBSZWZQdHI8UmVu
ZGVyU3R5bGU+IGRvY3VtZW50U3R5bGUgPSBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3Vt
ZW50KHRoaXMsIG1fc3R5bGVTZWxlY3RvciA/IG1fc3R5bGVTZWxlY3Rvci0+Zm9udFNlbGVjdG9y
KCkgOiAwKTsKLSAgICAgICAgU3R5bGVDaGFuZ2UgY2ggPSBkaWZmKGRvY3VtZW50U3R5bGUuZ2V0
KCksIHJlbmRlcmVyKCktPnN0eWxlKCkpOworICAgICAgICBTdHlsZUNoYW5nZSBjaCA9IE5vZGU6
OmRpZmYoZG9jdW1lbnRTdHlsZS5nZXQoKSwgcmVuZGVyZXIoKS0+c3R5bGUoKSwgdGhpcyk7CiAg
ICAgICAgIGlmIChjaCAhPSBOb0NoYW5nZSkKICAgICAgICAgICAgIHJlbmRlcmVyKCktPnNldFN0
eWxlKGRvY3VtZW50U3R5bGUucmVsZWFzZSgpKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAkocmV2aXNpb24gMTEwODg2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM1NCw2ICszNTQsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBjc3NS
ZWdpb25zRW5hYmxlZCgpIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8V2ViS2l0TmFtZWRGbG93PiB3
ZWJraXRHZXRGbG93QnlOYW1lKGNvbnN0IFN0cmluZyYpOwogCisgICAgYm9vbCByZWdpb25CYXNl
ZENvbHVtbnNFbmFibGVkKCkgY29uc3Q7CisKICAgICAvKioKICAgICAgKiBSZXRyaWV2ZSBhbGwg
bm9kZXMgdGhhdCBpbnRlcnNlY3QgYSByZWN0IGluIHRoZSB3aW5kb3cncyBkb2N1bWVudCwgdW50
aWwgaXQgaXMgZnVsbHkgZW5jbG9zZWQgYnkKICAgICAgKiB0aGUgYm91bmRhcmllcyBvZiBhIG5v
ZGUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxMTA4ODYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNjMsNyArMTA2
Myw3IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2gKICAgICB9CiAg
ICAgaWYgKGhhc1BhcmVudFN0eWxlICYmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBuZWVkc1N0eWxl
UmVjYWxjKCkpKSB7CiAgICAgICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBzdHls
ZUZvclJlbmRlcmVyKCk7Ci0gICAgICAgIFN0eWxlQ2hhbmdlIGNoID0gZGlmZihjdXJyZW50U3R5
bGUuZ2V0KCksIG5ld1N0eWxlLmdldCgpKTsKKyAgICAgICAgU3R5bGVDaGFuZ2UgY2ggPSBOb2Rl
OjpkaWZmKGN1cnJlbnRTdHlsZS5nZXQoKSwgbmV3U3R5bGUuZ2V0KCksIGRvY3VtZW50KCkpOwog
ICAgICAgICBpZiAoY2ggPT0gRGV0YWNoIHx8ICFjdXJyZW50U3R5bGUpIHsKICAgICAgICAgICAg
IC8vIEZJWE1FOiBUaGUgc3R5bGUgZ2V0cyBjb21wdXRlZCB0d2ljZSBieSBjYWxsaW5nIGF0dGFj
aC4gV2UgY291bGQgZG8gYmV0dGVyIGlmIHdlIHBhc3NlZCB0aGUgc3R5bGUgYWxvbmcuCiAgICAg
ICAgICAgICByZWF0dGFjaCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMTEwODg2
KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NSw2
ICs4NSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50
UXVldWUuaCIKICNpbmNsdWRlICJTZWxlY3RvclF1ZXJ5LmgiCisjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiU2hhZG93VHJlZS5oIgogI2lu
Y2x1ZGUgIlN0YXRpY05vZGVMaXN0LmgiCkBAIC0zMDMsNyArMzA0LDcgQEAgdm9pZCBOb2RlOjpz
dG9wSWdub3JpbmdMZWFrcygpCiAjZW5kaWYKIH0KIAotTm9kZTo6U3R5bGVDaGFuZ2UgTm9kZTo6
ZGlmZihjb25zdCBSZW5kZXJTdHlsZSogczEsIGNvbnN0IFJlbmRlclN0eWxlKiBzMikKK05vZGU6
OlN0eWxlQ2hhbmdlIE5vZGU6OmRpZmYoY29uc3QgUmVuZGVyU3R5bGUqIHMxLCBjb25zdCBSZW5k
ZXJTdHlsZSogczIsIERvY3VtZW50KiBkb2MpCiB7CiAgICAgU3R5bGVDaGFuZ2UgY2ggPSBOb0lu
aGVyaXQ7CiAgICAgRURpc3BsYXkgZGlzcGxheTEgPSBzMSA/IHMxLT5kaXNwbGF5KCkgOiBOT05F
OwpAQCAtMzE2LDcgKzMxNywxMiBAQCBOb2RlOjpTdHlsZUNoYW5nZSBOb2RlOjpkaWZmKGNvbnN0
IFJlbmRlCiAgICAgYm9vbCBjb2xTcGFuMSA9IHMxICYmIHMxLT5jb2x1bW5TcGFuKCk7CiAgICAg
Ym9vbCBjb2xTcGFuMiA9IHMyICYmIHMyLT5jb2x1bW5TcGFuKCk7CiAgICAgCi0gICAgaWYgKGRp
c3BsYXkxICE9IGRpc3BsYXkyIHx8IGZsMSAhPSBmbDIgfHwgY29sU3BhbjEgIT0gY29sU3BhbjIg
fHwgKHMxICYmIHMyICYmICFzMS0+Y29udGVudERhdGFFcXVpdmFsZW50KHMyKSkpCisgICAgYm9v
bCBzcGVjaWZpZXNDb2x1bW5zMSA9IHMxICYmICghczEtPmhhc0F1dG9Db2x1bW5Db3VudCgpIHx8
ICFzMS0+aGFzQXV0b0NvbHVtbldpZHRoKCkpOworICAgIGJvb2wgc3BlY2lmaWVzQ29sdW1uczIg
PSBzMiAmJiAoIXMyLT5oYXNBdXRvQ29sdW1uQ291bnQoKSB8fCAhczItPmhhc0F1dG9Db2x1bW5X
aWR0aCgpKTsKKworICAgIGlmIChkaXNwbGF5MSAhPSBkaXNwbGF5MiB8fCBmbDEgIT0gZmwyIHx8
IGNvbFNwYW4xICE9IGNvbFNwYW4yIAorICAgICAgICB8fCAoc3BlY2lmaWVzQ29sdW1uczEgIT0g
c3BlY2lmaWVzQ29sdW1uczIgJiYgZG9jLT5zZXR0aW5ncygpLT5yZWdpb25CYXNlZENvbHVtbnNF
bmFibGVkKCkpCisgICAgICAgIHx8IChzMSAmJiBzMiAmJiAhczEtPmNvbnRlbnREYXRhRXF1aXZh
bGVudChzMikpKQogICAgICAgICBjaCA9IERldGFjaDsKICAgICBlbHNlIGlmICghczEgfHwgIXMy
KQogICAgICAgICBjaCA9IEluaGVyaXQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHJldmlzaW9uIDExMDg4
NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw3
ICsxNDEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZHVtcFN0YXRpc3RpY3MoKTsKIAog
ICAgIGVudW0gU3R5bGVDaGFuZ2UgeyBOb0NoYW5nZSwgTm9Jbmhlcml0LCBJbmhlcml0LCBEZXRh
Y2gsIEZvcmNlIH07ICAgIAotICAgIHN0YXRpYyBTdHlsZUNoYW5nZSBkaWZmKGNvbnN0IFJlbmRl
clN0eWxlKiwgY29uc3QgUmVuZGVyU3R5bGUqKTsKKyAgICBzdGF0aWMgU3R5bGVDaGFuZ2UgZGlm
Zihjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IFJlbmRlclN0eWxlKiwgRG9jdW1lbnQqKTsKIAog
ICAgIHZpcnR1YWwgfk5vZGUoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCShyZXZpc2lvbiAxMTA4ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00ODg0LDcgKzQ4ODQsMTAgQEAg
aW50IFJlbmRlckJsb2NrOjpjb2x1bW5HYXAoKSBjb25zdAogfQogCiB2b2lkIFJlbmRlckJsb2Nr
OjpjYWxjQ29sdW1uV2lkdGgoKQoteyAgICAKK3sgICAKKyAgICBpZiAoZG9jdW1lbnQoKS0+cmVn
aW9uQmFzZWRDb2x1bW5zRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKICAgICAvLyBDYWxj
dWxhdGUgb3VyIGNvbHVtbiB3aWR0aCBhbmQgY29sdW1uIGNvdW50LgogICAgIC8vIEZJWE1FOiBD
YW4gb3ZlcmZsb3cgb24gZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1ub3QtcmVtb3ZlZC1mcm9tLW5l
eHQtc2libGluZzQuaHRtbCwgc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02ODc0NAogICAgIHVuc2lnbmVkIGRlc2lyZWRDb2x1bW5Db3VudCA9IDE7CkBAIC02MDAw
LDcgKzYwMDMsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVGaXJzdExldHRlclN0eWxlCiAg
ICAgUmVuZGVyU3R5bGUqIHBzZXVkb1N0eWxlID0gc3R5bGVGb3JGaXJzdExldHRlcihmaXJzdExl
dHRlckJsb2NrLCBmaXJzdExldHRlckNvbnRhaW5lcik7CiAgICAgQVNTRVJUKGZpcnN0TGV0dGVy
LT5pc0Zsb2F0aW5nKCkgfHwgZmlyc3RMZXR0ZXItPmlzSW5saW5lKCkpOwogCi0gICAgaWYgKE5v
ZGU6OmRpZmYoZmlyc3RMZXR0ZXItPnN0eWxlKCksIHBzZXVkb1N0eWxlKSA9PSBOb2RlOjpEZXRh
Y2gpIHsKKyAgICBpZiAoTm9kZTo6ZGlmZihmaXJzdExldHRlci0+c3R5bGUoKSwgcHNldWRvU3R5
bGUsIGRvY3VtZW50KCkpID09IE5vZGU6OkRldGFjaCkgewogICAgICAgICAvLyBUaGUgZmlyc3Qt
bGV0dGVyIHJlbmRlcmVyIG5lZWRzIHRvIGJlIHJlcGxhY2VkLiBDcmVhdGUgYSBuZXcgcmVuZGVy
ZXIgb2YgdGhlIHJpZ2h0IHR5cGUuCiAgICAgICAgIFJlbmRlck9iamVjdCogbmV3Rmlyc3RMZXR0
ZXI7CiAgICAgICAgIGlmIChwc2V1ZG9TdHlsZS0+ZGlzcGxheSgpID09IElOTElORSkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9j
ay5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVs
dGlDb2x1bW5CbG9jay5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUmVuZGVyTXVsdGlDb2x1bW5CbG9jazo6UmVuZGVyTXVsdGlDb2x1
bW5CbG9jayhOb2RlKiBub2RlKQorICAgIDogUmVuZGVyQmxvY2sobm9kZSkKK3sKK30KKworY29u
c3QgY2hhciogUmVuZGVyTXVsdGlDb2x1bW5CbG9jazo6cmVuZGVyTmFtZSgpIGNvbnN0Cit7ICAg
IAorICAgIGlmIChpc0Zsb2F0aW5nKCkpCisgICAgICAgIHJldHVybiAiUmVuZGVyTXVsdGlDb2x1
bW5CbG9jayAoZmxvYXRpbmcpIjsKKyAgICBpZiAoaXNQb3NpdGlvbmVkKCkpCisgICAgICAgIHJl
dHVybiAiUmVuZGVyTXVsdGlDb2x1bW5CbG9jayAocG9zaXRpb25lZCkiOworICAgIGlmIChpc0Fu
b255bW91c0Jsb2NrKCkpCisgICAgICAgIHJldHVybiAiUmVuZGVyTXVsdGlDb2x1bW5CbG9jayAo
YW5vbnltb3VzKSI7CisgICAgZWxzZSBpZiAoaXNBbm9ueW1vdXMoKSkKKyAgICAgICAgcmV0dXJu
ICJSZW5kZXJNdWx0aUNvbHVtbkJsb2NrIChnZW5lcmF0ZWQpIjsKKyAgICBpZiAoaXNSZWxQb3Np
dGlvbmVkKCkpCisgICAgICAgIHJldHVybiAiUmVuZGVyTXVsdGlDb2x1bW5CbG9jayAocmVsYXRp
dmUgcG9zaXRpb25lZCkiOworICAgIHJldHVybiAiUmVuZGVyTXVsdGlDb2x1bW5CbG9jayI7Cit9
CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJs
b2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRp
Q29sdW1uQmxvY2suaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKwor
I2lmbmRlZiBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrX2gKKyNkZWZpbmUgUmVuZGVyTXVsdGlDb2x1
bW5CbG9ja19oCisKKyNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFJlbmRlck11bHRpQ29sdW1uQmxvY2sgOiBwdWJsaWMgUmVuZGVyQmxvY2sK
K3sKK3B1YmxpYzoKKyAgICBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrKE5vZGUqKTsKKyAgICAKK3By
aXZhdGU6CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Q7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZW5kZXJNdWx0aUNvbHVtbkJs
b2NrX2gKKwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJ
KHJldmlzaW9uIDExMDg4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiUmVuZGVy
SW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0
SXRlbS5oIgorI2luY2x1ZGUgIlJlbmRlck11bHRpQ29sdW1uQmxvY2suaCIKICNpbmNsdWRlICJS
ZW5kZXJSZWdpb24uaCIKICNpbmNsdWRlICJSZW5kZXJSdWJ5LmgiCiAjaW5jbHVkZSAiUmVuZGVy
UnVieVRleHQuaCIKQEAgLTE2MCw2ICsxNjEsOCBAQCBSZW5kZXJPYmplY3QqIFJlbmRlck9iamVj
dDo6Y3JlYXRlT2JqZWN0CiAgICAgICAgIC8vIE9ubHkgbm9uLXJlcGxhY2VkIGJsb2NrIGVsZW1l
bnRzIGNhbiBiZWNvbWUgYSByZWdpb24uCiAgICAgICAgIGlmIChkb2MtPmNzc1JlZ2lvbnNFbmFi
bGVkKCkgJiYgIXN0eWxlLT5yZWdpb25UaHJlYWQoKS5pc0VtcHR5KCkgJiYgZG9jLT5yZW5kZXJW
aWV3KCkpCiAgICAgICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyUmVnaW9uKG5vZGUs
IGRvYy0+cmVuZGVyVmlldygpLT5lbnN1cmVSZW5kZXJGbG93VGhyZWFkV2l0aE5hbWUoc3R5bGUt
PnJlZ2lvblRocmVhZCgpKSk7CisgICAgICAgIGlmICgoIXN0eWxlLT5oYXNBdXRvQ29sdW1uQ291
bnQoKSB8fCAhc3R5bGUtPmhhc0F1dG9Db2x1bW5XaWR0aCgpKSAmJiBkb2MtPnJlZ2lvbkJhc2Vk
Q29sdW1uc0VuYWJsZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJN
dWx0aUNvbHVtbkJsb2NrKG5vZGUpOwogICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVy
QmxvY2sobm9kZSk7CiAgICAgY2FzZSBMSVNUX0lURU06CiAgICAgICAgIHJldHVybiBuZXcgKGFy
ZW5hKSBSZW5kZXJMaXN0SXRlbShub2RlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCShyZXZpc2lvbiAxMTA4ODYpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDcyLDcgKzQ3Miw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0
Ojp1cGRhdGVCZWZvcmUKICAgICAvLyBJZiB3ZSBkb24ndCB3YW50IGdlbmVyYXRlZCBjb250ZW50
IGFueSBsb25nZXIsIG9yIGlmIHdlIGhhdmUgZ2VuZXJhdGVkIGNvbnRlbnQsIGJ1dCBpdCdzIG5v
IGxvbmdlcgogICAgIC8vIGlkZW50aWNhbCB0byB0aGUgbmV3IGNvbnRlbnQgZGF0YSB3ZSB3YW50
IHRvIGJ1aWxkIHJlbmRlciBvYmplY3RzIGZvciwgdGhlbiB3ZSBudWtlIGFsbAogICAgIC8vIG9m
IHRoZSBvbGQgZ2VuZXJhdGVkIGNvbnRlbnQuCi0gICAgaWYgKG9sZENvbnRlbnRQcmVzZW50ICYm
ICghbmV3Q29udGVudFdhbnRlZCB8fCBOb2RlOjpkaWZmKGNoaWxkLT5zdHlsZSgpLCBwc2V1ZG9F
bGVtZW50U3R5bGUpID09IE5vZGU6OkRldGFjaCkpIHsKKyAgICBpZiAob2xkQ29udGVudFByZXNl
bnQgJiYgKCFuZXdDb250ZW50V2FudGVkIHx8IE5vZGU6OmRpZmYoY2hpbGQtPnN0eWxlKCksIHBz
ZXVkb0VsZW1lbnRTdHlsZSwgb3duZXItPmRvY3VtZW50KCkpID09IE5vZGU6OkRldGFjaCkpIHsK
ICAgICAgICAgLy8gTnVrZSB0aGUgY2hpbGQuIAogICAgICAgICBpZiAoY2hpbGQtPnN0eWxlKCkt
PnN0eWxlVHlwZSgpID09IHR5cGUpIHsKICAgICAgICAgICAgIG9sZENvbnRlbnRQcmVzZW50ID0g
ZmFsc2U7Cg==
</data>
<flag name="review"
          id="135936"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132347</attachid>
            <date>2012-03-16 12:31:19 -0700</date>
            <delta_ts>2012-03-16 12:31:19 -0700</delta_ts>
            <desc>New patch just to test EWS</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>24432</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMTA0NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDEyLTAzLTE2ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODEzNjYKKyAgICAgICAgCisgICAgICAgIEFkZCBSZW5kZXJNdWx0
aUNvbHVtbkJsb2NrIHN1YmNsYXNzIG9mIFJlbmRlckJsb2NrLiBUaGlzIG5ldyBjbGFzcyB3aWxs
IGhvbGQgYWxsIG9mIHRoZSBtdWx0aS1jb2x1bW4KKyAgICAgICAgbG9naWMgKGFzIHdlbGwgYXMg
cGFpbnRpbmcvaGl0IHRlc3RpbmcpLiBUaGF0IHdheSB0aGUgY29sdW1uIGNvZGUgY2FuIGJlIGtl
cHQgb3V0IG9mIHRoZSBiYXNlIGNsYXNzCisgICAgICAgIGFuZCBiZSBtb3JlIGNsZWFubHkgZmFj
dG9yZWQuCisKKyAgICAgICAgUGF0Y2ggTm9kZTo6ZGlmZiBzbyB0aGF0IHdlIGRldGFjaCBhbmQg
cmUtYXR0YWNoIHRoZSByZW5kZXJlciBpZiBjb2x1bW4gY291bnRzIG9yIHdpZHRocyBjaGFuZ2UK
KyAgICAgICAgZnJvbSBhdXRvIHRvIG5vbi1hdXRvIChhbmQgdmljZSB2ZXJzYSkgdG8gZW5zdXJl
IHRoZSByaWdodCByZW5kZXJlciBnZXRzIG1hZGUuCisgICAgICAgIAorICAgICAgICBQYXRjaCBS
ZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCB0byBtYWtlIGEgUmVuZGVyTXVsdGlDb2x1bW5CbG9j
ayBpZiBlaXRoZXIgdGhlIGNvbHVtbiBjb3VudCBvcgorICAgICAgICBjb2x1bW4gd2lkdGggaXMg
bm9uLWF1dG8uCisgICAgICAgIAorICAgICAgICBQYXRjaCBSZW5kZXJCbG9jazo6Y2FsY0NvbHVt
bldpZHRoIHRvICJ0dXJuIG9mZiIgdGhlIG9sZCBpbXBsZW1lbnRhdGlvbiBvZiBjb2x1bW5zIGlm
IHRoZSBwcmVmIHRvIHVzZQorICAgICAgICB0aGUgbmV3IGNvbHVtbiBpbXBsZW1lbnRhdGlvbiBp
cyBzZXQuIFRoaXMgc2luZ2xlIGNob2tlcG9pbnQgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIGRp
c2FibGluZyB0aGUgb2xkCisgICAgICAgIGNvbHVtbnMgaW4gZmF2b3Igb2YgdGhlIG5ldy4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3Jl
Lmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVnaW9uQmFzZWRDb2x1bW5z
RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpyZWNhbGNTdHlsZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1
bWVudCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxl
bWVudDo6cmVjYWxjU3R5bGUpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGU6OmRpZmYpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpj
YWxjQ29sdW1uV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnVwZGF0ZUZp
cnN0TGV0dGVyU3R5bGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJs
b2NrLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck11bHRpQ29sdW1uQmxvY2s6OlJlbmRlck11bHRpQ29sdW1uQmxvY2spOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTXVsdGlDb2x1bW5CbG9jazo6cmVuZGVyTmFtZSk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFJlbmRlck11bHRpQ29sdW1uQmxvY2spOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpj
cmVhdGVPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Q2hpbGRMaXN0Ojp1cGRhdGVCZWZv
cmVBZnRlckNvbnRlbnQpOgorCiAyMDEyLTAzLTE2ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBJbmRleGVkREI6IEFzc2VydGlvbiBmYWls
dXJlIHdoZW4gc3RvcmluZyBGaWxlIG9iamVjdHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShy
ZXZpc2lvbiAxMTEwNDQpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMTMyMyw2ICsxMzIzLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHJl
bmRlcmluZy9SZW5kZXJNYXJxdWVlLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5j
cHAKICAgICByZW5kZXJpbmcvUmVuZGVyTWV0ZXIuY3BwCisgICAgcmVuZGVyaW5nL1JlbmRlck11
bHRpQ29sdW1uQmxvY2suY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKICAgICBy
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJQ
YXJ0LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMTEw
NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkp
CkBAIC0zNzIwLDYgKzM3MjAsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWV0ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0
ZXIuaCBcCisgICAgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxv
Y2suY3BwIFwKKyAgICBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5C
bG9jay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBcCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMTEwNDQpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTQ2MzQsNiArNDYzNCw4IEBACiAgICAgICAgICAgICAn
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5k
ZXJNZXRlci5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJNZXRlci5oJywKKyAg
ICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAnLAorICAgICAg
ICAgICAgJ3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmgnLAogICAgICAgICAgICAg
J3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclBh
cnQuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCShyZXZpc2lvbiAxMTEwNDQpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMzk2NTMsNiArMzk2NTMsNjIgQEAK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJNZXRlci5oIgogCQkJCT4KIAkJ
CTwvRmlsZT4KKyAgICAgICAgICAgIDxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJp
bmdcUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJ
CS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxl
PgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJNdWx0aUNv
bHVtbkJsb2NrLmgiCisJCQkJPgorCQkJPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJPYmplY3QuY3BwIgogCQkJCT4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDExMTA0NCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTIwNyw2ICs1MjA3LDcgQEAKIAkJQkMzQzM5QjYwQzBE
M0Q4RDAwNUY0RDdBIC8qIEpTTWVkaWFMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0MzOUI0MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlh
TGlzdC5jcHAgKi87IH07CiAJCUJDM0MzOUI3MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlhTGlz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzQzM5
QjUwQzBEM0Q4RDAwNUY0RDdBIC8qIEpTTWVkaWFMaXN0LmggKi87IH07CiAJCUJDNDM2OEU4MEMy
MjZFMzIwMDVFRkI1RiAvKiBSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzQzNjhFNzBDMjI2RTMyMDA1RUZCNUYgLyogUmVjdC5oICovOyB9Owor
CQlCQzQ1ODI3RjE1MTI5OUMxMDA2MUE1NTYgLyogUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ1ODI3RTE1
MTI5OUMxMDA2MUE1NTYgLyogUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAgKi87IH07CiAJCUJD
NDZDMUVFMEMwRERCREYwMDIwQ0ZDMyAvKiBKU0NTU1J1bGVDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0NkMxRUQwQzBEREJERjAwMjBD
RkMzIC8qIEpTQ1NTUnVsZUN1c3RvbS5jcHAgKi87IH07CiAJCUJDNDZDMUZBMEMwRERDOEYwMDIw
Q0ZDMyAvKiBKU0NTU0NoYXJzZXRSdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDZDMUYwMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU0NoYXJz
ZXRSdWxlLmNwcCAqLzsgfTsKIAkJQkM0NkMxRkIwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTQ2hh
cnNldFJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNDZDMUYxMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU0NoYXJzZXRSdWxlLmggKi87IH07CkBA
IC01NDYyLDYgKzU0NjMsNyBAQAogCQlCQ0MwNjU4OTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGll
bnRSZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0MwNjU4NTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5jcHAgKi87
IH07CiAJCUJDQzA2NThBMEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU4NjBGM0NF
MkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5oICovOyB9OwogCQlCQ0M0Mzg3ODBFODg2
Q0M3MDA1MzNERDUgLyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzQzODc3MEU4ODZDQzcwMDUzM0RE
NSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwICovOyB9OworCQlCQ0M1MkZENjE1MTI5
OEQyMDAzRjkxNEIgLyogUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDNTJGRDUxNTEyOThEMTAwM0Y5MTRCIC8q
IFJlbmRlck11bHRpQ29sdW1uQmxvY2suaCAqLzsgfTsKIAkJQkNDNTczMzUwRDY5NUJCRTAwNkVG
NTE3IC8qIERPTVByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDQzU3MzMzMEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2
ZW50LmggKi87IH07CiAJCUJDQzU3MzM2MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2
ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkND
NTczMzQwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQubW0gKi87IH07CiAJCUJD
QzU3MzM4MEQ2OTVCRDcwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50SW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzU3MzM3MEQ2OTVC
RDcwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50SW50ZXJuYWwuaCAqLzsgfTsKQEAgLTEyMjI1
LDYgKzEyMjI3LDcgQEAKIAkJQkMzQzM5QjQwQzBEM0Q4RDAwNUY0RDdBIC8qIEpTTWVkaWFMaXN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhTGlzdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDM0MzOUI1MEMwRDNEOEQwMDVGNEQ3
QSAvKiBKU01lZGlhTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNN
ZWRpYUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0MzY4RTcwQzIyNkUz
MjAwNUVGQjVGIC8qIFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
Y3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0NTgyN0UxNTEyOTlDMTAwNjFB
NTU2IC8qIFJlbmRlck11bHRpQ29sdW1uQmxvY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDNDZDMUVEMEMwRERCREYwMDIwQ0ZDMyAvKiBKU0NTU1J1bGVDdXN0
b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTUnVsZUN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNDZDMUYwMEMwRERDOEYw
MDIwQ0ZDMyAvKiBKU0NTU0NoYXJzZXRSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0NTU0NoYXJzZXRSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkM0NkMxRjEwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTQ2hhcnNldFJ1bGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1NTQ2hhcnNldFJ1bGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNTAxLDYgKzEyNTA0LDcgQEAKIAkJQkNDMDY1
ODUwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDbGllbnRSZWN0TGlzdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDQzA2NTg2MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJl
Y3RMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ2xpZW50UmVjdExp
c3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNDNDM4NzcwRTg4NkNDNzAwNTMz
REQ1IC8qIEpTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCQ0M1MkZENTE1MTI5OEQxMDAzRjkxNEIgLyogUmVuZGVyTXVs
dGlDb2x1bW5CbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJN
dWx0aUNvbHVtbkJsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzU3MzMz
MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERPTVByb2dyZXNzRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkNDNTczMzQwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01Qcm9ncmVzc0V2ZW50
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0M1NzMzNzBENjk1QkQ3MDA2RUY1
MTcgLyogRE9NUHJvZ3Jlc3NFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERPTVByb2dyZXNzRXZlbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjA2NzYsNiArMjA2ODAsOCBAQAogCQkJCUFCRERGRTc0MEE1QzZFNzAwMEEz
RTExRCAvKiBSZW5kZXJNZW51TGlzdC5oICovLAogCQkJCUE0NTQ0MjRDMTE5QjM2ODcwMDlCRTkx
MiAvKiBSZW5kZXJNZXRlci5jcHAgKi8sCiAJCQkJQTQ1NDQyNEQxMTlCMzY4NzAwOUJFOTEyIC8q
IFJlbmRlck1ldGVyLmggKi8sCisJCQkJQkNDNTJGRDUxNTEyOThEMTAwM0Y5MTRCIC8qIFJlbmRl
ck11bHRpQ29sdW1uQmxvY2suaCAqLywKKwkJCQlCQzQ1ODI3RTE1MTI5OUMxMDA2MUE1NTYgLyog
UmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAgKi8sCiAJCQkJQkNFQTQ4NDAwOTdEOTMwMjAwOTRD
OUU0IC8qIFJlbmRlck9iamVjdC5jcHAgKi8sCiAJCQkJQkNFQTQ4NDEwOTdEOTMwMjAwOTRDOUU0
IC8qIFJlbmRlck9iamVjdC5oICovLAogCQkJCUJDNjBFRkI2MEYzM0EwRTcwMDgxMkE5MyAvKiBS
ZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwICovLApAQCAtMjQ1ODMsNiArMjQ1ODksNyBAQAogCQkJ
CUUxQ0RFOTIyMTUwMTkxNjkwMDg2MkNDNSAvKiBBc3luY0ZpbGVTdHJlYW0uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ1MENFQkYxMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDNUI0QzI0RDE1MDkyMzZDMDBBNkVGMzcgLyogV2ViQ29yZU5T
VVJMRXh0cmFzLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQ0M1MkZENjE1MTI5OEQyMDAzRjkxNEIg
LyogUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4NkNGNzcx
NTEyMzAxNzAwRDI3OUY0IC8qIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAt
Mjc1NjUsNiArMjc1NzIsNyBAQAogCQkJCUM1QjRDMjRFMTUwOTIzNkMwMEE2RUYzNyAvKiBXZWJD
b3JlTlNVUkxFeHRyYXMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5QjJCN0FDMTE1MDk4NTBBMDA4
OTMyQ0MgLyogTWljcm9EYXRhSXRlbVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcxNTdG
MDYyMTUwQjY1NjQwMDZFQUFCRCAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQkM0NTgyN0YxNTEyOTlDMTAwNjFBNTU2IC8qIFJlbmRlck11bHRpQ29s
dW1uQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4NkNGNzYxNTEyMzAxNzAwRDI3OUY0
IC8qIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAJKHJldmlzaW9uIDExMTA0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMTYsNiArMTAxNiwxMSBAQCBQYXNzUmVmUHRy
PEVsZW1lbnQ+IERvY3VtZW50OjpjcmVhdGVFbGVtCiAgICAgcmV0dXJuIGUucmVsZWFzZSgpOwog
fQogCitib29sIERvY3VtZW50OjpyZWdpb25CYXNlZENvbHVtbnNFbmFibGVkKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gc2V0dGluZ3MoKSAmJiBzZXR0aW5ncygpLT5yZWdpb25CYXNlZENvbHVtbnNF
bmFibGVkKCk7IAorfQorCiBib29sIERvY3VtZW50Ojpjc3NSZWdpb25zRW5hYmxlZCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIHNldHRpbmdzKCkgJiYgc2V0dGluZ3MoKS0+Y3NzUmVnaW9uc0VuYWJs
ZWQoKTsgCkBAIC0xNjEwLDcgKzE2MTUsNyBAQCB2b2lkIERvY3VtZW50OjpyZWNhbGNTdHlsZShT
dHlsZUNoYW5nZSBjCiAgICAgICAgIG1faGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZSA9IGZh
bHNlOwogICAgICAgICAKICAgICAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBkb2N1bWVudFN0eWxl
ID0gQ1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVGb3JEb2N1bWVudCh0aGlzLCBtX3N0eWxlU2VsZWN0
b3IgPyBtX3N0eWxlU2VsZWN0b3ItPmZvbnRTZWxlY3RvcigpIDogMCk7Ci0gICAgICAgIFN0eWxl
Q2hhbmdlIGNoID0gZGlmZihkb2N1bWVudFN0eWxlLmdldCgpLCByZW5kZXJlcigpLT5zdHlsZSgp
KTsKKyAgICAgICAgU3R5bGVDaGFuZ2UgY2ggPSBOb2RlOjpkaWZmKGRvY3VtZW50U3R5bGUuZ2V0
KCksIHJlbmRlcmVyKCktPnN0eWxlKCksIHRoaXMpOwogICAgICAgICBpZiAoY2ggIT0gTm9DaGFu
Z2UpCiAgICAgICAgICAgICByZW5kZXJlcigpLT5zZXRTdHlsZShkb2N1bWVudFN0eWxlLnJlbGVh
c2UoKSk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDExMTA0NCkK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNTQs
NiArMzU0LDggQEAgcHVibGljOgogICAgIGJvb2wgY3NzUmVnaW9uc0VuYWJsZWQoKSBjb25zdDsK
ICAgICBQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxvdz4gd2Via2l0R2V0Rmxvd0J5TmFtZShjb25z
dCBTdHJpbmcmKTsKIAorICAgIGJvb2wgcmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCgpIGNvbnN0
OworCiAgICAgLyoqCiAgICAgICogUmV0cmlldmUgYWxsIG5vZGVzIHRoYXQgaW50ZXJzZWN0IGEg
cmVjdCBpbiB0aGUgd2luZG93J3MgZG9jdW1lbnQsIHVudGlsIGl0IGlzIGZ1bGx5IGVuY2xvc2Vk
IGJ5CiAgICAgICogdGhlIGJvdW5kYXJpZXMgb2YgYSBub2RlLgpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcAkocmV2aXNpb24gMTExMDQ0KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYzLDcgKzEwNjMsNyBAQCB2b2lkIEVsZW1lbnQ6OnJl
Y2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoCiAgICAgfQogICAgIGlmIChoYXNQYXJlbnRTdHlsZSAm
JiAoY2hhbmdlID49IEluaGVyaXQgfHwgbmVlZHNTdHlsZVJlY2FsYygpKSkgewogICAgICAgICBS
ZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gc3R5bGVGb3JSZW5kZXJlcigpOwotICAgICAg
ICBTdHlsZUNoYW5nZSBjaCA9IGRpZmYoY3VycmVudFN0eWxlLmdldCgpLCBuZXdTdHlsZS5nZXQo
KSk7CisgICAgICAgIFN0eWxlQ2hhbmdlIGNoID0gTm9kZTo6ZGlmZihjdXJyZW50U3R5bGUuZ2V0
KCksIG5ld1N0eWxlLmdldCgpLCBkb2N1bWVudCgpKTsKICAgICAgICAgaWYgKGNoID09IERldGFj
aCB8fCAhY3VycmVudFN0eWxlKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhlIHN0eWxlIGdl
dHMgY29tcHV0ZWQgdHdpY2UgYnkgY2FsbGluZyBhdHRhY2guIFdlIGNvdWxkIGRvIGJldHRlciBp
ZiB3ZSBwYXNzZWQgdGhlIHN0eWxlIGFsb25nLgogICAgICAgICAgICAgcmVhdHRhY2goKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDExMTA0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODUsNiArODUsNyBAQAogI2luY2x1ZGUgIlJl
bmRlclZpZXcuaCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiU2Vs
ZWN0b3JRdWVyeS5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9v
dC5oIgogI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKICNpbmNsdWRlICJTdGF0aWNOb2RlTGlzdC5o
IgpAQCAtMzAzLDcgKzMwNCw3IEBAIHZvaWQgTm9kZTo6c3RvcElnbm9yaW5nTGVha3MoKQogI2Vu
ZGlmCiB9CiAKLU5vZGU6OlN0eWxlQ2hhbmdlIE5vZGU6OmRpZmYoY29uc3QgUmVuZGVyU3R5bGUq
IHMxLCBjb25zdCBSZW5kZXJTdHlsZSogczIpCitOb2RlOjpTdHlsZUNoYW5nZSBOb2RlOjpkaWZm
KGNvbnN0IFJlbmRlclN0eWxlKiBzMSwgY29uc3QgUmVuZGVyU3R5bGUqIHMyLCBEb2N1bWVudCog
ZG9jKQogewogICAgIFN0eWxlQ2hhbmdlIGNoID0gTm9Jbmhlcml0OwogICAgIEVEaXNwbGF5IGRp
c3BsYXkxID0gczEgPyBzMS0+ZGlzcGxheSgpIDogTk9ORTsKQEAgLTMxNiw3ICszMTcsMTIgQEAg
Tm9kZTo6U3R5bGVDaGFuZ2UgTm9kZTo6ZGlmZihjb25zdCBSZW5kZQogICAgIGJvb2wgY29sU3Bh
bjEgPSBzMSAmJiBzMS0+Y29sdW1uU3BhbigpOwogICAgIGJvb2wgY29sU3BhbjIgPSBzMiAmJiBz
Mi0+Y29sdW1uU3BhbigpOwogICAgIAotICAgIGlmIChkaXNwbGF5MSAhPSBkaXNwbGF5MiB8fCBm
bDEgIT0gZmwyIHx8IGNvbFNwYW4xICE9IGNvbFNwYW4yIHx8IChzMSAmJiBzMiAmJiAhczEtPmNv
bnRlbnREYXRhRXF1aXZhbGVudChzMikpKQorICAgIGJvb2wgc3BlY2lmaWVzQ29sdW1uczEgPSBz
MSAmJiAoIXMxLT5oYXNBdXRvQ29sdW1uQ291bnQoKSB8fCAhczEtPmhhc0F1dG9Db2x1bW5XaWR0
aCgpKTsKKyAgICBib29sIHNwZWNpZmllc0NvbHVtbnMyID0gczIgJiYgKCFzMi0+aGFzQXV0b0Nv
bHVtbkNvdW50KCkgfHwgIXMyLT5oYXNBdXRvQ29sdW1uV2lkdGgoKSk7CisKKyAgICBpZiAoZGlz
cGxheTEgIT0gZGlzcGxheTIgfHwgZmwxICE9IGZsMiB8fCBjb2xTcGFuMSAhPSBjb2xTcGFuMiAK
KyAgICAgICAgfHwgKHNwZWNpZmllc0NvbHVtbnMxICE9IHNwZWNpZmllc0NvbHVtbnMyICYmIGRv
Yy0+c2V0dGluZ3MoKS0+cmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCgpKQorICAgICAgICB8fCAo
czEgJiYgczIgJiYgIXMxLT5jb250ZW50RGF0YUVxdWl2YWxlbnQoczIpKSkKICAgICAgICAgY2gg
PSBEZXRhY2g7CiAgICAgZWxzZSBpZiAoIXMxIHx8ICFzMikKICAgICAgICAgY2ggPSBJbmhlcml0
OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oCShyZXZpc2lvbiAxMTEwNDQpCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDEsNyArMTQxLDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyB2b2lkIGR1bXBTdGF0aXN0aWNzKCk7CiAKICAgICBlbnVtIFN0eWxlQ2hhbmdlIHsg
Tm9DaGFuZ2UsIE5vSW5oZXJpdCwgSW5oZXJpdCwgRGV0YWNoLCBGb3JjZSB9OyAgICAKLSAgICBz
dGF0aWMgU3R5bGVDaGFuZ2UgZGlmZihjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IFJlbmRlclN0
eWxlKik7CisgICAgc3RhdGljIFN0eWxlQ2hhbmdlIGRpZmYoY29uc3QgUmVuZGVyU3R5bGUqLCBj
b25zdCBSZW5kZXJTdHlsZSosIERvY3VtZW50Kik7CiAKICAgICB2aXJ0dWFsIH5Ob2RlKCk7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24g
MTExMDQ0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDg4MSw3ICs0ODgxLDEwIEBAIGludCBSZW5kZXJCbG9jazo6Y29sdW1u
R2FwKCkgY29uc3QKIH0KIAogdm9pZCBSZW5kZXJCbG9jazo6Y2FsY0NvbHVtbldpZHRoKCkKLXsg
ICAgCit7ICAgCisgICAgaWYgKGRvY3VtZW50KCktPnJlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8gQ2FsY3VsYXRlIG91ciBjb2x1bW4gd2lkdGgg
YW5kIGNvbHVtbiBjb3VudC4KICAgICAvLyBGSVhNRTogQ2FuIG92ZXJmbG93IG9uIGZhc3QvYmxv
Y2svZmxvYXQvZmxvYXQtbm90LXJlbW92ZWQtZnJvbS1uZXh0LXNpYmxpbmc0Lmh0bWwsIHNlZSBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NDQKICAgICB1bnNpZ25l
ZCBkZXNpcmVkQ29sdW1uQ291bnQgPSAxOwpAQCAtNTk5Nyw3ICs2MDAwLDcgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6dXBkYXRlRmlyc3RMZXR0ZXJTdHlsZQogICAgIFJlbmRlclN0eWxlKiBwc2V1ZG9T
dHlsZSA9IHN0eWxlRm9yRmlyc3RMZXR0ZXIoZmlyc3RMZXR0ZXJCbG9jaywgZmlyc3RMZXR0ZXJD
b250YWluZXIpOwogICAgIEFTU0VSVChmaXJzdExldHRlci0+aXNGbG9hdGluZygpIHx8IGZpcnN0
TGV0dGVyLT5pc0lubGluZSgpKTsKIAotICAgIGlmIChOb2RlOjpkaWZmKGZpcnN0TGV0dGVyLT5z
dHlsZSgpLCBwc2V1ZG9TdHlsZSkgPT0gTm9kZTo6RGV0YWNoKSB7CisgICAgaWYgKE5vZGU6OmRp
ZmYoZmlyc3RMZXR0ZXItPnN0eWxlKCksIHBzZXVkb1N0eWxlLCBkb2N1bWVudCgpKSA9PSBOb2Rl
OjpEZXRhY2gpIHsKICAgICAgICAgLy8gVGhlIGZpcnN0LWxldHRlciByZW5kZXJlciBuZWVkcyB0
byBiZSByZXBsYWNlZC4gQ3JlYXRlIGEgbmV3IHJlbmRlcmVyIG9mIHRoZSByaWdodCB0eXBlLgog
ICAgICAgICBSZW5kZXJPYmplY3QqIG5ld0ZpcnN0TGV0dGVyOwogICAgICAgICBpZiAocHNldWRv
U3R5bGUtPmRpc3BsYXkoKSA9PSBJTkxJTkUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suY3BwCShyZXZpc2lvbiAwKQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlbmRl
ck11bHRpQ29sdW1uQmxvY2s6OlJlbmRlck11bHRpQ29sdW1uQmxvY2soTm9kZSogbm9kZSkKKyAg
ICA6IFJlbmRlckJsb2NrKG5vZGUpCit7Cit9CisKK2NvbnN0IGNoYXIqIFJlbmRlck11bHRpQ29s
dW1uQmxvY2s6OnJlbmRlck5hbWUoKSBjb25zdAoreyAgICAKKyAgICBpZiAoaXNGbG9hdGluZygp
KQorICAgICAgICByZXR1cm4gIlJlbmRlck11bHRpQ29sdW1uQmxvY2sgKGZsb2F0aW5nKSI7Cisg
ICAgaWYgKGlzUG9zaXRpb25lZCgpKQorICAgICAgICByZXR1cm4gIlJlbmRlck11bHRpQ29sdW1u
QmxvY2sgKHBvc2l0aW9uZWQpIjsKKyAgICBpZiAoaXNBbm9ueW1vdXNCbG9jaygpKQorICAgICAg
ICByZXR1cm4gIlJlbmRlck11bHRpQ29sdW1uQmxvY2sgKGFub255bW91cykiOworICAgIGlmIChp
c0Fub255bW91cygpKQorICAgICAgICByZXR1cm4gIlJlbmRlck11bHRpQ29sdW1uQmxvY2sgKGdl
bmVyYXRlZCkiOworICAgIGlmIChpc1JlbFBvc2l0aW9uZWQoKSkKKyAgICAgICAgcmV0dXJuICJS
ZW5kZXJNdWx0aUNvbHVtbkJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSI7CisgICAgcmV0dXJu
ICJSZW5kZXJNdWx0aUNvbHVtbkJsb2NrIjsKK30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaWZuZGVmIFJlbmRlck11bHRpQ29sdW1uQmxv
Y2tfaAorI2RlZmluZSBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrX2gKKworI2luY2x1ZGUgIlJlbmRl
ckJsb2NrLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyTXVsdGlDb2x1
bW5CbG9jayA6IHB1YmxpYyBSZW5kZXJCbG9jaworeworcHVibGljOgorICAgIFJlbmRlck11bHRp
Q29sdW1uQmxvY2soTm9kZSopOworICAgIAorcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGNvbnN0IGNo
YXIqIHJlbmRlck5hbWUoKSBjb25zdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIFJlbmRlck11bHRpQ29sdW1uQmxvY2tfaAorCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTExMDQ0KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUy
LDYgKzUyLDcgQEAKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJM
YXllci5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RJdGVtLmgiCisjaW5jbHVkZSAiUmVuZGVyTXVs
dGlDb2x1bW5CbG9jay5oIgogI2luY2x1ZGUgIlJlbmRlclJlZ2lvbi5oIgogI2luY2x1ZGUgIlJl
bmRlclJ1YnkuaCIKICNpbmNsdWRlICJSZW5kZXJSdWJ5VGV4dC5oIgpAQCAtMTYwLDYgKzE2MSw4
IEBAIFJlbmRlck9iamVjdCogUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmplY3QKICAgICAgICAgLy8g
T25seSBub24tcmVwbGFjZWQgYmxvY2sgZWxlbWVudHMgY2FuIGJlY29tZSBhIHJlZ2lvbi4KICAg
ICAgICAgaWYgKGRvYy0+Y3NzUmVnaW9uc0VuYWJsZWQoKSAmJiAhc3R5bGUtPnJlZ2lvblRocmVh
ZCgpLmlzRW1wdHkoKSAmJiBkb2MtPnJlbmRlclZpZXcoKSkKICAgICAgICAgICAgIHJldHVybiBu
ZXcgKGFyZW5hKSBSZW5kZXJSZWdpb24obm9kZSwgZG9jLT5yZW5kZXJWaWV3KCktPmVuc3VyZVJl
bmRlckZsb3dUaHJlYWRXaXRoTmFtZShzdHlsZS0+cmVnaW9uVGhyZWFkKCkpKTsKKyAgICAgICAg
aWYgKCghc3R5bGUtPmhhc0F1dG9Db2x1bW5Db3VudCgpIHx8ICFzdHlsZS0+aGFzQXV0b0NvbHVt
bldpZHRoKCkpICYmIGRvYy0+cmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCgpKQorICAgICAgICAg
ICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlck11bHRpQ29sdW1uQmxvY2sobm9kZSk7CiAgICAg
ICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJCbG9jayhub2RlKTsKICAgICBjYXNlIExJU1Rf
SVRFTToKICAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckxpc3RJdGVtKG5vZGUpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxk
TGlzdC5jcHAJKHJldmlzaW9uIDExMTA0NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NzIsNyArNDcyLDcg
QEAgdm9pZCBSZW5kZXJPYmplY3RDaGlsZExpc3Q6OnVwZGF0ZUJlZm9yZQogICAgIC8vIElmIHdl
IGRvbid0IHdhbnQgZ2VuZXJhdGVkIGNvbnRlbnQgYW55IGxvbmdlciwgb3IgaWYgd2UgaGF2ZSBn
ZW5lcmF0ZWQgY29udGVudCwgYnV0IGl0J3Mgbm8gbG9uZ2VyCiAgICAgLy8gaWRlbnRpY2FsIHRv
IHRoZSBuZXcgY29udGVudCBkYXRhIHdlIHdhbnQgdG8gYnVpbGQgcmVuZGVyIG9iamVjdHMgZm9y
LCB0aGVuIHdlIG51a2UgYWxsCiAgICAgLy8gb2YgdGhlIG9sZCBnZW5lcmF0ZWQgY29udGVudC4K
LSAgICBpZiAob2xkQ29udGVudFByZXNlbnQgJiYgKCFuZXdDb250ZW50V2FudGVkIHx8IE5vZGU6
OmRpZmYoY2hpbGQtPnN0eWxlKCksIHBzZXVkb0VsZW1lbnRTdHlsZSkgPT0gTm9kZTo6RGV0YWNo
KSkgeworICAgIGlmIChvbGRDb250ZW50UHJlc2VudCAmJiAoIW5ld0NvbnRlbnRXYW50ZWQgfHwg
Tm9kZTo6ZGlmZihjaGlsZC0+c3R5bGUoKSwgcHNldWRvRWxlbWVudFN0eWxlLCBvd25lci0+ZG9j
dW1lbnQoKSkgPT0gTm9kZTo6RGV0YWNoKSkgewogICAgICAgICAvLyBOdWtlIHRoZSBjaGlsZC4g
CiAgICAgICAgIGlmIChjaGlsZC0+c3R5bGUoKS0+c3R5bGVUeXBlKCkgPT0gdHlwZSkgewogICAg
ICAgICAgICAgb2xkQ29udGVudFByZXNlbnQgPSBmYWxzZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>