<?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>90322</bug_id>
          
          <creation_ts>2012-06-29 16:02:58 -0700</creation_ts>
          <short_desc>HTMLCollection&apos;s caches should be owned by either ElementRareData or Document</short_desc>
          <delta_ts>2012-06-29 16:56:50 -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>DOM</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>
          
          <blocked>89919</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>andersca</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>mifenton</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>660843</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-29 16:02:58 -0700</bug_when>
    <thetext>Right now, multiple Element subclasses such as HTMLFormElement and HTMLSelectElement have their own OwnPtr of HTMLCollection. Since ElementRareData already has a cache entry for each collection type, we should be using that instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660848</commentid>
    <comment_count>1</comment_count>
      <attachid>150268</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-29 16:11:57 -0700</bug_when>
    <thetext>Created attachment 150268
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660868</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-29 16:56:50 -0700</bug_when>
    <thetext>Committed r121603: &lt;http://trac.webkit.org/changeset/121603&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150268</attachid>
            <date>2012-06-29 16:11:57 -0700</date>
            <delta_ts>2012-06-29 16:15:22 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-90322-20120629161635.patch</filename>
            <type>text/plain</type>
            <size>24366</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTU5OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc5IEBACisyMDEyLTA2LTI5ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEhUTUxDb2xsZWN0aW9uJ3MgY2Fj
aGVzIHNob3VsZCBiZSBvd25lZCBieSBlaXRoZXIgRWxlbWVudFJhcmVEYXRhIG9yIERvY3VtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDMyMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQg
YWxsIGluc3RhbmNlcyBvZiBPd25QdHI8SFRNTENvbGxlY3Rpb24+IGV4Y2VwdCBvbmVzIG9uIEVs
ZW1lbnRSYXJlRGF0YSBhbmQgRG9jdW1lbnQuCisgICAgICAgIEVsZW1lbnRSYXJlRGF0YTo6ZW5z
dXJlQ2FjaGVkSFRNTENvbGxlY3Rpb24gdGhlbiBwb2x5bW9ycGhpY2FsbHkgY3JlYXRlcyBIVE1M
Q29sbGVjdGlvbiBvcgorICAgICAgICBpdHMgc3ViY2xhc3MgYXMgZGVlbWVkIG5lY2Vzc2FyeS4K
KworICAgICAgICBUaGlzIHJlZmFjdG9yaW5nIGFsbG93cyB1cyB0byBtb3ZlIEhUTUxDb2xsZWN0
aW9uIHRvIHVzZSB0aGUgc2FtZSBpbnZhbGlkYXRpb24gbW9kZWwgYXMKKyAgICAgICAgRHluYW1p
Y05vZGVMaXN0IChpbnZhbGlkYXRlZCBkdXJpbmcgRE9NIG11dGF0aW9ucykgaW4gYSBmb2xsb3cg
dXAuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmFsbCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVu
dCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dFJhcmVEYXRhOjplbnN1cmVDYWNoZWRIVE1MQ29sbGVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNhY2hlZEhUTUxDb2xsZWN0aW9uKToKKyAg
ICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoRWxlbWVudCk6CisgICAgICAgICogZG9t
L0VsZW1lbnRSYXJlRGF0YS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChFbGVtZW50
UmFyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpjYWNoZWRIVE1M
Q29sbGVjdGlvbik6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKE5vZGUpOgorICAgICAgICAqIGRvbS9O
b2RlUmFyZURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YTo6c2V0SXRlbVR5
cGUpOgorICAgICAgICAoTm9kZVJhcmVEYXRhKToKKyAgICAgICAgKiBodG1sL0NvbGxlY3Rpb25U
eXBlLmg6CisgICAgICAgICogaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpzaG91bGRJbmNsdWRlQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbGxl
Y3Rpb246OmlzQWNjZXB0YWJsZUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6
cHJvcGVydGllcyk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAoSFRN
TEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRmllbGRTZXRFbGVtZW50OjplbGVtZW50cyk6CisgICAgICAgICog
aHRtbC9IVE1MRmllbGRTZXRFbGVtZW50Lmg6CisgICAgICAgIChIVE1MRmllbGRTZXRFbGVtZW50
KToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MRm9ybUNvbGxlY3Rpb246OkhUTUxGb3JtQ29sbGVjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRm9ybUNvbGxlY3Rpb246OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9IVE1M
Rm9ybUNvbGxlY3Rpb24uaDoKKyAgICAgICAgKEhUTUxGb3JtQ29sbGVjdGlvbik6CisgICAgICAg
ICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1F
bGVtZW50OjplbGVtZW50cyk6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MT3B0aW9uc0NvbGxlY3Rpb246OkhUTUxPcHRpb25zQ29sbGVjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmNyZWF0ZSk6CisgICAgICAgICogaHRt
bC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaDoKKyAgICAgICAgKEhUTUxPcHRpb25zQ29sbGVjdGlv
bik6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2VsZWN0ZWRPcHRpb25zKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxTZWxlY3RFbGVtZW50OjpvcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
ZWxlY3RFbGVtZW50OjppbnZhbGlkYXRlU2VsZWN0ZWRJdGVtcyk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU2VsZWN0RWxlbWVudDo6c2V0UmVjYWxjTGlzdEl0ZW1zKToKKyAgICAgICAgKiBodG1s
L0hUTUxTZWxlY3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6OnJvd3MpOgorICAgICAgICAq
IGh0bWwvSFRNTFRhYmxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlUm93c0Nv
bGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlUm93c0NvbGxlY3Rpb246
OkhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZVJv
d3NDb2xsZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlUm93c0NvbGxl
Y3Rpb24uaDoKKyAgICAgICAgKEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uKToKKwogMjAxMi0wNi0y
OSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBMZXQgWGNvZGUg
aGF2ZSBpdHMgb3duIHdheSBhZnRlciByMTIxNTEzLgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCShyZXZpc2lvbiAxMjE1ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NzQ1LDkgKzQ3NDUsOSBAQCBIVE1MQ29sbGVjdGlvbiogRG9j
dW1lbnQ6OmFuY2hvcnMoKQogCiBIVE1MQWxsQ29sbGVjdGlvbiogRG9jdW1lbnQ6OmFsbCgpCiB7
Ci0gICAgaWYgKCFtX2FsbENvbGxlY3Rpb24pCi0gICAgICAgIG1fYWxsQ29sbGVjdGlvbiA9IEhU
TUxBbGxDb2xsZWN0aW9uOjpjcmVhdGUodGhpcyk7Ci0gICAgcmV0dXJuIG1fYWxsQ29sbGVjdGlv
bi5nZXQoKTsKKyAgICBpZiAoIW1fY29sbGVjdGlvbnNbRG9jQWxsXSkKKyAgICAgICAgbV9jb2xs
ZWN0aW9uc1tEb2NBbGxdID0gSFRNTEFsbENvbGxlY3Rpb246OmNyZWF0ZSh0aGlzKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEFsbENvbGxlY3Rpb24qPihtX2NvbGxlY3Rpb25zW0RvY0Fs
bF0uZ2V0KCkpOwogfQogCiBIVE1MQ29sbGVjdGlvbiogRG9jdW1lbnQ6OndpbmRvd05hbWVkSXRl
bXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJl
dmlzaW9uIDEyMTU4MikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMzk2LDcgKzEzOTYsNiBAQCBwcml2YXRlOgogICAgIEluaGVyaXRlZEJvb2wg
bV9kZXNpZ25Nb2RlOwogICAgIAogICAgIE93blB0cjxIVE1MQ29sbGVjdGlvbj4gbV9jb2xsZWN0
aW9uc1tOdW1Vbm5hbWVkRG9jdW1lbnRDYWNoZWRUeXBlc107Ci0gICAgT3duUHRyPEhUTUxBbGxD
b2xsZWN0aW9uPiBtX2FsbENvbGxlY3Rpb247CiAgICAgSGFzaFNldDxEeW5hbWljU3VidHJlZU5v
ZGVMaXN0Kj4gbV9saXN0c0ludmFsaWRhdGVkQXREb2N1bWVudDsKIAogICAgIHR5cGVkZWYgSGFz
aE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgT3duUHRyPEhUTUxOYW1lQ29sbGVjdGlvbj4gPiBOYW1l
ZENvbGxlY3Rpb25NYXA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxMjE1
ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ2LDkgKzQ2LDEyIEBACiAjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJI
VE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxG
b3JtQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIgog
I2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVSb3dzQ29s
bGVjdGlvbi5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgIk11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgiCiAjaW5jbHVkZSAiTXV0YXRpb25S
ZWNvcmQuaCIKQEAgLTIwNDQsNiArMjA0NywzNyBAQCBIVE1MQ29sbGVjdGlvbiogRWxlbWVudDo6
ZW5zdXJlQ2FjaGVkSFRNCiAgICAgcmV0dXJuIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLT5lbnN1
cmVDYWNoZWRIVE1MQ29sbGVjdGlvbih0aGlzLCB0eXBlKTsKIH0KIAorSFRNTENvbGxlY3Rpb24q
IEVsZW1lbnRSYXJlRGF0YTo6ZW5zdXJlQ2FjaGVkSFRNTENvbGxlY3Rpb24oRWxlbWVudCogZWxl
bWVudCwgQ29sbGVjdGlvblR5cGUgdHlwZSkKK3sKKyAgICBpZiAoIW1fY2FjaGVkQ29sbGVjdGlv
bnMpCisgICAgICAgIG1fY2FjaGVkQ29sbGVjdGlvbnMgPSBhZG9wdFB0cihuZXcgQ2FjaGVkSFRN
TENvbGxlY3Rpb25BcnJheSk7CisgICAgCisgICAgT3duUHRyPEhUTUxDb2xsZWN0aW9uPiYgY29s
bGVjdGlvbiA9ICgqbV9jYWNoZWRDb2xsZWN0aW9ucylbdHlwZSAtIEZpcnN0Tm9kZUNvbGxlY3Rp
b25UeXBlXTsKKyAgICBpZiAoIWNvbGxlY3Rpb24pIHsKKyAgICAgICAgaWYgKHR5cGUgPT0gVGFi
bGVSb3dzKSB7CisgICAgICAgICAgICBBU1NFUlQoZWxlbWVudC0+aGFzVGFnTmFtZSh0YWJsZVRh
ZykpOworICAgICAgICAgICAgY29sbGVjdGlvbiA9IEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uOjpj
cmVhdGUoZWxlbWVudCk7CisgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBTZWxlY3RPcHRpb25z
KSB7CisgICAgICAgICAgICBBU1NFUlQoZWxlbWVudC0+aGFzVGFnTmFtZShzZWxlY3RUYWcpKTsK
KyAgICAgICAgICAgIGNvbGxlY3Rpb24gPSBIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmNyZWF0ZShl
bGVtZW50KTsKKyAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IEZvcm1Db250cm9scykgeworICAg
ICAgICAgICAgQVNTRVJUKGVsZW1lbnQtPmhhc1RhZ05hbWUoZm9ybVRhZykgfHwgZWxlbWVudC0+
aGFzVGFnTmFtZShmaWVsZHNldFRhZykpOworICAgICAgICAgICAgY29sbGVjdGlvbiA9IEhUTUxG
b3JtQ29sbGVjdGlvbjo6Y3JlYXRlKGVsZW1lbnQpOworI2lmIEVOQUJMRShNSUNST0RBVEEpCisg
ICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBJdGVtUHJvcGVydGllcykgeworICAgICAgICAgICAg
Y29sbGVjdGlvbiA9IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6Y3JlYXRlKGVsZW1lbnQpOwor
I2VuZGlmCisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgY29sbGVjdGlvbiA9IEhUTUxDb2xs
ZWN0aW9uOjpjcmVhdGUoZWxlbWVudCwgdHlwZSk7CisgICAgfQorICAgIHJldHVybiBjb2xsZWN0
aW9uLmdldCgpOworfQorCitIVE1MQ29sbGVjdGlvbiogRWxlbWVudDo6Y2FjaGVkSFRNTENvbGxl
Y3Rpb24oQ29sbGVjdGlvblR5cGUgdHlwZSkKK3sKKyAgICByZXR1cm4gaGFzUmFyZURhdGEoKSA/
IGVsZW1lbnRSYXJlRGF0YSgpLT5jYWNoZWRIVE1MQ29sbGVjdGlvbih0eXBlKSA6IDA7Cit9CisK
IEludFNpemUgRWxlbWVudDo6c2F2ZWRMYXllclNjcm9sbE9mZnNldCgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBlbGVtZW50UmFyZURhdGEoKS0+bV9zYXZlZExheWVyU2Ny
b2xsT2Zmc2V0IDogSW50U2l6ZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCShyZXZpc2lvbiAx
MjE1ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00NDgsNiArNDQ4LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZWdp
c3RlckFzRXh0cmFOYW1lZEl0ZW0oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgSFRN
TENvbGxlY3Rpb24qIGVuc3VyZUNhY2hlZEhUTUxDb2xsZWN0aW9uKENvbGxlY3Rpb25UeXBlKTsK
KyAgICBIVE1MQ29sbGVjdGlvbiogY2FjaGVkSFRNTENvbGxlY3Rpb24oQ29sbGVjdGlvblR5cGUp
OwogCiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlSW52YWxpZEF0dHJpYnV0ZXMoKSBjb25zdDsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgJKHJldmlzaW9uIDEyMTU4MikK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAkod29ya2luZyBjb3B5KQpA
QCAtMjYsMTMgKzI2LDE0IEBACiAjaW5jbHVkZSAiRGF0YXNldERPTVN0cmluZ01hcC5oIgogI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCi0jaW5jbHVkZSAi
SFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJOYW1lZE5vZGVNYXAuaCIKICNpbmNsdWRlICJO
b2RlUmFyZURhdGEuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgSFRNTENvbGxlY3Rpb247CisKIGNsYXNzIEVsZW1lbnRSYXJlRGF0YSA6
IHB1YmxpYyBOb2RlUmFyZURhdGEgewogcHVibGljOgogICAgIEVsZW1lbnRSYXJlRGF0YSgpOwpA
QCAtNTAsMTUgKzUxLDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fY2FjaGVkQ29sbGVj
dGlvbnM7CiAgICAgfQogCi0gICAgSFRNTENvbGxlY3Rpb24qIGVuc3VyZUNhY2hlZEhUTUxDb2xs
ZWN0aW9uKEVsZW1lbnQqIGVsZW1lbnQsIENvbGxlY3Rpb25UeXBlIHR5cGUpCisgICAgSFRNTENv
bGxlY3Rpb24qIGVuc3VyZUNhY2hlZEhUTUxDb2xsZWN0aW9uKEVsZW1lbnQqLCBDb2xsZWN0aW9u
VHlwZSk7CisgICAgSFRNTENvbGxlY3Rpb24qIGNhY2hlZEhUTUxDb2xsZWN0aW9uKENvbGxlY3Rp
b25UeXBlIHR5cGUpCiAgICAgewogICAgICAgICBpZiAoIW1fY2FjaGVkQ29sbGVjdGlvbnMpCi0g
ICAgICAgICAgICBtX2NhY2hlZENvbGxlY3Rpb25zID0gYWRvcHRQdHIobmV3IENhY2hlZEhUTUxD
b2xsZWN0aW9uQXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgT3duUHRy
PEhUTUxDb2xsZWN0aW9uPiYgY29sbGVjdGlvbiA9ICgqbV9jYWNoZWRDb2xsZWN0aW9ucylbdHlw
ZSAtIEZpcnN0Tm9kZUNvbGxlY3Rpb25UeXBlXTsKLSAgICAgICAgaWYgKCFjb2xsZWN0aW9uKQot
ICAgICAgICAgICAgY29sbGVjdGlvbiA9IEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUoZWxlbWVudCwg
dHlwZSk7Ci0gICAgICAgIHJldHVybiBjb2xsZWN0aW9uLmdldCgpOworICAgICAgICByZXR1cm4g
KCptX2NhY2hlZENvbGxlY3Rpb25zKVt0eXBlIC0gRmlyc3ROb2RlQ29sbGVjdGlvblR5cGVdLmdl
dCgpOwogICAgIH0KIAogICAgIE93blB0cjxDYWNoZWRIVE1MQ29sbGVjdGlvbkFycmF5PiBtX2Nh
Y2hlZENvbGxlY3Rpb25zOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMTIxNTgyKQor
KysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzc4LDEw
ICsyNzc4LDYgQEAgdm9pZCBOb2RlOjpzZXRJdGVtVHlwZShjb25zdCBTdHJpbmcmIHZhbAogICAg
IGVuc3VyZVJhcmVEYXRhKCktPnNldEl0ZW1UeXBlKHZhbHVlKTsKIH0KIAotSFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uKiBOb2RlOjpwcm9wZXJ0aWVzKCkKLXsKLSAgICByZXR1cm4gZW5zdXJlUmFy
ZURhdGEoKS0+cHJvcGVydGllcyh0aGlzKTsKLX0KICNlbmRpZgogCiB2b2lkIE5vZGVSYXJlRGF0
YTo6Y3JlYXRlTm9kZUxpc3RzKE5vZGUqIG5vZGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHJldmlzaW9u
IDEyMTU4MikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYzMCw3ICs2MzAsNiBAQCBwdWJsaWM6CiAgICAgRE9NU2V0dGFibGVUb2tlbkxpc3QqIGl0ZW1Q
cm9wKCk7CiAgICAgRE9NU2V0dGFibGVUb2tlbkxpc3QqIGl0ZW1SZWYoKTsKICAgICBET01TZXR0
YWJsZVRva2VuTGlzdCogaXRlbVR5cGUoKTsKLSAgICBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24q
IHByb3BlcnRpZXMoKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgJKHJldmlzaW9uIDEyMTU4MikKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzA1LDE0
ICszMDUsNiBAQCBwdWJsaWM6ICAgIAogCiAgICAgICAgIG1faXRlbVR5cGUtPnNldFZhbHVlKHZh
bHVlKTsKICAgICB9Ci0KLSAgICBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24qIHByb3BlcnRpZXMo
Tm9kZSogbm9kZSkKLSAgICB7Ci0gICAgICAgIGlmICghbV9wcm9wZXJ0aWVzKQotICAgICAgICAg
ICAgbV9wcm9wZXJ0aWVzID0gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpjcmVhdGUobm9kZSk7
Ci0KLSAgICAgICAgcmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsKLSAgICB9CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCkBAIC0zNjgsNyArMzYwLDYgQEAgcHJpdmF0ZToKICAg
ICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gbV9pdGVtUHJvcDsKICAgICBt
dXRhYmxlIFJlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gbV9pdGVtUmVmOwogICAgIG11dGFi
bGUgUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBtX2l0ZW1UeXBlOwotICAgIG11dGFibGUg
T3duUHRyPEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbj4gbV9wcm9wZXJ0aWVzOwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9Db2xs
ZWN0aW9uVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvQ29sbGVjdGlv
blR5cGUuaAkocmV2aXNpb24gMTIxNTgyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9Db2xsZWN0
aW9uVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw3IEBAIGVudW0gQ29sbGVjdGlv
blR5cGUgewogICAgIE5vZGVDaGlsZHJlbiwgLy8gZmlyc3QtbGV2ZWwgY2hpbGRyZW4gKElFKQog
ICAgIFRhYmxlVEJvZGllcywgLy8gYWxsIDx0Ym9keT4gZWxlbWVudHMgaW4gdGhpcyB0YWJsZQog
ICAgIFRTZWN0aW9uUm93cywgLy8gYWxsIHJvdyBlbGVtZW50cyBpbiB0aGlzIHRhYmxlIHNlY3Rp
b24KKyAgICBUYWJsZVJvd3MsCiAgICAgVFJDZWxscywgICAgICAvLyBhbGwgY2VsbHMgaW4gdGhp
cyByb3cKICAgICBTZWxlY3RPcHRpb25zLAogICAgIFNlbGVjdGVkT3B0aW9ucywKQEAgLTU5LDE1
ICs2MCwxNCBAQCBlbnVtIENvbGxlY3Rpb25UeXBlIHsKICAgICBJdGVtUHJvcGVydGllcywgLy8g
TWljcm9kYXRhIGl0ZW0gcHJvcGVydGllcyBpbiB0aGUgZG9jdW1lbnQKICNlbmRpZgogCi0gICAg
Rm9ybUNvbnRyb2xzLAotICAgIE90aGVyQ29sbGVjdGlvbgorICAgIEZvcm1Db250cm9scwogfTsK
IAogc3RhdGljIGNvbnN0IENvbGxlY3Rpb25UeXBlIEZpcnN0VW5uYW1lZERvY3VtZW50Q2FjaGVk
VHlwZSA9IERvY0ltYWdlczsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBOdW1Vbm5hbWVkRG9jdW1l
bnRDYWNoZWRUeXBlcyA9IFdpbmRvd05hbWVkSXRlbXMgLSBEb2NJbWFnZXMgKyAxOwogCiBzdGF0
aWMgY29uc3QgQ29sbGVjdGlvblR5cGUgRmlyc3ROb2RlQ29sbGVjdGlvblR5cGUgPSBOb2RlQ2hp
bGRyZW47Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgTnVtTm9kZUNvbGxlY3Rpb25UeXBlcyA9IE90
aGVyQ29sbGVjdGlvbiAtIE5vZGVDaGlsZHJlbiArIDE7CitzdGF0aWMgY29uc3QgdW5zaWduZWQg
TnVtTm9kZUNvbGxlY3Rpb25UeXBlcyA9IEZvcm1Db250cm9scyAtIE5vZGVDaGlsZHJlbiArIDE7
CiAKIH0gLy8gbmFtZXNwYWNlCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxl
Y3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rp
b24uY3BwCShyZXZpc2lvbiAxMjE1ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xs
ZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBzdGF0aWMgYm9vbCBz
aG91bGRJbmNsdWRlQ2hpbGRyZW4oQ29sbGVjCiAgICAgY2FzZSBEb2NTY3JpcHRzOgogICAgIGNh
c2UgRG9jdW1lbnROYW1lZEl0ZW1zOgogICAgIGNhc2UgTWFwQXJlYXM6Ci0gICAgY2FzZSBPdGhl
ckNvbGxlY3Rpb246CisgICAgY2FzZSBUYWJsZVJvd3M6CiAgICAgY2FzZSBTZWxlY3RPcHRpb25z
OgogICAgIGNhc2UgU2VsZWN0ZWRPcHRpb25zOgogICAgIGNhc2UgRGF0YUxpc3RPcHRpb25zOgpA
QCAtMTUxLDcgKzE1MSw3IEBAIGlubGluZSBib29sIEhUTUxDb2xsZWN0aW9uOjppc0FjY2VwdGFi
bGUKICNlbmRpZgogICAgIGNhc2UgRm9ybUNvbnRyb2xzOgogICAgIGNhc2UgRG9jdW1lbnROYW1l
ZEl0ZW1zOgotICAgIGNhc2UgT3RoZXJDb2xsZWN0aW9uOgorICAgIGNhc2UgVGFibGVSb3dzOgog
ICAgIGNhc2UgV2luZG93TmFtZWRJdGVtczoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlzaW9uIDEy
MTU4MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05ODcsNiArOTg3LDExIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRl
eHQoY29uc3QKIHsKICAgICBzZXRUZXh0Q29udGVudCh2YWx1ZSwgZWMpOwogfQorCitIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24qIEhUTUxFbGVtZW50Ojpwcm9wZXJ0aWVzKCkKK3sKKyAgICByZXR1
cm4gZW5zdXJlQ2FjaGVkSFRNTENvbGxlY3Rpb24oSXRlbVByb3BlcnRpZXMpOworfQogI2VuZGlm
CiAKIHZvaWQgSFRNTEVsZW1lbnQ6OmFkZEhUTUxMZW5ndGhUb1N0eWxlKFN0eWxlUHJvcGVydHlT
ZXQqIHN0eWxlLCBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCShyZXZpc2lvbiAxMjE1ODIpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTk2LDYg
Kzk2LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShNSUNST0RBVEEpCiAgICAgdm9pZCBzZXRJdGVt
VmFsdWUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8TWlj
cm9EYXRhSXRlbVZhbHVlPiBpdGVtVmFsdWUoKSBjb25zdDsKKyAgICBIVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb24qIHByb3BlcnRpZXMoKTsKICNlbmRpZgogCiAjaWZuZGVmIE5ERUJVRwpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCShyZXZpc2lvbiAx
MjE1ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC05OSw5ICs5OSw3IEBAIEhUTUxMZWdlbmRFbGVtZW50KiBIVE1MRmll
bGRTZXRFbGVtZW50OjoKIAogSFRNTENvbGxlY3Rpb24qIEhUTUxGaWVsZFNldEVsZW1lbnQ6OmVs
ZW1lbnRzKCkKIHsKLSAgICBpZiAoIW1fZWxlbWVudHNDb2xsZWN0aW9uKQotICAgICAgICBtX2Vs
ZW1lbnRzQ29sbGVjdGlvbiA9IEhUTUxGb3JtQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMpOwotICAg
IHJldHVybiBtX2VsZW1lbnRzQ29sbGVjdGlvbi5nZXQoKTsKKyAgICByZXR1cm4gZW5zdXJlQ2Fj
aGVkSFRNTENvbGxlY3Rpb24oRm9ybUNvbnRyb2xzKTsKIH0KIAogdm9pZCBIVE1MRmllbGRTZXRF
bGVtZW50OjpyZWZyZXNoRWxlbWVudHNJZk5lZWRlZCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaAkocmV2aXNpb24gMTIxNTgyKQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTU5LDcgKzU5LDYgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBpbnZhbGlkYXRlRGlzYWJs
ZWRTdGF0ZVVuZGVyKEVsZW1lbnQqKTsKICAgICB2b2lkIHJlZnJlc2hFbGVtZW50c0lmTmVlZGVk
KCkgY29uc3Q7CiAKLSAgICBPd25QdHI8SFRNTEZvcm1Db2xsZWN0aW9uPiBtX2VsZW1lbnRzQ29s
bGVjdGlvbjsKICAgICBtdXRhYmxlIFZlY3RvcjxGb3JtQXNzb2NpYXRlZEVsZW1lbnQqPiBtX2Fz
c29jaWF0ZWRFbGVtZW50czsKICAgICAvLyBXaGVuIGRvbSB0cmVlIGlzIG1vZGlmaWVkLCB3ZSBo
YXZlIHRvIHJlZnJlc2ggdGhlIG1fYXNzb2NpYXRlZEVsZW1lbnRzIGFycmF5LgogICAgIG11dGFi
bGUgdWludDY0X3QgbV9kb2N1bWVudFZlcnNpb247CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29sbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAxMjE1ODIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDEy
ICszNiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogLy8gU2luY2UgdGhlIGNvbGxl
Y3Rpb25zIGFyZSB0byBiZSAibGl2ZSIsIHdlIGhhdmUgdG8gZG8gdGhlCiAvLyBjYWxjdWxhdGlv
biBldmVyeSB0aW1lIGlmIGFueXRoaW5nIGhhcyBjaGFuZ2VkLgogCi1IVE1MRm9ybUNvbGxlY3Rp
b246OkhUTUxGb3JtQ29sbGVjdGlvbihIVE1MRWxlbWVudCogYmFzZSkKK0hUTUxGb3JtQ29sbGVj
dGlvbjo6SFRNTEZvcm1Db2xsZWN0aW9uKEVsZW1lbnQqIGJhc2UpCiAgICAgOiBIVE1MQ29sbGVj
dGlvbihiYXNlLCBGb3JtQ29udHJvbHMpCiB7CisgICAgQVNTRVJUKGJhc2UtPmhhc1RhZ05hbWUo
Zm9ybVRhZykgfHwgYmFzZS0+aGFzVGFnTmFtZShmaWVsZHNldFRhZykpOwogfQogCi1QYXNzT3du
UHRyPEhUTUxGb3JtQ29sbGVjdGlvbj4gSFRNTEZvcm1Db2xsZWN0aW9uOjpjcmVhdGUoSFRNTEVs
ZW1lbnQqIGJhc2UpCitQYXNzT3duUHRyPEhUTUxGb3JtQ29sbGVjdGlvbj4gSFRNTEZvcm1Db2xs
ZWN0aW9uOjpjcmVhdGUoRWxlbWVudCogYmFzZSkKIHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3
IEhUTUxGb3JtQ29sbGVjdGlvbihiYXNlKSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1Db2xsZWN0aW9uLmgJKHJldmlzaW9uIDEyMTU4MikKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1Db2xsZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcg
QEAgY2xhc3MgUXVhbGlmaWVkTmFtZTsKIAogY2xhc3MgSFRNTEZvcm1Db2xsZWN0aW9uIDogcHVi
bGljIEhUTUxDb2xsZWN0aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxIVE1M
Rm9ybUNvbGxlY3Rpb24+IGNyZWF0ZShIVE1MRWxlbWVudCopOworICAgIHN0YXRpYyBQYXNzT3du
UHRyPEhUTUxGb3JtQ29sbGVjdGlvbj4gY3JlYXRlKEVsZW1lbnQqKTsKIAogICAgIHZpcnR1YWwg
fkhUTUxGb3JtQ29sbGVjdGlvbigpOwogCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIE5vZGUqIG5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0Owog
CiBwcml2YXRlOgotICAgIEhUTUxGb3JtQ29sbGVjdGlvbihIVE1MRWxlbWVudCopOworICAgIEhU
TUxGb3JtQ29sbGVjdGlvbihFbGVtZW50Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTmFt
ZUNhY2hlKCkgY29uc3Q7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBjYWxjTGVuZ3RoKCkgY29uc3Q7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCShyZXZpc2lvbiAx
MjE1ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTUzNyw5ICs1MzcsNyBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudDo6cmVtb3Zl
SW1nRWxlbWVudChICiAKIEhUTUxDb2xsZWN0aW9uKiBIVE1MRm9ybUVsZW1lbnQ6OmVsZW1lbnRz
KCkKIHsKLSAgICBpZiAoIW1fZWxlbWVudHNDb2xsZWN0aW9uKQotICAgICAgICBtX2VsZW1lbnRz
Q29sbGVjdGlvbiA9IEhUTUxGb3JtQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMpOwotICAgIHJldHVy
biBtX2VsZW1lbnRzQ29sbGVjdGlvbi5nZXQoKTsKKyAgICByZXR1cm4gZW5zdXJlQ2FjaGVkSFRN
TENvbGxlY3Rpb24oRm9ybUNvbnRyb2xzKTsKIH0KIAogU3RyaW5nIEhUTUxGb3JtRWxlbWVudDo6
bmFtZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgJKHJl
dmlzaW9uIDEyMTU4MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE1MCw3ICsxNTAsNiBAQCBwcml2YXRlOgogCiAgICAgRm9ybVN1
Ym1pc3Npb246OkF0dHJpYnV0ZXMgbV9hdHRyaWJ1dGVzOwogICAgIE93blB0cjxBbGlhc01hcD4g
bV9lbGVtZW50QWxpYXNlczsKLSAgICBPd25QdHI8SFRNTEZvcm1Db2xsZWN0aW9uPiBtX2VsZW1l
bnRzQ29sbGVjdGlvbjsKIAogICAgIENoZWNrZWRSYWRpb0J1dHRvbnMgbV9jaGVja2VkUmFkaW9C
dXR0b25zOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlv
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxl
Y3Rpb24uY3BwCShyZXZpc2lvbiAxMjE1ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRpb25zQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDEyICsyNywxMyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUhUTUxPcHRpb25zQ29sbGVjdGlvbjo6SFRNTE9wdGlv
bnNDb2xsZWN0aW9uKEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QpCitIVE1MT3B0aW9uc0NvbGxl
Y3Rpb246OkhUTUxPcHRpb25zQ29sbGVjdGlvbihFbGVtZW50KiBzZWxlY3QpCiAgICAgOiBIVE1M
Q29sbGVjdGlvbihzZWxlY3QsIFNlbGVjdE9wdGlvbnMpCiB7CisgICAgQVNTRVJUKHNlbGVjdC0+
aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNlbGVjdFRhZykpOwogfQogCi1QYXNzT3duUHRyPEhUTUxP
cHRpb25zQ29sbGVjdGlvbj4gSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpjcmVhdGUoSFRNTFNlbGVj
dEVsZW1lbnQqIHNlbGVjdCkKK1Bhc3NPd25QdHI8SFRNTE9wdGlvbnNDb2xsZWN0aW9uPiBIVE1M
T3B0aW9uc0NvbGxlY3Rpb246OmNyZWF0ZShFbGVtZW50KiBzZWxlY3QpCiB7CiAgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBIVE1MT3B0aW9uc0NvbGxlY3Rpb24oc2VsZWN0KSk7CiB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDEy
MTU4MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsK
IAogY2xhc3MgSFRNTE9wdGlvbnNDb2xsZWN0aW9uIDogcHVibGljIEhUTUxDb2xsZWN0aW9uIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxIVE1MT3B0aW9uc0NvbGxlY3Rpb24+IGNy
ZWF0ZShIVE1MU2VsZWN0RWxlbWVudCopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEhUTUxPcHRp
b25zQ29sbGVjdGlvbj4gY3JlYXRlKEVsZW1lbnQqKTsKIAogICAgIHZvaWQgYWRkKFBhc3NSZWZQ
dHI8SFRNTE9wdGlvbkVsZW1lbnQ+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBhZGQoUGFz
c1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4sIGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOwpA
QCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgSFRNTENvbGxlY3Rpb246OmludmFs
aWRhdGVDYWNoZUlmTmVlZGVkOwogCiBwcml2YXRlOgotICAgIEhUTUxPcHRpb25zQ29sbGVjdGlv
bihIVE1MU2VsZWN0RWxlbWVudCopOworICAgIEhUTUxPcHRpb25zQ29sbGVjdGlvbihFbGVtZW50
Kik7CiB9OwogCiB9IC8vbmFtZXNwYWNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTIxNTgyKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1MiwxNiArMzUyLDEy
IEBAIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXQKIAogSFRNTENvbGxl
Y3Rpb24qIEhUTUxTZWxlY3RFbGVtZW50OjpzZWxlY3RlZE9wdGlvbnMoKQogewotICAgIGlmICgh
bV9zZWxlY3RlZE9wdGlvbnNDb2xsZWN0aW9uKQotICAgICAgICBtX3NlbGVjdGVkT3B0aW9uc0Nv
bGxlY3Rpb24gPSBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMsIFNlbGVjdGVkT3B0aW9ucyk7
Ci0gICAgcmV0dXJuIG1fc2VsZWN0ZWRPcHRpb25zQ29sbGVjdGlvbi5nZXQoKTsKKyAgICByZXR1
cm4gZW5zdXJlQ2FjaGVkSFRNTENvbGxlY3Rpb24oU2VsZWN0ZWRPcHRpb25zKTsKIH0KIAogSFRN
TE9wdGlvbnNDb2xsZWN0aW9uKiBIVE1MU2VsZWN0RWxlbWVudDo6b3B0aW9ucygpCiB7Ci0gICAg
aWYgKCFtX29wdGlvbnNDb2xsZWN0aW9uKQotICAgICAgICBtX29wdGlvbnNDb2xsZWN0aW9uID0g
SFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpjcmVhdGUodGhpcyk7Ci0gICAgcmV0dXJuIG1fb3B0aW9u
c0NvbGxlY3Rpb24uZ2V0KCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxPcHRpb25zQ29s
bGVjdGlvbio+KGVuc3VyZUNhY2hlZEhUTUxDb2xsZWN0aW9uKFNlbGVjdE9wdGlvbnMpKTsKIH0K
IAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6dXBkYXRlTGlzdEl0ZW1TZWxlY3RlZFN0YXRlcygp
CkBAIC03MDksOCArNzA1LDggQEAgY29uc3QgVmVjdG9yPEhUTUxFbGVtZW50Kj4mIEhUTUxTZWxl
Y3RFbAogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjppbnZhbGlkYXRlU2VsZWN0ZWRJdGVtcygp
CiB7Ci0gICAgaWYgKG1fc2VsZWN0ZWRPcHRpb25zQ29sbGVjdGlvbikKLSAgICAgICAgbV9zZWxl
Y3RlZE9wdGlvbnNDb2xsZWN0aW9uLT5pbnZhbGlkYXRlQ2FjaGUoKTsKKyAgICBpZiAoSFRNTENv
bGxlY3Rpb24qIGNvbGxlY3Rpb24gPSBjYWNoZWRIVE1MQ29sbGVjdGlvbihTZWxlY3RlZE9wdGlv
bnMpKQorICAgICAgICBjb2xsZWN0aW9uLT5pbnZhbGlkYXRlQ2FjaGUoKTsKIH0KIAogdm9pZCBI
VE1MU2VsZWN0RWxlbWVudDo6c2V0UmVjYWxjTGlzdEl0ZW1zKCkKQEAgLTcyMCwxMCArNzE2LDEy
IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldFJlY2FsY0xpc3RJdGUKICAgICBtX2FjdGl2
ZVNlbGVjdGlvbkFuY2hvckluZGV4ID0gLTE7CiAgICAgc2V0T3B0aW9uc0NoYW5nZWRPblJlbmRl
cmVyKCk7CiAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwotICAgIGlmICghaW5Eb2N1bWVudCgp
ICYmIG1fb3B0aW9uc0NvbGxlY3Rpb24pCi0gICAgICAgIG1fb3B0aW9uc0NvbGxlY3Rpb24tPmlu
dmFsaWRhdGVDYWNoZUlmTmVlZGVkKCk7Ci0gICAgaWYgKCFpbkRvY3VtZW50KCkgJiYgbV9zZWxl
Y3RlZE9wdGlvbnNDb2xsZWN0aW9uKQotICAgICAgICBtX3NlbGVjdGVkT3B0aW9uc0NvbGxlY3Rp
b24tPmludmFsaWRhdGVDYWNoZUlmTmVlZGVkKCk7CisgICAgaWYgKCFpbkRvY3VtZW50KCkpIHsK
KyAgICAgICAgaWYgKEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uID0gY2FjaGVkSFRNTENvbGxl
Y3Rpb24oU2VsZWN0T3B0aW9ucykpCisgICAgICAgICAgICBjb2xsZWN0aW9uLT5pbnZhbGlkYXRl
Q2FjaGUoKTsKKyAgICB9CisgICAgaWYgKCFpbkRvY3VtZW50KCkpCisgICAgICAgIGludmFsaWRh
dGVTZWxlY3RlZEl0ZW1zKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlY2FsY0xp
c3RJdGVtcyhib29sIHVwZGF0ZVNlbGVjdGVkU3RhdGVzKSBjb25zdApJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAkocmV2aXNpb24gMTIxNTgyKQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODAs
OSArMTgwLDYgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQo
Ym9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9k
ZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7CiAKLSAgICBPd25Q
dHI8SFRNTE9wdGlvbnNDb2xsZWN0aW9uPiBtX29wdGlvbnNDb2xsZWN0aW9uOwotICAgIE93blB0
cjxIVE1MQ29sbGVjdGlvbj4gbV9zZWxlY3RlZE9wdGlvbnNDb2xsZWN0aW9uOwotCiAgICAgLy8g
bV9saXN0SXRlbXMgY29udGFpbnMgSFRNTE9wdGlvbkVsZW1lbnQsIEhUTUxPcHRHcm91cEVsZW1l
bnQsIGFuZCBIVE1MSFJFbGVtZW50IG9iamVjdHMuCiAgICAgbXV0YWJsZSBWZWN0b3I8SFRNTEVs
ZW1lbnQqPiBtX2xpc3RJdGVtczsKICAgICBWZWN0b3I8Ym9vbD4gbV9sYXN0T25DaGFuZ2VTZWxl
Y3Rpb247CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDEyMTU4MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU2Miw5ICs1NjIsNyBAQCBib29sIEhUTUxUYWJsZUVsZW1l
bnQ6OmlzVVJMQXR0cmlidXRlKGNvCiAKIEhUTUxDb2xsZWN0aW9uKiBIVE1MVGFibGVFbGVtZW50
Ojpyb3dzKCkKIHsKLSAgICBpZiAoIW1fcm93c0NvbGxlY3Rpb24pCi0gICAgICAgIG1fcm93c0Nv
bGxlY3Rpb24gPSBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMpOwotICAgIHJl
dHVybiBtX3Jvd3NDb2xsZWN0aW9uLmdldCgpOworICAgIHJldHVybiBlbnN1cmVDYWNoZWRIVE1M
Q29sbGVjdGlvbihUYWJsZVJvd3MpOwogfQogCiBIVE1MQ29sbGVjdGlvbiogSFRNTFRhYmxlRWxl
bWVudDo6dEJvZGllcygpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQu
aAkocmV2aXNpb24gMTIxNTgyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTk3LDcgKzk3LDYgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXJlIHByZXNlbnQsIHRvIG5vbmUgb3RoZXJ3aXNl
KS4KIAogICAgIHVuc2lnbmVkIHNob3J0IG1fcGFkZGluZzsKLSAgICBPd25QdHI8SFRNTFRhYmxl
Um93c0NvbGxlY3Rpb24+IG1fcm93c0NvbGxlY3Rpb247CiAgICAgUmVmUHRyPFN0eWxlUHJvcGVy
dHlTZXQ+IG1fc2hhcmVkQ2VsbFN0eWxlOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAJKHJldmlzaW9uIDEyMTU4MikKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTEsMTIgKzE1MSwxMyBAQCBIVE1MVGFibGVSb3dFbGVtZW50KiBIVE1MVGFi
bGVSb3dzQ29sbGVjCiAvLyBNdXN0IGNhbGwgZ2V0KCkgb24gdGhlIHRhYmxlIGluIGNhc2UgdGhh
dCBhcmd1bWVudCBpcyBjb21waWxlZCBiZWZvcmUgZGVyZWZlcmVuY2luZyB0aGUKIC8vIHRhYmxl
IHRvIGdldCBhdCB0aGUgY29sbGVjdGlvbiBjYWNoZS4gT3JkZXIgb2YgYXJndW1lbnQgZXZhbHVh
dGlvbiBpcyB1bmRlZmluZWQgYW5kIGNhbgogLy8gZGlmZmVyIGJldHdlZW4gY29tcGlsZXJzLgot
SFRNTFRhYmxlUm93c0NvbGxlY3Rpb246OkhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uKEhUTUxUYWJs
ZUVsZW1lbnQqIHRhYmxlKQotICAgIDogSFRNTENvbGxlY3Rpb24odGFibGUsIE90aGVyQ29sbGVj
dGlvbikKK0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uOjpIVE1MVGFibGVSb3dzQ29sbGVjdGlvbihF
bGVtZW50KiB0YWJsZSkKKyAgICA6IEhUTUxDb2xsZWN0aW9uKHRhYmxlLCBUYWJsZVJvd3MpCiB7
CisgICAgQVNTRVJUKHRhYmxlLT5oYXNUYWdOYW1lKHRhYmxlVGFnKSk7CiB9CiAKLVBhc3NPd25Q
dHI8SFRNTFRhYmxlUm93c0NvbGxlY3Rpb24+IEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uOjpjcmVh
dGUoSFRNTFRhYmxlRWxlbWVudCogdGFibGUpCitQYXNzT3duUHRyPEhUTUxUYWJsZVJvd3NDb2xs
ZWN0aW9uPiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbjo6Y3JlYXRlKEVsZW1lbnQqIHRhYmxlKQog
ewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24odGFibGUp
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0
aW9uLmgJKHJldmlzaW9uIDEyMTU4MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Um93c0NvbGxlY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzgsMTMgKzM4LDEzIEBAIGNsYXNz
IEhUTUxUYWJsZVJvd0VsZW1lbnQ7CiAKIGNsYXNzIEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uIDog
cHVibGljIEhUTUxDb2xsZWN0aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxI
VE1MVGFibGVSb3dzQ29sbGVjdGlvbj4gY3JlYXRlKEhUTUxUYWJsZUVsZW1lbnQqKTsKKyAgICBz
dGF0aWMgUGFzc093blB0cjxIVE1MVGFibGVSb3dzQ29sbGVjdGlvbj4gY3JlYXRlKEVsZW1lbnQq
KTsKIAogICAgIHN0YXRpYyBIVE1MVGFibGVSb3dFbGVtZW50KiByb3dBZnRlcihIVE1MVGFibGVF
bGVtZW50KiwgSFRNTFRhYmxlUm93RWxlbWVudCopOwogICAgIHN0YXRpYyBIVE1MVGFibGVSb3dF
bGVtZW50KiBsYXN0Um93KEhUTUxUYWJsZUVsZW1lbnQqKTsKIAogcHJpdmF0ZToKLSAgICBIVE1M
VGFibGVSb3dzQ29sbGVjdGlvbihIVE1MVGFibGVFbGVtZW50Kik7CisgICAgSFRNTFRhYmxlUm93
c0NvbGxlY3Rpb24oRWxlbWVudCopOwogCiAgICAgdmlydHVhbCBFbGVtZW50KiBpdGVtQWZ0ZXIo
Tm9kZSopIGNvbnN0IE9WRVJSSURFOwogfTsK
</data>
<flag name="review"
          id="158493"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>