<?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>97899</bug_id>
          
          <creation_ts>2012-09-28 05:28:45 -0700</creation_ts>
          <short_desc>Clean up Localizer-related functions</short_desc>
          <delta_ts>2012-09-28 08:52:09 -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>Platform</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>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>96351</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>haraken</cc>
    
    <cc>mifenton</cc>
    
    <cc>morrita</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>730542</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-28 05:28:45 -0700</bug_when>
    <thetext>Clean up Localizer-related functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730547</commentid>
    <comment_count>1</comment_count>
      <attachid>166227</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-28 05:38:58 -0700</bug_when>
    <thetext>Created attachment 166227
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730552</commentid>
    <comment_count>2</comment_count>
      <attachid>166227</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-28 05:54:38 -0700</bug_when>
    <thetext>Comment on attachment 166227
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        - Add Localizer::createDefault to improvde code readability

Nit: improvde =&gt; improve

&gt; Source/WebCore/platform/text/Localizer.h:39
&gt; +    static PassOwnPtr&lt;Localizer&gt; create(const AtomicString&amp; localeIdentifier);

Nit: localeIdentifier might not be needed. It&apos;s up to you.

&gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:88
&gt; +    return m_element-&gt;document()-&gt;getCachedLocalizer(nullAtom);

Given that you&apos;re introducing Element::localizer() as a short path for document()-&gt;getCachedLocalizer(computeInheritedLanguage()), you might also want to introduce a short path for m_element-&gt;document()-&gt;getCachedLocalizer(nullAtom). Maybe you can introduce Element::localizer(const AtomicString&amp; locale = nullAtom)?

&gt; Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.cpp:123
&gt; +    return m_element-&gt;document()-&gt;getCachedLocalizer(nullAtom);

Ditto.

&gt; Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.cpp:155
&gt; +    return m_element-&gt;document()-&gt;getCachedLocalizer(nullAtom);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730567</commentid>
    <comment_count>3</comment_count>
      <attachid>166227</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-28 06:06:21 -0700</bug_when>
    <thetext>Comment on attachment 166227
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:12
&gt;&gt; +        - Add Localizer::createDefault to improvde code readability
&gt; 
&gt; Nit: improvde =&gt; improve

will fix

&gt;&gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:88
&gt;&gt; +    return m_element-&gt;document()-&gt;getCachedLocalizer(nullAtom);
&gt; 
&gt; Given that you&apos;re introducing Element::localizer() as a short path for document()-&gt;getCachedLocalizer(computeInheritedLanguage()), you might also want to introduce a short path for m_element-&gt;document()-&gt;getCachedLocalizer(nullAtom). Maybe you can introduce Element::localizer(const AtomicString&amp; locale = nullAtom)?

I object it because a Localizer with nullAtom is not a object associated to this Element.
However, adding the default argument to getCachedLocalizer() would make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730569</commentid>
    <comment_count>4</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-28 06:07:57 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; However, adding the default argument to getCachedLocalizer() would make sense.

That sounds better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730575</commentid>
    <comment_count>5</comment_count>
      <attachid>166235</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-28 06:11:52 -0700</bug_when>
    <thetext>Created attachment 166235
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730577</commentid>
    <comment_count>6</comment_count>
      <attachid>166235</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-28 06:13:57 -0700</bug_when>
    <thetext>Comment on attachment 166235
Patch 2

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

Looks OK

&gt; Source/WebCore/dom/Document.h:1163
&gt; +    // Return a Localizer for the default locale if the argumetn is null or empty.

Typo: argument</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730703</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-28 08:52:09 -0700</bug_when>
    <thetext>Committed r129903: &lt;http://trac.webkit.org/changeset/129903&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166227</attachid>
            <date>2012-09-28 05:38:58 -0700</date>
            <delta_ts>2012-09-28 06:11:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97899-20120928213815.patch</filename>
            <type>text/plain</type>
            <size>15448</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5ODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk2ODBiMjE5NTJiOTEw
MGRlYTZmMDRiYWNlMThmMzJiMDJhYzU4Mi4uODJjMjdmNDZjNTViZTAwNDdiYjQxZWIwZjYwZTk4
N2JkN2Q5MGFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTA5LTI4ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBDbGVhbiB1cCBMb2NhbGl6
ZXItcmVsYXRlZCBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk3ODk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgLSBSZW5hbWUgRG9jdW1lbnQ6OmdldExvY2FsaXplciB0byBnZXRDYWNoZWRM
b2NhbGl6ZXIKKyAgICAgICAgLSBBZGQgRWxlbWVudDo6bG9jYWxpemVyIHRvIHJlZHVjZSBjb2Rl
IHNpemUKKyAgICAgICAgLSBSZW5hbWUgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojpsb2Nh
bGl6ZXIgdG8gbG9jYWxpemVyRm9yT3duZXIgdG8KKyAgICAgICAgICBhdm9pZCBjb25mbGljdCB3
aXRoIEVsZW1lbnQ6OmxvY2FsaXplcgorICAgICAgICAtIEFkZCBMb2NhbGl6ZXI6OmNyZWF0ZURl
ZmF1bHQgdG8gaW1wcm92ZGUgY29kZSByZWFkYWJpbGl0eQorCisgICAgICAgIE5vIG5ldyB0ZXN0
cy4gVGhpcyBzaG91bGRuJ3QgbWFrZSBhbnkgYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICog
ZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVudCk6IFJlbmFtZSBnZXRMb2NhbGl6ZXIg
dG8gZ2V0Q2FjaGVkTG9jYWxpemVyCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpnZXRDYWNoZWRMb2NhbGl6ZXIpOiBkaXR0by4KKworICAg
ICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChFbGVtZW50KTogQWRkIGxvY2FsaXplciBm
dW5jdGlvbi4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50Ojpsb2NhbGl6ZXIpOiBBZGRlZAorCisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50Lmg6CisgICAgICAgIChEYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQpOiBSZW5hbWUgbG9jYWxpemVyIHRvIGxvY2FsaXplckZvck93bmVyLgorICAgICAgICAq
IGh0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHA6IGRpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpoYW5kbGVLZXlib2Fy
ZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6
bG9jYWxpemVyRm9yT3duZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmll
bGRFbGVtZW50Ojp2YWx1ZSk6CisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5o
OgorICAgICAgICAoTG9jYWxpemVyKTogQWRkIGNyZWF0ZURlZmF1bHQKKyAgICAgICAgKFdlYkNv
cmU6OkxvY2FsaXplcjo6Y3JlYXRlRGVmYXVsdCk6IEltcGxlbWVudGVkLgorCisgICAgICAgICog
aHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6dXBkYXRl
SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICBVc2UgRWxlbWVudDo6bG9jYWxpemVyLgorICAgICAg
ICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok51bWJlcklu
cHV0VHlwZTo6bG9jYWxpemVWYWx1ZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TnVtYmVy
SW5wdXRUeXBlOjpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZSk6IGRpdHRvLgorCiAyMDEyLTA5LTI4
ICBBbmRyZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IFtDYW52YXNdIGxvZyBwcm9wZXJ0eSBzZXR0ZXJzIHRvbyBhbG9uZyB3aXRoIGZ1
bmN0aW9uIGNhbGxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCA4M2FmOThlZDNh
Y2Q4YzJlNzYyNDJhNGNkZTViNDZjM2VhOWVmOTQxLi44ZWJlYTAzMWVmNzQ5NzY2NzllNTYyM2Q1
YmFiOGEyNmRkOWRkMDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMi0wOS0yOCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgQ2xlYW4gdXAgTG9jYWxpemVyLXJlbGF0ZWQgZnVuY3Rpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Nzg5OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29s
b3JQaWNrZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JQaWNrZXJDbGllbnQ6
OmxvY2FsaXplcik6IEZvbGxvdyBEb2N1bWVudDo6Z2V0TG9jYWxpemVyIHJlbmFtaW5nLgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0RhdGVQaWNrZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2VsZWN0UG9wdXBDbGllbnQ6OmxvY2FsaXplcik6IGRpdHRvLgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
bGVjdFBvcHVwQ2xpZW50Ojpsb2NhbGl6ZXIpOiBkaXR0by4KKwogMjAxMi0wOS0yNyAgS2VudCBU
YW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXNlIExvY2FsaXplciBpbiBQ
YWdlUG9wdXBDb250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDQ5ZTU4OTVk
MTU1MGI1MzZiYzQyZjViZGU2ZDI3M2YwZTdmZWY3NDkuLmNlZTYyYTAzY2QyMTA5YzRiZDNiYWNm
YTUwMWUxZGFkMzJlMThkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTItMDktMjggIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIENsZWFuIHVwIExvY2FsaXplci1yZWxhdGVkIGZ1bmN0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc4OTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9Db2xvckNob29zZXJVSUNv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb2xvckNob29zZXJVSUNvbnRyb2xsZXI6
OkNvbG9yQ2hvb3NlclVJQ29udHJvbGxlcik6CisgICAgICAgIFVzZSBMb2NhbGl6ZXI6OmNyZWF0
ZURlZmF1bHQKKyAgICAgICAgKiBzcmMvRGF0ZVRpbWVDaG9vc2VySW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkRhdGVUaW1lQ2hvb3NlckltcGw6OkRhdGVUaW1lQ2hvb3NlckltcGwpOiBkaXR0
by4KKwogMjAxMi0wOS0yOCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtYWtlIEhhc2hTZXQgbWVtb3J5IGluc3RydW1lbnRh
dGlvbiBub24taW50cnVzaXZlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBkODIzMDQxZGEz
MmQ4ODlkYTk5NGQzZDYxYjMyMTRlMWVjZGY0NjFiLi40Yzg2OTA0OGVkMGQxY2Y0N2YwMWE5ODc2
ODgwZDY1Y2FkOTdiODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTU5OTIsNyArNTk5
Miw3IEBAIGJvb2wgRG9jdW1lbnQ6OmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpIGNvbnN0CiAgICAg
cmV0dXJuICFtX3N0eWxlU2hlZXRDb2xsZWN0aW9uLT5oYXNQZW5kaW5nU2hlZXRzKCkgfHwgbV9p
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHM7CiB9CiAKLUxvY2FsaXplciYgRG9jdW1lbnQ6OmdldExv
Y2FsaXplcihjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSkKK0xvY2FsaXplciYgRG9jdW1lbnQ6
OmdldENhY2hlZExvY2FsaXplcihjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSkKIHsKICAgICBB
dG9taWNTdHJpbmcgbG9jYWxlS2V5ID0gbG9jYWxlOwogICAgIGlmIChsb2NhbGUuaXNFbXB0eSgp
IHx8ICFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpsYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJv
bFVJRW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAwNzY3MWVkMWZlYTAzZDRlOTY4
NjYyNjllZjFhM2QxMDcwYzU5NGRkLi5lMjVmOTI5YTczODgzMTAwZWY4OWRjMTZhY2QyZjAwYTk3
NjRmYmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTE2MCw3ICsxMTYwLDcgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBpblN0eWxlUmVjYWxjKCkgeyByZXR1cm4gbV9pblN0eWxlUmVjYWxjOyB9
CiAKLSAgICBMb2NhbGl6ZXImIGdldExvY2FsaXplcihjb25zdCBBdG9taWNTdHJpbmcmIGxvY2Fs
ZSk7CisgICAgTG9jYWxpemVyJiBnZXRDYWNoZWRMb2NhbGl6ZXIoY29uc3QgQXRvbWljU3RyaW5n
JiBsb2NhbGUpOwogCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBLVVJM
JiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXgg
OTE3NmY4OTc3NTUxODI4YWY5Y2UyZTM3N2MwODNlYjRjZmEyODliYy4uM2YwZWRlNTY4MGE1YTE4
YzZkNTg1MTY0Mzc3ZmJkM2Q3MTMwOWU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTc3
Myw2ICsxNzczLDExIEBAIEF0b21pY1N0cmluZyBFbGVtZW50Ojpjb21wdXRlSW5oZXJpdGVkTGFu
Z3VhZ2UoKSBjb25zdAogICAgIHJldHVybiB2YWx1ZTsKIH0KIAorTG9jYWxpemVyJiBFbGVtZW50
Ojpsb2NhbGl6ZXIoKSBjb25zdAoreworICAgIHJldHVybiBkb2N1bWVudCgpLT5nZXRDYWNoZWRM
b2NhbGl6ZXIoY29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCkpOworfQorCiB2b2lkIEVsZW1lbnQ6
OmNhbmNlbEZvY3VzQXBwZWFyYW5jZVVwZGF0ZSgpCiB7CiAgICAgaWYgKGhhc1JhcmVEYXRhKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuaAppbmRleCAwY2QyMDlkZjgyZDA3NDYzMjZiYTk2NDdkZTJjNDI0ODA2
YjZmMGU1Li5jNzA4Nzc1YmEzNjhjZWY3N2UxN2ZhMmZiNzI5NmM1MzE0MWJlODZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmgKQEAgLTQyLDYgKzQyLDcgQEAgY2xhc3MgRE9NVG9rZW5MaXN0OwogY2xhc3Mg
RWxlbWVudFJhcmVEYXRhOwogY2xhc3MgRWxlbWVudFNoYWRvdzsKIGNsYXNzIEludFNpemU7Citj
bGFzcyBMb2NhbGl6ZXI7CiBjbGFzcyBSZW5kZXJSZWdpb247CiBjbGFzcyBTaGFkb3dSb290Owog
Y2xhc3MgV2ViS2l0QW5pbWF0aW9uTGlzdDsKQEAgLTI5MSw2ICsyOTIsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0luQ2FudmFzU3VidHJlZSgpIGNvbnN0OwogCiAgICAgQXRvbWljU3RyaW5nIGNv
bXB1dGVJbmhlcml0ZWRMYW5ndWFnZSgpIGNvbnN0OworICAgIExvY2FsaXplciYgbG9jYWxpemVy
KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgLypzZW5k
VG9BbnlFdmVudCovKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCAwMjA5
YWI0OTEwNmRjN2IyOGEzN2ViZTk0OGM3ZDhiYjdhODk5MjEwLi5jNzI1YjE5ODVkNzUzZDVhMWE2
YWU5YjM4M2I0M2UxZDcyZDk5MjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAt
MjIzLDggKzIyMyw3IEBAIHZvaWQgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5
cGU6OnVwZGF0ZUlubmVyVGV4dFZhbHVlKCkKICAgICBpZiAoIW1fZGF0ZVRpbWVFZGl0RWxlbWVu
dCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9jYWxpemVyJiBsb2NhbGl6ZXIgPSBlbGVtZW50
KCktPmRvY3VtZW50KCktPmdldExvY2FsaXplcihlbGVtZW50KCktPmNvbXB1dGVJbmhlcml0ZWRM
YW5ndWFnZSgpKTsKLSAgICBEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzIGxh
eW91dFBhcmFtZXRlcnMobG9jYWxpemVyLCBjcmVhdGVTdGVwUmFuZ2UoQW55SXNEZWZhdWx0U3Rl
cCkpOworICAgIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMgbGF5b3V0UGFy
YW1ldGVycyhlbGVtZW50KCktPmxvY2FsaXplcigpLCBjcmVhdGVTdGVwUmFuZ2UoQW55SXNEZWZh
dWx0U3RlcCkpOwogCiAgICAgRGF0ZUNvbXBvbmVudHMgZGF0ZTsKICAgICBjb25zdCBib29sIGhh
c1ZhbHVlID0gcGFyc2VUb0RhdGVDb21wb25lbnRzKGVsZW1lbnQoKS0+dmFsdWUoKSwgJmRhdGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCmluZGV4IDg3Mjc5OGI0MWJi
MDZhM2JjNGFmMGM3NjdmNWMyZTRlYWYwMGEyN2MuLjMwNmJmOGZiNjQwOWNjZWQ4YTFlNDdlMDQ4
YjAxOWI4MjgwOThjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAK
QEAgLTIzNSw3ICsyMzUsNyBAQCBTdHJpbmcgTnVtYmVySW5wdXRUeXBlOjpsb2NhbGl6ZVZhbHVl
KGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkgY29uc3QKICAgICAvLyBXZSBkb24ndCBsb2Nh
bGl6ZSBzY2llbnRpZmljIG5vdGF0aW9ucy4KICAgICBpZiAocHJvcG9zZWRWYWx1ZS5maW5kKGlz
RSkgIT0gbm90Rm91bmQpCiAgICAgICAgIHJldHVybiBwcm9wb3NlZFZhbHVlOwotICAgIHJldHVy
biBlbGVtZW50KCktPmRvY3VtZW50KCktPmdldExvY2FsaXplcihlbGVtZW50KCktPmNvbXB1dGVJ
bmhlcml0ZWRMYW5ndWFnZSgpKS5jb252ZXJ0VG9Mb2NhbGl6ZWROdW1iZXIocHJvcG9zZWRWYWx1
ZSk7CisgICAgcmV0dXJuIGVsZW1lbnQoKS0+bG9jYWxpemVyKCkuY29udmVydFRvTG9jYWxpemVk
TnVtYmVyKHByb3Bvc2VkVmFsdWUpOwogfQogCiBTdHJpbmcgTnVtYmVySW5wdXRUeXBlOjp2aXNp
YmxlVmFsdWUoKSBjb25zdApAQCAtMjUwLDcgKzI1MCw3IEBAIFN0cmluZyBOdW1iZXJJbnB1dFR5
cGU6OmNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKGNvbnN0IFN0cmluZyYgdmlzaWJsZVZhbHVlKSBj
b25zCiAgICAgLy8gV2UgZG9uJ3QgbG9jYWxpemUgc2NpZW50aWZpYyBub3RhdGlvbnMuCiAgICAg
aWYgKHZpc2libGVWYWx1ZS5maW5kKGlzRSkgIT0gbm90Rm91bmQpCiAgICAgICAgIHJldHVybiB2
aXNpYmxlVmFsdWU7Ci0gICAgcmV0dXJuIGVsZW1lbnQoKS0+ZG9jdW1lbnQoKS0+Z2V0TG9jYWxp
emVyKGVsZW1lbnQoKS0+Y29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCkpLmNvbnZlcnRGcm9tTG9j
YWxpemVkTnVtYmVyKHZpc2libGVWYWx1ZSk7CisgICAgcmV0dXJuIGVsZW1lbnQoKS0+bG9jYWxp
emVyKCkuY29udmVydEZyb21Mb2NhbGl6ZWROdW1iZXIodmlzaWJsZVZhbHVlKTsKIH0KIAogYm9v
bCBOdW1iZXJJbnB1dFR5cGU6OmlzQWNjZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9z
ZWRWYWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwCmluZGV4IDJjODkzZmUwMzA3Njk3OWNjODY4NTkw
MWQ4ZTEzNDQxNGIyOGUwZTkuLmE2MzFjYzU2NDQxY2U2NjNjMTE5ZDQyNTVmYjM3YWQzNGNmNzUy
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50LmNwcApAQCAtOTUsNyArOTUsNyBAQCB2b2lkIERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBr
ZXlib2FyZEV2ZQogICAgIERPTVRpbWVTdGFtcCBkZWx0YSA9IGtleWJvYXJkRXZlbnQtPnRpbWVT
dGFtcCgpIC0gbV9sYXN0RGlnaXRDaGFyVGltZTsKICAgICBtX2xhc3REaWdpdENoYXJUaW1lID0g
MDsKIAotICAgIFN0cmluZyBudW1iZXIgPSBsb2NhbGl6ZXIoKS5jb252ZXJ0RnJvbUxvY2FsaXpl
ZE51bWJlcihTdHJpbmcoJmNoYXJDb2RlLCAxKSk7CisgICAgU3RyaW5nIG51bWJlciA9IGxvY2Fs
aXplckZvck93bmVyKCkuY29udmVydEZyb21Mb2NhbGl6ZWROdW1iZXIoU3RyaW5nKCZjaGFyQ29k
ZSwgMSkpOwogICAgIGNvbnN0IGludCBkaWdpdCA9IG51bWJlclswXSAtICcwJzsKICAgICBpZiAo
ZGlnaXQgPCAwIHx8IGRpZ2l0ID4gOSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTEzLDkgKzExMyw5
IEBAIGJvb2wgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpoYXNWYWx1ZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1faGFzVmFsdWU7CiB9CiAKLUxvY2FsaXplciYgRGF0ZVRpbWVOdW1lcmljRmll
bGRFbGVtZW50Ojpsb2NhbGl6ZXIoKSBjb25zdAorTG9jYWxpemVyJiBEYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQ6OmxvY2FsaXplckZvck93bmVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZG9j
dW1lbnQoKS0+Z2V0TG9jYWxpemVyKGxvY2FsZUlkZW50aWZpZXIoKSk7CisgICAgcmV0dXJuIGRv
Y3VtZW50KCktPmdldENhY2hlZExvY2FsaXplcihsb2NhbGVJZGVudGlmaWVyKCkpOwogfQogCiBp
bnQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjptYXhpbXVtKCkgY29uc3QKQEAgLTE3MSw3
ICsxNzEsNyBAQCBTdHJpbmcgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojp2YWx1ZSgpIGNv
bnN0CiAgICAgaWYgKCFtX2hhc1ZhbHVlKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
IAotICAgIExvY2FsaXplciYgbG9jYWxpemVyID0gdGhpcy0+bG9jYWxpemVyKCk7CisgICAgTG9j
YWxpemVyJiBsb2NhbGl6ZXIgPSBsb2NhbGl6ZXJGb3JPd25lcigpOwogICAgIGlmIChtX3Jhbmdl
Lm1heGltdW0gPiA5OTkpCiAgICAgICAgIHJldHVybiBsb2NhbGl6ZXIuY29udmVydFRvTG9jYWxp
emVkTnVtYmVyKFN0cmluZzo6Zm9ybWF0KCIlMDRkIiwgbV92YWx1ZSkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dC5oCmluZGV4IDhkMmNiY2E2ZDRkZGUzN2U4MjJjZDE5OGQ2NjgzNTVkYmU3OTM4YzIuLjhkMDZj
ZmJiMzRjZDAxNThkMTc0MjJjNTg4ZTFkMjM2MTcyMGNhYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCkBA
IC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN0ZXBVcCgpIE9WRVJS
SURFIEZJTkFMOwogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlKCkgY29uc3QgT1ZFUlJJREUgRklO
QUw7CiAKLSAgICBMb2NhbGl6ZXImIGxvY2FsaXplcigpIGNvbnN0OworICAgIExvY2FsaXplciYg
bG9jYWxpemVyRm9yT3duZXIoKSBjb25zdDsKIAogICAgIERPTVRpbWVTdGFtcCBtX2xhc3REaWdp
dENoYXJUaW1lOwogICAgIGNvbnN0IFN0cmluZyBtX3BsYWNlaG9sZGVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmgKaW5kZXggMGJhZDFkMjc5YTQ0YjdjMDUwMDhiZGQ5
NTQ1NGRlMTRkMzI1YzAxYS4uMDdkNzZhODE5OTY0ZGNjM2RkZGEwZjk2ZWQwY2NmNTZkMDY5NDQ4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5oCkBAIC0yNiw2ICsy
Niw4IEBACiAjaWZuZGVmIExvY2FsaXplcl9oCiAjZGVmaW5lIExvY2FsaXplcl9oCiAKKyNpbmNs
dWRlICJMYW5ndWFnZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM0LDEwICsz
NiwxMSBAQCBjbGFzcyBMb2NhbGl6ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExvY2Fs
aXplcik7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxMb2NhbGl6ZXI+IGNyZWF0
ZShjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxMb2NhbGl6ZXI+
IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZUlkZW50aWZpZXIpOworICAgIHN0YXRp
YyBQYXNzT3duUHRyPExvY2FsaXplcj4gY3JlYXRlRGVmYXVsdCgpOwogCiAgICAgLy8gQ29udmVy
dHMgdGhlIHNwZWNpZmllZCBudW1iZXIgc3RyaW5nIHRvIGFub3RoZXIgbnVtYmVyIHN0cmluZyBs
b2NhbGl6ZWQKLSAgICAvLyBmb3IgdGhlIGJyb3dzZXIncyBjdXJyZW50IGxvY2FsZS4gVGhlIGlu
cHV0IHN0cmluZyBtdXN0IGNvbmZvcm0gdG8gSFRNTAorICAgIC8vIGZvciB0aGlzIExvY2FsaXpl
ciBsb2NhbGUuIFRoZSBpbnB1dCBzdHJpbmcgbXVzdCBjb25mb3JtIHRvIEhUTUwKICAgICAvLyBm
bG9hdGluZy1wb2ludCBudW1iZXJzLCBhbmQgaXMgbm90IGVtcHR5LgogICAgIFN0cmluZyBjb252
ZXJ0VG9Mb2NhbGl6ZWROdW1iZXIoY29uc3QgU3RyaW5nJik7CiAKQEAgLTExNCw1ICsxMTcsMTAg
QEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzTG9jYWxpemVyRGF0YTsKIH07CiAKK2lubGluZSBQ
YXNzT3duUHRyPExvY2FsaXplcj4gTG9jYWxpemVyOjpjcmVhdGVEZWZhdWx0KCkKK3sKKyAgICBy
ZXR1cm4gTG9jYWxpemVyOjpjcmVhdGUoZGVmYXVsdExhbmd1YWdlKCkpOworfQorCiB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9D
b2xvclBpY2tlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvQ29sb3JQaWNrZXJDbGllbnQuY3BwCmluZGV4IDRhOGI1ZTliNjY2MDEyNzk3NDQzYTAz
NzJmYzBhNmY4Y2RhOGQ2NDIuLjk3Yjc1YjZhOTVmODA0MDA0YjA0MmM1ZTExNmY2MGM2YzRhM2Ex
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9D
b2xvclBpY2tlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0NvbG9yUGlja2VyQ2xpZW50LmNwcApAQCAtODUsNyArODUsNyBAQCBTdHJpbmcg
Q29sb3JQaWNrZXJDbGllbnQ6Omh0bWxTb3VyY2UoKSBjb25zdAogCiBMb2NhbGl6ZXImIENvbG9y
UGlja2VyQ2xpZW50Ojpsb2NhbGl6ZXIoKQogewotICAgIHJldHVybiBtX2VsZW1lbnQtPmRvY3Vt
ZW50KCktPmdldExvY2FsaXplcihudWxsQXRvbSk7CisgICAgcmV0dXJuIG1fZWxlbWVudC0+ZG9j
dW1lbnQoKS0+Z2V0Q2FjaGVkTG9jYWxpemVyKG51bGxBdG9tKTsKIH0KIAogdm9pZCBDb2xvclBp
Y2tlckNsaWVudDo6c2V0VmFsdWVBbmRDbG9zZVBvcHVwKGludCwgY29uc3QgU3RyaW5nJiB2YWx1
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9E
YXRlUGlja2VyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3Vw
cG9ydC9EYXRlUGlja2VyQ2xpZW50LmNwcAppbmRleCAxZTQ4NWI2YTEwOTNhMjJhODY2MjIwYTMw
YmU5MTA5NGY5ZDc0ODdmLi5mNGE4MmJjNzIwYjNhYTNhN2Y2NTI0MDE1YjI3NDQyYzMzMzhkZDU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRGF0
ZVBpY2tlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0RhdGVQaWNrZXJDbGllbnQuY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgU3RyaW5nIERh
dGVQaWNrZXJDbGllbnQ6Omh0bWxTb3VyY2UoKQogCiBMb2NhbGl6ZXImIFNlbGVjdFBvcHVwQ2xp
ZW50Ojpsb2NhbGl6ZXIoKQogewotICAgIHJldHVybiBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmdl
dExvY2FsaXplcihudWxsQXRvbSk7CisgICAgcmV0dXJuIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+
Z2V0Q2FjaGVkTG9jYWxpemVyKG51bGxBdG9tKTsKIH0KIAogdm9pZCBEYXRlUGlja2VyQ2xpZW50
OjpzZXRWYWx1ZUFuZENsb3NlUG9wdXAoaW50LCBjb25zdCBTdHJpbmcmIHZhbHVlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVw
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9TZWxl
Y3RQb3B1cENsaWVudC5jcHAKaW5kZXggMmUzMzhiZGFkMzNkY2E5NTFjZDg5YWQ3ZjI3Y2Y4MDY0
M2VmYjRkNS4uNmIwNDc0ODc0NjI3OTAwYWI0NzZhMzM4MGEyOTkyZTZjYjZkNjJjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVw
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
U2VsZWN0UG9wdXBDbGllbnQuY3BwCkBAIC0xNTIsNyArMTUyLDcgQEAgU3RyaW5nIFNlbGVjdFBv
cHVwQ2xpZW50OjpodG1sU291cmNlKCkKIAogTG9jYWxpemVyJiBTZWxlY3RQb3B1cENsaWVudDo6
bG9jYWxpemVyKCkKIHsKLSAgICByZXR1cm4gbV9lbGVtZW50LT5kb2N1bWVudCgpLT5nZXRMb2Nh
bGl6ZXIobnVsbEF0b20pOworICAgIHJldHVybiBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmdldENh
Y2hlZExvY2FsaXplcihudWxsQXRvbSk7CiB9CiAKIHZvaWQgU2VsZWN0UG9wdXBDbGllbnQ6OnNl
dFZhbHVlQW5kQ2xvc2VQb3B1cChpbnQsIGNvbnN0IFN0cmluZyYgc3RyaW5nVmFsdWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db2xvckNob29zZXJVSUNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29sb3JDaG9vc2VyVUlDb250cm9s
bGVyLmNwcAppbmRleCBkYzI1ZWRmYTFlNGIxYzQyM2JmODI1ZTkyMTA3OTViNzBkMGQ1M2E0Li41
NGQxMzRmZTYzYTcxYmRmYWM5ZWEwNzczOTdiZmQ0MTllNzg2YzJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db2xvckNob29zZXJVSUNvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbG9yQ2hvb3NlclVJQ29udHJvbGxlci5jcHAK
QEAgLTUzLDcgKzUzLDcgQEAgQ29sb3JDaG9vc2VyVUlDb250cm9sbGVyOjpDb2xvckNob29zZXJV
SUNvbnRyb2xsZXIoQ2hyb21lQ2xpZW50SW1wbCogY2hyb21lQ2xpZW4KICAgICA6IG1fY2hyb21l
Q2xpZW50KGNocm9tZUNsaWVudCkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fcG9w
dXAoMCkKLSAgICAsIG1fbG9jYWxpemVyKFdlYkNvcmU6OkxvY2FsaXplcjo6Y3JlYXRlKG51bGxB
dG9tKSkKKyAgICAsIG1fbG9jYWxpemVyKFdlYkNvcmU6OkxvY2FsaXplcjo6Y3JlYXRlRGVmYXVs
dCgpKQogewogICAgIGlmIChtX2NsaWVudC0+c2hvdWxkU2hvd1N1Z2dlc3Rpb25zKCkpCiAgICAg
ICAgIG9wZW5Qb3B1cCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
RGF0ZVRpbWVDaG9vc2VySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9EYXRl
VGltZUNob29zZXJJbXBsLmNwcAppbmRleCAwMTdjNzEyZjc3ZTg0M2VhMWQ1MGI2N2EwNWViMjI2
NGVhNTQzZDU5Li5jMzAwZTU4NGE0NWQ5MzQzNjQ4YTI2YmUwOWEyMTY2MjVkYmNjNjA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9EYXRlVGltZUNob29zZXJJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9EYXRlVGltZUNob29zZXJJbXBsLmNw
cApAQCAtNTYsNyArNTYsNyBAQCBEYXRlVGltZUNob29zZXJJbXBsOjpEYXRlVGltZUNob29zZXJJ
bXBsKENocm9tZUNsaWVudEltcGwqIGNocm9tZUNsaWVudCwgV2ViQ29yZQogICAgICwgbV9jbGll
bnQoY2xpZW50KQogICAgICwgbV9wb3B1cCgwKQogICAgICwgbV9wYXJhbWV0ZXJzKHBhcmFtZXRl
cnMpCi0gICAgLCBtX2xvY2FsaXplcihXZWJDb3JlOjpMb2NhbGl6ZXI6OmNyZWF0ZShudWxsQXRv
bSkpCisgICAgLCBtX2xvY2FsaXplcihXZWJDb3JlOjpMb2NhbGl6ZXI6OmNyZWF0ZURlZmF1bHQo
KSkKIHsKICAgICBBU1NFUlQobV9jaHJvbWVDbGllbnQpOwogICAgIEFTU0VSVChtX2NsaWVudCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166235</attachid>
            <date>2012-09-28 06:11:52 -0700</date>
            <delta_ts>2012-09-28 06:13:57 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-97899-20120928221109.patch</filename>
            <type>text/plain</type>
            <size>15608</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5ODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk2ODBiMjE5NTJiOTEw
MGRlYTZmMDRiYWNlMThmMzJiMDJhYzU4Mi4uYTVmNjE4Y2Y0ZGI3ODkzNTc3ZDJmNGI3ZWZjNGY1
YjAyYjkyODBhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA5LTI4ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBDbGVhbiB1cCBMb2NhbGl6
ZXItcmVsYXRlZCBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk3ODk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgLSBSZW5hbWUgRG9jdW1lbnQ6OmdldExvY2FsaXplciB0byBnZXRDYWNoZWRM
b2NhbGl6ZXIKKyAgICAgICAgLSBBZGQgZGVmYXVsdCBhcmd1bWVudCB0byBnZXRDYWNoZWRMb2Nh
bGl6ZXIKKyAgICAgICAgLSBBZGQgRWxlbWVudDo6bG9jYWxpemVyIHRvIHJlZHVjZSBjb2RlIHNp
emUKKyAgICAgICAgLSBSZW5hbWUgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojpsb2NhbGl6
ZXIgdG8gbG9jYWxpemVyRm9yT3duZXIgdG8KKyAgICAgICAgICBhdm9pZCBjb25mbGljdCB3aXRo
IEVsZW1lbnQ6OmxvY2FsaXplcgorICAgICAgICAtIEFkZCBMb2NhbGl6ZXI6OmNyZWF0ZURlZmF1
bHQgdG8gaW1wcm92ZSBjb2RlIHJlYWRhYmlsaXR5CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBU
aGlzIHNob3VsZG4ndCBtYWtlIGFueSBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3VtZW50KTogUmVuYW1lIGdldExvY2FsaXplciB0byBn
ZXRDYWNoZWRMb2NhbGl6ZXIsIGFuZCBhZGQgZGVmYXVsdAorICAgICAgICBhcmd1bWVudC4KKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Omdl
dENhY2hlZExvY2FsaXplcik6IGRpdHRvLgorCisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAg
ICAgICAgKEVsZW1lbnQpOiBBZGQgbG9jYWxpemVyIGZ1bmN0aW9uLgorICAgICAgICAqIGRvbS9F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmxvY2FsaXplcik6IEFkZGVk
CisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaDoK
KyAgICAgICAgKERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCk6IFJlbmFtZSBsb2NhbGl6ZXIg
dG8gbG9jYWxpemVyRm9yT3duZXIuCisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50LmNwcDogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51
bWVyaWNGaWVsZEVsZW1lbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojpsb2NhbGl6ZXJGb3JPd25lcik6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnZhbHVlKToKKworICAg
ICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVyLmg6CisgICAgICAgIChMb2NhbGl6ZXIpOiBB
ZGQgY3JlYXRlRGVmYXVsdAorICAgICAgICAoV2ViQ29yZTo6TG9jYWxpemVyOjpjcmVhdGVEZWZh
dWx0KTogSW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBodG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0Rh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZp
ZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5lclRleHRWYWx1ZSk6CisgICAgICAg
IFVzZSBFbGVtZW50Ojpsb2NhbGl6ZXIuCisgICAgICAgICogaHRtbC9OdW1iZXJJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TnVtYmVySW5wdXRUeXBlOjpsb2NhbGl6ZVZhbHVlKTog
ZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6OmNvbnZlcnRGcm9tVmlz
aWJsZVZhbHVlKTogZGl0dG8uCisKIDIwMTItMDktMjggIEFuZHJleSBBZGFpa2luICA8YWFuZHJl
eUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogW0NhbnZhc10gbG9nIHBy
b3BlcnR5IHNldHRlcnMgdG9vIGFsb25nIHdpdGggZnVuY3Rpb24gY2FsbHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQ2hhbmdlTG9nCmluZGV4IDgzYWY5OGVkM2FjZDhjMmU3NjI0MmE0Y2RlNWI0NmMzZWE5
ZWY5NDEuLjhlYmVhMDMxZWY3NDk3NjY3OWU1NjIzZDViYWI4YTI2ZGQ5ZGQwODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA5LTI4ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBDbGVhbiB1cCBMb2NhbGl6
ZXItcmVsYXRlZCBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk3ODk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db2xvclBpY2tlckNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb2xvclBpY2tlckNsaWVudDo6bG9jYWxpemVyKTogRm9sbG93IERvY3Vt
ZW50OjpnZXRMb2NhbGl6ZXIgcmVuYW1pbmcuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRGF0
ZVBpY2tlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RQb3B1cENsaWVudDo6
bG9jYWxpemVyKTogZGl0dG8uCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvU2VsZWN0UG9wdXBD
bGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0UG9wdXBDbGllbnQ6OmxvY2FsaXpl
cik6IGRpdHRvLgorCiAyMDEyLTA5LTI3ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBVc2UgTG9jYWxpemVyIGluIFBhZ2VQb3B1cENvbnRyb2xsZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNDllNTg5NWQxNTUwYjUzNmJjNDJmNWJkZTZkMjczZjBl
N2ZlZjc0OS4uY2VlNjJhMDNjZDIxMDljNGJkM2JhY2ZhNTAxZTFkYWQzMmUxOGRkNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wOS0yOCAgS2VudCBU
YW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ2xlYW4gdXAgTG9jYWxpemVy
LXJlbGF0ZWQgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05Nzg5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogc3JjL0NvbG9yQ2hvb3NlclVJQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkNvbG9yQ2hvb3NlclVJQ29udHJvbGxlcjo6Q29sb3JDaG9vc2VyVUlDb250cm9sbGVy
KToKKyAgICAgICAgVXNlIExvY2FsaXplcjo6Y3JlYXRlRGVmYXVsdAorICAgICAgICAqIHNyYy9E
YXRlVGltZUNob29zZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGF0ZVRpbWVDaG9vc2Vy
SW1wbDo6RGF0ZVRpbWVDaG9vc2VySW1wbCk6IGRpdHRvLgorCiAyMDEyLTA5LTI4ICBZdXJ5IFNl
bWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IG1ha2UgSGFzaFNldCBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIG5vbi1pbnRydXNpdmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IGQ4MjMwNDFkYTMyZDg4OWRhOTk0ZDNkNjFiMzIxNGUxZWNk
ZjQ2MWIuLjRjODY5MDQ4ZWQwZDFjZjQ3ZjAxYTk4NzY4ODBkNjVjYWQ5N2I4OTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtNTk5Miw3ICs1OTkyLDcgQEAgYm9vbCBEb2N1bWVudDo6aGF2
ZVN0eWxlc2hlZXRzTG9hZGVkKCkgY29uc3QKICAgICByZXR1cm4gIW1fc3R5bGVTaGVldENvbGxl
Y3Rpb24tPmhhc1BlbmRpbmdTaGVldHMoKSB8fCBtX2lnbm9yZVBlbmRpbmdTdHlsZXNoZWV0czsK
IH0KIAotTG9jYWxpemVyJiBEb2N1bWVudDo6Z2V0TG9jYWxpemVyKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbG9jYWxlKQorTG9jYWxpemVyJiBEb2N1bWVudDo6Z2V0Q2FjaGVkTG9jYWxpemVyKGNvbnN0
IEF0b21pY1N0cmluZyYgbG9jYWxlKQogewogICAgIEF0b21pY1N0cmluZyBsb2NhbGVLZXkgPSBs
b2NhbGU7CiAgICAgaWYgKGxvY2FsZS5pc0VtcHR5KCkgfHwgIVJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OmxhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlFbmFibGVkKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IDA3NjcxZWQxZmVhMDNkNGU5Njg2NjI2OWVmMWEzZDEwNzBjNTk0ZGQuLmM1
YTkwNmNkODE3ZGYxZmIzODhlZDFjZmU1ZmM2ZjFlZDY3NmJkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCkBAIC0xMTYwLDcgKzExNjAsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGluU3R5bGVSZWNh
bGMoKSB7IHJldHVybiBtX2luU3R5bGVSZWNhbGM7IH0KIAotICAgIExvY2FsaXplciYgZ2V0TG9j
YWxpemVyKGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlKTsKKyAgICAvLyBSZXR1cm4gYSBMb2Nh
bGl6ZXIgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBpZiB0aGUgYXJndW1ldG4gaXMgbnVsbCBvciBl
bXB0eS4KKyAgICBMb2NhbGl6ZXImIGdldENhY2hlZExvY2FsaXplcihjb25zdCBBdG9taWNTdHJp
bmcmIGxvY2FsZSA9IG51bGxBdG9tKTsKIAogcHJvdGVjdGVkOgogICAgIERvY3VtZW50KEZyYW1l
KiwgY29uc3QgS1VSTCYsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCmluZGV4IDkxNzZmODk3NzU1MTgyOGFmOWNlMmUzNzdjMDgzZWI0Y2ZhMjg5YmMuLjNm
MGVkZTU2ODBhNWExOGM2ZDU4NTE2NDM3N2ZiZDNkNzEzMDllNGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKQEAgLTE3NzMsNiArMTc3MywxMSBAQCBBdG9taWNTdHJpbmcgRWxlbWVudDo6Y29tcHV0
ZUluaGVyaXRlZExhbmd1YWdlKCkgY29uc3QKICAgICByZXR1cm4gdmFsdWU7CiB9CiAKK0xvY2Fs
aXplciYgRWxlbWVudDo6bG9jYWxpemVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQo
KS0+Z2V0Q2FjaGVkTG9jYWxpemVyKGNvbXB1dGVJbmhlcml0ZWRMYW5ndWFnZSgpKTsKK30KKwog
dm9pZCBFbGVtZW50OjpjYW5jZWxGb2N1c0FwcGVhcmFuY2VVcGRhdGUoKQogewogICAgIGlmICho
YXNSYXJlRGF0YSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggMGNkMjA5ZGY4MmQwNzQ2MzI2YmE5
NjQ3ZGUyYzQyNDgwNmI2ZjBlNS4uYzcwODc3NWJhMzY4Y2VmNzdlMTdmYTJmYjcyOTZjNTMxNDFi
ZTg2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC00Miw2ICs0Miw3IEBAIGNsYXNzIERPTVRva2Vu
TGlzdDsKIGNsYXNzIEVsZW1lbnRSYXJlRGF0YTsKIGNsYXNzIEVsZW1lbnRTaGFkb3c7CiBjbGFz
cyBJbnRTaXplOworY2xhc3MgTG9jYWxpemVyOwogY2xhc3MgUmVuZGVyUmVnaW9uOwogY2xhc3Mg
U2hhZG93Um9vdDsKIGNsYXNzIFdlYktpdEFuaW1hdGlvbkxpc3Q7CkBAIC0yOTEsNiArMjkyLDcg
QEAgcHVibGljOgogICAgIGJvb2wgaXNJbkNhbnZhc1N1YnRyZWUoKSBjb25zdDsKIAogICAgIEF0
b21pY1N0cmluZyBjb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSBjb25zdDsKKyAgICBMb2NhbGl6
ZXImIGxvY2FsaXplcigpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlv
bihib29sIC8qc2VuZFRvQW55RXZlbnQqLykgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHAKaW5kZXggMDIwOWFiNDkxMDZkYzdiMjhhMzdlYmU5NDhjN2Q4YmI3YTg5OTIxMC4uYzcyNWIx
OTg1ZDc1M2Q1YTFhNmFlOWIzODNiNDNlMWQ3MmQ5OTI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0
VHlwZS5jcHAKQEAgLTIyMyw4ICsyMjMsNyBAQCB2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVB
bmRUaW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5lclRleHRWYWx1ZSgpCiAgICAgaWYgKCFtX2RhdGVU
aW1lRWRpdEVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2FsaXplciYgbG9jYWxp
emVyID0gZWxlbWVudCgpLT5kb2N1bWVudCgpLT5nZXRMb2NhbGl6ZXIoZWxlbWVudCgpLT5jb21w
dXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSk7Ci0gICAgRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0
UGFyYW1ldGVycyBsYXlvdXRQYXJhbWV0ZXJzKGxvY2FsaXplciwgY3JlYXRlU3RlcFJhbmdlKEFu
eUlzRGVmYXVsdFN0ZXApKTsKKyAgICBEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0
ZXJzIGxheW91dFBhcmFtZXRlcnMoZWxlbWVudCgpLT5sb2NhbGl6ZXIoKSwgY3JlYXRlU3RlcFJh
bmdlKEFueUlzRGVmYXVsdFN0ZXApKTsKIAogICAgIERhdGVDb21wb25lbnRzIGRhdGU7CiAgICAg
Y29uc3QgYm9vbCBoYXNWYWx1ZSA9IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhlbGVtZW50KCktPnZh
bHVlKCksICZkYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAppbmRl
eCA4NzI3OThiNDFiYjA2YTNiYzRhZjBjNzY3ZjVjMmU0ZWFmMDBhMjdjLi4zMDZiZjhmYjY0MDlj
Y2VkOGExZTQ3ZTA0OGIwMTliODI4MDk4Y2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL051bWJlcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJ
bnB1dFR5cGUuY3BwCkBAIC0yMzUsNyArMjM1LDcgQEAgU3RyaW5nIE51bWJlcklucHV0VHlwZTo6
bG9jYWxpemVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpIGNvbnN0CiAgICAgLy8g
V2UgZG9uJ3QgbG9jYWxpemUgc2NpZW50aWZpYyBub3RhdGlvbnMuCiAgICAgaWYgKHByb3Bvc2Vk
VmFsdWUuZmluZChpc0UpICE9IG5vdEZvdW5kKQogICAgICAgICByZXR1cm4gcHJvcG9zZWRWYWx1
ZTsKLSAgICByZXR1cm4gZWxlbWVudCgpLT5kb2N1bWVudCgpLT5nZXRMb2NhbGl6ZXIoZWxlbWVu
dCgpLT5jb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSkuY29udmVydFRvTG9jYWxpemVkTnVtYmVy
KHByb3Bvc2VkVmFsdWUpOworICAgIHJldHVybiBlbGVtZW50KCktPmxvY2FsaXplcigpLmNvbnZl
cnRUb0xvY2FsaXplZE51bWJlcihwcm9wb3NlZFZhbHVlKTsKIH0KIAogU3RyaW5nIE51bWJlcklu
cHV0VHlwZTo6dmlzaWJsZVZhbHVlKCkgY29uc3QKQEAgLTI1MCw3ICsyNTAsNyBAQCBTdHJpbmcg
TnVtYmVySW5wdXRUeXBlOjpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZShjb25zdCBTdHJpbmcmIHZp
c2libGVWYWx1ZSkgY29ucwogICAgIC8vIFdlIGRvbid0IGxvY2FsaXplIHNjaWVudGlmaWMgbm90
YXRpb25zLgogICAgIGlmICh2aXNpYmxlVmFsdWUuZmluZChpc0UpICE9IG5vdEZvdW5kKQogICAg
ICAgICByZXR1cm4gdmlzaWJsZVZhbHVlOwotICAgIHJldHVybiBlbGVtZW50KCktPmRvY3VtZW50
KCktPmdldExvY2FsaXplcihlbGVtZW50KCktPmNvbXB1dGVJbmhlcml0ZWRMYW5ndWFnZSgpKS5j
b252ZXJ0RnJvbUxvY2FsaXplZE51bWJlcih2aXNpYmxlVmFsdWUpOworICAgIHJldHVybiBlbGVt
ZW50KCktPmxvY2FsaXplcigpLmNvbnZlcnRGcm9tTG9jYWxpemVkTnVtYmVyKHZpc2libGVWYWx1
ZSk7CiB9CiAKIGJvb2wgTnVtYmVySW5wdXRUeXBlOjppc0FjY2VwdGFibGVWYWx1ZShjb25zdCBT
dHJpbmcmIHByb3Bvc2VkVmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcAppbmRleCAyYzg5M2ZlMDMw
NzY5NzljYzg2ODU5MDFkOGUxMzQ0MTRiMjhlMGU5Li5hNjMxY2M1NjQ0MWNlNjYzYzExOWQ0MjU1
ZmIzN2FkMzRjZjc1MjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAg
dm9pZCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5
Ym9hcmRFdmVudCoga2V5Ym9hcmRFdmUKICAgICBET01UaW1lU3RhbXAgZGVsdGEgPSBrZXlib2Fy
ZEV2ZW50LT50aW1lU3RhbXAoKSAtIG1fbGFzdERpZ2l0Q2hhclRpbWU7CiAgICAgbV9sYXN0RGln
aXRDaGFyVGltZSA9IDA7CiAKLSAgICBTdHJpbmcgbnVtYmVyID0gbG9jYWxpemVyKCkuY29udmVy
dEZyb21Mb2NhbGl6ZWROdW1iZXIoU3RyaW5nKCZjaGFyQ29kZSwgMSkpOworICAgIFN0cmluZyBu
dW1iZXIgPSBsb2NhbGl6ZXJGb3JPd25lcigpLmNvbnZlcnRGcm9tTG9jYWxpemVkTnVtYmVyKFN0
cmluZygmY2hhckNvZGUsIDEpKTsKICAgICBjb25zdCBpbnQgZGlnaXQgPSBudW1iZXJbMF0gLSAn
MCc7CiAgICAgaWYgKGRpZ2l0IDwgMCB8fCBkaWdpdCA+IDkpCiAgICAgICAgIHJldHVybjsKQEAg
LTExMyw5ICsxMTMsOSBAQCBib29sIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aGFzVmFs
dWUoKSBjb25zdAogICAgIHJldHVybiBtX2hhc1ZhbHVlOwogfQogCi1Mb2NhbGl6ZXImIERhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6bG9jYWxpemVyKCkgY29uc3QKK0xvY2FsaXplciYgRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojpsb2NhbGl6ZXJGb3JPd25lcigpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIGRvY3VtZW50KCktPmdldExvY2FsaXplcihsb2NhbGVJZGVudGlmaWVyKCkpOwor
ICAgIHJldHVybiBkb2N1bWVudCgpLT5nZXRDYWNoZWRMb2NhbGl6ZXIobG9jYWxlSWRlbnRpZmll
cigpKTsKIH0KIAogaW50IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6bWF4aW11bSgpIGNv
bnN0CkBAIC0xNzEsNyArMTcxLDcgQEAgU3RyaW5nIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dDo6dmFsdWUoKSBjb25zdAogICAgIGlmICghbV9oYXNWYWx1ZSkKICAgICAgICAgcmV0dXJuIGVt
cHR5U3RyaW5nKCk7CiAKLSAgICBMb2NhbGl6ZXImIGxvY2FsaXplciA9IHRoaXMtPmxvY2FsaXpl
cigpOworICAgIExvY2FsaXplciYgbG9jYWxpemVyID0gbG9jYWxpemVyRm9yT3duZXIoKTsKICAg
ICBpZiAobV9yYW5nZS5tYXhpbXVtID4gOTk5KQogICAgICAgICByZXR1cm4gbG9jYWxpemVyLmNv
bnZlcnRUb0xvY2FsaXplZE51bWJlcihTdHJpbmc6OmZvcm1hdCgiJTA0ZCIsIG1fdmFsdWUpKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQuaAppbmRleCA4ZDJjYmNhNmQ0ZGRlMzdlODIyY2QxOThkNjY4MzU1ZGJl
NzkzOGMyLi44ZDA2Y2ZiYjM0Y2QwMTU4ZDE3NDIyYzU4OGUxZDIzNjE3MjBjYWE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQuaApAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBz
dGVwVXAoKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0
IE9WRVJSSURFIEZJTkFMOwogCi0gICAgTG9jYWxpemVyJiBsb2NhbGl6ZXIoKSBjb25zdDsKKyAg
ICBMb2NhbGl6ZXImIGxvY2FsaXplckZvck93bmVyKCkgY29uc3Q7CiAKICAgICBET01UaW1lU3Rh
bXAgbV9sYXN0RGlnaXRDaGFyVGltZTsKICAgICBjb25zdCBTdHJpbmcgbV9wbGFjZWhvbGRlcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5oCmluZGV4IDBiYWQxZDI3OWE0
NGI3YzA1MDA4YmRkOTU0NTRkZTE0ZDMyNWMwMWEuLjA3ZDc2YTgxOTk2NGRjYzNkZGRhMGY5NmVk
MGNjZjU2ZDA2OTQ0OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
TG9jYWxpemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIu
aApAQCAtMjYsNiArMjYsOCBAQAogI2lmbmRlZiBMb2NhbGl6ZXJfaAogI2RlZmluZSBMb2NhbGl6
ZXJfaAogCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0zNCwxMCArMzYsMTEgQEAgY2xhc3MgTG9jYWxpemVyIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShMb2NhbGl6ZXIpOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TG9j
YWxpemVyPiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAgc3RhdGljIFBhc3NPd25Q
dHI8TG9jYWxpemVyPiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGVJZGVudGlmaWVy
KTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxMb2NhbGl6ZXI+IGNyZWF0ZURlZmF1bHQoKTsKIAog
ICAgIC8vIENvbnZlcnRzIHRoZSBzcGVjaWZpZWQgbnVtYmVyIHN0cmluZyB0byBhbm90aGVyIG51
bWJlciBzdHJpbmcgbG9jYWxpemVkCi0gICAgLy8gZm9yIHRoZSBicm93c2VyJ3MgY3VycmVudCBs
b2NhbGUuIFRoZSBpbnB1dCBzdHJpbmcgbXVzdCBjb25mb3JtIHRvIEhUTUwKKyAgICAvLyBmb3Ig
dGhpcyBMb2NhbGl6ZXIgbG9jYWxlLiBUaGUgaW5wdXQgc3RyaW5nIG11c3QgY29uZm9ybSB0byBI
VE1MCiAgICAgLy8gZmxvYXRpbmctcG9pbnQgbnVtYmVycywgYW5kIGlzIG5vdCBlbXB0eS4KICAg
ICBTdHJpbmcgY29udmVydFRvTG9jYWxpemVkTnVtYmVyKGNvbnN0IFN0cmluZyYpOwogCkBAIC0x
MTQsNSArMTE3LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc0xvY2FsaXplckRhdGE7CiB9
OwogCitpbmxpbmUgUGFzc093blB0cjxMb2NhbGl6ZXI+IExvY2FsaXplcjo6Y3JlYXRlRGVmYXVs
dCgpCit7CisgICAgcmV0dXJuIExvY2FsaXplcjo6Y3JlYXRlKGRlZmF1bHRMYW5ndWFnZSgpKTsK
K30KKwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvQ29sb3JQaWNrZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0NvbG9yUGlja2VyQ2xpZW50LmNwcAppbmRleCA0YThiNWU5YjY2
NjAxMjc5NzQ0M2EwMzcyZmMwYTZmOGNkYThkNjQyLi5kYzU3N2VjNjdmMjMwMzY1ZjczMjBjNjIz
OTM3MGY2ODQ5M2RlZDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvQ29sb3JQaWNrZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Db2xvclBpY2tlckNsaWVudC5jcHAKQEAgLTg1LDcgKzg1
LDcgQEAgU3RyaW5nIENvbG9yUGlja2VyQ2xpZW50OjpodG1sU291cmNlKCkgY29uc3QKIAogTG9j
YWxpemVyJiBDb2xvclBpY2tlckNsaWVudDo6bG9jYWxpemVyKCkKIHsKLSAgICByZXR1cm4gbV9l
bGVtZW50LT5kb2N1bWVudCgpLT5nZXRMb2NhbGl6ZXIobnVsbEF0b20pOworICAgIHJldHVybiBt
X2VsZW1lbnQtPmRvY3VtZW50KCktPmdldENhY2hlZExvY2FsaXplcigpOwogfQogCiB2b2lkIENv
bG9yUGlja2VyQ2xpZW50OjpzZXRWYWx1ZUFuZENsb3NlUG9wdXAoaW50LCBjb25zdCBTdHJpbmcm
IHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0RhdGVQaWNrZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0RhdGVQaWNrZXJDbGllbnQuY3BwCmluZGV4IDFlNDg1YjZhMTA5M2EyMmE4NjYy
MjBhMzBiZTkxMDk0ZjlkNzQ4N2YuLjY3NzgzMzBkMGQxOGY1ODBiNWI1Y2ExMDc3YjU4OWM5ZDMw
MTFhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9EYXRlUGlja2VyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvRGF0ZVBpY2tlckNsaWVudC5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCBTdHJp
bmcgRGF0ZVBpY2tlckNsaWVudDo6aHRtbFNvdXJjZSgpCiAKIExvY2FsaXplciYgU2VsZWN0UG9w
dXBDbGllbnQ6OmxvY2FsaXplcigpCiB7Ci0gICAgcmV0dXJuIG1fZWxlbWVudC0+ZG9jdW1lbnQo
KS0+Z2V0TG9jYWxpemVyKG51bGxBdG9tKTsKKyAgICByZXR1cm4gbV9lbGVtZW50LT5kb2N1bWVu
dCgpLT5nZXRDYWNoZWRMb2NhbGl6ZXIoKTsKIH0KIAogdm9pZCBEYXRlUGlja2VyQ2xpZW50Ojpz
ZXRWYWx1ZUFuZENsb3NlUG9wdXAoaW50LCBjb25zdCBTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9TZWxlY3RQ
b3B1cENsaWVudC5jcHAKaW5kZXggMmUzMzhiZGFkMzNkY2E5NTFjZDg5YWQ3ZjI3Y2Y4MDY0M2Vm
YjRkNS4uOTdhNTUyZjg0ZmZmNTNlMzI2ZGNlNWZiYmU4NTUyMzg3OTZkYzAzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvU2Vs
ZWN0UG9wdXBDbGllbnQuY3BwCkBAIC0xNTIsNyArMTUyLDcgQEAgU3RyaW5nIFNlbGVjdFBvcHVw
Q2xpZW50OjpodG1sU291cmNlKCkKIAogTG9jYWxpemVyJiBTZWxlY3RQb3B1cENsaWVudDo6bG9j
YWxpemVyKCkKIHsKLSAgICByZXR1cm4gbV9lbGVtZW50LT5kb2N1bWVudCgpLT5nZXRMb2NhbGl6
ZXIobnVsbEF0b20pOworICAgIHJldHVybiBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmdldENhY2hl
ZExvY2FsaXplcigpOwogfQogCiB2b2lkIFNlbGVjdFBvcHVwQ2xpZW50OjpzZXRWYWx1ZUFuZENs
b3NlUG9wdXAoaW50LCBjb25zdCBTdHJpbmcmIHN0cmluZ1ZhbHVlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29sb3JDaG9vc2VyVUlDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbG9yQ2hvb3NlclVJQ29udHJvbGxlci5jcHAKaW5k
ZXggZGMyNWVkZmExZTRiMWM0MjNiZjgyNWU5MjEwNzk1YjcwZDBkNTNhNC4uNTRkMTM0ZmU2M2E3
MWJkZmFjOWVhMDc3Mzk3YmZkNDE5ZTc4NmMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ29sb3JDaG9vc2VyVUlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9Db2xvckNob29zZXJVSUNvbnRyb2xsZXIuY3BwCkBAIC01Myw3ICs1
Myw3IEBAIENvbG9yQ2hvb3NlclVJQ29udHJvbGxlcjo6Q29sb3JDaG9vc2VyVUlDb250cm9sbGVy
KENocm9tZUNsaWVudEltcGwqIGNocm9tZUNsaWVuCiAgICAgOiBtX2Nocm9tZUNsaWVudChjaHJv
bWVDbGllbnQpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3BvcHVwKDApCi0gICAg
LCBtX2xvY2FsaXplcihXZWJDb3JlOjpMb2NhbGl6ZXI6OmNyZWF0ZShudWxsQXRvbSkpCisgICAg
LCBtX2xvY2FsaXplcihXZWJDb3JlOjpMb2NhbGl6ZXI6OmNyZWF0ZURlZmF1bHQoKSkKIHsKICAg
ICBpZiAobV9jbGllbnQtPnNob3VsZFNob3dTdWdnZXN0aW9ucygpKQogICAgICAgICBvcGVuUG9w
dXAoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0RhdGVUaW1lQ2hv
b3NlckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRGF0ZVRpbWVDaG9vc2Vy
SW1wbC5jcHAKaW5kZXggMDE3YzcxMmY3N2U4NDNlYTFkNTBiNjdhMDVlYjIyNjRlYTU0M2Q1OS4u
YzMwMGU1ODRhNDVkOTM0MzY0OGEyNmJlMDlhMjE2NjI1ZGJjYzYwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRGF0ZVRpbWVDaG9vc2VySW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRGF0ZVRpbWVDaG9vc2VySW1wbC5jcHAKQEAgLTU2LDcg
KzU2LDcgQEAgRGF0ZVRpbWVDaG9vc2VySW1wbDo6RGF0ZVRpbWVDaG9vc2VySW1wbChDaHJvbWVD
bGllbnRJbXBsKiBjaHJvbWVDbGllbnQsIFdlYkNvcmUKICAgICAsIG1fY2xpZW50KGNsaWVudCkK
ICAgICAsIG1fcG9wdXAoMCkKICAgICAsIG1fcGFyYW1ldGVycyhwYXJhbWV0ZXJzKQotICAgICwg
bV9sb2NhbGl6ZXIoV2ViQ29yZTo6TG9jYWxpemVyOjpjcmVhdGUobnVsbEF0b20pKQorICAgICwg
bV9sb2NhbGl6ZXIoV2ViQ29yZTo6TG9jYWxpemVyOjpjcmVhdGVEZWZhdWx0KCkpCiB7CiAgICAg
QVNTRVJUKG1fY2hyb21lQ2xpZW50KTsKICAgICBBU1NFUlQobV9jbGllbnQpOwo=
</data>
<flag name="review"
          id="178511"
          type_id="1"
          status="+"
          setter="haraken"
    />
          </attachment>
      

    </bug>

</bugzilla>