Re: profile definition and resolution [was RE: ISSUE-261: signaling docoument profile conformance is separate from decoder presentation requirements [TTML.next]

On Mon, Jul 15, 2013 at 12:19 PM, Michael Dolan <mdolan@newtbt.com> wrote:

> CIL.****
>
> ** **
>
> *From:* Glenn Adams [mailto:glenn@skynav.com]
> *Sent:* Monday, July 15, 2013 9:57 AM
>
> *To:* Michael Dolan
> *Cc:* Timed Text Working Group
> *Subject:* Re: profile definition and resolution [was RE: ISSUE-261:
> signaling docoument profile conformance is separate from decoder
> presentation requirements [TTML.next]****
>
> ** **
>
> ** **
>
> On Mon, Jul 15, 2013 at 9:48 AM, Michael Dolan <mdolan@newtbt.com> wrote:*
> ***
>
> Glenn-****
>
>  ****
>
> The reason that I think a profile document itself is an inadequate tool to
> define a profile is that the granularity of the features has never (to
> date) matched the defined profile capabilities per the related prose for
> those profiles. ****
>
> ** **
>
> But the purpose of the TT Profile Document is not to define a profile. It
> is to specify a set of features/extensions having been defined elsewhere.
> You are talking about the "defined elsewhere" part of this equation, i.e.,
> which features/extensions are defined, whether their definitions are
> adequate or not.****
>
> ** **
>
> The implied contract for a TT Profile Document is that it simply
> enumerates features/extensions and assigns each a value (required,
> optional, etc), and that a TTML Content Processor has a way (or can have a
> way) to determine if it supports an enumerated feature.****
>
> ** **
>
> When a TT document references a feasibly resolvable TT Profile Document,
> it is simply using a shorthand, which it could instead of defined inline,
> i.e., enumerated the features it requires inline.****
>
> ** **
>
> When a processor encounters such a reference it has some options:****
>
> ** **
>
> (1) it has a built-in (cached) form of the referenced profile, so doesn't
> need to make an external reference (though it may choose to do so to update
> its cache);****
>
> ** **
>
> (2) it doesn't have a cached form or it wants to update its cache, so it
> attempts to resolve and parse the referenced profile, which may succeed or
> fail;****
>
> ** **
>
> (3) if (2) fails, then it consults its system/user preferences to
> determine whether to continue processing or abort the document;****
>
> ** **
>
> If the processor did resolve the profile to a TT Profile Document, then it
> knows which features it supports and which it doesn't, at least for those
> defined at the time it was constructed/updated. If the TT Profile Document
> (as parsed and possibly augmented by inline profile elements) requires a
> feature it doesn't support, then it again consults its preferences, and
> either continues or aborts.****
>
> ** **
>
> MD>> Yes.  Understand all this. The above and its process is not in
> debate. The summary of my chain of logic:****
>
> ** **
>
> 1.         The TTML feature list is not granular enough to be accurate
> relative to the known profiles today.
>

So, define new features (in W3C) or externally (in which case they are
called 'extensions').


> ****
>
> 2.         Therefore, an actual profile document is not useful (in fact
> harmful in all known cases – see below).
>

Yes it is. It is a formal mapping from a URI to a list of requirement
specifications. It can be parsed. It can be cached. It can be referred to
normatively to define what is required to process a document. I fail to see
why this isn't useful, especially since it is what we intended it to do.
Recall that the entire TTML Profile mechanism was defined as a way to
express the kind of information expressed by SVG's requiredFeatures [1]
requiredExtensions [2] attributes, and SMIL's system test attributes [3].

[1]
http://www.w3.org/TR/SVG/struct.html#ConditionalProcessingRequiredFeaturesAttribute
[2]
http://www.w3.org/TR/SVG/struct.html#ConditionalProcessingRequiredExtensionsAttribute
[3]
http://www.w3.org/TR/SMIL2/smil-content.html#ContentControlNS-PredefinedSystemTest

You are faulting the mechanism when it is the policy of its usage that is
the problem.


> ****
>
> 3.         Therefore, if there is no profile document it does not need to
> be resolvable.
>
A profile always applies whether specified or not. Absent a profile
reference, the dfxp-transformation profile applies. There should always be
a TT Profile Document for every defined profile. I would say that a claim
that a profile is defined without a TT Profile Document is a non-sequitor
as far as TTML is concerned.

>  Without explicit restriction, a feature must be assumed to be fully
> supported.
>
> Features (and extensions) are defined by the W3C (and 3rd parties)
respectively. Their definitions must adequately specify what 'support'
means, elsewise they are underspecified.

> ****
>
> ** **
>
> The TT profile document says what the processor is to do if it isn't
> supported and its value is 'required' or 'used'. It is up the processor to
> determine if it supports the feature or not according to wherever the
> feature is defined. In  the present TTML profiles, that is Appendix D or
> SDP-US.****
>
> ** **
>
> MD>>  If the decoder must fall back on prose to understand the true
> meaning, then how is a profile document helpful? The feature definition
> must be detailed enough to cover the constraint set, and today they are not.
>
>
 ****
>
> ** **
>
> For example, let’s use tts:color.  SDP-US constrains the color
> representations in ways that are not covered in the TTML profile feature,
> #color. The granularity of this feature in TTML is all or nothing.
> Therefore, if an SDP-US (only) decoder were to receive a profile (URI or
> inline) that contained the #color feature, it would be forced to reject the
> instance document since the decoder does not support all the
> representations.****
>
> ** **
>
> That's correct, at least in the sense that the syntactic representations
> of color supported in TTML must be supported; however, it doesn't mean the
> semantic meaning must be supported [1]:****
>
> ** **
>
> A TTML presentation processor supports the #color feature if it (1)
> implements presentation semantic support for the tts:color<http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#style-attribute-color> attribute
> and (2) is capable of displaying or generating an output display signal
> that distinguishes between at least sixteen (16) values of color, including
> all primary and secondary colors of the SRGB color space.****
>
> ** **
>
> [1] http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#feature-color****
>
> ** **
>
> MD>> Right.  But this is all irrelevant if the decoder can’t even decode
> all the syntax requried by #color.
>

In that case, it can't claim to support #color. So if you are asking what
to do if you want to define a profile that doesn't define all of the syntax
of #color, then you need to define an extension designator and specify its
meaning somewhere in prose. The designator is just a shorthand for that
meaning, wherever it is defined. It is not the purpose of the TT Profile
Document to define the meaning of feature or extension designators.


> ****
>
> ** **
>
> Furthermore, even if the processor didn't support these semantics, the
> author could simply override the feature requirement by making it optional:
> ****
>
> ** **
>
> <profile use="dfxp-presentation">****
>
>   <features>****
>
>     <feature value="optional">#color</feature>****
>
>   </features>****
>
> </profile>****
>
>  ****
>
> MD>>  Of course, but then what’s’ the point of a profile document if every
> feature that is constrained in a manner not covered by the TTML feature set
> now has to be optional? That’s at odds with the purpose of communicating
> the feature set to the decoder. They’re not optional, they’re required,
> just constrained.
>

A constrained feature/extension as you put it will need to have its own
feature/extension designator defined if it is to be referred to be a
profile.


> ****
>
> The extension mechanism cannot, at least as I read the spec, be applied to
> TTML features, only 3rd party features – that is, extensions to TTML, not
> TTML itself. And, 3rd parties are prohibited from defining new features
> in the TTML namespaces.****
>
> Why is this a problem? Extensions are just an alias for "non-standard
> features". Any 3rd party, or even the W3C itself is free to define new
> extension URIs which may be referenced by TT Profile documents or by TTML
> documents. If the TTWG wants to formally standardize on an extension, i.e.,
> promote it to a "standard feature", then it just defines such a feature in
> some document.****
>
>  ****
>
> MD>>  I said below (highlight new): “The feature mechanism cannot be
> extended by 3rd parties.”  Then you asked: “…since a non-standard
> "feature" is just what we call an "extension". Or do you have something
> else in mind by "extended"?”  I tried to answer your question as “no”.
> Extensions don’t seem to solve this (but read on).****
>
>  ****
>
> Since it is common practice today is to define profiles with features
> constrained in ways not pre-defined in TTML 1.0, how is it possible to
> create a useful profile document? Perhaps I am missing something about the
> profile/feature/extension mechanism?****
>
> (1) third parties can define new extension URIs along with some definition
> thereof;****
>
> (2) authors of TT Profile documents can include references to such
> extensions;****
>
> (3) authors of TTML documents can reference predefined TT Profile
> documents and can at their discretion augment or restrict those definitions
> by specifying feature/extension references inline (as in above example);**
> **
>
>  ****
>
> MD>> So, are you saying that 3rd parties (including W3C Notes) can define
> a new profile namespace, then define a new feature constraint, e.g.
> #color-sdp-us, to constrain an existing TTML feature?
>

Sure. Why not, that is the current mechanism's design after all?

First, we must distinguish between *Profile Designators* [4], *Feature
Designations* [5], and *Extension Designations* [6], all of which take the
syntactic form of a URI.

[4] http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#vocabulary-profiles
[5] http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#feature-designations
[6]
http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#extension-designations

Each of these designators/designations are divided into a *namespace* part
and a *designation* part. For profile designators, we enumerate 4 (of an
infinite set) in Table 2 [7].

[7] http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#profile-vocab-table

The TT Profile namespace part we define in Table 1 [8] as
http://www.w3.org/ns/ttml/profile/. We set aside this part (as a URI
prefix) for standardization purposes for the W3C. However, we allow any
other URI to use with a different namespace part (prefix):

All profile designators which have the TT Profile Namespace as a prefix but
are otherwise not listed in *Table 2 –
Profiles*<http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#profile-vocab-table>
are
reserved for future standardization, and must not be appear in a conformant
*Document Instance*. Nothwithstanding this constraint, a profile designator
is not restricted to the set of designators enumerated in *Table 2 –
Profiles*<http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#profile-vocab-table>,
but may be any URI that feasibly dereferences a TTML *Profile Definition
Document* provided it does not use the TT Profile Namespace as a prefix.

So you or anyone else may go define a TT Profile Document and refer to it
using a URI of your choice as long as it doesn't use the TT Profile
Namespace.

Now, as for features and extension designations (we use the term
'designation' instead of 'designator' to make note of the fact that they
take a slightly different form, i.e., with a fragment identifier), each of
these are also uniquely identified with a URI. We state [5] that all
'feature' designations *must* use the unique prefix we define as the TT
Feature Namespace http://www.w3.org/ns/ttml/feature/. However, for
'extension' designations, we state [6] that either the TT Extension
Namespace http://www.w3.org/ns/ttml/extension/ or an *Other Extension
Namespace* may be used. It is up to a 3rd party to decide what to use as an
Other Extension Namespace. We give an example of such in an Example
Fragment [8], namely http://example.org/ttml/extension/.

[8]
http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#parameter-vocabulary-extension

Nowhere do we constrain what an extension 'means', so it could mean the
same as an existing defined 'feature', an extended form of an existing
defined 'feature', a constrained (restricted) form of an existing defined
feature, or a completely unrelated, non-standard feature (such as the
#prefilter-by-language designator in the example fragment [8]).

So a third party can define any of:

   - new profiles labelled and  referenced by new non-standard (from the
   TTML sense) profile designators;
   - new extensions (= non-standard features) labelled and referenced by
   new non-standard (from the TTML sense) extension designations;

A content author can then reference any combination of standard and
non-standard profiles and also define inline profile extensions
(supersets)/restrictions (subsets) by directly referring to both standard
feature designations and non-standard extension designations.


> If so, then can there be a namespace for the profile that is different
> from the namespace of the document (many of the profiles do not define a
> new namespace for the TTML subset)?
>

I'm not sure what you mean by "namespace of the document". But the
namespaces for profiles are unrelated to namespaces for
elements/attributes. So it sounds like the answer is YES.


>  ****
>
> But if we can’t make a useful profile document, there is little point in
> requiring the URI for it to be resolvable to a physical document.****
>
> You can make a useful profile document. I'm not getting why you think that
> is hard or impossible. Perhaps if you give me a more concrete example of
> what you would like to do, I can explain how to do it with the current
> mechanisms.****
>
>  ****
>
> MD>> I don’t see how yet.  See above.  I thought I was helping by using
> SDP-US and #color and the problem was obvious.  If the profile defined in
> Section 9 of SDP-US were sent to a decoder, and the decoder did not support
> all the syntax of tts:color (the strong implication is that it does not -
> see 5.2), then the decoder MUST reject the document.  You say above: “…
> the syntactic representations of color supported in TTML must be supported
> ”
>

Since SDP-US requires support for #color, which means syntactic support for
all TTML colors, then the decoder you describe above is not an SDP-US
decoder. If you are just asking about an arbitrary decoder that makes no
claims about conforming to a processor profile, then yes, a decoder that
didn't support all the syntax of #color would have to make a decision about
whether to reject the document or not. However, it need not reject the
document:

*6.1.1 ttp:profile*

A conformant TTML processor is not required to be able to dereference
a *Profile
Definition Document* that is not one of the standard, predefined profiles
defined by *F Profiles*<http://www.w3.org/TR/2013/PER-ttaf1-dfxp-20130709/#profiles>.
Furthermore, a conformant TTML processor may make use of a built-in, static
form of each standard, predefined profile so as not to require
dereferencing a network resource.

If a TTML processor is unable to dereference a non-standard *Profile
Definition Document*, then it must not further process the document without
the presence of an explicit override from an end-user or some
implementation specific parameter traceable to an end-user or to a user or
system configuration setting. If a TTML processor aborts processing of
a *Document
Instance* due to the inability to reference a non-standard *Profile
Definition Document*, then some end-user notification should be given
unless the end-user or system has disabled such a notification, or if the
processor does not permit or entail the intervention of an end-user.
*6.1.3 ttp:feature*

If the value of the value attribute is required or use and the TTML
processor implementation does not support the feature, or if the value
attribute
is use and the TTML processor implementation supports but has disabled that
feature, then it must not further process the document without the presence
of an explicit override from an end-user or some implementation specific
parameter traceable to an end-user or to a user or system configuration
setting. If a TTML processor aborts processing of a *Document Instance* due
to the specification of a required, but unsupported feature by this
element, then some end-user notification should be given unless the
end-user or system has disabled such a notification, or if the processor
does not permit or entail the intervention of an end-user.

*6.1.5 ttp:extension*

If the value of the value attribute is required or use and the TTML
processor implementation does not support the extension, or if the
value attribute
is use and the TTML processor implementation supports but has disabled that
extension, then it must not further process the document without the
presence of an explicit override from an end-user or some implementation
specific parameter traceable to an end-user or to a user or system
configuration setting. If a TTML processor aborts processing of a *Document
Instance* due to the specification of a required, but unsupported extension
by this element, then some end-user notification should be given unless the
end-user or system has disabled such a notification, or if the processor
does not permit or entail the intervention of an end-user.

So, a compliant processor (1) need not dereference a feasibly resolvable
profile document, (2) need not reject a document that requires a feature it
doesn't support, and (3) need not reject a document that requires an
extension it doesn't support. However, in each of these cases, the
processor must make use of a traceable end-user or system parameter to
determine whether to proceed regardless of lack of support.

****
>
> ** **
>
> MD>> I think can safely say that a developer reading the SDP-US spec would
> not think to support the full syntax of tts:color.  Or if that support is
> somehow implied then what’s the point in forbidding the document syntax?
>
We had to define SDP-US using the tools given, or would have had to resort
to defining new extension designations, which was a possibility.

In any case, it is one thing to require syntactic support and quite another
to require semantic support. A lint type verifier (TTV supports a number of
optional warnings) would probably want to flag a document that makes
syntactic use of a feature for which semantic support isn't required.


> So, we can perhaps reach faster closure on this thread if you could (I
> don’t know how to) define a decoder profile document that:****
>
> ** **
>
> **1.       **Accurately represents the SDP-US profile;
>

We have. It is a WG Note called SDP-US. That's it.

> ****
>
> **2.       **Accurately uses “required” and “optional” (hint: #color is
> obviously required by FCC regs); and
>
Is there a bug in SDP-US Section 9 [9], then it can be fixed in an errata
or update. BTW, the prologue in Section 9 should be edited to make it clear
that the profile document doesn't formally define the profile *on its own.* I
can see how if one were to read "The following TTML profile definition
formally defines the SDP US profile", then one would (1) find an
inconsistency between what I've been saying above and this text and (2)
would come to the wrong conclusion that the profile definition document is
sufficient. [If that is your main problem, then we can easily fix that via
an editorial correction.]

[9]
http://www.w3.org/TR/2013/NOTE-ttml10-sdp-us-20130205/#Features_in_TTML_1.0_Used


> ****
>
> **3.       **Won’t result in a perfectly conformant SDP-US decoder from
> having to reject all documents referencing such a profile.
>
Why would such a decoder have to reject all documents referencing SDP-US?

In any case, I can see how it might be useful to further soften the
language about potentially aborting/rejecting to be qualified by the actual
use/presence of a feature/extension for which support is required (by the
combined, merged profile). That is, instead of conservative (let's call
this strict) rejection if a feature isn't supported, define a "lax"
rejection if it isn't supported, is required, and is actually used.


> ****
>
> ** **
>
> (For clarity, I’m using SDP-US and #color as examples that are familiar.
> I can pick other profiles and other features with the same issue.)****
>
> Regards,****
>
>                 Mike****
>
>  ****
>
> *From:* Glenn Adams [mailto:glenn@skynav.com]
> *Sent:* Monday, July 15, 2013 6:58 AM
> *To:* Michael Dolan
> *Cc:* Timed Text Working Group
> *Subject:* Re: ISSUE-261: signaling docoument profile conformance is
> separate from decoder presentation requirements [TTML.next]****
>
>  ****
>
>  ****
>
> On Fri, Jul 12, 2013 at 2:40 PM, Michael Dolan <mdolan@newtbt.com> wrote:*
> ***
>
> Agreed.  But the inline form is already permitted, and I don't see a
> compelling reason to disallow it. That said, I would expect the "normal"
> case is to use a URI.
>
> Since you said "URI" and not URL, it begs that we return to the question of
> resolvability and existence of the TTML syntax profile.  I still maintain
> that the profile must be definable in prose or other means without actually
> creating and/or posting a resolvable profile document that conforms to the
> feature syntax defined in TTML.****
>
>  ****
>
> These are orthogonal issues:****
>
>  ****
>
> (1) defining a profile****
>
> (2) defining a feasibly resolvable profile document****
>
>  ****
>
> The feature granularity is insufficient to
> describe any (I think) of the profiles in use today.****
>
>  ****
>
> Note that the purpose of a feasibly resolvable profile document is not
> intended to formally define a profile (in the more general sense you are
> using it). It is up to us (or extension definers) to be as specific as
> desired in enumerating feature and extension designators.****
>
>  ****
>
> A feasibly resolvable profile document is effectively needed (in the use
> of a non-standard profile and in the absence of an inline profile document)
> in order for a processor to know whether it should process a document based
> on which features are implemented by the processor.****
>
>  ****
>
> Minimally there are
> certainly profile examples that cannot be (sdp-us and cff-tt). The feature
> mechanism cannot be extended by 3rd parties.****
>
>  ****
>
> If by "extended by 3rd parties" you mean defining new non-standard
> "features", then yes it is supported, since a non-standard "feature" is
> just what we call an "extension". Or do you have something else in mind by
> "extended"?****
>
>  ****
>
> This effectively forces
> permitting the profiles to be defined by other means, and therefore, there
> cannot necessarily be a profile document, and therefore cannot be
> resolvable
> in all cases.****
>
>  ****
>
> The definition of a profile document and its accessibility by a processor
> is not related to the definition of a profile itself. It (the document
> referenced by the URI) serves an operational purpose only.****
>
>  ****
>
> I see no legitimate reason for anyone to define a TTML profile (as
> presently defined) and fail to define a feasibly resolvable profile
> document instance.****
>
>  ****
>
>
> Regards,
>
>         Mike****
>
>
> -----Original Message-----
> From: Pierre-Anthony Lemieux [mailto:pal@sandflow.com]
> Sent: Friday, July 12, 2013 1:24 PM
> To: Glenn Adams
> Cc: Timed Text Working Group
> Subject: Re: ISSUE-261: signaling docoument profile conformance is separate
> from decoder presentation requirements [TTML.next]
>
> > Is there a use case for having a document include inline the definition
> of
> a content profile it claims to conform to?
>
> Such a use case does not immediately come to (my) mind.
>
> -- Pierre
>
> On Fri, Jul 12, 2013 at 1:18 PM, Glenn Adams <glenn@skynav.com> wrote:
> > Is there a use case for having a document include inline the
> > definition of a content profile it claims to conform to? Or is it
> > sufficient to allow a document to refer to a URI which is feasibly
> > resolvable to a definition of a content profile?
> >
> >
> > On Fri, Jul 12, 2013 at 2:08 PM, Pierre-Anthony Lemieux
> > <pal@sandflow.com>
> > wrote:
> >>
> >> > > Some means must be defined to separately signal these different
> >> > > semantics.
> >> > For example, we could create a new element and attribute -
> >> > <ContentProfile> and contentProfile.
> >>
> >> Sounds good. I also see value in exploring means for (a) defining a
> >> content profile and (b) signaling conformance of a document to one or
> >> more content profile.
> >>
> >> > <ContentProfile>
> >>
> >> What about following the <ttp:profile> template with the following
> tweaks:
> >>
> >> - adding a @designator attribute allowing the content profile
> >> designator to be specified
> >> - @use can contain one or more URIs, each identifying a content
> >> profile to be included in its entirety by reference, thereby avoiding
> >> having to repeat all features already defined in another profile.
> >> Perhaps @use can reference "profile" even when defining
> >> "contentProfile" so that existing content designator can be used.
> >> - allowing constraints over a base content profile to be specified
> >> using value="prohibited"
> >>
> >> <contentprofile designator="http://example.noname/profile1"
> >> use="http://example.noname/profile4 http://example.noname/profile3"
> >> xmlns="http://www.w3.org/ns/ttml#parameter">
> >>      <features xml:base="http://www.w3.org/ns/ttml/feature/">
> >>        <feature value="prohibited">#fontStyle-italic</feature>
> >>        <feature value="use">#fontStyle-bold</feature>
> >>      </features>
> >>     <extensions xml:base="http://example.noname/profile1">
> >>         <ttp:extension
> >> value="required">#prefilter-by-language</ttp:extension>
> >>     </ttp:extensions>
> >> </contentprofile>
> >>
> >> > @contentProfile
> >>
> >> What about a list of one or more content profile designator URIs,
> >> each indicating conformance to a content profile, e.g.
> >>
> >> <tt ttp:contentProfile="http://example.noname/profile1
> >> http://example.noname/profile2">
> >>
> >> Best,
> >>
> >> -- Pierre
> >>
> >> On Thu, Jul 11, 2013 at 9:16 AM, Timed Text Working Group Issue
> >> Tracker <sysbot+tracker@w3.org> wrote:
> >> > ISSUE-261: signaling docoument profile conformance is separate from
> >> > decoder presentation requirements [TTML.next]
> >> >
> >> > http://www.w3.org/AudioVideo/TT/tracker/issues/261
> >> >
> >> > Raised by: Mike Dolan
> >> > On product: TTML.next
> >> >
> >> > The profile element and attribute currently signal a feature set
> >> > that a decoder must implement in order to reasonably present the
> >> > document. Although it also hints at what features the document
> >> > instance may include, it does not signal document instance conformance
> today.
> >> >
> >> > There is currently no mechanism to signal what profile a document
> >> > instance conforms to (e.g. sdp-us).
> >> >
> >> > It is desirable to add this capability to TTML. However, simply
> >> > adding this semantic to the existing profile element and attribute
> >> > overly constrains the existing (decoder) and desired (document)
> >> > semantics. It is unreasonable to require that the single element
> >> > and attribute simultaneously signal both. For example, the fact
> >> > that a document instance conforms to dfxp-full does and should not
> >> > automatically infer that an sdp-us decoder could not properly
> >> > present it. That is instance dependent. This situation is aggravated
> when multiple profiles are involved.
> >> >
> >> > Some means must be defined to separately signal these different
> >> > semantics. For example, we could create a new element and attribute
> >> > - <ContentProfile> and contentProfile.
> >> >
> >> >
> >> >
> >> >
> >>
> >****
>
>  ****
>
> ** **
>

Received on Tuesday, 16 July 2013 00:01:39 UTC