[Insight-users] vtk polydata import / export

imho imho at bephp . com
Wed, 16 Jul 2003 11:24:19 +0200


This is a multi-part message in MIME format.
--------------010301040301010406040005
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hi Luis,

I have saved the data into a .mdh metaImage file, and it has a non null 
size.
I've tried to compile the imageViewer but I have a linking error so I've 
tried to save it into a VTK format, but I can't open it with my 
polyDataReader of course ( ERROR: In 
C:\martink\vtk40\VTK\IO\vtkPolyDataReader.cxx, line 167
vtkPolyDataReader (0x057D3900): Cannot read dataset type: 
structured_points). But it seems that the importer in itk is ok, it's 
the last part of the pipe-line that I've to check out, the 
itkExporter->vtkImporter.
 
I send you the output files, maybe it could help.

thanks


Luis Ibanez wrote:

>
> Hi Imho,
>
> Could you please try the following:
>
> in your pipeline
>
> vtkPolydata->vtkImageData->vtkExporter->itkImporter
>
> add an ITK writer after the itkImporter
>
>   itkImporter->itkImageFileWriter
>
> and save the data in a MetaImage format
> (which support pixel type float).
>
> The use the ImageViewer application available
> in InsightApplications in order to check the
> content of the image.
>
> You could also use a VTK image format
> and use VTK for checking the content of
> the file.
>
> The point of the test is to verify if the
> image is being imported correctly into ITK.
>
>
> Please let us know what you find.
>
>
>   Thanks
>
>
>     Luis
>
>
>
> --------------
> imho wrote:
>
>> Hi Luis,
>> the error that I have is a runtime error, I didn't add it because I have
>> a message in front of it, and I can't copy paste it. Now I send you a
>> print screen :) Maybe I didn't understand it rightly.
>>
>> The pixelType that I've for ITK is float :
>> ...
>> const unsigned int Dimension = 3;
>> class registrationITK
>> {
>> public:
>> ...
>>     typedef float PixelType;
>>     typedef itk::Image<PixelType, Dimension> ImageType;
>> ...
>> private :
>> ...
>>     ImageType::Pointer imageSource;
>>     ImageType::Pointer imageTarget;
>>
>> }
>>
>> thanks for your help
>>
>> Imho.
>>
>>
>>
>> Luis Ibanez wrote:
>>
>>>
>>> Hi Imho,
>>>
>>> Your description is a bit confusing.
>>>
>>> You may want to verify your processing stage by stage.
>>>
>>> A pipeline:
>>>
>>> vtkExporter-->itkImporter-->itkExporter-->vtkImporter
>>>
>>> Should work without problem.
>>>
>>> You may want to verify that you are using compatible
>>> pixel types. What is the pixel type that you are using
>>> for instantiating the ITK images ?
>>>
>>> >
>>> > back in vtk I still have a vtkImageData error.
>>> >
>>> What is the error message that you get for vtkImageData ?
>>> is this a compilation error ? a link error ? or a runtime error ?
>>>
>>> Posting the error message can always help   :-)
>>>
>>>
>>>
>>>    Luis
>>>
>>>
>>>
>>> ---------------
>>> imho wrote:
>>>
>>>> Hi Luis,
>>>>
>>>> I've succeed converting vtkPolyData to vtkImageData, it deforms my 
>>>> vtkPolyData and is very slow but I'll try other parameters...
>>>> the principal is that I have a vtkImageData to put in the exporter 
>>>> / importer pipe-line.
>>>> And there I have a problem. itk returns a null imageData, so I've 
>>>> tried a simple pipe-line to itk where I do nothing, just this :
>>>>
>>>> ------------------------------------------
>>>> in itk class :
>>>> registrationITK::registrationITK(vtkImageImport* vtkImporter, 
>>>> vtkImageExport *vtkExporter, vtkImageExport *vtkExporter2)
>>>> {      itkImporter = ImageImportType::New();
>>>>    itkImporter2 = ImageImportType::New();
>>>>    itkExporter = ImageExportType::New();
>>>>
>>>>    itkExporter->SetInput(itkImporter->GetOutput());
>>>>      ConnectPipelines(vtkExporter, itkImporter);
>>>>    ConnectPipelines(vtkExporter2, itkImporter2);
>>>>    ConnectPipelines(itkExporter, vtkImporter);            
>>>> itkImporter->Update();
>>>>    itkImporter2->Update();
>>>> }
>>>> -------------------------------
>>>> in vtk class :
>>>> ...
>>>>
>>>>    vtkImporter4 = vtkImageImport::New();
>>>> ...
>>>>    vtkExporter4 = vtkImageExport::New();
>>>>    vtkExporter5 = vtkImageExport::New();
>>>>
>>>>    poly[0] = vtkPolyData::New();
>>>>    poly[1] = vtkPolyData::New();
>>>>    polyLive = vtkPolyData::New();
>>>>
>>>>    imageModel = vtkImageData::New();
>>>>    imageModelLive= vtkImageData::New();
>>>>
>>>>    polyToImage = vtkImplicitModeller::New();
>>>>    polyLiveToImage = vtkImplicitModeller::New();
>>>> ...
>>>>        polyToImage->SetInput(poly[0]);
>>>>        polyLiveToImage->SetInput(polyLive);
>>>>              polyToImage->SetSampleDimensions(10, 10, 10);
>>>>        polyToImage->SetMaximumDistance(0.25);
>>>>           polyLiveToImage->SetSampleDimensions(10, 10, 10);
>>>>        polyLiveToImage->SetMaximumDistance(0.25);
>>>>
>>>>        imageModel = polyToImage->GetOutput();
>>>>        imageModelLive = polyLiveToImage->GetOutput();
>>>>                      vtkExporter4->SetInput(imageModel);
>>>>        vtkExporter5->SetInput(imageModelLive);
>>>>
>>>>        regITK = new registrationITK(vtkImporter4, vtkExporter4, 
>>>> vtkExporter5);
>>>>
>>>>        cast->SetInput(vtkImporter4->GetOutput());
>>>>        castTo3D->SetInput(vtkImporter4->GetOutput());
>>>>
>>>>        isRegITK = true;
>>>>
>>>> ...
>>>>        poly[0]->CopyStructure(ApplyDemonRegistration());
>>>> ------------------------------------------------
>>>> vtkPolyData* sourceControlVTK::ApplyDemonRegistration()
>>>> {
>>>>    vtkPolyData* pol = vtkPolyData::New();
>>>>
>>>> //  regITK->InitDemonRegistration(progress); // dans controlQt
>>>>      imageModel = vtkImporter4->GetOutput();
>>>>    pol = imageToPolyMaker->makePoly(imageModel);
>>>>    return pol;
>>>>
>>>> }
>>>>
>>>> back in vtk I still have a vtkImageData error.
>>>> So I resume, when I do :
>>>> vtkPolyData->vtkImageData->vtkPolyData
>>>> my poly is'nt allright but I have something to show
>>>>
>>>> but if I do :
>>>> vtkPolyData->vtkImageData->vtkExporter->itkImporter->itkExporter->vtkImporter->vtkImagedata->vtkPolyData 
>>>> with or without the demonFilter
>>>> I have nothing back :/
>>>> I surely do something wrong, but I can't find what.
>>>> Maybe you can help me (again).
>>>>
>>>> thanks a lot.
>>>>
>>>> Imho.
>>>>
>>>
>>> .
>>>
>>
>>
>> ------------------------------------------------------------------------
>>
>
>
>
> .
>

--------------010301040301010406040005
Content-Type: text/plain;
 name="test_itk_write.vtk"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="test_itk_write.vtk"

IyB2dGsgRGF0YUZpbGUgVmVyc2lvbiAzLjAKVlRLIEZpbGUgR2VuZXJhdGVkIGJ5IEluc2ln
aHQgU2VnbWVudGF0aW9uIGFuZCBSZWdpc3RyYXRpb24gVG9vbGtpdCAoSVRLKQpCSU5BUlkK
REFUQVNFVCBTVFJVQ1RVUkVEX1BPSU5UUwpESU1FTlNJT05TIDEwIDEwIDEwClNQQUNJTkcg
MCAwIDAKT1JJR0lOIDAgMCAwClBPSU5UX0RBVEEgMTAwMApTQ0FMQVJTIHNjYWxhcnMgZmxv
YXQgMQpMT09LVVBfVEFCTEUgZGVmYXVsdAoCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1btsodBEXYUQVoWBEFC+31B
aN7kQW63OEICvb9WAr2/VgK9v1YCvb9WigG5QHPEgkCuwW9BXqo+QYVlt0FanRpCAr2/VgK9
v1YCvb9WAr2/VomYzz4Fg9pA/WikQIXilEAMVH9Bkvb/QbxTMUICvb9WAr2/VgK9v1ZVdglA
7wm8QPbswUBKmcw/OIdzQbhgqUFaUQJC/J88QgK9v1YCvb9WU/v0QFS8gEBB+uRAvLzXP6td
MEGNmoxBeoDYQRsJJ0ICvb9WAr2/ViaViUFDdzJAwQqyP5SI/EAohkFBHYW7QX6ZCkJe/B9C
Ar2/VgK9v1YoBd1BOxlaQRCeM0HfR2dBydS4QSDkCUIKPRdCo3EqQgK9v1YCvb9WcNIbQnBt
5EF5VsRBY2bZQTWOEkKRMxxCKCcgQtigNEICvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9W/lEUQZa5QUB8gU5A5YN8QBBLkUFj7yFCAr2/VgK9v1YCvb9WAr2/VlG5Y0BOf01A
K9pHP+7rOEDRsEBBmcb8Qc3VU0ICvb9WAr2/VgK9v1Z5GvNAsrsmPr2fkj/mEgg/ZbOrQHGv
uEEGhQxCVaNOQgK9v1YCvb9WZjITQSc70UCdWx1BgjoFQTgHuz+3gyhBzDDCQetzCUICvb9W
Ar2/ViTeHUDNPYpBJjeyQSnVPEFz6Xw/YFsEQCtjlUGmUtNBAr2/VgK9v1biEkZBAHRgQDtT
R0ERYtJA3qh1QDYdZEHpWZlBHgLFQQK9v1YCvb9WUw6UQYmFRUDragNArhRyPyreUkGdH55B
2UGyQcXt2EECvb9WAr2/Vm9r7kFozJZBqk1vQTXVmUFtqMdB0DC9QTdQw0Ge4OxBAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/Vuoj5EBnGRFBpwBnQTWLZ0BIiYRBPOwfQgK9
v1YCvb9WAr2/VgK9v1YzYNFArmeJQZYPckFlGVhBD2MFQVCH6EG3e0hCAr2/VgK9v1YCvb9W
X07AQOQ1e0GB3mtB5LFbQTrsUz6YGIJBkCr+Qf20OEICvb9WAr2/VnXzakG2QI1By8CTQUDp
f0EPyeZA0v/EPm4emEE+FctBAr2/VgK9v1az9zdB/waiQSPG80GXb6tBx0dnQcUWGD+ZPAZB
eVRCQQK9v1YCvb9WsZcVQGNP7EC1htlBaT6pQffeHkH4fRM//WWQQK1xF0ECvb9WAr2/VkKR
HEHl8d5AE31JQZK67UBGjs0+ccqDQIzC0UDPekBBAr2/VgK9v1Y5ZLpBAKBHQZ1B40AMay5B
Pgk2QWEtEUFyAxNBVgltQQK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1b/yS1A
NbwrQTQWIEFmlQdANqisQcLdL0ICvb9WAr2/VgK9v1YCvb9WxpAOQZZV7kEK165BXKaqQFmK
VEH2tAlCJItFQgK9v1YCvb9WAr2/VkOHYEEDjPxBMQn1QeOCUUHoS4dAsmmDQR4nBkIamzRC
Ar2/VgK9v1Zh+5BBEyECQvrUAkKIZ79BLtdJQbTXI0A6gJBBRYm3QQK9v1YCvb9WmmNtQcQp
3UEO/QxCZqEGQmM5u0GqaLRA7O5ZQNWwMUACvb9WAr2/Vj1flUCdxI1BPgwTQsGO/0HcVbdB
dRR/QTFQMUENt8VAAr2/VgK9v1aM8HpAiO0+QQyGlEHYWH9B+yRWQf3tOEEbsBBB1rEBPwK9
v1YCvb9WBsuhQe3DBkGl0fg/xGaHP5DcsD9EEYJAktmBQGMgN0ACvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9W3EgIQEuKAEHUOWk/5dw/QcR530GgT0BCAr2/VgK9v1YCvb9W
Ar2/VpfoQEEfMI5BEDwQQVoPoz9ThZ1BIkQbQvFjUkICvb9WAr2/VgK9v1ZmqotBmCzMQQTN
q0GbSRVBly3aQCYJq0GHpRVCqmJDQgK9v1YCvb9Ww6GnQWOgIUKuxLFBI7uGQSXKOUGI5KxA
zj+0Qaxh3kECvb9WAr2/Vp7yWkHskP1BoPqpQYS8jkFdnIJBr8kSQRgpcUDp0BBBAr2/VgK9
v1ZmFlJA7Id6QRBmzEE/xIxBif15QaxEh0GX4D9BM2ajPwK9v1YCvb9WBtX/QGDHTkH32sJB
1TWTQVcZhEEfWKFBas2RQTz2rEACvb9WAr2/VtzsnUEyO6NA52ClQAux1kC1SRBBrY1RQVxn
Y0HePhZBAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VqsMrECizApAk9NdQTOW
u0HXShJCRaBbQgK9v1YCvb9WAr2/VgK9v1btq/JAmq6GQAKvb0AIRkhBif7SQbTOIkICvb9W
Ar2/VgK9v1YCvb9W0q2OQarPX0GzXBRBc5rJPl3m8ECnar9BJCknQrD5V0ICvb9WAr2/Vs16
i0FiS+BB5sNlQT4tz0BwXqRAhchJQRjCzEFn8w1CAr2/VgK9v1ZZlztBqKUEQvkSS0FfORJA
vuq8QO/1akCwLwxBvTexQQK9v1YCvb9Wqi/4PycTmUFTBpJBnYvtQDBURUBl1jNAZGijP+aY
JkECvb9WAr2/Vq/jl0B3ljJB49/MQewyCEHylV1AWSwaQWOOekB/9dFAAr2/VgK9v1YLU4pB
B8OOQJnFpkAktQpA+O7PQBVd60D6NuZAqzBCPwK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1bzg0JB4hZkQU+r2UHgOg5C52g8QgK9v1YCvb9WAr2/VgK9v1YCvb9WDQehQIax
70A5+npBKSm0QWdSAkKw0i9CAr2/VgK9v1YCvb9WAr2/VjxYgEBAE6FAryxMQGU8QEEfTHtB
YU3pQecIQUICvb9WAr2/VgK9v1YVzkJBf5xuQdRpCkFcyr1AbTMPQSRTmUEiRgNCsZs2QgK9
v1YCvb9W640hQb/2rUH+vQtBlsAJQZzfBUEQ4glBx/yjQdNWAEICvb9WAr2/Vnx+4T+LqaVB
39GVQBvfQ0A52q9AghPOQJ6MHUEUWK1BAr2/VgK9v1ZsTTJB8L8KQc4slUFmOGFAk1JyQHm6
QEDMFGA+NOJYQQK9v1YCvb9WhOidQd4+/kDbnn4/JQBEQC8tC0BGkbE/m1GMP63GKUACvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WE4K/QSbg20FZUSBCMAU+QgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VqYvmkG/+plB0iXiQeqpC0LLyCpCgolLQgK9v1YCvb9WAr2/VgK9
v1arFvRAG10QQWrXZ0ESn8RBbFrpQTr5GUJwW1hCAr2/VgK9v1YCvb9Wzg4jQYJKvz9eS7ZA
b/SDQRHvxUGgEe5BAXIjQqXgW0ICvb9WAr2/VuJovUCmXvRA62vmP5fMkEEmLsFBOWLDQcGC
+kHxoS9CAr2/VgK9v1Z5f2ZAIGMvQb1r5EBYPiFBDCKVQcLDqEEcLMNBFnr5QQK9v1YCvb9W
8W9vQd87wj9fegJBKT8vQOfmQUHq/zZBetAYQT1ZUEECvb9WAr2/Vm9o4UFAEmxBxFDpQDCm
Bj/H0TxBNvc7QZBxKUFKIj5BAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
--------------010301040301010406040005
Content-Type: text/plain;
 name="test_itk_write.mdh"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="test_itk_write.mdh"

T2JqZWN0VHlwZSA9IEltYWdlCk5EaW1zID0gMwpCaW5hcnlEYXRhID0gVHJ1ZQpCaW5hcnlE
YXRhQnl0ZU9yZGVyTVNCID0gRmFsc2UKQ29sb3IgPSAxIDAgMCAxCkVsZW1lbnRTcGFjaW5n
ID0gMSAxIDEKRGltU2l6ZSA9IDEwIDEwIDEwCkVsZW1lbnRUeXBlID0gTUVUX0ZMT0FUCkVs
ZW1lbnREYXRhRmlsZSA9IExPQ0FMCgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/Vo/whUEDmRRBwHwIQS4QeUHQuN5B
OgI4QgK9v1YCvb9WAr2/VgK9v1aEV6xAbqGhQLEjYUGFlStBKeKwQSEyGUICvb9WAr2/VgK9
v1YCvb9WamyLPunivEDdFqNAd4hsQJ2ZbEHk1/dBzVQqQgK9v1YCvb9WAr2/VsIT3T8MlddA
gSz9QMX75z8D3FNB4yuWQR2o+kEwei5CAr2/VgK9v1akQORAOleSQKFN/0BP1S0/1ZEKQXAP
ZEF6x8lBcvUUQgK9v1YCvb9WDfiHQYPq9z8H1VQ/xzvWQPJQJUEynLRByZD0QWfXDEICvb9W
Ar2/Vo+G1UGpYVpBaYksQTODXkHkF7ZB51n+QSlABkKPWRVCAr2/VgK9v1bgmBtCX+LlQd87
w0ExV95BTEIRQsq2DELIqA1CvZQfQgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1a3LwVBdIZZQKi+X0ArtGdAA1yQQcYwI0ICvb9WAr2/VgK9v1YCvb9WgOaKQCeIBEAKnQY/
VT9yQBAUNEFRkPpBzEdUQgK9v1YCvb9WAr2/VkshEEEoawY/GSsYPyO5Dz4/AHBAblmxQXT5
CUI1sUpCAr2/VgK9v1bMPRtBxy7qQM/WNkHXNPhA+MolPp3jG0F3RLZB8Pz9QQK9v1YCvb9W
C35FQPWuiUHxa7dBvl5KQW3Srz9GCEQ/Gi+WQes9sUECvb9WAr2/VrNXY0HHp7BA8kFUQcQ1
AUFbShZAzE84QRxwdUEdFqFBAr2/VgK9v1bYAo5BiupBQJDoKEAnk5Q/DZQ0QejYgEGUbY5B
CM6tQQK9v1YCvb9WrLfxQY1Pm0EOynhB5SyeQYEbtUFKAqBBmCyfQVixxEECvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WW/ziQKbXE0EOg2pBMMNmQJI8hkFSjSJCAr2/VgK9
v1YCvb9WAr2/Vv5t7kAx6INBU691QXNOVUE4oA5Bvs/uQbKKS0ICvb9WAr2/VgK9v1atMMpA
/ol1QQ5OdEGimWtBNy3zPuBphEGf6QJC6Ks6QgK9v1YCvb9Wk7l6QU8xkEFOHp5BY0SKQZJT
E0GL38Y+AQiaQZjkxkECvb9WAr2/VrTJP0GyBqJBj2sBQrqAt0Ey9IdBwNpXP0gskUC3ygVB
Ar2/VgK9v1aHOX1A7icKQddh30H1CrVBfzhEQYBre0BVO40+dZeNQAK9v1YCvb9W9HcZQXmY
4kA10kFBsqD3QFeWAkChQtM++FMCQAG77EACvb9WAr2/Vu/iv0EoAFdBCxoNQf64GEHCMQ9B
WVfNQJR/tUCr0TBBAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/Vhw5QEALdjJB
SMopQVYECUBL6q5BvZEyQgK9v1YCvb9WAr2/VgK9v1au9w9B8rXvQWUws0HXpKBAlNxSQdA2
DkIMLElCAr2/VgK9v1YCvb9WhkNTQSy++UFmD/lBtpJQQRQxnUDwm4pBJ7kKQjSlO0ICvb9W
Ar2/Vh10kkEG0AJC65QGQn8rvkGC40RBh10yQOs6nEFvzMVBAr2/VgK9v1bT4nNBZp3bQRBZ
C0JSGAJCxnbBQXEyrECbbWpAhO22QAK9v1YCvb9W4D6jQFMNlEFG2hdCyVb1QX0byEHJV5tB
4jx2QeSiDEECvb9WAr2/VpSLg0DbmzRBYRKSQUbUhUGEVXxBUbZ0QY70V0HP4IlAAr2/VgK9
v1bH5adBJksYQdeVHUAZScg/izGCQA1k+0AwfQFBy/UMQAK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YOQwxAHGP/QJ3XeD4Cij1BfVLfQcTQQUICvb9WAr2/VgK9v1YCvb9W
7oI7QfwtmkG7fxtBup2iPx8lm0Ggbh5Cj9FYQgK9v1YCvb9WAr2/VjjZiEFZ+tZBoK2vQQ6C
GkGBG9tAyl2nQZ6iGkIigE1CAr2/VgK9v1YaL6JB1+EmQng7s0FIz4VBDIM7QeWQqkCmkLdB
Ql3wQQK9v1YCvb9WJs5cQRQW+0GIzKlBtIaFQZR8aEEciQ9BAQSVQP4NVUECvb9WAr2/VrPq
K0By33hBjzPNQXsahkFwvVdB3qVeQdDXIUGqbitAAr2/VgK9v1bwvfNA3t5GQdjYwkEUXoZB
5VpjQQjSi0GADGRBy6uvPwK9v1YCvb9WY1WmQeTWukDUZqRAygGiQAf7+UBpAjVB5No6QV0f
5UACvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WjgyqQPP1gj5CU0tBSgi7QZr/
E0IMfFxCAr2/VgK9v1YCvb9WAr2/Vq2lFEF3PbxAJClEQK+ESUEvF9JBKvckQgK9v1YCvb9W
Ar2/VgK9v1YzB4xBvkN1QVa/IkH7gxI/E6ftQFhHxUGQIitCAr2/VgK9v1YCvb9WGVWNQbW9
60Hg/nJBsqbAQC0ncUDTIF9BO8TXQfaRHEICvb9WAr2/VsO6NkEsjQJCn8BXQVuegz9HCLBA
hD86QLPMLUGFqMhBAr2/VgK9v1a8fMw/VPGVQSVHmEFahPhA7E8YQIaEHkCa85VAy31HQQK9
v1YCvb9WmfGyQLWXKkGCj8ZBjawEQTW7R0A7gR9BvYPnP9Q+20ACvb9WAr2/Vpkel0HCvapA
5lGBQJXN4z8Am+RA4ajJQGThv0D3d7g+Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/ViwYO0Fub0RBKAnPQcthDUID/T1CAr2/VgK9v1YCvb9WAr2/VgK9v1YcE3dAHiiyQOSW
bUG5XrJBCjEGQsMEM0ICvb9WAr2/VgK9v1YCvb9WvM+uQExr0kCnuB9AkI06QbRXhkF6eutB
hE1FQgK9v1YCvb9WAr2/VgnCSUF6BIJBh6QWQTE1rkDynilBaDqcQQgaBkIcUz5CAr2/VgK9
v1Z1BBZBYW64QYU5GkEMVw1BExkjQfOmNEEPt69BtqcLQgK9v1YCvb9WtPseQGh0oEGy7JpA
4xQoQEEJ9kCI1w1BmrZPQTh8zUECvb9WAr2/VlarJEH9uftAzrKOQVr0hUBizLw/dggPPHIo
yD1G0TRBAr2/VgK9v1avU6VBfkIQQc6fBkAQFBxAIFV3P+hgdz5O9hU+3Bj2QAK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1ZmCrVBEBzKQUxxGkKvSj5CAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WkzyPQSzOjUHzQtxBTRMMQmuqMEIqpU9CAr2/VgK9v1YCvb9WAr2/Vizn
8ECxufBA1/9hQQ/kwUGUePNB+RkdQoELX0ICvb9WAr2/VgK9v1bMUBRBPvcxQPDgmUDQ1HxB
dXzTQeIO9kH6rylCAr2/VgK9v1YCvb9WhRehQN9eFUF0h2M/5ZqMQQijz0FhLNhB70AHQn2w
OkICvb9WAr2/VgdUnEBhwUhBM+7NQB5VIEHkFqFBM5q3QSJK2kEHzgJCAr2/VgK9v1biGYBB
gj9zP7ks/0D+ghRA91JmQViba0EfBF1BeO2AQQK9v1YCvb9WO1DrQX5+fEEzOQdBdAumPyZB
ZUGtxW5BZidhQZucaEECvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9W
Ar2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9
v1YCvb9WAr2/VgK9v1YCvb9WAr2/VgK9v1Y=
--------------010301040301010406040005--