OK, thanks Alok.  It's not a biggie in any case!

DAN



On Thu, May 29, 2014 at 1:53 PM, Alok Gandhi <alok.gandhi2...@gmail.com>
wrote:

> Hi Dan,
>
> I am not sure but I think you could edit the compound for resolving
> tokens. The core node does require absolute file paths, I am afraid
> hardcoding low-level c++ for resolving tokens might take some time which
> unfortunately I do not have right now.
>
> However, it is a good point that I will take into cosideration for future
> updates.
>
> Cheers !
>
>
> On Thu, May 29, 2014 at 5:25 PM, Dan Yargici <danyarg...@gmail.com> wrote:
>
>> Hi Alok.
>>
>> I'm using this for the first time and loving it, however my immediate
>> crit would be that it would be great if it could resolve tokens.  In my
>> case [Project Path] specifically.
>>
>> Thanks again for this!
>>
>> DAN
>>
>>
>>
>> On Sun, Nov 17, 2013 at 9:52 AM, Dan Yargici <danyarg...@gmail.com>
>> wrote:
>>
>>> Thanks Alok, much appreciated!
>>>
>>> DAN
>>>
>>>
>>> On Sun, Nov 17, 2013 at 3:01 AM, Alan Fregtman <alan.fregt...@gmail.com>
>>> wrote:
>>>
>>>> At work we are, yeah. I'll see about getting it compiled.
>>>>
>>>>
>>>>
>>>> On Sat, Nov 16, 2013 at 4:16 PM, Alok Gandhi <alok.gandhi2...@gmail.com
>>>> > wrote:
>>>>
>>>>> Yea it may be that. I presume you are using linux. If not then test
>>>>> out the node to check if it works.
>>>>>
>>>>>
>>>>> On Sat, Nov 16, 2013 at 4:01 PM, Alan Fregtman <
>>>>> alan.fregt...@gmail.com> wrote:
>>>>>
>>>>>> Interesting... I wonder if this is why I've been having problems with
>>>>>> KP's PC2 reader with huge files just over 2GB? I ended up splitting my
>>>>>> meshes to work around it, but now I wonder...
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Sat, Nov 16, 2013 at 2:18 PM, Alok Gandhi <
>>>>>> alok.gandhi2...@gmail.com> wrote:
>>>>>>
>>>>>>> Hi All,
>>>>>>>
>>>>>>> I have update the ReadPC2ICE node to version 1.1
>>>>>>>
>>>>>>> You can find the addon here <http://bit.ly/1axgUea> and code here
>>>>>>> <http://bit.ly/17ZKRpU>.
>>>>>>>
>>>>>>> Change Log:
>>>>>>>
>>>>>>> Bug fixes:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ·         Point data for files over 2 GB was not read correctly due
>>>>>>> to limitations of <int> data type. It is changed to <__int64> which can
>>>>>>> handle the data > 2 GB. Now the node can easily read files over 2 GB.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> *Notes*
>>>>>>>
>>>>>>> ·         The same changes needs to be applied for
>>>>>>> *KP_PointCacheReader* for this bugfix. I am not aware if Kai has
>>>>>>> fixed this already in other updates to his code. But the one
>>>>>>> <http://sculptwork.com/rr/bak/kaipirinha/KP_PointCacheV25.zip> I
>>>>>>> had from rray.de does not have this change. Kai, if you are
>>>>>>> listening can you confirm that?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ·         The code for this bugfix is not supported on Linux.
>>>>>>> However, in case you want to compile for Linux, please note that the
>>>>>>> <__int64> data type for windows translates to <long long> on a gcc 
>>>>>>> compiler
>>>>>>> for Linux. I will add support for Linux once I have a machine with 
>>>>>>> Linux up
>>>>>>> and running. Till then you have to change the code yourself.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ·         Suppressed unnecessary warning messages in cases of pc2
>>>>>>> file not specified and unable to open file. They were kind of annoying.
>>>>>>> Just uncomment my code lines to bring them back if you want.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> New features:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ·         When working with pc2 files I always missed the ability
>>>>>>> to know beforehand the start and end frame of the file. Now the node
>>>>>>> supports this. There are two new output ports that furnish the start and
>>>>>>> end frames as scalars. You can use this to do time warps, offsets, view
>>>>>>> them in viewports as custom attributes or whatever else you might find 
>>>>>>> it
>>>>>>> useful for.
>>>>>>>
>>>>>>> Please feel free to mail me if you have any question or
>>>>>>> problems/bugs with this addon.
>>>>>>>
>>>>>>> Thanks.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Nov 4, 2013 at 9:00 PM, Alok Gandhi <
>>>>>>> alok.gandhi2...@gmail.com> wrote:
>>>>>>>
>>>>>>>> And here is the github for the code:
>>>>>>>>
>>>>>>>> https://github.com/alok1974/KP_PointCache-Reader-ICE-Node
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Nov 4, 2013 at 8:42 PM, Alok Gandhi <
>>>>>>>> alok.gandhi2...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Here is the code for the pc2 reader:
>>>>>>>>>
>>>>>>>>> ----------------------------------------------------------
>>>>>>>>> """
>>>>>>>>> .PC2 File Format:
>>>>>>>>> You can create or modify PointCache2 files by hand using the
>>>>>>>>> following file format.
>>>>>>>>> The start of the file is a header containing:
>>>>>>>>>
>>>>>>>>> char    cacheSignature[12];   // Will be 'POINTCACHE2' followed by
>>>>>>>>> a trailing null character.
>>>>>>>>> int     fileVersion;          // Currently 1
>>>>>>>>> int     numPoints;            // Number of points per sample
>>>>>>>>> float   startFrame;           // Corresponds to the UI value of
>>>>>>>>> the same name.
>>>>>>>>> float   sampleRate;           // Corresponds to the UI value of
>>>>>>>>> the same name.
>>>>>>>>> int     numSamples;           // Defines how many samples are
>>>>>>>>> stored in the file.
>>>>>>>>>
>>>>>>>>> Be sure to check the version number. If it isn't 1, then don't
>>>>>>>>> mess with the file,
>>>>>>>>> as the format will change in the future.
>>>>>>>>>
>>>>>>>>> Following the header, there is a straight dump of all the cache
>>>>>>>>> samples (which are snapshots of all the point positions for an
>>>>>>>>> object).
>>>>>>>>> Each sample is stored one after the other as a flat array of x/y/z
>>>>>>>>> floats
>>>>>>>>> for each point (so each sample is (numPoints * sizeof(float) * 3)
>>>>>>>>> bytes).
>>>>>>>>> """
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> # Note for Alan : You might want to extend this class by adding a
>>>>>>>>> method to fetch the frame data
>>>>>>>>> #                 for a prticular frame. It is trivial to do so,
>>>>>>>>> just look at my code below for
>>>>>>>>> #                 getting bounding box data.
>>>>>>>>>
>>>>>>>>> import os
>>>>>>>>> import sys
>>>>>>>>> import time
>>>>>>>>> from struct import unpack
>>>>>>>>>
>>>>>>>>> class CacheObject(object):
>>>>>>>>>     def __init__(self, pth):
>>>>>>>>>         self._dFile = None
>>>>>>>>>         self.fPath = pth
>>>>>>>>>         self._headerString = ''
>>>>>>>>>         self._cacheFileVersionNumber = 0
>>>>>>>>>         self._pCount = 0
>>>>>>>>>         self._startFrame = 0
>>>>>>>>>         self._sampleRate = 0
>>>>>>>>>         self._numSamples = 0
>>>>>>>>>         self._mshBBox = {}
>>>>>>>>>         self._headerRead = False
>>>>>>>>>         self._dataRead = False
>>>>>>>>>
>>>>>>>>>     def _setFile(self):
>>>>>>>>>         if not self._dFile:
>>>>>>>>>             self._dFile = open(self.fPath, 'rb')
>>>>>>>>>             self._msh =
>>>>>>>>> os.path.splitext(os.path.basename(self.fPath))[0]
>>>>>>>>>
>>>>>>>>>         if not self._headerRead:
>>>>>>>>>             self._processHeader()
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>     def _processHeader(self):
>>>>>>>>>         self._headerRead = True
>>>>>>>>>
>>>>>>>>>         self._setFile()
>>>>>>>>>
>>>>>>>>>         dfile = self._dFile
>>>>>>>>>
>>>>>>>>>         self._headerString = unpack('12s', dfile.read(12))[0]
>>>>>>>>>         self._cacheFileVersionNumber = unpack('I',
>>>>>>>>> dfile.read(4))[0]
>>>>>>>>>         self._pCount = unpack('L', dfile.read(4))[0]
>>>>>>>>>         self._startFrame = unpack('f', dfile.read(4))[0]
>>>>>>>>>         self._sampleRate = unpack('f', dfile.read(4))[0]
>>>>>>>>>         self._numSamples = unpack('L', dfile.read(4))[0]
>>>>>>>>>
>>>>>>>>>         if not self._dataRead:
>>>>>>>>>             dfile.flush()
>>>>>>>>>             dfile.close()
>>>>>>>>>             self._dFile = None
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>     def _processBBoxData(self):
>>>>>>>>>         self._dataRead = True
>>>>>>>>>         self._setFile()
>>>>>>>>>
>>>>>>>>>         dfile = self._dFile
>>>>>>>>>         data = {}
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>         s = int(self._startFrame)
>>>>>>>>>         e = int(s + self._numSamples)
>>>>>>>>>
>>>>>>>>>         for f in range(s, e):
>>>>>>>>>             xArr = []
>>>>>>>>>             yArr = []
>>>>>>>>>             zArr = []
>>>>>>>>>
>>>>>>>>>             for i in range(self._pCount):
>>>>>>>>>                 x = unpack('f', dfile.read(4))[0]
>>>>>>>>>                 y = unpack('f', dfile.read(4))[0]
>>>>>>>>>                 z = unpack('f', dfile.read(4))[0]
>>>>>>>>>
>>>>>>>>>                 xArr.append((x, i))
>>>>>>>>>                 yArr.append((y, i))
>>>>>>>>>                 zArr.append((z, i))
>>>>>>>>>
>>>>>>>>>             # min\max data
>>>>>>>>>             d = (max(xArr)[0], max(yArr)[0], max(zArr)[0],
>>>>>>>>> min(xArr)[0], min(yArr)[0], min(zArr)[0])
>>>>>>>>>
>>>>>>>>>             data[f] = { 0:(d[3], d[4], d[5]),
>>>>>>>>>                         1:(d[3], d[1], d[5]),
>>>>>>>>>                         2:(d[0], d[1], d[5]),
>>>>>>>>>                         3:(d[0], d[4], d[5]),
>>>>>>>>>                         4:(d[3], d[4], d[2]),
>>>>>>>>>                         5:(d[3], d[1], d[2]),
>>>>>>>>>                         6:(d[0], d[1], d[2]),
>>>>>>>>>                         7:(d[0], d[4], d[2]),
>>>>>>>>>                       }
>>>>>>>>>
>>>>>>>>>         self._mshBBox = data
>>>>>>>>>
>>>>>>>>>         dfile.flush()
>>>>>>>>>         dfile.close()
>>>>>>>>>         self._dFile = None
>>>>>>>>>
>>>>>>>>>     def getHeaderInfo(self):
>>>>>>>>>         self._processHeader()
>>>>>>>>>         return {'HEADER': self._headerString,
>>>>>>>>>                 'VERSION': self._cacheFileVersionNumber,
>>>>>>>>>                 'NB_POINTS': self._pCount,
>>>>>>>>>                 'START_FRAME': self._startFrame,
>>>>>>>>>                 'SAMPLE_RATE': self._sampleRate,
>>>>>>>>>                 'NB_SAMPLES': self._numSamples,}
>>>>>>>>>
>>>>>>>>>     def getBBoxData(self):
>>>>>>>>>         self._processBBoxData()
>>>>>>>>>         return self._mshBBox
>>>>>>>>>
>>>>>>>>> if __name__ == '__main__':
>>>>>>>>>     f = r'<pc2 file path>'
>>>>>>>>>     o = CacheObject(f)
>>>>>>>>>     print o.getHeaderInfo()
>>>>>>>>>
>>>>>>>>> ---------------------------------------------------------
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  On Mon, Nov 4, 2013 at 8:37 PM, Alok Gandhi <
>>>>>>>>> alok.gandhi2...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hmm, there are a few options to load the data in reader operator.
>>>>>>>>>> Stream, Frame or Memory. Try selecting the frame or memory options. 
>>>>>>>>>> By
>>>>>>>>>> default, it is the stream which might have problems similar to one 
>>>>>>>>>> you
>>>>>>>>>> have. Anyways, in addition to the ICE Node, few years back, I also 
>>>>>>>>>> wrote a
>>>>>>>>>> python reader class to read the pc2 file data directly through 
>>>>>>>>>> python. Not
>>>>>>>>>> optimised using numpy or scipy but it can still let you investigate 
>>>>>>>>>> the
>>>>>>>>>> contents of a ,pc2 file in a human-readable format. I will also post 
>>>>>>>>>> the
>>>>>>>>>> code to it.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Mon, Nov 4, 2013 at 8:33 PM, Alan Fregtman <
>>>>>>>>>> alan.fregt...@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Intermittent empty frames. Sometimes they work, sometimes not.
>>>>>>>>>>> Mind you... it's very dense topo, and the pc2 file is about 2GB. It 
>>>>>>>>>>> might
>>>>>>>>>>> be reaching some sort of limit somewhere.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Nov 4, 2013 at 8:29 PM, Alok Gandhi <
>>>>>>>>>>> alok.gandhi2...@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> You do realise that my node is an exact copy of the
>>>>>>>>>>>> KP_PointCache Reader Operator. Only difference is that instead of 
>>>>>>>>>>>> applying
>>>>>>>>>>>> the pointposition on the host mesh posarray, it furnishes the same 
>>>>>>>>>>>> data in
>>>>>>>>>>>> the vector array format in ICE.
>>>>>>>>>>>>
>>>>>>>>>>>> I am not sure if reading the pointpositions in ICE through my
>>>>>>>>>>>> node will give you any extra functionality that Kai's original 
>>>>>>>>>>>> operator
>>>>>>>>>>>> can't. But anyways, feel free to try it.
>>>>>>>>>>>>
>>>>>>>>>>>> Btw, may I know what is the issue that you are having ?
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Mon, Nov 4, 2013 at 8:25 PM, Alan Fregtman <
>>>>>>>>>>>> alan.fregt...@gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Great! Thank you. Just today we've been experiencing an issue
>>>>>>>>>>>>> with KP's reader for this one specific mesh. We're temporarily 
>>>>>>>>>>>>> using
>>>>>>>>>>>>> Alembic manually, but I'm curious if your reader will be any 
>>>>>>>>>>>>> better.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Mon, Nov 4, 2013 at 7:45 PM, Alok Gandhi <
>>>>>>>>>>>>> alok.gandhi2...@gmail.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Surething, will post the source probably on github. My old
>>>>>>>>>>>>>> laptop with ubuntu died a few months ago :( so I cant compile it 
>>>>>>>>>>>>>> myself.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I will post the link here soon.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Sent from my iPhone
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Nov 4, 2013, at 7:20 PM, Alan Fregtman <
>>>>>>>>>>>>>> alan.fregt...@gmail.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hey Alok,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Any chance for a Linux compile? Or sources to attempt a
>>>>>>>>>>>>>> compile ourselves?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Mon, Nov 4, 2013 at 11:21 AM, Alok Gandhi <
>>>>>>>>>>>>>> alok.gandhi2...@gmail.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Glad it helped you. And yea, now thinking in retrospect, you
>>>>>>>>>>>>>>> won't need the switch context as the getpointid already does 
>>>>>>>>>>>>>>> that.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Sent from my iPhone
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Nov 4, 2013, at 9:23 AM, Cristobal Infante <
>>>>>>>>>>>>>>> cgc...@gmail.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> VERY HANDY Alok, I can confirm you don't need the switch
>>>>>>>>>>>>>>> context node, all the rest worked fine..
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> By the way, the BIG difference in relation to the default
>>>>>>>>>>>>>>>  "Cache on File" read node, is that you are able to move your 
>>>>>>>>>>>>>>> cached
>>>>>>>>>>>>>>> geometry
>>>>>>>>>>>>>>> around the scene. So if you have a last minute layout change
>>>>>>>>>>>>>>> you can deal with it in rendering. This is way we've stuck with 
>>>>>>>>>>>>>>> KP op
>>>>>>>>>>>>>>> reader so far..
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On 4 November 2013 13:58, Alok Gandhi <
>>>>>>>>>>>>>>> alok.gandhi2...@gmail.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Hi Cristobal,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> The node output a single array of pointpositions. So you
>>>>>>>>>>>>>>>> have to convert the array to per point attribute. A getpointid 
>>>>>>>>>>>>>>>> plugged into
>>>>>>>>>>>>>>>> the select in array and them set pointposition will do the 
>>>>>>>>>>>>>>>> trick. Of course
>>>>>>>>>>>>>>>> you know that the target mesh or pointcloud should have same 
>>>>>>>>>>>>>>>> number points
>>>>>>>>>>>>>>>> as in the pc2 file. Also you might need a  switch context node 
>>>>>>>>>>>>>>>> before set
>>>>>>>>>>>>>>>> pointposition.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> In case of an empty pointcloud, it is easier. Just plug the
>>>>>>>>>>>>>>>> output of the node directly into an add points node.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Sent from my iPhone
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Nov 4, 2013, at 8:13 AM, Cristobal Infante <
>>>>>>>>>>>>>>>> cgc...@gmail.com> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Hi Alok,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thanks again for sharing this tool, we still rely KP pc2
>>>>>>>>>>>>>>>> reader so having an alternative is really handy.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I was guessing "Read PC2 File" > "Set Point Position"?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> But I am getting a structure mismatch, probably doing the
>>>>>>>>>>>>>>>> wrong thing!
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>> Cris
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On 4 November 2013 05:40, Alok Gandhi <
>>>>>>>>>>>>>>>> alok.gandhi2...@gmail.com> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Ah I see, I was confused when you said " i haven't tried
>>>>>>>>>>>>>>>>> multiple files per frame (does softimage even export pc2 
>>>>>>>>>>>>>>>>> files this way?)
>>>>>>>>>>>>>>>>> ".
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Well in that, sure you can export single file per frame
>>>>>>>>>>>>>>>>> per object through KP_PointCache manager, you simply have to 
>>>>>>>>>>>>>>>>> select the
>>>>>>>>>>>>>>>>> start and end frame as the same. PC2 file format have the 
>>>>>>>>>>>>>>>>> notion of
>>>>>>>>>>>>>>>>>  "samples" rather than frame, so if you have one sample per 
>>>>>>>>>>>>>>>>> frame set then
>>>>>>>>>>>>>>>>> basically you are exporting one data set (pointpositions) per 
>>>>>>>>>>>>>>>>> frame.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Mon, Nov 4, 2013 at 12:26 AM, Steven Caron <
>>>>>>>>>>>>>>>>> car...@gmail.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> no one said that you could have multiple objects in the
>>>>>>>>>>>>>>>>>> same .pc2 file.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On Sun, Nov 3, 2013 at 8:37 PM, Alok Gandhi <
>>>>>>>>>>>>>>>>>> alok.gandhi2...@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> I am a little confused...
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> For sure, you cannot have multiple objects in the same
>>>>>>>>>>>>>>>>>>> .pc2 file, the format simply doesn't support that.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>
>>>>
>>>
>>
>
>
> --
>

Reply via email to