freeCAD port to Croquet progress 2

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

freeCAD port to Croquet progress 2

askoh
Administrator
More videos of progress made by two students of Multimedia
University, Malaysia on their final year project.

http://www.youtube.com/user/kayef8

For more infomation on freeCAD visit:
http://ar-cad.com.

All the best,
Aik-Siong Koh





Reply | Threaded
Open this post in threaded view
|

Re: freeCAD port to Croquet progress 2

David Faught
On 4/17/08, Aik-Siong Koh <[hidden email]> wrote:
> More videos of progress made by two students of Multimedia
> University, Malaysia on their final year project.
>
> http://www.youtube.com/user/kayef8
>
> For more infomation on freeCAD visit:
> http://ar-cad.com.

This looks extremely cool, and thanks for sharing!

Have you tried a collaborative, multi-PC session?

Dave
Reply | Threaded
Open this post in threaded view
|

Re: freeCAD port to Croquet progress 2

waufrepi III
In reply to this post by askoh

This is great stuff. I realized that I need to broaden my horizon with different modeling packages. Growing up I always wanted to get involved with animation but the hefty price on the suites prevented me from pursuing .. 

Blender is my first love but the freecad your using looks great for inWorld bootstrap modeling. 

when do we get to play with it......or should I already know?

to many projects ;)

wfpi


On 4/17/08, Aik-Siong Koh <[hidden email]> wrote:
More videos of progress made by two students of Multimedia
University, Malaysia on their final year project.

http://www.youtube.com/user/kayef8

For more infomation on freeCAD visit:
http://ar-cad.com.

All the best,

Aik-Siong Koh






Reply | Threaded
Open this post in threaded view
|

RE: [croquet-user] freeCAD port to Croquet progress 2

Paul Sheldon-2
In reply to this post by askoh
Fascinating! Freecad makes 3D in croquet that even can be animated. When I saw a piston move, I laughed like the baby I made laugh in Americo&#39;s lesson on mp3&#39;s. Well, at least as happily.

I knew of some terms from playing with free maya ple.

Waufrepi is just beginning to fool with animation. I&#39;m not near doing this yet though I noticed skeletal animation in the system browser, something not in croquet release but in cobalt. There was a big John avatar in croquet and you could see him move if you made the mirror big enough.

But, now there is this new animation stuff to build with that excites me.

Leonardo Davinci had his static 3d perspective paintings and studied muscles, we have animated 3d digital art and study the sletons inverse kinemstics moved by the muscles.

Lucasfilm&#39;s early digital art concerned movie, Hudson Hawk, and Leonardo Davinci was in it. Must check whether it predated starwars.

Thank you for the post on freecad; oh, if only I could teach dance from a virtual camera having the point of view of the dancer because I believe the keyframes helping to remember the leads for combinations are there!

I would not myself teach, but teach how to teach.

Thanks again.

Aik-Siong Koh wrote:
> More videos of progress made by two students of Multimedia
> University, Malaysia on their final year project.
> http://www.youtube.com/user/kayef8
> For more infomation on freeCAD visit:
> http://ar-cad.com.
> All the best,
> Aik-Siong Koh

Reply | Threaded
Open this post in threaded view
|

freeCAD port to Croquet progress 2

askoh
Administrator
In reply to this post by askoh
Thank you for your interest in freeCAD/Croquet. The students are busy putting
the finishing touches to their Final Year Projects and their code will be
available online soon or by May. The videos were many to enhance their
application for the Google Summer of Code grants. Hopefully, at least one of
them will get to continue the work with that grant. During the GSoC, all the
features of freeCAD should be made to run inside Croquet.

All the best,
Aik-Siong Koh
http://ar-cad.com
Reply | Threaded
Open this post in threaded view
|

displaying concave polygons with openGL

Hans Baveco
 HI,
I am looking for a way to display polygons in Croquet. I need this to be
able to show maps in Croquet. With openGL only simple (convex, without
holes, etc) polygons can be rendered. Non-simple polygons need to be
tesselated (converted into a set of convex polygons). GLUT apparently
can be used to build this tesselation, but I find it very hard to
understand how exactly to do this... Is it really the only way to
achieve my goal (appart from doing this tesselation in Squeak, which
might be pretty slow for large maps, say consisting of upto 100.000
polygons)? Or is there a workaround? (I suppose others may have felt the
need to display such polygons....). Cairo also seems to be able to do
this tesselation, but can it be used in Croquet? (a 2D rendering would
be ok),

AHA
Hans

Reply | Threaded
Open this post in threaded view
|

Re: displaying concave polygons with openGL

Bert Freudenberg

On 21.04.2008, at 15:08, Baveco, Hans wrote:

> HI,
> I am looking for a way to display polygons in Croquet. I need this  
> to be
> able to show maps in Croquet. With openGL only simple (convex, without
> holes, etc) polygons can be rendered. Non-simple polygons need to be
> tesselated (converted into a set of convex polygons). GLUT apparently
> can be used to build this tesselation, but I find it very hard to
> understand how exactly to do this... Is it really the only way to
> achieve my goal (appart from doing this tesselation in Squeak, which
> might be pretty slow for large maps, say consisting of upto 100.000
> polygons)? Or is there a workaround? (I suppose others may have felt  
> the
> need to display such polygons....). Cairo also seems to be able to do
> this tesselation, but can it be used in Croquet? (a 2D rendering would
> be ok),


Unless your maps are dynamic, displaying them as a texture would be  
most appropriate IMHO. It's hard to be more specific without knowing  
the details and requirements.

- Bert -


Reply | Threaded
Open this post in threaded view
|

RE: displaying concave polygons with openGL

Hans Baveco
 
Yes, that is the easy way. However, I would like to add GIS
functionality: creating the polygons from a spatial database and
directly display them in Croquet, without the need of a GIS inbetween
that would export the map as an image...
Spatial data would be e.g. in ESRI's shapefile (.shp) or export (.e00)
format.

Hans




On 21.04.2008, at 15:08, Baveco, Hans wrote:

> HI,
> I am looking for a way to display polygons in Croquet. I need this to
> be able to show maps in Croquet. With openGL only simple (convex,
> without holes, etc) polygons can be rendered. Non-simple polygons need

> to be tesselated (converted into a set of convex polygons). GLUT
> apparently can be used to build this tesselation, but I find it very
> hard to understand how exactly to do this... Is it really the only way

> to achieve my goal (appart from doing this tesselation in Squeak,
> which might be pretty slow for large maps, say consisting of upto
> 100.000 polygons)? Or is there a workaround? (I suppose others may
> have felt the need to display such polygons....). Cairo also seems to
> be able to do this tesselation, but can it be used in Croquet? (a 2D
> rendering would be ok),


Unless your maps are dynamic, displaying them as a texture would be most
appropriate IMHO. It's hard to be more specific without knowing the
details and requirements.

- Bert -




Reply | Threaded
Open this post in threaded view
|

Re: displaying concave polygons with openGL

Bert Freudenberg
What I meant was rendering the data into textures as required, not  
loading them from bitmap files.

- Bert -

On 21.04.2008, at 15:46, Baveco, Hans wrote:

>
> Yes, that is the easy way. However, I would like to add GIS
> functionality: creating the polygons from a spatial database and
> directly display them in Croquet, without the need of a GIS inbetween
> that would export the map as an image...
> Spatial data would be e.g. in ESRI's shapefile (.shp) or export (.e00)
> format.
>
> Hans
>
>
>
>
> On 21.04.2008, at 15:08, Baveco, Hans wrote:
>
>> HI,
>> I am looking for a way to display polygons in Croquet. I need this to
>> be able to show maps in Croquet. With openGL only simple (convex,
>> without holes, etc) polygons can be rendered. Non-simple polygons  
>> need
>
>> to be tesselated (converted into a set of convex polygons). GLUT
>> apparently can be used to build this tesselation, but I find it very
>> hard to understand how exactly to do this... Is it really the only  
>> way
>
>> to achieve my goal (appart from doing this tesselation in Squeak,
>> which might be pretty slow for large maps, say consisting of upto
>> 100.000 polygons)? Or is there a workaround? (I suppose others may
>> have felt the need to display such polygons....). Cairo also seems to
>> be able to do this tesselation, but can it be used in Croquet? (a 2D
>> rendering would be ok),
>
>
> Unless your maps are dynamic, displaying them as a texture would be  
> most
> appropriate IMHO. It's hard to be more specific without knowing the
> details and requirements.
>
> - Bert -
>
>
>
>



Reply | Threaded
Open this post in threaded view
|

RE: displaying concave polygons with openGL

Hans Baveco
Ah, sorry, it is an unknown chapter to me, this texture mapping. Are
there examples available in Croquet how to do this? How would it help me
solve the concave polygon problem? (googling it gives mostly references
to GLU)

Hans

> -----Original Message-----
> From: [hidden email] [mailto:[hidden email]] On
> Behalf Of Bert Freudenberg
> Sent: maandag 21 april 2008 16:17
> To: [hidden email]
> Subject: Re: [croquet-dev] displaying concave polygons with openGL
>
> What I meant was rendering the data into textures as
> required, not loading them from bitmap files.
>
> - Bert -
>
> On 21.04.2008, at 15:46, Baveco, Hans wrote:
>
> >
> > Yes, that is the easy way. However, I would like to add GIS
> > functionality: creating the polygons from a spatial database and
> > directly display them in Croquet, without the need of a GIS
> inbetween
> > that would export the map as an image...
> > Spatial data would be e.g. in ESRI's shapefile (.shp) or
> export (.e00)
> > format.
> >
> > Hans
> >
> >
> >
> >
> > On 21.04.2008, at 15:08, Baveco, Hans wrote:
> >
> >> HI,
> >> I am looking for a way to display polygons in Croquet. I
> need this to
> >> be able to show maps in Croquet. With openGL only simple (convex,
> >> without holes, etc) polygons can be rendered. Non-simple polygons
> >> need
> >
> >> to be tesselated (converted into a set of convex polygons). GLUT
> >> apparently can be used to build this tesselation, but I
> find it very
> >> hard to understand how exactly to do this... Is it really the only
> >> way
> >
> >> to achieve my goal (appart from doing this tesselation in Squeak,
> >> which might be pretty slow for large maps, say consisting of upto
> >> 100.000 polygons)? Or is there a workaround? (I suppose others may
> >> have felt the need to display such polygons....). Cairo
> also seems to
> >> be able to do this tesselation, but can it be used in
> Croquet? (a 2D
> >> rendering would be ok),
> >
> >
> > Unless your maps are dynamic, displaying them as a texture would be
> > most appropriate IMHO. It's hard to be more specific
> without knowing
> > the details and requirements.
> >
> > - Bert -
> >
> >
> >
> >
>
>
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: displaying concave polygons with openGL

Bert Freudenberg
It means that you can employ any method you fancy for rendering the  
polygons, without being overly concerned with efficiency, since the  
rendered map would be reused for many frames. Squeak's Balloon engine  
can render general polygons with holes using 4x4 antialiasing quite  
efficiently, which would hopefully be more than good enough for your  
needs:

        drawGeneralPolygon:color:borderWidth:borderColor:

- Bert -

On 21.04.2008, at 16:46, Baveco, Hans wrote:

> Ah, sorry, it is an unknown chapter to me, this texture mapping. Are
> there examples available in Croquet how to do this? How would it  
> help me
> solve the concave polygon problem? (googling it gives mostly  
> references
> to GLU)
>
> Hans
>
>> -----Original Message-----
>> From: [hidden email] [mailto:[hidden email]] On
>> Behalf Of Bert Freudenberg
>> Sent: maandag 21 april 2008 16:17
>> To: [hidden email]
>> Subject: Re: [croquet-dev] displaying concave polygons with openGL
>>
>> What I meant was rendering the data into textures as
>> required, not loading them from bitmap files.
>>
>> - Bert -
>>
>> On 21.04.2008, at 15:46, Baveco, Hans wrote:
>>
>>>
>>> Yes, that is the easy way. However, I would like to add GIS
>>> functionality: creating the polygons from a spatial database and
>>> directly display them in Croquet, without the need of a GIS
>> inbetween
>>> that would export the map as an image...
>>> Spatial data would be e.g. in ESRI's shapefile (.shp) or
>> export (.e00)
>>> format.
>>>
>>> Hans
>>>
>>>
>>>
>>>
>>> On 21.04.2008, at 15:08, Baveco, Hans wrote:
>>>
>>>> HI,
>>>> I am looking for a way to display polygons in Croquet. I
>> need this to
>>>> be able to show maps in Croquet. With openGL only simple (convex,
>>>> without holes, etc) polygons can be rendered. Non-simple polygons
>>>> need
>>>
>>>> to be tesselated (converted into a set of convex polygons). GLUT
>>>> apparently can be used to build this tesselation, but I
>> find it very
>>>> hard to understand how exactly to do this... Is it really the only
>>>> way
>>>
>>>> to achieve my goal (appart from doing this tesselation in Squeak,
>>>> which might be pretty slow for large maps, say consisting of upto
>>>> 100.000 polygons)? Or is there a workaround? (I suppose others may
>>>> have felt the need to display such polygons....). Cairo
>> also seems to
>>>> be able to do this tesselation, but can it be used in
>> Croquet? (a 2D
>>>> rendering would be ok),
>>>
>>>
>>> Unless your maps are dynamic, displaying them as a texture would be
>>> most appropriate IMHO. It's hard to be more specific
>> without knowing
>>> the details and requirements.
>>>
>>> - Bert -
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>
>

Reply | Threaded
Open this post in threaded view
|

RE: displaying concave polygons with openGL

Hans Baveco
 That's a familiar method! the coin has not dropped yet, however, how
does the result end up in a "texture" for openGL? the method draws on a
BalloonCanvas if I remember correctly?
Hans


> It means that you can employ any method you fancy for
> rendering the polygons, without being overly concerned with
> efficiency, since the rendered map would be reused for many
> frames. Squeak's Balloon engine can render general polygons
> with holes using 4x4 antialiasing quite efficiently, which
> would hopefully be more than good enough for your
> needs:
>
> drawGeneralPolygon:color:borderWidth:borderColor:
>
> - Bert -
>
> On 21.04.2008, at 16:46, Baveco, Hans wrote:
>
> > Ah, sorry, it is an unknown chapter to me, this texture
> mapping. Are
> > there examples available in Croquet how to do this? How
> would it help
> > me solve the concave polygon problem? (googling it gives mostly
> > references to GLU)
> >
> > Hans
> >
> >> -----Original Message-----
> >> From: [hidden email] [mailto:[hidden email]]
> On Behalf Of
> >> Bert Freudenberg
> >> Sent: maandag 21 april 2008 16:17
> >> To: [hidden email]
> >> Subject: Re: [croquet-dev] displaying concave polygons with openGL
> >>
> >> What I meant was rendering the data into textures as required, not
> >> loading them from bitmap files.
> >>
> >> - Bert -
> >>
> >> On 21.04.2008, at 15:46, Baveco, Hans wrote:
> >>
> >>>
> >>> Yes, that is the easy way. However, I would like to add GIS
> >>> functionality: creating the polygons from a spatial database and
> >>> directly display them in Croquet, without the need of a GIS
> >> inbetween
> >>> that would export the map as an image...
> >>> Spatial data would be e.g. in ESRI's shapefile (.shp) or
> >> export (.e00)
> >>> format.
> >>>
> >>> Hans
> >>>
> >>>
> >>>
> >>>
> >>> On 21.04.2008, at 15:08, Baveco, Hans wrote:
> >>>
> >>>> HI,
> >>>> I am looking for a way to display polygons in Croquet. I
> >> need this to
> >>>> be able to show maps in Croquet. With openGL only simple
> (convex,
> >>>> without holes, etc) polygons can be rendered. Non-simple
> polygons
> >>>> need
> >>>
> >>>> to be tesselated (converted into a set of convex polygons). GLUT
> >>>> apparently can be used to build this tesselation, but I
> >> find it very
> >>>> hard to understand how exactly to do this... Is it
> really the only
> >>>> way
> >>>
> >>>> to achieve my goal (appart from doing this tesselation
> in Squeak,
> >>>> which might be pretty slow for large maps, say
> consisting of upto
> >>>> 100.000 polygons)? Or is there a workaround? (I suppose
> others may
> >>>> have felt the need to display such polygons....). Cairo
> >> also seems to
> >>>> be able to do this tesselation, but can it be used in
> >> Croquet? (a 2D
> >>>> rendering would be ok),
> >>>
> >>>
> >>> Unless your maps are dynamic, displaying them as a
> texture would be
> >>> most appropriate IMHO. It's hard to be more specific
> >> without knowing
> >>> the details and requirements.
> >>>
> >>> - Bert -
> >>>
> >>>
> >>>
> >>>
> >>
> >>
> >>
> >>
> >>
> >
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: displaying concave polygons with openGL

Bert Freudenberg
A BalloonCanvas renders into a Form, which is the data a TTexture uses.

Same thing for regular textures - a picture file is loaded into a Form  
and then displayed using a TTexture.

- Bert -

On 21.04.2008, at 17:09, Baveco, Hans wrote:

> That's a familiar method! the coin has not dropped yet, however, how
> does the result end up in a "texture" for openGL? the method draws  
> on a
> BalloonCanvas if I remember correctly?
> Hans
>
>
>> It means that you can employ any method you fancy for
>> rendering the polygons, without being overly concerned with
>> efficiency, since the rendered map would be reused for many
>> frames. Squeak's Balloon engine can render general polygons
>> with holes using 4x4 antialiasing quite efficiently, which
>> would hopefully be more than good enough for your
>> needs:
>>
>> drawGeneralPolygon:color:borderWidth:borderColor:
>>
>> - Bert -
>>
>> On 21.04.2008, at 16:46, Baveco, Hans wrote:
>>
>>> Ah, sorry, it is an unknown chapter to me, this texture
>> mapping. Are
>>> there examples available in Croquet how to do this? How
>> would it help
>>> me solve the concave polygon problem? (googling it gives mostly
>>> references to GLU)
>>>
>>> Hans
>>>
>>>> -----Original Message-----
>>>> From: [hidden email] [mailto:[hidden email]]
>> On Behalf Of
>>>> Bert Freudenberg
>>>> Sent: maandag 21 april 2008 16:17
>>>> To: [hidden email]
>>>> Subject: Re: [croquet-dev] displaying concave polygons with openGL
>>>>
>>>> What I meant was rendering the data into textures as required, not
>>>> loading them from bitmap files.
>>>>
>>>> - Bert -
>>>>
>>>> On 21.04.2008, at 15:46, Baveco, Hans wrote:
>>>>
>>>>>
>>>>> Yes, that is the easy way. However, I would like to add GIS
>>>>> functionality: creating the polygons from a spatial database and
>>>>> directly display them in Croquet, without the need of a GIS
>>>> inbetween
>>>>> that would export the map as an image...
>>>>> Spatial data would be e.g. in ESRI's shapefile (.shp) or
>>>> export (.e00)
>>>>> format.
>>>>>
>>>>> Hans
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On 21.04.2008, at 15:08, Baveco, Hans wrote:
>>>>>
>>>>>> HI,
>>>>>> I am looking for a way to display polygons in Croquet. I
>>>> need this to
>>>>>> be able to show maps in Croquet. With openGL only simple
>> (convex,
>>>>>> without holes, etc) polygons can be rendered. Non-simple
>> polygons
>>>>>> need
>>>>>
>>>>>> to be tesselated (converted into a set of convex polygons). GLUT
>>>>>> apparently can be used to build this tesselation, but I
>>>> find it very
>>>>>> hard to understand how exactly to do this... Is it
>> really the only
>>>>>> way
>>>>>
>>>>>> to achieve my goal (appart from doing this tesselation
>> in Squeak,
>>>>>> which might be pretty slow for large maps, say
>> consisting of upto
>>>>>> 100.000 polygons)? Or is there a workaround? (I suppose
>> others may
>>>>>> have felt the need to display such polygons....). Cairo
>>>> also seems to
>>>>>> be able to do this tesselation, but can it be used in
>>>> Croquet? (a 2D
>>>>>> rendering would be ok),
>>>>>
>>>>>
>>>>> Unless your maps are dynamic, displaying them as a
>> texture would be
>>>>> most appropriate IMHO. It's hard to be more specific
>>>> without knowing
>>>>> the details and requirements.
>>>>>
>>>>> - Bert -
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>>
>



Reply | Threaded
Open this post in threaded view
|

RE: displaying concave polygons with openGL

Hans Baveco
 

Great! so it is a lot simpler than I feared!
Many thanks for the explanation!

Hans

>
> A BalloonCanvas renders into a Form, which is the data a
> TTexture uses.
>
> Same thing for regular textures - a picture file is loaded
> into a Form and then displayed using a TTexture.
>
> - Bert -
>
> On 21.04.2008, at 17:09, Baveco, Hans wrote:
>
> > That's a familiar method! the coin has not dropped yet,
> however, how
> > does the result end up in a "texture" for openGL? the
> method draws on
> > a BalloonCanvas if I remember correctly?
> > Hans
> >
> >
> >> It means that you can employ any method you fancy for
> >> rendering the polygons, without being overly concerned with
> >> efficiency, since the rendered map would be reused for many
> >> frames. Squeak's Balloon engine can render general polygons
> >> with holes using 4x4 antialiasing quite efficiently, which
> >> would hopefully be more than good enough for your
> >> needs:
> >>
> >> drawGeneralPolygon:color:borderWidth:borderColor:
> >>
> >> - Bert -
> >>
> >> On 21.04.2008, at 16:46, Baveco, Hans wrote:
> >>
> >>> Ah, sorry, it is an unknown chapter to me, this texture
> >> mapping. Are
> >>> there examples available in Croquet how to do this? How
> >> would it help
> >>> me solve the concave polygon problem? (googling it gives mostly
> >>> references to GLU)
> >>>
> >>> Hans
> >>>
> >>>> -----Original Message-----
> >>>> From: [hidden email] [mailto:[hidden email]]
> >> On Behalf Of
> >>>> Bert Freudenberg
> >>>> Sent: maandag 21 april 2008 16:17
> >>>> To: [hidden email]
> >>>> Subject: Re: [croquet-dev] displaying concave polygons
> with openGL
> >>>>
> >>>> What I meant was rendering the data into textures as
> required, not
> >>>> loading them from bitmap files.
> >>>>
> >>>> - Bert -
> >>>>
> >>>> On 21.04.2008, at 15:46, Baveco, Hans wrote:
> >>>>
> >>>>>
> >>>>> Yes, that is the easy way. However, I would like to add GIS
> >>>>> functionality: creating the polygons from a spatial database and
> >>>>> directly display them in Croquet, without the need of a GIS
> >>>> inbetween
> >>>>> that would export the map as an image...
> >>>>> Spatial data would be e.g. in ESRI's shapefile (.shp) or
> >>>> export (.e00)
> >>>>> format.
> >>>>>
> >>>>> Hans
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> On 21.04.2008, at 15:08, Baveco, Hans wrote:
> >>>>>
> >>>>>> HI,
> >>>>>> I am looking for a way to display polygons in Croquet. I
> >>>> need this to
> >>>>>> be able to show maps in Croquet. With openGL only simple
> >> (convex,
> >>>>>> without holes, etc) polygons can be rendered. Non-simple
> >> polygons
> >>>>>> need
> >>>>>
> >>>>>> to be tesselated (converted into a set of convex
> polygons). GLUT
> >>>>>> apparently can be used to build this tesselation, but I
> >>>> find it very
> >>>>>> hard to understand how exactly to do this... Is it
> >> really the only
> >>>>>> way
> >>>>>
> >>>>>> to achieve my goal (appart from doing this tesselation
> >> in Squeak,
> >>>>>> which might be pretty slow for large maps, say
> >> consisting of upto
> >>>>>> 100.000 polygons)? Or is there a workaround? (I suppose
> >> others may
> >>>>>> have felt the need to display such polygons....). Cairo
> >>>> also seems to
> >>>>>> be able to do this tesselation, but can it be used in
> >>>> Croquet? (a 2D
> >>>>>> rendering would be ok),
> >>>>>
> >>>>>
> >>>>> Unless your maps are dynamic, displaying them as a
> >> texture would be
> >>>>> most appropriate IMHO. It's hard to be more specific
> >>>> without knowing
> >>>>> the details and requirements.
> >>>>>
> >>>>> - Bert -
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>
> >>
> >>
> >
>
>
>
>
>