<?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>39574</bug_id>
          
          <creation_ts>2010-05-23 15:48:26 -0700</creation_ts>
          <short_desc>Complete the merge of NamedMappedAttrMap into NamedNodeMap</short_desc>
          <delta_ts>2010-05-23 17:02:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>229528</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-05-23 15:48:26 -0700</bug_when>
    <thetext>Complete the merge of NamedMappedAttrMap into NamedNodeMap started by Anders.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229529</commentid>
    <comment_count>1</comment_count>
      <attachid>56834</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-05-23 15:49:47 -0700</bug_when>
    <thetext>Created attachment 56834
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229532</commentid>
    <comment_count>2</comment_count>
      <attachid>56834</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-05-23 16:15:55 -0700</bug_when>
    <thetext>Comment on attachment 56834
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229533</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-05-23 16:20:21 -0700</bug_when>
    <thetext>Landed in r60052.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229535</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-23 17:02:18 -0700</bug_when>
    <thetext>Qt slaves went awol.  Ignore any possible sherriffbot blab about it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56834</attachid>
            <date>2010-05-23 15:49:47 -0700</date>
            <delta_ts>2010-05-23 16:15:55 -0700</delta_ts>
            <desc>patch</desc>
            <filename>nodeMap.diff</filename>
            <type>text/plain</type>
            <size>29110</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDA0OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTYgQEAKKzIwMTAtMDUtMjMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZm9y
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTU3NAorICAgICAgICBD
b21wbGV0ZSB0aGUgbWVyZ2Ugb2YgTmFtZWRNYXBwZWRBdHRyTWFwIGludG8gTmFtZWROb2RlTWFw
LgorCisgICAgICAgICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2Vs
ZWN0b3I6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NT
dHlsZVNlbGVjdG9yOjpzdHlsZUZvckVsZW1lbnQpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNyZWF0ZUF0dHJpYnV0ZU1hcCk6CisgICAg
ICAgICogZG9tL05hbWVkTWFwcGVkQXR0ck1hcC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogZG9t
L05hbWVkTWFwcGVkQXR0ck1hcC5oOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9OYW1lZE5vZGVN
YXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmFtZWROb2RlTWFwOjpzZXRDbGFzcyk6CisgICAg
ICAgIChXZWJDb3JlOjpOYW1lZE5vZGVNYXA6OmRlY2xDb3VudCk6CisgICAgICAgIChXZWJDb3Jl
OjpOYW1lZE5vZGVNYXA6Om1hcHNFcXVpdmFsZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok5hbWVk
Tm9kZU1hcDo6bWFwcGVkTWFwc0VxdWl2YWxlbnQpOgorICAgICAgICAqIGRvbS9OYW1lZE5vZGVN
YXAuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hbWVkTm9kZU1hcDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok5hbWVkTm9kZU1hcDo6Y2xlYXJDbGFzcyk6CisgICAgICAgIChXZWJDb3JlOjpO
YW1lZE5vZGVNYXA6OmNsYXNzTmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6TmFtZWROb2RlTWFw
OjpoYXNNYXBwZWRBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5hbWVkTm9kZU1hcDo6
ZGVjbFJlbW92ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TmFtZWROb2RlTWFwOjpkZWNsQWRkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6TmFtZWROb2RlTWFwOjpOYW1lZE5vZGVNYXApOgorICAgICAg
ICAqIGRvbS9TdHlsZWRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50
OjptYXBwZWRBdHRyaWJ1dGVzKToKKyAgICAgICAgKiBodG1sL0hUTUw1VG9rZW4uaDoKKyAgICAg
ICAgKiBodG1sL0hUTUw1VG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRU
b09sZFN0eWxlKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0SW5wdXRUeXBlKToKKyAgICAgICAgKiBo
dG1sL0hUTUxQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBhcnNlcjo6aGFuZGxl
SXNpbmRleCk6CisgICAgICAgICogaHRtbC9IVE1MVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRva2VuOjphZGRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2Vu
aXplcjo6cHJvY2Vzc1Rva2VuKToKKyAgICAgICAgKiBodG1sL0hUTUxUb2tlbml6ZXIuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6Y3JlYXRlQ29udGFpbmluZ1RhYmxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxWaWV3U291cmNlRG9jdW1lbnQ6OmFkZFNwYW5XaXRoQ2xhc3NOYW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWV3U291cmNlRG9jdW1lbnQ6OmFkZExpbmUpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6YWRkTGluayk6CisKIDIw
MTAtMDUtMjMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdlYkNvcmUvQW5kcm9pZC5tawo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL0FuZHJvaWQubWsJKHJldmlzaW9uIDYwMDQ5KQorKysgV2ViQ29yZS9BbmRy
b2lkLm1rCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNyArMTM2LDYgQEAgTE9DQUxfU1JDX0ZJTEVT
IDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBcCiAJ
ZG9tL011dGF0aW9uRXZlbnQuY3BwIFwKIAlkb20vTmFtZU5vZGVMaXN0LmNwcCBcCi0JZG9tL05h
bWVkTWFwcGVkQXR0ck1hcC5jcHAgXAogCWRvbS9OYW1lZE5vZGVNYXAuY3BwIFwKIAlkb20vTm9k
ZS5jcHAgXAogCWRvbS9Ob2RlRmlsdGVyLmNwcCBcCkluZGV4OiBXZWJDb3JlL0NNYWtlTGlzdHMu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDYwMDQ5
KQorKysgV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNzg3LDcgKzc4
Nyw2IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vTW91c2VSZWxhdGVkRXZlbnQuY3Bw
CiAgICAgZG9tL011dGF0aW9uRXZlbnQuY3BwCiAgICAgZG9tL05hbWVOb2RlTGlzdC5jcHAKLSAg
ICBkb20vTmFtZWRNYXBwZWRBdHRyTWFwLmNwcAogICAgIGRvbS9OYW1lZE5vZGVNYXAuY3BwCiAg
ICAgZG9tL05vZGUuY3BwCiAgICAgZG9tL05vZGVGaWx0ZXIuY3BwCkluZGV4OiBXZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlz
aW9uIDYwMDQ5KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAt
ODI3LDggKzgyNyw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9kb20vTXV0YXRp
b25FdmVudC5oIFwKIAlXZWJDb3JlL2RvbS9OYW1lTm9kZUxpc3QuY3BwIFwKIAlXZWJDb3JlL2Rv
bS9OYW1lTm9kZUxpc3QuaCBcCi0JV2ViQ29yZS9kb20vTmFtZWRNYXBwZWRBdHRyTWFwLmNwcCBc
Ci0JV2ViQ29yZS9kb20vTmFtZWRNYXBwZWRBdHRyTWFwLmggXAogCVdlYkNvcmUvZG9tL05hbWVk
Tm9kZU1hcC5jcHAgXAogCVdlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5oIFwKIAlXZWJDb3JlL2Rv
bS9Ob2RlLmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNjAwNDkpCisrKyBXZWJDb3JlL1dlYkNvcmUu
Z3lwaQkod29ya2luZyBjb3B5KQpAQCAtMTE2MCw4ICsxMTYwLDYgQEAKICAgICAgICAgICAgICdk
b20vTXV0YXRpb25FdmVudC5oJywKICAgICAgICAgICAgICdkb20vTmFtZU5vZGVMaXN0LmNwcCcs
CiAgICAgICAgICAgICAnZG9tL05hbWVOb2RlTGlzdC5oJywKLSAgICAgICAgICAgICdkb20vTmFt
ZWRNYXBwZWRBdHRyTWFwLmNwcCcsCi0gICAgICAgICAgICAnZG9tL05hbWVkTWFwcGVkQXR0ck1h
cC5oJywKICAgICAgICAgICAgICdkb20vTmFtZWROb2RlTWFwLmNwcCcsCiAgICAgICAgICAgICAn
ZG9tL05hbWVkTm9kZU1hcC5oJywKICAgICAgICAgICAgICdkb20vTm9kZS5jcHAnLApJbmRleDog
V2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShy
ZXZpc2lvbiA2MDA0OSkKKysrIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAg
LTQ4OSw3ICs0ODksNiBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vTW91c2VFdmVudC5jcHAgXAog
ICAgIGRvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAgXAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmNw
cCBcCi0gICAgZG9tL05hbWVkTWFwcGVkQXR0ck1hcC5jcHAgXAogICAgIGRvbS9OYW1lZE5vZGVN
YXAuY3BwIFwKICAgICBkb20vTmFtZU5vZGVMaXN0LmNwcCBcCiAgICAgZG9tL05vZGUuY3BwIFwK
QEAgLTEyMTcsNyArMTIxNiw2IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9Nb3VzZVJlbGF0ZWRF
dmVudC5oIFwKICAgICBkb20vTXV0YXRpb25FdmVudC5oIFwKICAgICBkb20vTmFtZWROb2RlTWFw
LmggXAotICAgIGRvbS9OYW1lZE1hcHBlZEF0dHJNYXAuaCBcCiAgICAgZG9tL05hbWVOb2RlTGlz
dC5oIFwKICAgICBkb20vTm9kZUZpbHRlckNvbmRpdGlvbi5oIFwKICAgICBkb20vTm9kZUZpbHRl
ci5oIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24g
NjAwNDkpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTcyMSwxNCArMjk3MjEsNiBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJ
PEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cTmFtZWRNYXBwZWRBdHRyTWFwLmNwcCIN
Ci0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRv
bVxOYW1lZE1hcHBlZEF0dHJNYXAuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0K
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxOYW1lZE5vZGVNYXAuY3BwIg0KIAkJCQk+DQogCQkJ
PC9GaWxlPg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CShyZXZpc2lvbiA2MDA0OSkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zMDIzLDggKzMwMjMsNiBAQAogCQlBOEM0QTdGRDA5
RDU2MzI3MDAwM0FDOEQgLyogU3R5bGVkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDNEE3RUIwOUQ1NjMyNzAwMDNBQzhEIC8qIFN0eWxl
ZEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlBOEM0QTdGRTA5RDU2MzI3MDAwM0FDOEQgLyogU3R5bGVkRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEM0QTdFQzA5RDU2MzI3
MDAwM0FDOEQgLyogU3R5bGVkRWxlbWVudC5jcHAgKi87IH07CiAJCUE4QzRBODAwMDlENTYzMjcw
MDAzQUM4RCAvKiBOb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QzRBN0VFMDlENTYzMjcwMDAzQUM4RCAvKiBOb2RlLmNwcCAqLzsgfTsKLQkJ
QThDNEE4MDEwOUQ1NjMyNzAwMDNBQzhEIC8qIE5hbWVkTWFwcGVkQXR0ck1hcC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDNEE3RUYwOUQ1NjMyNzAw
MDNBQzhEIC8qIE5hbWVkTWFwcGVkQXR0ck1hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUE4QzRBODAyMDlENTYzMjcwMDAzQUM4RCAvKiBOYW1l
ZE1hcHBlZEF0dHJNYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThDNEE3RjAwOUQ1NjMyNzAwMDNBQzhEIC8qIE5hbWVkTWFwcGVkQXR0ck1hcC5j
cHAgKi87IH07CiAJCUE4QzRBODA3MDlENTYzMjcwMDAzQUM4RCAvKiBFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEM0QTdGNTA5RDU2MzI3
MDAwM0FDOEQgLyogRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUE4QzRBODA4MDlENTYzMjcwMDAzQUM4RCAvKiBFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzRBN0Y2MDlE
NTYzMjcwMDAzQUM4RCAvKiBFbGVtZW50LmNwcCAqLzsgfTsKIAkJQThDNEE4MDkwOUQ1NjMyNzAw
MDNBQzhEIC8qIENTU01hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEM0QTdGNzA5RDU2MzI3MDAwM0FDOEQg
LyogQ1NTTWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODQ0OSw4ICs4NDQ3LDYgQEAKIAkJQThDNEE3
RUIwOUQ1NjMyNzAwMDNBQzhEIC8qIFN0eWxlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN0eWxlZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQThDNEE3RUMwOUQ1NjMyNzAwMDNBQzhEIC8qIFN0eWxlZEVsZW1lbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlZEVsZW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEM0QTdFRTA5RDU2MzI3MDAwM0FDOEQgLyogTm9k
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm9kZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzRBN0VGMDlENTYzMjcwMDAzQUM4RCAvKiBO
YW1lZE1hcHBlZEF0dHJNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5h
bWVkTWFwcGVkQXR0ck1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEM0QTdG
MDA5RDU2MzI3MDAwM0FDOEQgLyogTmFtZWRNYXBwZWRBdHRyTWFwLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYW1lZE1hcHBlZEF0dHJNYXAuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBOEM0QTdGNTA5RDU2MzI3MDAwM0FDOEQgLyogRWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBOEM0QTdGNjA5RDU2MzI3MDAwM0FDOEQgLyogRWxlbWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWxlbWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QzRBN0Y3MDlENTYzMjcwMDAzQUM4RCAv
KiBDU1NNYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ1NTTWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NTYwLDggKzE2NTU2LDYgQEAKIAkJCQk4NTAzMUIzMzBBNDRF
RkM3MDBGOTkyRTAgLyogTXV0YXRpb25FdmVudC5jcHAgKi8sCiAJCQkJODUwMzFCMzQwQTQ0RUZD
NzAwRjk5MkUwIC8qIE11dGF0aW9uRXZlbnQuaCAqLywKIAkJCQk5M0VFQzFGMzA5QzI4Nzc3MDBD
NTE1RDEgLyogTXV0YXRpb25FdmVudC5pZGwgKi8sCi0JCQkJQThDNEE3RjAwOUQ1NjMyNzAwMDNB
QzhEIC8qIE5hbWVkTWFwcGVkQXR0ck1hcC5jcHAgKi8sCi0JCQkJQThDNEE3RUYwOUQ1NjMyNzAw
MDNBQzhEIC8qIE5hbWVkTWFwcGVkQXR0ck1hcC5oICovLAogCQkJCUJDRjM0QTM2MTFBMjMxQ0Qw
MEM3MTgwNCAvKiBOYW1lZE5vZGVNYXAuY3BwICovLAogCQkJCUE4MTg3MjE4MDk3N0QzQzAwMDU4
MjZEOSAvKiBOYW1lZE5vZGVNYXAuaCAqLywKIAkJCQk4NUFDQTlGOTBBOUI2MzEwMDA2NzFFOTAg
LyogTmFtZWROb2RlTWFwLmlkbCAqLywKQEAgLTE4NDcxLDcgKzE4NDY1LDYgQEAKIAkJCQk4NTAz
MUI0ODBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VSZWxhdGVkRXZlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzMzA5REZDMDk5RTY0OTIwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNEEwQTQ0RUZDNzAwRjk5MkUwIC8qIE11dGF0aW9u
RXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzRBODAxMDlENTYzMjcwMDAzQUM4RCAvKiBO
YW1lZE1hcHBlZEF0dHJNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg3MjIzMDk3N0QzQzAw
MDU4MjZEOSAvKiBOYW1lZE5vZGVNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg3MjFFMDk3
N0QzQzAwMDU4MjZEOSAvKiBOYW1lTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMEI5
QjZDMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjA4NTksNyArMjA4NTIsNiBAQAogCQkJCTg1MDMxQjQ3MEE0NEVGQzcwMEY5OTJF
MCAvKiBNb3VzZVJlbGF0ZWRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOURGQjA5
OUU2NDkyMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODUwMzFCNDkwQTQ0RUZDNzAwRjk5MkUwIC8qIE11dGF0aW9uRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQThDNEE4MDIwOUQ1NjMyNzAwMDNBQzhEIC8qIE5hbWVkTWFwcGVkQXR0
ck1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODE4NzIyNDA5NzdEM0MwMDA1ODI2RDkgLyog
TmFtZU5vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMEI5QjZEMEI3NDc1OTkwMDNF
RDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTND
Q0YwNjAwQUY2Q0E3NjAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gNjAwNDkpCisrKyBX
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzNyw3
ICsxMDM3LDcgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpjYW5TaGFyZVN0eWxlV2l0aAogICAg
ICAgICAgICAgaWYgKGNsYXNzZXNNYXRjaCkgewogICAgICAgICAgICAgICAgIGJvb2wgbWFwcGVk
QXR0cnNNYXRjaCA9IHRydWU7CiAgICAgICAgICAgICAgICAgaWYgKHMtPmhhc01hcHBlZEF0dHJp
YnV0ZXMoKSkKLSAgICAgICAgICAgICAgICAgICAgbWFwcGVkQXR0cnNNYXRjaCA9IHMtPm1hcHBl
ZEF0dHJpYnV0ZXMoKS0+bWFwc0VxdWl2YWxlbnQobV9zdHlsZWRFbGVtZW50LT5tYXBwZWRBdHRy
aWJ1dGVzKCkpOworICAgICAgICAgICAgICAgICAgICBtYXBwZWRBdHRyc01hdGNoID0gcy0+bWFw
cGVkQXR0cmlidXRlcygpLT5tYXBwZWRNYXBzRXF1aXZhbGVudChtX3N0eWxlZEVsZW1lbnQtPm1h
cHBlZEF0dHJpYnV0ZXMoKSk7CiAgICAgICAgICAgICAgICAgaWYgKG1hcHBlZEF0dHJzTWF0Y2gp
IHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHMtPmlzTGluaygpKSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAobV9lbGVtZW50TGlua1N0YXRlICE9IHN0eWxlLT5pbnNpZGVMaW5rKCkp
CkBAIC0xMjU1LDcgKzEyNTUsNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBDU1NTdHlsZVNl
bGVjdG9yCiAgICAgICAgICAgICAvLyBBc2sgaWYgdGhlIEhUTUwgZWxlbWVudCBoYXMgbWFwcGVk
IGF0dHJpYnV0ZXMuCiAgICAgICAgICAgICBpZiAobV9zdHlsZWRFbGVtZW50LT5oYXNNYXBwZWRB
dHRyaWJ1dGVzKCkpIHsKICAgICAgICAgICAgICAgICAvLyBXYWxrIG91ciBhdHRyaWJ1dGUgbGlz
dCBhbmQgYWRkIGluIGVhY2ggZGVjbC4KLSAgICAgICAgICAgICAgICBjb25zdCBOYW1lZE1hcHBl
ZEF0dHJNYXAqIG1hcCA9IG1fc3R5bGVkRWxlbWVudC0+bWFwcGVkQXR0cmlidXRlcygpOworICAg
ICAgICAgICAgICAgIGNvbnN0IE5hbWVkTm9kZU1hcCogbWFwID0gbV9zdHlsZWRFbGVtZW50LT5t
YXBwZWRBdHRyaWJ1dGVzKCk7CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG1hcC0+bGVuZ3RoKCk7IGkrKykgewogICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGUq
IGF0dHIgPSBtYXAtPmF0dHJpYnV0ZUl0ZW0oaSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChh
dHRyLT5pc01hcHBlZEF0dHJpYnV0ZSgpICYmIGF0dHItPmRlY2woKSkgewpJbmRleDogV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDYwMDQ5KQorKysgV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTc1OCw3ICs3NTgsNyBAQCBLVVJMIEVsZW1lbnQ6OmJhc2VVUkkoKSBjb25zdAogCiB2
b2lkIEVsZW1lbnQ6OmNyZWF0ZUF0dHJpYnV0ZU1hcCgpIGNvbnN0CiB7Ci0gICAgbmFtZWRBdHRy
TWFwID0gTmFtZWRNYXBwZWRBdHRyTWFwOjpjcmVhdGUoY29uc3RfY2FzdDxFbGVtZW50Kj4odGhp
cykpOworICAgIG5hbWVkQXR0ck1hcCA9IE5hbWVkTm9kZU1hcDo6Y3JlYXRlKGNvbnN0X2Nhc3Q8
RWxlbWVudCo+KHRoaXMpKTsKIH0KIAogYm9vbCBFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShBdHRy
aWJ1dGUqKSBjb25zdApJbmRleDogV2ViQ29yZS9kb20vTmFtZWRNYXBwZWRBdHRyTWFwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9OYW1lZE1hcHBlZEF0dHJNYXAuY3BwCShyZXZpc2lv
biA2MDA0OSkKKysrIFdlYkNvcmUvZG9tL05hbWVkTWFwcGVkQXR0ck1hcC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtu
b2xsIChrbm9sbEBrZGUub3JnKQotICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3Rv
IChrb2l2aXN0b0BrZGUub3JnKQotICogICAgICAgICAgIChDKSAyMDAxIFBldGVyIEtlbGx5IChw
bWtAcG9zdC5jb20pCi0gKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVy
QGtkZS5vcmcpCi0gKiAgICAgICAgICAgKEMpIDIwMDcgRGF2aWQgU21pdGggKGNhdGZpc2gubWFu
QGdtYWlsLmNvbSkKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgot
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJOYW1lZE1hcHBlZEF0dHJNYXAuaCIKLQotI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgotI2luY2x1
ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRWxlbWVudC5oIgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLWludCBOYW1lZE1hcHBlZEF0dHJNYXA6OmRlY2xDb3VudCgpIGNvbnN0Ci17Ci0gICAg
aW50IHJlc3VsdCA9IDA7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aCgpOyBp
KyspIHsKLSAgICAgICAgQXR0cmlidXRlKiBhdHRyID0gYXR0cmlidXRlSXRlbShpKTsKLSAgICAg
ICAgaWYgKGF0dHItPmlzTWFwcGVkQXR0cmlidXRlKCkgJiYgYXR0ci0+ZGVjbCgpKQotICAgICAg
ICAgICAgcmVzdWx0Kys7Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWJvb2wgTmFt
ZWRNYXBwZWRBdHRyTWFwOjptYXBzRXF1aXZhbGVudChjb25zdCBOYW1lZE1hcHBlZEF0dHJNYXAq
IG90aGVyTWFwKSBjb25zdAotewotICAgIC8vIFRoZSAjIG9mIGRlY2xzIG11c3QgbWF0Y2guCi0g
ICAgaWYgKGRlY2xDb3VudCgpICE9IG90aGVyTWFwLT5kZWNsQ291bnQoKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIAotICAgIC8vIFRoZSB2YWx1ZXMgZm9yIGVhY2ggZGVjbCBtdXN0IG1h
dGNoLgotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGgoKTsgaSsrKSB7Ci0gICAg
ICAgIEF0dHJpYnV0ZSogYXR0ciA9IGF0dHJpYnV0ZUl0ZW0oaSk7Ci0gICAgICAgIGlmIChhdHRy
LT5pc01hcHBlZEF0dHJpYnV0ZSgpICYmIGF0dHItPmRlY2woKSkgewotICAgICAgICAgICAgQXR0
cmlidXRlKiBvdGhlckF0dHIgPSBvdGhlck1hcC0+Z2V0QXR0cmlidXRlSXRlbShhdHRyLT5uYW1l
KCkpOwotICAgICAgICAgICAgaWYgKCFvdGhlckF0dHIgfHwgKGF0dHItPnZhbHVlKCkgIT0gb3Ro
ZXJBdHRyLT52YWx1ZSgpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
IH0KLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgTmFtZWRNYXBwZWRBdHRyTWFw
OjpzZXRDbGFzcyhjb25zdCBTdHJpbmcmIGNsYXNzU3RyKSAKLXsgCi0gICAgaWYgKCFlbGVtZW50
KCktPmhhc0NsYXNzKCkpIHsgCi0gICAgICAgIG1fY2xhc3NOYW1lcy5jbGVhcigpOyAKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fY2xhc3NOYW1lcy5zZXQoY2xhc3NTdHIsIGVsZW1l
bnQoKS0+ZG9jdW1lbnQoKS0+aW5Db21wYXRNb2RlKCkpOyAKLX0KLQotfQpJbmRleDogV2ViQ29y
ZS9kb20vTmFtZWRNYXBwZWRBdHRyTWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vTmFt
ZWRNYXBwZWRBdHRyTWFwLmgJKHJldmlzaW9uIDYwMDQ5KQorKysgV2ViQ29yZS9kb20vTmFtZWRN
YXBwZWRBdHRyTWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogICAgICAgICAg
IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQotICogICAgICAgICAg
IChDKSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20pCi0gKiAgICAgICAgICAgKEMpIDIw
MDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiAgICAgICAgICAgKEMpIDIwMDcg
RGF2aWQgU21pdGggKGNhdGZpc2gubWFuQGdtYWlsLmNvbSkKLSAqIENvcHlyaWdodCAoQykgMjAw
MywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot
ICoKLSAqLwotCi0jaWZuZGVmIE5hbWVkTWFwcGVkQXR0ck1hcF9oCi0jZGVmaW5lIE5hbWVkTWFw
cGVkQXR0ck1hcF9oCi0KLSNpbmNsdWRlICJOYW1lZE5vZGVNYXAuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1jbGFzcyBOYW1lZE1hcHBlZEF0dHJNYXAgOiBwdWJsaWMgTmFtZWROb2RlTWFw
IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxOYW1lZE1hcHBlZEF0dHJNYXA+IGNy
ZWF0ZShFbGVtZW50KiBlbGVtZW50ID0gMCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IE5hbWVkTWFw
cGVkQXR0ck1hcChlbGVtZW50KSk7IH0KLQotICAgIHZvaWQgY2xlYXJDbGFzcygpIHsgbV9jbGFz
c05hbWVzLmNsZWFyKCk7IH0KLSAgICB2b2lkIHNldENsYXNzKGNvbnN0IFN0cmluZyYpOwotICAg
IGNvbnN0IFNwYWNlU3BsaXRTdHJpbmcmIGNsYXNzTmFtZXMoKSBjb25zdCB7IHJldHVybiBtX2Ns
YXNzTmFtZXM7IH0KLQotICAgIGJvb2wgaGFzTWFwcGVkQXR0cmlidXRlcygpIGNvbnN0IHsgcmV0
dXJuIG1fbWFwcGVkQXR0cmlidXRlQ291bnQgPiAwOyB9Ci0gICAgdm9pZCBkZWNsUmVtb3ZlZCgp
IHsgbV9tYXBwZWRBdHRyaWJ1dGVDb3VudC0tOyB9Ci0gICAgdm9pZCBkZWNsQWRkZWQoKSB7IG1f
bWFwcGVkQXR0cmlidXRlQ291bnQrKzsgfQotCi0gICAgYm9vbCBtYXBzRXF1aXZhbGVudChjb25z
dCBOYW1lZE1hcHBlZEF0dHJNYXAqKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBOYW1lZE1hcHBl
ZEF0dHJNYXAoRWxlbWVudCogZWxlbWVudCkgOiBOYW1lZE5vZGVNYXAoZWxlbWVudCkgeyB9Ci0K
LSAgICBpbnQgZGVjbENvdW50KCkgY29uc3Q7Ci19OwotCi19IC8vbmFtZXNwYWNlCi0KLSNlbmRp
ZgpJbmRleDogV2ViQ29yZS9kb20vTmFtZWROb2RlTWFwLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9OYW1lZE5vZGVNYXAuY3BwCShyZXZpc2lvbiA2MDA0OSkKKysrIFdlYkNvcmUvZG9t
L05hbWVkTm9kZU1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwMiw2ICszMDIsMjkgQEAgdm9p
ZCBOYW1lZE5vZGVNYXA6OnJlbW92ZUF0dHJpYnV0ZShjb25zdAogICAgIH0KIH0KIAordm9pZCBO
YW1lZE5vZGVNYXA6OnNldENsYXNzKGNvbnN0IFN0cmluZyYgY2xhc3NTdHIpIAoreyAKKyAgICBp
ZiAoIWVsZW1lbnQoKS0+aGFzQ2xhc3MoKSkgeyAKKyAgICAgICAgbV9jbGFzc05hbWVzLmNsZWFy
KCk7IAorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9jbGFzc05hbWVzLnNldChjbGFz
c1N0ciwgZWxlbWVudCgpLT5kb2N1bWVudCgpLT5pbkNvbXBhdE1vZGUoKSk7IAorfQorCitpbnQg
TmFtZWROb2RlTWFwOjpkZWNsQ291bnQoKSBjb25zdAoreworICAgIGludCByZXN1bHQgPSAwOwor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGgoKTsgaSsrKSB7CisgICAgICAgIEF0
dHJpYnV0ZSogYXR0ciA9IGF0dHJpYnV0ZUl0ZW0oaSk7CisgICAgICAgIGlmIChhdHRyLT5kZWNs
KCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChhdHRyLT5pc01hcHBlZEF0dHJpYnV0ZSgpKTsKKyAg
ICAgICAgICAgIHJlc3VsdCsrOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7
Cit9CisKIGJvb2wgTmFtZWROb2RlTWFwOjptYXBzRXF1aXZhbGVudChjb25zdCBOYW1lZE5vZGVN
YXAqIG90aGVyTWFwKSBjb25zdAogewogICAgIGlmICghb3RoZXJNYXApCkBAIC0zMTIsOSArMzM1
LDggQEAgYm9vbCBOYW1lZE5vZGVNYXA6Om1hcHNFcXVpdmFsZW50KGNvbnN0IAogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbjsgaSsr
KSB7Ci0gICAgICAgIEF0dHJpYnV0ZSAqYXR0ciA9IGF0dHJpYnV0ZUl0ZW0oaSk7Ci0gICAgICAg
IEF0dHJpYnV0ZSAqb3RoZXJBdHRyID0gb3RoZXJNYXAtPmdldEF0dHJpYnV0ZUl0ZW0oYXR0ci0+
bmFtZSgpKTsKLSAgICAgICAgICAgIAorICAgICAgICBBdHRyaWJ1dGUqIGF0dHIgPSBhdHRyaWJ1
dGVJdGVtKGkpOworICAgICAgICBBdHRyaWJ1dGUqIG90aGVyQXR0ciA9IG90aGVyTWFwLT5nZXRB
dHRyaWJ1dGVJdGVtKGF0dHItPm5hbWUoKSk7CiAgICAgICAgIGlmICghb3RoZXJBdHRyIHx8IGF0
dHItPnZhbHVlKCkgIT0gb3RoZXJBdHRyLT52YWx1ZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KQEAgLTMyMiw0ICszNDQsMjQgQEAgYm9vbCBOYW1lZE5vZGVNYXA6Om1hcHNF
cXVpdmFsZW50KGNvbnN0IAogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIE5hbWVkTm9kZU1h
cDo6bWFwcGVkTWFwc0VxdWl2YWxlbnQoY29uc3QgTmFtZWROb2RlTWFwKiBvdGhlck1hcCkgY29u
c3QKK3sKKyAgICAvLyBUaGUgIyBvZiBkZWNscyBtdXN0IG1hdGNoLgorICAgIGlmIChkZWNsQ291
bnQoKSAhPSBvdGhlck1hcC0+ZGVjbENvdW50KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAKKyAgICAvLyBUaGUgdmFsdWVzIGZvciBlYWNoIGRlY2wgbXVzdCBtYXRjaC4KKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoKCk7IGkrKykgeworICAgICAgICBBdHRyaWJ1dGUq
IGF0dHIgPSBhdHRyaWJ1dGVJdGVtKGkpOworICAgICAgICBpZiAoYXR0ci0+ZGVjbCgpKSB7Cisg
ICAgICAgICAgICBBU1NFUlQoYXR0ci0+aXNNYXBwZWRBdHRyaWJ1dGUoKSk7CisKKyAgICAgICAg
ICAgIEF0dHJpYnV0ZSogb3RoZXJBdHRyID0gb3RoZXJNYXAtPmdldEF0dHJpYnV0ZUl0ZW0oYXR0
ci0+bmFtZSgpKTsKKyAgICAgICAgICAgIGlmICghb3RoZXJBdHRyIHx8IGF0dHItPnZhbHVlKCkg
IT0gb3RoZXJBdHRyLT52YWx1ZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKIH0KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogV2ViQ29yZS9kb20vTmFtZWROb2RlTWFwLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vTmFtZWROb2RlTWFwLmgJKHJldmlzaW9uIDYwMDQ5KQorKysgV2ViQ29yZS9kb20v
TmFtZWROb2RlTWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE3ICs0MCwxMiBAQCB0eXBlZGVm
IGludCBFeGNlcHRpb25Db2RlOwogCiBjbGFzcyBOYW1lZE5vZGVNYXAgOiBwdWJsaWMgUmVmQ291
bnRlZDxOYW1lZE5vZGVNYXA+IHsKICAgICBmcmllbmQgY2xhc3MgRWxlbWVudDsKLQotcHJvdGVj
dGVkOgotICAgIE5hbWVkTm9kZU1hcChFbGVtZW50KiBlbGVtZW50KSAKLSAgICAgICAgOiBtX21h
cHBlZEF0dHJpYnV0ZUNvdW50KDApCi0gICAgICAgICwgbV9lbGVtZW50KGVsZW1lbnQpCitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TmFtZWROb2RlTWFwPiBjcmVhdGUoRWxlbWVudCog
ZWxlbWVudCA9IDApCiAgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE5hbWVkTm9k
ZU1hcChlbGVtZW50KSk7CiAgICAgfQogCi1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
TmFtZWROb2RlTWFwPiBjcmVhdGUoRWxlbWVudCogZWxlbWVudCkgeyByZXR1cm4gYWRvcHRSZWYo
bmV3IE5hbWVkTm9kZU1hcChlbGVtZW50KSk7IH0KLQogICAgIH5OYW1lZE5vZGVNYXAoKTsKIAog
ICAgIC8vIFB1YmxpYyBET00gaW50ZXJmYWNlLgpAQCAtOTMsNyArODgsOSBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgQXRvbWljU3RyaW5nJiBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KICAgICB2
b2lkIHNldElEKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3SWQpIHsgbV9pZCA9IG5ld0lkOyB9CiAK
KyAgICAvLyBGSVhNRTogVGhlc2UgdHdvIGZ1bmN0aW9ucyBzaG91bGQgYmUgbWVyZ2VkIGlmIHBv
c3NpYmxlLgogICAgIGJvb2wgbWFwc0VxdWl2YWxlbnQoY29uc3QgTmFtZWROb2RlTWFwKiBvdGhl
ck1hcCkgY29uc3Q7CisgICAgYm9vbCBtYXBwZWRNYXBzRXF1aXZhbGVudChjb25zdCBOYW1lZE5v
ZGVNYXAqIG90aGVyTWFwKSBjb25zdDsKIAogICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBkbyBubyBl
cnJvciBjaGVja2luZy4KICAgICB2b2lkIGFkZEF0dHJpYnV0ZShQYXNzUmVmUHRyPEF0dHJpYnV0
ZT4pOwpAQCAtMTAxLDE3ICs5OCwzMCBAQCBwdWJsaWM6CiAKICAgICBFbGVtZW50KiBlbGVtZW50
KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50OyB9CiAKLXByb3RlY3RlZDoKLSAgICBpbnQgbV9t
YXBwZWRBdHRyaWJ1dGVDb3VudDsKLSAgICBTcGFjZVNwbGl0U3RyaW5nIG1fY2xhc3NOYW1lczsK
KyAgICB2b2lkIGNsZWFyQ2xhc3MoKSB7IG1fY2xhc3NOYW1lcy5jbGVhcigpOyB9CisgICAgdm9p
ZCBzZXRDbGFzcyhjb25zdCBTdHJpbmcmKTsKKyAgICBjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBj
bGFzc05hbWVzKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc05hbWVzOyB9CisKKyAgICBib29sIGhh
c01hcHBlZEF0dHJpYnV0ZXMoKSBjb25zdCB7IHJldHVybiBtX21hcHBlZEF0dHJpYnV0ZUNvdW50
ID4gMDsgfQorICAgIHZvaWQgZGVjbFJlbW92ZWQoKSB7IG1fbWFwcGVkQXR0cmlidXRlQ291bnQt
LTsgfQorICAgIHZvaWQgZGVjbEFkZGVkKCkgeyBtX21hcHBlZEF0dHJpYnV0ZUNvdW50Kys7IH0K
IAogcHJpdmF0ZToKKyAgICBOYW1lZE5vZGVNYXAoRWxlbWVudCogZWxlbWVudCkgCisgICAgICAg
IDogbV9tYXBwZWRBdHRyaWJ1dGVDb3VudCgwKQorICAgICAgICAsIG1fZWxlbWVudChlbGVtZW50
KQorICAgIHsKKyAgICB9CisKICAgICB2b2lkIGRldGFjaEF0dHJpYnV0ZXNGcm9tRWxlbWVudCgp
OwogICAgIHZvaWQgZGV0YWNoRnJvbUVsZW1lbnQoKTsKICAgICBBdHRyaWJ1dGUqIGdldEF0dHJp
YnV0ZUl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIHNob3VsZElnbm9yZUF0dHJpYnV0ZUNh
c2UpIGNvbnN0OwogICAgIEF0dHJpYnV0ZSogZ2V0QXR0cmlidXRlSXRlbVNsb3dDYXNlKGNvbnN0
IFN0cmluZyYgbmFtZSwgYm9vbCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKSBjb25zdDsKICAg
ICB2b2lkIGNsZWFyQXR0cmlidXRlcygpOwotICAgIAorICAgIGludCBkZWNsQ291bnQoKSBjb25z
dDsKKworICAgIGludCBtX21hcHBlZEF0dHJpYnV0ZUNvdW50OworICAgIFNwYWNlU3BsaXRTdHJp
bmcgbV9jbGFzc05hbWVzOwogICAgIEVsZW1lbnQqIG1fZWxlbWVudDsKICAgICBWZWN0b3I8UmVm
UHRyPEF0dHJpYnV0ZT4gPiBtX2F0dHJpYnV0ZXM7CiAgICAgQXRvbWljU3RyaW5nIG1faWQ7Cklu
ZGV4OiBXZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9k
b20vU3R5bGVkRWxlbWVudC5oCShyZXZpc2lvbiA2MDA0OSkKKysrIFdlYkNvcmUvZG9tL1N0eWxl
ZEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkNT
U1ByaW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIk1hcHBl
ZEF0dHJpYnV0ZUVudHJ5LmgiCi0jaW5jbHVkZSAiTmFtZWRNYXBwZWRBdHRyTWFwLmgiCisjaW5j
bHVkZSAiTmFtZWROb2RlTWFwLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDAsOCAr
NDAsOCBAQCBjbGFzcyBTdHlsZWRFbGVtZW50IDogcHVibGljIEVsZW1lbnQgewogcHVibGljOgog
ICAgIHZpcnR1YWwgflN0eWxlZEVsZW1lbnQoKTsKIAotICAgIE5hbWVkTWFwcGVkQXR0ck1hcCog
bWFwcGVkQXR0cmlidXRlcygpIHsgcmV0dXJuIHN0YXRpY19jYXN0PE5hbWVkTWFwcGVkQXR0ck1h
cCo+KG5hbWVkQXR0ck1hcC5nZXQoKSk7IH0KLSAgICBjb25zdCBOYW1lZE1hcHBlZEF0dHJNYXAq
IG1hcHBlZEF0dHJpYnV0ZXMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxOYW1lZE1hcHBl
ZEF0dHJNYXAqPihuYW1lZEF0dHJNYXAuZ2V0KCkpOyB9CisgICAgTmFtZWROb2RlTWFwKiBtYXBw
ZWRBdHRyaWJ1dGVzKCkgeyByZXR1cm4gbmFtZWRBdHRyTWFwLmdldCgpOyB9CisgICAgY29uc3Qg
TmFtZWROb2RlTWFwKiBtYXBwZWRBdHRyaWJ1dGVzKCkgY29uc3QgeyByZXR1cm4gbmFtZWRBdHRy
TWFwLmdldCgpOyB9CiAKICAgICBib29sIGhhc01hcHBlZEF0dHJpYnV0ZXMoKSBjb25zdCB7IHJl
dHVybiBuYW1lZEF0dHJNYXAgJiYgbWFwcGVkQXR0cmlidXRlcygpLT5oYXNNYXBwZWRBdHRyaWJ1
dGVzKCk7IH0KICAgICBib29sIGlzTWFwcGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUpIGNvbnN0IHsgTWFwcGVkQXR0cmlidXRlRW50cnkgcmVzID0gZU5vbmU7IG1hcFRvRW50
cnkobmFtZSwgcmVzKTsgcmV0dXJuIHJlcyAhPSBlTm9uZTsgfQpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUw1VG9rZW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTDVUb2tlbi5oCShy
ZXZpc2lvbiA2MDA0OSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MNVRva2VuLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgSFRNTDVUb2tlbl9oCiAjZGVmaW5lIEhUTUw1
VG9rZW5faAogCi0jaW5jbHVkZSAiTmFtZWRNYXBwZWRBdHRyTWFwLmgiCisjaW5jbHVkZSAiTmFt
ZWROb2RlTWFwLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5jcHAJKHJldmlzaW9uIDYwMDQ5
KQorKysgV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTIsNyArNTIsNyBAQCBzdGF0aWMgdm9pZCBjb252ZXJ0VG9PbGRTdHlsZShIVE1MNVRva2VuCiAg
ICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gU3RyaW5nKFN0cmluZ0ltcGw6OmFkb3B0KGl0
ZXItPm1fdmFsdWUpKTsKICAgICAgICAgICAgICAgICBSZWZQdHI8QXR0cmlidXRlPiBtYXBwZWRB
dHRyaWJ1dGUgPSBBdHRyaWJ1dGU6OmNyZWF0ZU1hcHBlZChuYW1lLCB2YWx1ZSk7CiAgICAgICAg
ICAgICAgICAgaWYgKCFvbGRTdHlsZVRva2VuLmF0dHJzKQotICAgICAgICAgICAgICAgICAgICBv
bGRTdHlsZVRva2VuLmF0dHJzID0gTmFtZWRNYXBwZWRBdHRyTWFwOjpjcmVhdGUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgb2xkU3R5bGVUb2tlbi5hdHRycyA9IE5hbWVkTm9kZU1hcDo6Y3JlYXRl
KCk7CiAgICAgICAgICAgICAgICAgb2xkU3R5bGVUb2tlbi5hdHRycy0+aW5zZXJ0QXR0cmlidXRl
KG1hcHBlZEF0dHJpYnV0ZS5yZWxlYXNlKCksIGZhbHNlKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkocmV2aXNpb24gNjAwNDkpCisr
KyBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0
Miw3ICs4NDIsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldElucHV0VHlwZShjb25zCiAg
ICAgICAgICAgICAgICAgcmVnaXN0ZXJGb3JBY3RpdmF0aW9uQ2FsbGJhY2tJZk5lZWRlZCgpOwog
CiAgICAgICAgICAgICBpZiAoZGlkUmVzcGVjdEhlaWdodEFuZFdpZHRoICE9IHdpbGxSZXNwZWN0
SGVpZ2h0QW5kV2lkdGgpIHsKLSAgICAgICAgICAgICAgICBOYW1lZE1hcHBlZEF0dHJNYXAqIG1h
cCA9IG1hcHBlZEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgICAgICAgICBOYW1lZE5vZGVNYXAqIG1h
cCA9IG1hcHBlZEF0dHJpYnV0ZXMoKTsKICAgICAgICAgICAgICAgICBBU1NFUlQobWFwKTsKICAg
ICAgICAgICAgICAgICBpZiAoQXR0cmlidXRlKiBoZWlnaHQgPSBtYXAtPmdldEF0dHJpYnV0ZUl0
ZW0oaGVpZ2h0QXR0cikpCiAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZUNoYW5nZWQoaGVp
Z2h0LCBmYWxzZSk7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL0hUTUxQYXJzZXIuY3BwCShyZXZpc2lvbiA2MDA0OSkKKysrIFdl
YkNvcmUvaHRtbC9IVE1MUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU5OCw3ICsxNTk4
LDcgQEAgUGFzc1JlZlB0cjxOb2RlPiBIVE1MUGFyc2VyOjpoYW5kbGVJc2luZAogewogICAgIFJl
ZlB0cjxOb2RlPiBuID0gbmV3IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgbV9kb2N1bWVudCk7CiAK
LSAgICBOYW1lZE1hcHBlZEF0dHJNYXAqIGF0dHJzID0gdC0+YXR0cnMuZ2V0KCk7CisgICAgTmFt
ZWROb2RlTWFwKiBhdHRycyA9IHQtPmF0dHJzLmdldCgpOwogCiAgICAgUmVmUHRyPEhUTUxJc0lu
ZGV4RWxlbWVudD4gaXNJbmRleCA9IG5ldyBIVE1MSXNJbmRleEVsZW1lbnQoaXNpbmRleFRhZywg
bV9kb2N1bWVudCwgbV9jdXJyZW50Rm9ybUVsZW1lbnQuZ2V0KCkpOwogICAgIGlzSW5kZXgtPnNl
dEF0dHJpYnV0ZU1hcChhdHRycyk7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwCShyZXZpc2lv
biA2MDA0OSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTM3LDcgKzEzNyw3IEBAIGlubGluZSB2b2lkIFRva2VuOjphZGRBdHRyaWJ1dGUoQXRv
bWljU3QKICAgICAgICAgQVNTRVJUKCFhdHRyTmFtZS5jb250YWlucygnLycpKTsKICAgICAgICAg
UmVmUHRyPEF0dHJpYnV0ZT4gYSA9IEF0dHJpYnV0ZTo6Y3JlYXRlTWFwcGVkKGF0dHJOYW1lLCBh
dHRyaWJ1dGVWYWx1ZSk7CiAgICAgICAgIGlmICghYXR0cnMpIHsKLSAgICAgICAgICAgIGF0dHJz
ID0gTmFtZWRNYXBwZWRBdHRyTWFwOjpjcmVhdGUoKTsKKyAgICAgICAgICAgIGF0dHJzID0gTmFt
ZWROb2RlTWFwOjpjcmVhdGUoKTsKICAgICAgICAgICAgIGF0dHJzLT5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KDEwKTsKICAgICAgICAgfQogICAgICAgICBhdHRycy0+aW5zZXJ0QXR0cmlidXRlKGEu
cmVsZWFzZSgpLCB2aWV3U291cmNlTW9kZSk7CkBAIC0xOTQzLDcgKzE5NDMsNyBAQCBQYXNzUmVm
UHRyPE5vZGU+IEhUTUxUb2tlbml6ZXI6OnByb2Nlc3NUCiAgICAgUmVmUHRyPE5vZGU+IG47CiAg
ICAgCiAgICAgaWYgKCFtX3BhcnNlclN0b3BwZWQpIHsKLSAgICAgICAgaWYgKE5hbWVkTWFwcGVk
QXR0ck1hcCogbWFwID0gbV9jdXJyZW50VG9rZW4uYXR0cnMuZ2V0KCkpCisgICAgICAgIGlmIChO
YW1lZE5vZGVNYXAqIG1hcCA9IG1fY3VycmVudFRva2VuLmF0dHJzLmdldCgpKQogICAgICAgICAg
ICAgbWFwLT5zaHJpbmtUb0xlbmd0aCgpOwogICAgICAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgp
KQogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SFRNTFZpZXdTb3VyY2VEb2N1bWVudCo+KG1fZG9j
KS0+YWRkVmlld1NvdXJjZVRva2VuKCZtX2N1cnJlbnRUb2tlbik7CkluZGV4OiBXZWJDb3JlL2h0
bWwvSFRNTFRva2VuaXplci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVG9rZW5p
emVyLmgJKHJldmlzaW9uIDYwMDQ5KQorKysgV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsOCBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgotI2luY2x1ZGUg
Ik5hbWVkTWFwcGVkQXR0ck1hcC5oIgogI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZUVudHJ5Lmgi
CisjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgi
CiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJUb2tlbml6ZXIuaCIKQEAgLTgzLDcgKzgz
LDcgQEAgc3RydWN0IFRva2VuIHsKIAogICAgIHZvaWQgYWRkVmlld1NvdXJjZUNoYXIoVUNoYXIg
YykgeyBpZiAoIW1fc291cmNlSW5mby5nZXQoKSkgbV9zb3VyY2VJbmZvLnNldChuZXcgVmVjdG9y
PFVDaGFyPik7IG1fc291cmNlSW5mby0+YXBwZW5kKGMpOyB9CiAKLSAgICBSZWZQdHI8TmFtZWRN
YXBwZWRBdHRyTWFwPiBhdHRyczsKKyAgICBSZWZQdHI8TmFtZWROb2RlTWFwPiBhdHRyczsKICAg
ICBSZWZQdHI8U3RyaW5nSW1wbD4gdGV4dDsKICAgICBBdG9taWNTdHJpbmcgdGFnTmFtZTsKICAg
ICBib29sIGJlZ2luVGFnOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50
LmNwcAkocmV2aXNpb24gNjAwNDkpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4LDcgQEAgdm9pZCBIVE1MVmlld1Nv
dXJjZURvY3VtZW50OjpjcmVhdGVDb250YQogICAgIC8vIENyZWF0ZSBhIGxpbmUgZ3V0dGVyIGRp
diB0aGF0IGNhbiBiZSB1c2VkIHRvIG1ha2Ugc3VyZSB0aGUgZ3V0dGVyIGV4dGVuZHMgZG93biB0
aGUgaGVpZ2h0IG9mIHRoZSB3aG9sZQogICAgIC8vIGRvY3VtZW50LgogICAgIFJlZlB0cjxIVE1M
RGl2RWxlbWVudD4gZGl2ID0gbmV3IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgdGhpcyk7Ci0gICAg
UmVmUHRyPE5hbWVkTWFwcGVkQXR0ck1hcD4gYXR0cnMgPSBOYW1lZE1hcHBlZEF0dHJNYXA6OmNy
ZWF0ZSgpOworICAgIFJlZlB0cjxOYW1lZE5vZGVNYXA+IGF0dHJzID0gTmFtZWROb2RlTWFwOjpj
cmVhdGUoKTsKICAgICBhdHRycy0+YWRkQXR0cmlidXRlKEF0dHJpYnV0ZTo6Y3JlYXRlTWFwcGVk
KGNsYXNzQXR0ciwgIndlYmtpdC1saW5lLWd1dHRlci1iYWNrZHJvcCIpKTsKICAgICBkaXYtPnNl
dEF0dHJpYnV0ZU1hcChhdHRycy5yZWxlYXNlKCkpOwogICAgIGJvZHktPmFkZENoaWxkKGRpdik7
CkBAIC0yMTEsNyArMjExLDcgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MVmlld1NvdXJjZURv
Y3VtZQogICAgIH0KIAogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gc3BhbiA9IEhUTUxFbGVtZW50
OjpjcmVhdGUoc3BhblRhZywgdGhpcyk7Ci0gICAgUmVmUHRyPE5hbWVkTWFwcGVkQXR0ck1hcD4g
YXR0cnMgPSBOYW1lZE1hcHBlZEF0dHJNYXA6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxOYW1lZE5v
ZGVNYXA+IGF0dHJzID0gTmFtZWROb2RlTWFwOjpjcmVhdGUoKTsKICAgICBhdHRycy0+YWRkQXR0
cmlidXRlKEF0dHJpYnV0ZTo6Y3JlYXRlTWFwcGVkKGNsYXNzQXR0ciwgY2xhc3NOYW1lKSk7CiAg
ICAgc3Bhbi0+c2V0QXR0cmlidXRlTWFwKGF0dHJzLnJlbGVhc2UoKSk7CiAgICAgbV9jdXJyZW50
LT5hZGRDaGlsZChzcGFuKTsKQEAgLTIyOCw3ICsyMjgsNyBAQCB2b2lkIEhUTUxWaWV3U291cmNl
RG9jdW1lbnQ6OmFkZExpbmUoY29uCiAgICAgCiAgICAgLy8gQ3JlYXRlIGEgY2VsbCB0aGF0IHdp
bGwgaG9sZCB0aGUgbGluZSBudW1iZXIgKGl0IGlzIGdlbmVyYXRlZCBpbiB0aGUgc3R5bGVzaGVl
dCB1c2luZyBjb3VudGVycykuCiAgICAgUmVmUHRyPEhUTUxUYWJsZUNlbGxFbGVtZW50PiB0ZCA9
IG5ldyBIVE1MVGFibGVDZWxsRWxlbWVudCh0ZFRhZywgdGhpcyk7Ci0gICAgUmVmUHRyPE5hbWVk
TWFwcGVkQXR0ck1hcD4gYXR0cnMgPSBOYW1lZE1hcHBlZEF0dHJNYXA6OmNyZWF0ZSgpOworICAg
IFJlZlB0cjxOYW1lZE5vZGVNYXA+IGF0dHJzID0gTmFtZWROb2RlTWFwOjpjcmVhdGUoKTsKICAg
ICBhdHRycy0+YWRkQXR0cmlidXRlKEF0dHJpYnV0ZTo6Y3JlYXRlTWFwcGVkKGNsYXNzQXR0ciwg
IndlYmtpdC1saW5lLW51bWJlciIpKTsKICAgICB0ZC0+c2V0QXR0cmlidXRlTWFwKGF0dHJzLnJl
bGVhc2UoKSk7CiAgICAgdHJvdy0+YWRkQ2hpbGQodGQpOwpAQCAtMjM2LDcgKzIzNiw3IEBAIHZv
aWQgSFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6YWRkTGluZShjb24KIAogICAgIC8vIENyZWF0ZSBh
IHNlY29uZCBjZWxsIGZvciB0aGUgbGluZSBjb250ZW50cwogICAgIHRkID0gbmV3IEhUTUxUYWJs
ZUNlbGxFbGVtZW50KHRkVGFnLCB0aGlzKTsKLSAgICBhdHRycyA9IE5hbWVkTWFwcGVkQXR0ck1h
cDo6Y3JlYXRlKCk7CisgICAgYXR0cnMgPSBOYW1lZE5vZGVNYXA6OmNyZWF0ZSgpOwogICAgIGF0
dHJzLT5hZGRBdHRyaWJ1dGUoQXR0cmlidXRlOjpjcmVhdGVNYXBwZWQoY2xhc3NBdHRyLCAid2Vi
a2l0LWxpbmUtY29udGVudCIpKTsKICAgICB0ZC0+c2V0QXR0cmlidXRlTWFwKGF0dHJzLnJlbGVh
c2UoKSk7CiAgICAgdHJvdy0+YWRkQ2hpbGQodGQpOwpAQCAtMjk0LDcgKzI5NCw3IEBAIFBhc3NS
ZWZQdHI8RWxlbWVudD4gSFRNTFZpZXdTb3VyY2VEb2N1bWUKICAgICAKICAgICAvLyBOb3cgY3Jl
YXRlIGEgbGluayBmb3IgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBpbnN0ZWFkIG9mIGEgc3Bhbi4KICAg
ICBSZWZQdHI8SFRNTEFuY2hvckVsZW1lbnQ+IGFuY2hvciA9IEhUTUxBbmNob3JFbGVtZW50Ojpj
cmVhdGUodGhpcyk7Ci0gICAgUmVmUHRyPE5hbWVkTWFwcGVkQXR0ck1hcD4gYXR0cnMgPSBOYW1l
ZE1hcHBlZEF0dHJNYXA6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxOYW1lZE5vZGVNYXA+IGF0dHJz
ID0gTmFtZWROb2RlTWFwOjpjcmVhdGUoKTsKICAgICBjb25zdCBjaGFyKiBjbGFzc1ZhbHVlOwog
ICAgIGlmIChpc0FuY2hvcikKICAgICAgICAgY2xhc3NWYWx1ZSA9ICJ3ZWJraXQtaHRtbC1hdHRy
aWJ1dGUtdmFsdWUgd2Via2l0LWh0bWwtZXh0ZXJuYWwtbGluayI7Cg==
</data>
<flag name="review"
          id="41315"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>