diff --git a/uppsrc/CodeEditor/CodeEditor.upp b/uppsrc/CodeEditor/CodeEditor.upp index e24dad974..cd0aaaf85 100644 --- a/uppsrc/CodeEditor/CodeEditor.upp +++ b/uppsrc/CodeEditor/CodeEditor.upp @@ -15,5 +15,7 @@ file Lang.cpp, CodeEditor.cpp, CodeEditor.lay, - CodeEditor.iml; + CodeEditor.iml, + Info readonly separator, + Copying; diff --git a/uppsrc/CodeEditor/Copying b/uppsrc/CodeEditor/Copying new file mode 100644 index 000000000..f135f3633 --- /dev/null +++ b/uppsrc/CodeEditor/Copying @@ -0,0 +1,21 @@ +Copyright 1998-2008 The U++ Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/Core/Authors b/uppsrc/Core/Authors deleted file mode 100644 index f52ff393f..000000000 --- a/uppsrc/Core/Authors +++ /dev/null @@ -1,2 +0,0 @@ -Mirek Fidler -Tomas Rylek \ No newline at end of file diff --git a/uppsrc/Core/Copying b/uppsrc/Core/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/Core/Copying +++ b/uppsrc/Core/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/Core/Copying-plain b/uppsrc/Core/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/Core/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/Core/Core.upp b/uppsrc/Core/Core.upp index 83df5c211..85370b036 100644 --- a/uppsrc/Core/Core.upp +++ b/uppsrc/Core/Core.upp @@ -138,9 +138,7 @@ file src.tpp, srcdoc.tpp, srcimp.tpp, - Copying, - Copying-plain, - Authors; + Copying; mainconfig "Normal" = "", diff --git a/uppsrc/CppBase/Authors b/uppsrc/CppBase/Authors deleted file mode 100644 index f52ff393f..000000000 --- a/uppsrc/CppBase/Authors +++ /dev/null @@ -1,2 +0,0 @@ -Mirek Fidler -Tomas Rylek \ No newline at end of file diff --git a/uppsrc/CppBase/Copying b/uppsrc/CppBase/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/CppBase/Copying +++ b/uppsrc/CppBase/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/CppBase/Copying-plain b/uppsrc/CppBase/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/CppBase/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/CppBase/CppBase.upp b/uppsrc/CppBase/CppBase.upp index c03e9eb88..70e431bac 100644 --- a/uppsrc/CppBase/CppBase.upp +++ b/uppsrc/CppBase/CppBase.upp @@ -13,9 +13,7 @@ file Parser.cpp, Base.cpp, Info readonly separator, - Copying, - Copying-plain, - Authors; + Copying; mainconfig "" = ""; diff --git a/uppsrc/CtrlCore/Authors b/uppsrc/CtrlCore/Authors deleted file mode 100644 index a17df4f98..000000000 --- a/uppsrc/CtrlCore/Authors +++ /dev/null @@ -1,3 +0,0 @@ -Mirek Fidler -Tomas Rylek -Guido Schimmels diff --git a/uppsrc/CtrlCore/Copying b/uppsrc/CtrlCore/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/CtrlCore/Copying +++ b/uppsrc/CtrlCore/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/CtrlCore/Copying-plain b/uppsrc/CtrlCore/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/CtrlCore/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/CtrlCore/CtrlCore.upp b/uppsrc/CtrlCore/CtrlCore.upp index d9c4505aa..6a0e9d853 100644 --- a/uppsrc/CtrlCore/CtrlCore.upp +++ b/uppsrc/CtrlCore/CtrlCore.upp @@ -52,9 +52,7 @@ file Info readonly separator, src.tpp, srcdoc.tpp, - Copying, - Copying-plain, - Authors; + Copying; mainconfig "Debug" = "MSC GUI DEBUG WIN32"; diff --git a/uppsrc/CtrlCore/init b/uppsrc/CtrlCore/init index 28ba40ecf..709db0017 100644 --- a/uppsrc/CtrlCore/init +++ b/uppsrc/CtrlCore/init @@ -2,7 +2,7 @@ #define _CtrlCore_icpp_init_stub #include "Draw/init" #include "plugin\bmp/init" -#define BLITZ_INDEX__ FC368E8E631775D31B24B2BC239357464 +#define BLITZ_INDEX__ F140BDB0A352E113A0463B24037B73D05 #include "CtrlCore.icpp" #undef BLITZ_INDEX__ #endif diff --git a/uppsrc/CtrlLib/Authors b/uppsrc/CtrlLib/Authors deleted file mode 100644 index 365f58666..000000000 --- a/uppsrc/CtrlLib/Authors +++ /dev/null @@ -1,3 +0,0 @@ -Mirek Fidler -Tomas Rylek -Daniel Kos \ No newline at end of file diff --git a/uppsrc/CtrlLib/Copying b/uppsrc/CtrlLib/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/CtrlLib/Copying +++ b/uppsrc/CtrlLib/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/CtrlLib/Copying-plain b/uppsrc/CtrlLib/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/CtrlLib/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/CtrlLib/CtrlLib.upp b/uppsrc/CtrlLib/CtrlLib.upp index cbec69e76..164d33dfb 100644 --- a/uppsrc/CtrlLib/CtrlLib.upp +++ b/uppsrc/CtrlLib/CtrlLib.upp @@ -118,7 +118,5 @@ file src.tpp, srcdoc.tpp, appdoc.tpp, - Copying, - Copying-plain, - Authors; + Copying; diff --git a/uppsrc/CtrlLib/init b/uppsrc/CtrlLib/init index 58fc8e6f3..1e10fe64d 100644 --- a/uppsrc/CtrlLib/init +++ b/uppsrc/CtrlLib/init @@ -3,7 +3,7 @@ #include "CtrlCore/init" #include "RichText/init" #include "PdfDraw/init" -#define BLITZ_INDEX__ F9FBD74A341BB7E4C8A3BC288CE65AF08 +#define BLITZ_INDEX__ F2AFAB801F99B3E8069C425DA8E8DCF65 #include "CtrlLib.icpp" #undef BLITZ_INDEX__ #endif diff --git a/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp b/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp index c26ed99e8..05296fe13 100644 --- a/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp @@ -1,147 +1,2411 @@ -TITLE("ArrayCtrl") -COMPRESSED -120,156,172,189,137,87,98,89,154,47,250,175,184,186,239,237,138,168,202,204,142,33,179,50,43,115,189,181,58,111,85,117,119,174,238,174,234,91,213,221,119,189,85,43,214,13,34,36,50,124,101,72,92,209,204,138,234,215,189,112,86,156,69,68,69,192,9,16,20,81,68,84,70,103,25,100,16,84,84,4,156,16,80,25,5,153,225,237,125,14,32,70,68,102,86,247,235,200,204,8,57,103,239,111,127,251,27,126,223,176,55,145,191,123,84,244,223,254,219,131,15,30,252,249,131,31,248,245,249,47,176,47,48,149,165,21,79,126,87,242,241,199,159,125,129,121,244,201,23,191,255,187,95,255,236,139,31,255,213,189,159,126,124,31,82,121,8,168,60,254,244,225,227,207,62,121,252,240,227,71,63,5,191,61,124,252,240,209,39,143,30,127,252,240,179,71,63,251,248,179,199,143,63,123,240,249,243,82,12,30,255,228,119,165,143,62,251,236,11,56,233,17,152,244,232,211,79,30,61,252,244,227,207,62,254,236,225,227,79,63,123,4,230,62,122,240,224,209,131,79,31,125,242,240,227,199, -159,61,250,228,243,98,44,254,249,147,223,97,62,123,252,197,143,127,243,83,48,233,49,92,9,16,127,240,240,167,143,62,254,244,227,71,15,30,63,120,244,49,88,234,225,103,159,125,252,240,211,79,62,123,252,179,159,254,244,243,231,152,215,21,37,184,178,236,90,37,15,31,62,122,248,197,179,135,159,126,1,120,254,247,127,255,247,143,30,126,252,0,229,224,99,64,236,225,131,143,1,171,15,193,179,7,31,63,250,244,225,39,63,123,240,179,79,62,123,248,217,131,199,128,248,39,159,62,248,228,243,215,152,114,204,171,239,222,250,39,63,184,245,79,31,124,94,82,129,5,36,126,252,147,135,15,63,5,83,126,250,193,79,255,252,225,199,159,130,141,126,246,248,227,79,62,251,244,1,88,252,209,163,71,143,31,63,122,248,248,209,207,126,246,232,147,159,126,242,233,231,47,177,152,98,108,249,147,223,253,235,255,254,183,255,254,203,95,125,248,207,191,45,250,29,254,147,47,254,238,175,30,20,253,238,191,63,120,240,225,131,7,69,95,150,151,99,222,252,188,162,188,244,201,95,60, -249,29,254,193,23,69,217,63,254,234,175,74,94,97,190,198,126,254,232,241,79,31,253,197,195,143,63,126,76,172,9,85,235,170,8,185,95,81,246,128,199,58,237,189,148,58,6,89,134,43,254,165,178,154,46,168,245,13,54,251,181,12,49,207,34,172,25,237,238,27,212,214,28,198,234,212,182,69,234,137,96,197,191,207,62,59,232,113,27,58,171,116,156,201,160,103,127,248,156,71,76,14,170,131,153,68,218,151,73,234,51,169,46,69,166,153,48,213,163,111,35,180,184,173,178,154,153,145,176,87,74,232,225,70,100,145,150,205,109,201,53,161,109,111,204,102,157,153,50,145,124,186,154,163,161,120,68,163,95,220,148,73,218,9,13,117,23,112,56,153,180,17,236,59,26,63,163,142,238,53,236,215,15,118,121,12,71,180,51,42,65,41,90,171,10,119,120,8,195,251,220,250,221,37,81,85,227,153,146,138,14,24,244,160,3,154,69,232,128,157,125,116,64,199,25,58,96,171,11,12,232,63,163,42,40,20,138,176,222,31,201,88,108,44,138,94,175,119,164,210,12,179,103,206,226,147, -41,20,12,29,91,125,204,150,203,229,222,3,162,112,187,73,51,100,89,20,91,14,25,158,182,141,211,233,241,46,191,250,90,238,156,235,77,165,82,142,206,115,215,141,112,177,118,34,148,76,10,146,151,145,49,203,98,112,71,41,154,106,139,56,169,206,72,36,114,194,60,38,167,206,83,58,254,190,47,34,35,111,147,106,215,136,237,53,186,68,155,131,186,215,102,5,124,29,167,175,72,33,93,224,234,70,18,221,208,219,105,61,234,235,131,177,153,181,99,191,210,57,168,107,103,155,156,78,103,90,62,205,158,79,140,88,22,237,34,54,96,226,176,207,19,14,54,113,166,226,108,133,34,115,34,220,6,107,36,28,194,205,46,198,158,42,194,151,117,122,142,248,164,61,176,61,239,166,200,61,185,186,97,177,88,162,190,214,232,92,58,194,215,105,52,204,107,29,249,136,196,180,206,204,197,186,4,173,201,120,88,208,58,177,66,219,79,179,90,131,12,6,195,105,203,152,77,235,153,93,214,10,51,232,73,37,147,181,58,5,157,193,48,41,199,166,21,84,90,91,67,199,74,228,164,78, -18,168,234,224,132,78,170,234,235,18,241,120,11,151,216,193,176,171,249,85,44,146,225,216,99,190,100,208,184,177,120,60,78,87,132,26,214,250,217,102,10,207,165,1,26,152,103,95,91,206,72,198,21,221,241,136,81,184,125,48,200,168,177,16,217,169,73,57,117,183,174,111,88,107,104,148,186,233,227,238,90,163,127,116,51,220,184,190,118,113,169,105,191,32,174,81,119,93,33,106,221,192,158,157,67,173,163,59,184,243,196,68,68,191,200,221,164,172,159,113,136,77,237,28,215,133,112,155,190,182,98,180,15,249,14,83,17,87,72,188,83,173,237,158,108,247,241,6,26,84,204,205,35,170,204,9,22,188,78,74,205,173,61,103,187,113,137,77,188,53,184,112,50,86,227,133,230,100,237,191,238,100,143,177,70,135,199,105,38,99,236,60,24,10,204,132,173,82,181,131,173,29,92,238,143,165,82,173,62,199,154,106,120,172,110,232,132,208,98,60,200,164,153,126,209,193,124,218,37,39,106,20,246,227,213,184,206,50,70,50,116,92,213,92,78,73,78,45,45,58,37,57,181,178,226,18, -110,199,35,161,155,113,118,208,75,52,174,232,85,173,182,101,146,215,165,174,211,15,214,13,10,55,151,22,156,61,125,167,23,115,91,62,190,239,202,83,205,83,246,3,243,152,153,209,138,47,155,187,236,142,46,166,42,65,217,114,115,132,188,45,253,62,35,46,49,137,153,205,33,181,171,165,175,85,74,27,97,40,118,118,174,76,111,207,91,107,22,12,56,85,148,75,119,155,78,195,244,180,234,156,233,109,59,111,160,125,131,208,209,187,172,86,93,27,207,214,200,245,51,90,206,30,63,54,177,27,51,11,180,124,153,124,102,174,89,56,108,1,230,179,169,17,173,52,216,59,196,103,243,188,157,140,125,119,167,171,182,118,138,109,247,93,79,153,56,203,23,129,125,191,163,250,180,219,16,59,87,132,253,70,213,165,111,130,239,191,36,234,200,163,17,232,169,77,181,245,228,192,2,207,212,50,144,217,13,210,167,229,86,206,216,225,180,56,57,48,47,208,172,209,109,241,46,163,194,176,186,48,117,34,212,243,153,103,145,109,74,84,219,178,230,52,74,18,245,231,86,110,109,13,81,237, -38,37,151,3,42,111,172,109,122,94,158,145,111,154,20,215,3,252,161,233,218,238,174,12,39,236,86,11,149,107,147,113,122,40,162,59,223,98,157,72,237,44,207,164,34,102,72,169,171,188,92,190,159,175,33,122,199,1,11,170,205,237,1,141,169,45,195,78,178,70,53,230,181,109,106,79,159,108,151,109,26,191,24,50,182,204,37,220,53,237,238,229,243,110,219,186,57,70,39,74,29,11,171,238,157,234,51,224,97,171,34,109,85,184,183,211,179,206,136,93,74,132,241,70,233,117,47,237,52,229,224,133,52,153,109,191,53,185,124,30,61,221,240,111,27,133,129,136,105,52,120,189,26,171,237,81,94,213,100,104,64,195,181,83,35,150,237,243,155,224,200,90,251,100,107,162,61,30,182,7,77,22,138,151,180,46,206,68,90,140,66,233,64,237,152,218,41,157,148,37,183,23,50,91,13,77,97,26,192,21,126,135,231,232,140,230,213,138,230,180,86,231,232,206,185,73,57,179,209,16,79,174,106,14,142,149,105,131,59,124,44,26,62,209,95,12,170,105,6,183,32,226,118,219,99,244, -169,160,94,40,242,115,58,162,65,41,35,53,31,154,63,213,92,243,237,7,246,35,138,234,2,232,123,238,156,74,61,157,92,208,110,13,49,122,200,253,178,93,189,116,225,114,62,218,96,74,47,169,219,183,186,55,72,124,18,157,62,50,163,62,213,211,147,231,59,102,74,212,177,118,108,59,134,66,231,182,57,174,199,55,210,253,113,246,225,246,184,44,126,118,148,88,175,139,107,150,70,20,137,153,96,178,231,40,93,183,217,77,84,246,208,23,164,220,171,67,87,47,67,151,145,57,37,36,138,93,84,165,88,190,132,94,203,177,28,118,8,135,200,173,140,150,164,204,185,151,9,4,58,79,130,155,209,145,81,226,252,185,65,163,232,222,153,184,57,153,61,189,92,22,175,212,223,4,36,86,110,38,122,234,25,247,240,210,77,91,196,57,42,79,48,224,167,158,81,233,123,13,84,129,150,177,67,90,104,38,14,2,100,218,165,137,58,60,198,1,83,103,119,19,231,104,230,140,122,179,215,176,227,164,154,220,115,221,231,228,117,62,169,170,179,17,2,116,216,57,67,149,94,152,125,29, -213,19,34,29,224,100,79,55,43,10,24,235,199,72,158,137,35,218,46,205,115,34,91,58,229,243,249,36,95,123,127,181,104,19,14,184,136,136,170,122,193,208,97,52,28,212,147,209,112,240,78,188,88,170,10,71,171,143,54,125,60,111,95,47,39,226,172,210,78,25,100,18,231,17,235,210,70,107,88,92,14,123,27,232,85,125,241,8,157,176,222,188,3,37,120,113,108,141,17,38,182,125,222,197,190,61,158,172,133,48,101,100,9,90,9,83,44,65,55,242,123,43,129,57,133,62,224,160,143,91,213,232,227,255,228,56,237,184,65,79,152,88,241,85,85,109,232,132,85,187,113,134,250,156,144,116,201,6,13,125,106,145,65,237,91,233,35,12,51,100,13,181,98,83,253,201,129,59,53,86,227,31,33,69,8,139,206,131,197,241,33,89,187,131,144,14,209,135,59,92,155,84,23,115,254,82,160,35,36,123,246,235,181,3,34,3,241,170,198,80,213,124,181,162,163,186,214,118,68,85,174,53,209,16,155,219,10,176,128,16,26,102,91,58,76,245,7,157,158,110,66,188,211,163,116,215, -204,240,148,34,130,76,41,218,56,3,235,3,137,117,216,206,168,65,64,191,83,208,186,200,23,180,46,112,61,131,100,32,80,202,220,126,61,66,185,190,198,128,80,222,6,84,33,101,238,16,27,161,76,11,13,35,148,183,58,61,8,229,1,119,13,15,224,142,158,176,3,244,230,243,249,204,32,216,180,123,72,226,190,49,115,114,155,70,141,155,13,193,197,46,165,232,204,4,150,165,119,122,186,244,102,179,185,225,166,89,97,212,139,170,250,187,60,202,81,48,95,42,180,212,242,37,86,239,144,108,133,207,147,44,236,43,69,139,142,209,181,200,86,98,113,112,166,30,240,21,171,9,164,50,177,211,64,244,230,166,135,215,179,239,56,219,246,118,242,22,150,69,85,188,14,143,74,9,9,12,91,90,86,57,182,90,69,127,200,85,213,204,178,16,174,149,58,17,220,40,157,114,14,163,250,225,121,204,20,91,88,99,76,29,10,106,91,167,218,225,190,226,46,71,96,159,37,223,171,114,135,226,153,76,38,198,141,53,53,215,42,150,51,215,43,205,102,179,192,238,171,58,205,216,237,246, -13,231,177,132,75,165,165,46,119,21,97,187,112,109,249,216,127,189,231,185,25,186,98,110,123,35,238,122,65,146,118,60,127,169,98,47,45,111,248,246,121,225,14,185,197,64,219,9,237,52,136,219,210,59,228,69,62,9,202,189,142,23,82,137,142,67,58,213,105,98,82,58,63,48,191,113,77,30,173,18,55,173,216,67,33,65,171,60,124,57,19,119,166,168,27,167,129,140,80,189,229,39,94,134,148,187,141,67,43,237,58,126,38,12,4,197,244,76,6,210,226,177,61,249,201,216,254,21,180,22,145,161,81,29,56,179,198,165,187,85,61,32,24,0,145,91,98,151,199,66,153,112,245,106,227,184,106,203,35,83,72,20,237,147,192,161,167,195,211,87,35,62,171,56,205,234,179,175,187,228,125,123,91,205,29,137,115,179,216,195,171,214,16,249,253,81,135,99,109,104,31,202,119,55,222,174,189,154,163,183,243,200,14,227,224,225,192,25,81,57,146,84,74,221,87,1,173,158,223,109,118,158,117,174,53,215,196,7,54,155,156,153,115,231,30,171,135,167,144,39,87,195,250,168,232,200, -120,17,79,36,18,105,79,90,199,111,56,96,243,170,187,245,213,92,53,217,206,217,212,132,221,22,181,221,181,105,74,31,155,220,227,87,109,117,243,194,174,35,74,148,44,243,251,134,200,186,75,160,21,226,200,229,174,231,52,16,178,78,181,156,39,157,212,224,86,242,250,90,55,211,202,93,99,50,98,227,170,214,164,120,148,231,52,70,21,59,253,146,246,6,251,74,55,34,167,181,56,123,242,38,36,91,161,205,45,243,46,153,253,186,144,66,59,17,142,115,155,221,215,231,0,149,194,220,249,170,246,157,208,162,172,97,21,58,209,1,167,173,110,34,182,113,186,54,45,92,98,95,158,108,176,227,203,250,230,149,222,206,221,217,129,228,162,106,37,226,10,146,89,39,237,242,249,64,138,212,104,150,88,73,198,86,51,185,107,146,72,167,69,213,186,153,154,113,197,10,163,167,102,194,53,149,104,111,12,173,177,90,133,198,129,253,235,149,182,13,13,215,185,220,150,216,56,245,207,142,80,92,51,163,179,173,62,15,135,127,104,231,220,184,154,73,230,81,69,96,54,124,172,29,90,183, -158,205,241,173,220,29,143,203,201,222,22,243,22,196,182,171,248,14,161,129,203,142,111,218,106,170,105,238,96,13,175,123,99,87,122,186,63,221,177,190,3,114,210,69,253,90,171,34,26,214,70,73,138,160,41,56,199,138,53,114,234,232,243,155,177,75,123,200,20,61,168,159,243,159,204,114,118,28,228,113,210,197,90,61,157,61,223,107,128,76,1,158,90,4,190,94,170,108,194,230,76,29,117,111,37,110,130,86,68,219,49,141,111,180,105,180,169,239,52,61,112,96,183,30,118,159,212,244,182,239,12,180,0,104,49,66,177,244,205,109,170,180,244,30,126,218,175,94,24,147,37,98,91,115,222,27,107,166,197,33,87,40,172,215,252,24,248,53,151,177,120,34,137,149,227,14,147,157,149,210,115,188,169,83,27,129,57,22,63,178,141,66,230,1,239,242,141,93,222,198,41,175,161,63,152,138,83,187,171,188,18,153,141,165,168,18,27,83,162,56,177,119,62,221,212,48,174,117,232,201,116,111,43,83,197,169,31,87,217,205,97,215,217,224,84,173,96,175,117,1,120,178,93,183,46,138, -28,178,103,147,109,227,222,99,127,163,207,17,241,159,90,185,150,244,230,226,245,150,120,243,48,99,216,241,250,70,4,139,50,38,55,101,103,147,229,23,145,8,45,162,62,174,106,59,163,10,32,88,41,6,60,66,150,220,126,30,82,241,22,86,36,113,35,167,73,42,32,180,200,71,157,3,178,184,198,111,132,12,164,134,18,2,237,78,98,116,163,158,201,85,212,141,201,172,93,153,157,149,153,51,55,219,122,172,151,17,20,235,97,17,4,178,160,38,178,127,62,208,170,61,110,239,178,48,52,3,93,139,155,19,171,199,83,186,76,114,122,222,46,119,244,78,209,231,219,104,164,204,238,25,115,173,5,112,213,226,27,201,44,202,253,234,208,144,117,52,97,30,145,94,57,248,108,115,223,132,122,164,110,67,195,236,200,48,57,141,117,59,53,204,235,83,125,122,135,216,39,230,2,105,213,84,171,16,105,109,236,234,129,180,90,78,99,55,1,159,138,172,58,50,6,199,41,94,165,186,33,148,160,237,42,78,45,202,57,171,170,211,222,75,178,109,182,115,142,198,187,251,206,132,45,39, -102,197,5,219,51,200,119,158,116,32,30,63,12,226,3,244,120,177,84,39,25,112,166,218,102,162,46,189,187,157,126,67,232,149,175,176,108,55,18,241,193,85,223,37,35,224,57,59,140,79,104,211,55,231,75,70,223,88,139,102,54,57,51,84,171,113,204,135,118,198,20,77,162,41,194,218,150,10,241,118,207,160,157,124,162,20,135,163,3,161,212,234,70,195,190,131,100,155,5,160,189,146,168,78,17,61,117,209,78,214,64,3,209,78,155,72,38,147,250,85,114,67,167,204,58,23,146,30,92,197,46,21,66,75,61,113,123,148,157,113,58,26,151,195,167,41,211,62,153,172,137,200,28,215,23,67,20,245,14,103,37,26,77,165,9,103,254,186,90,178,185,151,88,205,236,240,40,15,209,184,160,56,117,111,57,44,65,107,149,58,140,192,33,143,163,20,105,38,37,83,222,45,1,98,16,251,198,115,85,184,97,87,155,139,47,19,246,5,239,162,88,133,198,139,51,42,211,60,79,219,67,66,146,4,196,164,153,51,113,13,237,146,133,196,159,213,253,180,168,106,111,124,159,138,134,171, -154,108,184,114,113,209,112,53,180,131,134,171,144,14,13,87,157,99,104,184,114,159,215,160,129,176,77,132,6,194,33,2,26,8,231,199,51,211,150,36,57,120,83,189,173,130,175,4,187,116,194,94,189,173,70,128,152,125,72,174,237,174,138,194,128,36,5,50,36,219,26,4,139,4,69,28,122,162,14,192,67,194,80,127,20,223,0,193,29,196,118,23,12,238,32,182,79,32,112,61,229,80,221,200,9,151,167,33,203,158,32,193,32,132,167,197,34,79,159,172,125,49,222,219,110,21,109,218,26,142,82,91,45,94,203,185,175,102,74,40,95,159,227,205,68,170,146,123,140,17,75,207,126,194,75,152,104,223,242,104,174,164,41,194,238,134,75,244,95,70,231,248,38,77,210,19,154,183,119,36,145,171,115,77,120,131,108,243,13,71,124,117,83,169,201,136,111,79,219,115,57,215,38,179,175,250,108,205,210,163,67,159,109,154,202,139,153,105,9,69,147,77,70,167,44,206,219,100,167,115,106,203,164,4,144,144,109,39,248,132,128,44,177,33,240,138,14,35,87,41,214,28,81,119,214,98, -104,186,146,146,60,11,222,189,132,22,212,201,139,203,74,209,150,162,231,18,80,172,189,90,173,153,168,189,2,239,204,240,37,120,23,135,47,193,187,13,248,18,188,139,94,161,19,185,90,116,98,102,11,157,216,120,133,78,228,47,160,19,195,139,232,196,246,54,116,98,160,22,157,184,147,64,39,166,69,232,196,206,90,116,162,13,101,71,121,129,178,211,195,64,217,169,57,65,217,241,82,193,75,152,191,164,97,254,146,72,165,21,151,151,151,67,214,163,171,166,153,241,132,243,70,33,23,200,189,135,53,19,212,252,190,38,64,174,113,54,228,140,134,164,114,225,204,192,113,36,51,163,5,117,252,245,181,249,58,229,110,4,118,60,211,132,202,131,75,239,247,84,79,177,248,34,158,45,153,22,45,100,46,90,167,234,4,90,161,99,77,124,234,155,11,56,69,135,125,169,8,136,159,138,21,59,219,97,179,217,14,92,225,116,107,50,109,236,24,243,28,17,247,89,7,65,189,117,58,66,141,174,138,118,154,150,151,85,205,188,139,109,35,105,191,190,71,149,167,47,166,83,60,213,0,167, -253,148,68,58,45,151,88,38,46,215,69,85,142,46,143,99,152,135,104,76,214,112,78,61,114,56,152,222,73,128,234,11,241,128,179,189,189,189,55,125,147,72,167,210,75,38,119,40,109,74,211,229,244,116,99,102,176,149,111,227,109,246,183,41,19,169,148,118,78,60,98,247,135,29,167,219,22,41,93,25,117,103,236,180,221,68,183,223,189,185,234,89,78,236,162,250,98,0,243,24,1,117,170,56,76,218,160,132,2,73,189,237,194,227,225,241,58,198,188,19,220,90,74,67,96,144,201,223,108,236,93,219,48,17,149,33,211,241,184,102,201,73,233,38,175,155,14,251,90,248,125,34,214,188,209,27,143,180,89,175,22,188,26,40,119,234,13,123,146,207,48,106,188,115,212,129,180,84,218,155,110,227,208,199,228,137,112,56,204,185,18,173,174,145,174,141,151,12,0,79,35,26,138,217,146,56,180,239,119,216,46,206,152,45,179,147,114,42,213,58,111,221,235,63,81,186,23,172,146,155,25,135,248,116,218,55,55,237,219,147,185,245,177,227,229,88,143,105,52,174,50,246,81,41,20,74, -168,251,116,153,225,14,159,156,94,208,146,158,161,245,213,250,253,33,191,47,221,230,84,223,28,111,80,244,151,186,3,246,208,50,93,101,87,236,58,155,167,180,64,65,62,135,248,122,181,230,240,192,88,167,181,204,203,4,3,163,83,106,246,234,50,129,195,153,180,54,101,180,129,243,120,200,198,102,236,16,141,49,135,56,86,45,86,8,72,148,221,14,117,47,209,190,104,175,153,218,14,109,200,212,13,125,136,71,132,83,172,248,57,245,216,103,20,212,38,187,236,253,178,35,143,212,22,61,92,237,173,81,31,24,141,253,214,52,93,125,124,233,96,68,125,91,146,171,26,19,16,173,29,177,218,85,251,196,213,140,212,199,161,185,87,251,82,253,129,232,180,60,70,85,180,79,9,68,241,206,160,137,168,16,39,137,196,163,45,239,156,100,160,141,58,18,241,107,45,195,87,1,18,106,255,211,9,173,84,108,105,209,29,155,182,229,233,176,150,172,25,221,62,139,113,46,149,113,231,70,16,88,246,200,230,208,134,168,138,115,70,61,112,1,167,183,249,78,34,91,251,172,52,99,187,37, -58,203,31,178,12,100,104,196,78,181,47,200,237,166,116,41,53,162,169,186,43,18,29,53,119,169,92,108,25,77,8,86,24,221,38,121,218,44,208,110,143,73,143,166,40,246,228,200,165,101,177,27,218,243,44,98,207,174,43,61,105,61,213,116,154,74,5,227,212,80,143,107,247,146,224,177,217,237,206,238,116,34,30,60,54,129,154,128,19,11,207,71,14,143,107,152,150,81,203,42,192,144,45,0,34,237,90,145,155,50,180,186,166,175,50,203,187,210,250,148,113,101,163,103,206,204,32,38,121,61,20,55,69,79,177,108,27,183,57,38,154,147,120,68,61,155,165,162,140,203,78,2,251,231,137,132,228,220,65,112,235,235,233,81,122,146,186,229,220,233,110,146,93,72,143,205,19,231,59,41,81,215,162,113,214,36,16,183,30,170,69,192,87,88,208,89,64,225,97,151,203,229,65,134,69,189,225,172,97,37,165,153,180,211,207,211,51,219,44,196,153,38,87,84,202,98,215,250,245,138,75,225,180,32,230,224,47,143,178,135,54,204,251,166,245,13,62,141,78,27,115,213,12,67,127,180, -67,127,156,159,177,140,29,206,74,83,65,122,7,163,245,226,82,26,74,24,35,35,230,208,110,15,127,252,146,34,10,146,182,187,25,195,28,181,175,151,95,221,23,232,232,110,216,2,8,234,160,162,254,56,170,169,137,107,173,6,102,104,8,36,44,91,222,139,185,243,243,84,91,52,16,189,26,72,115,5,73,235,206,144,177,45,115,45,85,249,22,137,146,246,180,48,169,94,156,107,161,110,15,0,123,74,108,32,246,212,153,98,77,182,186,230,194,193,165,186,14,247,242,17,93,154,110,150,4,3,106,150,107,121,140,216,57,72,35,246,54,45,13,79,92,95,24,23,212,12,201,245,205,141,232,224,160,62,126,220,224,24,39,117,223,248,231,207,216,126,195,201,208,6,155,110,148,214,247,233,12,85,91,129,22,203,141,151,38,217,15,90,125,112,91,194,193,204,230,80,70,236,95,28,182,116,175,162,0,191,35,104,157,234,0,10,214,56,160,130,135,44,74,66,243,16,84,156,17,190,4,239,196,240,37,120,215,4,95,130,119,28,11,58,145,75,66,39,154,133,200,196,233,190,106,128, -195,53,63,140,195,227,104,88,88,78,161,48,35,27,65,195,194,127,56,158,152,129,19,145,22,135,195,30,116,123,211,250,8,213,101,77,84,181,92,95,162,64,1,153,218,146,68,170,119,123,205,72,4,220,133,70,5,34,96,168,110,10,137,128,89,63,244,5,108,205,72,4,92,67,244,199,32,204,130,152,11,67,110,2,196,92,24,114,27,65,204,133,33,151,9,98,46,12,185,167,32,230,194,144,27,1,49,23,134,220,115,16,115,97,200,213,128,152,11,67,247,42,136,221,130,255,66,58,97,148,142,125,22,217,173,151,150,64,118,27,161,94,35,187,189,180,30,162,176,232,211,33,187,237,53,255,169,241,126,1,177,214,225,153,142,133,26,80,233,175,90,152,147,168,194,195,83,168,194,187,78,81,133,27,135,80,133,111,167,81,133,79,106,81,133,15,35,214,96,89,205,230,9,130,11,212,140,28,76,212,140,8,163,168,25,73,56,168,25,117,88,81,51,242,173,162,102,244,255,219,254,188,164,107,129,214,180,115,153,184,188,76,43,50,241,120,52,238,154,219,83,59,157,3,206,49, -143,70,163,225,214,101,188,115,137,76,70,209,74,211,141,104,20,226,134,102,117,223,85,15,48,164,118,20,238,134,155,145,232,46,149,215,9,103,164,27,74,123,140,54,218,23,143,70,123,211,187,106,81,85,67,167,103,56,136,186,115,131,13,132,87,16,89,251,90,3,231,10,187,158,147,105,219,155,136,14,94,213,180,27,135,81,70,166,210,164,200,57,117,43,146,81,40,20,215,103,254,160,47,104,156,188,190,60,77,245,165,100,124,219,177,95,89,93,117,21,18,167,210,105,203,185,243,154,56,51,39,88,109,144,54,66,123,222,64,217,0,114,24,58,62,36,54,164,246,29,117,84,122,143,42,120,18,237,177,195,131,130,68,205,109,28,62,21,104,253,161,249,129,147,19,189,94,191,23,137,36,180,87,55,146,149,241,37,150,218,233,11,14,50,29,212,104,199,62,75,118,128,152,69,52,232,18,45,56,3,71,215,173,215,215,161,83,128,199,93,211,201,110,213,105,72,172,144,41,20,236,246,6,197,250,164,85,178,221,205,162,117,248,98,48,17,232,111,163,181,111,184,3,227,201,180, -148,199,21,44,76,113,211,123,203,106,55,103,127,39,196,217,237,242,186,185,19,243,67,77,205,181,93,108,158,162,94,191,75,105,144,231,241,121,238,4,4,22,154,184,239,92,22,238,212,183,203,100,215,50,102,221,242,88,99,85,96,168,195,54,176,78,150,250,167,220,99,122,162,178,155,50,41,92,136,27,89,68,27,83,42,92,232,32,213,75,234,54,77,134,212,14,231,112,87,32,174,223,74,120,216,43,205,35,150,100,220,103,82,214,174,113,14,46,124,20,104,156,64,244,115,208,56,23,102,155,79,197,226,51,53,95,98,93,247,70,3,66,89,119,109,168,187,219,222,122,26,116,53,15,14,116,143,196,226,178,62,197,242,60,133,161,83,165,45,3,169,40,77,120,96,59,110,35,18,253,83,18,186,56,214,60,178,196,226,244,121,87,53,78,22,203,43,236,236,25,118,129,90,216,129,192,236,133,108,114,238,250,240,0,196,126,226,188,253,132,40,84,137,237,199,254,96,176,107,253,56,144,92,93,157,166,117,243,119,121,171,189,243,158,174,244,156,118,102,195,239,152,113,166,157,65, -173,76,38,91,75,132,107,27,41,187,3,236,217,249,4,119,70,220,101,152,227,8,187,230,105,17,33,103,158,196,211,38,29,205,107,13,93,44,254,217,22,101,80,177,100,4,105,66,195,26,146,38,184,134,135,125,162,62,93,11,147,212,221,125,156,228,157,108,200,149,13,194,120,88,39,31,31,38,51,183,228,204,49,203,246,229,1,71,215,121,28,212,118,205,113,116,126,230,202,165,196,109,146,170,156,172,9,110,51,99,102,65,114,108,30,173,245,158,1,217,95,132,27,144,132,99,231,76,169,100,175,29,209,8,154,149,24,253,148,123,105,208,212,164,14,228,199,162,189,62,175,119,62,152,224,134,102,14,85,83,29,181,132,179,237,209,190,16,39,204,12,95,250,235,45,181,117,29,23,30,152,56,246,187,152,84,79,61,105,197,189,169,208,184,76,45,38,242,104,42,166,106,82,31,212,107,130,115,155,34,147,77,204,38,136,73,102,163,210,121,222,124,225,176,31,213,144,151,54,96,144,141,184,78,198,161,218,247,148,206,213,11,47,177,193,76,25,19,103,70,163,17,214,192,20,111, -154,48,163,17,5,70,108,115,30,26,91,197,218,81,246,164,183,182,86,19,145,4,146,5,26,86,19,210,128,55,30,12,39,82,163,231,19,177,221,33,197,68,116,78,235,219,148,154,247,199,130,237,209,148,131,170,136,118,82,111,116,166,179,3,211,110,189,130,227,26,38,203,208,128,184,234,58,177,69,231,82,49,87,200,126,19,61,85,111,100,168,181,85,234,224,136,254,210,178,48,170,237,219,225,91,26,250,172,162,38,198,66,155,219,119,40,30,63,94,136,16,189,99,16,241,78,129,239,104,187,105,42,30,207,106,216,97,154,6,146,134,52,125,52,24,136,31,15,108,137,155,67,151,225,30,145,187,51,62,114,125,182,65,25,189,12,58,157,212,19,160,206,0,179,78,200,246,251,91,72,19,3,104,60,50,172,174,44,129,28,88,101,60,92,168,63,136,69,101,115,61,173,38,198,188,36,222,115,126,50,235,83,57,244,139,212,94,234,102,189,111,86,166,191,88,222,91,58,222,214,52,59,119,217,234,35,125,135,103,88,13,165,28,61,20,5,84,12,167,185,229,138,92,213,174,79, -14,110,166,231,146,161,3,139,223,198,216,18,217,103,212,25,215,177,113,149,208,184,196,202,28,218,36,171,203,237,118,49,91,108,114,147,53,157,1,105,207,117,91,144,215,166,191,30,181,69,154,27,174,23,187,64,29,11,209,64,43,61,25,182,36,83,41,230,126,108,224,88,52,31,15,36,41,85,178,57,57,101,254,74,56,190,222,56,53,225,84,16,72,251,87,195,124,91,148,53,215,18,229,68,107,219,245,245,139,164,76,175,169,179,182,131,91,199,72,93,222,28,133,215,205,93,92,178,90,79,170,214,154,50,206,193,181,224,44,219,64,225,246,94,240,125,102,230,222,224,240,185,228,2,9,160,75,226,21,210,154,83,192,239,111,230,246,210,249,243,122,102,227,122,56,108,139,87,209,88,161,30,150,60,25,50,187,205,131,68,83,70,67,13,26,45,10,127,194,200,95,171,137,78,122,183,84,34,106,15,7,250,217,218,6,106,247,76,215,230,121,120,137,60,221,31,10,57,169,147,94,111,147,173,221,233,36,169,84,41,71,237,26,211,190,219,50,182,108,236,151,13,204,25,183,162, -26,159,204,27,89,84,49,38,107,201,26,139,180,83,40,157,88,218,218,77,68,208,50,194,144,94,221,234,219,188,172,174,159,29,113,54,182,146,19,161,5,214,213,100,237,112,42,237,100,100,174,78,247,156,59,59,163,221,39,90,241,118,148,225,241,120,46,100,203,129,105,22,43,57,202,216,104,226,50,38,70,135,213,199,227,44,159,118,92,55,180,61,57,101,87,141,221,48,7,142,247,29,199,164,152,239,116,215,115,89,103,85,1,217,238,3,225,130,250,176,121,36,200,110,110,31,21,104,217,32,232,172,20,196,195,237,21,52,254,233,180,232,139,92,188,227,136,209,23,52,1,250,34,23,207,70,224,135,113,88,199,138,17,32,223,110,67,235,86,29,170,199,124,126,196,185,68,95,208,80,184,207,231,63,166,30,244,133,56,155,239,228,234,101,54,58,61,95,31,47,2,155,168,154,48,250,204,40,110,246,231,242,130,1,36,47,88,33,113,100,104,1,159,211,135,17,38,5,32,39,208,195,164,160,77,27,146,120,101,132,117,144,87,92,194,188,162,138,16,230,116,122,8,132,217,78, -143,26,249,157,64,48,206,162,15,186,209,199,4,38,250,120,246,63,58,142,136,252,126,16,35,84,31,245,193,134,10,141,133,54,84,194,71,104,67,101,171,10,109,168,236,187,208,254,183,17,57,45,97,200,148,200,105,201,129,59,138,156,150,68,8,103,200,105,201,90,231,97,184,254,104,78,41,58,27,65,143,57,108,74,244,152,67,208,136,30,115,120,118,208,99,142,255,178,190,209,240,56,122,128,178,189,128,30,160,120,41,232,1,74,203,21,74,249,138,234,114,232,174,174,83,237,41,153,221,103,183,217,22,140,253,55,18,235,177,63,62,79,211,105,219,83,234,121,65,172,106,217,206,19,17,91,253,6,200,95,98,144,156,16,104,45,150,132,197,84,7,194,58,131,202,96,120,218,83,154,230,155,129,246,141,147,203,99,242,9,139,90,31,29,219,175,183,130,69,212,87,87,215,164,120,60,206,217,27,213,102,78,180,59,2,16,203,197,20,75,43,255,80,97,37,19,54,144,134,155,19,118,225,134,132,163,246,246,171,72,34,41,85,157,154,205,102,122,194,203,208,12,136,15,68,194, -161,217,136,197,115,194,96,49,9,219,138,37,164,51,186,41,224,91,70,187,3,110,97,139,138,56,23,97,44,83,57,20,30,163,131,184,80,205,77,121,14,136,123,242,8,178,61,181,52,122,117,29,142,129,194,50,48,191,216,184,192,107,75,165,182,34,166,218,109,139,101,214,178,32,169,85,10,187,215,166,146,72,135,111,129,220,224,160,142,107,146,103,233,52,235,90,34,177,118,77,210,207,251,82,202,212,145,204,189,204,181,89,72,92,150,134,107,50,198,136,123,10,185,156,158,182,198,24,82,187,143,45,165,210,250,219,26,12,231,254,248,97,181,32,217,41,216,9,4,26,183,184,123,141,177,181,170,230,224,181,134,66,108,186,170,170,66,212,230,32,218,68,170,233,179,121,191,80,223,57,188,60,109,237,232,105,215,205,57,169,201,101,239,197,124,146,233,230,8,205,139,145,72,36,46,161,111,220,44,196,189,123,78,98,84,184,50,228,31,229,141,30,145,212,107,147,226,76,179,122,125,237,162,202,195,141,147,58,144,246,124,205,2,108,218,174,158,78,95,210,13,209,254,48,63,162, -247,139,88,221,85,235,205,132,45,142,101,122,136,108,229,211,122,212,35,202,184,196,126,214,58,238,163,235,216,58,245,84,211,242,28,201,204,33,5,205,45,158,133,237,153,101,225,214,17,149,216,230,28,133,7,120,225,64,164,110,159,197,232,138,105,123,13,110,227,249,133,117,171,42,22,218,220,91,57,148,31,39,45,82,174,51,180,151,102,76,242,122,59,136,147,103,58,141,131,218,207,106,78,168,37,177,238,120,58,157,214,241,157,115,245,14,115,23,133,57,184,61,176,164,230,93,250,162,181,43,71,252,77,216,94,94,25,167,33,253,85,157,200,105,104,118,30,45,15,55,242,39,236,253,179,166,208,230,212,121,244,204,169,90,111,79,137,78,98,91,77,156,147,17,201,136,201,232,182,30,95,221,108,165,172,221,204,122,198,77,191,172,150,69,107,82,239,235,7,103,165,234,254,104,231,37,234,32,180,200,25,245,90,49,45,99,183,28,141,204,204,142,152,206,150,57,139,45,78,65,240,198,121,222,66,79,172,5,187,57,251,14,243,66,183,197,223,199,91,57,56,118,173,9,150,195, -145,241,122,199,0,175,117,122,164,170,97,143,149,181,11,90,231,62,107,129,222,206,96,76,50,214,86,136,227,108,121,160,222,185,61,73,107,88,144,111,139,132,220,99,169,81,225,184,50,196,14,186,13,227,41,235,113,223,10,161,169,155,195,228,71,229,139,234,104,202,237,225,236,197,38,136,61,83,90,104,56,205,131,228,221,125,22,101,249,80,215,111,106,190,158,9,135,90,181,122,209,138,189,131,35,62,235,29,62,239,30,34,80,244,59,59,233,224,240,174,125,126,254,106,62,88,37,152,158,90,90,243,109,37,130,72,151,155,172,94,155,79,182,11,105,166,195,192,185,116,196,220,34,239,21,121,183,197,92,235,124,40,164,239,235,74,158,92,117,233,183,28,167,171,251,220,27,139,139,41,95,220,237,150,229,250,183,210,93,238,105,112,167,38,16,88,63,153,9,174,185,154,87,77,105,206,76,191,77,16,148,140,180,108,165,87,169,117,236,140,211,182,124,210,116,194,113,248,231,55,23,166,26,23,248,55,227,12,85,3,35,45,28,86,92,200,6,155,33,72,169,3,103,71,218,133, -94,182,124,158,239,160,171,234,77,107,20,250,241,174,36,57,109,15,26,87,119,166,201,142,115,39,213,40,92,234,30,214,250,37,117,20,121,239,228,149,206,156,172,210,38,233,85,59,164,32,210,37,223,84,246,139,220,58,134,250,52,188,200,183,238,25,99,87,86,103,40,49,202,146,155,35,51,70,17,152,173,182,52,186,219,188,81,111,250,152,126,157,92,177,218,23,71,157,8,92,245,117,182,121,130,156,62,205,245,248,146,251,108,45,112,172,114,44,44,197,221,46,69,191,167,141,165,187,26,245,144,247,105,39,157,251,231,198,148,49,226,204,208,151,136,245,148,16,161,202,50,10,230,94,193,201,30,93,230,34,165,179,69,37,140,1,173,154,97,76,8,69,17,123,55,67,222,24,89,106,112,110,41,230,211,231,161,189,211,246,140,118,235,88,205,243,174,187,103,98,221,70,88,59,81,164,188,169,209,157,49,41,89,214,170,37,233,200,179,146,208,138,121,81,178,171,68,144,50,124,238,160,94,223,156,245,204,16,183,72,221,177,144,150,235,61,137,81,133,107,51,76,199,238,136,48, -213,163,95,214,236,140,91,98,145,147,89,237,254,74,131,249,140,65,154,72,46,46,76,205,174,145,124,200,241,175,135,49,72,62,81,246,167,149,50,224,107,201,43,173,161,218,113,238,136,178,195,202,9,53,137,97,141,152,244,166,142,118,121,223,188,109,63,19,151,80,188,122,181,62,96,107,225,51,213,227,231,199,94,223,32,39,222,149,63,183,186,217,216,229,53,156,71,34,7,145,192,160,196,31,113,204,69,70,131,237,231,115,180,212,154,187,127,124,255,156,197,109,226,184,162,103,71,9,190,64,27,179,171,122,187,15,78,151,25,67,241,128,54,28,102,16,213,227,178,240,14,123,128,64,38,161,231,221,135,125,30,250,122,168,55,194,91,191,38,155,37,99,4,30,120,62,225,134,1,66,49,216,144,154,96,55,113,6,217,185,243,247,46,186,39,36,102,198,166,155,21,237,77,103,192,213,246,97,48,210,174,56,36,118,158,100,148,80,125,53,136,156,222,139,98,148,177,164,36,108,172,31,163,161,98,59,139,80,27,136,145,14,153,116,68,58,47,35,246,118,161,231,220,19,92,75, -45,225,138,248,167,156,203,111,186,209,128,149,163,183,76,69,3,214,234,34,26,176,198,208,227,151,122,235,32,26,176,250,212,36,130,198,144,88,140,13,162,7,28,4,1,122,192,241,31,139,199,255,117,121,193,219,227,8,32,71,128,41,130,11,61,254,52,114,224,161,11,96,169,189,10,189,80,161,85,163,23,42,200,125,232,133,138,53,2,122,161,98,181,30,189,80,193,30,65,47,84,156,131,28,1,166,8,127,178,92,136,104,32,55,32,106,170,130,121,2,34,241,48,188,100,1,36,190,10,149,12,36,46,64,252,86,41,186,129,151,44,0,229,70,36,251,56,163,118,33,217,71,235,226,48,31,61,240,10,35,217,71,253,192,57,122,125,163,121,16,9,99,76,85,149,40,22,139,169,46,27,185,153,57,217,77,70,107,74,239,140,153,45,22,139,179,206,233,180,120,102,247,169,97,255,6,114,46,117,179,235,213,139,54,78,167,149,123,170,40,51,214,238,175,111,190,216,103,129,146,93,231,153,231,37,204,117,201,19,43,186,142,61,49,163,77,36,18,232,125,70,250,17,133,187,185, -41,90,242,206,93,142,204,242,88,204,134,244,88,22,175,83,0,175,181,202,186,78,133,36,29,216,96,51,47,236,53,203,129,104,50,145,208,240,53,194,254,129,106,209,38,25,61,47,117,142,139,84,236,81,29,219,180,18,79,240,117,26,109,108,180,203,40,109,202,36,119,249,11,132,157,46,176,119,47,226,22,198,90,233,246,192,165,201,144,161,0,98,172,100,19,71,227,2,57,73,230,96,137,160,153,237,66,36,100,65,70,109,15,88,71,154,50,5,247,17,87,21,3,83,72,224,111,161,181,53,88,189,20,27,65,63,125,26,109,48,113,157,123,32,97,217,34,36,219,147,70,102,245,206,118,143,135,106,156,82,171,89,219,243,180,61,18,220,194,165,65,45,3,17,182,35,217,79,231,82,88,76,163,188,218,110,183,187,125,194,206,53,83,102,110,98,134,73,105,24,74,118,217,67,203,213,238,222,214,229,106,206,110,200,114,37,182,93,110,173,89,89,148,9,65,87,220,42,169,10,115,226,68,91,77,23,10,19,27,85,187,218,13,7,8,244,94,43,8,244,27,201,144,49,162,164, -154,237,50,90,189,142,156,236,0,140,146,86,195,219,172,118,99,147,195,180,222,172,53,115,7,228,187,84,70,175,152,115,212,74,246,236,40,250,142,82,12,98,219,48,180,180,125,36,27,13,155,22,183,246,55,149,107,102,182,147,25,212,182,54,120,213,50,52,188,235,2,252,76,42,37,147,203,51,235,115,193,6,253,168,212,184,5,130,252,101,123,223,238,89,40,172,38,155,46,56,74,125,131,245,96,74,115,109,225,102,102,22,227,202,27,209,25,61,218,226,110,112,158,185,106,183,3,194,182,81,157,134,25,217,224,143,42,56,82,234,240,182,223,196,31,161,24,106,103,87,205,67,193,25,229,144,111,149,162,111,104,63,26,207,52,29,251,106,98,238,110,233,202,97,63,160,5,73,157,46,198,187,225,77,140,14,242,238,201,13,208,105,255,120,61,133,52,218,50,117,37,230,145,69,32,35,136,68,46,36,38,113,99,104,13,189,166,184,118,222,63,41,230,36,54,149,34,209,220,46,45,58,114,118,72,141,214,238,131,82,95,54,209,171,163,143,54,135,229,64,209,70,17,145,51,59, -196,241,245,180,109,156,198,26,171,134,152,163,28,198,208,48,209,125,192,229,241,148,100,137,34,96,188,18,183,121,213,107,50,115,243,238,94,38,160,182,86,145,59,46,60,71,157,32,52,28,251,125,74,171,96,160,135,27,244,93,94,168,150,231,21,124,187,239,122,211,192,89,62,8,236,251,83,110,97,152,74,172,229,213,123,218,72,13,91,210,106,109,166,115,79,63,61,76,1,126,190,152,84,111,175,219,137,209,80,138,204,33,38,106,116,145,11,7,53,52,4,2,54,51,24,56,153,32,75,210,17,142,126,149,127,76,175,246,195,73,96,142,10,78,2,115,50,118,162,122,191,105,153,151,160,92,237,218,180,140,120,123,48,228,59,212,40,39,186,134,152,3,109,13,28,138,77,228,92,163,167,165,50,63,231,188,251,42,222,188,216,73,36,211,206,1,242,29,236,14,207,11,88,3,45,150,152,76,65,153,108,225,236,77,204,72,44,163,77,172,84,199,64,189,69,22,90,82,134,142,175,197,68,215,250,8,235,242,188,123,83,84,53,163,19,180,74,215,91,174,108,215,238,5,121,93, -172,125,67,57,46,181,196,198,173,83,93,179,201,57,197,212,2,39,61,45,37,11,153,71,29,228,25,34,203,66,112,30,239,215,211,79,215,69,156,113,253,213,168,187,171,155,227,107,231,81,131,94,7,175,95,51,55,66,203,36,234,7,57,253,182,234,130,241,251,112,252,238,21,201,60,188,220,205,88,214,141,31,107,157,23,32,49,72,46,33,183,17,13,238,12,114,27,241,98,112,107,92,17,10,207,218,34,66,10,96,10,240,164,147,174,243,128,203,7,8,155,177,180,53,110,176,25,228,188,89,137,101,83,234,90,184,140,82,111,210,75,157,77,10,67,154,212,87,215,70,181,238,94,85,19,50,196,237,45,77,136,222,113,20,103,18,71,46,47,58,123,79,117,85,155,177,27,175,75,65,170,186,180,112,21,9,159,59,61,145,28,85,249,39,247,171,99,90,53,89,121,120,163,23,206,207,30,9,186,91,253,61,158,163,105,239,146,90,52,167,85,174,173,92,177,107,236,36,144,95,76,234,186,70,133,29,233,198,129,125,230,228,66,112,101,107,33,118,49,222,121,165,115,141,6,76, -75,103,212,163,9,139,101,241,244,176,219,147,94,25,83,91,183,9,52,149,81,228,111,180,40,69,238,9,167,44,37,23,77,141,197,128,88,151,47,102,180,28,119,72,125,125,66,182,147,107,170,163,41,240,204,185,44,158,209,218,102,213,6,154,145,96,85,138,252,172,70,139,74,164,59,32,76,104,70,44,139,35,19,146,102,203,170,101,6,212,95,115,172,195,233,54,191,230,108,21,216,113,216,73,37,16,153,36,96,137,103,212,37,8,214,192,180,137,8,60,211,151,102,145,232,90,181,177,213,129,196,211,163,198,78,20,207,183,193,24,56,100,12,140,129,67,106,192,152,40,8,76,99,32,88,78,117,201,218,27,145,219,122,29,71,46,38,122,15,96,27,154,93,72,222,125,142,92,31,32,144,3,46,180,96,189,189,146,255,167,253,138,130,255,252,27,73,61,53,147,82,200,154,9,132,83,3,168,48,9,19,77,189,200,239,87,53,92,66,210,157,105,55,9,171,14,206,11,190,17,240,240,139,191,122,80,132,124,247,226,127,231,191,49,128,190,254,113,81,238,207,220,87,6,30,126, -246,241,227,191,248,244,241,67,66,13,187,42,12,86,171,105,206,32,11,43,6,60,52,125,219,225,106,91,199,186,147,108,160,143,212,178,109,132,145,134,182,67,213,53,193,127,220,74,8,52,18,22,86,15,59,50,203,163,202,142,166,70,181,96,72,155,180,14,79,13,55,81,215,180,231,188,142,181,198,249,186,186,243,137,240,166,57,66,149,112,19,98,205,100,102,154,161,30,247,241,172,51,205,169,133,140,69,54,115,211,162,141,72,237,67,29,141,87,181,213,211,109,209,107,218,84,123,103,227,42,179,113,201,19,169,174,30,36,246,215,174,234,64,112,235,160,232,50,138,185,46,250,114,159,213,212,79,10,116,15,82,15,247,44,42,253,241,166,87,235,118,207,201,231,253,110,207,80,68,161,158,96,89,237,52,171,60,165,35,120,253,99,62,166,172,110,70,50,43,97,91,186,156,39,94,159,166,93,172,160,55,80,72,233,73,95,250,192,183,235,160,47,207,197,20,81,189,81,37,188,62,141,176,18,226,136,97,114,54,196,178,139,66,23,107,134,129,136,73,123,115,210,198,225,203,61, -70,202,116,196,202,155,115,154,175,8,214,19,243,234,230,77,40,52,90,223,115,173,210,47,136,46,121,180,99,139,227,106,36,238,74,143,184,218,79,157,20,175,66,181,193,231,41,210,230,153,122,87,253,116,132,152,16,91,38,103,183,253,245,134,133,102,185,93,10,138,208,125,179,46,54,219,151,214,123,205,134,186,176,153,122,186,121,117,181,234,105,83,11,165,215,145,209,13,195,26,253,56,94,123,126,194,211,144,71,106,196,199,75,206,232,233,146,181,167,207,110,146,213,122,3,29,109,214,121,249,186,106,178,87,124,45,36,133,60,62,90,155,236,104,132,213,62,236,140,83,231,188,170,140,236,76,26,240,48,117,181,251,124,247,132,171,129,98,116,116,46,44,89,57,28,138,143,22,150,78,119,152,55,58,124,55,231,98,211,154,110,213,112,211,177,39,136,118,167,204,11,213,12,215,188,62,33,152,209,102,198,250,220,93,186,131,253,198,233,16,195,154,60,155,56,57,210,90,110,182,118,84,132,73,217,250,73,204,189,187,199,115,218,110,54,41,115,230,78,102,203,50,109,49,50,215, -173,59,239,53,201,72,181,94,255,234,254,49,163,238,116,211,60,32,230,155,82,243,0,133,232,46,171,82,227,118,82,36,109,154,192,144,69,173,191,222,116,75,117,170,88,104,221,55,185,57,96,79,173,119,172,176,88,151,2,233,128,211,232,220,227,222,108,79,208,250,189,19,42,5,155,154,212,89,227,141,115,171,53,215,45,93,115,122,119,189,157,178,227,216,233,92,176,106,92,116,86,235,200,120,205,228,190,80,50,169,245,240,37,123,234,198,227,85,50,199,125,45,54,93,234,221,147,62,218,232,72,202,127,45,230,14,5,219,231,166,181,134,131,147,76,146,187,72,17,177,37,178,225,132,227,82,162,24,29,241,247,17,187,19,85,67,117,206,185,224,166,91,199,151,133,110,54,23,22,38,230,169,26,133,68,17,228,203,164,177,161,20,169,182,186,179,153,238,236,177,218,28,254,192,233,210,117,99,237,112,79,223,181,107,196,25,91,168,15,55,171,199,26,137,186,209,109,223,73,90,60,59,54,47,220,222,209,184,198,106,55,250,198,228,102,89,194,189,59,216,107,11,121,24,77,147, -4,90,143,210,150,10,1,19,72,236,219,12,254,232,9,47,50,226,97,218,27,44,237,238,53,134,205,38,233,144,7,19,11,245,251,117,222,245,89,171,211,151,14,17,72,23,94,61,133,160,27,11,128,210,142,100,104,146,179,111,44,53,19,203,102,144,80,54,205,57,155,69,33,103,187,78,170,107,234,145,109,243,119,162,196,110,149,75,188,165,34,115,46,59,142,93,205,242,253,140,186,137,19,26,80,120,102,65,110,21,201,140,215,212,212,36,34,190,67,133,116,39,16,152,30,236,179,240,66,84,237,185,32,54,51,209,87,239,141,235,253,52,246,77,29,109,197,115,233,114,53,26,102,123,221,23,4,171,212,97,136,199,3,27,36,157,114,200,98,55,95,236,204,217,152,85,174,40,129,182,81,63,36,185,169,90,9,48,156,118,201,220,238,149,169,165,91,156,174,110,105,94,118,54,74,22,22,164,85,33,114,15,229,116,156,27,149,109,166,232,62,35,3,12,142,167,78,41,140,21,107,119,138,47,28,209,215,121,109,178,68,219,100,75,111,72,79,151,213,132,184,179,131,84,18,89, -51,145,94,171,31,74,92,232,70,14,229,245,106,169,71,62,74,50,44,80,2,4,47,171,193,176,181,224,235,20,180,240,173,20,123,90,94,107,94,157,113,38,217,156,80,170,207,194,90,114,209,125,117,115,174,3,125,72,211,117,204,118,77,94,201,6,54,22,41,3,20,202,178,57,35,164,119,212,122,245,60,2,237,186,135,226,6,27,12,146,120,9,219,252,137,75,64,175,17,175,172,172,12,134,122,51,158,58,151,127,93,45,63,0,235,158,156,251,174,7,58,150,35,194,157,128,97,151,205,102,123,215,6,66,22,163,184,73,119,124,227,208,239,18,218,204,163,163,163,142,94,241,248,220,205,66,184,179,149,54,226,117,155,154,217,132,54,131,202,209,171,1,79,189,254,106,243,188,237,188,209,64,86,114,233,161,121,205,32,151,0,18,215,137,101,54,121,144,196,106,50,144,27,35,109,237,156,165,64,253,69,157,75,109,170,29,34,147,6,84,99,209,174,80,59,61,41,171,239,241,123,57,138,134,88,253,206,128,138,90,227,82,31,210,70,84,97,50,93,237,231,12,44,181,156,19, -196,93,67,17,87,112,167,249,202,182,68,208,137,1,182,52,249,19,66,55,65,220,210,94,219,50,175,27,172,191,38,44,91,155,144,39,35,45,203,171,3,206,94,6,191,109,156,177,91,191,82,111,54,144,231,55,72,162,65,14,169,135,117,50,191,50,177,188,57,154,62,160,182,80,5,231,6,143,136,170,218,140,159,232,151,46,88,173,214,166,17,21,213,160,106,38,85,7,6,142,123,88,70,133,149,215,90,223,122,178,185,65,171,157,76,141,79,38,132,139,238,26,177,251,120,184,237,102,102,115,121,245,130,61,59,178,52,181,63,16,186,110,90,89,129,179,2,3,131,200,44,94,107,107,189,54,225,96,90,199,73,70,230,233,149,229,114,234,120,183,145,205,184,170,242,214,145,110,218,89,158,69,246,54,111,115,53,80,191,223,59,160,164,17,15,182,232,226,9,181,169,131,175,114,117,209,60,134,70,99,172,97,136,124,56,127,216,87,175,59,48,247,54,158,182,204,76,117,142,138,187,103,79,89,134,186,125,59,91,213,158,81,27,184,117,22,61,220,144,105,16,221,208,217,196,230, -104,219,154,167,183,165,41,212,148,58,149,16,152,226,184,122,12,44,225,0,107,192,37,14,167,231,92,210,33,250,232,73,80,64,91,52,143,181,4,16,241,212,53,81,182,135,198,104,51,169,17,163,35,216,17,239,238,22,31,173,54,183,239,182,211,132,181,83,157,27,125,231,199,195,29,225,177,139,134,73,37,167,58,132,176,205,227,162,108,43,79,83,66,81,175,136,48,233,89,149,245,11,171,178,227,15,19,11,179,189,80,107,35,170,155,26,195,241,100,205,193,202,100,61,34,248,250,241,65,18,209,160,106,104,117,15,142,7,218,89,26,95,231,178,237,196,15,116,26,134,74,141,108,51,98,43,210,26,221,168,150,211,95,101,85,215,246,155,167,217,75,125,181,64,189,134,166,72,176,177,109,198,192,31,92,52,15,111,71,189,117,67,174,213,234,16,83,64,164,211,228,136,93,93,2,187,162,108,245,42,15,47,171,236,7,164,142,193,248,120,231,177,107,180,174,169,73,218,115,98,8,16,73,190,89,215,16,119,91,222,196,157,237,108,58,63,149,48,171,133,242,197,131,248,132,157, -93,63,4,4,23,60,56,238,88,158,155,220,220,30,86,52,112,141,52,55,119,217,111,14,206,155,192,187,109,248,178,113,105,67,202,1,47,27,184,7,132,154,80,140,231,63,235,157,130,218,231,215,245,174,135,6,150,87,121,241,177,115,46,25,168,57,177,213,192,60,58,219,94,179,244,214,250,70,7,155,229,187,116,61,25,93,64,13,137,0,26,27,128,200,69,59,141,57,204,81,82,50,41,215,172,165,171,126,50,224,234,59,20,64,37,247,42,47,149,67,245,52,246,212,86,179,145,206,189,0,106,182,123,34,202,211,35,218,114,195,230,228,188,94,125,40,33,203,145,93,129,77,33,187,154,117,173,12,113,207,171,173,39,153,181,163,54,18,169,199,201,242,52,207,42,41,96,12,187,14,221,121,18,14,2,99,8,245,214,142,158,182,16,95,145,206,24,91,174,131,29,13,26,77,175,128,72,138,109,242,70,7,169,19,155,219,12,192,87,191,135,202,153,62,93,57,185,92,94,229,18,167,231,109,173,178,93,127,245,92,91,203,10,155,183,105,57,155,237,168,105,51,245,30,143,173, -181,239,56,220,68,74,247,21,229,124,95,208,34,161,9,167,58,205,203,163,235,161,38,68,14,171,92,170,193,161,223,169,187,18,180,32,111,122,170,39,101,155,202,250,144,241,64,64,164,121,5,99,83,92,160,192,113,131,106,185,14,81,224,242,12,237,116,197,63,80,21,31,174,18,119,29,187,214,106,253,206,174,229,217,169,101,65,143,238,66,127,76,175,114,142,27,17,195,112,181,24,83,76,118,215,128,83,220,81,179,64,152,92,149,237,244,31,238,84,75,40,131,67,164,54,234,162,249,132,222,173,237,39,180,217,29,6,110,98,15,25,63,109,36,132,250,234,154,230,107,116,71,150,4,192,131,106,4,15,106,196,46,232,180,192,103,229,208,105,151,166,220,23,245,86,86,122,109,220,221,145,188,154,59,111,225,167,107,108,11,119,198,157,172,138,87,133,141,214,62,247,100,95,72,114,65,20,247,67,240,0,10,101,66,240,216,28,173,62,89,214,236,81,67,14,158,55,230,221,26,109,117,141,54,131,53,117,83,205,36,39,135,96,16,108,247,80,184,33,217,6,37,211,228,201,136, -217,230,237,142,209,134,137,25,203,169,164,192,95,71,81,127,117,117,3,155,0,38,49,35,232,219,52,16,220,38,165,126,110,253,76,55,21,50,230,252,147,141,248,103,213,228,80,212,214,176,54,152,218,141,182,52,92,240,103,143,6,106,199,131,119,112,100,19,58,249,52,201,101,236,74,52,204,185,228,73,235,13,59,182,28,20,140,228,252,120,30,248,241,198,225,96,243,81,245,176,213,38,176,108,208,130,2,22,132,200,52,92,4,172,49,12,65,128,169,92,166,251,245,171,241,142,73,123,218,157,88,218,141,122,183,100,112,115,96,111,157,112,115,156,149,173,14,137,127,77,61,244,46,14,158,46,77,85,133,152,183,227,25,186,163,3,205,210,192,226,48,208,17,84,209,89,164,111,155,14,240,130,9,241,130,64,219,206,225,247,96,66,184,159,166,220,116,213,212,156,182,156,76,57,91,118,173,254,76,239,160,102,190,153,157,30,56,239,243,179,226,158,182,57,147,44,184,94,59,219,63,86,223,211,125,49,108,91,171,117,118,113,133,205,38,222,234,88,98,161,150,9,114,10,202,185, -184,171,102,104,249,154,191,200,238,50,130,159,247,235,218,236,189,14,195,78,175,91,125,214,70,22,131,109,218,154,125,209,93,122,237,148,137,220,167,4,194,5,15,132,205,211,174,249,186,166,131,161,144,97,135,231,20,107,103,131,150,22,82,44,64,118,106,154,228,87,189,118,178,74,106,65,60,115,90,121,185,68,180,206,79,113,183,154,233,92,117,164,249,124,53,106,208,210,187,246,46,170,12,42,50,192,157,142,75,212,113,195,224,53,17,4,188,22,148,124,243,1,74,62,212,8,200,15,81,235,21,82,235,164,113,231,244,76,116,168,141,107,52,170,141,38,157,167,249,16,134,154,35,16,53,98,188,213,193,206,211,110,214,197,214,202,14,105,182,97,178,94,51,191,210,71,26,224,214,184,2,2,237,82,131,3,178,60,4,137,2,154,205,144,168,97,103,102,167,106,178,117,103,125,115,99,51,214,189,197,157,29,91,89,50,160,132,70,6,81,66,196,29,79,173,56,83,229,108,168,149,47,220,173,93,138,126,247,227,130,47,66,23,149,188,122,93,138,125,133,45,171,192,23,61,195, -224,75,158,23,125,93,94,82,92,244,162,178,236,57,252,66,56,166,180,164,226,205,71,69,95,85,20,149,224,139,42,222,188,46,121,142,41,45,125,83,84,137,199,130,49,184,242,162,226,18,252,235,82,204,155,34,76,89,113,17,182,184,164,2,3,39,21,225,94,20,97,224,10,120,248,211,55,152,210,74,44,248,169,188,232,222,75,108,5,182,28,247,53,182,12,139,171,196,223,47,42,199,62,199,149,23,227,63,42,250,167,151,216,220,135,34,240,123,57,22,255,26,7,8,86,224,138,202,113,223,226,139,74,202,138,42,192,8,132,228,7,200,143,37,101,197,37,223,148,20,87,98,74,139,94,148,96,75,193,180,111,75,42,94,130,113,88,204,243,151,89,82,69,207,49,101,69,207,176,69,88,240,6,91,94,244,12,87,137,146,124,142,43,173,124,85,134,48,4,62,97,202,222,20,65,134,202,193,206,129,96,16,153,60,253,17,30,46,83,137,47,194,87,190,126,141,43,175,40,41,251,58,43,156,87,24,60,216,194,211,15,139,177,21,152,146,210,187,98,66,120,40,122,93,142,1, -143,80,49,149,1,250,197,64,42,200,8,176,48,190,226,163,187,95,60,135,27,199,87,0,225,97,0,191,197,128,137,111,128,92,145,202,19,72,12,251,135,10,44,96,249,27,76,121,9,16,87,17,6,255,26,251,188,2,17,41,20,65,94,133,111,235,10,236,226,183,255,167,20,121,253,4,46,143,71,134,151,85,130,169,80,75,207,112,165,224,167,50,44,182,56,171,66,168,54,184,193,223,254,207,191,127,250,33,216,37,120,92,129,121,86,138,5,50,248,22,8,14,139,193,67,146,255,136,123,93,249,250,159,224,243,39,96,35,149,192,102,240,223,199,6,42,11,56,160,184,28,247,26,200,11,247,109,89,209,43,236,243,151,152,178,18,252,171,162,111,176,229,111,138,240,37,175,74,74,49,136,22,224,64,92,25,22,181,43,160,198,215,112,53,48,190,172,18,177,14,96,123,184,215,216,50,116,197,98,28,96,26,50,158,183,92,200,125,193,50,207,113,101,21,229,184,82,124,81,105,201,239,177,144,247,95,128,119,127,95,130,175,120,82,116,15,243,123,76,209,239,254,18,12,121,245, -12,7,68,241,135,39,247,161,29,100,199,252,252,37,174,228,57,216,223,189,74,124,229,173,153,87,0,131,69,44,8,217,18,38,71,62,167,7,48,247,151,64,130,127,13,205,176,232,73,150,24,166,2,243,143,149,120,48,233,73,209,11,12,216,229,27,184,201,172,49,161,226,131,60,151,1,111,249,6,108,8,140,46,112,30,100,153,130,237,224,177,165,88,68,176,64,31,37,197,216,66,239,3,130,169,192,1,73,130,31,193,142,94,225,202,114,47,95,151,3,245,190,40,41,195,22,103,221,15,245,177,156,231,255,35,166,4,112,86,2,52,12,148,91,2,205,1,243,10,139,200,179,4,170,29,83,244,26,12,128,27,188,3,21,192,45,178,50,40,7,110,89,244,172,178,162,2,7,116,242,12,91,241,45,22,139,184,232,171,34,32,54,220,183,112,111,96,191,223,148,100,197,136,238,0,236,255,25,30,139,26,48,144,34,182,28,120,16,220,93,69,209,179,55,69,175,112,223,192,89,144,23,108,30,142,110,9,23,85,124,139,3,234,196,87,224,239,58,16,250,247,67,252,83,14,28, -80,81,226,202,191,6,86,246,71,68,154,159,35,80,241,28,139,218,126,214,245,223,241,193,114,44,132,55,12,128,62,44,166,2,248,33,6,209,110,22,22,160,53,103,85,7,196,9,120,189,107,246,136,68,32,98,193,45,62,195,65,171,199,33,251,192,227,42,203,159,103,181,11,23,135,207,80,145,64,245,224,193,22,17,14,63,42,250,57,174,236,57,246,117,5,34,43,20,222,178,83,11,246,132,176,247,10,83,81,94,242,135,172,94,254,5,234,21,234,228,163,194,29,224,1,199,88,68,196,175,128,209,226,128,243,67,59,193,60,7,18,192,35,106,129,190,84,192,25,186,30,138,109,192,1,161,208,225,48,136,33,88,224,47,144,111,240,243,223,128,159,179,40,13,241,24,3,86,3,192,2,54,129,71,37,82,82,86,129,253,26,120,72,78,214,247,254,8,96,190,8,193,146,251,232,10,57,208,205,98,242,237,236,28,58,191,75,4,152,230,183,216,210,210,15,160,117,99,74,1,234,162,238,82,250,6,193,236,236,30,80,186,121,178,96,147,95,67,163,7,31,1,219,95,21,3, -35,47,134,0,1,130,68,57,178,153,187,108,87,100,193,5,252,139,40,176,4,49,215,151,216,210,215,47,42,75,33,14,125,23,38,162,54,9,159,228,56,128,30,148,223,94,222,65,179,0,1,24,65,20,245,101,222,177,178,218,249,32,43,221,127,196,225,11,133,13,198,127,112,135,22,132,200,114,76,25,190,20,83,129,172,141,71,61,34,187,118,118,83,80,113,175,112,197,208,217,191,42,203,74,189,24,12,196,150,191,42,41,195,149,226,190,126,115,87,23,217,176,90,104,167,89,11,131,10,134,17,12,172,12,192,50,171,144,39,249,112,0,103,101,45,249,30,174,178,226,117,101,197,253,60,209,130,169,120,8,40,111,80,184,69,94,62,121,79,244,203,210,185,245,39,124,69,121,229,243,138,74,132,12,26,191,129,254,202,161,218,1,31,88,16,5,160,66,115,224,91,200,59,50,177,28,78,188,7,204,229,37,174,242,235,151,64,195,16,180,0,254,20,227,94,229,245,10,132,249,10,243,123,84,135,175,48,175,95,67,185,1,248,4,193,164,2,177,174,242,103,37,64,216,229,111, -238,127,84,244,63,160,99,160,126,137,100,22,5,230,246,18,3,160,27,252,153,31,14,66,236,171,103,88,68,187,57,19,70,48,56,135,107,5,188,126,84,244,235,23,48,12,148,227,177,168,74,94,129,212,32,11,225,128,56,30,113,102,24,15,225,150,255,80,244,26,91,158,93,249,214,94,49,165,120,28,42,97,44,152,90,129,203,25,193,7,64,100,207,49,149,120,108,129,170,111,93,10,8,7,251,127,160,188,179,49,183,80,126,217,65,31,21,253,45,238,91,44,8,208,31,0,225,0,71,195,33,254,9,3,102,73,25,2,88,40,153,215,56,96,112,192,254,179,130,1,155,254,246,101,9,148,16,170,52,16,231,139,161,198,110,113,190,4,0,28,50,253,243,59,70,80,242,240,147,7,95,252,26,124,252,10,217,42,68,83,96,82,72,152,133,172,127,254,142,120,178,154,127,250,103,89,135,125,250,103,136,196,16,161,32,190,242,10,44,7,212,8,221,15,134,169,146,98,104,2,224,3,186,17,136,50,0,73,160,159,3,225,1,76,199,0,107,66,246,159,91,58,107,145,229,216, -187,40,141,164,106,48,76,62,195,2,213,131,140,172,60,183,87,220,51,184,67,20,82,128,97,65,125,99,110,37,15,200,65,57,125,244,214,118,127,142,190,207,239,183,44,171,235,123,72,126,2,24,7,214,148,37,242,228,254,231,40,110,3,85,227,239,88,201,91,16,145,75,198,97,226,8,247,136,238,235,94,25,14,196,94,144,39,160,169,85,30,185,128,121,191,197,211,63,84,150,86,148,188,46,189,69,8,252,75,144,123,34,81,35,187,119,132,199,44,55,223,177,248,123,210,85,76,214,189,254,144,141,207,207,254,31,24,43,209,252,59,55,45,191,196,93,147,44,122,149,227,233,91,88,78,220,195,126,244,245,71,48,65,169,192,190,2,94,129,65,112,2,96,82,49,226,100,101,69,63,199,150,226,75,42,209,96,255,215,152,151,229,216,178,151,32,192,0,63,4,145,29,139,191,255,61,74,184,93,40,235,7,159,127,215,6,75,202,128,105,189,66,115,181,175,49,208,168,32,216,151,3,128,201,147,40,220,67,86,150,183,158,155,15,14,37,101,48,245,127,14,87,44,250,10,100, -149,191,192,34,152,12,12,237,171,95,252,242,206,138,240,164,169,32,146,225,223,202,73,193,79,32,170,224,75,254,136,205,131,58,204,149,110,151,44,244,33,144,227,61,199,192,76,6,177,160,28,88,188,193,85,162,136,6,147,151,92,94,13,243,9,232,100,47,208,218,232,23,40,59,79,16,230,241,149,207,97,50,140,108,249,233,135,168,237,102,49,234,46,200,131,137,191,194,85,96,63,127,146,99,237,121,37,40,240,0,241,127,126,250,147,167,63,129,149,0,30,201,109,145,178,46,183,114,190,140,68,8,63,253,48,107,249,168,85,222,203,214,150,200,222,239,218,250,187,166,158,85,5,26,216,238,67,97,148,35,58,43,194,124,251,251,111,65,213,149,171,109,193,206,202,202,80,69,3,163,65,212,130,88,249,11,44,106,100,89,114,47,42,145,79,192,211,97,97,7,140,46,151,212,223,166,89,8,137,59,92,125,83,2,50,192,108,34,136,12,193,101,113,232,5,230,57,54,235,14,57,103,188,147,216,222,70,197,191,249,231,175,62,47,172,4,242,229,194,7,136,173,151,226,64,148, -66,234,165,187,194,71,8,160,73,91,214,154,81,26,96,163,149,248,156,103,191,194,65,11,0,60,253,30,251,230,25,14,145,73,126,97,36,124,102,183,136,36,183,112,86,41,246,233,135,121,94,138,238,1,209,65,160,7,209,12,87,126,31,97,7,177,138,219,17,48,41,41,189,19,243,32,48,223,190,207,178,150,45,172,96,234,0,37,6,89,123,93,142,251,186,28,243,10,122,219,243,108,58,124,43,184,108,130,152,133,230,60,53,36,209,71,152,1,65,18,65,13,252,107,144,58,101,243,8,68,24,31,128,128,12,149,14,205,37,23,200,138,238,229,176,24,214,41,48,44,192,200,15,18,182,138,231,47,191,197,149,255,254,62,82,194,161,149,12,82,104,229,34,91,65,63,161,160,45,241,28,112,134,127,79,190,115,171,210,66,173,0,40,192,194,242,2,85,44,146,192,194,126,0,204,72,242,41,114,161,44,208,148,4,172,8,5,149,141,8,192,68,110,107,167,123,168,82,33,153,156,86,11,205,231,214,94,238,231,29,32,39,7,152,75,192,116,27,117,159,92,115,226,150,239,219, -185,5,54,4,188,252,127,189,196,150,253,15,12,168,43,33,119,207,48,207,127,255,221,64,128,44,8,132,10,236,9,168,0,165,1,10,175,59,11,222,22,196,96,3,96,67,48,141,70,164,244,164,232,233,255,133,70,118,228,35,178,159,108,231,230,233,79,126,9,173,3,25,113,59,63,155,87,163,3,126,129,8,21,25,129,200,23,12,184,143,36,52,208,22,64,184,43,134,57,115,30,61,238,248,1,160,241,119,88,0,127,104,238,142,32,214,27,100,234,43,88,17,188,196,85,32,140,230,210,126,144,178,98,191,129,201,69,129,188,224,95,106,8,34,1,148,20,130,184,176,29,242,53,246,221,149,110,167,160,184,120,187,151,220,42,217,153,0,78,112,229,16,135,74,223,188,37,237,47,139,178,249,17,172,211,115,152,119,155,241,32,224,159,107,211,21,208,7,122,1,233,7,30,237,121,61,65,178,47,180,180,44,195,221,198,130,188,142,160,201,161,251,197,0,0,251,234,5,178,41,32,145,178,167,63,170,64,220,25,226,124,182,43,86,224,200,89,242,104,52,47,194,188,128,198,6, -251,59,104,230,84,12,152,198,125,141,84,125,200,155,82,28,26,222,243,45,64,4,73,65,93,249,254,152,133,199,129,36,162,144,177,91,156,248,234,54,29,69,82,198,28,12,60,199,225,144,140,56,151,53,3,69,255,45,242,119,73,162,29,210,172,109,127,137,248,78,78,253,168,155,148,66,28,203,238,230,150,63,16,29,158,131,40,139,100,130,56,212,144,208,191,155,50,135,21,95,188,85,208,34,182,128,65,10,57,24,115,145,120,146,237,166,229,50,117,148,114,129,45,129,221,101,93,246,13,178,103,180,46,5,249,15,64,50,164,241,133,201,234,169,20,22,18,104,179,38,103,214,168,136,239,191,213,75,201,250,23,178,104,57,96,31,164,64,207,176,64,138,0,175,17,77,160,161,6,113,82,236,243,114,108,65,43,242,53,44,203,254,30,228,192,119,109,16,86,161,184,98,136,192,21,32,32,34,86,134,43,71,75,104,212,254,43,222,188,134,124,150,97,191,5,185,109,5,178,4,170,17,176,254,55,37,104,153,130,199,98,179,53,119,46,121,133,180,190,45,41,45,69,251,154,249, -185,69,95,227,110,51,30,80,28,221,169,131,128,81,86,160,101,19,18,17,128,228,144,174,44,76,218,179,93,166,219,166,23,72,109,144,118,9,176,44,148,50,62,187,241,74,132,52,180,37,180,178,203,182,64,243,56,4,60,4,7,252,224,203,124,203,55,215,207,65,151,207,98,61,8,151,207,81,132,1,73,227,109,41,251,162,164,28,36,104,217,173,228,141,31,201,229,48,249,23,31,100,171,172,50,152,148,32,69,12,98,131,104,107,30,102,35,208,248,17,1,101,225,20,105,180,62,195,126,93,82,134,120,23,108,247,150,21,191,5,21,8,28,101,55,1,187,146,64,162,217,182,251,29,219,203,181,85,225,150,192,184,108,27,168,8,84,191,32,192,195,150,8,180,153,55,239,83,193,7,69,149,101,136,73,22,106,16,181,134,15,114,41,33,146,19,101,35,50,42,32,128,67,89,221,60,65,154,29,5,106,65,99,56,4,54,48,8,247,13,68,252,219,142,34,120,121,203,4,46,151,115,128,109,193,217,176,78,207,213,255,48,134,228,154,223,183,89,0,224,0,139,226,70,238,216, -1,186,0,210,102,70,236,165,128,121,96,22,24,180,173,130,201,230,69,57,253,65,75,3,38,85,129,123,5,251,106,104,189,147,235,158,20,158,102,100,205,29,216,30,14,98,37,218,127,202,21,75,5,157,16,80,54,131,132,30,209,224,11,180,44,207,247,91,96,162,128,212,74,48,182,220,47,168,222,17,47,43,65,114,126,44,62,123,150,82,24,51,75,96,188,195,35,162,133,37,51,208,31,174,18,182,184,114,61,225,146,108,169,0,187,168,239,41,217,127,134,68,244,135,31,61,249,240,255,69,19,136,59,2,46,6,161,162,24,139,216,227,75,176,44,224,5,9,64,57,143,133,172,32,46,252,53,14,170,16,243,12,40,241,9,210,137,135,74,7,22,253,164,208,46,160,70,223,93,250,17,178,116,25,218,131,129,178,68,2,13,32,0,236,5,53,16,52,120,65,51,133,79,159,254,228,225,147,91,61,67,36,69,187,25,72,230,158,231,234,30,10,121,104,8,7,159,255,252,193,7,69,127,254,176,232,163,143,62,42,250,243,123,8,153,15,31,62,65,179,220,183,60,20,140,190, -143,26,37,146,30,162,140,20,35,106,3,218,207,110,37,191,236,91,62,248,235,111,178,164,222,96,49,16,34,139,43,243,133,119,49,80,103,41,238,245,171,108,219,11,41,155,128,118,1,214,255,1,148,192,37,240,57,48,203,187,53,44,2,114,64,13,208,55,158,35,152,128,244,12,129,177,162,73,109,57,14,200,0,166,34,95,66,227,43,199,226,193,68,20,136,74,80,185,21,54,228,208,244,31,14,124,1,132,148,235,43,23,118,250,33,22,62,253,176,162,178,236,86,110,183,160,152,63,245,201,101,154,72,235,234,189,217,95,86,91,217,224,92,8,25,185,124,229,123,27,178,112,93,144,14,97,17,209,193,133,242,173,185,236,105,17,108,230,231,131,24,246,15,24,160,151,167,63,202,169,228,233,143,208,94,69,206,18,138,113,88,60,146,200,32,96,129,244,156,177,96,83,72,26,129,84,191,119,114,136,194,244,185,28,139,64,88,214,44,145,14,106,86,24,79,110,227,122,254,128,12,218,63,18,64,11,94,98,95,189,6,190,89,242,199,156,13,188,128,172,230,115,228,92,135,42, -183,93,164,171,80,118,155,220,161,59,68,16,236,86,9,176,4,130,137,106,105,190,116,205,110,21,61,44,205,66,125,246,19,30,251,246,73,229,95,67,47,65,235,110,160,18,52,10,33,167,118,57,6,242,203,23,250,29,4,151,156,45,226,113,165,223,96,115,59,70,189,17,238,32,23,138,241,192,87,128,77,190,194,252,0,216,252,6,17,110,78,48,104,202,242,150,84,111,67,121,238,57,62,215,112,201,198,184,91,45,35,128,3,61,254,73,209,95,34,170,120,129,20,16,133,141,138,239,129,159,127,201,29,113,161,103,181,239,164,129,121,73,191,198,99,43,139,113,79,63,68,129,15,177,124,216,183,202,54,8,160,170,224,201,87,89,241,23,217,222,26,60,136,202,166,23,57,105,1,7,123,153,131,145,156,208,222,6,93,36,120,97,178,169,17,230,27,76,73,41,114,70,113,215,33,191,11,131,178,135,6,104,34,2,141,59,103,219,136,195,22,26,120,182,12,70,173,32,155,191,220,210,191,21,122,14,76,179,98,5,37,52,112,37,60,60,254,2,1,30,11,123,44,247,238,208, -128,230,130,201,206,197,131,90,188,20,166,103,183,39,247,119,234,195,130,122,16,45,138,238,103,163,254,237,5,2,124,110,18,24,251,63,16,78,190,132,108,124,149,51,131,252,145,11,242,24,29,81,240,50,139,116,185,254,194,115,120,37,33,215,156,207,30,113,100,137,223,38,192,40,73,40,51,176,141,111,48,217,19,67,224,78,249,18,1,96,47,128,237,194,19,114,164,237,9,207,143,222,110,23,100,243,20,84,159,240,140,234,27,108,25,154,107,33,77,16,44,146,17,124,144,235,210,33,133,65,238,128,61,119,122,147,19,210,151,89,132,129,156,229,205,34,151,8,161,230,250,2,196,99,196,88,193,66,24,252,27,248,103,78,231,217,146,245,118,79,57,12,5,201,93,121,22,189,240,5,78,149,197,41,244,128,12,188,203,22,16,200,185,39,62,123,190,152,173,212,239,33,55,50,94,189,42,169,40,176,34,176,2,140,166,96,25,180,105,143,216,47,88,160,18,36,84,185,246,7,244,45,108,46,8,103,97,29,22,145,119,111,53,100,109,226,86,48,176,184,168,44,135,163,128,165, -2,213,20,163,255,163,6,52,112,151,228,147,116,16,183,17,230,223,82,30,210,195,184,43,209,188,62,145,51,186,74,236,251,14,168,127,14,132,246,53,174,188,228,143,240,120,2,45,31,241,149,0,234,202,223,188,219,32,122,129,203,7,86,132,3,116,32,210,219,189,141,201,249,32,156,171,255,243,101,34,122,14,93,0,125,232,117,12,164,87,145,107,228,189,125,163,1,45,18,202,75,176,47,138,224,255,60,162,188,228,53,122,228,1,49,31,77,237,95,226,202,145,243,180,98,220,243,202,59,253,217,138,187,151,113,114,124,193,162,13,201,227,10,164,81,244,175,255,250,232,241,227,79,63,255,244,167,63,125,252,225,195,162,92,201,89,2,179,222,236,105,125,246,144,190,236,69,201,215,160,188,65,2,230,231,159,35,35,139,242,63,252,6,36,50,21,249,79,207,75,97,190,148,59,109,121,250,23,217,83,20,244,224,45,79,18,186,10,216,7,146,180,20,72,49,171,251,156,10,75,176,248,60,221,175,240,240,82,71,254,35,84,44,108,25,161,158,2,48,8,194,44,106,141,104,211, -36,27,43,144,83,202,59,133,5,236,125,22,80,205,66,214,127,158,110,65,72,47,164,252,91,108,5,132,159,159,191,201,63,65,174,90,96,114,253,223,162,151,216,146,175,95,86,20,221,251,186,20,247,12,94,111,184,211,172,68,83,224,108,9,3,61,47,79,229,111,222,161,11,42,89,224,63,248,124,46,249,238,18,200,141,147,220,197,14,20,235,145,251,69,57,82,121,234,159,63,5,255,220,54,190,192,135,252,114,79,239,1,136,123,122,31,22,62,21,159,231,184,248,191,223,97,2,196,198,55,79,110,163,33,188,180,81,2,65,18,201,228,65,174,131,94,176,129,190,129,122,115,174,16,190,221,224,211,223,253,10,247,244,73,1,128,223,190,40,198,193,252,244,233,147,130,75,110,133,215,185,10,67,122,254,76,231,142,138,10,244,254,158,5,114,123,0,168,10,117,128,74,237,246,82,81,97,76,201,97,204,173,186,65,81,245,30,146,192,119,1,122,224,11,192,247,155,18,0,201,111,29,179,161,120,13,85,82,122,119,195,80,18,183,241,239,61,130,64,27,94,239,182,10,222,49, -240,194,249,63,176,207,130,128,251,206,54,223,27,180,115,47,223,102,6,233,89,220,77,56,10,83,184,162,123,57,119,7,254,134,14,187,181,130,247,38,0,255,21,11,161,121,79,158,212,91,193,35,247,24,21,48,226,249,232,50,119,34,95,118,5,36,72,34,12,228,202,205,247,90,218,47,81,224,121,7,98,238,97,96,19,9,206,132,253,192,44,96,162,106,184,255,190,106,15,251,22,29,212,60,126,81,153,109,10,124,159,129,32,213,83,101,190,123,80,192,220,251,166,255,128,125,20,78,121,215,66,190,204,217,242,91,218,186,181,241,239,202,73,222,113,206,239,225,9,5,230,183,125,243,59,56,2,74,252,207,115,245,1,154,23,221,230,84,89,59,192,149,21,70,145,247,175,241,93,76,67,134,239,76,120,151,105,84,185,191,193,162,215,240,190,91,179,21,249,114,162,252,237,177,95,225,223,153,254,3,82,204,143,255,46,126,190,196,255,30,25,243,94,80,6,115,94,189,174,64,51,80,36,135,4,89,67,249,171,91,222,48,165,133,2,123,135,210,15,105,56,63,225,93,230,254, -225,238,46,111,109,30,255,109,246,54,209,189,236,117,70,12,242,248,45,168,40,131,97,18,212,52,229,89,44,185,95,192,231,63,252,135,4,248,15,223,47,62,244,12,227,251,2,26,170,206,151,111,143,131,147,255,169,28,243,252,247,239,53,132,178,146,87,200,45,52,56,224,54,77,125,158,187,74,81,92,241,18,255,22,173,127,1,204,253,77,121,73,241,247,177,146,157,255,12,20,190,191,127,123,254,223,226,202,255,248,67,243,17,65,191,111,242,15,77,68,78,181,225,157,119,80,174,230,24,45,122,250,147,162,220,162,5,185,16,248,244,115,92,41,238,86,84,48,199,65,174,203,195,64,10,183,80,240,238,151,32,15,249,13,238,219,187,19,224,177,232,215,229,72,61,139,140,70,75,149,108,198,114,203,249,175,139,139,255,180,169,184,226,226,187,51,193,180,191,70,110,167,228,159,160,151,85,240,5,7,144,232,1,119,73,69,37,18,76,208,132,233,91,216,245,201,29,93,194,27,131,69,79,127,4,8,63,253,81,33,229,95,129,26,245,110,126,137,222,49,43,131,61,113,144,8, -229,78,60,191,205,54,148,242,235,96,17,210,89,138,249,43,42,183,103,89,112,254,237,30,126,133,251,57,210,229,120,59,60,190,4,126,83,138,164,152,183,125,225,183,148,253,15,240,212,27,184,5,246,45,10,119,43,71,232,215,249,43,2,185,219,49,240,168,8,190,192,195,235,223,240,212,29,158,77,2,86,111,47,190,191,147,52,2,162,127,91,82,140,253,237,179,239,179,47,52,39,3,234,43,71,251,194,72,91,62,223,182,185,5,21,216,186,253,45,210,87,201,63,195,150,161,21,32,122,110,15,139,137,92,127,23,189,134,91,113,219,62,168,40,41,80,13,122,173,233,127,221,117,69,68,95,185,164,253,142,183,102,143,241,49,89,83,129,213,55,190,162,28,105,45,32,66,120,250,103,15,139,62,41,122,248,0,254,11,254,124,250,103,79,254,237,223,126,160,172,251,50,123,85,3,214,98,160,40,203,46,119,123,160,241,10,83,134,249,26,57,84,121,183,192,67,46,2,126,85,246,2,247,14,12,230,50,198,98,228,109,1,57,180,106,125,134,236,34,127,145,46,95,131,22,164, -121,197,197,8,245,91,187,40,206,247,45,208,89,239,185,23,137,94,29,42,172,136,16,26,63,7,174,88,241,14,139,119,238,128,230,175,68,1,155,250,193,75,183,119,106,174,175,138,223,161,92,112,145,25,105,83,163,126,155,221,43,250,1,185,210,140,71,47,82,151,99,74,209,151,119,232,194,123,198,217,143,63,134,162,204,19,191,51,5,57,4,45,188,55,149,83,224,189,39,191,251,241,95,162,99,192,79,69,247,111,153,66,218,92,64,246,79,10,56,255,237,157,125,228,241,226,221,139,217,104,249,121,103,67,119,242,211,183,46,113,21,170,19,94,200,184,179,66,229,235,130,38,102,94,167,176,125,14,251,89,229,37,176,233,2,111,148,20,221,195,129,104,92,118,91,185,253,246,127,254,125,246,72,225,142,196,192,2,239,81,70,33,161,130,141,220,203,95,174,205,221,227,190,247,224,254,147,59,12,163,190,249,182,1,162,219,205,221,163,67,186,215,89,75,68,163,235,61,152,179,23,92,39,252,0,73,226,209,187,215,217,71,239,89,229,203,138,247,175,115,219,81,189,35,245,66, -2,16,237,43,95,125,31,179,239,185,186,154,151,229,157,235,111,119,196,137,82,252,33,223,185,135,158,112,220,222,42,47,188,183,154,159,247,215,96,217,28,212,85,188,44,48,109,180,195,13,219,231,133,169,201,157,94,89,161,177,161,235,126,7,217,2,229,255,48,85,148,222,173,65,188,133,200,95,190,187,231,92,186,121,219,4,249,60,43,244,247,195,27,202,247,243,187,122,65,19,61,16,163,190,139,252,237,109,150,247,210,207,197,253,239,33,254,107,228,12,251,221,196,20,252,244,2,91,142,180,242,111,123,237,133,151,103,178,135,223,232,18,37,248,183,84,248,91,108,57,210,253,195,190,149,171,226,115,207,115,23,103,64,36,133,182,86,120,247,246,222,221,32,134,173,120,254,209,93,31,128,235,223,53,221,50,232,50,72,45,141,92,101,248,79,248,27,152,12,233,190,179,208,59,174,246,214,82,127,186,203,253,32,215,239,58,222,211,15,81,24,131,231,211,232,119,29,158,220,47,122,215,17,11,129,57,119,151,247,14,118,230,82,150,66,60,190,99,236,240,123,102,216,210,210,66, -135,126,155,80,206,50,178,51,254,18,153,144,163,92,200,193,157,141,162,205,202,252,23,48,11,173,230,121,37,30,228,110,111,125,185,52,103,170,111,49,243,79,184,10,76,233,123,122,149,21,240,121,65,143,242,237,246,102,129,246,80,39,47,40,116,145,124,13,93,14,126,171,232,110,195,241,61,61,198,10,220,235,187,136,7,111,130,189,5,164,111,9,233,22,248,144,206,14,114,119,12,91,156,15,186,191,170,4,18,44,121,145,127,14,116,143,135,151,43,176,127,200,222,9,129,217,224,187,107,254,166,32,59,206,45,8,55,244,29,171,33,157,171,255,228,82,133,216,155,91,234,31,113,32,169,184,119,87,0,247,238,127,80,200,222,189,251,247,127,56,149,252,5,242,221,158,236,25,12,200,37,1,253,242,18,108,97,121,127,199,170,238,68,22,196,172,110,247,251,206,151,137,11,103,254,75,73,57,44,178,255,99,4,222,115,7,253,110,180,251,254,56,119,167,116,251,57,60,202,184,147,157,101,15,55,110,47,61,126,144,141,45,207,209,36,227,73,110,195,48,203,200,111,229,37,72, -221,111,43,119,60,242,17,255,190,111,121,101,17,239,85,9,168,232,43,95,21,28,37,195,111,18,20,110,227,157,29,160,238,128,124,3,49,119,229,248,125,223,200,122,55,115,254,117,121,201,215,37,101,5,186,187,75,177,128,214,123,248,205,246,81,242,72,80,168,189,187,26,123,135,218,255,215,222,215,118,185,109,28,233,254,21,220,100,215,34,29,206,140,44,39,251,193,114,124,86,150,100,71,39,142,236,107,73,201,201,241,161,76,12,137,153,65,68,18,12,0,206,104,206,250,254,247,219,245,214,93,221,104,128,224,171,148,120,63,236,198,226,0,141,238,234,170,234,234,122,121,106,243,204,180,33,233,79,202,51,26,89,38,127,251,208,166,82,182,88,240,178,210,216,184,147,7,197,124,102,46,194,214,213,169,63,209,186,74,107,61,53,198,179,227,136,94,244,12,195,100,224,219,40,120,67,128,99,131,107,223,2,251,108,121,139,1,88,255,83,222,101,97,195,231,200,203,101,198,158,223,75,233,219,152,135,117,206,4,115,170,199,244,19,57,204,54,111,152,57,46,99,119,56,229,81, -133,202,121,24,199,51,55,130,232,27,185,207,245,203,54,229,209,127,175,225,59,36,71,129,127,70,106,111,196,171,187,116,245,102,229,46,242,239,41,95,27,94,81,39,139,36,0,184,24,89,56,198,179,226,110,217,119,148,37,36,38,122,3,20,106,173,21,58,245,237,107,238,210,47,76,110,38,0,39,159,175,142,158,166,211,27,247,19,235,35,182,139,150,92,186,147,76,189,135,94,44,13,127,228,230,153,204,127,57,183,191,87,33,217,108,146,87,56,230,198,195,129,220,60,112,44,168,106,147,14,223,130,225,112,242,177,108,210,204,46,238,106,11,102,130,64,215,43,249,160,35,207,77,54,53,154,86,114,29,33,99,204,150,75,219,81,6,158,6,167,107,162,154,210,96,152,124,149,60,84,87,198,192,37,68,227,84,198,174,90,47,229,191,93,200,147,194,184,182,4,60,58,227,108,214,54,97,55,78,94,217,9,251,252,16,89,52,241,132,206,151,170,26,15,193,57,229,59,228,88,128,40,177,152,54,17,109,99,22,68,251,220,159,243,249,60,120,85,164,79,37,136,166,119,96,181, -66,9,94,83,118,159,66,45,87,56,198,20,127,172,124,171,82,197,240,20,213,194,55,125,154,185,204,101,125,69,141,238,50,13,4,27,60,249,163,183,197,223,54,168,99,237,67,158,145,243,119,142,140,177,255,25,251,16,117,76,232,219,226,107,136,109,7,244,85,36,98,189,70,126,145,166,194,250,182,120,174,66,98,109,111,163,193,24,121,89,22,240,106,26,189,129,74,194,153,40,118,183,28,129,109,9,2,214,70,98,212,109,101,26,80,167,25,229,134,68,166,130,147,11,213,224,246,158,111,39,16,253,156,99,21,72,165,45,123,127,77,246,126,105,13,169,217,108,158,169,69,226,222,121,95,120,133,131,189,48,111,116,140,15,101,196,108,147,165,11,80,10,145,220,117,39,171,92,95,28,249,196,198,133,244,249,144,34,103,248,37,208,92,56,102,43,223,114,6,19,62,4,14,112,217,135,96,178,175,21,53,50,123,74,117,188,6,46,154,22,183,12,76,20,46,202,105,190,212,231,27,219,130,222,8,109,90,41,224,251,62,195,202,65,245,185,95,197,217,122,110,233,90,189,200,61, -166,158,125,237,174,2,156,4,78,41,5,97,25,144,82,84,127,41,102,232,137,13,85,213,2,127,103,1,176,33,68,190,209,146,2,214,215,232,87,117,90,214,94,242,19,100,213,217,45,117,233,62,42,203,78,179,4,188,218,98,167,210,25,79,30,72,132,25,113,167,44,149,61,218,55,158,21,222,12,34,41,157,42,122,52,121,0,15,27,123,90,82,222,212,48,129,197,183,105,32,122,188,107,40,74,18,217,114,64,54,234,187,198,197,12,148,109,135,69,83,59,62,106,144,97,178,105,64,122,60,62,84,96,253,110,26,138,30,143,15,37,201,28,253,71,179,111,196,7,36,131,228,201,92,187,146,200,42,162,75,0,150,252,250,119,253,39,83,64,219,161,244,83,55,11,72,174,241,204,24,203,148,116,171,48,215,9,91,110,135,105,100,149,74,197,131,187,144,75,216,217,108,182,190,44,106,39,146,82,46,27,81,4,144,117,251,93,118,69,14,19,167,240,204,47,28,176,68,63,141,62,213,252,165,202,251,207,176,178,39,54,192,12,255,210,99,24,67,104,101,61,97,114,49,90,33, -172,40,1,17,192,90,224,160,100,214,104,129,222,229,179,107,168,124,163,123,139,55,160,175,122,49,247,94,141,155,73,61,76,80,55,35,67,37,227,193,12,0,58,16,202,96,132,149,155,60,203,161,247,149,166,253,24,126,73,127,133,173,210,166,53,217,247,115,13,251,56,186,174,134,161,188,237,170,144,121,213,253,121,19,245,248,92,83,6,118,223,47,189,89,193,141,77,95,213,249,51,116,203,95,195,159,109,166,139,247,38,137,153,126,83,229,78,162,57,65,215,65,45,2,62,45,27,7,145,247,105,204,239,77,197,41,25,241,151,184,73,180,15,146,226,223,241,40,226,29,80,30,250,198,138,64,40,158,4,215,159,128,232,156,200,171,241,63,120,224,129,76,27,53,247,5,87,247,155,255,128,153,251,68,215,135,127,0,66,2,233,121,80,34,72,78,113,165,41,37,134,211,148,92,240,168,87,241,105,27,3,48,40,110,182,202,136,66,216,22,43,135,10,82,102,182,8,212,211,113,149,228,185,63,67,84,68,151,228,174,178,201,27,165,198,221,121,223,218,156,250,195,227,63,39,63, -253,231,195,135,103,15,31,254,247,224,225,249,195,243,71,127,248,195,48,185,45,242,217,152,127,78,126,150,255,250,239,135,156,32,46,127,25,12,199,48,198,35,190,192,122,46,16,78,13,199,216,195,92,50,153,93,50,56,159,71,121,105,173,47,198,210,219,99,114,65,226,110,115,150,240,64,71,162,113,152,47,200,149,25,236,175,31,105,87,86,197,73,132,153,173,157,193,5,134,179,87,179,150,217,92,22,197,220,206,121,240,95,191,31,122,75,224,212,120,239,239,131,161,125,2,139,85,107,75,116,255,186,236,28,231,94,110,59,89,131,116,220,226,252,126,15,37,86,23,102,43,193,112,36,178,143,207,126,49,188,10,217,172,8,222,144,202,34,221,40,104,167,42,171,20,97,33,174,210,121,197,111,200,119,115,184,59,151,11,128,70,0,54,144,44,253,253,233,194,198,230,78,148,241,54,46,164,140,84,197,244,164,141,25,9,11,6,92,41,77,59,185,53,145,216,173,80,251,120,177,187,241,185,173,27,176,44,62,110,190,110,20,76,228,237,207,147,169,123,205,9,134,228,143,72,122, -245,176,81,122,64,21,43,170,14,156,106,213,45,202,10,84,195,150,224,153,17,20,199,250,206,136,213,42,45,211,5,0,211,10,22,145,20,194,178,22,179,68,167,25,125,250,148,38,120,246,139,170,121,0,200,210,252,125,54,175,62,24,201,114,251,235,40,57,4,165,213,226,116,56,216,21,215,11,49,43,239,126,234,213,126,96,125,40,84,6,239,66,226,156,41,204,185,37,10,81,114,155,253,64,246,134,168,38,10,6,90,188,60,83,247,244,102,193,87,212,107,202,253,183,225,190,109,16,252,31,249,54,236,95,233,21,23,183,11,121,15,142,219,113,246,127,15,38,63,238,241,178,98,58,250,211,166,21,183,85,235,56,10,12,48,28,2,235,194,202,121,132,225,242,96,96,139,21,214,182,161,23,211,189,134,101,156,23,102,58,88,35,139,110,210,252,60,59,135,218,57,120,156,72,70,80,116,115,6,94,66,200,1,226,65,200,193,222,141,3,155,59,4,25,196,84,98,175,86,73,190,200,149,219,51,63,111,128,171,133,109,109,210,145,248,241,40,91,10,155,194,28,169,2,130,184, -149,12,91,85,83,97,254,228,204,194,7,57,46,6,8,43,6,170,0,25,29,121,170,196,61,118,176,221,105,151,159,214,195,238,173,87,163,246,86,193,33,11,93,38,159,104,234,199,140,187,136,62,214,166,132,71,255,75,247,235,228,143,63,195,145,110,245,50,84,135,186,225,93,225,169,197,187,110,90,89,156,119,83,5,22,229,228,65,42,254,30,87,96,4,254,15,116,240,15,160,48,125,72,170,62,66,248,203,192,218,176,213,113,182,184,5,5,208,179,189,110,32,137,36,175,105,180,79,65,86,189,157,49,207,158,253,50,158,124,10,226,120,160,125,120,89,116,154,217,144,183,29,41,134,107,6,110,220,40,3,92,206,112,44,220,184,213,50,118,176,38,155,243,239,121,176,88,247,66,180,106,201,175,40,236,105,81,54,247,56,114,41,145,144,187,112,223,129,118,210,21,228,29,90,160,158,83,126,253,133,173,246,142,130,32,41,113,26,44,33,42,130,8,63,132,91,16,65,57,209,193,211,168,226,10,229,135,179,252,125,52,59,39,58,118,110,167,149,158,8,213,45,221,158,209,148, -170,160,32,185,33,59,118,140,83,139,78,99,242,123,74,78,164,70,181,167,224,248,20,2,12,7,220,237,142,107,215,129,78,160,147,200,11,195,155,88,97,105,120,39,250,179,127,169,203,35,15,41,2,59,107,222,195,177,79,164,242,178,175,151,67,159,169,213,6,254,105,243,75,109,205,64,94,177,232,161,153,232,21,148,43,81,79,17,69,23,64,223,160,202,215,21,227,243,227,170,4,69,65,165,119,161,199,182,18,196,15,206,144,182,69,178,219,178,96,50,70,192,95,138,235,99,29,24,57,130,250,49,217,62,60,22,35,242,174,124,214,94,225,219,147,207,194,1,146,177,64,216,100,254,74,119,229,169,104,37,127,243,100,121,194,8,51,97,205,108,128,124,97,207,90,141,10,75,40,64,170,186,127,151,195,102,103,153,137,1,8,28,107,125,4,42,112,194,213,233,26,252,163,31,42,1,122,192,57,162,6,39,12,126,6,72,107,114,239,33,20,230,216,229,199,15,27,67,209,171,130,147,98,88,127,223,178,115,145,20,15,167,26,20,11,70,135,82,76,145,188,133,247,0,184,20, -163,131,170,57,148,154,47,140,139,48,156,164,147,238,82,2,106,198,55,32,186,162,160,132,116,60,92,66,38,70,51,194,7,160,120,241,42,175,183,56,64,213,20,62,14,11,50,202,52,161,13,25,238,118,211,136,84,195,156,218,140,140,172,160,167,134,174,9,169,172,222,8,100,209,83,63,107,220,223,171,43,64,164,13,232,118,68,123,50,192,44,57,142,252,87,78,1,16,245,160,98,123,114,70,246,143,86,136,32,24,228,187,171,56,118,94,104,240,90,172,79,233,35,53,34,20,122,109,238,59,129,4,201,21,173,38,7,165,4,32,78,195,133,2,232,210,143,3,195,176,146,6,125,17,28,95,42,198,14,128,94,0,138,143,222,105,2,90,2,202,238,10,112,120,83,47,243,11,57,111,184,197,77,72,62,165,134,63,34,227,90,124,145,163,31,89,132,36,47,86,186,159,58,178,141,10,103,64,250,143,67,127,55,201,215,80,222,118,221,42,168,222,80,224,50,206,169,181,119,56,255,61,47,113,77,180,154,45,24,95,118,54,122,131,75,198,135,246,0,88,240,154,131,95,222,32, -52,168,45,45,132,223,89,172,43,64,201,93,174,25,190,154,144,120,92,120,70,86,207,201,10,16,29,36,214,64,26,141,0,0,5,50,142,115,184,24,74,180,186,46,16,134,145,90,96,140,168,237,34,12,75,86,2,247,8,88,21,43,168,248,111,140,75,178,51,114,229,23,210,74,195,199,1,113,133,180,247,201,213,186,164,132,126,245,153,62,162,219,1,67,212,38,206,148,248,195,222,69,236,52,50,191,63,173,103,188,201,31,77,223,30,174,200,35,58,71,178,44,47,3,218,129,185,205,204,49,211,187,240,80,147,78,238,43,15,87,180,175,199,166,9,255,212,83,218,155,100,203,109,183,85,132,232,181,155,31,176,69,131,87,243,197,194,156,151,41,244,164,59,208,206,255,229,68,199,161,198,194,106,147,249,166,145,129,53,21,169,142,6,175,87,4,111,15,93,80,1,136,85,224,181,242,218,171,157,187,197,126,99,23,182,0,78,112,128,253,204,185,50,35,168,106,59,60,250,246,83,213,165,180,46,83,8,13,26,235,6,26,67,129,66,91,102,101,31,29,128,38,57,206,88,218, -152,134,8,71,161,10,0,180,241,19,57,51,255,114,200,67,48,68,28,219,254,250,98,205,78,205,36,1,121,160,99,27,131,175,31,136,243,25,94,226,224,199,33,36,235,93,80,116,147,40,244,182,46,86,249,212,204,238,98,114,1,243,249,46,191,156,92,84,229,116,114,161,48,56,254,35,91,78,206,214,213,219,205,64,25,125,184,175,186,177,192,124,4,150,241,17,196,94,67,122,7,113,87,53,217,200,41,66,47,239,117,132,236,58,115,66,189,59,52,155,60,97,200,60,239,254,85,102,132,239,175,90,208,122,132,240,97,167,183,225,171,201,111,97,213,26,243,101,242,5,46,108,50,128,217,79,134,111,121,157,206,149,230,249,194,220,155,125,216,175,204,86,105,190,172,213,251,230,23,76,22,70,176,179,28,174,9,101,122,125,141,110,52,141,216,18,158,127,25,246,91,6,58,161,61,72,142,55,244,241,145,143,20,70,129,74,95,104,141,13,228,2,132,231,234,198,38,69,158,136,179,3,14,113,118,19,67,184,118,109,117,132,215,113,184,15,194,234,22,148,241,152,74,241,86,210, -161,136,30,22,43,177,2,71,14,100,5,82,116,71,17,171,159,247,6,117,158,29,220,13,27,83,125,134,49,23,39,101,145,38,101,125,245,23,153,119,132,51,100,148,15,194,28,22,113,243,152,204,113,3,136,248,80,83,57,239,102,140,222,62,61,228,138,232,168,31,5,95,52,137,234,243,69,11,61,154,231,35,143,243,65,56,227,232,92,129,120,172,138,20,112,3,232,39,49,150,46,151,195,115,43,61,151,142,62,155,121,199,97,185,18,222,72,140,109,32,131,212,77,227,164,12,212,147,121,250,83,236,131,114,17,193,219,54,88,9,135,194,191,189,77,252,71,188,188,117,251,107,179,64,192,193,227,186,197,71,147,248,13,11,64,90,65,128,224,187,61,25,154,125,12,52,248,239,100,96,87,244,133,89,186,119,17,115,47,125,242,179,126,103,128,255,95,47,120,149,174,148,65,13,18,244,181,217,200,217,224,21,62,249,39,129,198,29,37,244,195,15,240,184,170,4,248,60,121,244,232,161,163,217,40,105,124,0,64,163,244,240,52,206,107,115,167,110,82,24,39,67,157,110,150,239, -146,129,130,38,134,223,32,178,77,255,28,134,40,199,78,161,55,187,113,90,139,23,90,128,94,33,170,96,221,142,122,12,31,178,192,201,230,46,49,95,81,147,41,108,243,117,117,47,61,178,140,84,216,118,37,218,200,5,105,224,174,57,130,201,235,12,88,104,139,167,155,236,145,104,60,210,45,108,49,223,17,62,127,33,24,204,136,154,156,47,11,104,8,72,168,136,182,160,153,187,53,42,207,6,1,205,224,205,183,42,26,233,236,212,132,213,140,59,214,29,55,11,106,44,100,254,2,31,30,187,123,3,246,32,94,214,37,130,115,208,23,33,27,26,250,164,101,213,204,97,187,218,108,105,252,174,107,155,22,126,254,38,21,132,168,135,49,177,33,78,60,251,165,177,53,220,65,21,187,131,227,116,71,230,191,193,173,106,22,153,191,7,156,180,122,122,238,190,19,25,26,120,240,236,23,199,63,49,144,236,19,106,41,13,195,189,163,158,106,138,45,201,21,32,24,59,241,236,55,214,177,37,20,197,202,9,232,142,91,143,220,132,117,87,37,48,64,126,181,231,198,11,196,249,73,79, -90,46,25,63,180,157,243,26,157,107,5,106,141,171,43,7,104,206,88,24,186,215,229,166,240,117,59,36,122,35,220,64,229,20,151,217,77,10,158,210,50,25,40,76,151,28,27,173,221,161,114,204,17,125,139,79,193,234,148,249,69,33,108,251,113,60,212,94,142,129,138,4,105,140,155,234,46,175,167,232,121,240,128,225,189,58,250,226,214,171,177,104,19,150,112,203,252,216,19,125,168,125,219,208,241,177,94,21,92,219,91,249,173,220,151,102,43,175,109,161,244,201,196,162,117,159,26,145,225,141,228,109,26,163,193,224,31,196,46,85,144,254,135,230,193,120,24,4,216,200,218,234,14,241,136,179,88,75,20,109,98,179,108,118,141,157,7,185,20,3,27,216,105,211,37,196,184,5,184,192,44,155,85,138,83,17,91,75,74,101,91,66,166,104,108,216,121,88,245,32,61,37,33,72,219,251,58,165,60,227,106,105,170,83,112,51,209,1,171,76,242,58,89,47,193,128,176,109,180,79,27,30,141,48,129,102,112,156,99,108,211,20,141,98,193,81,59,236,7,97,109,221,96,226,56,250, -85,69,0,117,163,10,7,115,210,171,156,140,218,233,244,237,121,17,211,154,144,234,196,101,73,41,62,180,3,149,155,87,186,151,197,215,214,234,17,71,250,23,187,51,153,27,236,240,222,20,49,2,25,125,135,0,234,202,116,89,173,82,188,84,65,146,59,128,134,43,51,78,90,175,131,43,159,251,123,190,86,111,120,13,77,205,155,210,51,122,4,185,19,228,169,151,87,141,157,145,243,165,69,190,95,9,116,220,200,117,141,54,167,26,34,27,194,84,204,244,86,101,113,139,222,21,115,235,210,211,170,49,118,238,117,170,141,238,206,15,197,234,205,234,249,251,189,55,134,199,57,124,8,136,169,71,250,20,8,80,45,64,95,172,160,187,140,33,212,114,6,220,141,81,109,4,76,199,166,58,203,154,212,59,217,32,92,115,79,88,41,240,12,103,201,228,220,130,187,182,81,219,25,52,5,175,176,195,111,242,140,205,63,189,131,27,169,249,178,176,244,220,139,201,27,212,108,84,129,240,19,172,17,123,76,236,155,98,186,174,44,114,223,158,243,243,7,139,76,243,37,226,132,204,239,185, -72,217,142,152,92,19,96,253,21,12,128,59,178,44,20,22,40,28,171,3,220,39,251,19,50,190,235,156,91,226,126,122,217,153,224,129,26,142,212,55,82,213,99,41,2,226,9,207,75,123,91,130,254,3,160,154,212,50,26,70,145,175,50,240,61,100,27,9,75,129,125,138,252,237,45,68,122,176,125,37,41,34,65,65,56,17,29,32,20,76,110,178,251,230,149,131,85,171,215,190,23,67,197,87,222,224,122,253,88,95,214,127,50,159,191,162,106,131,189,230,232,134,137,204,239,197,21,176,220,40,225,39,6,67,114,47,221,22,239,184,177,75,58,159,91,170,15,168,1,51,151,249,115,65,11,60,131,209,218,218,227,75,219,49,59,92,231,174,203,240,90,92,117,177,24,165,183,52,121,76,61,113,147,106,15,205,167,138,13,171,38,27,90,224,170,172,242,195,217,4,62,0,151,251,20,251,153,113,15,45,141,26,122,57,79,151,239,38,103,28,224,202,0,31,107,154,3,14,17,185,3,43,213,111,235,247,201,127,153,255,251,108,242,155,152,177,93,25,147,73,154,129,240,87,168,225, -113,24,98,223,215,188,124,133,131,191,77,232,127,35,84,124,168,26,206,157,114,23,190,225,166,118,76,106,72,14,211,61,237,204,250,254,179,26,187,36,49,188,254,40,4,10,108,112,167,91,210,13,210,74,131,214,64,186,47,183,187,179,57,18,67,231,112,181,125,142,194,218,33,234,175,215,182,101,102,84,38,213,228,108,158,191,203,100,239,188,78,121,29,25,85,7,186,8,200,202,78,185,95,214,36,221,180,19,241,220,61,130,187,131,118,64,1,62,168,246,185,55,122,161,187,102,119,100,75,105,108,2,130,138,162,244,219,105,198,199,59,20,94,221,164,58,11,209,114,208,60,175,112,128,108,177,154,23,247,25,68,148,225,105,152,39,40,54,197,49,131,201,111,228,161,201,111,134,206,131,175,250,47,222,229,116,83,132,204,144,20,145,107,44,162,43,196,163,236,235,15,70,80,201,70,25,163,238,199,49,186,83,91,120,12,239,159,64,211,88,251,69,235,175,162,38,140,110,70,253,245,132,224,164,184,255,125,26,246,246,51,2,115,93,166,11,179,47,215,189,56,22,254,65,45,253, -222,74,107,191,56,227,186,198,128,93,172,219,10,144,149,55,217,82,210,29,227,109,172,186,251,12,122,216,69,126,215,186,246,30,127,81,32,27,64,178,145,128,13,30,33,192,197,246,84,240,216,150,62,212,174,34,104,202,106,53,126,107,47,251,118,100,83,120,185,189,73,254,150,246,13,246,44,78,239,217,177,233,29,37,230,140,133,224,39,238,50,24,116,100,59,29,233,108,175,201,131,80,238,73,75,163,74,34,7,86,194,87,85,126,189,196,186,120,158,242,79,97,163,197,86,130,185,97,251,80,234,73,199,238,37,227,232,238,97,20,20,81,9,201,104,164,253,67,68,35,55,86,8,117,106,206,99,133,89,196,173,218,74,65,231,236,135,118,208,91,185,52,183,171,157,246,3,221,129,205,18,108,216,132,217,220,158,126,45,220,31,167,95,64,129,29,128,194,84,39,83,239,177,141,9,226,94,159,211,124,154,249,64,57,29,139,151,182,168,230,147,27,167,47,130,66,115,114,210,18,95,74,240,231,190,120,103,59,0,158,117,182,98,53,27,132,8,22,149,180,99,109,87,237,251,28, -7,255,92,67,155,151,217,166,3,33,148,106,184,160,253,36,136,136,57,13,69,207,64,212,127,89,4,10,96,63,238,130,182,112,241,61,233,187,179,90,25,246,223,31,77,61,193,225,235,58,79,201,204,179,251,184,89,95,234,119,251,104,76,61,33,221,115,212,235,230,2,185,255,235,229,108,155,51,230,149,102,251,205,214,80,158,7,41,7,91,30,66,214,138,111,233,221,171,207,230,168,29,15,42,29,195,168,51,72,209,137,142,36,245,60,17,85,183,155,160,216,227,18,99,93,141,79,110,115,36,34,28,7,137,142,237,192,211,129,54,216,173,231,45,54,246,109,22,105,197,10,104,150,12,103,185,195,89,169,48,172,133,219,231,230,86,208,118,112,236,127,116,66,151,187,67,218,57,102,249,170,39,222,216,183,121,168,50,6,9,210,120,174,74,254,1,197,168,130,8,180,4,135,155,208,84,247,132,30,40,193,15,248,230,161,186,233,211,96,70,55,46,103,247,212,158,108,201,165,144,97,239,104,97,66,106,33,125,142,1,63,162,11,149,199,94,102,2,186,206,49,42,179,137,140,65, -207,82,227,1,162,147,154,38,40,115,52,239,216,191,38,8,34,16,39,161,37,74,83,140,74,208,184,228,64,30,160,143,129,230,65,166,205,136,255,37,29,128,233,35,210,42,119,200,49,225,159,62,245,45,3,106,73,150,140,121,6,232,142,198,80,103,193,46,102,158,192,72,35,250,38,87,105,62,231,128,70,138,99,62,121,245,234,249,143,175,199,173,58,53,222,82,123,43,233,210,34,21,181,168,132,19,188,111,157,64,34,66,246,110,124,63,137,90,148,13,134,143,213,9,89,70,195,230,173,195,241,225,13,207,141,212,218,211,114,163,22,235,219,217,159,45,13,216,131,234,185,22,146,137,16,253,164,154,180,119,144,173,185,91,173,70,82,59,223,144,204,189,101,119,73,59,223,4,127,63,184,115,14,252,165,94,152,242,229,155,239,190,219,10,50,252,206,123,93,253,225,97,84,157,243,205,105,67,135,123,82,231,162,74,164,167,231,128,92,40,67,38,59,94,115,151,201,128,250,141,74,119,120,252,217,70,202,248,73,70,37,199,222,193,228,134,17,217,167,151,28,107,80,146,23,52, -66,46,22,11,4,223,34,253,5,214,8,41,84,9,120,68,175,119,74,141,33,105,193,51,79,77,157,225,232,25,184,108,29,175,196,142,194,85,49,36,243,59,51,130,56,46,45,72,180,118,234,111,43,222,157,237,228,195,123,165,71,156,222,54,134,144,182,57,146,245,126,186,54,79,240,89,46,253,52,59,223,166,120,121,218,189,197,99,11,91,35,202,236,135,147,169,99,202,82,213,95,152,98,122,15,249,143,112,207,227,141,15,46,215,245,8,171,226,121,155,71,236,185,70,137,176,34,214,240,43,5,12,32,189,98,186,157,116,93,62,167,109,133,234,99,21,39,93,216,216,223,196,216,238,168,120,210,29,121,235,225,14,255,183,17,8,79,8,200,106,206,161,175,92,94,235,182,78,218,45,127,176,203,37,36,232,164,149,127,214,228,18,33,254,53,178,117,183,2,143,49,237,175,81,133,31,146,99,65,169,250,158,201,141,28,26,59,178,127,141,204,186,187,14,134,160,239,122,113,82,163,253,3,113,39,89,232,17,19,143,29,199,204,88,200,111,2,239,147,86,213,122,65,214,163,196, -213,205,74,176,167,156,182,205,161,22,176,170,33,20,206,76,171,25,30,74,225,145,27,24,33,101,36,9,113,152,234,168,85,180,43,172,67,104,161,180,170,92,235,51,182,152,30,84,196,63,80,233,82,143,147,11,196,229,36,78,150,130,58,76,212,227,198,38,112,45,72,87,14,156,20,1,156,48,101,21,16,94,17,119,5,234,0,189,37,217,52,32,76,224,183,83,194,122,71,61,243,55,147,223,77,126,39,150,215,72,156,126,196,79,114,229,128,126,124,75,240,12,27,51,156,155,145,14,214,149,112,57,228,46,204,160,26,68,60,72,88,195,234,90,154,91,52,203,104,156,225,223,94,168,219,162,178,94,106,76,80,206,135,9,52,173,185,51,159,39,83,253,167,214,0,225,228,76,178,179,26,166,249,99,165,148,223,101,217,170,106,240,187,220,152,44,87,201,88,146,120,4,128,229,51,144,175,154,68,210,37,140,130,155,18,106,155,112,28,76,248,190,194,204,60,215,63,169,153,146,208,250,61,26,156,109,255,50,22,184,223,198,159,29,15,94,122,37,181,164,50,174,139,2,151,8, -196,193,36,21,74,38,167,188,127,236,229,11,32,129,87,134,212,82,36,12,190,78,189,70,178,212,202,123,213,220,26,9,86,148,149,93,236,85,153,101,40,62,210,8,207,226,72,83,93,178,148,211,218,252,31,61,202,136,155,127,0,56,109,90,6,101,56,92,84,7,112,169,236,28,182,221,8,27,31,182,216,213,105,233,96,169,189,74,155,32,75,169,246,182,219,47,40,243,208,115,53,42,118,207,14,183,172,88,204,126,168,158,185,67,238,145,57,57,203,150,118,244,133,109,24,4,62,19,160,126,58,125,167,202,145,23,0,240,149,154,165,96,54,99,126,133,153,82,119,41,221,65,161,62,27,251,158,7,45,137,80,151,16,54,38,102,199,35,130,246,149,191,24,164,244,44,19,140,122,214,177,211,188,156,174,23,68,162,234,49,194,111,175,161,178,46,5,0,111,155,210,197,22,16,36,90,243,176,203,104,19,102,118,155,75,95,84,219,105,23,163,251,102,59,13,227,223,67,17,165,154,186,171,172,148,25,9,47,69,244,38,106,16,151,190,9,86,94,93,167,102,190,172,37,130,108, -147,184,6,141,228,207,112,250,69,255,236,129,195,105,205,109,109,246,19,169,90,197,145,26,145,214,57,65,196,235,97,133,156,248,203,170,21,171,118,154,196,99,227,38,191,94,98,74,127,196,37,18,22,42,117,38,43,249,46,127,206,228,17,240,128,166,79,165,157,173,98,234,197,63,53,62,6,30,235,211,13,147,89,238,144,222,141,3,241,157,18,221,246,171,155,59,229,145,187,136,226,190,15,225,60,249,59,103,144,130,98,210,177,51,8,81,224,126,227,48,48,44,102,143,171,51,78,230,192,30,241,180,188,204,205,129,85,222,123,86,248,33,252,26,151,120,252,22,226,205,192,175,238,203,126,42,182,237,174,180,199,97,149,15,169,159,118,231,147,30,25,40,29,23,253,246,45,187,176,227,92,216,77,51,155,209,119,223,212,60,213,231,199,121,91,202,74,207,189,227,43,244,49,173,242,232,250,154,151,91,101,105,227,165,11,75,16,65,33,47,239,35,62,152,228,217,186,84,192,13,96,89,45,194,190,34,35,54,66,215,149,111,152,241,69,244,85,86,63,51,3,142,149,224,67,148, -197,177,134,92,22,245,61,82,207,84,82,11,32,143,252,158,141,237,148,58,35,129,117,102,117,139,190,137,114,143,94,255,46,107,205,255,57,213,51,96,117,10,172,21,198,228,107,225,166,43,44,153,93,98,172,185,155,171,77,147,112,87,211,65,45,37,112,174,43,53,84,208,205,51,51,101,48,78,129,18,181,164,27,240,213,151,175,215,211,119,104,71,66,231,2,185,178,192,163,233,117,22,189,231,178,106,178,119,235,177,104,190,198,29,160,40,181,184,236,151,250,70,183,217,93,50,43,53,129,157,82,14,98,158,189,211,45,221,8,252,226,158,75,251,198,240,190,212,94,213,55,237,9,126,221,73,151,171,240,189,109,179,250,72,21,97,242,37,251,28,172,219,5,24,163,151,195,20,38,113,246,75,252,252,211,199,104,59,113,227,239,90,183,216,173,216,69,58,63,20,176,149,236,12,123,228,255,237,183,65,173,73,177,167,75,192,60,196,86,225,145,167,247,164,87,134,208,41,182,103,79,15,242,126,33,188,230,153,167,55,97,147,79,77,162,11,202,139,22,105,177,172,183,210,150,183, -108,123,113,232,227,222,211,147,217,44,3,158,59,61,96,218,214,189,160,231,252,13,161,223,186,119,229,216,13,180,183,220,41,123,175,93,24,42,207,239,197,174,48,150,128,220,104,37,233,19,175,185,100,91,60,22,131,64,101,116,64,14,249,125,44,145,227,240,44,129,243,3,23,208,161,121,227,104,2,184,79,125,83,191,77,181,222,114,107,248,111,188,189,117,153,254,184,171,205,8,159,31,213,251,21,138,235,241,142,186,125,216,122,227,246,123,9,106,246,59,39,144,240,163,240,216,105,228,223,199,188,23,5,160,127,253,162,83,27,208,147,175,211,110,244,175,157,207,227,125,65,252,57,165,2,224,58,242,229,100,96,230,1,88,254,177,229,109,136,198,132,199,137,206,207,195,189,209,190,38,15,157,221,70,80,92,10,31,50,233,103,95,124,134,80,166,214,101,42,89,232,134,125,16,209,25,227,54,243,59,64,94,181,126,81,40,167,160,11,140,127,99,26,24,9,255,35,64,65,225,223,104,125,223,99,240,119,48,164,71,241,33,104,137,58,159,85,94,196,36,94,82,117,64,59,38, -74,109,75,225,109,51,39,89,184,152,152,60,175,1,198,77,116,44,149,196,167,4,132,165,10,64,85,151,124,197,55,63,7,50,104,136,80,67,227,227,122,122,62,60,128,90,142,10,20,61,216,33,85,49,37,221,16,173,99,26,85,27,244,77,247,30,198,165,228,127,217,170,133,173,78,165,128,15,96,143,237,160,41,229,202,106,93,129,31,157,165,214,205,57,255,82,58,224,131,89,106,255,242,140,177,135,186,235,39,206,94,175,170,46,217,165,115,218,137,111,4,251,97,89,44,49,108,219,103,198,109,125,177,226,229,144,210,196,81,52,36,86,61,70,20,163,223,128,202,252,139,0,10,243,121,94,223,143,228,119,70,144,71,176,68,44,49,41,146,238,110,183,79,54,173,140,62,235,22,199,107,235,81,199,191,133,144,54,68,115,179,68,250,123,182,193,79,237,149,70,246,191,155,160,23,205,86,64,106,129,132,2,54,11,89,228,136,134,57,132,229,6,249,5,95,157,17,192,172,156,223,195,93,161,65,90,206,212,97,246,168,111,164,104,211,94,141,212,249,201,219,158,47,175,138,176, -255,103,108,175,247,222,230,109,194,100,175,178,146,64,199,218,64,245,4,174,43,75,23,8,215,101,254,183,37,88,22,69,103,42,5,210,12,108,105,69,129,100,69,29,26,20,170,146,46,96,74,6,11,243,71,118,65,65,231,75,0,55,171,125,12,178,97,143,42,188,192,196,183,243,25,84,195,49,231,161,65,155,136,213,186,92,21,21,39,240,168,202,83,70,194,100,228,216,186,40,85,141,17,182,226,188,94,151,54,129,19,163,101,24,91,154,17,190,54,164,106,201,69,147,251,202,178,222,213,169,159,46,145,237,125,205,185,89,175,195,57,44,177,59,234,170,204,166,156,171,145,92,165,183,5,234,120,187,164,87,212,228,162,21,36,44,114,83,52,83,229,107,34,109,172,235,31,200,27,45,204,142,54,33,127,199,187,164,21,23,144,236,21,240,95,19,98,176,49,73,106,93,194,95,253,68,161,14,110,197,179,50,218,191,20,215,170,206,27,212,149,196,108,98,85,148,242,216,174,92,121,60,118,164,221,221,77,185,212,146,3,189,159,219,99,171,204,244,127,116,191,214,146,47,143,28, -195,179,125,155,132,211,246,121,166,11,193,66,229,125,107,11,195,71,178,128,164,79,206,83,37,188,179,70,11,152,226,110,105,14,189,155,124,37,124,38,240,224,60,38,103,18,72,46,46,108,50,66,12,50,30,102,152,192,139,124,0,167,29,120,246,147,85,1,136,202,37,157,115,18,211,103,135,32,57,107,196,102,145,35,87,160,215,232,37,76,161,141,76,202,8,205,45,214,130,204,11,234,115,96,241,216,147,193,218,216,165,115,37,49,8,0,191,174,169,7,175,152,163,144,11,43,88,237,144,98,126,109,150,117,155,167,22,117,65,224,1,28,99,13,49,119,224,42,133,244,125,44,182,229,223,109,22,18,206,172,226,198,184,210,36,150,162,130,211,98,133,135,123,138,185,177,56,16,246,230,193,252,78,249,35,143,87,9,197,211,4,123,138,99,54,241,170,4,40,216,41,89,113,0,70,205,62,209,37,158,216,149,145,41,108,72,0,77,127,48,225,223,152,197,198,28,176,35,162,231,10,127,195,236,211,210,16,207,220,245,231,41,98,252,16,192,129,51,34,40,179,58,67,56,79,219, -54,136,255,199,76,124,33,51,199,252,159,187,98,61,159,145,6,160,4,122,232,11,145,94,101,156,4,184,94,168,20,68,217,67,94,31,90,49,235,229,220,236,155,191,91,118,166,130,199,141,215,254,145,74,4,110,75,114,73,24,235,219,236,50,62,12,182,21,117,12,72,9,196,40,169,140,178,29,142,160,74,148,57,81,81,250,46,175,178,128,210,228,141,6,32,8,56,10,233,169,44,47,103,9,122,1,209,108,75,184,7,147,159,196,203,57,184,139,244,29,166,2,79,203,44,91,86,55,133,153,15,246,244,74,87,55,152,204,153,189,167,78,194,54,145,89,60,149,184,64,143,250,27,60,55,182,51,82,228,217,127,244,240,242,168,199,225,122,39,178,65,57,199,155,205,190,189,117,29,166,156,236,163,195,13,1,118,211,226,211,34,146,121,213,1,243,23,168,34,223,213,22,104,221,128,178,48,199,254,219,6,19,59,144,123,206,159,115,15,51,254,195,239,231,49,182,165,213,15,186,43,169,219,111,80,252,62,207,170,135,221,90,227,127,98,68,100,132,255,79,242,6,141,213,58,138, -161,153,111,200,41,68,163,40,158,146,120,90,139,168,125,178,186,183,223,50,187,131,52,183,232,215,188,254,240,159,39,130,236,202,227,64,211,140,102,243,8,93,167,167,210,37,185,132,84,82,242,10,193,236,130,194,145,121,166,197,55,121,73,45,239,0,57,223,134,123,244,189,60,200,14,108,142,106,219,126,184,81,171,104,255,144,35,234,114,38,43,223,202,20,33,92,138,109,83,117,69,198,17,134,135,199,41,249,210,216,107,72,13,182,230,236,143,52,161,199,80,52,131,176,240,35,245,39,126,30,38,11,21,48,217,114,99,75,119,158,63,201,143,32,246,238,147,213,248,26,122,12,61,189,247,159,217,156,209,136,157,137,184,43,145,135,190,55,48,54,142,242,128,230,183,249,12,76,47,172,99,164,231,43,11,59,175,122,1,119,104,111,190,230,225,167,224,110,150,191,207,230,251,230,60,154,133,127,103,102,180,99,62,80,64,173,54,98,125,135,73,183,218,152,195,22,54,26,211,154,81,93,47,204,144,230,93,202,110,171,51,32,34,20,163,217,119,204,3,229,24,201,70,206,47,66, -57,130,21,252,125,80,14,147,47,141,196,223,27,253,97,52,136,254,121,242,59,249,231,211,123,248,247,87,230,43,209,96,234,189,33,179,109,126,132,244,213,147,49,211,164,244,225,246,61,106,41,217,5,132,234,67,39,67,66,172,24,186,167,197,66,19,27,217,86,43,7,97,210,57,20,5,98,67,54,173,61,84,38,46,180,80,64,101,1,207,24,203,121,101,68,21,107,145,107,247,62,44,26,242,33,41,65,92,92,156,128,222,213,225,112,140,166,84,210,77,112,158,221,166,75,113,76,104,97,223,131,98,63,58,131,240,80,228,34,197,252,241,209,106,3,138,217,15,112,11,103,167,58,254,247,102,226,53,211,162,163,196,139,79,222,136,43,126,102,224,51,239,192,92,188,212,230,12,134,12,89,198,243,215,136,236,207,176,178,94,154,233,98,253,102,93,230,102,225,97,94,251,150,78,34,47,155,125,59,115,180,195,19,227,178,115,177,193,151,207,33,232,98,5,83,4,42,102,192,40,45,243,133,87,50,45,69,204,202,137,193,48,134,174,78,30,237,64,199,14,114,202,248,37,189,105, -133,134,204,12,74,93,175,174,192,68,17,127,30,122,51,176,70,66,215,54,32,160,35,134,207,215,211,26,235,168,32,96,104,254,124,207,253,149,90,154,77,3,67,199,208,143,183,220,139,191,230,37,220,243,79,181,37,126,67,4,15,240,64,90,16,165,239,176,133,243,178,202,84,69,180,164,230,152,51,233,169,32,48,16,158,37,252,2,251,2,255,246,108,2,112,183,192,17,86,220,45,93,177,70,0,15,55,43,178,10,29,69,171,155,251,138,235,159,193,207,10,7,79,163,90,135,89,164,90,165,28,84,194,200,21,205,215,125,214,140,118,147,47,223,65,103,132,26,61,30,102,14,211,49,17,96,80,115,0,3,45,180,53,244,72,117,46,51,185,43,253,0,254,22,243,60,116,32,201,70,248,51,87,6,93,184,14,120,224,0,74,175,165,254,217,139,41,250,181,240,126,161,141,45,154,78,9,149,203,141,119,53,79,175,93,86,159,226,110,234,150,103,104,249,46,91,217,154,36,212,166,228,106,67,138,150,4,233,233,156,57,206,149,195,230,62,154,225,234,115,210,244,164,138,112,194, -200,200,196,52,181,56,51,16,229,171,124,77,142,173,177,96,172,108,134,173,224,168,61,32,21,239,184,136,52,187,220,230,82,135,100,69,51,97,201,212,190,205,128,20,93,162,55,121,112,75,82,99,54,217,103,241,3,152,25,59,86,250,116,106,63,235,50,69,254,43,213,107,139,244,125,190,112,182,179,27,101,242,160,204,112,129,190,126,36,54,246,155,220,136,70,55,252,9,48,141,23,9,183,32,161,136,173,138,128,104,186,89,245,197,163,193,96,129,58,26,158,39,95,131,95,56,155,190,19,13,236,243,175,213,172,244,37,215,73,37,75,171,220,72,242,149,64,62,140,168,157,251,253,200,243,163,62,133,205,72,148,3,224,11,151,18,200,121,240,147,255,145,71,207,126,57,251,133,8,7,52,27,240,66,112,5,35,157,123,136,111,15,31,203,107,147,255,23,56,15,155,231,244,203,142,157,219,67,183,63,157,103,105,172,117,24,254,174,21,86,11,148,135,69,233,227,165,170,29,51,98,243,112,175,32,244,77,169,91,144,171,182,102,248,135,8,148,9,89,109,249,121,118,14,21,138, -44,208,10,154,147,175,208,139,124,137,220,92,66,128,24,98,36,139,108,81,64,49,51,168,236,158,96,179,136,17,196,102,218,95,181,139,35,42,174,59,221,228,130,36,68,231,109,217,240,218,14,21,33,116,235,79,93,47,15,36,29,6,21,219,128,92,250,100,40,186,235,86,236,225,240,105,54,157,189,42,170,118,121,176,83,118,78,145,205,147,254,248,247,246,184,133,114,187,236,51,85,225,82,28,203,97,71,185,188,51,76,187,198,19,148,59,81,112,204,49,203,75,85,54,23,61,41,183,227,151,157,138,242,254,197,217,100,103,89,86,141,66,60,154,49,37,92,25,52,181,173,84,77,211,59,128,191,205,50,240,154,72,13,211,205,13,49,207,33,97,230,111,1,24,145,27,252,50,147,98,103,176,192,106,109,83,107,243,98,242,192,216,75,230,180,167,169,15,180,41,106,87,35,81,232,140,230,235,23,80,179,210,95,21,208,120,45,71,251,156,62,26,177,117,67,136,34,158,52,152,163,216,71,245,142,65,233,255,207,139,74,22,58,30,6,147,223,10,109,254,64,122,174,77,100,221, -50,78,200,182,167,80,83,39,98,225,217,176,189,73,192,49,212,205,113,247,235,251,50,191,6,190,58,153,186,153,60,40,248,147,86,128,247,217,184,80,151,64,122,82,8,107,166,147,158,124,53,82,204,103,118,22,220,63,2,174,231,14,8,162,46,138,119,201,106,46,118,222,201,77,146,15,186,249,199,21,218,8,35,12,64,43,143,84,179,137,123,217,70,155,199,131,73,102,70,79,239,195,52,255,62,210,171,186,120,108,113,169,247,206,72,5,225,2,168,47,170,153,196,6,173,216,221,148,194,35,13,81,244,183,15,79,203,213,187,17,71,152,178,63,149,24,103,199,42,141,14,195,197,163,10,164,69,194,248,58,163,18,180,152,167,189,208,78,105,23,136,74,4,162,123,179,132,36,71,217,180,45,93,195,59,185,131,119,76,89,216,17,69,94,49,157,207,111,65,6,231,109,135,147,250,163,191,34,171,247,110,237,222,75,31,50,157,59,32,89,3,31,193,150,31,9,131,253,67,237,119,223,124,145,189,238,184,31,253,62,159,92,70,255,2,253,253,242,172,231,190,109,107,109,42,213, -159,47,22,230,15,105,13,137,179,162,175,221,55,197,37,187,130,2,176,18,30,11,110,169,123,155,156,29,91,127,232,141,254,248,36,115,247,93,198,147,180,184,205,202,121,145,2,86,168,20,142,89,148,188,38,156,42,36,40,147,59,203,15,228,111,168,179,220,94,100,143,97,48,69,211,79,250,221,0,203,48,15,163,175,215,89,101,128,238,113,207,247,16,135,40,239,172,114,40,199,24,208,229,38,68,11,35,102,104,165,85,80,254,150,87,55,102,95,41,4,28,109,162,197,85,156,127,115,89,233,148,61,194,205,31,57,250,155,212,247,43,184,181,96,124,210,102,170,123,205,6,192,219,25,122,131,48,192,171,205,66,26,113,156,216,142,71,4,172,45,115,226,246,175,156,198,232,55,50,216,96,106,178,249,10,171,207,102,1,128,75,227,19,54,167,209,159,126,203,71,92,235,3,140,117,37,99,208,90,82,213,36,19,192,152,180,194,81,227,33,63,92,254,180,71,150,190,184,45,81,5,212,16,34,108,218,144,245,233,144,119,218,52,247,14,201,145,22,159,170,114,139,247,75,181,161, -32,78,89,101,37,22,176,65,26,116,153,165,149,145,209,145,183,207,151,176,249,228,204,135,140,7,43,74,110,164,201,23,95,124,131,53,112,2,40,74,113,128,105,58,189,193,131,204,34,124,2,55,178,94,118,197,71,156,222,110,81,137,205,84,242,213,122,46,48,196,216,253,148,244,52,14,168,18,108,228,99,93,8,55,46,94,235,1,220,248,184,79,16,227,124,10,131,79,6,128,108,227,254,141,57,35,102,161,102,207,246,252,198,139,165,161,103,110,140,196,140,63,196,40,58,193,239,81,23,228,105,36,200,17,27,146,31,48,75,9,255,212,243,100,50,123,88,148,114,52,225,63,252,115,224,203,200,209,223,122,144,125,165,133,240,199,44,157,53,243,2,123,122,50,183,59,140,72,247,209,236,147,86,189,71,137,89,94,220,139,185,154,100,16,141,13,216,88,99,252,129,171,106,36,242,162,49,132,108,40,3,190,108,91,139,208,61,223,33,198,55,155,226,218,55,121,6,150,203,250,222,50,55,21,162,72,202,149,191,80,94,125,184,206,143,228,254,216,215,224,36,38,13,248,51,202, -154,193,161,240,85,95,179,116,102,53,49,208,218,232,76,155,16,233,49,141,177,92,152,162,102,163,249,191,184,115,16,147,216,117,73,52,86,196,109,60,52,177,133,86,184,13,182,214,125,93,221,23,35,185,29,251,237,241,147,153,106,19,31,32,100,47,147,108,177,170,41,119,188,245,251,205,176,157,216,233,152,52,196,29,154,24,105,195,214,163,182,116,23,190,50,231,24,85,185,10,234,245,117,182,204,74,56,105,46,36,89,21,159,75,141,193,36,20,130,91,32,53,24,200,241,147,68,231,234,60,249,83,113,103,30,47,81,184,43,43,32,112,240,97,30,34,214,151,204,200,133,8,115,250,246,205,11,217,39,40,2,46,104,1,22,130,27,114,104,102,5,85,54,154,83,251,94,41,0,32,34,63,134,185,203,144,182,180,204,28,22,19,102,98,169,22,8,141,20,44,124,16,18,73,17,39,100,185,134,50,90,90,100,229,119,42,89,0,15,223,251,55,29,172,128,129,67,25,203,59,247,201,227,241,152,225,35,146,92,5,216,142,181,15,68,81,115,229,136,181,5,19,15,207,235,155, -14,188,4,154,165,195,75,144,19,197,201,52,159,45,149,62,89,168,42,95,112,66,108,99,246,76,54,88,146,210,201,240,111,115,44,222,114,214,225,225,229,247,64,183,251,201,79,7,115,20,76,198,231,231,231,27,246,241,178,168,235,98,209,189,149,220,174,133,210,30,225,70,150,149,140,218,227,186,220,15,68,87,204,130,6,72,206,30,53,178,250,252,253,202,72,178,17,215,116,90,22,67,174,132,169,49,231,215,235,151,225,50,39,211,242,122,13,41,138,208,1,10,74,224,228,159,168,73,90,152,33,110,124,104,29,32,225,176,29,247,157,149,211,126,199,179,221,24,26,77,239,141,121,217,211,248,156,120,250,4,241,52,92,38,145,91,246,140,99,30,80,129,49,102,129,17,33,108,57,11,108,178,54,234,211,199,210,16,42,174,57,165,207,77,67,91,26,22,185,205,37,106,20,168,203,25,60,232,171,198,13,39,244,170,168,114,151,138,26,249,248,135,222,179,143,202,164,234,224,27,206,217,119,126,63,161,44,49,69,149,153,57,207,156,190,29,145,17,53,210,205,236,186,101,170,109, -131,14,98,135,37,183,72,45,101,135,109,53,169,67,88,223,63,102,208,56,228,80,18,78,163,85,106,118,90,209,10,217,98,118,220,147,234,29,79,37,102,197,41,128,46,193,26,66,115,228,238,198,152,67,224,224,32,96,27,193,223,97,220,154,234,6,1,46,86,197,42,89,175,146,12,139,11,48,40,91,223,16,240,14,118,133,195,3,183,196,111,39,52,71,109,210,185,174,72,20,136,229,46,112,204,126,202,152,131,205,198,81,210,249,99,153,182,172,72,70,32,252,217,82,17,9,82,142,179,74,52,142,57,100,160,67,61,97,121,176,159,4,226,194,102,5,232,220,52,171,64,0,143,230,90,251,176,163,95,138,70,10,142,230,66,252,211,168,208,221,234,22,119,151,174,222,172,34,70,254,243,247,58,50,162,114,236,108,219,51,0,172,202,208,73,107,126,30,113,145,5,161,145,152,201,193,239,121,109,150,190,87,234,184,153,221,179,226,110,185,245,252,174,10,128,79,218,48,55,0,167,217,107,118,197,6,125,221,165,120,61,239,210,247,229,44,51,74,88,23,39,224,79,45,81,149, -194,251,155,139,121,34,172,137,83,175,84,203,163,75,129,69,219,226,0,240,155,217,195,25,120,24,51,123,24,55,231,32,162,43,23,48,202,198,8,7,120,44,238,73,80,2,41,104,71,240,117,176,40,115,41,133,249,43,128,6,80,238,38,72,42,190,99,100,162,170,149,109,61,176,250,117,75,15,14,106,129,33,156,17,140,111,147,114,175,144,224,52,137,9,29,145,244,236,151,99,178,67,155,66,6,32,154,93,253,203,186,142,111,235,195,255,104,60,152,38,0,177,163,65,29,185,157,149,110,75,17,97,194,200,198,32,113,58,20,34,113,143,181,251,202,58,234,82,5,50,233,174,70,40,26,116,97,131,119,178,89,7,75,196,249,221,250,189,65,110,88,66,152,219,47,51,139,247,132,24,67,113,169,194,170,27,122,1,98,154,37,20,170,241,249,227,137,144,120,14,94,171,51,45,42,86,201,120,123,177,106,243,106,17,64,199,148,240,240,182,17,171,147,200,206,192,235,114,62,45,22,0,65,229,120,177,135,42,38,115,247,75,180,104,193,144,189,253,172,143,240,52,222,122,52,220, -66,249,90,62,98,77,42,245,21,4,102,133,190,199,8,155,65,61,41,47,208,93,117,17,232,140,77,206,75,48,127,174,231,197,165,185,229,4,193,64,134,201,236,163,115,193,190,254,204,24,216,169,195,237,89,86,121,37,16,134,17,133,203,193,160,152,210,173,35,38,60,90,240,143,198,134,13,67,154,204,178,10,171,183,100,241,241,118,108,76,131,54,113,124,156,252,236,167,120,248,68,218,238,0,34,98,244,89,212,128,86,53,108,238,116,184,170,211,73,135,54,245,183,201,207,59,128,84,129,96,244,151,38,121,250,209,240,231,201,31,127,126,85,207,240,151,167,244,225,45,5,171,237,72,177,53,206,158,150,227,200,125,188,189,234,223,4,74,36,123,15,225,215,28,146,149,173,136,218,88,80,48,221,177,199,122,26,156,72,252,209,68,208,188,2,156,209,174,3,175,103,171,85,111,61,182,85,34,28,102,102,253,27,5,136,159,211,116,226,233,127,145,252,218,228,104,223,20,169,255,21,34,191,247,236,7,23,160,56,84,254,175,85,96,146,195,73,76,43,59,69,38,65,123,214,193, -75,180,248,120,239,170,86,196,111,248,176,77,150,87,120,69,77,112,63,74,247,129,231,25,223,15,5,199,122,51,209,8,223,26,155,218,13,186,211,113,60,245,83,144,118,139,163,240,61,205,253,247,46,23,180,75,105,255,71,121,122,224,211,75,24,51,150,118,64,218,217,215,116,133,129,183,28,78,7,109,31,163,252,113,194,137,205,100,114,41,121,40,100,3,7,165,159,129,162,64,252,155,197,37,192,126,241,253,112,129,88,34,192,0,25,99,223,58,112,165,40,104,35,76,134,97,97,104,107,3,164,198,158,217,11,110,152,163,216,86,26,64,209,123,17,26,132,100,216,62,216,253,217,168,110,4,238,107,230,175,79,126,195,170,103,242,27,155,28,102,52,1,165,114,61,43,28,71,178,244,72,190,130,208,223,236,180,247,212,38,250,190,46,174,175,231,89,72,226,237,136,27,142,177,47,125,29,85,242,69,62,79,75,6,137,118,31,96,112,97,175,83,43,228,132,206,169,193,181,161,201,72,145,29,33,95,40,98,72,204,251,56,65,0,106,4,176,137,60,198,25,22,184,65,201,0, -239,63,41,229,132,216,71,97,143,54,243,174,222,8,72,85,219,138,168,250,229,30,42,25,82,87,248,204,82,108,195,147,39,28,105,157,221,2,73,241,128,166,195,177,72,66,188,223,3,28,94,229,224,53,231,234,146,230,104,198,119,55,197,156,111,186,184,35,148,41,56,182,61,203,221,111,8,224,99,161,204,33,3,66,69,27,218,210,25,165,22,139,2,52,22,234,136,232,68,88,225,24,149,184,138,167,83,146,65,131,135,54,33,206,8,56,213,167,94,166,161,160,210,192,159,105,174,70,123,98,28,26,66,161,139,180,124,71,38,77,113,89,153,213,214,153,197,201,81,41,157,220,223,61,152,254,93,110,134,4,189,73,109,80,2,148,164,136,10,78,185,151,8,38,1,34,4,16,3,164,12,214,21,227,145,187,196,22,108,5,0,232,113,0,68,53,30,238,23,118,246,147,33,119,18,251,88,28,209,177,139,206,206,98,94,141,240,77,103,98,236,110,140,3,143,42,230,81,108,163,209,178,82,154,66,216,228,3,118,223,159,187,212,47,34,163,40,174,120,44,177,171,84,144,158,164, -83,67,108,179,233,227,42,241,196,110,176,74,213,181,123,43,40,99,22,170,93,164,127,189,178,177,37,191,210,69,82,228,21,139,90,204,125,155,223,144,94,131,143,80,103,99,161,22,66,64,121,12,253,83,15,122,137,250,219,212,197,141,161,87,13,78,72,133,254,12,85,212,68,69,219,152,228,186,17,137,235,21,142,186,63,30,151,0,149,217,88,20,239,2,85,46,180,231,109,198,70,200,192,170,174,224,200,161,253,129,120,23,176,251,228,167,135,201,249,185,74,71,157,140,199,61,218,54,122,144,206,13,26,188,168,94,9,97,123,18,224,41,96,117,169,96,238,82,238,149,101,102,23,113,158,60,143,212,189,42,98,15,0,51,246,97,87,245,171,189,59,1,230,52,128,207,225,209,94,155,27,18,224,195,65,59,6,77,243,17,124,2,143,106,255,133,165,121,112,191,86,74,115,175,65,217,78,42,109,59,67,209,44,203,179,16,3,192,237,57,138,225,69,178,94,86,252,223,74,193,236,155,231,0,223,246,73,159,206,108,122,13,71,92,241,122,96,165,49,32,60,71,230,177,112,26, -110,16,246,185,143,114,15,246,8,176,29,101,251,72,214,183,206,14,240,131,97,56,172,250,194,86,145,177,62,111,55,153,132,223,226,211,164,10,120,66,134,178,127,63,148,206,202,2,156,139,195,86,23,132,122,78,155,32,149,210,116,96,117,160,154,175,108,6,8,230,122,250,88,152,197,74,192,8,172,175,195,213,11,32,252,161,148,26,48,182,13,53,53,206,183,75,33,71,191,9,14,134,94,46,45,124,155,181,108,3,115,211,219,69,66,88,162,63,5,27,216,188,242,224,14,241,29,18,137,250,197,110,155,124,204,253,37,60,105,58,38,220,62,241,161,123,151,207,174,225,250,104,107,248,32,210,106,110,154,178,11,248,25,159,90,238,50,25,190,196,105,42,116,126,121,35,236,123,213,106,156,221,113,12,200,134,214,134,214,77,86,255,64,144,79,29,165,85,227,50,176,195,222,17,23,239,102,81,168,204,158,188,106,26,83,157,208,26,34,61,63,127,101,84,111,167,125,177,249,64,106,81,241,132,110,237,173,111,223,171,142,117,251,200,70,53,170,220,109,128,182,95,169,59,157,8, -211,98,177,200,107,215,44,67,76,165,26,70,132,115,122,166,105,205,186,136,147,54,85,181,173,123,85,53,226,160,177,91,113,225,156,234,160,18,9,78,234,165,228,45,253,85,169,252,62,80,29,148,214,103,252,5,128,103,190,204,100,197,78,171,81,226,4,234,53,66,141,163,37,213,114,67,94,149,217,109,94,172,43,139,70,71,86,77,154,155,219,120,91,91,235,62,220,243,103,115,175,15,217,71,213,35,221,250,185,109,233,157,217,116,191,103,213,233,88,162,253,227,167,231,139,29,246,58,54,127,125,170,29,117,255,219,21,55,248,38,218,57,128,254,92,41,212,51,149,3,74,136,140,14,77,139,38,70,41,248,146,24,185,72,103,214,161,167,1,236,201,29,200,16,246,120,91,43,179,127,144,13,179,255,61,122,43,125,175,175,208,77,141,55,210,157,61,150,93,151,103,175,90,86,193,65,82,45,62,140,226,56,131,49,34,53,240,242,30,123,248,109,241,117,118,157,199,78,221,134,0,179,90,117,54,186,158,66,50,104,28,98,246,112,129,128,215,94,126,185,111,139,231,203,88,33, -95,219,20,17,120,221,169,148,174,169,41,12,237,201,89,242,89,100,162,59,243,208,171,233,14,92,196,221,183,93,167,153,160,98,67,113,135,116,79,12,111,180,208,188,208,75,183,27,193,78,233,160,21,70,190,129,12,83,230,246,145,180,118,88,219,176,175,253,112,152,158,124,99,212,6,118,128,213,169,173,216,232,138,231,30,78,57,112,36,209,190,224,36,219,5,2,252,249,203,58,187,198,100,51,232,71,127,105,147,104,119,160,140,251,228,62,151,247,233,30,166,82,218,52,149,60,28,25,179,196,98,62,191,76,75,183,172,170,72,108,23,204,166,110,1,215,46,90,197,170,6,165,73,154,118,66,32,88,253,172,16,170,186,124,243,10,42,3,192,231,76,8,114,212,177,183,250,194,179,74,13,103,243,65,219,202,39,252,119,159,201,4,240,62,157,222,96,169,171,60,158,89,212,156,38,119,81,59,78,100,44,247,84,39,55,41,187,43,221,155,149,6,245,253,74,58,109,136,151,212,214,204,95,194,143,114,186,218,246,175,1,165,246,58,97,51,0,175,232,176,177,14,194,66,76,202, -69,62,155,205,51,63,227,217,18,118,103,161,129,73,189,88,214,197,78,98,3,29,209,98,146,115,219,88,51,39,4,144,79,213,16,160,202,33,128,148,46,176,3,64,206,73,65,88,99,156,190,203,84,178,144,59,37,12,147,229,62,56,79,248,132,138,200,242,195,129,109,8,86,32,28,206,55,146,231,21,176,35,46,167,205,225,225,209,157,93,96,56,89,254,214,65,118,161,135,185,190,15,77,21,115,89,114,182,94,114,221,172,52,18,178,205,141,217,43,24,130,67,239,97,196,89,213,208,148,170,142,83,235,7,108,11,23,106,147,230,88,231,201,15,242,204,67,118,166,240,131,80,225,181,34,228,113,248,15,21,105,179,248,28,87,107,80,70,76,222,189,204,42,162,210,235,221,68,179,138,116,82,114,76,100,215,204,77,59,44,21,85,17,79,131,160,218,51,59,109,37,167,162,226,235,27,43,29,241,130,13,182,106,44,134,144,217,247,105,182,226,78,209,192,222,169,237,213,82,213,233,244,157,237,185,70,110,100,180,147,240,146,105,246,34,157,231,215,8,148,194,40,171,230,39,217, -96,232,22,13,183,64,87,154,245,211,5,44,129,251,48,38,235,213,93,90,206,42,47,233,107,15,6,255,38,95,182,250,139,189,244,171,224,213,62,200,55,45,69,177,251,181,254,128,232,129,250,243,195,45,70,133,59,111,247,235,109,98,29,225,42,15,244,110,14,16,220,224,101,240,48,101,116,62,223,129,146,155,49,24,145,150,211,155,200,120,145,234,32,207,5,110,184,178,172,57,131,18,134,192,23,250,221,35,253,25,45,210,26,209,176,154,215,210,127,125,102,220,29,79,252,72,172,167,155,154,162,17,73,133,99,112,252,167,165,236,228,37,220,187,169,136,201,6,148,64,111,32,75,128,222,21,244,134,144,159,24,229,83,18,132,209,12,53,239,153,181,81,44,6,123,184,153,135,198,136,214,66,93,82,197,126,193,238,162,45,30,45,80,116,141,200,156,202,134,102,22,106,121,219,240,84,27,28,200,158,34,183,29,22,237,199,39,81,219,184,84,65,154,250,57,229,247,5,54,117,232,252,59,67,95,183,9,71,143,1,187,100,203,217,19,167,151,35,144,129,64,165,131,104,229,219, -137,150,246,48,97,108,77,50,223,60,224,22,4,60,186,245,12,103,224,79,59,104,84,156,210,249,255,158,97,255,78,18,119,208,226,157,143,85,170,118,56,157,62,114,17,250,160,103,82,144,80,102,43,102,208,209,154,50,25,147,129,228,231,50,97,170,172,30,198,98,70,97,166,162,252,239,27,0,42,65,240,212,171,212,44,51,163,78,150,97,202,203,86,247,205,122,246,117,26,145,49,148,1,243,151,183,137,254,179,47,61,230,219,235,38,43,191,190,113,165,58,116,111,3,31,225,28,159,62,247,254,234,126,151,202,96,155,64,107,168,191,156,153,251,153,10,84,165,2,186,69,152,123,32,6,23,232,46,163,108,249,139,100,182,102,100,91,196,3,32,140,14,110,160,193,255,196,252,49,245,111,255,95,156,71,196,189,96,171,97,114,149,207,13,165,93,77,53,173,134,33,105,192,197,151,45,1,95,154,62,158,87,252,223,120,251,76,75,116,63,126,251,230,133,221,36,192,142,206,22,140,24,8,11,50,47,153,191,225,127,102,245,244,124,232,90,4,32,131,34,117,169,80,204,48,8, -236,130,64,2,148,217,170,204,42,224,109,11,122,107,72,72,209,59,139,72,214,255,94,187,41,219,66,80,44,219,110,20,7,105,27,197,89,26,169,175,184,252,222,195,65,172,20,82,138,41,42,217,171,228,117,203,248,62,7,56,205,36,84,216,119,198,229,134,97,58,168,76,23,253,182,100,175,112,103,25,195,200,117,143,235,220,158,123,112,248,238,77,219,237,135,115,144,110,218,149,157,122,47,133,251,226,13,208,177,61,46,9,99,159,124,28,56,8,158,155,117,238,228,146,83,90,119,163,17,240,189,209,101,109,113,107,157,123,225,154,235,94,21,211,181,3,223,54,10,101,60,57,171,111,164,4,47,66,255,217,78,48,208,154,254,78,33,155,35,29,26,143,147,239,147,64,202,130,196,190,32,5,194,115,153,230,75,66,197,74,103,223,47,231,247,99,216,61,44,34,224,150,231,203,130,190,132,37,39,4,92,223,35,27,125,147,15,26,182,49,218,1,161,151,31,154,104,213,146,37,209,207,120,246,194,10,222,128,210,8,147,19,11,250,89,208,29,133,93,62,199,110,205,99,251,248, -176,45,144,237,46,2,51,245,141,126,59,113,76,137,160,153,195,169,234,142,81,172,77,82,0,159,97,215,143,40,242,7,125,196,223,27,27,202,116,56,127,123,2,234,9,33,190,198,118,131,145,221,232,185,168,75,101,79,75,107,178,67,108,208,19,232,8,176,243,180,46,179,57,68,196,14,57,173,39,104,206,237,78,168,6,76,111,223,30,232,173,218,255,89,17,162,34,218,57,253,64,197,96,118,86,214,208,32,228,191,176,157,92,180,183,80,11,218,161,43,16,181,170,87,110,14,136,85,56,229,52,46,210,34,13,4,192,94,233,113,193,198,73,14,19,213,88,116,233,179,48,171,219,30,192,252,170,119,48,4,182,18,77,31,222,160,37,112,70,160,2,76,220,139,127,158,241,21,32,182,93,246,111,85,99,233,64,142,2,21,163,57,125,14,166,4,41,125,250,137,139,121,234,208,46,21,239,205,231,202,116,74,85,222,255,30,28,251,100,10,225,180,231,203,184,104,91,166,133,111,47,51,216,39,192,30,6,161,146,11,150,31,20,182,39,55,238,220,10,187,120,219,206,72,244,21, -105,32,217,149,69,136,238,2,74,129,204,16,217,124,100,141,73,35,52,64,119,184,37,167,2,88,140,122,0,116,50,148,22,170,162,214,151,162,185,72,81,120,18,195,93,154,9,111,106,38,208,153,54,75,0,49,144,125,168,88,222,118,134,237,176,150,77,255,186,49,143,139,172,28,120,134,145,93,116,159,123,254,203,2,76,97,62,134,192,157,114,153,26,43,60,180,123,30,122,93,54,158,242,99,108,252,203,63,91,236,32,84,61,223,101,87,245,83,35,12,239,220,157,157,189,57,240,166,242,236,88,100,17,167,121,224,181,74,65,122,101,243,121,35,57,224,32,19,124,86,172,141,241,183,253,12,103,248,222,30,243,252,44,152,232,103,254,76,191,52,87,241,201,39,95,249,19,134,235,249,54,51,37,215,7,77,13,111,239,192,60,84,115,91,102,246,14,143,9,97,82,80,91,123,227,98,204,94,1,106,136,174,191,144,50,99,201,235,2,224,24,76,148,50,55,5,0,61,87,78,23,65,77,225,212,235,215,214,211,48,249,100,108,65,199,169,15,86,153,225,135,166,54,107,13,7, -160,9,187,233,30,156,15,80,191,252,88,220,109,162,109,128,231,27,100,121,187,126,124,62,209,194,76,142,13,243,255,214,172,145,231,254,173,58,98,98,243,38,29,28,78,252,26,234,152,163,147,246,178,237,7,97,174,253,16,1,202,133,63,164,110,125,166,179,162,96,228,198,49,111,123,54,193,243,57,66,28,21,160,152,112,75,171,202,108,47,42,68,132,46,167,204,243,17,105,166,188,214,131,161,194,27,37,212,249,44,124,15,117,93,54,131,217,72,179,38,66,115,9,153,117,134,44,89,38,197,221,82,79,41,157,95,23,101,94,223,44,42,215,94,194,83,210,80,53,14,229,234,156,95,136,99,168,30,86,135,231,185,55,43,160,110,15,166,179,2,237,237,158,61,5,214,43,222,165,118,186,100,231,215,231,176,90,179,47,255,144,18,70,159,87,83,115,3,134,243,209,48,3,137,25,123,216,1,249,230,61,245,208,34,216,0,114,137,28,158,26,170,158,100,27,253,230,242,226,99,181,18,174,110,221,131,255,118,93,193,152,15,217,63,171,6,28,32,201,184,237,152,234,177,96,227, -18,201,152,244,223,112,196,253,206,90,234,46,40,155,207,155,169,152,175,254,52,25,96,214,124,67,145,2,77,7,108,21,111,77,10,184,131,88,133,131,159,166,252,34,80,171,37,181,155,143,107,41,161,145,141,177,4,100,143,209,26,77,165,203,251,201,153,225,156,217,122,90,31,126,223,251,237,121,124,69,165,109,99,107,185,121,144,25,241,205,74,103,77,110,34,251,200,2,74,176,67,72,21,222,52,213,120,179,64,96,111,2,96,197,233,19,42,127,220,142,10,186,127,5,99,122,8,21,84,226,50,53,227,195,115,66,183,248,198,181,41,140,92,32,3,61,75,193,2,9,87,28,97,197,206,209,185,141,164,59,205,231,60,131,234,156,177,126,65,104,101,226,85,52,136,242,131,139,238,122,69,237,53,148,217,174,194,44,190,187,140,209,68,24,50,100,132,40,74,57,54,9,73,102,230,157,201,25,64,176,155,139,3,68,147,86,68,72,6,145,19,178,6,197,74,16,124,57,60,251,208,45,108,91,106,54,174,77,120,1,178,252,111,47,19,71,216,125,91,236,187,195,124,37,165,212, -86,0,75,8,128,51,141,151,211,249,122,102,118,82,113,121,204,78,75,171,64,55,248,145,101,12,18,206,48,34,183,130,224,172,196,10,229,171,71,208,130,117,57,175,250,41,1,75,22,100,100,158,90,128,124,67,190,101,104,62,214,136,154,223,230,105,200,228,68,19,136,239,167,0,17,125,63,102,128,54,198,196,39,46,195,169,185,78,96,190,136,193,245,29,242,51,0,45,71,71,102,236,213,27,176,156,108,205,222,18,92,87,208,236,8,132,146,160,53,167,73,149,215,107,42,55,113,128,140,220,215,134,243,57,187,221,20,180,92,231,168,208,160,229,220,143,141,6,225,177,108,255,158,70,175,54,219,30,203,215,12,10,69,154,99,11,220,118,54,66,12,80,53,113,21,227,43,138,134,6,111,243,199,52,17,239,105,222,111,101,254,177,192,249,67,175,57,81,151,143,252,240,141,178,95,223,100,22,239,29,2,72,140,210,36,17,249,72,214,136,235,117,167,58,222,84,174,132,0,105,139,125,80,236,217,78,145,86,241,208,230,149,118,142,14,230,249,187,204,239,143,213,232,123,71,153, -31,144,2,48,205,134,82,143,220,225,199,49,251,120,93,166,11,39,76,100,37,90,195,13,155,229,153,49,109,91,168,241,80,58,244,5,141,253,160,110,21,220,72,176,168,182,204,201,118,90,209,11,159,130,200,122,110,35,243,221,179,95,198,147,79,193,248,63,33,35,57,54,249,54,91,50,167,152,255,106,97,150,235,94,204,146,138,50,194,77,226,155,63,144,89,168,210,64,252,255,55,229,29,251,67,216,98,140,29,145,32,186,134,30,113,54,186,198,134,79,13,159,10,9,156,16,181,88,10,173,185,31,196,157,249,189,186,201,87,182,232,151,119,130,191,200,173,66,49,87,133,143,165,199,236,96,53,7,84,153,44,160,19,185,33,13,232,82,60,155,222,27,19,73,170,10,245,120,210,85,233,166,44,214,215,22,113,134,149,225,186,212,46,210,83,242,58,88,84,243,78,117,217,1,154,77,169,60,142,197,55,189,62,28,122,231,125,68,101,122,226,15,118,252,156,251,107,136,43,142,118,77,255,69,53,26,251,231,58,159,190,155,83,106,84,77,184,69,138,177,223,101,247,151,5,100, -63,153,255,16,151,123,180,143,9,173,10,152,9,208,244,110,210,242,27,252,37,25,59,96,6,243,93,51,10,14,194,207,91,104,234,15,184,123,157,228,181,203,183,196,147,149,196,147,1,137,210,147,7,220,151,111,242,0,214,5,212,176,248,130,66,121,182,129,74,195,233,96,192,150,233,178,154,31,134,159,251,180,141,143,106,107,75,137,55,42,174,18,239,94,168,225,16,41,232,25,57,175,229,166,45,125,113,174,242,247,102,225,222,57,151,48,37,233,31,168,154,149,182,25,118,132,63,144,254,182,231,165,205,215,20,19,43,0,87,151,29,107,182,202,109,177,31,157,193,174,141,160,185,81,108,109,70,58,39,115,120,195,193,30,62,83,189,114,198,54,61,132,144,56,133,43,244,199,93,16,198,62,12,60,37,223,241,155,237,4,0,196,94,63,97,44,102,166,206,158,12,81,41,110,76,66,197,134,126,158,210,163,62,98,157,26,138,253,115,13,222,4,48,242,157,125,58,178,183,10,202,240,5,59,37,157,87,248,14,121,169,224,254,96,231,40,95,56,31,247,22,98,90,211,219,36, -88,91,32,196,27,90,191,182,229,116,76,126,94,21,85,211,190,224,158,207,8,109,229,53,7,180,73,184,24,42,201,43,188,234,5,173,98,60,134,131,151,124,253,192,196,111,207,132,162,57,109,155,116,127,80,197,185,59,205,183,200,80,255,56,168,141,121,127,162,220,140,69,213,221,74,225,131,80,249,5,124,249,120,164,246,168,236,226,207,41,60,154,215,27,200,127,137,217,227,248,12,96,49,121,212,70,69,229,91,217,54,27,213,104,78,42,144,117,91,165,154,106,116,237,147,218,32,95,141,123,223,248,24,54,234,195,80,125,143,149,243,2,253,117,65,0,131,207,165,93,61,2,252,254,219,36,28,200,191,232,69,106,196,45,66,92,19,147,57,16,116,199,115,64,17,122,66,153,181,130,153,173,4,154,175,130,3,91,239,109,253,252,205,190,219,67,239,38,4,13,35,170,213,60,189,199,3,206,108,219,133,36,105,192,191,47,165,39,61,184,170,16,79,133,93,103,252,82,114,225,123,138,227,221,102,221,165,170,129,220,61,86,235,131,251,21,90,139,230,198,86,170,75,86,96,235, -115,56,191,132,150,160,149,249,116,70,93,11,49,174,37,75,227,209,109,171,191,23,68,64,123,171,187,41,170,90,7,56,225,119,0,168,143,188,12,229,239,183,136,244,61,47,176,115,128,74,232,25,172,141,248,18,166,188,51,11,220,130,140,161,82,151,197,61,158,121,84,241,32,151,209,42,62,81,243,63,243,188,102,195,207,44,31,172,79,114,71,74,246,241,167,154,135,217,2,49,55,240,23,75,234,83,107,14,88,40,184,48,139,19,100,116,57,116,185,19,104,65,9,60,208,231,6,80,215,139,213,61,87,58,225,69,22,26,122,20,216,135,151,79,161,232,40,140,139,111,190,2,120,244,186,95,34,188,98,158,204,167,100,79,226,29,62,47,237,103,112,143,141,113,8,30,0,99,118,45,209,172,173,160,209,80,28,53,100,138,151,46,148,70,136,88,55,174,242,1,241,204,175,16,253,141,201,210,233,85,168,217,38,134,164,223,65,211,232,39,110,84,101,208,207,254,117,123,81,119,104,25,132,208,175,193,108,102,127,171,166,141,127,83,161,71,49,23,79,138,158,67,218,114,174,164, -188,63,229,230,29,161,10,242,183,152,124,37,142,117,95,10,72,191,189,56,223,33,122,43,254,249,2,215,227,50,98,116,211,90,169,243,114,19,53,131,215,16,199,142,94,216,23,181,220,214,229,139,147,51,108,10,85,35,96,70,115,148,35,156,51,207,72,65,238,124,206,240,251,111,147,112,32,255,156,137,216,69,150,3,100,147,121,4,159,7,48,83,208,153,54,172,214,229,81,129,15,161,246,166,51,206,148,145,208,158,75,246,170,36,75,64,105,168,183,117,177,202,167,102,13,23,147,11,16,153,239,242,203,201,69,85,78,39,23,78,138,254,35,91,78,206,214,213,228,183,177,46,65,60,9,110,17,228,90,64,201,236,160,249,147,223,238,86,209,91,162,52,27,14,34,158,173,172,247,40,135,16,15,254,152,147,122,122,158,62,193,148,218,79,159,182,202,147,136,207,211,31,243,208,220,30,47,219,33,107,201,236,143,81,148,208,71,62,206,191,17,144,171,87,202,255,135,251,235,31,97,138,139,243,37,101,174,170,187,191,151,84,28,16,39,139,19,199,15,31,30,137,70,24,227,108, -35,146,77,137,108,102,67,38,95,122,143,126,191,204,222,38,223,43,104,176,47,55,145,251,43,200,162,20,167,83,51,230,80,69,130,14,174,190,217,25,53,107,240,155,121,182,15,24,162,120,75,65,43,5,55,234,65,229,23,80,53,204,217,204,169,119,180,4,117,167,21,204,128,148,144,239,136,38,49,50,19,131,194,205,247,217,116,77,216,235,220,63,217,60,70,62,221,129,61,109,188,136,133,153,210,216,54,99,30,122,103,136,103,175,74,145,23,95,83,114,180,109,104,134,209,147,133,99,196,103,191,216,216,180,245,120,162,173,198,60,36,222,190,211,155,29,45,124,214,154,75,31,56,240,121,125,206,131,111,120,237,75,24,211,176,81,183,183,254,180,236,51,106,118,78,30,133,13,28,45,143,144,23,55,16,243,126,140,179,43,123,52,251,58,91,62,9,230,241,209,176,74,184,187,232,156,171,179,133,57,56,234,76,109,179,245,59,171,16,37,45,130,235,235,116,42,6,22,14,209,54,214,247,171,236,60,121,238,103,113,57,14,177,201,183,204,21,177,77,195,162,3,185,41,209,77, -18,70,133,125,123,77,80,9,236,54,241,179,62,6,29,59,172,155,26,253,222,140,66,126,25,219,137,147,190,197,179,192,111,29,250,96,248,112,89,10,47,56,75,166,138,223,95,177,229,26,164,149,65,43,40,109,48,66,94,75,51,222,236,119,162,165,203,0,224,93,140,207,147,1,114,20,117,228,170,40,18,109,30,214,181,92,94,56,154,118,75,142,39,140,70,123,49,104,200,36,27,113,126,255,221,228,108,158,221,102,134,51,36,196,156,149,96,235,35,187,204,27,67,135,131,54,227,206,70,107,220,165,247,149,191,244,152,23,197,66,9,191,92,207,231,208,254,45,218,252,252,150,25,202,6,113,192,116,137,4,112,154,193,155,234,164,140,182,119,22,195,15,68,254,118,94,146,238,163,196,31,102,17,246,27,158,38,241,47,166,58,74,223,149,229,16,203,120,180,65,188,245,50,255,167,25,235,205,155,23,207,224,136,129,6,115,101,190,128,51,232,93,118,47,1,97,51,192,247,101,58,53,183,195,87,207,255,239,155,231,47,159,62,215,174,185,84,191,210,225,128,111,73,57,144,165, -202,144,246,44,104,91,237,233,15,131,151,5,150,42,181,212,51,63,67,220,13,196,226,160,208,182,53,156,105,115,176,172,156,0,248,97,20,121,160,225,54,60,108,66,67,191,83,174,165,147,229,243,37,173,200,157,13,212,209,15,65,105,138,178,165,105,159,88,173,98,147,0,148,52,237,225,168,209,206,17,198,99,175,23,163,38,23,87,87,22,52,22,179,2,249,65,124,177,66,136,146,101,157,227,157,114,118,191,76,23,249,244,177,185,43,222,101,232,145,195,131,179,184,170,41,89,27,243,108,110,105,91,96,76,4,73,201,194,213,140,18,220,129,156,26,11,218,172,112,247,61,204,12,39,164,108,184,200,66,169,241,64,39,247,140,162,111,65,240,20,219,99,186,210,9,243,215,37,103,165,6,30,106,92,227,240,3,236,252,7,74,101,209,215,87,47,99,37,234,226,127,194,255,182,73,35,205,102,234,138,158,160,176,204,201,246,14,194,38,84,237,160,147,55,250,37,175,216,142,165,103,85,125,63,87,5,204,234,98,109,191,163,118,253,131,111,224,142,20,126,89,68,151,3,228,229, -70,163,54,125,236,148,139,251,139,185,72,228,187,245,87,94,116,251,76,22,56,50,180,191,50,6,74,71,96,169,129,76,237,87,251,180,187,241,254,132,45,134,155,126,60,245,187,165,2,187,244,104,181,220,77,236,109,98,127,177,25,133,108,206,175,151,102,132,249,61,167,5,210,128,175,211,203,104,7,181,5,119,128,218,102,223,58,59,158,169,25,115,227,238,193,166,214,243,237,155,223,145,202,98,24,129,63,176,147,161,223,187,141,124,192,38,125,215,12,123,100,148,225,100,24,46,127,242,73,202,158,88,245,211,165,121,110,127,122,104,223,57,205,99,87,197,61,237,214,217,1,117,121,17,63,167,81,136,193,150,135,47,135,219,17,244,200,244,25,234,220,126,136,208,131,197,133,8,12,210,70,220,8,151,51,201,5,15,231,222,217,106,5,193,105,81,235,112,168,12,59,79,126,72,141,53,159,153,163,99,14,41,141,162,51,209,141,35,70,235,95,57,203,109,70,231,22,153,30,175,234,25,254,254,20,194,45,165,148,74,246,149,185,103,52,116,79,146,109,36,19,15,215,118,132,232, -59,45,229,215,241,173,47,236,191,62,160,8,135,215,184,222,35,106,43,24,253,219,54,189,248,54,209,191,118,239,184,83,131,205,133,104,232,36,171,49,253,65,109,236,215,239,1,210,158,106,16,201,152,3,207,143,43,233,96,178,168,202,14,74,26,231,223,233,228,161,42,28,232,103,82,73,42,228,33,15,21,241,148,171,10,157,183,94,181,142,120,104,135,154,7,55,165,65,250,133,52,97,30,36,105,91,111,56,169,164,161,63,133,201,26,120,119,180,165,123,204,85,156,104,110,100,106,94,164,144,42,111,94,23,127,20,236,44,64,132,84,226,36,16,78,92,149,230,182,5,222,76,246,140,19,210,7,103,191,235,182,48,242,2,159,171,102,255,102,32,198,11,8,148,208,155,202,39,183,74,115,105,29,11,3,78,30,128,180,79,30,184,34,36,185,193,138,67,76,150,16,210,242,243,196,35,217,109,94,214,216,204,137,254,55,22,215,238,198,226,19,122,24,114,120,207,108,84,233,81,172,245,12,252,11,2,182,142,255,240,31,247,131,40,27,160,217,191,82,194,9,132,11,128,43,54, -31,36,167,159,226,35,255,207,195,216,126,196,166,168,176,244,146,135,58,118,212,224,202,115,63,38,64,65,26,66,55,112,224,74,92,104,92,113,35,53,27,10,26,24,235,13,9,57,4,38,196,3,167,190,73,153,157,51,51,177,89,227,217,71,230,217,86,38,149,35,41,102,52,226,119,176,53,18,201,165,203,71,83,89,154,170,176,6,51,41,112,186,174,167,23,185,169,233,128,139,127,226,209,182,159,160,116,58,238,125,19,12,189,17,27,234,179,228,75,252,104,216,199,27,254,242,21,253,199,35,214,86,227,255,15,232,82,65,180, +topic "ArrayCtrl";[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[a83;*R6 $$3,0#31310162474203024125188417583966:caption] +[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] +[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] +[*+117 $$6,6#14700283458701402223321329925657:header] +[{_}%EN-US +[s5;K%- [@0 ArrayCtrl]&] +[s0; &] +[s0; +@@image:2362&1443 +Šƒô‚΀€€€€€€€€ø§œíݱîë¼å ¦Ðì¯ëÈ‚ž²„ï ‹ðÍŸº­Û´ƒ¤”™ ÍƒÜù…ÊÞÀ›â²ÃðÙ§äÚ–éБΩ®òíÙ¢ +æ­Šü ÊòÿûþïÿüÏÿý’¿ÿ‹€°–ÏŽ€Œéݽƒ³£õî¼€–ª÷½÷ŒÌÔ»ó€ŽØ¨Þݳ°Ó“ï΃à¡ú÷ËÏÀ̽»€‡…êݽƒ³• +“Çò™à«ä›¤Ø‡Ù† ’íÐà䛀ȶÅõ퀢٪†ÖÁ¶ˆäț؇ن ’ íà䛀ȋ¶õ퀢ÕÙ†ÖÁ¶ˆä›Ø‡Ù†  +Ñ’íàšä›¿———´†ð÷ÿÛÞ¦—ÏÏÏåýþŸ×í·Ûソ¿ŸÎ§Êá§¾¾¾îÚŠ´Ô‰Ë¡ÛÀºÛÜŸíŽÇ㱫’ðÊó¾ç·˜ýýý呿è +ö´À„¬ôüü²üë÷¨ÛÀòÕȶ°Ž÷ç›ç÷÷÷â¥á•ýæýίÙï÷½•Ô“„ÅŠƒÎûŽå›ØŽÝÙ†Öáþì“ôÎñìö»øÇÏß–ÊóÚ¨ +³ÅáðÈç Î§Óçççþ¾±§¸û£ÛÀß¶§ÛÀºÜ™íõò‰©°ú§¿¿ÿâ´Ô÷÷÷ûå´Ì’ŸØÉ÷¯½‘í௓Øíàî̶é®ÄÇÛÛÛøï +ø·þ÷¯ÎËË¥óÎ•à“¥Ý³·ù’²üúõ²¬ÃÙþ¦òŸŸŸçÞÿ×ÓÆÿ֦åòíýüü„οžŸŸÓȨ±¿›Ž‡Ã÷â…»ñ© +ôↅûúúŒªŠŸßʯ¦“Ðáí×럪ùúúúž¿ô‡Åš§×—­è˶õ¸§óÛä“ÒÃÎá£Ò´ÔÚ ŸƒÛЧý®¾›Ö…™¢ÍЈ¼é +ž«é„Òð¤ÌõˆÆÅêëËêŠÅ›Öèô›…œØß©›…žåª¸Šû÷ÏÀªÌ—Æä©Š‰©èê´ÔžÅÃÒß¡ïÜý÷èôºÕ‚Í”®ï­œ‡É¥Ì +à›½ç“ÒÃóü¼×–äÖú»ÞºÑ ¹â¨ƒîݽƒ³Ýšó‘§¨¦¤¢«ÓÒùæòôñ³õݼÊå§Í ÂšùýýïåÅÉ¢¨…¡â€ŒÒÚÿþ¥ð +¶Ú¸þ辊˿ßáÄúÎÛ¨“Ðìƒë°»ãÛŒÎÈ•ýÃÃè´Ôú÷ôö«§òîŠÒÃÏÉÞ“îèÊ…Ï … ´ÌÁ¹ç–™ãê·Ñï¯ïìí‚­È +š¶°Ž³³Íºë‹’ßå’¥Éû—Ñé©´­ÑÏÙŸú»Óº¥‹ôÊ茙¼£Ÿ¿ÕÕìÓï¯ïìí‚­Èš¶°Ž³³ÍºÅ‹²œçÉ—ëéŽÎË¥íÎ +çþÔß­œÇ€˜ÂÊÉóÒäÅ•†³Í©Ø¯ù¬Öùײͯ½¾³·‹´¢ÛÛÀºÌ˶Çߺ中ÕÿßÖÕ’„„°§ßïó°Ó©ÂêñÙðå‚ã” +Ðùæ¿õðÒÉëאָðëŠÎ•¤÷÷ŒÌÔ‰„†•ñ¹­ÓŒœÿÖòž±¾Ý©¨Ü±ºüœ¸²ËÅžÞú’Ò¿ÐŰâ´Ï¯¥ä÷Ô—øÍŒÅçÒ»û†æ +ݪ„ƒŠÊé“üÂñÉîùޱ¸¾ÿ¾Ìӿ󜯡±„”’ÿ©õéÊ´ÈÅ®úžô÷ÎæÑ¦â¼ß¦í®¿ùÐýÊð¯ËŠî«÷÷ŒÉÌÔœËÓŽÿ +§ü¦¤Ë×ÅÔ›–™½Ö§Ó«ê¡ÒŒ·ûéƒéÂæ”ÞÆ×ùžŠ¼å¹ÄéÕ‚äÙ†ÖĶÍõ˜‘íÆŸùë»´úˆ¼ó˜ãýå­ôËÿÔðÝüÂæø +ãÇðÔÒ´ñ÷Ó¤òóÄù„–Èìƒÿìƒë„°£ÛÔæöò£Å®ûúõßòÓÛ—î“Æºÿ÷ŒÒ´¼œ„¨Êç¼®½üÔ¹ÿч‰õ’íà¯íà +äîͶ·ÍÝç¤ÕæÓȳLJúüÄËÚáÈþÐéõá¶¢âÏê ÊÐé²÷ééßùž°òÏ´¶ð©øò¼Ÿý¸ô¸ãËó¯ßÚßà—Éê¶°Ž·æ›› +㮹ÍÑ¡Ÿ–•š½Öϼ¹ë¸ø‡ÓþÁÊєǓ¯“žž£³ÊãÏžüæÕ×—øåÅáÞá»û†æªŽåó«Çþšú§ÜÔ«½úäàûÆ…úËÁ£¿û³ +òü–àþ…Ì”ŠÈ–ž¹¼ªìÜ蘟Îÿ½ç»“—ß¶¿Âë¶õ¸©ÛÜ´¡•ŸŒü½çØÿññ‘âòÌø£¤Š¸æÐË¿”Õ¬öâµãëºÆö +ñ»Ýªÿøãí«í­þ‰ÑŠ·›­²œð›ä›žØ‡›²ÍŸÕ“¹‹Š ‘íàÖ¶íҜӑ”‰©à³ä›ö؇Õç›Óé·”æ•Æ¯“‘ˆä›Ø‡õç +³›¼ê×¶Î¶õØÎµ¶ñÒ†¨“í¬àÖíâ½Á㯯¯“ïš‚¶Ì¶õØê÷¶˜Î¶¢õ퀢ن•ÖÁ¶ˆä›¤Ø‡Ù† ’í +Ðà䛀ȶÁõø‚àÌï­î™˜©÷çͰн»çà¦ëÞ‡ÀÂõ™ú÷ž€Æ‹Õ»û†æêáÝù€¬ÔïîÀ™Ø­½Œ€°Ò¦²€°¦² +”€°¦²€¥°¦²€°¦©²€°¦²Ê€°¦²€°Ò¦²€°¦²”€°¦²€¥°¦²€°¦©²€°¦²Ê€°¦²€°Ò¦²€°¦² +”€°¦²Í«ÐÏ€¬ÃïÇδÖúŸÊæ€ü轠ЙʶÐÊïÙ€¢Ÿ½‡„ºÓ†âÚéý¨ƒð£“÷€ÀçÚÀ«¡½å€þôž¢è̛襸 +ë²Î€ü–ن͜¶ÐŠìƒÐ‹ìÃΛèÅÕ¶èŶ¡§ª´¢Û€ô¢§Ûӆڑ픀ú‘íÈ郳­È¶€½È¶Çä´Ö䛀Þä›òÚÀ« +‘²À¯²¹ªí •Ù† —·Ù†œ¶ÐŠì†ƒÐ‹ìÃΛÔèŶèŶª¡§´¢Û€ô¢ÛÓ†ÚÑ‘í€ú‘íȜ郭Ì˶πկ¯¯ïïï +ןŸŸí“º™¨×üÔ›ú×ÐòÀ’ȶäÓ´Öž‘í’Ï××ׇö‹¿Ò϶š’íȤ郭¼´Û„¯»Ýï­»¹ÙȶÀå¤Å÷ÑûÀ ³ +†í •ùƒñýÿùãñøöö–­–ÙåäÔî‘­¹Â¶­íÉÈ郭¼¢ÛŒÄ©Þ„¿šô苦ۀóÈζä´Öž—æíŽÇãÜæùÓù¹ÅŸ°Ü² +„°ìÃΛúèåñÙ¦¾Øéôúÿÿÿùªù‰‹„¿ÂÿóË×ײßïãÿßßßÇçỪ›ýëÖ¿õß´ÅÂáðóØíö¡ì¥Ôî÷醲üá +¸ëɧÁÂÇïÙ­õ¾ÛÐÕôÕ‡ºŽþÕ•À¯“íÈ郅­ôɶáôÎÉãû®¼¸œ¸Ç󕤺‰Ãßôô²¾õë³úçý›Çãñÿ´ÊÑðŠëô +ÈÖˆ¡Ãίÿõ×××¥í®ñþº¨Ø¾â¨Ù콠Й¶ÐˆÊñäÝú¼Ö–ÉóÒ¯¯¯Ûùëá´½´ÄìÇáÑí½¿»¿®ÿññ±õ±ì£ïݺþ +¦™ßÆè¾™ØÑ‹ûæ×ºí­‚ËŠ¯šøååÅ¡ÙûÀ ³ÖúÍì·ž­•åÒ ÜœäŠÈ£üȼéìñÍϯ”×çä‘Å‹ƒúœÌ‰çÿæçئ–­ +¿¾üÄõÏø¶àÒêúûûûþíþί‡Ú§­‚”Ï‚ªÊ•ß©ÌËõéÛÊßèÌÓþáÓé«ìŽ…¸´’à—ø•½ðï¡•Îë´ÖŠ£ëÖíãñôݰŒæ +üç›òÑüóóγªÅ¥Ÿù«Éüº¤­çÒø¿Õš»‡ßÔ²¾õëÅú§®öô½Ã·Â­ë¥šÎô¿Í¬õúª‹éóæÑŠ·õª¸ÕôÀ½‡ +Ä„ºÓ†Ú©Ž…¬ùÇãű´Á§ëâǧúÂϋֵؑœüÀÉÃ÷èò•¦â¾¸ñý“ˆ×»Ý“Òו’®ŠžøÊル¿ÃŸ–ƒ¬è°ûˆô +Ŧ´ÒœÙóÃŽÇ˪çÂŽûÇã𵣗賤µïí©¯Üß©ö苓פ¿ñµõáÍ¡ÆÝ䷯ݪÕíèç§Ôº­¹ºÞìúÕ€‡ª§úÌÞƒ‚é +òƒ­”ÇÖ¼ãÙ±ÆÕýþŸÀÏÅ¿øõÍø“¿òÓò·¦ùˆ©…ž¸ÌùëßôÓøÚ†·ð⵩Õå•«“êņž§¸˜Ðûˆô¦´Œ²ï˜›½¬Þ +çýà”ÑûöòÝ£ïݺþùË契¤‰™ãþœÚßÝܔ⃘՜Œ½‡„ÒºÓ†Ú™·ÌÉÍž–¯þðʹ¨½ûùÑ·îöÝÿŒå¾¿¿Ýó¯ùùùù· +ÿÛí÷ûÃáÓߦýÏ©îýãÞ€¥¨úàÞ¤ƒ‚郭”¾ÇÖ­Çã­‡šòýú›”ަ¿ºÒý¶úŠ˜¸þ‰‡«ÍåÏ•žî¥É©†«Éß +×õèä °„²Ø¹í •ßÎÆ¶÷ܧµüŽ«îáðˆïå÷ðãݪÛþÌÀóѺÌÜÿÐÕîÀ½¥ªýß§•¾ê÷÷÷ÊáŽä›²òÚÀ«¿œí +´¦¾ßæôÉ­¹Ã»úÒ©‰¼²€Œ¾¤çœ½úËðÒŠ˜¸þý¡û²ÍÕû¤Ç†¥ª¿…¨½Ý’ÿÕóäé§ÝáϽ€¿Æõ¶¡§´òË÷ÙæœÍá +’ÛŸËœ’À̬Äá°Îÿü±¸ß¾å˜°ž¸Ž“ÿÖä¥ÅŒÌÜÿŒï£ÿÀ¾ðÊô¡Ý¤û×£¼ì寧י¬Ê£…ÇË¥ÿ¥©ˆ…Õƒ¥óãÏþÕŠ +™ºªúàÞƒ‚É郭”ÇÖÏ­ÇãŒãùöñïÉ•ÉàÒò«—îÈʇôûÖ¿ãÛÈ·Ýɑߘ“Þ̩૔™ä´Œâ׿ê§í ¯çâ콠Й +¢¶ÐÊñäÝúº¼Î»œçý޳øèÏéžö€˜¾Ã¦Þö»ºÚì™ëŸñíäÜú¬ÍþöæÁÒ兀˵ü³¡„Ëå¸ôÕ¨¿‰¶°€ÅÑÉÙûÀ ³í  +ß•âȺõøœôýÄLJÙå“ÞµïïïÃû‚ýŠí…ø‘¦œ‡Šß¬üüüÏÄ•‡‘½Ý·ô¼Úìùë¿´Û†ŠÔ¤§ÿçåˆÂõãýÓÙ••Ë÷½åóê +¡—ÊÕ©Ãøøýþ€äð…„•×˜Š‚¥íÈÜ郭Ì˶¿ãéÑåÛòÝÊõ“íÈ郭©È¶Ë®»°îѲ¹í •ÙÒæÉõ‡ÖͶª¡§´¢Û¬ +ß¹îÀºÉ¶äÓ´Ö䛥׸طنœ¶»ÐŠì³äºƒë¦ÛÓ†ÚÄÙþ¶Ø«Ù›†œ¶ÐŠìƒƒÐ‹ìÃΛèªÅ¶èŶ¡Õ§´¢Û€ô +΢ÛÓ†Ú‘¨í€ú‘íÈéæƒ­È¶€½È޶ä´Ö䛡€Þä›òÚÀ¸«ÿ±Ûü•òö‚Ôɶ䴲֞€Ø†Þƒ²‚郭ô¾Í”øÑûÀ  +¼³í •Þ‡²À€¿úˆô¦Î´ÒûІàúÇïδèÖúŸÊ€ü謽 Ð™¶°åÉö¾€ëãôÛØ²ûŸ€õ±º¶í™½Àú˜Ý¶ÌÞ‡àý +ÑŒîÛæïƒ°´¾Æ·­³÷üØŸ£Û–ÙûÑíËì¼ý€ÖÇè¶åÉö¾€ëãôÛØ²ûŸ€õ±º¶í™½Àú˜Ý¶ÌÞ‡àýÑŒîÛæïƒ° +´¾Æ·­³÷üØŸ£Û–ÙûÑíËì¼ý€ÖÇè¶åáöþ“Ï€‹ÔÕ»÷ìæËõÇ•Þï¢÷ï…°ý®÷ïØÍ–ë·Ž½ßÄïÞ‹¼àÜïÞ±›­ +ù×û¿‰Þ½ž—À¸Þ½ã·ÊÛ®»öþ“½Ôû¯€ñ½ûDzî¶Ü÷ìý¦·ŠÎäŒÐ‰ì¼“í¹îØûÍÕȶÀÂȶѿ–뎽߄ì㬄ì“í¹ +×îØûÍȶÀúÂȶіëŽÇ½ß„샬„øì“í¹îØûªÍȶÀÂȶÿі뎽߄ˆìƒ¬„ì“í¯¹îØûÍȶõÀÂȶі뎽߄샬 +ñ„ì“í¹îØÕûÍȶÀÂÈþ¶Ñ–뎽ߑ„샬„ì“Þí¹îØûÍÈê¶ÀÂȶіŸë޽߄ìƒâ¬„ì“í¹î›ØûÍÌ˶ÏþÕ¯¯¯ûýþ +¿ëëë¡Ýà쉳«ûçö¿¾²¾î܃¬›ì¼“í¹îØûͬ¼¢Ûä¡çøô¼¾´³œá÷ÿ³Íçççóó×óýéˆÖͶ³‰¶Ü÷ìý¦ªžší‚°¦¯ +¶­Þüþ¶¹ÿê°…²Í´åźãï·ñç¶Ü™ý÷ûûû¿Ãß§åÞÞÞÚèõþüþÒ¨íàŠÙ¦ÚòÏݱ÷›øÄ¶Õ‰ÂÂÉ‹­êÔÒ“Ù†–ɶ +³‰¶Ü÷ìý¦ºž—í‚Ãáð—ûþþ¾»Û¬ëƶå’í墭×û¿‰½‡æ›àåå¥î®ùùù¹úñç˜þöûþýþÁÓéôþÓþž¾žþˆÿ + ¯Þ­ÌšŽÈûýýÍ·º£ßðõåãÔÛ¼žÈøéÿßÖû”ðéÌÄíÂûÖȶі뎟½ßÄ£³Íººõ“Ç—ôñüÏÞêíí­­¨î¬ª„—‡ñ + ¥¯Ìˆ˜ÅÇÓŠÈôÓá«ËÁç—”•ÆÓÜ™Œ¯™¶¦¸Òîú÷ŽÝì¹îËØûÍÌ›ö§®¯ŸÒËî·›œþ¼¼˜þŽ©ž¨¾ûõõõ©ì¶ÄÅ“óÒë +Ÿïïï£Ë—×ÛûÜßÙÞê䥌µ®¾››Ý¸ÝØšâÈé¹Ý»ö³åºã±ï·±ïؽéÏùáÂù–Ó¤úÉÒ™›———ô”ãŸéõâãêüí¡ÆÄ +†Ù¡ðïþŽçÊöáÇ—ÏëÎÚ§¡ÂžÉß¿Ö狰ͲʹïåºóăÜÚÒ…ÍÛ¸½²œ¤°Ê§Ä€©©®Ý‰ÿÍñæúôÞ§ŸÕŠÒùåºù‚º¿² +“—ÖʘŠßÀ߃°Ôôǽʇ™î¶Ü÷ìõý¦úæ›áïÒ²„ü’ßš½àí¼ÞøÜĘƒÊÚÒÒšÝþžÊáëåŸøïÑ»ìƒÓȶÑߖ뎽ßÄß +¬ì³¼ï©éÄ™ýšñø±¾ù›¿°²¶ú‘òÓŠ¿ºüŠŠàÑî·»œŽ›£÷ðÍÛ¢ìñ“ì“í¹îرûͼºÛŒÎáÓÔ¾þõ͕ˤÔäù©ëÈ +úçÇò¯¯¯£Ì¡Ç¶©ä›ÚèËõÇÞïâ÷ÑÙ¦þŸÔŒøµ¯¡ÛœÿŠ‘Êïòª”—’È˶°…쓞í¹îØûͼ¾ºÛ¤û²ÃŸ”Ó¾þײÍÔ +¨¼à°—ßü£ëÛÀ”²Í´åµºãï·ñèìÏ“Æý‰ãýýòú›ô–èÖë€íÞßßç”þûúòáÓŸŸŸ©ùõ¸÷ÜქۤÛÄÛ®»Ñöþ“Ͷé +—¡ÄÅÏ×¾’þÏýÒÃÇ–·×ŸŠü­–—é—Ï—ÛÔÒÔ©ÓçŠà›äµ›èËõÇÞï½âñÙæûû»æå€éφžøžü›ÑçÕ”‰½ê¼á׬æÕ +ý¶’ÀÒµÓ²ºÜʶ‰¶Ü¦÷ìý¦ž‘íß¾¾¾òŸÛÊÇ烦ü¼ÿþçð­Ï¥ŽÛг‰èø¼¦§„ðϿ봱²ùå¯Â¤§¡Ç×ÙÓÆÇ¯ž +¨èƒ¢Ù¦Úòßݱ÷›¸³Û¨Üµ¼ýòžŸêë¼ôûÒ÷£×ôÖ–¯«ë—¶ò“Ô”Ÿ¢©Ê‚™ñ”‡Ñïޱ园×û¿‰¤ËƒúÍÝÐ¥ +ô¡€Œ¾Ñîê·ææýŽøñøìœþª²üÝÕ¡ÒŽÿó¼ÉïÀŠ»þ´üÊÀ·Œ›ÔœÇ½ÊûÇî¶Ü÷ì‘ý¦®è·õòÁ…éÂàž¼þ‹»òñʦ +èÂ¨Š‘ Š˜‰Á¢¬óêҹʟ»óöö¶ÚÚ†úá‡å«“”öð¸ä§ðÐâ¡Ç§žÒ¼†™ÎÐÑñŒÛöî»ÙòÝï±÷›¸´ ÿÌ¡ÿºðÀ¢Û +”ÄÛ®»öþ“Õ²°²Í´Ëåºãï·¡ÛÈ€‹¡ÛÄÛ®Ò»öþ“²°º²Í´åºã‰ï·¡Û€‹¡©ÛÄÛ®»öþª“²°²Í×´åºãï·± +™‚샬ƒì“Þí¹îØûÍÈê¶ÀÂȶіŸë޽߄ìƒâ¬„ì“í¹î«ØûÍȶÀÂýȶі뎽£ß„샬„켓í¹îØûÍÕȶÀÂ馄 +¿–뎽߄ì㬄ì“í¹×îØûÍȶÀúÂȶіëŽ×½ßÄ“À¢õíî»ÙòݱÏ÷›èÝûŒóëÝ»ö³åººãï·Ñ»÷‚֘׻÷ìæË +ÖõÇÞï¢÷ïô…°®÷ïØÍߖ뎽ßÄïñÞ‹àÜïޱś­×ûŸ€µõ±ºí™½ûÀú˜Ý¶ÌÞˆ‡àýŒîÛæ¥ïƒ°¾Æ·­ã³÷ØŸ£Û +÷–Ùû€¬ÑæíËìý€ÖÇËè¶åö¾€ëÄãôÛ²ûŸ€µõ±ºí™½ûÀú˜Ý¶ÌÞˆ‡àýŒîÛæ¥ïƒ°¾Æ·­ã³÷ØŸ£Û÷–Ùû€¬Ñ +æíËìý€ÖÇËè¶åö¾€ëÄãôÛ²ûŸ€õõ±ºí™½ßµÄ“À¢õîû»Ùòݱ÷›óèÝûŒëÝÜ»ö³åºãïηѻ÷‚˜×Õ»÷ìæËõÇ +•Þï¢÷ï…°ý®÷ïØÍ–ë·Ž½ßÄïÞ‹¼àÜïÞ±›­¹×û¿‰¢³¹ƒô¢ÛÄÛ¥®»öþ“²õ°²Í´åº’ãï·¡Û€‹Ò¡ÛÄÛ®»ö +Ôþ“²°²®Í´åºãï·¢¡Û€‹¡ÛÄÊÛ®»öþ“²ê°²Í´å¥ºãï·¡Û€¤‹¡ÛÄÛ®»©öþ“²°Ý²Í´åºãïÄ·¡Û€‹¡Û +”ÄÛ®»öþ“Õ²°²Í´Ëåºãï·¡ÛÈ€‹¡ÛÄÛ®Ò»öþ“²°º²Í´åºã‰ï·¡Û€‹¡©ÛÄÛ®»öþî“ó²ÍÓÕëûëëþ¿ÿúú +øúè·ØÊççœç¨íËË˪…ÿî·ûÿÿ¿Î£Ë¿º‡‹Ê™ì–ì“í¹îØûͼ¢‹Ûä¡çø¼¾…´³¼ÇÈßù¤™úøø˜þÖʶ‡‘í¢ +ò­×û¿‰‡Þæ›àùùù™ñæ¿ßÏ©ÿŽØ¬ø ìƒÒ¢ÛÄÛ®»ö°þ“÷æ›Ñ÷ÿ¿¿¿óäðòïòÒ®óëãý™ý½¯ÞáðÈ‚ìôºýþþ +Ûæç󊳷²Ä‡¼ˆì“í¹ÇîØûͼ¢Û”Ä¡áÜŠ‡ýÙå…›ž–Éòâø–ßû£ÛÀûƒÈ¶Ñ–뎟½ßÄã²Íðô¸œââÏÏÏØ÷÷ûÍìö» +ëÁ¦Êçïò ¥å›øÙ¦½Úòݱ÷›øòè¶¹çñàóóóô㟟Ÿ’±ü”Éãôº¿½¿¿§‡¿Æ®Ý»Ô”¦ïùýýÍ·šŽÇéñ«ü +þ¼­ª²¹°ªþØÂÊé©ÙÕô©Ö’î骬¸¡‰‹„’§­¿†ÏÖ—‡¾äµ›èËõÇÞï·âÑÙ¦º™æ½õ‘Ͻ½ó½¥…¨ˆñ¡ÞœÆ•¼ +ð°é¨ÏŠÈ”—®´¹úÒ¦ŠÞ¥¼´¹“†»…ÌÓÐýÕ©ÜÖ²º†Ñûí§Ã‹£ÛüúïÓȄũÚêï—Þ±›­×û·¿‰¢³¹µ‹ãººäʯ»Ý +Æîøñ´½”„ô””ßãòè‹ œ”£ùú½™¿Â¸—ŸÎÉþÛœýø´ÚÞᎊŠð°»žºù‹£Á¦©™îÄË禦–¢è¨½ûåÇî¶Ü÷ê½ +®·óÜÚ…ÍÛŠ¸ß⊴ɺßáðòò’ÆáñüÄı”¯Ö­Ä˜¸í’þ·Í³Çðå³çþçòͽ½½Åûõ„ˆ—Öœ§µ¸ûª³º’з©´’¸÷´ +©¸“­Íüå‹Å‡’¦¯äÑ— ¿ÁÒôǽ‡Å™î¶Ü÷袢ﶙΌ¥“””áü­âǾȇ´úõξ«¢•¥Ñ¾¥¨ÛÔëکΑáòÍ’·©Îð¥Ã +ë»éÓ¼É禬ª‹Ÿ³¹»áפ„îä›èËêõ‡¦úæ›áÕäÈȧÅà€ËÃùžãªëÐ˃ýÚ¾á¶Ø™îî¸òûªô³Üɰ„€äÔ¤™ô©õ¥ +õëð†Û„…êí¢­×šè¥›í†“ÃéÌ¿Ëèӌӕ¤ýùɉÊÚ†Ëò·Ì¶ÓÞº§€º“×ÒÈçæ‹êåßàƒ•ÁǶ‰¶Ü÷èâ«ÑÙ¦ØÈç +Äêח¨ºÿ¤ø÷¦œ°­±€³Ë¶ñ£Þ·í§É¦ÕÈ–þÑÑÄû÷ûŽÝì¹îÐÄû¼ñîúòõûý¤æ¬ùÖ¡¿¬ø·Íï̼×Ù¨òøýå› +¿ø‘›öÎÓäÚÓÖ†¿©è¢•½ûÇî¶Ü÷ÄèâÞø·ýùèôßöøãÊÇÿ›„Êò£ÏëÛ¹¤Í™Õ¯Û‡™Ý¶‰Ÿ¹Žéïܺ«á¹÷Šî¨÷ïØÍ +ã–ëŽÍ”É­­ÝÐÕ¥ÓœüÐþž¤òñúáœÑº‹ôëõ–¶é‘ú£óäÇ—¤ëòçç›âûª³ñ¥…´§ððŒ“¬œì¼“í¹îÐÄÃÁ³ÍºÉÒܹ +†Úùø½·–ÓŸ¸»ú–æâµïÉåÏÀ›˜›Ì†ïµ½ÏêÂØÁáÔË‹çÖ§ÊàÏí¢Ê­×šøÜ¶ñÉŸç׌ì•Ïü Ìþ·üôÚÛðÞŸÑ +¶ß³ÊÿèáÒÄ€ˆÁ¦ÿÜÞ»ÄÂߺ§ºÓé•Ë‘ñ¼–óŽò­ŽÏó¤Þ÷‹‡óÀ’ÈŽ¶Ñ–ëŽÍ¼â¢Ûüýý¥Ùùœá¶¸úñü—½·¾—¸ì +´«Æˆ°¬ç¿€“Ùì¢¯Þø¦·Œø©ø„φÀ“ÿ˜Ó‘„ª…ŸýëöàõÆ×’ª•ÊÏ“‚ÍÓÿç Åòµ§Ð—ª˜ê¯ïץؠ¢æ»êÝ»ö³å +ÁºÃ“Åç²¯š‹ª˜ž¯¸Ï¥ˆÆõõÞú¦ô–¦¾üô×é× ŠÓÿË›òÒÛ¿ðûүŃø®îÑɶ›–©è¨½ûÅÇî¶Ü÷袥èÌæõÁ•± +šôôç›®îî‰Þçç“ÉÉýå„Å¥ßÖŒ¨ÂÒš½œ·ÒÑøËï½î÷ÀÉŸ®„•ËÛ¼‘´¼¬ÁÑÖû÷÷ŽÝì¹îÐþÄÑ™Ì낆µ£çˆ•ûô +¹¦ì®„¢ýþçŸÿìãØçÕÕ¤”âÍºÔøŸíííê½Âñ±¦¦ü¤ŸÇ‰ªŸ¬¤¢Ê᫦ïͫΡԮ°ßɨö¥œáÙåá“ùïãÖíë…Ýɶі +ÙëŽÍÌ˶‹£ò§‹¤²Í§´åºÃ“²õ°²Í´åºÔÓ²°²ÎÍ´åºÃ“²ê°²Í´å©ºÃ“²°²Í´åºÃ“Õ²°²Í´ +£åºÃ“«È¶õÀºÈ¶Ñ–ëÔŽÍȶÀÂÈζіëŽÍÈê¶ÀÂȶі©ëŽÍȶÀÂȶіëŽÍÕȶÀÂȶÑÓ–ëŽÍȶÀºÂÈ¶Ñ–ëŽ +ªÍȶÀÂȶ§Ñ–ëŽÍȶõÀÂȶіëÀŽÍ¼¬Òï×Þ±›­×šóèÝûŒëÝœ»ö³åºÃ“©½û¯€ñ½ûÅÇî¶Ü÷è¢Ò÷ï…°®÷ï +ÏØÍ–ëŽÍô»î½€Æõîë»ÙòÝ€õ©‘퀀µ‘íÊ€€µ‘퀀ҵ‘퀀µ‘”퀀µ‘퀥€µ‘퀀µ©‘퀀µ‘íÊ€€µ‘퀀 +Òµ‘퀀µ‘”퀀µ‘퀥€µ‘퀀µ©‘퀀µ‘튀€µ‘íÚù€‚à™úˆô¦´ÒûІõàÇïδÑÖúŸÊ€üÙ轠Й¶Ð +ÒÊïÙ€Ÿ½È‡„ºÓ†Úéøý¨ƒð£÷€äÀçÚÀ«Å‘Üõ†à·È¶ä£´Ö䛀ÞÈä›òÚÀ«²ˆÀ¯²¹íÕ •Ù† —Ù›†œ¶ÐŠìƒ +ƒÐ‹ìÃΛèªÅ¶èŶ¡Õ§´¢Û€ô΢ÛÓ†Ú‘¨í€ú‘íÈéæƒ­È¶€½È޶ä´Ö䛡€Þä›òÚÀ¢«²À¯²Ô¹í •Ù†  +î—Ù†œ¶ÐŠŒìƒÐ‹ìÃÎì›èåÎìóýý½ßïßÞÞ¹Òšö»Ýáðú¸ÎÍýʸ²ùÂß­¶Šðв¹íû •û²ÍÛÛûÛÓ…ÏÏÏŸ +›ŸŸíýË‹öœÇâëá•⦛†ø¨Ù†Ýœ¶ÐÊììó“úúú©Ø¤ÍÿâÍÕ²½¿¿º—ۯܿݕ€Ç“íÈéƒç­Ì˶¡´¤ßì÷ûü¼É +ã××מûîŸËœºÚ¶´¡µ÷Ûí⟦¥€Ô¿Á¶¡§´Ì²¯Û¤”ñ鴌Ɋ·÷ŸÂ›©—­ŸŠ¹‚ªýíڊؾ÷Ù†œ¶Ðʼøìóõù¯¯¯ +ñ¸Àˆ¹­ŽýýÑ÷Ó„ÔÛÛµÛ¹»„È´”Űü²¹í ¹•‡å›«Ëüäþþ¦ó»»Ý’®žæ™ýÈýà½éªÞÛ“ª¦ËªÓÒùŠØ¿¾¾žþÝù +Ÿ¼ßï§¼›šŽ‡ÐæðúÜ‚²ü‘²ÕññˆÑªØˆùÅ‹òóË—Š‰ììÃΛèåŠÞ¶É±ä¸ð´Ï‘¢Â±Ý–ηç›üÂîê¸ü¥é©´ +×À÷÷÷ú»žÇö¹úîØçŠø´Ã¡ð¤­¤à“ÊÅ®ºÿ‹ÊÆÅêíªú“Þƒ‚郹­”ÇÖÄã±ëžÐøšõ¯÷Ï𶦔Ƌ€Ñ©Û±¡•Ý +¯–Ê£Èú»ßä«ïžÎ§Îʰ‰Â·“ש“ò׌í¹Ô³Â´Ñà›ŠŽç¤÷€Àçõñ÷…Ù¦Ÿ’ù͘ÐéÒæêÝÑùôÌØÃܾáüÛ¼ªçôØ +þŸ®­˜Š®äÎË囚¦‹ûÊ»ù”úþþþί緆å×’—¥ ÔœÁÊ­ëïø„Ãà¯ÌªúàÞëÜ郭ÌζçЋç࢈¯¬ßšµÓô̰ +æøäçÉÆý¶âùщ©â£»£ÓÒéÝáìöÑýÝ”¥†Ÿö𽄦‰ÊÙÏ µ¼Êšø‘ëä›òÚÀ«÷ä›ó¿±½§Œà£³µ£Óä©ÀŒç²ò +öçæŒžûÅò”©Ùå×¹”Ûð™­ÃÚáèŲÂõ÷«†åœ­±£‡Ø¦÷Ù†œ¶Ðʑ٦¹žŸŸ®ŸÅÊ«§¾ñ†çÔ®‡¹¾Ô¶´ªá¼Ò +¿åìÐùڔЫýÝá™Ã€‰”©¥¯ø¾ÀÊøýéí©Øù¬Š–°Í²¹í‹ •ÖÙ¦—ÂÜΚӋó³õôÍ϶Ãß©ºä˜¢æ”¡€—ÏÕÕþò¢ +Ö߸¸ì¸ò²±°ÁÅïÑûòÀ ³í •ÊŸü´ÓÜñ漣׌¾˜¶îÔºªÝ¸ôôÏ™’üâì’ÏÑåãÄÙªöÛ襾ÀÖ”½úÇïδ +¼ÖªãòÕƒññÆâ³òÅè‹ÄÓþ©³šÞ²ò»£ŒÑþÄ›…§ÿçÞÂâ‰â©åð¸Ì¹°ˆ¹¯ö«ŸÉ‡Ÿþ´¢¿ê½ ‹Ð™¶ÐÊñäà͹˜§¾¸¯ +åžÉ†ÓÅ—žáÖ»ü±ßòÒÄÕ±•åæç›Ò´Á”¢Íð»…—¾˜®ìÎ×üÍüžÕ“òíÈ郭ÌÈš¶éΟÊãõÀ¯ÝØÒùìÝçôû¤¦¾×÷ +³Ò¶æç›ÊÛˆéŽîøîþážóüÃÝßÀ¤çÛÓ†Ú™‘Žíò©™Ëó«ÁéäÅñáÉå¹Áúé迚펦Îì¤í•Ùâ‘ÙæÒýÒ÷çÿžÁІ— +ô€Û¤ÛÓì†Ú™‘íÎÿêýÎÞø»ŸœÍÊŸÒû´¶÷ß”Ÿ¾ˆ÷Á‡çÑ¿¸þæôØãÿÍÑáÊ­îÆé³ù”Òì–ì“—¼­°¤Õ¨¼•½Í“ +Εµ»ôÃ×À»Öȶä´Öõæå›óöä–³ŠÑ“”ùôͪîâù›´Å³¥åÖ£´ý–ÏÂËÕ«Ûù÷âµÍÙÇ×䟓¬üÀ¹°µÅ“ïÑûÀ ³í +Ÿ •âÈšþȽžÎ§üìÍЂåæåø§õȬʓŸÝ÷ÓÏÓ¾™¸ÞÙÿú»—îÏÊÏñÞŒ¯¥Ê«æáîï ©ú’Þ¤ƒ‚郭”öÇÖ­‡æ÷÷ +Ú÷ñ »ð÷å·÷¤òæ·ýÅéš«Ùæ¦ª‰©èøäàû¯²Íùßɘ”Ú㟡úñÍõõŸŠÊ«½õÕ§œ€•“íÈœéƒ­Ü™ížÆô˜÷­Æó• +×»¨€­“íȬ郭ȶ¿ ‡ý¬§‰© §§ÛÓ†Ú‘í’žíôº¥ù±‹¿‰ää›òÙÚÀ«²ÍÃå»ß­»¤€‚ì ÃΛèŶù—¨ü»õÒ†¨ +ȶä´Öä÷›‡Š÷½¼£¼¸½Š˜’íÉÈ郭¬ªÛ„€ìŠìÃΛÔèŶèŶª¡§´¢Û€ô¢ÛÓ†ÚÑ‘í€ú‘íÈÌ郭ȶ€½ +ȶä´Ö䛀Þä›òÚÄÀ«²À¯²¨¹í •نݠ—Ù†œ¶Ð™Ê“€ËÐûÀù ³í •Þ‡€²€¿úˆô¦´ÒûІõàÇïδ +ÑÖúŸÊ€üÙ轠Й¶ÐÒÊïÙ€Ÿ½È‡„ºÓ†€€Òµ‘퀀µ‘”퀀µ‘퀥€µ‘퀀µ©‘퀀µ‘íÊ€€µ‘퀀ҵ‘퀀µ‘ +”퀀µ‘퀥€µ‘퀀µ©‘퀀µ‘íÊ€€µ‘퀀ҵ‘퀀µ‘€íÚù‚à™úèˆô¦´Ò©ûІàÇïδÖúŸÍÊ€üè½ Ð +•™¶ÐÊïÙŀŸ½‡„ºÓĆÚéý¨ƒð§£÷€ÀçÚÀæ«Å‘õ†à·È¶ä´Ö䛀Þä›òÚÄÀ«²À¯²¨¹í •نݠ—Ù†œ¶Ð +™ŠìƒÐ‹ìÃÐΛèŶèªÅ¶¡§´¢õÛ€ô¢ÛÓĆڑí€ú‘²íÈ郭ȶö€½È¶ä´ˆÖ䛀Þä›’òÚÀ«²À¢¯²¹í • +õÙ† —Ù†œæ¶ÐŠìƒÐ‹ ìÃΛè¥É¶ùùùÉ눪ÿ·½öÿÍÓþÕ¨×ÛÛÛç…ççÛíµÙ›õðÇɶä´öÖî϶Çã±ÈØÉø¥ùð +†‹êÙ¦ùýýÎí¸­û×…üâݲ¹í •ßû³Íûûû±«’ðÊóžà—ªÌ̶Áî·ë£µ­¦¥‡þ¨÷Ù†œ¶ÐÊý‘Ù¦ÍÈ…‘¿»þñǧ¥êß +ƒÂñøüûûË¯Ë´šœ‚¶Ì•¶¡§´ò競ɧ¤Î§ÓÃúû¯ÎËÍù¤’Ò¼‰ÿüÖ¯¹€Õ’íÈéܙíÒ„¼ÔœëÓÐÿ—ǧ¥¦ü‰©Ë +轿¿ÿÚÁ€Ëµ’íÈ郭ÛÜ™í҄Ԝݣ‰ÿÆÿ֦åòíýüüÄ¿œ°ßï§¼›ŒŽ‡Ýî—Þ€Ï±ãø‡ÓªçØ×××Ñ€üüÒ¥‚ÕÔ– +í›Ò°ÊʦԸؓنœ¶ëÐʽ٦Ÿüšžª—¦¥Ò¾‚ßßßéï´‘ÅÓÿ·¬³¥—‡¡ü’ßô‚é˜Â‚©ÖôÛìºÞëÑÅݦ—¬²’úÝ +»õ©úŠÞƒ’‚郭”ÇÖÍÇ屡•îÝ–ÊÇüôÒ÷È›×ß½†Î•üýüü“ÄõÔ¦Ò‰åÓÆ‹Íתœ¾Ö›Ÿ˜º©à•íÕ¿™àý +ŸŠŽ¢÷€ÀçÙÚÀ«Å‘õÓÀÑÙÌÈÅ×§ç¥ò͇îʽ»ù”úþþÎñ¯ÿýý½¾¾ÿÆ·ò‡Ï¤¼ÒÑœÁÊë™ÖäôõÊ•Óê©ÈχÝÚ°Ë +óÛªÿ³ÀúÈö¶äžøŒé‡çäè„Ôñ´Ž¤ÎË¥÷ǯ¤¿©¼›¢ÔðÓ¯£—ЄµÄסò³È¡ïėχà«ÿ‰áïƒù锼ÃÜšÚ°ËÛªÿ³ +ãÀú”½ðï¡•Öâö¶É§š«†—“¤Œ°ìº­•¶µ¼Ê÷÷ê»ÓºˆôÅÊ茙¼Åæš®º©ûÌȶ¶·Öø£äÜ›ø„ÙÙ¦½¬˜Îž¤‹õ +¾Ç§¥Ò¶Š©µ¡©ï–ŽÇãùˆ¡¥¤©Ÿ¡¢ŠéÚª­­È•»¿ñÒ캎îÊŽ׋֨ÿñÊÝ•êíà‘æå›áðïÈݲœ–ªòïëêɸ¿ +¯ßïóÌЩÂÚñÙðýé´õ›Š„­†íŽ“‡Ñ¼‚Íÿ‘ØÏ±¢—è½ ÀüÊÔÆßŠøôý•©ŠûƒÎ÷êå›ô¡òÅè¥òñ⬕»þ÷©Ïįគ +ðÍÿ‘ر¢—Éè½ ÀÊÔÆÿߊÊى­û—ìÖÞÍŸúòôïÜËȬ’¡¥œŽ‡©—Þ¶çÅžþ¼½ð©æ”ìú‹À‘Š•æïÚÖ¢¸²¦œŒ +Ûù½¿—®Œ©Ø¬³»Û¤‰¦ýœ†Û½ôÁÈôáóºŠèÆ£¦ëæ”̶³Î²¼ÆŒìÞóé¹¾…ùÇÈ«¼Ûù«Ý°’µü·¿°¹©þ±¼•´¥à +•³Š¦Û€çáÙ†žãƶ©«Ïì¤é’”©ï­›òî孚˷£ÿû† ©šÞ‚´¥à•³Š¦Û€çÙÙ†žãÖì“ע”ŸÂΫáÍçêæç›ü +ÁÄËÚáÈÐéÿõá¶¢âê Ñ«¿ôõµÞ÷´—̶βμƭ٦Íñ€ÌùþÝúÐÞо­µ»Û̼è¹ëø›öþÁ‘‰¿Ðþ“™…Ž›ÝÖì‚€ÿ +ŠÔÑËôžàú¥Š£ëꑘãÎÌùöîè¿“ëÛª¿ûïéþ¬ü¤Éð®Ù‚ùÍÊ•ÈÜöÏ´¸µà²”ð–íà±îÁʶ·ÍÈÅÃ짃ߓíÎÿ +®Î’¤´þˆœÙ¥®¹òÃѹùê«‘ìÎè¤ñÓÁä›à¬ÛÛÀãÜ”íþèÊÝÔ€ÉÒ¶ðˆÛȶé¬ç½ý¾¶°¨ù²¼Âê³Í©éôÊóâ•ß +•ƒ‚øý²¼çº³ÍÞµÊÐÒ€Ýȶð¦ˆÛɶÎÚ€¬Ë£ÛÀ£¬»‹ÛÄÛ³ßÞÞ·¦Ü±ŽðËäÄ›ø„õç›€Š¥“íà‘ä›Á€Þ䛸„Ù +І —Ù†žÁµ¶èŶÇÑí€ú‘íàˆ‘ä›€Þä›Ôø„Ù† —Ù¨†žÁ¶èŃ¶Çø‚à™¨úˆ°’½ˆå€þôžàè¥úŸÊ€üè +Ô½ ÀÊô¾”æøÑûÀ€•ñèý¨ƒð£÷€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ø€€€ðÇüÏ +›ÿý¿½‹€€ãЌ샀¬‰˜ìƒ€¬‰ìƒª€üéÿÓ´Úæ +&] +[s0; &] +[s1; [@0 class_ArrayCtrl]&] +[s0;* &] +[s0; [* +@@image:1843&731 +€ƒ§õ€€€ƒ‹ÿ€€€€ø¿œíÏŽÜÄŽÆç•О£„§Þ€£‡ŽÜÉó€ðá€ñˆ€¹ÄÜÿ¤ȉˆÊ²¡ÍüÝ¢°¢‰›ÅÍæ­Åˆ¸ +……æ¬õÌ×÷›»ªûºË®ÿ±ŸÊ«ï­Ý³‹ý¹ÿÛ½³öŒÍ÷¼ß¡ˆì„‚±Žøó°‘ˆÄ¥ˆÁí÷‚‚ Šš„ÄÎýÎí—Îÿ¿·’žÂ™Ý +Óš“ñ” ›ÜØÛÉÏáÌîÍéé·¾¸ðéí¡÷¿Ê¬¦Ýßݾý΀îð¨ï¥½…³»µ»§Û’çâîï˺¿ž‡—“þ®ïþÚïÖåžÂ·ù¿øÏÒ +É´óã÷¦ûº÷Юµô¦ß¶ôêÅМ÷ÓÍö⎩¯¾íÒ—±÷Ý­·ç×ì€Ýâ×ÄÌöôô¤†–óÉϹ¶ë­áÛåì£úèþ£èãç—î¿Éǯ +­¿þ׳†è†±÷ŠûºÛ®µÔð†Ð¹‹¾ß¼»žÇÙ×Îùµ™þÏî×Ð…õ×›ãÌììÄíŽÊ´¼ó÷¤ÇÐÅžáú„æâ­Ë•£ƒºáÁçøãÁÝ–™ +ßÓ½„îñŽÝ¸¾ÆÉ®˜ºó´“ôíࣦ¢çú›·îÉÿ½ä¼ñí¥Î„Ù¯é¬è‡—Ò呹ÁÝ©©—ïõ¼±×ÇïöæºÓÅÎÄÐö +زø”ý×¹‚Ÿè¸Ïû²³Íÿ¨™é’ÎÚÙˆ±ôŸÝüä¬âàÍÛöÑÕÉ€®½ÆâùéÖØ­çÞöÌ—·×‘¥ŒÂÀ÷·”Îæ˜Ó½“„îðÄÙ០+…ãÌלº¯Óý¸Î«ážèÝÈËéç—»ŽËñ¡ÛÊÏóÌé¼ÎÉùôÆï®ÌœßýÆÃ¦¦ë²¼œçÒçØªöÔ¬šî¬É¿§›üÎÝúˆ·ÄƒóŒ’ +·Ïé†ß—ÕåÕ‘¹ÝË螦£«ƒ®Ù´»®Íí¯»ØÊˆáÄ•©éóºÓëÏé®ï¤£ýð󺪡ò·±ÍÐÚâÿüªÀ—¶§»½¢ûå뻿¤£ð +™Š”û¡…ç·òÌéί½ôö̹¹¬¸›Ë¿»¿ò¯½¼ù¡ý“„‚‘‹žç–ÝÞåðñãÁ󈄢–™óè£çù¹†õ‹Ê¨ˆŠÎ¤Ôïâþºµ¨¸´Ô +ÕË訄Ǚ¨¾×½ûéÖ ˜Þô퟉®€–ÈÞýô—î¿ûÙÞÐðøâ­÷£í¥ß‡ÛéÅŸÞÞ»¾òû¹†Ù…îÆµÝçïþô€“êîÏ—€Î¨ñ +Ýçô“Љ¾§öÛƒ¬Â×ÓƉ·ç‹¶ôçμΉ–½Ô¯ÕøŠ”ÉèºÑÉ•©ëá苾Ùÿʉ©ôœ¿íµ¿¿ÿ÷ÿ«ƒƒƒû÷ïÜ¿¼Õññ±  +™Û­ô›Íæ²ù³¬™†îúÏð§ö…ÃíëèèˆÐµ˜éê€Ý¼åÐúúñÇ“ÎÈ¡Ûß×êÕ·Þ¥èø€Ç†¡»öÃñŸçß»·ÖìÓŒ”ºþ‚ +Œ‹Â爻¹¹¼ô•–—㫪ø½ÌýžïÒŸ†¡»úýã—ŸÃÝ”ý¯´£Ï…îÞ½ûŽ®Œ˜ôÏž½ƒôªµ ›“•ˬþņ¡ûêΣܾ†Ê¼í¾¤ +“й—ñ€î¦‡ÐѹŒ¯Ý—ßþ¾„×ijçü§©ôý™Û¦Áèžï…·èÚÏôË’á§è®ì½œÇÀ—œ——Â×ÿ´ž„îÏ­€ó–—陆îò +“­ûÞ¸â貞ƒºÃÃàô˜ÿí…èðÆÊ¾Ú†¡ûâæïóœÂ÷´ÕñÐÖ§§§îÅœôÛÒº‰ÎáöåÏÖ€Ž×¤¤¤å˜º«·ö¹õ‘£îéÓ +‹§€ŽÐÉå˜Ëº«·îð‚×¸ÞæˆÐ•Ȫžô¸Ë ª€Ý£‰¬Â§• “¦‰Ð•ˆ÷Ž©Áñ†ê…èÊÓ„¡•“œÉ¨ø’ôžü½†–ðî©¿‡ù† +՜ɛƒèÊÜ£Éõ•žÊð©œÁŒæ€º’¡÷èòÕ‹ìÞÁ€Îºì€Ý‰ðû´é€ºŒ„Œ¸Î †ó€Â݉û´é€º£ŒÂĜ瘟¯Ž«ŸÖ†Ã† +×Е¸Ç“¶ ©“–¦â¸Ã¬Â̤þÚ›Œ›²æÐí¶›ÉÌúâÏÁê¦Ý‰£É›ÐÉ‹“‚ñœá–¦Ò¿Ý­†âÌÇ„®ý«®û´À郺éᢎ +ö³ÌÂÄê§µ£Á°Ùœôó‰ÃÃÐÉ‹“ñœ á–¦Ò¿­†Íûå¥Ý«“Ò¥ãìÛë°áÖˆ§Ÿìî…“ö¦íÀ§Ô­ÌÄñ†Ù˜œÈŠÚÑžº +¬ÊÓ¯Éè’íЈÒù‡¡•ܸܙ†ÎÚטˆãŒ³°‘¤º”µã¦Ð…Ùß§ÉÿÊЪ…ÛϸǓ¶Ó “–¦â¸Ãä¬Ì¤ŽÅ혌‰ô‰ý㻀 +¥ºúʨÌÄñå†Ù˜ÈŠÚܱ·è¼¡ž¤âò²ÀרŒñÂĜ瘅‰—Ô¡¨³ý£Òåòú””ºàċִ„°‘Ç™æá¢õ¨ê‡®È© +‚ô¦íÀ§­ªÌÄñ†Ù˜Èãý´¶˜¶€®íĽ𴴄°‘Ç™Üû¹µ˜ƒèÊÜ£ÉöƒÐᮃÚî†Ð•¸Ç“†« “ŠÐɇ頫ñ¦Ëï +‘ÂÞâðœÁŒõ怺’÷ÔŸùüƒÎ¤Í©šÝÊ„š×±§Á™„€Ý‰Ð‰÷òˆŽ³Ð¯ À×¢Ôøî…¡èÄ‚ô¥²Šž¾Ë ª€Ýë‰¬Â—Ñ˜È +ÜëßÚ“ ú«‘á褅‰‰¼–âÐñŠ“ïµè¡ªÔ¾‰ªµ‘‰æã»¥‚´¾ÀÚú¬ß§†¡“–¦òÚá·®ÌÔ¢¿‡ªÒéªÂð×ò¸Ó†¡“ +Ô–¦òÚˆÁǼ©ÌÔ¢‡ªÚ€ƒôù­ð䘰ºé᢯…˜ÆôœÂÄ­ú¨æª•å¥Ýûч¥àäÔÅÛ˜„鸞‹¾ÖžÏ•†¡“–¦òÊÚˆÁÇ©ÌÔ +Ç¢‡ªê¥¢©È—ÿýèµÛ’†®ñè™Ü²™†ÎÚ˜ÈëÈ¡†§°Ñ‹Òžªê¦Ð…ßí÷Èãà‡̮¸ÏÊÜ»•¾á褅‰¼–ââÐñŠ“µè +áªæ‚ÝâÿÅàŽ““–ç¦í‹µÈ—á褧…‰¼–âÐñüŠ“µè¡ªæ€†Ý–Žô¯¿þÿÒŒóò‡Ë˘²Š“ùÌ­¤ ›¬ÌÔŸ¢‡ªší›© +±ãÃâëÂÄªŠ±¸Þ½Öð‚·ŽŒÃ§­ÌÛ䵃ŽÓ˜á¨ÅÕå銗”ì—æÙ²Œ»´°‘פÆô‰ÂÄ­ú¨Äª›ÐåÏՅ첌´°‘× +–‚®½ÌȆôÒÚ²Šî²¨°ªÀ×¢«ÐÉÂ…èÄ‚ô¥Â³ãÃðœú¢º’áèÅ„ðç’µ°Â²–ÎêÏážç«Ò怺’÷èŒÒý¥§’œç +ºƒ¹€®Ä½ÕšÜÕ‚»— ¡“Ž›À×➔͚€ŽßåЪûØ€º’÷è±Ò€ô™…‰¸ƒÎàÛû†ó€‚݉û´éƒºèéᢎ³Ì¾Äê§µÁ°é +ê†Ý¦þÅ«éüì·æŒ¯þƒÞ¹û´éƒºèéᢎ³ÌÂâĺĴˆÝ™é®™ô»êŠºšÇ“¶ “–¦¥â¸Ã¬Ì¤‚âÂËØ›ôå­îùîÑ¤è¤ +‹…‰¸Î°‹“穀вԖ—ªô½Ç—ÿ‰íÿº§×Ô¤‡¬³Ûã»Ç“¶Ó “–¦â¸Ã¤¬Ì¤ŽÅí蔥©È—³²™ÌЀéÓÈÏ·ÆäΰôÒ +ñÂĜ瘅‰§Ô¡¨³®¡øÞ‡Å ýÖøŒ‡ê¯µàœ„«ò¦íÀ§Ô­ÌÄñ†Ù˜ÌÈŠÚ±“èÒ’û‡·è¾üÝö§ùÂò²£„°‘Ç™æá¢ +¸õ¨êÇÜ ‹à‚¢ÝÞ²ÛÇò²¦ŒÂÄœþ瘅‰Ô¡¨¢³ý£¥ÈžðÏÄú®ßþéûÁÖøîѽ¤è¤…‰¸‘ΰ‹“©ÃÑ»ðÅÊ¡û´ +À郺éᢎö³ÌÂÄê§µãÁ°ô¥îѽ¤è¤…‰¸ŸÎàÚËÁœÀ¢×âžÍš€Žä÷™Ôž¶€®¥Ä½š´€ÔÁ€Îºì€Ý‰ û´Ùþ—ö’ +ƒƒãŒâ°çŒÖÝðÿ˜ Ë¸‹§þœæ™ð¦ú펷ӽòÆ„µš¨†–”ê¢Þń璪´‹Ó­Ä¨û¹„¥Ç™¨—溒ƒ¡Âó¯À§’Òæº’Ù…Žß +˜åÐÕ˜éÊ䎕ºŒÂÄÞ‹ïøÖž„°Ó•™È°ôÒÂÄÞ´‹±è¸…‰Ú¡ôÐÕ­çºÍµòÛŒ“ùñ•çˉ¾ì˜ß•ɼۙ†ÎÚ˜±ÈëÁŠÝ¸° +ªÑ‹žªÊ÷‹æÄøÐÍž’ØêÐɕјÈ롆§°Ñõ‹žªŠÐ•ÈŒ°ôÒÂÄދڱ踅‰ÚôˆÐÕ­¡›†¿¼Ý®ÒÕãä¶ÜÍúËËÉlj +Îí‹Ü£É›ÐàÉ‹“ù­Ä ‘㔦êÑÃÕ“µ‡®†Ë¸Ã™“œªƒèñ²ÍÁ‡åȰôÒ¡ÂÄÞ‹±è¸‹…‰ÚôÐÕ³Õ®ÕÆÌÇÌù”Ѫµ¨Ã +ÁÐÉ‹“ù­Ä£ ã”¦êÑÊÕ턺ÿ燄¾¹ +]&] +[s0;* &] +[s0; [* ArrayCtrl] implements basic grid functionality. It is typically +used for display and editation of arrays of values or (heterogeneous) +records. The records correspond to rows in the array, the individual +fields within each record can be either bound to columns or to +any generic [* Ctrl]`'s, thus supporting basic master`-detail functionality +with practically no additional cost.&] +[s0; &] +[s0; The standard derived classes extend various aspects of the ArrayCtrl +functionality. [* SqlArray] adds the nuts and bolts needed for +editing SQL`-based tables, whereas [* PopupTable] couples the ArrayCtrl +functionality with the drop`-down mechanism very similar to the +one used in popup menus. This opens the door for implementing +drop`-down controls like [* DropList] (aka [/ combo box]) or [* DropChoice] +(usually used together with a control of the [* EditField ]or [* DataPusher] +family to support coupling native data editation with drop`-down +selection, widely used for history or commonly used predefined +values. The [* ArrayPair] is, as its name implies, a pair of [* ArrayCtrl]`'s +with arrow buttons between them allowing to visually select subsets +of a certain set by moving its elements between the two lists.&] +[s0; &] +[s0; [*+117 The array data organization: indices and columns]&] +[s0; &] +[s0; There is a great deal of genericity supported by the ArrayCtrl +with respect both to its source data and its visual presentation. +Conceptually, the source array data is a matrix of [* Value]`'s. +There is a series of methods for accessing this source data, +the basic ones being [* Set] and [* Get]. The rows are addressed +by integer indices (zero based), the columns can be addressed +either by integer indices as well, or alternatively any source +column can be assigned an [* Id] identifier and addressed by it. +This is especially helpful in SQL`-based tables, where the table +column names can be used for the [* Id]`'s. A pair of methods, +[* GetPos] and [* GetId], can be used to translate these two column +addressing modes. In the code terminology, the columns in the +source data matrix are called [/ indices] whereas the visual (output) +columns are called simply [/ columns].&] +[s0; &] +[s0; The visual ArrayCtrl structure can be entirely independent of +the source data strucrure (although it`'s seldom helpful to make +the mapping completely arbitrary). Basically, each column can +have an arbitrary number of indices defining its source data. +Of course, the most common case is one index per column. This +is also simplest to address, because the column indices are equal +to the source data indices. However, many other combinations +are possible, each of which can be handy in certain situations:&] +[s0; &] +[s0;i150;O0; Index without a column: the most common of the `"special`" +cases is used mainly for row id`'s or other internally important +data without visual representation. The same behaviour can be +obtained by making a column invisible.&] +[s0;i150;O0; Column without an index (a [/ rownum column]): this less +common case can be used to display external data (not stored +in the table). &] +[s0;i150;O0; Multiple columns sharing the same index: this can be +used to display various aspects of a complex data object or to +display the same source data in multiple ways (e.g., a temperature +reading in Celsius and Fahrenheit degrees).&] +[s0;i150;O0; Column with multiple indices: can be used to display +information gathered from multiple source data columns. This +is used for instance in IconDes in TheIDE to display image identifiers +together with their sizes in the list. This is the most complicated +case because you have to implement a specific [* Display] for such +a multi`-index column.&] +[s0; &] +[s0; [* Note:] in the current U`+`+ version, the implementation of index`-less +columns (arrays with external data not stored in the source matrix) +is rather awkward. It is planned to enhance this feature in the +future by adding support for access to external data via a data +accessor interface object. &] +[s0; &] +[s0; [*+117 ArrayCtrl GUI: selection, editation, and local menu]&] +[s0; &] +[s0; Array rows can be selected using the mouse or keyboard. ArrayCtrl`'s +support both single`-selection (plain cursor) and multiselection +model. Of course, row selection can be controlled via the programmatic +array interface as well. The selection and cursor always spans +entire rows, it is not possible (without substantical patchwork) +to select only certain columns or individual cells.&] +[s0; &] +[s0; The ArrayCtrl rows can be inserted, edited and deleted either +programmatically, or via common GUI elements (mouse and keyboard +selection, local menu). It is possible to alter the standard +ArrayCtrl local menu using the [* WhenBar] callback.&] +[s0; &] +[s0; [* Note:] it is worth noting that the standard editation keys ([* Insert] +`= row insertion, [* Ctrl`+Enter] `= editation and [* Ctrl`+Delete] +`= deletion) are not hardcoded in the ArrayCtrl`'s [* Key] method, +they are mere hotkeys for the relevant local menu items. When +you change the ArrayCtrl`'s local menu, the editation hotkeys +change accordingly.&] +[s0; &] +[s0; A special but rather important case of array editation is [/ sorting]: +there is no specific standard GUI for that. If you aren`'t content +with programmatic sorting (e.g. after opening a dialog or after +loading the array data), you have to implement some GUI for that +as well. In certain cases, it is cool to use the [* HeaderCtrl] +[* WhenAction] method to allow sorting the array by clicking on +the header columns; alternatively you can add a sort function +to the array local menu or possibly somewhere else (like a standalone +button in the dialog).&] +[s0; &] +[s0; [* Insertion tricks: before, after, and the secrets of the AppendLine]&] +[s0; &] +[s0; In todays text editors, when you type a new letter, it is trivial +to see where in the text will the new letter go. This is so because +the caret is always positioned between a pair of successive letters +and thus is well defines the insertion spot. Additionally, the +caret can be placed in front of the first letter or after the +last letter, which naturally allows typing some text at the very +beginning or end.&] +[s0; &] +[s0; When inserting new rows into the array controls, things are +a bit more tricky. This is so because, unlike in the text editor, +the cursor is not placed [/ between] two successive rows, but [/ over] +a certain row. This is of course necessary to make row editing +possible (note that in the aforementioned text editor analogy, +a single letter is an atomic object whereas in the array it is +a potentially complex structure consisting of many columns and +data items). However, when it comes to row insertion, it has +two main troubles as its implication:&] +[s0; &] +[s0;i150;O9; [* 1.]-|It is necessary to decide somehow whether the new +row will go [/ above] or [/ below] the cursor row.&] +[s0;i150;O9; [* 2.]-|In an array with [/ n] rows, there are [/ n`+1] possible +locations for a new row (before the row #0, #1 ... #([/ n`-1]) +and after the last row), but only [/ n] distinct cursor locations.&] +[s0; &] +[s0; Over the years, during the development of U`+`+, we experimented +with multiple ways to overcome these logical problems. As a result +of this, the ArrayCtrl supports a few methods allowing to fine`-tune +the row insertion mechanism. It is also worth noting that there +are cases, like in the case of SQL`-based tables, where the row +ordering is arbitrary or implicit and the exact `'location`' +of a new row doesn`'t make any sense. In such cases, it is possible +to replace array [/ insertion] function with the [/ append] function +emphasizing the fact that the visual row order is unimportant +and that insertion means merely adding a new record to the record +set.&] +[s0; &] +[s0; For arrays in which the order is important, there are two ways +to solve the [/ n`+1] row positions dilemma:&] +[s0; &] +[s0;i150;O9; [* 1.]-|Replacing the Insert function with a pair of functions +for inserting a new row [/ before] / [/ after] the current row.&] +[s0;i150;O9; [* 2.]-|Visually extending the array by adding a pseudo`-row +with no real data at its end; this creates the [/ n`+1]`-th cursor +position necessary to denote all the available row insertion +locations.&] +[s0; &] +[s0; In the first case, it is also possible to select which of the +insertion functions (before / after) takes precedence (which +of the two actions should be bound to the standard [* Insert] hotkey). +This corresponds to the [* BeforeAfterInserting] and [* AfterBeforeInserting] +methods. The second case is called the [* AppendLine] and is activated +by setting the property with the same name.&] +[s0; &] +[s0; To make all this even more interesting, a special mechanism +called [* InsertAppend] is available to make array filling as easy +as possible. When activated and the user appends a new row at +the table end, after pressing [* Enter] (to commit the inserted +row) another row is automatically added after it and opened for +editing. This mechanism is turned on by default, but it can be +disable by setting the [* NoInsertAppend] property to true.&] +[s0; &] +[s0; [*+117 Categorized method summary]&] +[s0; &] +[s0; The following table summarizes ArrayCtrl methods according to +the aspect of functionality they support together with a very +brief description. For more thorough documentation of the individual +methods see below.&] +[s0; &] +[ {{2337:7663-1 [s0; [* Initialization and configuration]] +:: [s0;%- ] +:: [s0; Reset] +:: [s0; clears column `& index definition and restores all ArrayCtrl +default properties] +:: [s0; IsEdit] +:: [s0; true `= array state automaton is currently in row editing mode] +:: [s0; IsInsert] +:: [s0; true `= array state automaton is currently in row insertion +mode] +:: [s0; SetLineCy] +:: [s0; sets array row height (global or individual for a single row)] +:: [s0; GetLineCy] +:: [s0; returns logical array row height (value set by preceding SetLineCy)] +:: [s0; GetLineY] +:: [s0; returns [/ y] position of given row (relative to table beginning)] +:: [s0; `[No`]AppendLine] +:: [s0; `[do not`] display an additional pseudo`-row used for row insertion] +:: [s0; IsAppendLine] +:: [s0; returns actual value of the [* AppendLine] property] +:: [s0; ShowAppendLine] +:: [s0; scrolls the table view to display the appending line] +:: [s0; `[No`]Inserting] +:: [s0; `[do not`] allow inserting new rows] +:: [s0; IsInserting] +:: [s0; returns actual value of the [* Inserting] property] +:: [s0; BeforeAfterInserting] +:: [s0; allow inserting rows before / after current row (default `= +before)] +:: [s0; AfterBeforeInserting] +:: [s0; allow inserting rows before / after current row (default `= +after)] +:: [s0; NoInsertAppend] +:: [s0; do not autoinsert another row after committing last row insertion] +:: [s0; IsEditing] +:: [s0; true `= (at least one column of the) ArrayCtrl supports editing] +:: [s0; `[No`]Duplicating] +:: [s0; `[do not`] allow row duplication] +:: [s0; IsDuplicating] +:: [s0; returns actual value of the [* Duplicating] property] +:: [s0; Appending] +:: [s0; allow appending new row at the table end] +:: [s0; IsAppending] +:: [s0; returns actual state of the [* Appending] property] +:: [s0; AutoAppending] +:: [s0; allow appending new row at the table end, Enter appends another +one] +:: [s0; IsAutoAppending] +:: [s0; returns actual state of [* AutoAppending] property] +:: [s0; `[No`]Removing] +:: [s0; `[do not`] allow table row removing] +:: [s0; IsRemoving] +:: [s0; returns actual state of the [* Removing] property] +:: [s0; `[No`]AskRemove] +:: [s0; `[do not`] prompt user to confirm row removal] +:: [s0; IsAskRemove] +:: [s0; returns actual state of the [* AskRemove] property] +:: [s0; Moving] +:: [s0; allow row swapping (moving a row before / after neighbouring +row)] +:: [s0; IsMoving] +:: [s0; returns actual state of the [* Moving] property] +:: [s0; `[No`]Header] +:: [s0; `[do not`] display table header] +:: [s0; `[No`]Track] +:: [s0; `[do not`] animate tracking table column widths] +:: [s0; `[No`]VertGrid] +:: [s0; `[do not`] display column breaks] +:: [s0; `[No`]HorzGrid] +:: [s0; `[do not`] display row breaks] +:: [s0; `[No`]Grid] +:: [s0; `[do not`] display both grids (VertGrid `+ HorzGrid)] +:: [s0; GridColor] +:: [s0; set grid line color] +:: [s0; EvenRowColor] +:: [s0; background color for even rows] +:: [s0; OddRowColor] +:: [s0; background color for odd rows] +:: [s0; RowFormat] +:: [s0; formats menu items substituting given word for the term `'row`'] +:: [s0; RowName] +:: [s0; sets the context`-relevant word to substitute for `'row`' in +the local menu texts] +:: [s0; NoCursor] +:: [s0; do not highlight cursor row] +:: [s0; `[No`]MouseMoveCursor] +:: [s0; automatically move cursor as the mouse moves (used e.g. in PopupTable)] +:: [s0; `[No`]AutoHideSb] +:: [s0; `[do not`] display scroll bar only when necessary] +:: [s0; MultiSelect] +:: [s0; enable selecting multiple rows at the same time] +:: [s0; ColumnWidths] +:: [s0; sets logical column widths using a formatted string, e.g. `"1 +5 10 10 5 1`"]}}&] +[s0; &] +[ {{2337:7663-1 [s0; [* Array index `& column structure management]] +:: [s0;%- ] +:: [s0; IndexInfo] +:: [s0; returns the [* IdInfo] structure describing an index (see below)] +:: [s0; AddIndex] +:: [s0; adds a new index to the source data matrix] +:: [s0; GetIndexCount] +:: [s0; returns number of index columns (columns in the source data +matrix)] +:: [s0; GetId] +:: [s0; returns identifier of a given index (given by its integral index)] +:: [s0; GetPos] +:: [s0; returns integral index of source matrix column ([/ index]) identified +by an [* Id]] +:: [s0; SetId] +:: [s0; sets the [* Id] identifier for a given index (column of the source +matrix)] +:: [s0; AddKey] +:: [s0; sets up the first index to act as primary key (often used for +SQL tables)] +:: [s0; GetKeyId] +:: [s0; returns primary key identifier (equal to [* GetId(0)])] +:: [s0; AddColumn] +:: [s0; adds a column`-index pair to the table (one data column, one +output column)] +:: [s0; AddColumnAt] +:: [s0; adds a column bound to a given index] +:: [s0; AddRowNumColumn] +:: [s0; adds a column without an index (used for external data)] +:: [s0; GetColumnCount] +:: [s0; returns number of (visual) columns in the table] +:: [s0; FindColumnWithPos] +:: [s0; locates table column according to given index number] +:: [s0; FindColumnWithId] +:: [s0; locates table column according to index identifier] +:: [s0; ColumnAt] +:: [s0; returns the [* ArrayCtrl`::Column] structure describing given column] +:: [s0; HeaderTab] +:: [s0; returns the [* HeaderCtrl`::Column] structure for the given column] +:: [s0; HeaderObject] +:: [s0; returns a reference to the [* HeaderCtrl] object for this table] +:: [s0; SerializeHeader] +:: [s0; serialize header layout information (column widths etc.)] +:: [s0; AddCtrl] +:: [s0; adds an outer control`-index pair to the table (one data column, +one outer Ctrl)] +:: [s0; AddCtrlAt] +:: [s0; adds an outer control bound to a given index] +:: [s0; AddRowNumCtrl] +:: [s0; adds an outer control without an index `- used ([/ seldom]) for +external data] +:: [s0; SetDisplay] +:: [s0; sets display for a given table column or cell] +:: [s0; GetDisplay] +:: [s0; returns column / cell display] +:: [s0; SetCtrl] +:: [s0; sets a [* Ctrl] object for custom editation of a given cell] +:: [s0; GetTotalCy] +:: [s0; returns total row height] +:: [s0; GetLineAt] +:: [s0; locate table row when given an [/ y] position (relative to table +top)] +:: [s0; GetClickColumn] +:: [s0; returns column number of last clicked column (Null if clicked +outside existing rows)] +:: [s0; GetClickRow] +:: [s0; returns row number of last clicked row (Null if clicked outside +existing rows)] +:: [s0; GetClickPos] +:: [s0; returns Point(GetClickColumn(), GetClickRow())]}}&] +[s0; &] +[ {{2337:7663-1 [s0; [* Data setting `& retrieval]] +:: [s0;%- ] +:: [s0; SetCount] +:: [s0; sets number of rows in the array] +:: [s0; SetVirtualCount] +:: [s0; sets number of rows in the array with external data] +:: [s0; GetCount] +:: [s0; returns number of rows] +:: [s0; Clear] +:: [s0; clears array data, identical to [* SetCount(0)]] +:: [s0; Shrink] +:: [s0; shrinks source data matrix to the minimum necessary size] +:: [s0; Get] +:: [s0; returns given Value element of the source data matrix] +:: [s0; GetOriginal] +:: [s0; returns given element of source data matrix before editation] +:: [s0; Set] +:: [s0; sets given element of the source data matrix] +:: [s0; GetKey] +:: [s0; returns given primary key (column #0 in the data matrix)] +:: [s0; GetOriginalKey] +:: [s0; returns `'old`' value of primary key before editation] +:: [s0; GetColumn] +:: [s0; returns value of a given output column (according to its index +mapping)] +:: [s0; GetConvertedColumn] +:: [s0; returns value of a given output column after applying its [* Convert]] +:: [s0; ReadRow] +:: [s0; returns a row of the source data matrix] +:: [s0; Add] +:: [s0; adds a new row at the end of table] +:: [s0; Insert] +:: [s0; inserts a new row into the table] +:: [s0; Remove] +:: [s0; removes a given table row] +:: [s0; SwapUp] +:: [s0; exchanges a table row with the preceding row] +:: [s0; SwapDown] +:: [s0; exchanges a table row with the next row] +:: [s0; Sort] +:: [s0; sorts table rows using a given predicate] +:: [s0; ClearCache] +:: [s0; clears data conversion cache] +:: [s0; InvalidateCache] +:: [s0; invalidates given table row in the conversion cache]}}&] +[s0; &] +[ {{2337:7663-1 [s0; [* Cursor `& selection management]] +:: [s0;%- ] +:: [s0; GetSelectCount] +:: [s0; returns number of currently selected rows] +:: [s0; IsSelection] +:: [s0; checks whether any rows are selected (identical to [* GetSelectCount() +> 0])] +:: [s0; Select] +:: [s0; selects / unselects given row or a series of rows] +:: [s0; IsSelected] +:: [s0; checks whether given row is selected] +:: [s0; ClearSelection] +:: [s0; clears the current selection] +:: [s0; SetCursor] +:: [s0; moves array cursor to a new row] +:: [s0; KillCursor] +:: [s0; removes the cursor away from the table] +:: [s0; CancelCursor] +:: [s0; cancels editation of current row] +:: [s0; IsCursor] +:: [s0; checks whether cursor is in the table (identical to [* GetCursor() +>`= 0])] +:: [s0; GetCursor] +:: [s0; returns current cursor row, `-1 when none] +:: [s0; GoBegin] +:: [s0; moves the cursor to the first table row] +:: [s0; GoEnd] +:: [s0; moves the cursor to the last table row] +:: [s0; GetCursorSc] +:: [s0; returns the location of the cursor row within the table view +area] +:: [s0; ScCursor] +:: [s0; scrolls the table to move the cursor row to given location within +the table view] +:: [s0; CenterCursor] +:: [s0; scrolls the table to move cursor into the middle of the current +view] +:: [s0; ScrollInto] +:: [s0; scrolls the table by minimum amount necessary to make given +row visible] +:: [s0; ScrollIntoCursor] +:: [s0; scrolls the table by minimum amount necessary to make cursor +row visible] +:: [s0; GetScroll] +:: [s0; returns current table scrollbar location] +:: [s0; ScrollTo] +:: [s0; sets table scrollbar location] +:: [s0; Find] +:: [s0; locates table row containing a given element] +:: [s0; FindSetCursor] +:: [s0; moves the cursor to table row containing a given element]}}&] +[s0;3 &] +[s0; &] +[s0; &] +[ {{2337:7663-1 [s0; [* GUI elements]] +:: [s0;%- ] +:: [s0; StdBar] +:: [s0; the default array local menu] +:: [s0; IsModified] +:: [s0; checks modification state of given array cell] +:: [s0; StartEdit] +:: [s0; open current array row for editing] +:: [s0; GetEditColumn] +:: [s0; returns the column being currently edited] +:: [s0; DoEdit] +:: [s0; corresponds to the local menu `'Edit`' function] +:: [s0; DoInsert] +:: [s0; corresponds to the local menu `'Insert`' function] +:: [s0; DoInsertBefore] +:: [s0; corresponds to the local menu `'Insert before`' function] +:: [s0; DoInsertAfter] +:: [s0; corresponds to the local menu `'Insert after`' function] +:: [s0; DoAppend] +:: [s0; corresponds to the local menu `'Append`' function] +:: [s0; DoRemove] +:: [s0; corresponds to the local menu `'Remove`' function] +:: [s0; DoDuplicate] +:: [s0; corresponds to the local menu `'Duplicate`' function] +:: [s0; DoSelectAll] +:: [s0; selects the entire array] +:: [s0; AcceptEnter] +:: [s0; commits the currently edited row and possibly begins insertion +of another row]}}&] +[s0; &] +[ {{2337:7663-1 [s0; [* Notification callbacks]] +:: [s0;%- ] +:: [s0; WhenLeftClick] +:: [s0; left mouse click within the array] +:: [s0; WhenLeftDouble] +:: [s0; left mouse doubleclick within the array] +:: [s0; WhenSel] +:: [s0; called when cursor or selection status of widget changes] +:: [s0; WhenCursor] +:: [s0; called whenever the cursor location changes [/ (deprecated, use +WhenSel)]] +:: [s0; WhenKillCursor] +:: [s0; called when the cursor moves away from the table [/ (deprecated, +use WhenSel)]] +:: [s0; WhenSelection] +:: [s0; called whenever current selection changes [/ (deprecated, use +WhenSel)]] +:: [s0; WhenEnterRow] +:: [s0; called whenever the cursor moves to a new row [/ (deprecated, +use WhenSel)]] +:: [s0; WhenUpdateRow] +:: [s0; called after updating a row] +:: [s0; WhenAcceptRow] +:: [s0; additional row validation callback] +:: [s0; WhenStartEdit] +:: [s0; called after initiating row editation] +:: [s0; WhenAcceptEdit] +:: [s0; called after accepting changes to a given row] +:: [s0; WhenArrayAction] +:: [s0; called whenever array source data changes (after insert / delete +/ edit)] +:: [s0; WhenBar] +:: [s0; can be used to supply custom local menu for the array] +:: [s0; WhenCtrlsAction] +:: [s0; called by [* WhenAction] callbacks of internally created controls]}}&] +[s0; &] +[s0; [*+117 Detailed method description]&] +[s0; &] +[s0; [* Initialization and configuration]&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Reset]()&] +[s2; Clears table rows and resets all array properties to their default +values.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 ShowAppendLine]()&] +[s2; Show an additional pseudo`-row at the table end. When clicked, +a new row is appended to the array.&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 IsEdit]()_[@(0.0.255) const]&] +[s2; Checks whether the array is currently being edited.&] +[s4; [*/ Return value]-|[* true] `= a row is currently open for editing, +[* false] `= array is in normal browsing mode&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 IsInsert]()_[@(0.0.255) const]&] +[s2; Checks whether a new row is currently being inserted.&] +[s4; [*/ Return value]-|[* true] `= newly inserted row is currently being +edited, [* false] when not&] +[s0;* &] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 SetLineCy]([@(0.0.255) int]_[@3 cy])&] +[s2; Sets the (default) array row height. For certain rows, this +can be overriden by the two`-parameter version of this method.&] +[s4; [%-*C@3 cy]-|row height in pixels&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 SetLineCy]([@(0.0.255) int]_[@3 i], [@(0.0.255) int]_[@3 cy])&] +[s2; Sets row height for a given row. This overrides the default +value set by the one`-parameter version of this method.&] +[s4; [%-*C@3 i]-|row index (zero based)&] +[s4; [%-*C@3 cy]-|row height in pixels, [* Null] `= use default row height&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetLineCy]()_[@(0.0.255) const]&] +[s2; Returns default array row height.&] +[s4; [*/ Return value]-|row height in pixels&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetLineY]([@(0.0.255) int]_[@3 i])_[@(0.0.255) const]&] +[s2; Returns [/ y] position of given array row (the pixel distance +between the top of first array row and [/ i]`-th row, i.e. sum +of heights of all rows above this row).&] +[s4; [%-*C@3 i]-|row index (zero based)&] +[s4; [*/ Return value]-|Vertical position of row top in pixels (relative +to array beginning)&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetLineCy]([@(0.0.255) int]_[@3 i])_[@(0.0.255) const]&] +[s2; Returns the height of a given row (either the row`-specific +row height, or, when Null, the default row height).&] +[s4; [%-*C@3 i]-|row index (zero based)&] +[s4; [*/ Return value]-|row height in pixels&] +[s0;* &] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 AppendLine]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; The AppendLine property controls whether the array displays +an additional `'append`' row after its last (real) row. &] +[s4; [%-*C@3 b]-|[* true] `= display appending row, [* false] `= hide it&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoAppendLine]()&] +[s2; Hide the appending line (identical to [* AppendLine(false)]).&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 IsAppendLine]()_[@(0.0.255) const]&] +[s2; Returns current state of the [* AppendLine] property.&] +[s4; [*/ Return value]-|[* true] `= display appending pseudo`-row at the +end of the array&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 Inserting]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Enable / disable inserting new rows in the array (no matter +which insertion mechanism is selected).&] +[s4; [%-*C@3 b]-|[* true] `= enable insertion, [* false] `= disable it&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoInserting]()&] +[s2; Disables row insertion (identical to [* Inserting(false)]).&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 IsInserting]()_[@(0.0.255) const]&] +[s2; Returns current state of the [* Inserting] property.&] +[s4; [*/ Return value]-|[* true] `= row insertion is enabled, [* false] +when not&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 Appending]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Enable / disable adding new rows at the table end.&] +[s4; [%-*C@3 b]-|[* true] `= enable row appending, [* false] `= disable +it&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 IsAppending]()_[@(0.0.255) const]&] +[s2; Returns current state of the [* Appending] property.&] +[s4; [*/ Return value]-|[* true] `= appending rows is enabled, [* false] +when not.&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 AutoAppending]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Same as [* Appending] but Enter pressed when editing a new row +accepts it and adds another one at the table end.&] +[s4; [%-*C@3 b]-|[* true ]to enable the mode&] +[s4; [*/ Return value]-|[* `*this]&] +[s0; &] +[s5;K%- [@(0.0.255) bool]_[@0 IsAutoAppending]()_[@(0.0.255) const]&] +[s2; Returns current state of [* AutoAppending] property.&] +[s4; [*/ Return value]-|[* true] `= [* AutoAppending ]is active&] +[s0; &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 BeforeAfterInserting]()&] +[s2; Activate before / after row insertion mechanism ([* Insert] hotkey +`= before).&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 AfterBeforeInserting]()&] +[s2; Activate before / after row insertion mechanism ([* Insert] hotkey +`= after)&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 Duplicating]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Enable / disable row duplication. Note that this property only +controls whether the `'Duplicate`' item should be present in +the array local menu. Of course, nothing can prevent you from +supporting duplication in some other way, or from calling the +[* DoDuplicate] method as you see fit.&] +[s4; [%-*C@3 b]-|[* true] `= enable duplication, [* false] `= disable it&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoDuplicating]()&] +[s2; Disable row duplication (identical to [* Duplicating(false)]).&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 IsDuplicating]()_[@(0.0.255) const]&] +[s2; Returns the state of the [* Duplicating] property.&] +[s4; [*/ Return value]-|[* true] `= local menu offers row duplication, +[* false] when not&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoInsertAppend]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Enables / disables the auto`-append mechanism (see above section +on inserting rows).&] +[s4; [%-*C@3 b]-|[* true] `= disable InsertAppend mechanism, [* false] `= +enable it (the default)&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 IsEditing]()_[@(0.0.255) const]&] +[s2; Checks whether at least one array column supports editing (whether +it is possible to [/ open] a row for editation).&] +[s4; [*/ Return value]-|[* true] `= row editing is possible, [* false] when +not&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 Removing]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Enable / disable deleting rows from the table.&] +[s4; [%-*C@3 b]-|[* true] `= enable deletion, [* false] `= disable it&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoRemoving]()&] +[s2; Disable deleting table rows (identical to [* Removing(false)]).&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 IsRemoving]()_[@(0.0.255) const]&] +[s2; Returns current state of the [* Removing] property.&] +[s4; [*/ Return value]-|[* true] `= row deletion is enabled, [* false ]when +not&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 AskRemove]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Sets whether the user must manually confirm array row deletion. +When set to [* true], every time a row is to be deleted, a confirmation +dialog pops up. When set to [* false], rows are deleted automatically +without any further confirmation.&] +[s4; [%-*C@3 b]-|[* true] `= prompt user to confirm row deletion, [* false] +`= delete rows instantly&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoAskRemove]()&] +[s2; Disables user confirmation of row deletion (equivalent to [* AskRemove(false)]).&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 IsAskRemove]()_[@(0.0.255) const]&] +[s2; Returns current state of the [* AskRemove] property.&] +[s4; [*/ Return value]-|[* true] `= user confirmation is needed to delete +rows, [* false] `= rows are deleted immediately&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 Moving]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Enable / disable row swapping. When set to [* true], it is possible +to move an array row up and down by swapping it with the previous +/ next row. This can be used to reorder array rows in a visually +straightforward manner.&] +[s4; [%-*C@3 b]-|[* true] `= offer row moving in the local menu, [* false] +`= don`'t&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 IsMoving]()_[@(0.0.255) const]&] +[s2; Returns current state of the [* Moving] property.&] +[s4; [*/ Return value]-|[* true] `= local menu supports row swapping, +[* false] `= it doesn`'t&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 Header]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Show / hide the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us^ HeaderCtrl] +object for this table.&] +[s4; [%-*C@3 b]-|[* true] `= show table header, [* false] `= hide it&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoHeader]()&] +[s2; Hide table header (equivalent to [* Header(false)]).&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 Track]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Animate array column resizing. This is equivalent to setting +the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us`#`:`:HeaderCtrl`:`:Track`(bool`)^ T +rack] property in the array HeaderCtrl.&] +[s4; [%-*C@3 b]-|[* true] `= repaint the array repeatedly while dragging +column widths, [* false] `= regenerate everything only after drag +`& drop is finished.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoTrack]()&] +[s2; Do not animate array column resizing (equivalent to [* Track(false)]).&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 VertGrid]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Show / hide vertical array grid lines (separating array columns).&] +[s4; [%-*C@3 b]-|[* true] `= show vertical grid lines, [* false] `= hide +them&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoVertGrid]()&] +[s2; Hide vertical grid lines (equivalent to [* VertGrid(false)]).&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 HorzGrid]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Show / hide horizontal grid lines (separating array rows).&] +[s4; [%-*C@3 b]-|[* true] `= show horizontal grid lines, [* false] `= hide +them&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoHorzGrid]()&] +[s2; Hide horizontal grid lines (equivalent to [* HorzGrid(false)]).&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 Grid]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Show / hide both horizontal and vertical grid lines (equivalent +to [* HorzGrid(b).VertGrid(b)]).&] +[s4; [%-*C@3 b]-|[* true] `= show grid line matrix, [* false] `= hide all +grid lines&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoGrid]()&] +[s2; Hide horizontal and vertical grid lines (equivalent to [* Grid(false)]).&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 GridColor]([^`:`:Color^ Color]_[@3 c])&] +[s2; Sets the color for grid lines.&] +[s4; [%-*C@3 c]-|new grid line color&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;:`:`:ArrayCtrl`:`:EvenRowColor`(`:`:Color:%- ArrayCtrl`&_EvenRowColor(Color_[@3 pap +er][@0 _`=_Blend(SColorHighlight, SColorPaper, ][@3 220][@0 ), Color_][@3 ink][@0 _`=_SColo +rText)]&] +[s2; Sets the paper and ink (background and foreground) color for +even array rows. In certain cases setting a different background +color for odd and even rows helps to simplify visual orientation +in the arrays (especially when the array has many columns).&] +[s2; [* Note:] the even / odd row terminology refers to the natural +array row numbering, so first array row is [/ odd] and the second +is [/ even]. This is in contrast to the zero`-baesd integral row +indexing, where the first array row has index 0.&] +[s4; [%-*C@3 paper]-|background color to use for second, fourth, sixth +etc. array row&] +[s4; [%-*C@3 ink]-|foreground color for even rows&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 OddRowColor]([^`:`:Color^ Color]_[@3 paper]_`=_SCol +orInfo, [^`:`:Color^ Color]_[@3 ink]_`=_SColorText)&] +[s2; Sets the paper and ink (background and foreground) color for +odd array rows.&] +[s4; [%-*C@3 paper]-|background color to use for first, third, fifth +etc. array row&] +[s4; [%-*C@3 ink]-|foreground color for odd rows&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoCursor]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Turns on / off highlighting cursor row.&] +[s4; [%-*C@3 b]-|[* true] `= do not highlight cursor row, [* false] `= default +behaviour (cursor row is shown in inverse colors)&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 MouseMoveCursor]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Enables / disables automatical cursor row switching as the mouse +cursor moves over the array rows.&] +[s4; [%-*C@3 b]-|[* true] `= automatically switch cursor row, [* false] +`= only upon clicks and keyboard navigation&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoMouseMoveCursor]()&] +[s2; Disable automatical cursor row switching (equivalent to [* MouseMoveCursor(false)]) +.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 AutoHideSb]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; When set to [* true], the vertical scrollbar at the right array +edge is displayed only when the total row height exceeds the +array view height. When set to [* false], the scrollbar is shown +all the time.&] +[s4; [%-*C@3 b]-|[* true] `= show / hide the scrollbar as necessary, [* false] +`= display it unconditionally&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoAutoHideSb]()&] +[s2; Display vertical scrollbar all the time (equivalent to [* AutoHideSb(false)]).&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 MultiSelect]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Enable / disable multiple row selection. &] +[s4; [%-*C@3 b]-|[* true] `= allow selecting multiple rows at the same +time, [* false] `= only one row at a time&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K:`:`:ArrayCtrl`:`:NoBackground`(bool`):%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoBackgr +ound]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Sets the widget into transparent mode `- background is not painted +and Transparent is activated `- a result, anything painted behind +the widget is visible, allowing client code to provide any background +it needs.&] +[s0; &] +[s5;K:`:`:ArrayCtrl`:`:PopUpEx`(bool`):%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 PopUpEx]([@(0.0.255) b +ool]_[@3 b]_`=_true)&] +[s2; Activates showing small popup windows with cell content when +mouse is over and cell is to big to fit current dimensions. Default +is activated.&] +[s0; &] +[s5;K:`:`:ArrayCtrl`:`:NoPopUpEx`(`):%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoPopUpEx]()&] +[s2; Same as PopUpEx(false).&] +[s0; &] +[s5;K:`:`:ArrayCtrl`:`:NoFocusSetCursor`(`):%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoFocusS +etCursor]()&] +[s2; Normally, when ArrayCtrl gets a focus and no cursor is set (and +cursor is allowed and there is at least one line), ArrayCtrl +a sets the cursor to the first line. This modifier deactivates +this feature.&] +[s0; &] +[s5;K:`:`:ArrayCtrl`:`:MovingHeader`(bool`):%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 MovingHe +ader]([@(0.0.255) bool]_[@3 b])&] +[s2; Activates dragging columns in header. Default is active.&] +[s0; &] +[s5;K:`:`:ArrayCtrl`:`:NoMovingHeader`(`):%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 NoMovingHe +ader]()&] +[s2; Same as MovingHeader(false).&] +[s0; &] +[s5;K:`:`:ArrayCtrl`:`:AllSorting`(`):%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 AllSorting]()&] +[s2; If set, Sorting() is invoked for all columns (added either before +or after this modifier is called).&] +[s0; &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 ColumnWidths]([@(0.0.255) const]_[@(0.0.255) char]_ +`*[@3 s])&] +[s2; Initializes column widths based on a text string containing +blank`-separated decimal numbers, e.g. `"1 4 6 4 1`".&] +[s4; [%-*C@3 s]-|control string defining column widths&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:String^ String]_[@0 RowFormat]([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 s])&] +[s2; Formats a text by substituting [* %s] with the array`-specific +term for `'row`' (as set by the [* RowName] property). This is +used for array local menu items.&] +[s4; [%-*C@3 s]-|[* Format]`-like string to substitute.&] +[s4; [*/ Return value]-|&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl^ ArrayCtrl]`&_[@0 RowName]([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 s +])&] +[s2; Sets the array`-specific term for `'row`'. This can be used +to customize the local menu terminology according to the logical +content of the array. For instance, when you have an array with +the list of employees, you can call [* RowName(`"employee`")] and +the menu items will then read [/ `'Insert new employee`', `'Delete +employee`'] etc.&] +[s4; [%-*C@3 s]-|the term to substitute for `'array row`' in menu items&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;* &] +[s0;* &] +[s0; [* Column structure programming]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:IdInfo^ IdInfo]`&_[@0 IndexInfo]([@(0.0.255) int]_[@3 ii])&] +[s2; Returns a reference to the [* IdInfo] structure describing a given +array index (column in the source data matrix).&] +[s4; [%-*C@3 ii]-|zero`-based ordinal number of the array index&] +[s4; [*/ Return value]-|IdInfo reference for the given index&] +[s0;3 &] +[s5;K%- IdInfo`&_[@0 IndexInfo]([^`:`:Id^ Id]_[@3 id])&] +[s2; Returns a reference to the [* IdInfo] structure describing a given +array index.&] +[s4; [%-*C@3 id]-|the [* Id] index identifier&] +[s4; [*/ Return value]-|IdInfo reference for the given index&] +[s0;3 &] +[s5;K%- IdInfo`&_[@0 AddIndex]([^`:`:Id^ Id]_[@3 id])&] +[s2; Adds a new index to the array and assign it a given [* Id] identifier.&] +[s4; [%-*C@3 id]-|new index identifier&] +[s4; [*/ Return value]-|A reference to the [* IdInfo ]structure describing +the newly added index. The reference can be used to set additional +index properties.&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:IdInfo^ IdInfo]`&_[@0 AddIndex]()&] +[s2; Adds a new index (without an identifier) to the array.&] +[s4; [*/ Return value]-|A reference to the [* IdInfo] structure describing +the newly added index.&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetIndexCount]()_[@(0.0.255) const]&] +[s2; Returns number of indices in the array.&] +[s4; [*/ Return value]-|index count&] +[s0;3 &] +[s5;K%- [^`:`:Id^ Id]_[@0 GetId]([@(0.0.255) int]_[@3 ii])_[@(0.0.255) const]&] +[s2; Returns the identifier of a given index (addresses by its zero`-based +ordinal number).&] +[s4; [%-*C@3 ii]-|zero`-based ordinal number of the queried index&] +[s4; [*/ Return value]-|index identifier or [* Null] if the index has +no identifier&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetPos]([^`:`:Id^ Id]_[@3 id])_[@(0.0.255) const]&] +[s2; Returns the zero`-based positional number of the array index +with a given identifier.&] +[s4; [%-*C@3 id]-|array index identifier&] +[s4; [*/ Return value]-|zero`-based index number, `-1 when not found&] +[s0;3 &] +[s5;K%- IdInfo`&_[@0 SetId]([@(0.0.255) int]_ii, [^`:`:Id^ Id]_[@3 id])&] +[s2; Sets the identifier for a given array index. This can be used +to set or modify the identifier for a previously added index.&] +[s4; [%-*C@3 ii]-|zero`-based ordinal number of the index to set the +identifier for&] +[s4; [%-*C@3 id]-|new index identifier ([* Null] when none)&] +[s4; [*/ Return value]-|A reference to the [* IdInfo] descriptive structure +for the [/ ii]`-th index. The reference can be used to set additional +properties of the altered index.&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:IdInfo^ IdInfo]`&_[@0 AddKey]([^`:`:Id^ Id]_[@3 id])&] +[s2; Adds a [/ primary key] index to the table. The [/ primary key] is +just another name for the first index (index with ordinal number +0). This is just a handy convention often used for SQL`-based +tables. [* AddKey] must be called only once after array initialization +or [* Reset] and before calling any other functions adding indices +(like [* AddIndex], [* AddColumn] or [* AddCtrl]). When [* GetIndexCount() +> 0 ]before the call to this function, this method fails with +an [* ASSERT].&] +[s4; [%-*C@3 id]-|primary key identifier&] +[s4; [*/ Return value]-|A reference to the descriptive [* IdInfo] structure +for the primary key index.&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:IdInfo^ IdInfo]`&_[@0 AddKey]()&] +[s2; Adds a primary key index without an identifier to the table. +This is equivalent to [* AddKey(Null)].&] +[s4; [*/ Return value]-|A reference to the [* IdInfo] structure describing +the primary key index.&] +[s0;3 &] +[s5;K%- [^`:`:Id^ Id]_[@0 GetKeyId]()_[@(0.0.255) const]&] +[s2; Returns primary key identifier for this table. This is equivalent +to calling [* GetId(0)].&] +[s4; [*/ Return value]-|primary key index identifier&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 AddColumn]([@(0.0.255) const]_[@(0.0.255) ch +ar]_`*[@3 text]_`=_NULL, [@(0.0.255) int]_[@3 w]_`=_[@3 0])&] +[s2; Add a new column`-index pair to the table. The function adds +a (source) index and an (output) column and sets the index as +the data source for the column. This is the most common method +for adding columns to the array.&] +[s4; [%-*C@3 text]-|column name (displayed in the array header)&] +[s4; [%-*C@3 w]-|logical relative column width&] +[s4; [*/ Return value]-|A reference to the [* Column] structure describing +the newly added column. This can be used to set additional properties +for the newly added column and the corresponding header tab.&] +[s0;3 &] +[s5;K%- Column`&_[@0 AddColumn]([^`:`:Id^ Id]_[@3 id], [@(0.0.255) const]_[@(0.0.255) char]_`*[@3 t +ext], [@(0.0.255) int]_[@3 w]_`=_[@3 0])&] +[s2; Adds a new column`-index pair to the table. This is equivalent +to the above two`-parameter version but, in addition, the method +sets the [* Id] identifier for the newly created index.&] +[s4; [%-*C@3 id]-|new index identifier&] +[s4; [%-*C@3 text]-|column name (displayed in the header)&] +[s4; [%-*C@3 w]-|logical relative column width&] +[s4; [*/ Return value]-|A reference to the [* Column] structure describing +the newly added array column.&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 AddColumnAt]([@(0.0.255) int]_[@3 ii], +[@(0.0.255) const]_[@(0.0.255) char]_`*[@3 text], [@(0.0.255) int]_[@3 w]_`=_[@3 0])&] +[s2; Adds a new column to the table and binds it to a given source +data index.&] +[s4; [%-*C@3 ii]-|zero`-based ordinal number of the index to use as +source for this column&] +[s4; [%-*C@3 text]-|column name (displayed in the header)&] +[s4; [%-*C@3 w]-|logical relative column width&] +[s4; [*/ Return value]-|A reference to the [* Column] structure describing +the newly added array column.&] +[s0;3 &] +[s5;K%- Column`&_[@0 AddColumnAt]([^`:`:Id^ Id]_[@3 id], [@(0.0.255) const]_[@(0.0.255) char]_`* +[@3 text], [@(0.0.255) int]_[@3 w]_`=_[@3 0])&] +[s2; Adds a new column to the table and binds it to a given source +data index.&] +[s4; [%-*C@3 id]-|identifier of the index to use as source for the newly +added column&] +[s4; [%-*C@3 text]-|column name (displayed in the header)&] +[s4; [%-*C@3 w]-|logical relative column width&] +[s4; [*/ Return value]-|A reference to the [* Column] structure describing +the newly added array column.&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 AddRowNumColumn]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[@3 text], [@(0.0.255) int]_[@3 w]_`=_[@3 0])&] +[s2; Adds a new column to the table. The newly added column has no +source index, it is assumed to have an external data source. +Instead of the source data [* Value] object, the current zero`-based +row number is passed to the column`'s [* Convert] / [* Display]. +This allows the host application to decode somehow the external +data based on the row number. In the current U`+`+ version, the +[/ RowNum columns] cannot be edited (using the standard array inline +editation mechanism).&] +[s4; [%-*C@3 text]-|column name (displayed in the header)&] +[s4; [%-*C@3 w]-|logical relative column width&] +[s4; [*/ Return value]-|A reference to the [* Column] structure describing +the newly added array column.&] +[s0;3 &] +[s5;K%- IdInfo`&_[@0 AddCtrl]([^`:`:Ctrl^ Ctrl]`&_[@3 ctrl])&] +[s2; Adds a new index`-control pair to the table; the index keeps +the source data and the external control is used to edit it. +The ArrayCtrl handles data transfer between the source data matrix +and the external control. The method returns a reference the +[* IdInfo] descriptive structure for the newly added index.&] +[s2; [* Note:] it is good to keep in mind that there are a few differences +between the ordinary array cell editors and the freestanding +edit controls. In contrast with the cell editors, which appear +only when the row is opened for editing, the freestanding controls +are present all the time. For instance, the ArrayCtrl automatically +disables the controls when the cursor moves away from the table +(using [* KillCursor]) and re`-enables them after it comes back. +This is important e.g. if you want to implement an additional +logic enabling some of the controls only depending on the circumstances; +in such case, you have to use one of the notification callbacks +(like [* WhenEnterRow]) to force your additional behaviour on +the controls.&] +[s4; [%-*C@3 ctrl]-|control to attach to the given index&] +[s4; [*/ Return value]-|a reference to the IdInfo structure describing +the newly added index&] +[s0;3 &] +[s5;K%- IdInfo`&_[@0 AddCtrl]([^`:`:Id^ Id]_[@3 id], [^`:`:Ctrl^ Ctrl]`&_[@3 ctrl])&] +[s2; Adds a new index`-control pair to the table. This is identical +to the above version with the only difference that the newly +added index is assigned an [* Id] identifier at the same time.&] +[s4; [%-*C@3 id]-|the identifier to assign to the newly created index&] +[s4; [%-*C@3 ctrl]-|freestanding control used to edit the given index&] +[s4; [*/ Return value]-|a reference to the IdInfo structure describing +the newly added index&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 AddCtrlAt]([@(0.0.255) int]_[@3 ii], [^`:`:Ctrl^ Ctrl]`&_[@3 ctrl]) +&] +[s2; Adds a new control to the table and binds it to the index with +given ordinal number. You can use this method to create the binding +between the control and an arbitrary source index.&] +[s4; [%-*C@3 ii]-|zero`-based ordinal number of the index to bind to +this control&] +[s4; [%-*C@3 ctrl]-|freestanding control used to edit the [/ ii]`-th data +index&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 AddCtrlAt]([^`:`:Id^ Id]_[@3 id], [^`:`:Ctrl^ Ctrl]`&_[@3 ctrl])&] +[s2; Adds a new control to the table and binds it to the index with +given identifier.&] +[s4; [%-*C@3 id]-|identifier of the index to bind to this control&] +[s4; [%-*C@3 ctrl]-|freestanding control used to edit the index with +identifier [/ id]&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 AddRowNumCtrl]([^`:`:Ctrl^ Ctrl]`&_[@3 ctrl])&] +[s2; Adds a new freestanding control to the table. The control is +not bound to any source data index. During cursor movement in +the array, array uses the control`'s [* SetData] method to set +it to the current row number. The control must be ready for that +and it can use the row number value to decode some externally +located data for display. In the current U`+`+ version, such +controls cannot be used for editation (there is currently no +clean way to store the edited data back to its external storage).&] +[s4; [%-*C@3 ctrl]-|[/ RowNum]`-based freestanding editor control&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetColumnCount]()_[@(0.0.255) const]&] +[s2; Returns the current number of (output) columns in the array.&] +[s4; [*/ Return value]-|number of columns&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 FindColumnWithPos]([@(0.0.255) int]_[@3 pos])_[@(0.0.255) const]&] +[s2; Returns the zero`-based index of a column based on its source +data index.&] +[s4; [%-*C@3 pos]-|ordinal number of the source index&] +[s4; [*/ Return value]-|ordinal number of the column having the given +index as its source, `-1 when not found&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 FindColumnWithId]([^`:`:Id^ Id]_[@3 id])_[@(0.0.255) const]&] +[s2; Returns the zero`-based index of a column based on its source +data index.&] +[s4; [%-*C@3 id]-|source index identifier&] +[s4; [*/ Return value]-|ordinal number of the column having the given +index as its source, `-1 when not found&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 ColumnAt]([@(0.0.255) int]_[@3 i])&] +[s2; Returns the [* Column] structure describing a given column.&] +[s4; [%-*C@3 i]-|zero`-based column index&] +[s4; [*/ Return value]-|a reference to the [* Column] structure describing +the given column&] +[s0;3 &] +[s5;K%- [@(0.0.255) const]_[^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 ColumnAt]([@(0.0.255) int +]_[@3 i])_[@(0.0.255) const]&] +[s2; Returns the [* Column] structure describing a given column. This +is merely the const version of the above method; it can be used +to query properties for the column.&] +[s4; [%-*C@3 i]-|zero`-based column index&] +[s4; [*/ Return value]-|a constant reference to the [* Column] structure +describing the given column&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 ColumnAt]([^`:`:Id^ Id]_[@3 id])&] +[s2; Returns the [* Column] structure describing a column with given +source index.&] +[s4; [%-*C@3 id]-|identifier of the index used as source for the column&] +[s4; [*/ Return value]-|a reference to the [* Column] structure describing +the given column&] +[s0;3 &] +[s5;K%- [@(0.0.255) const]_[^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 ColumnAt]([^`:`:Id^ Id]_[@3 i +d])_[@(0.0.255) const]&] +[s2; Returns a constant reference to the [* Column] structure describing +a column with given source index. This is the constant version +of the above method; it can be used to query properties for the +column.&] +[s4; [%-*C@3 id]-|identifier of the index used as source for the column&] +[s4; [*/ Return value]-|a constant reference to the [* Column] structure +describing the given column&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl`:`:Column^ HeaderCtrl`::Column]`&_[@0 HeaderTab]([@(0.0.255) int]_[@3 i +])&] +[s2; Returns the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us`#`:`:HeaderCtrl`:`:Column`:`:Min`(int`)^ H +eaderCtrl`::Column] descriptive structure for the given column. +The correspondence between the array columns and the header tabs +is 1:1, so that the indices of both are always the same ([* array.GetColumnCount() +`=`= array.HeaderObject().GetCount()] holds all the time).&] +[s4; [%-*C@3 i]-|zero`-based column index&] +[s4; [*/ Return value]-|a reference to the [* HeaderCtrl`::Column] structure. +This can be used to set additional properties of the header column +(e.g. column width constraints, font and icon for the column +title etc.)&] +[s0;3 &] +[s5;K%- [@(0.0.255) const]_[^`:`:HeaderCtrl`:`:Column^ HeaderCtrl`::Column]`&_[@0 HeaderTab]( +[@(0.0.255) int]_[@3 i])_[@(0.0.255) const]&] +[s2; Returns a constant reference to the [* HeaderCtrl`::Column] structure +for the given column.&] +[s4; [%-*C@3 i]-|zero`-based column index&] +[s4; [*/ Return value]-|a reference to the [* HeaderCtrl`::Column] structure. +This can be used to set additional properties of the header column +(e.g. column width constraints, font and icon for the column +title etc.)&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl`:`:Column^ HeaderCtrl`::Column]`&_[@0 HeaderTab]([^`:`:Id^ Id]_[@3 id +])&] +[s2; Returns the [* HeaderCtrl`::Column] descriptive structure for the +column bound to a given source index.&] +[s4; [%-*C@3 id]-|identifier of the index used as source for the column&] +[s4; [*/ Return value]-|a reference to the [* HeaderCtrl`::Column] structure&] +[s0;3 &] +[s5;K%- [@(0.0.255) const]_[^`:`:HeaderCtrl`:`:Column^ HeaderCtrl`::Column]`&_[@0 HeaderTab]( +[^`:`:Id^ Id]_[@3 id])_[@(0.0.255) const]&] +[s2; Returns a constant reference to the [* HeaderCtrl`::Column] descriptive +structure for the column bound to a given source index.&] +[s4; [%-*C@3 id]-|identifier of the index used as source for the column&] +[s4; [*/ Return value]-|a constant reference to the [* HeaderCtrl`::Column] +structure&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 HeaderObject]()&] +[s2; Returns a non`-constant reference to the [* HeaderCtrl] object +for this table. The reference can be further used to alter properties +of the table header (tab visibility, header visual mode and so +on).&] +[s4; [*/ Return value]-|A non`-constant reference to the table HeaderCtrl +object.&] +[s0;3 &] +[s5;K%- [@(0.0.255) const]_[^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 HeaderObject]()_[@(0.0.255) co +nst]&] +[s2; This is just the constant version of the above method; when +called on a constant [* ArrayCtrl] reference, it returns a constant +reference to its underlying HeaderCtrl object which can be then +used to query additional header information.&] +[s4; [*/ Return value]-|A constant reference to the table HeaderCtrl +object.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 SerializeHeader]([^`:`:Stream^ Stream]`&_[@3 s])&] +[s2; Serializes all information pertaining to the array header (mainly +the user`-set column widths). This is equivalent to calling [* HeaderObject().Seria +lize(s)]. The main purpose of this function is to allow storing +header configuration to be restored upon opening the dialog or +the application for the next time. This function is now deprecated +in favor of SerializeSettings.&] +[s4; [%-*C@3 s]-|the [*^topic`:`/`/Core`/src`/Stream`$en`-us^ Stream] +object to serialize the header to/from&] +[s0;3 &] +[s5;K:`:`:ArrayCtrl`:`:SerializeSettings`(`:`:Stream`&`):%- [@(0.0.255) void]_[@0 Seriali +zeSettings]([^`:`:Stream^ Stream]`&_[@3 s])&] +[s2; Serializes all information pertaining to the array header (mainly +the user`-set column widths) and the setting of sort column. +The main purpose of this function is to allow storing configuration +to be restored upon opening the dialog or the application for +the next time.&] +[s0; &] +[s5;K%- [@(0.0.255) void]_[@0 SetDisplay]([@(0.0.255) int]_[@3 i], [@(0.0.255) int]_[@3 j], +[@(0.0.255) const]_[^`:`:Display^ Display]`&_[@3 d])&] +[s2; Sets the [* Display] object for a given array cell.&] +[s2;* &] +[s2; [* Note:] the ownership to the Display object is not transferred +by this call. The ArrayCtrl stores a mere pointer to it and it +is the responsibility of the programmer to keep the Display object +alive as long as necessary (until the array is shut down or the +cell display changed via another call to SetDisplay). In fact, +most Display`-based objects don`'t support data copying at all. +In any case, copying Displays is not a very good practice and +is very prone to slicing (as most actual Displays are actually +derived classes with additional data members).&] +[s2; &] +[s2; In many cases it would be relatively safe to assume that the +Display is not used unless the array is actually painted (e.g., +when the control is not bound to a parent or when its view has +zero size), but it is not a very wise practice and it can fail +in very weird ways under special circumstances (like making screenshots +or graphical exports from the array control).&] +[s2; &] +[s4; [%-*C@3 i]-|zero`-based row index&] +[s4; [%-*C@3 j]-|zero`-based column index&] +[s4; [%-*C@3 d]-|display to use&] +[s0;3 &] +[s5;K%- [@(0.0.255) const]_[^`:`:Display^ Display]`&_[@0 GetDisplay]([@(0.0.255) int]_[@3 row], + [@(0.0.255) int]_[@3 col])&] +[s2; Returns a reference to the Display object for the given array +cell.&] +[s4; [%-*C@3 row]-|zero`-based row index&] +[s4; [%-*C@3 col]-|zero`-based column index&] +[s4; [*/ Return value]-|a reference to the Display object.&] +[s0;3 &] +[s5;K%- [@(0.0.255) const]_[^`:`:Display^ Display]`&_[@0 GetDisplay]([@(0.0.255) int]_[@3 col]) +&] +[s2; Returns a reference to the Display object for the given array +column.&] +[s4; [%-*C@3 col]-|zero`-based column index&] +[s4; [*/ Return value]-|constant reference to the column Display&] +[s0;3 &] +[s5;K:`:`:ArrayCtrl`:`:SetCtrl`(int`,int`,`:`:Ctrl`&`,bool`):%- [^`:`:Ctrl^ Ctrl]`&_[@0 S +etCtrl]([@(0.0.255) int]_[@3 i], [@(0.0.255) int]_[@3 j], [^`:`:Ctrl^ Ctrl]`& +[@3 newctrl, ][@(0.0.255) bool][@3 value] `= true)&] +[s2; Sets an external control to use as the editor for a single array +cell. Naturally, the same Ctrl object cannot be used as the editor +for multiple array cells. &] +[s4; [%-*C@3 i]-|zero`-based row index&] +[s4; [%-*C@3 j]-|zero`-based column index&] +[s4; [%-*C@3 newctrl]-|the control to bind to the given array cell&] +[s4; [%-*C@3 value]-|the value of Ctrl is the value of column; if false, +value of ctrl is independent&] +[s4; [*/ Return value]-|[* `*newctrl]&] +[s0;* &] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetTotalCy]()_[@(0.0.255) const]&] +[s2; Returns total height of the array (sum of the individual line +heights for all array rows)&] +[s4; [*/ Return value]-|array height in pixels&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetLineAt]([@(0.0.255) int]_[@3 y])_[@(0.0.255) const]&] +[s2; Locates the array row according to given [/ y] coordinate (such +array row [/ r] for which [* GetLineY(r) <`= y `&`& GetLineY(r) `+ +GetLineCy(r) > y]).&] +[s4; [%-*C@3 y]-|vertical pixel coordinate to locate&] +[s4; [*/ Return value]-|zero`-based row number or `-1 when not found&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetClickColumn]()_[@(0.0.255) const]&] +[s2; Returns column index of the last clicked column in the array. +If the click happens past the last row of array, returns Null.&] +[s4; [*/ Return value]-|zero`-based index of the relevant column&] +[s0;* &] +[s5;K%- [@(0.0.255) int]_[@0 GetClickRow]()_[@(0.0.255) const]&] +[s2; Returns column index of the last clicked row in the array. If +the click happens past the last row of array, returns Null.&] +[s4; [*/ Return value]-|zero`-based index of the relevant column&] +[s0; &] +[s5;K%- [^`:`:Point^ Point]_[@0 GetClickPos]()_[@(0.0.255) const]&] +[s4; [*/ Return value]-|[* Point(GetClickColumn(), GetClickRow())].&] +[s0; &] +[s0;* &] +[s0; [* Data setting and retrieval]&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 SetCount]([@(0.0.255) int]_[@3 c])&] +[s2; Sets the number of rows in the array. This extends or trims +the source matrix as necessary. When using the Ctrl`-based individual +cell editors, as a side`-effect of this call some controls can +be constructed or destroyed.&] +[s4; [%-*C@3 c]-|new row count&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 SetVirtualCount]([@(0.0.255) int]_[@3 c])&] +[s2; Sets the number of rows in an array with external data. This +makes sense only when all the [/ Column`'s] and [/ Ctrl`'s] of the +array are [/ rownum]`-based. The function doesn`'t physically allocate +any source data matrix space, it just makes the array `'think`' +it has [/ c] rows (this is of course necessary for the Paint routine, +for cursor / selection management and so on).&] +[s2; [* Note:] in the current implementation, selection flags for the +individual rows are kept in the row objects. Therefore it is +not very wise to use multiselection for arrays with external +data, because as soon as the last row is selected, all row storage +structures are allocated as a side effect to keep the selection +flags.&] +[s4; [%-*C@3 c]-|new `'virtual`' number of rows&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetCount]()_[@(0.0.255) const]&] +[s2; Returns the number of rows in the array. In fact, this returns +the maximum of the number of `'real`' source matrix rows (as +set by the SetCount / Add / Insert methods) and the `'virtual`' +row count (as se by SetVirtualCount). By checking the implementation +of this method, you can easily find that, simply,&] +[s2; &] +[s2; [C int ArrayCtrl`::GetCount() const `{]&] +[s2; [C -|-|return max(virtualcount, array.GetCount());]&] +[s2; [C `}]&] +[s2; &] +[s4; [*/ Return value]-|Number of rows in the array.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Clear]()&] +[s2; Clears the array source data matrix and sets the virtual row +count to 0.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Shrink]()&] +[s2; Shrinks the source data array, i.e. reallocates the data to +the minimum required memory space.&] +[s0;3 &] +[s5;K%- [^`:`:Value^ Value]_[@0 Get]([@(0.0.255) int]_[@3 i], [@(0.0.255) int]_[@3 ii])_[@(0.0.255) c +onst]&] +[s2; Returns the value at a given location in the source data matrix.&] +[s4; [%-*C@3 i]-|zero`-based row number&] +[s4; [%-*C@3 ii]-|zero`-based index ordinal number&] +[s4; [*/ Return value]-|value at the given location in the source data +matrix&] +[s0;3 &] +[s5;K%- [^`:`:Value^ Value]_[@0 Get]([@(0.0.255) int]_[@3 i], [^`:`:Id^ Id]_[@3 id])_[@(0.0.255) co +nst]&] +[s2; Returns the value at a given location in the source data matrix. +In this version, the source indices are addressed by their identifiers.&] +[s4; [%-*C@3 i]-|zero`-based row number&] +[s4; [%-*C@3 id]-|source index identifier&] +[s4; [*/ Return value]-|value at the given location in the source data +matrix&] +[s0;3 &] +[s5;K%- [^`:`:Value^ Value]_[@0 Get]([@(0.0.255) int]_[@3 ii])_[@(0.0.255) const]&] +[s2; Returns the value of a given source index at the currently active +cursor row. This is equivalent to [* Get(GetCursor(), ii)]. When +the row is currently being edited, the function returns the `'new`' +value (the current value of the respective editor control, i.e. +potentially edited).&] +[s2; [* Note:] when the cursor row is not set (when [* !IsCursor()]), +the function fails with an [* ASSERT].&] +[s4; [%-*C@3 ii]-|zero`-based index ordinal number&] +[s4; [*/ Return value]-|value at a given location in the cursor row&] +[s0;3 &] +[s5;K%- [^`:`:Value^ Value]_[@0 Get]([^`:`:Id^ Id]_[@3 id])_[@(0.0.255) const]&] +[s2; Returns the value of a given source index at the currently active +cursor row. This is equivalent to [* Get(GetCursor(), id)].&] +[s4; [%-*C@3 id]-|source index identifier&] +[s4; [*/ Return value]-|value at the given location in the cursor row&] +[s0;3 &] +[s5;K%- [^`:`:Value^ Value]_[@0 GetOriginal]([@(0.0.255) int]_[@3 ii])_[@(0.0.255) const]&] +[s2; Returns the `'original`' value of a given source index at the +currently active cursor row. When the row is open for editing, +this function returns the `'old`' value before any editation +took place.&] +[s4; [%-*C@3 ii]-|zero`-based index ordinal number&] +[s4; [*/ Return value]-|value at the given location in the cursor row&] +[s0;3 &] +[s5;K%- [^`:`:Value^ Value]_[@0 GetOriginal]([^`:`:Id^ Id]_[@3 id])_[@(0.0.255) const]&] +[s2; Returns the `'original`' value (i.e., without any editing changed +applied) of a given source index at the currently active cursor +row.&] +[s4; [%-*C@3 id]-|source index identifier&] +[s4; [*/ Return value]-|value at the given location in the cursor row&] +[s0;3 &] +[s5;K%- [^`:`:Value^ Value]_[@0 GetKey]()_[@(0.0.255) const]&] +[s2; Returns the value of the current row`'s primary key. This is +equivalent to [* Get(0)].&] +[s4; [*/ Return value]-|value at the index #0 in the cursor row&] +[s0;3 &] +[s5;K%- [^`:`:Value^ Value]_[@0 GetOriginalKey]()_[@(0.0.255) const]&] +[s2; Returns the original value of the current row`'s primary key. +During editation, the function returns the value at the time +of opening the row for editing, i.e. without any editing changes +applied. This is equivalent to [* GetOriginal(0)].&] +[s4; [*/ Return value]-|value at the index #0 in the cursor row&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Set]([@(0.0.255) int]_[@3 i], [@(0.0.255) int]_[@3 ii], +[@(0.0.255) const]_[^`:`:Value^ Value]`&_[@3 v])&] +[s2; Sets the value at a given location in the source data matrix.&] +[s4; [%-*C@3 i]-|zero`-based row number&] +[s4; [%-*C@3 ii]-|zero`-based index ordinal number&] +[s4; [%-*C@3 v]-|value to set to the given cell&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Set]([@(0.0.255) int]_[@3 i], [^`:`:Id^ Id]_[@3 id], +[@(0.0.255) const]_[^`:`:Value^ Value]`&_[@3 v])&] +[s2; Sets the value at a given location in the source data matrix. +&] +[s4; [%-*C@3 i]-|zero`-based row number&] +[s4; [%-*C@3 id]-|source index identifier&] +[s4; [%-*C@3 v]-|value to set to the given cell&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Set]([@(0.0.255) int]_[@3 ii], [@(0.0.255) const]_[^`:`:Value^ Valu +e]`&_[@3 v])&] +[s2; Modifies the value at a given location in the cursor row. When +the row is open for editing, the function immediately changes +the value in the appropriate editor control.&] +[s4; [%-*C@3 ii]-|zero`-based index ordinal number&] +[s4; [%-*C@3 v]-|value to set&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Set]([^`:`:Id^ Id]_[@3 id], [@(0.0.255) const]_[^`:`:Value^ Value]`& +_[@3 v])&] +[s2; Modifies the value at a given location in the cursor row. This +overloaded version uses the [* Id] identifier to address the relevant +index.&] +[s4; [%-*C@3 id]-|index identifier&] +[s4; [%-*C@3 v]-|value to set&] +[s0;3 &] +[s5;K%- [^`:`:Value^ Value]_[@0 GetColumn]([@(0.0.255) int]_[@3 row], [@(0.0.255) int]_[@3 col])_ +[@(0.0.255) const]&] +[s2; Returns the value of a given column. This depends on the column`-index +mapping established when adding columns to the table. When the +column is a [/ rownum] type (it is bound to no source indices), +the function just returns the [/ row] parameter. For columns with +a single source index, the function returns the value of the +mapped source index. For columns with multiple source indices, +the function returns a [* ValueArray ]containing the values of +its source indices.&] +[s4; [%-*C@3 row]-|zero`-based row index&] +[s4; [%-*C@3 col]-|zero`-based column index&] +[s4; [*/ Return value]-|value of the given column&] +[s0;3 &] +[s5;K%- [^`:`:Value^ Value]_[@0 GetConvertedColumn]([@(0.0.255) int]_[@3 row], +[@(0.0.255) int]_[@3 col])&] +[s2; Returns the value of a given column after application of its +[* Convert]. For performance reasons, the values obtained by calls +to the [* Convert`::Format] methods are cached internally within +the ArrayCtrl object. You can manipulate the conversion cache +using the methods [*^topic`:`/`/CtrlLib`/src`/ArrayCtrl`$en`-us`#`:`:ArrayCtrl`:`:ClearCache`(`)^ C +learCache] and[* ][*^topic`:`/`/CtrlLib`/src`/ArrayCtrl`$en`-us`#`:`:ArrayCtrl`:`:InvalidateCache`(int`)^ I +nvalidateCache].&] +[s4; [%-*C@3 row]-|zero`-based row index&] +[s4; [%-*C@3 col]-|zero`-based column index&] +[s4; [*/ Return value]-|the converted cell value&] +[s0;3 &] +[s5;K%- [^`:`:Vector^ Vector]<[^`:`:Value^ Value]>_[@0 ReadRow]([@(0.0.255) int]_[@3 i])_[@(0.0.255) c +onst]&] +[s2; Returns a [* Vector] containing the values of all source indices +in the given row. Invariantly, the [* GetCount()] of the returned +array is equal to the [* GetIndexCount()] of the source ArrayCtrl.&] +[s4; [%-*C@3 i]-|zero`-based row index&] +[s4; [*/ Return value]-|an array of all source values in the given row&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Set]([@(0.0.255) int]_[@3 i], [@(0.0.255) const]_[^`:`:Vector^ Vect +or]<[^`:`:Value^ Value]>`&_[@3 v])&] +[s2; Modified a given row by setting all source index values to values +passed in the parameter [/ v].&] +[s4; [%-*C@3 i]-|zero`-based row index&] +[s4; [%-*C@3 v]-|an array of values to set to the source data matrix +row&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Add]()&] +[s2; Adds an empty row to the source data matrix.&] +[s2; [* Note:] the [* InsertValue] property of the [* IdInfo] structure +defines a method to generate / retrieve default values for newly +inserted rows. However, these values are only used during the +GUI`-based [* DoInsert] method and do not apply to the [* Add] method. +If you need to set the newly added source matrix row to some +non`-null defaults, you have to modify the relevant cells manually.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Add]([@(0.0.255) const]_[^`:`:Vector^ Vector]<[^`:`:Value^ Value]> +`&_[@3 v])&] +[s2; Adds a new row at the end of the source data matrix. The [*^topic`:`/`/Core`/src`/Vector`$en`-us^ V +ector] parameter contains the values to be used to initialize +the new row of the matrix.&] +[s4; [%-*C@3 v]-|new matrix row&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Add]([@(0.0.255) const]_[^`:`:Value^ Value]`&_`[, +[@(0.0.255) const]_[^`:`:Value^ Value]`&_`]...)&] +[s2; Adds a new row at the bottom of the source data matrix. This +is in fact a series of functions (generated automatically using +the [* Expand] macro) which takes an arbitrary number of arguments. +Its arguments are used to initialize the source indices in the +newly added row.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Insert]([@(0.0.255) int]_[@3 i])&] +[s2; Inserts a new row into the source array. All indices are initialized +to [* Null] values. The [* InsertValue] property doesn`'t apply; +if you need to set the newly created row to some non`-trivial +values, you have to do so manually.&] +[s4; [%-*C@3 i]-|zero`-based position of the newly created row&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Insert]([@(0.0.255) int]_[@3 i], [@(0.0.255) const]_[^`:`:Vector^ V +ector]<[^`:`:Value^ Value]>`&_[@3 v])&] +[s2; Inserts a new row into the array at a given position. The second +parameter, [/ v], is used to initialize the source indices of the +newly created row.&] +[s4; [%-*C@3 i]-|zero`-based row index&] +[s4; [%-*C@3 v]-|a vector of values used to initialize the source indices +of the given row&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Remove]([@(0.0.255) int]_[@3 i])&] +[s2; Removes the given source data row.&] +[s2; [* Note:] the [* AskRemove] property of the [* ArrayCtrl] object tells +whether a confirmation dialog should pop up every time the user +wants to remove a row. However, this method applies only to the +GUI`-based row removal; the [* Remove] method always removes the +requested row unconditionally without popping up any confirmation +dialog.&] +[s4; [%-*C@3 i]-|zero`-based index of the row to remove&] +[s0;* &] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 SwapUp]()&] +[s2; Exchanges the cursor row with the preceding row, effectively +moving it up.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 SwapDown]()&] +[s2; Exchanges the cursor row with following row, effectively moving +it down.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Sort]([@(0.0.255) const]_[^`:`:ArrayCtrl`:`:Order^ ArrayCtrl`::O +rder]`&_[@3 order])&] +[s2; Sorts the array rows according to a given ordering predicate. +The [* ArrayCtrl`::Order] object defines the ordering predicate; +its [* operator ()] should return [* true] whenever its first parameter +(a vector containing the values of all source indices in a row) +is less than its second parameter.&] +[s4; [%-*C@3 order]-|&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Sort]([@(0.0.255) int]_[@3 from], [@(0.0.255) int]_[@3 count], +[@(0.0.255) const]_[^`:`:ArrayCtrl`:`:Order^ ArrayCtrl`::Order]`&_[@3 order])&] +[s2; Sorts a portion of the array using a given ordering predicate.&] +[s4; [%-*C@3 from]-|zero`-based index of the first row to sort&] +[s4; [%-*C@3 count]-|number of rows to be sorted&] +[s4; [%-*C@3 order]-|the ordering predicate object. The object should +be derived from [* ArrayCtrl`::Order] and should override the [* operator +()] method. This method should return [* true ]whenever its first +parameter (a vector containing all source index values for a +certain row) is less than its second parameter.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Sort]([@(0.0.255) int]_(`*[@3 compare])([@(0.0.255) const]_Vector +`&_v1, [@(0.0.255) const]_Vector`&_v2))&] +[s2; Sorts the array rows according to the order defined by the specified +ordering predicate [/ compare]. This is supposed to be a global +function returning [* true] whenever its first parameter ([/ v1], +an array consisting of all source indices within a row) is less +than the second parameter [/ v2] (according to the desired ordering).&] +[s4; [%-*C@3 compare]-|the ordering predicate; _the function is supposed +to return [* true] whenever its first parameter ([/ v1]) is less +than the second parameter ([/ v2]) according to the desired ordering.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Sort]([@(0.0.255) int]_[@3 ii], [@(0.0.255) int]_(`*[@3 compare])([@(0.0.255) c +onst]_Value`&_v1, [@(0.0.255) const]_Value`&_v2)_`=_StdValueCompare)&] +[s2; Sorts the array rows according to the given ordering predicate +for the source index with a given ordinal number. When not explicitly +specified, the [* StdValueCompare] function is used as the default +comparison predicate.&] +[s4; [%-*C@3 ii]-|zero`-based ordinal number of the source index used +for sorting&] +[s4; [%-*C@3 compare]-|the sorting predicate function: the function is +supposed to return [* true] whenever its first parameter ([/ v1]) +is less than the second parameter ([/ v2]) according to the desired +ordering.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Sort]([^`:`:Id^ Id]_[@3 id], [@(0.0.255) int]_(`*[@3 compare])([@(0.0.255) c +onst]_Value`&_v1, [@(0.0.255) const]_Value`&_v2)_`=_StdValueCompare)&] +[s2; Sorts the array rows according to the given ordering predicate +for the source index with a given identifier. When not explicitly +specified, the [* StdValueCompare] function is used as the default +comparison predicate.&] +[s4; [%-*C@3 id]-|identifier of the source index used for sorting&] +[s4; [%-*C@3 compare]-|the sorting predicate function: the function is +supposed to return [* true] whenever its first parameter ([/ v1]) +is less than the second parameter ([/ v2]) according to the desired +ordering .&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Sort]()&] +[s2; Sorts the array according to the default ordering predicate +for the first source index. This is equivalent to calling [* Sort(0)].&] +[s0;* &] +[s5;K:`:`:ArrayCtrl`:`:ColumnSort`(int`,const`:`:ValueOrder`&`):%- [@(0.0.255) void]_[@0 C +olumnSort]([@(0.0.255) int]_[@3 column], [@(0.0.255) const]_[^`:`:ValueOrder^ ValueOrder]`& +_[@3 order])&] +[s2; Sorts by the column. Note that this is different from Sort, +because the final converted value of column is used (which can +even be combination of more indexes).&] +[s0; &] +[s5;K:`:`:ArrayCtrl`:`:SetSortColumn`(int`,bool`):%- [@(0.0.255) void]_[@0 SetSortColumn]( +[@(0.0.255) int]_[@3 ii], [@(0.0.255) bool]_[@3 descending]_`=_false)&] +[s2; Sets the `"sorting`" column and calls DoColumnSort. This setting +is used by DoColumnSort.&] +[s0; &] +[s5;K:`:`:ArrayCtrl`:`:ToggleSortColumn`(int`):%- [@(0.0.255) void]_[@0 ToggleSortColumn]( +[@(0.0.255) int]_[@3 ii])&] +[s2; Similar to SetSortColumn, but if the column is already set, +descending flag is inverted; otherwise descending flag is set +to false (indicating ascending sort).&] +[s0; &] +[s5;K:`:`:ArrayCtrl`:`:DoColumnSort`(`):%- [@(0.0.255) void]_[@0 DoColumnSort]()&] +[s2; Sorts the array by sorting column and indicates it by setting +an image in the header.&] +[s0; &] +[s5;K%- [@(0.0.255) void]_[@0 ClearCache]()&] +[s2; Invalidates the whole [/ convert cache]. The convert cache keeps +the results of the [* Convert`::Format] method applied to individual +array data cells for performance reasons. Whenever you call the +[* ClearCache] method, all cache entries are marked as obsolete +and the [* Convert]`'s [* Format] method will be called as soon as +the converted value of a table cell is required (usually during +the next [* Paint]).&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 InvalidateCache]([@(0.0.255) int]_[@3 i])&] +[s2; Invalidates a given row in the [/ convert cache]. For performance +reasons, the results of the [* Convert`::Format] method applied +to the individual data cells are kept in a cache. This function +marks a given row of the cache as obsolete; this means the next +time the converted values are to be used (usually within the +[* Paint] routine or when setting up the row editor controls), +the [* Convert] objects are used again to generate the actualized +output values.&] +[s4; [*C@3 i]-|zero`-based row index&] +[s0;* &] +[s0; [* Cursor and selection management]&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetSelectCount]()_[@(0.0.255) const]&] +[s2; Returns the number of selected row within the table.&] +[s4; [*/ Return value]-|number of selected records (in the range [/ `[0 +.. GetCount()`]])&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 IsSelection]()_[@(0.0.255) const]&] +[s2; Checks whether any rows are selected. Equivalent to [* GetSelectCount() +> 0].&] +[s4; [*/ Return value]-|[* true] `= there is at least one selected row, +[* false] `= there is none.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Select]([@(0.0.255) int]_[@3 i], [@(0.0.255) bool]_[@3 sel]_`=_true +)&] +[s2; Selects / unselects a given row.&] +[s4; [%-*C@3 i]-|zero`-based row index&] +[s4; [%-*C@3 sel]-|[* true] `= add row to the current selection, [* false] +`= remove row from selection&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Select]([@(0.0.255) int]_[@3 i], [@(0.0.255) int]_[@3 count], +[@(0.0.255) bool]_[@3 sel]_`=_true)&] +[s2; Selects / unselects a given row range.&] +[s4; [%-*C@3 i]-|zero`-based index of the first row to select / unselect&] +[s4; [%-*C@3 count]-|number of rows to select / unselect&] +[s4; [%-*C@3 sel]-|[* true] `= select the rows, [* false] `= unselect the +rows&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 IsSelected]([@(0.0.255) int]_[@3 i])_[@(0.0.255) const]&] +[s2; Checks whether a given row is selected. For tables without the +multiselection option, this is equal to the check [* GetCursor() +`=`= i].&] +[s4; [%-*C@3 i]-|zero`-based row index to check for selection&] +[s4; [*/ Return value]-|[* true] `= row is selected, [* false] `= not selected&] +[s0;3 &] +[s5;K:`:`:ArrayCtrl`:`:IsSel`(int`)const:%- [@(0.0.255) bool]_[@0 IsSel]([@(0.0.255) int]_[@3 i +])_[@(0.0.255) const]&] +[s2; If there is selection in the widget, returns true if [%-*@3 i] +is selected, otherwise returns true if cursor is at [%-*@3 i].&] +[s0; &] +[s5;K%- [@(0.0.255) void]_[@0 ClearSelection]()&] +[s2; Clears the current selection (unselects all selected rows).&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 IsCursor]()_[@(0.0.255) const]&] +[s2; Checks whether the cursor is within the table. This is equivalent +to [* GetCursor()_>`=_0].&] +[s4; [*/ Return value]-|&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 SetCursor]([@(0.0.255) int]_[@3 i])&] +[s2; Sets the current cursor row. When an array row is open for editing, +the function first commits the edited row, then moved the cursor +to the new row. When the edited row cannot be commited, the function +returns [* false] and doesn`'t change the cursor location.&] +[s4; [%-*C@3 i]-|zero`-based row index&] +[s4; [*/ Return value]-|[* true] `= cursor has been moved, [* false ]when +not (when committing the previously edited row failed)&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 KillCursor]()&] +[s2; Moves the cursor away from the array. When an array row is open +for editing, the function first commits the edited row, then +moved the cursor away from the array. When the edited row cannot +be commited, the function returns [* false] and doesn`'t change +the cursor location.&] +[s4; [*/ Return value]-|[* true] `= cursor has been moved away from the +array, [* false] when not (when committing the previously edited +row failed)&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 CancelCursor]()&] +[s2; Cancels editation of the row being currently edited. All changes +made in the individual column editors are rejected.&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetCursor]()_[@(0.0.255) const]&] +[s2; Returns the current cursor row, `-1 when none.&] +[s4; [*/ Return value]-|zero`-based cursor row index, `-1 `= cursor +is not in the array&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 GoBegin]()&] +[s2; Moves the cursor to the first row in the array (equivalent to +[* SetCursor(0)]).&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 GoEnd]()&] +[s2; Moves the cursor to the last array row (equivalent to [* SetCursor(GetCount() +`- 1)]).&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetCursorSc]()_[@(0.0.255) const]&] +[s2; Returns the visual vertical position of the cursor row relative +to the current view. This method, in combination with [* ScCursor], +can be used to reposition the cursor row while maintaining the +same visual position of the row within the array view.&] +[s4; [*/ Return value]-|an integer describing the vertical position +of the cursor row relative to the array view&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 ScCursor]([@(0.0.255) int]_[@3 a])&] +[s2; Modifies the scrollbar position so that the current cursor row +appears at a given vertical position relative to the array view. +By doing the following sequence of operations: [* GetCursorSc], +then reposition the cursor row, then [* ScCursor], you can achieve +cursor relocation while maintaining its visual location within +the array view.&] +[s4; [%-*C@3 a]-|an integer describing the vertical position of the +cursor row (typically a number returned by a previous call to +[* GetCursorSc])&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 CenterCursor]()&] +[s2; Modifies the scrollbar position so that the current cursor row +appears in the middle of the array view.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 ScrollInto]([@(0.0.255) int]_[@3 line])&] +[s2; Moves the scrollbar by the least possible amount in order to +make the given array row visible. When the given array row is +already visible, the function does nothing.&] +[s4; [%-*C@3 line]-|zero`-based row index of the array row to make visible&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 ScrollIntoCursor]()&] +[s2; Moves the scrollbar by the least possible amount in order to +make the cursor row visible. This is equivalent to [* ScrollInto(GetCursor())].&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetScroll]()_[@(0.0.255) const]&] +[s2; Returns the current vertical scrollbar position.&] +[s4; [*/ Return value]-|Pixel position of the vertical scrollbar. Position +0 is at the very top (the top row of the array is fully visible).&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 ScrollTo]([@(0.0.255) int]_[@3 sc])&] +[s2; Moves the vertical array scrollbar to a given position.&] +[s4; [%-*C@3 sc]-|Pixel position of the scrollbar. The visible portion +of the array can be obtained conceptually by taking the stack +of array rows with its top aligned at the top of the view and +moving it [/ sc] pixels upwards.&] +[s0;* &] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 Find]([@(0.0.255) const]_[^`:`:Value^ Value]`&_[@3 v], +[@(0.0.255) int]_[@3 ii]_`=_[@3 0], [@(0.0.255) int]_from_`=_[@3 0])_[@(0.0.255) const]&] +[s2; &] +[s4; [%-*C@3 v]-|value to look for in the given source index&] +[s4; [%-*C@3 ii]-|zero`-based ordinal number of the source index to +search&] +[s4; [%-*C@3 from]-|zero`-based row index to start the search from&] +[s4; [*/ Return value]-|zero`-based number of the matched row, `-1 when +none&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 Find]([@(0.0.255) const]_[^`:`:Value^ Value]`&_[@3 v], +[^`:`:Id^ Id]_[@3 id], [@(0.0.255) int]_from_`=_[@3 0])_[@(0.0.255) const]&] +[s2; Locates the row (using linear search beginning at the row [/ from]) +in which the source index value identified by [/ id] equals [/ val]. +If such a row is found, the function returns its zero`-based +index. When not matched, the function returns `-1.&] +[s4; [%-*C@3 v]-|value to look for in the given source index&] +[s4; [%-*C@3 id]-|source index identifier&] +[s4; [%-*C@3 from]-|zero`-based row index to start the search from&] +[s4; [*/ Return value]-|zero`-based number of the matched row, `-1 when +none&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 FindSetCursor]([@(0.0.255) const]_[^`:`:Value^ Value]`&_[@3 val], + [@(0.0.255) int]_[@3 ii]_`=_[@3 0], [@(0.0.255) int]_from_`=_[@3 0])&] +[s2; Locates the row (using linear search beginning at the row [/ from]) +in which the source index value identified by its ordinal number +[/ ii] equals [/ val]. If such a row is found, the [* SetCursor] is +called automatically to move the cursor to such a row.&] +[s4; [%-*C@3 val]-|value to look for in the given source index&] +[s4; [%-*C@3 ii]-|zero`-based ordinal number of the source index to +search&] +[s4; [%-*C@3 from]-|zero`-based row index to start the search from&] +[s4; [*/ Return value]-|zero`-based number of the matched row, `-1 when +none&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 FindSetCursor]([@(0.0.255) const]_[^`:`:Value^ Value]`&_[@3 val], + [^`:`:Id^ Id]_[@3 id], [@(0.0.255) int]_from_`=_[@3 0])&] +[s2; Locates the row (using linear search beginning at the row [/ from]) +in which the source index value identified by [/ id] equals [/ val]. +If such a row is found, the [* SetCursor] is called automatically +to move the cursor to such a row.&] +[s4; [%-*C@3 val]-|value to look for in the given source index&] +[s4; [%-*C@3 id]-|source index identifier&] +[s4; [%-*C@3 from]-|zero`-based row index to start the search from&] +[s4; [*/ Return value]-|[* true] `= the desired row was found (and the +cursor set), [* false] when not&] +[s0;* &] +[s0;* &] +[s0; [* User interface elements]&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 StdBar]([^`:`:Bar^ Bar]`&_[@3 menu])&] +[s2; The default array local menu. The default local menu consists +of the standard editation actions (inserting / appending / duplicating +a row, editing a row, removing a row, moving a row, select all +rows) filtered by the array properties enabling / disabling the +various GUI elements (item insertion / deletion etc.). &] +[s4; [*C@3 menu]-|the [* Bar] object representing the menu being generated&] +[s0;* &] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 IsModified]([@(0.0.255) int]_[@3 ii])_[@(0.0.255) const]&] +[s2; Checks a source index in the currently edited row for changes.&] +[s4; [%-*C@3 ii]-|zero`-based row index&] +[s4; [*/ Return value]-|[* true] `= the index has been modified, [* false] +`= the index is in its original state&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 IsModified]([^`:`:Id^ Id]_[@3 id])_[@(0.0.255) const]&] +[s2; Checks a source index in the currently edited array row for +changes.&] +[s4; [%-*C@3 id]-|source index identifier&] +[s4; [*/ Return value]-|[* true] `= the source index has been modified, +[* false ]when not&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 StartEdit]([@(0.0.255) int]_[@3 d]_`=_[@3 0])&] +[s2; Opens the current cursor row for editing and sets focus to the +[/ d]`-th column.&] +[s4; [%-*C@3 d]-|zero`-based column index&] +[s4; [*/ Return value]-|[* true] `= editation successfully initiated, +[* false] when not (when the array is in [* ReadOnly] mode or it +has no editable columns)&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetEditColumn]()_[@(0.0.255) const]&] +[s2; Returns the column being currently edited.&] +[s4; [*/ Return value]-|zero`-based index of the column being edited, +`-1 `= none&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 DoEdit]()&] +[s2; Opens the current cursor row for editing.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 DoInsert]([@(0.0.255) int]_[@3 cursor])&] +[s2; Begins the GUI insertion of a new row at a given location.&] +[s4; [%-*C@3 cursor]-|zero`-based location of the new row&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 DoInsertBefore]()&] +[s2; Begins the GUI insertion of a new row above the current row.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 DoInsertAfter]()&] +[s2; Begins the GUI insertion of a new row below the current row.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 DoAppend]()&] +[s2; Begins the GUI insertion of a new row at the end of the array.&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 DoRemove]()&] +[s2; Performs the GUI`-based removal of the current cursor row. When +the [* AskRemove] property is set to [* true] and the user cancels +the confirmation dialog, the function returns [* false] and the +current row is not removed.&] +[s4; [*/ Return value]-|[* true] `= row has been removed successfully, +[* false] `= user has canceled the row removal&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 DoDuplicate]()&] +[s2; Duplicates the current row and opens it for editing.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 DoSelectAll]()&] +[s2; Marks all array row as selected.&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 AcceptEnter]()&] +[s2; Performs all necessary GUI actions equivalent to when the user +presses the [* Enter] key. The row being currently edited is committed +and, in the case it was a newly appended line and the [* NoInsertAppend] +property is not set, an additional row is added to the array +and opened for editation.&] +[s4; [*/ Return value]-|[* true] `= the current row has been successfully +committed, [* false] when not&] +[s0;* &] +[s0; [* Notification callbacks]&] +[s0;3 &] +[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenLeftClick]&] +[s2; This callback is called whenever the user clicks an array cell.&] +[s0;3 &] +[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenLeftDouble]&] +[s2; This callback is called whenever the user doubleclicks an array +cell.&] +[s0;3 &] +[s5;K%- [^`:`:Callback1^ Callback1]_[@0 WhenBar]&] +[s2; This callback is called whenever the local array menu has to +be regenerated. By setting this callback to a different function +/ method you can supply a custom local menu for the array. The +[* Bar`&] argument is a reference to the menu to be generated.&] +[s0;3 &] +[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenEnterRow]&] +[s2; This callback is called every time the cursor location changes +to a different row of the array.&] +[s0;3 &] +[s5;K%- [^`:`:Gate^ Gate]_[@0 WhenAcceptRow]&] +[s2; This gate is called every time an array row (open for editing) +needs to be validated. When the gate returns [* false], the validation +process is assumed to have failed, when it returns [* true], it +is assumed to have succeeded. You can use this callback to add +your own validation algorithms relevant to the array context +within your application.&] +[s0;3 &] +[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenUpdateRow]&] +[s2; This callback is called whenever an array row has been updated. +You can use this callback e.g. to project the changes to a database +or generally to an external data source.&] +[s0;3 &] +[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenKillCursor]&] +[s2; This callback is called whenever the cursor is moved away from +the table.&] +[s2; [* Note:] internally, when moving the cursor (e.g. by calling the +[* SetCursor ]method), after committing the previous row the cursor +is removed from the table using [* KillCursor] and placed to the +new location afterwards. Therefore every time the cursor is moved, +the [* WhenKillCursor] callback is called as a by`-product.&] +[s0;3 &] +[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenCursor]&] +[s2; This callback is called every time the cursor row number changes +(either when the cursor is removed from the table, or when it +has been moved to a different row).&] +[s0;3 &] +[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenArrayAction]&] +[s2; This callback is called every time the source array data changes +(typically after accepting changes to a certain row or after +deleting a row).&] +[s0;3 &] +[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenStartEdit]&] +[s2; This callback is called whenever the array row editation process +is initiated. It can be used e.g. to set up some additional properties +of the column editor objects, to fill in drop`-down lists pertaining +to certain column editors etc.&] +[s0;3 &] +[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenAcceptEdit]&] +[s2; This callback is called whenever the currently edited line has +been committed.&] +[s0;3 &] +[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenSelection]&] +[s2; This callback is called whenever the current array selection +changes. This includes changes to the cursor location as the +cursor is automatically considered part of the selection.&] +[s0;3 &] +[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenCtrlsAction]&] +[s2; This callback is called whenever some of the editor controls +constructed automatically via the column editation [/ factory] +calls its [* WhenAction] method. It can be used to watch out for +changes in the cell editors and react to specific situations +accordingly.&] +[s2; &] +[s0;3 &] +[s5;K%- [@(0.0.255) struct]_ArrayCtrl`::IdInfo&] +[s0; &] +[s0; The [* IdInfo] structure contains properties of all source array +indices. It can be used to set additional properties pertaining +to source array data.&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:IdInfo^ IdInfo]`&_[@0 InsertValue]([@(0.0.255) const]_[^`:`:Value^ V +alue]`&_[@3 v])&] +[s2; The method sets up the default source index value for newly +created rows. This is used only when the row insertion is GUI`-based +(like using the [* DoInsert] method for instance). When a row is +added to the array programmatically (e.g. using [* Add] or [* Insert]), +these default values are not used.&] +[s4; [%-*C@3 v]-|default source index value&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:IdInfo^ IdInfo]`&_[@0 InsertValue]([^`:`:ValueGen^ ValueGen]`&_[@3 g +])&] +[s2; The method sets up a factory for generating default index values +for newly created rows. This is used only when the row insertion +is GUI`-based (like using the [* DoInsert] method for instance). +When a row is added to the array programmatically (e.g. using +[* Add] or [* Insert]), the [* InserValue] property is not consulted.&] +[s4; [%-*C@3 g]-|a reference to the value generation factory. The ownership +to the factory is not passed by this call; the caller must insure +the existence of the factory object throughout the array duration.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:IdInfo^ IdInfo]`&_[@0 Accel]([@(0.0.255) int]_(`*[@3 filter])([@(0.0.255) i +nt]))&] +[s2; This method sets up the source index accelerator function. The +accelerator is used to quickly locate rows using the keyboard +key presses.&] +[s4; [%-*C@3 filter]-|a [* CharFilter ]function for keypress filtering&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:IdInfo^ IdInfo]`&_[@0 Accel]()&] +[s2; This method sets up keyboard acceleration for the given source +index. The `'trivial`' [/ CharConvert] is used for character translation.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:Value^ Value]_[@0 GetInsertValue]()&] +[s2; Uses the [* InsertValue] property to generate a new source index +value (either using a fixed default value or the value creation +factory).&] +[s4; [*/ Return value]-|the generated value to be used as the default +for the newly inserted row.&] +[s2; &] +[s0;3 &] +[s5;K%- [@(0.0.255) class]_[@0 Column]&] +[s2; &] +[s0;%- [%%/ Derived from][%% ]FormatConvert&] +[s0;3 &] +[s0;* &] +[s0;%- The [* ArrayCtrl`::Column] structure describes an output array +column. Its methods can be used to set or query its properties, +some of which are also settable via ArrayCtrl methods.&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 Add]([@(0.0.255) int]_[@3 `_pos])&] +[s2; Adds another source data index to the list of source indices +used as the data for the given output column.&] +[s4; [%-*C@3 `_pos]-|zero`-based ordinal number of the source index&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 Add]([^`:`:Id^ Id]_[@3 id])&] +[s2; Adds another source data index to the list of source indices +used as the data for the given output column.&] +[s4; [%-*C@3 id]-|the [* Id] identifier of the source index&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 AddIndex]([^`:`:Id^ Id]_[@3 id])&] +[s2; Adds another source index to the array and adds it to the list +of source indices bound to this output column. The newly created +index is assigned the given identifier.&] +[s4; [%-*C@3 id]-|the identifier for the newly created index&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 AddIndex]()&] +[s2; Adds another source index to the array and adds it to the list +of source indices bound to this output column.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- Column`&_[@0 SetConvert]([@(0.0.255) const]_[^`:`:Convert^ Convert]`&_[@3 c])&] +[s2; Sets the [* Convert] object for the given column. This object +is used to convert the source values (obtained from the source +data matrix) to the values displayable and/or editable by the +respective column display / editor object.&] +[s2; [* Note:] the ownership of the [* Convert] object is not transferred +by this function. The array merely stores a pointer to the Convert +object. It is up to the host application to keep the Convert +object alive as long as necessary (until the ArrayCtrl object +is destroyed or all references to the Convert object obliterated +by new calls to the [* SetConvert] method). In any case, most Convert`-based +object do not support copying at all; moreover, as the Convert`-based +objects are mostly derived from the basic class, their copying +is normally prone to slicing.&] +[s4; [%-*C@3 c]-|a constant reference to the Convert object to use for +the given column&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 SetFormat]([@(0.0.255) const]_[@(0.0.255) ch +ar]_`*[@3 fmt])&] +[s2; Sets the format string to use for the default value formatting. +When no Convert object is set for the column, the source value +is normally passed to the [* NFormat] function where the [/ fmt] +argument defines the desired formatting pattern.&] +[s4; [%-*C@3 fmt]-|a [* NFormat]`-compatible formatting pattern&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- Column`&_[@0 SetDisplay]([@(0.0.255) const]_[^`:`:Display^ Display]`&_[@3 d])&] +[s2; Sets the default Display to use for this column. The column +Display can be overridden for certain array cells by calls to +the [*^topic`:`/`/CtrlLib`/src`/ArrayCtrl`$en`-us`#`:`:ArrayCtrl`:`:SetDisplay`(int`,int`,const Display`&`)^ A +rrayCtrl`::SetDisplay] method.&] +[s2; [* Note:] the ownership to the Display object is not transferred +by this function. The array merely stores a pointer to the Display; +it is up to the host application to keep the Display object alive +as long as necessary.&] +[s4; [%-*C@3 d]-|a reference to the Display object&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- Column`&_[@0 Edit]([^`:`:Ctrl^ Ctrl]`&_[@3 e])&] +[s2; Sets up the Ctrl`-based object to use for inline array column +editing.&] +[s4; [%-*C@3 e]-|a reference to the editor control object&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- Column`&_[@0 Ctrls]([^`:`:Callback1^ Callback1]<[^`:`:One^ One]<[^`:`:Ctrl^ Ctrl]>`&> +_factory)&] +[s2; The methods sets up a factory which the ArrayCtrl uses as necessary +to create new Ctrl`'s for editing a given column. The argument +of this function is a callback, which, upon execution, should +allocate (normally using the [* new] operator) the desired editor +object and set it to its argument.&] +[s4; [%-*C@3 factory]-|callback used for new control creation&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 Ctrls]([@(0.0.255) void]_(`*[@3 factory])(On +e`&))&] +[s2; This method sets up a factory which the ArrayCtrl uses as necessary +to create new Ctrl`'s for editing a given column. The argument, +a global function, is supposed to allocate a new editor control +(normally using the [* new] operator) and set it to its argument.&] +[s4; [%-*C@3 factory]-|a global function used for editor control creation&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 Ctrls]()&] +[s2; This member template sets up a default factory for creating +editor controls of a given type. Every time the ArrayCtrl needs +to create a new editor control, an object of the type [* T] is +created automatically (using the [* new] operator).&] +[s4; [*C@4 T]-|the desired object editor type &] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- Column`&_[@0 InsertValue]([@(0.0.255) const]_[^`:`:Value^ Value]`&_[@3 v])&] +[s2; Instructs the ArrayCtrl object to initialize this column in +newly created rows to the given value [/ v]. (This applies only +to GUI`-based row insertion using methods like [* DoInsert] etc., +the low`-level, programmer`-controlled row insertion methods +like [* Add] or [* Insert] always initialize the source data matrix +with [* Null]`'s).&] +[s4; [%-*C@3 v]-|the value to use as the default for newly inserted +rows&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- Column`&_[@0 InsertValue]([^`:`:ValueGen^ ValueGen]`&_[@3 g])&] +[s2; Programs the ArrayCtrl object to use the given [* ValueGen] factory +for default value generation for newly created rows. This can +be used e.g. to generate unique UUID`'s or primary keys using +an Oracle SEQUENCE object for a primary key column.&] +[s4; [%-*C@3 g]-|a reference to the ValueGen object used for default +value generation&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 NoClickEdit]()&] +[s2; Disables entering the editation mode when clicking the respective +column.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 Cache]()&] +[s2; Enables using the cache to store the converted values of this +column. By default, converted value caching is turned off to +make cell value conversion entirely dynamic; however, very often +it is advisable to enable using the cache, especially when the +conversion is relatively slow (for instance, when the conversion +queries a database connection to convert the value).&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 Accel]([@(0.0.255) int]_(`*[@3 filter])([@(0.0.255) i +nt]))&] +[s2; Sets up the accelerator for the given column. A given filtering +function is used to convert keystrokes before acceleration.&] +[s4; [%-*C@3 filter]-|a [* CharConvert]`-style function to use for keystroke +conversion&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 Accel]()&] +[s2; Sets up the accelerator for the given column. No keystroke conversion +is performed.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:ArrayCtrl`:`:Column^ Column]`&_[@0 Margin]([@(0.0.255) int]_[@3 m])&] +[s2; Sets up the margin width for the given column. This is equivalent +to calling the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us`#`:`:HeaderCtrl`:`:Column`:`:SetMargin`(int`)^ S +etMargin] method of the underlying [* HeaderTab].&] +[s4; [%-*C@3 m]-|&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s0;3 &] +[s5;K:`:`:ArrayCtrl`:`:Column`:`:Sorting`(const`:`:ValueOrder`&`):%- [^`:`:ArrayCtrl`:`:Column^ A +rrayCtrl`::Column]`&_Sorting([@(0.0.255) const]_[^`:`:ValueOrder^ ValueOrder]`&_[@3 o])&] +[s5;K:`:`:ArrayCtrl`:`:Column`:`:Sorting`(int`(`*`)`(const`:`:Value`&a`,const`:`:Value`&b`)`):%- [^`:`:ArrayCtrl`:`:Column^ A +rrayCtrl`::Column]`&_[@0 Sorting]([@(0.0.255) int]_(`*[@3 c])([@(0.0.255) const]_Value`&_a +, [@(0.0.255) const]_Value`&_b))&] +[s5;K:`:`:ArrayCtrl`:`:Column`:`:Sorting`(`):%- [^`:`:ArrayCtrl`:`:Column^ ArrayCtrl`::C +olumn]`&_[@0 Sorting]()&] +[s0; &] +[s2; Activates sorting of ArrayCtrl column by clicking on its header +tab. Parameterless version uses default Value ordering using +StdValueCompare.&] +[s0; &] +[s5;K:`:`:ArrayCtrl`:`:Column`:`:SortDefault`(`):%- [^`:`:ArrayCtrl`:`:Column^ Column]`& +_[@0 SortDefault]()&] +[s2; Sets this column to be initial sorting column (calls SetSortColumn +of ArrayCtrl).&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl`:`:Column^ HeaderCtrl`::Column]`&_[@0 HeaderTab]()&] +[s2; Returns the [* HeaderCtrl`::Column] object describing the given +column. This object can be used to set up additional column properties +(like column width constraints or the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us`#`:`:HeaderCtrl`:`:Column`:`:Callback WhenAction^ W +henAction] callback).&] +[s0; &] +[s0;3 &] +[s5;K%- [@(0.0.255) struct]_[@0 Order]&] +[s0; &] +[s0; The [* Order] object is used for array row sorting. The overloaded +[* operator ()] acts as the sorting predicate, which is consulted +within the sorting method to determine which of a given pair +of row is `'less`' according to the desired sorting.&] +[s0;3 &] +[s5;K%- virtual virtual_[@(0.0.255) bool]_[@0 operator()]([@(0.0.255) const]_[^`:`:Vector^ Ve +ctor]<[^`:`:Value^ Value]>`&_[@3 row1], [@(0.0.255) const]_[^`:`:Vector^ Vector]<[^`:`:Value^ V +alue]>`&_[@3 row2])_[@(0.0.255) const]_`=_[@3 0]&] +[s2; The sorting predicate. This method should return [* true] when +its first argument ([/ row1]) is less than the second argument +([/ row2]) according to the desired ordering.&] +[s4; [%-*C@3 row1]-|an array of source data index values for the first +of the rows to compare&] +[s4; [%-*C@3 row2]-|an array of source data index values for the other +row to compare&] +[s4; [*/ Return value]-|[* true] `= row1 < row2, [* false] `= row1 >`= row2&] +[s0; ] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/FileSel$en-us.tpp b/uppsrc/CtrlLib/src.tpp/FileSel$en-us.tpp index 650e03a0b..960c175fc 100644 --- a/uppsrc/CtrlLib/src.tpp/FileSel$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/FileSel$en-us.tpp @@ -1,88 +1,450 @@ -TITLE("FileSel") -COMPRESSED -120,156,132,186,233,111,43,107,158,30,246,175,52,48,182,97,79,198,131,115,206,189,183,239,237,238,32,152,15,73,190,56,72,128,56,129,63,52,122,38,237,153,78,220,72,219,51,152,25,195,8,130,12,142,68,81,20,119,137,59,197,77,220,197,125,39,197,165,72,137,164,184,83,20,247,189,184,239,75,137,164,88,92,138,75,120,206,109,207,36,136,3,83,128,88,111,85,189,191,183,170,222,231,247,252,158,231,45,254,242,211,79,254,209,63,250,240,71,31,254,224,195,127,230,243,243,255,250,55,255,235,175,255,253,239,254,246,87,191,252,237,183,223,254,240,139,95,127,250,238,23,255,251,191,248,31,126,246,139,63,252,147,127,250,211,111,255,217,151,40,31,79,81,190,249,254,227,55,63,124,247,205,199,111,63,253,244,244,239,227,55,31,63,125,247,233,155,111,63,254,240,233,103,223,254,240,205,55,63,124,248,249,159,255,238,215,127,243,55,191,250,229,239,62,253,240,195,47,190,116,250,244,71,159,254,224,211,247,223,125,250,248,253,183,63,124,251,195,199,111,190,255,225,211,169,239, -167,15,31,62,125,248,254,211,119,31,191,253,230,135,79,223,253,252,47,126,243,55,127,254,171,95,254,250,135,111,126,241,135,255,227,79,79,157,190,249,50,210,41,248,135,143,63,253,244,237,247,223,126,250,240,205,135,79,223,158,134,250,248,195,15,223,126,252,254,187,31,190,249,217,79,127,250,243,63,255,245,95,253,237,111,255,242,223,253,126,172,223,126,252,248,233,227,47,254,245,199,239,127,113,186,230,191,251,187,191,251,227,143,223,126,248,241,10,190,61,5,251,248,225,219,211,165,126,60,237,251,240,237,167,239,63,126,247,179,15,63,251,238,135,143,63,124,248,230,20,252,187,239,63,124,247,243,191,250,245,95,255,250,223,254,255,223,250,119,255,217,91,255,254,195,207,127,251,183,191,57,133,248,195,255,226,227,199,239,79,93,126,250,71,63,253,131,143,223,126,127,186,209,31,190,249,246,187,31,190,255,112,26,252,211,167,79,223,124,243,233,227,55,159,126,246,179,79,223,253,244,187,239,127,254,111,126,243,235,191,248,205,95,255,234,151,255,231,159,253,95,255,248,191,249,239, -255,249,255,252,47,127,242,203,191,249,248,139,127,241,243,255,229,244,247,223,254,246,119,191,249,151,191,249,221,151,205,175,15,245,231,63,249,229,63,254,240,225,159,127,248,240,39,255,244,195,31,127,248,227,79,223,125,247,207,126,242,251,167,253,227,254,159,252,217,127,220,250,147,15,63,249,125,239,127,56,246,243,127,56,250,15,253,255,234,223,255,235,223,253,246,207,255,191,1,254,244,203,168,255,234,183,127,251,111,126,31,230,55,127,254,183,127,249,215,255,221,175,255,143,191,252,247,127,251,167,63,249,79,239,255,251,32,255,229,255,43,200,255,244,151,127,245,175,126,251,239,254,226,47,255,195,159,254,228,239,55,255,254,212,255,234,207,126,245,79,126,245,203,191,249,244,139,159,252,254,235,79,254,228,183,255,246,215,255,219,111,126,126,154,228,239,254,201,105,242,191,199,161,50,103,198,179,207,159,207,95,14,159,79,159,53,147,59,225,97,31,120,207,40,30,236,212,171,29,100,194,65,68,106,158,147,238,135,218,7,217,157,232,250,243,205,249,88,72,97,92,37,207,175,16,81, -57,80,49,202,72,219,248,146,27,72,46,49,189,203,36,237,30,53,215,191,136,12,162,121,88,66,160,220,220,25,35,146,115,33,94,45,148,189,45,220,139,85,165,114,113,113,173,197,62,109,149,9,94,249,76,254,50,169,238,183,246,67,182,10,33,174,132,253,176,84,170,84,200,187,167,51,90,13,115,171,124,17,101,68,143,111,184,241,26,108,29,100,232,153,36,86,148,240,187,59,203,180,41,130,136,77,249,160,96,196,33,119,9,134,124,152,105,32,5,22,1,17,153,200,127,238,145,252,216,133,124,184,123,9,20,162,100,223,18,220,192,250,49,175,67,202,165,65,210,75,143,143,190,170,201,201,22,10,106,67,188,216,151,67,108,183,95,232,16,122,172,113,255,11,132,105,238,168,1,241,117,43,55,25,96,52,182,169,111,202,103,122,156,249,241,82,55,93,229,219,150,241,145,138,16,109,215,182,65,37,36,59,162,216,187,119,226,188,29,55,200,65,25,23,97,65,236,56,78,254,232,46,82,140,15,229,214,116,91,60,27,105,46,107,88,33,217,115,203,21,35,198,42,77,152,161, -221,87,16,16,192,55,109,183,103,59,143,114,189,114,66,200,197,249,202,166,18,20,241,163,244,81,34,181,31,154,228,109,100,28,169,219,44,199,116,148,246,28,107,190,203,8,190,183,190,76,253,222,98,212,140,23,70,247,235,189,79,100,139,211,106,175,198,241,220,196,72,65,14,203,234,121,216,231,78,58,201,164,134,244,246,254,20,61,18,187,240,115,79,187,100,191,15,2,195,254,28,140,199,104,62,103,205,217,221,175,236,78,5,81,60,77,0,15,200,242,226,54,42,29,168,18,109,44,99,100,239,201,143,33,103,60,172,150,16,124,112,194,129,217,146,245,80,119,214,120,125,107,181,91,252,247,142,248,165,170,221,31,86,42,50,191,186,79,245,100,213,134,30,112,28,71,239,134,99,96,20,180,165,108,113,34,23,31,224,184,87,234,225,65,106,55,5,56,168,10,221,140,217,170,137,73,112,230,193,203,180,19,195,203,106,107,236,183,18,182,123,87,239,222,209,191,152,45,89,20,150,189,171,127,178,204,82,142,104,133,233,62,71,249,244,149,155,154,139,207,64,188,68,170,150,107, -171,78,92,55,195,181,131,152,183,163,12,61,162,25,142,11,35,187,238,182,64,51,33,10,121,188,192,81,241,140,86,55,24,208,197,5,201,55,247,49,108,198,30,201,173,183,151,205,221,59,24,41,34,221,91,89,19,189,155,159,219,246,216,170,70,179,136,69,109,207,132,142,191,238,115,111,47,110,46,27,242,180,57,210,149,178,178,175,142,167,60,86,17,152,155,10,169,84,202,33,48,41,111,29,230,65,6,7,226,42,67,143,243,168,97,175,235,199,192,74,109,101,21,162,154,153,21,255,34,68,23,136,228,5,246,98,223,173,93,233,9,58,223,19,123,85,127,38,173,38,49,55,240,210,7,4,99,153,240,204,192,12,185,34,85,184,35,95,61,84,149,79,213,240,145,234,243,192,175,71,18,232,210,79,187,16,231,224,11,130,143,7,13,98,135,208,109,63,201,50,117,112,134,226,131,22,194,248,14,44,65,42,169,247,116,121,247,133,109,98,193,138,143,197,128,171,130,3,121,163,252,212,182,43,201,3,90,79,221,214,167,154,46,117,92,67,228,173,24,222,51,15,247,158,99,179, -133,36,4,1,15,208,168,136,239,17,183,121,91,24,155,106,105,167,169,165,25,121,118,151,244,76,143,239,222,44,149,184,106,141,229,34,0,152,35,232,146,77,163,238,235,201,241,232,91,79,50,82,231,227,190,208,133,98,249,128,191,240,82,199,7,203,108,199,162,228,236,13,109,151,222,211,236,175,120,58,125,48,55,187,246,214,196,73,113,240,49,26,71,244,173,7,219,1,94,172,142,3,67,244,184,107,237,202,182,220,216,53,51,137,107,110,24,126,199,231,9,187,165,186,35,22,120,250,235,133,161,71,62,78,95,222,122,15,93,114,117,149,124,26,221,245,72,149,217,252,136,62,6,223,95,110,141,205,11,208,118,200,191,175,8,4,203,116,12,35,181,89,249,72,7,102,253,139,194,96,201,51,121,67,209,88,64,204,46,190,46,70,215,79,47,206,151,215,37,137,175,54,46,79,0,80,77,29,239,237,122,54,14,226,166,16,81,22,28,243,54,35,126,212,86,153,105,122,12,218,1,217,213,220,70,184,152,174,77,118,165,165,184,96,171,152,230,207,170,203,252,17,146,210,60,226, -252,67,237,193,5,185,26,137,101,130,207,69,2,143,244,133,28,174,237,42,219,34,22,170,45,35,101,38,119,3,247,222,171,44,32,195,161,1,199,67,153,129,48,20,68,114,49,187,91,227,137,124,242,46,105,57,131,60,52,160,217,113,175,193,136,192,90,43,47,189,134,71,61,161,55,27,160,94,38,117,158,65,8,163,152,128,79,224,198,164,86,139,197,196,54,117,108,116,21,219,97,73,21,215,28,195,121,27,207,36,28,59,42,174,48,17,231,223,34,248,92,221,34,39,87,12,185,125,29,151,110,38,175,96,60,169,248,54,189,1,30,4,192,46,171,192,104,187,187,218,193,128,212,108,5,165,181,5,113,152,231,97,64,79,240,77,172,166,139,85,127,202,110,217,246,135,233,120,36,144,215,171,105,195,123,126,246,178,52,153,48,90,251,162,142,99,235,246,76,238,235,241,128,25,219,118,187,16,209,68,182,221,109,202,140,253,61,4,229,218,242,196,46,1,5,220,115,146,128,183,249,172,227,3,186,253,115,133,250,234,30,102,119,228,139,73,10,74,199,109,133,232,128,186,157,171, -2,211,245,218,129,113,102,108,245,6,47,0,109,99,178,64,157,132,170,117,247,211,186,142,0,175,186,233,6,57,126,127,171,210,175,222,34,108,14,224,217,77,2,186,3,58,49,153,205,203,172,219,58,9,48,156,0,161,88,27,16,247,246,33,1,57,145,22,47,33,152,105,107,130,248,171,129,73,180,191,246,224,20,183,197,89,201,117,188,236,131,166,9,235,145,209,106,90,130,155,169,221,242,88,24,85,143,240,49,181,247,152,223,228,228,151,73,105,142,201,131,107,27,205,15,178,60,26,123,234,254,115,141,117,137,178,149,217,0,138,201,215,207,129,103,85,83,120,121,68,122,131,55,151,157,107,218,155,153,252,252,17,204,16,87,61,151,14,13,146,93,123,41,212,21,2,114,143,161,181,50,145,246,73,140,11,20,152,86,87,89,195,97,80,179,138,52,181,232,77,17,217,182,210,6,36,28,116,35,65,184,116,176,208,22,135,5,100,219,77,71,43,124,144,196,182,213,216,238,253,212,163,169,45,246,21,226,12,90,185,110,13,73,131,234,172,198,178,95,170,90,55,64,186,172,25, -243,14,42,252,165,199,117,76,238,182,3,50,249,161,138,48,48,147,203,197,146,60,62,91,5,56,219,165,76,80,177,181,174,193,13,27,66,222,51,182,234,106,115,150,183,20,17,112,159,221,194,47,99,188,1,8,59,128,30,73,195,155,20,159,163,105,62,196,23,200,53,149,86,115,54,4,182,112,53,205,129,183,233,26,249,30,41,202,114,93,82,208,198,214,109,171,233,197,172,149,238,141,37,181,17,56,199,79,198,201,166,102,229,102,122,66,149,43,253,30,9,250,156,253,161,238,86,54,173,110,48,28,148,246,182,133,175,179,216,151,123,51,180,127,17,180,155,23,164,51,4,76,174,124,2,62,175,22,123,19,20,23,151,90,14,240,64,94,197,206,84,110,17,160,12,39,143,219,242,54,145,67,90,151,233,227,206,167,35,160,242,2,56,212,218,203,185,243,214,202,35,155,60,131,185,37,240,238,49,182,224,212,85,58,70,221,111,57,60,48,217,229,18,200,76,130,105,123,143,72,139,212,56,2,30,212,181,104,17,185,227,176,48,248,98,74,117,156,223,196,115,187,30,73,222,47, -217,118,234,45,73,166,91,115,200,82,121,108,235,142,239,40,72,195,97,197,94,168,22,187,46,245,184,59,163,202,166,98,108,205,149,241,32,3,243,178,202,143,89,181,135,233,54,76,240,157,65,155,119,226,132,127,85,180,58,145,189,47,207,117,187,119,213,162,79,112,11,48,223,195,38,140,14,16,147,14,222,230,156,90,110,89,60,61,79,171,30,179,53,201,49,215,186,30,56,219,161,76,224,235,234,6,53,230,123,54,119,2,207,106,157,53,32,114,45,145,116,216,25,139,75,233,30,172,237,221,185,0,136,125,51,6,122,208,196,96,51,92,3,164,30,84,161,50,162,41,103,237,141,16,39,92,65,135,41,89,225,233,206,129,242,195,162,132,138,151,99,97,15,238,101,112,102,220,166,6,9,211,59,8,66,128,5,73,231,124,111,122,194,8,24,177,25,34,249,27,135,44,227,90,182,157,58,53,141,57,52,197,106,97,226,240,190,214,181,187,196,56,208,122,27,182,217,41,207,170,159,227,164,49,47,15,253,55,177,110,42,224,206,182,68,185,123,113,152,81,193,83,61,216,129,55, -166,213,189,187,79,190,7,89,0,180,115,113,166,171,20,236,110,100,99,132,118,4,44,82,199,18,192,195,167,76,38,161,28,85,66,28,164,225,41,99,211,89,140,99,79,93,1,132,78,24,222,163,32,241,72,23,93,117,3,130,87,168,81,137,248,222,170,202,253,139,181,48,178,93,49,93,232,243,209,126,0,121,32,207,122,253,164,114,207,189,10,167,121,21,123,122,27,37,32,225,42,165,0,213,179,224,36,65,16,128,203,215,183,88,158,24,63,22,60,71,218,94,176,22,188,170,166,183,187,99,243,12,62,188,61,56,224,61,66,168,173,52,196,83,178,244,142,92,19,211,77,156,20,157,145,71,142,105,101,163,244,122,58,82,16,9,36,216,203,61,14,28,190,83,161,82,184,118,240,201,60,199,173,20,115,52,205,90,122,185,105,212,76,241,205,208,10,39,99,65,147,37,82,78,191,177,73,210,222,45,186,241,64,71,95,157,167,223,150,47,158,182,205,199,85,160,152,2,243,124,189,12,94,234,216,197,230,57,68,23,220,58,222,243,253,6,190,180,178,19,246,177,93,252,77,161, -27,238,60,51,79,54,232,218,45,228,208,110,64,5,50,9,243,42,90,140,58,31,67,6,132,211,226,16,92,101,179,2,156,239,84,218,252,222,39,235,241,107,86,87,179,190,50,229,166,7,123,22,31,205,123,30,6,64,89,27,137,1,114,77,175,180,24,86,185,66,166,235,232,113,87,224,234,49,87,221,82,80,110,7,52,193,204,182,91,221,190,121,76,65,147,138,121,66,206,213,14,69,124,18,157,224,167,109,91,199,100,192,162,95,54,160,157,182,254,66,175,23,103,30,36,113,180,173,31,221,11,48,127,20,39,49,151,90,15,187,21,128,223,112,100,114,245,48,122,18,70,73,183,238,62,2,136,23,96,209,11,25,21,8,137,239,73,80,173,193,253,32,81,115,247,76,49,144,106,11,178,58,171,53,111,254,136,7,210,120,76,243,12,115,185,94,45,60,111,118,235,203,155,108,144,152,148,173,243,171,172,105,225,235,232,220,219,189,198,150,126,52,214,220,245,4,123,196,7,253,53,15,101,191,186,239,12,248,193,98,133,94,221,54,107,47,252,35,14,62,107,61,163,74,78,16, -110,239,0,210,114,107,127,94,171,116,101,29,255,178,113,235,116,212,115,204,177,128,125,177,178,116,132,107,88,112,255,192,119,57,224,227,82,238,25,81,125,246,96,106,55,61,114,234,83,150,139,201,183,137,214,3,12,70,199,118,224,222,147,55,62,102,140,13,218,87,175,201,34,36,154,108,156,83,251,190,45,41,50,137,92,132,34,7,203,182,96,2,52,150,169,16,144,161,1,65,66,160,159,40,152,131,220,109,115,94,75,185,122,92,3,115,117,198,132,151,138,149,139,241,214,2,33,132,196,153,2,5,4,192,195,142,118,23,217,141,158,242,128,38,116,227,88,113,60,252,52,106,133,242,112,222,151,25,193,202,105,132,249,193,71,79,232,134,167,115,172,107,35,167,192,131,237,24,231,183,25,51,33,95,52,11,157,231,200,132,212,94,196,56,76,23,233,208,129,226,239,190,156,192,178,241,61,7,61,175,158,222,240,72,220,164,145,30,215,162,191,233,161,80,11,208,179,174,129,180,147,176,110,173,7,99,95,224,101,235,11,173,98,249,215,23,232,109,102,60,150,60,75,114,144,156, -47,79,130,16,159,102,226,172,50,147,184,86,215,57,66,237,35,182,136,148,152,29,46,208,148,219,46,143,80,133,103,198,59,123,160,156,227,241,6,14,98,15,145,109,178,45,91,233,68,222,90,89,166,111,47,253,141,7,124,246,60,221,140,107,14,199,232,225,88,57,142,242,188,109,78,254,162,93,175,210,38,210,8,96,34,111,167,180,69,60,102,199,102,31,172,101,109,189,209,235,193,68,30,8,48,155,203,179,116,205,244,102,79,29,80,193,73,218,19,152,232,64,49,92,222,208,167,253,39,142,88,134,232,217,7,5,82,100,249,222,156,8,251,80,92,90,72,128,14,124,14,176,154,203,183,219,66,212,160,126,126,209,141,57,206,131,209,55,126,43,48,222,156,250,129,226,185,35,247,44,7,55,123,68,195,131,29,157,224,84,96,222,249,125,12,65,126,221,237,200,93,131,231,36,22,170,108,188,79,42,191,123,87,111,9,14,213,117,75,176,205,182,130,83,104,85,200,48,129,195,89,156,233,130,65,79,113,211,225,135,61,14,243,182,49,73,66,87,167,44,55,145,38,227,42,52, -18,33,144,152,108,11,32,27,205,184,99,60,211,141,224,11,91,241,245,12,7,106,5,92,3,235,178,65,200,97,198,2,45,199,179,223,205,30,232,43,193,49,119,92,219,17,55,190,102,130,200,83,185,167,73,82,232,92,207,45,64,87,120,232,120,92,130,120,17,122,9,235,156,199,1,2,219,71,85,88,183,47,58,87,135,193,94,136,28,222,53,206,99,124,172,161,78,119,105,243,232,173,111,35,184,29,59,148,81,119,226,115,72,247,208,211,33,213,253,121,79,217,12,242,234,61,206,197,121,215,189,101,154,56,68,15,35,6,179,151,236,6,185,86,217,11,77,44,18,16,154,228,171,205,232,36,135,196,138,179,162,205,150,190,161,221,178,202,207,79,38,103,112,80,46,7,144,174,20,126,233,199,36,181,196,110,131,205,161,166,154,186,32,194,56,162,15,56,50,143,170,165,197,87,107,103,115,168,25,11,157,7,251,134,149,171,46,77,231,132,220,110,186,152,245,111,159,86,86,51,164,119,34,76,123,159,203,51,12,154,139,156,105,70,102,0,70,198,197,106,80,22,165,109,173,160, -110,172,16,212,233,17,181,193,22,128,160,93,54,250,20,212,8,222,119,11,92,213,205,229,28,193,173,1,81,180,215,249,107,119,15,14,92,117,77,56,155,202,163,19,190,56,46,87,62,125,85,254,238,5,163,108,202,155,67,104,14,218,52,68,57,79,204,119,12,26,131,209,45,68,230,145,244,81,161,46,232,102,39,144,171,108,124,192,45,168,43,14,154,185,4,243,27,54,87,23,66,121,184,244,199,146,233,220,176,217,188,55,158,11,62,83,221,203,2,55,148,177,20,79,216,57,16,25,171,218,123,51,221,118,16,158,187,155,237,230,73,16,48,170,22,20,161,225,105,194,30,238,238,130,114,128,202,179,200,24,142,62,169,239,57,126,46,32,13,214,101,212,80,48,226,79,62,203,253,4,146,78,103,205,121,14,36,161,219,71,120,39,169,105,46,69,31,214,205,36,38,147,215,58,161,1,4,213,103,102,77,44,31,118,115,167,217,34,7,38,245,224,171,243,225,29,22,160,149,47,50,139,46,248,214,94,13,242,147,227,26,141,237,240,183,185,158,110,19,187,33,250,80,137,233,122, -26,137,50,150,79,224,213,121,240,60,71,177,148,167,246,132,51,241,108,150,36,11,230,168,83,68,227,103,200,70,183,107,190,63,234,247,159,203,123,148,152,172,217,120,104,115,234,22,205,115,226,141,106,60,236,189,166,157,153,89,153,106,44,74,241,161,129,232,17,33,79,6,150,212,218,1,205,100,105,142,231,9,209,155,27,55,15,83,218,32,135,70,244,194,43,92,137,118,79,222,232,248,43,3,22,64,214,130,131,112,98,153,150,20,22,213,48,175,69,77,229,192,146,243,78,79,213,235,186,90,158,254,172,189,77,212,71,221,16,56,19,36,164,187,187,162,234,160,189,220,44,186,225,40,217,125,92,215,103,179,153,203,90,151,78,147,177,118,50,149,149,70,7,47,169,109,127,52,114,44,71,253,23,145,232,25,191,38,197,77,77,3,179,10,179,227,197,149,176,182,103,170,11,119,185,195,124,55,11,166,165,239,112,54,34,167,27,149,107,151,104,210,105,246,154,162,229,134,7,136,68,175,69,79,238,120,128,142,252,189,114,167,44,154,186,6,212,197,139,239,142,239,144,33,84,245, -2,160,42,149,17,106,166,230,54,116,155,120,63,18,110,221,69,45,233,60,151,151,240,232,182,141,41,185,139,31,75,39,189,142,181,64,201,41,128,121,115,185,232,64,160,43,254,68,26,105,16,49,134,125,204,137,176,155,69,79,85,91,75,67,41,175,18,175,152,79,250,180,207,102,43,13,135,185,204,221,250,106,51,41,55,66,184,149,221,101,95,207,25,13,246,249,197,209,157,50,63,244,245,190,8,169,165,50,62,15,59,16,165,96,237,131,55,187,36,9,188,73,246,235,163,197,59,253,104,222,2,62,155,251,243,149,229,142,244,222,71,35,26,145,127,31,103,181,56,85,110,8,100,10,38,133,25,215,15,42,68,102,53,193,86,13,213,206,158,151,248,38,20,56,68,24,79,32,51,189,154,153,154,207,67,195,204,156,191,46,83,39,83,130,61,117,110,48,60,37,43,65,239,222,150,230,40,170,34,171,145,15,90,178,182,16,235,53,180,9,201,238,67,103,196,48,238,30,207,226,23,73,164,145,146,77,194,215,164,17,143,27,206,23,69,73,203,124,50,25,167,123,224,242,125,174, -196,156,83,137,147,99,102,77,162,68,207,249,185,235,125,212,115,27,70,116,143,85,71,57,143,74,149,243,163,116,107,114,111,167,170,123,49,222,51,132,221,190,138,197,177,116,175,23,107,13,44,65,33,190,198,9,97,31,174,149,111,200,82,68,37,165,203,24,65,53,176,136,180,116,218,168,30,104,216,155,229,173,37,152,98,201,165,219,3,175,232,44,40,249,252,0,63,186,73,188,107,208,104,171,223,2,137,233,101,123,233,213,156,148,102,186,162,161,237,94,218,23,119,105,87,157,125,120,194,40,26,22,237,183,107,228,126,204,208,192,58,67,185,103,88,96,44,125,229,109,107,78,170,62,62,15,27,2,255,218,117,215,236,136,252,186,206,103,46,25,4,151,111,224,139,243,65,224,146,168,70,140,189,224,9,167,39,82,134,182,169,7,189,158,16,25,45,206,250,230,78,54,140,100,106,199,41,235,246,165,201,96,3,217,69,229,38,192,21,193,174,162,55,53,71,93,223,194,165,187,123,224,230,209,56,25,49,142,67,243,30,100,182,159,72,160,133,101,190,207,54,250,19,54,19,14, -188,247,21,75,63,187,168,194,17,21,171,98,9,136,202,96,1,158,151,245,5,57,207,173,119,3,208,158,48,110,222,139,120,81,104,80,188,245,89,67,254,27,255,230,217,249,16,103,40,232,248,230,59,138,244,110,89,137,153,253,232,169,252,173,14,59,241,166,196,26,248,100,211,215,42,242,89,99,177,243,3,88,25,101,201,144,14,195,40,21,134,109,31,75,231,102,147,24,177,167,244,27,102,191,24,127,138,14,163,101,227,134,74,69,228,229,147,198,126,208,92,193,61,92,202,107,82,82,0,43,27,1,148,183,133,55,74,45,144,211,93,56,85,23,72,177,167,161,56,242,103,50,250,198,203,205,190,46,86,152,108,127,187,78,97,110,146,83,62,83,190,24,184,131,186,224,182,239,46,39,143,188,117,199,187,52,160,250,30,102,249,36,86,98,79,70,141,223,71,95,60,216,174,7,250,213,25,76,223,87,184,246,88,211,47,98,194,86,80,60,227,89,90,176,113,251,128,196,131,54,98,202,191,42,154,71,181,100,25,54,142,172,19,117,66,198,63,142,203,15,228,51,28,140,42,114, -159,25,134,240,43,189,120,235,185,174,162,147,221,97,210,214,135,182,37,141,49,62,106,142,233,75,231,243,89,180,161,14,114,239,235,192,49,103,154,167,62,127,158,48,183,26,34,68,50,212,104,154,16,137,80,178,227,31,22,220,86,229,148,204,64,101,216,8,226,232,195,215,32,124,53,141,157,49,32,30,79,8,143,38,230,212,164,116,205,97,148,162,47,108,7,158,178,156,189,138,57,254,197,91,100,227,125,38,217,175,39,155,155,44,208,18,251,50,207,166,122,62,30,36,61,76,238,182,111,18,148,14,11,16,52,90,152,253,114,204,81,158,54,113,82,51,218,240,185,247,230,165,225,50,17,40,85,158,101,190,96,61,107,80,185,92,233,83,222,192,66,89,86,131,59,14,158,23,124,217,154,195,42,247,25,251,206,245,141,174,212,13,229,201,146,240,138,117,84,32,143,65,70,54,226,214,180,195,179,126,39,69,34,107,46,132,150,225,78,59,187,71,18,238,187,237,74,189,190,214,65,123,92,47,59,7,154,111,164,152,101,76,151,106,159,45,86,133,230,62,9,213,172,224,206,136, -214,221,178,113,64,133,138,241,76,44,38,216,105,180,4,46,17,5,158,219,212,49,35,237,80,227,189,219,36,193,55,86,194,14,143,96,167,239,57,254,217,155,61,82,238,221,112,228,74,201,220,177,189,242,238,45,207,216,109,84,10,172,181,112,79,199,19,241,236,134,85,255,142,236,184,18,192,12,200,60,214,212,40,253,101,241,2,246,106,203,184,32,151,161,134,13,236,40,208,165,81,97,206,177,192,113,229,30,47,229,108,197,162,167,83,112,138,106,238,114,66,71,188,96,247,234,28,151,219,145,139,78,10,93,107,213,219,160,88,189,61,185,205,106,143,142,219,116,179,134,128,26,130,8,25,56,180,35,195,126,177,68,77,87,231,192,250,250,162,195,13,18,230,145,197,176,40,216,247,195,71,49,89,187,182,136,61,173,131,6,226,33,240,82,32,57,213,184,60,26,225,10,175,148,244,140,93,178,42,186,72,182,234,142,88,41,67,251,174,87,16,11,218,88,112,73,225,210,37,92,7,78,102,76,10,99,72,121,141,254,84,35,23,151,22,70,113,230,23,75,200,36,216,19,222,132, -29,136,94,187,16,164,193,131,10,221,35,245,172,250,133,61,237,4,109,202,241,25,186,193,130,205,82,161,96,114,229,88,113,7,141,8,41,161,30,13,137,176,194,171,39,48,33,61,179,115,42,194,187,232,184,26,64,230,212,186,142,224,243,190,37,47,191,148,224,65,116,85,130,225,189,183,45,37,248,222,30,95,110,4,192,0,50,161,238,174,18,74,241,35,120,59,108,136,200,221,21,194,188,107,175,133,177,167,171,75,5,138,149,68,159,195,185,84,255,41,243,116,213,192,121,185,38,160,86,93,215,106,7,52,50,141,94,161,170,145,96,148,230,3,7,74,236,227,148,203,10,137,163,226,151,128,107,119,99,141,17,149,138,7,36,99,206,104,134,6,56,117,159,210,13,98,60,110,217,149,45,19,160,110,90,170,46,36,199,203,236,75,49,255,26,196,84,82,225,242,125,89,70,92,8,214,51,197,133,26,239,63,71,80,215,45,221,100,146,78,153,15,243,103,86,176,74,86,151,2,81,6,246,17,100,178,221,73,109,140,40,120,127,141,76,50,151,52,87,60,67,11,79,253,154,33, -51,122,65,93,249,36,166,41,28,111,222,98,110,128,82,107,228,121,47,219,253,153,74,214,113,181,49,216,46,7,93,205,202,172,17,88,144,170,35,251,66,176,75,222,14,80,243,38,105,187,188,29,107,94,82,67,241,148,47,197,22,108,1,23,175,174,131,63,27,28,230,94,16,150,41,157,2,107,251,149,226,149,72,14,2,229,32,91,106,97,70,161,172,218,64,95,1,15,164,230,88,58,168,233,93,70,209,118,203,221,168,83,47,212,148,148,104,239,74,142,219,203,26,250,24,84,179,214,209,114,187,57,192,220,138,27,204,167,64,43,24,140,123,180,50,13,112,33,149,212,28,169,174,34,247,20,17,79,207,86,182,89,243,89,77,221,191,185,171,100,18,0,235,162,28,11,123,180,120,206,91,56,53,195,165,66,63,80,157,77,156,97,127,1,43,8,86,89,105,141,162,49,156,25,10,213,234,118,156,34,156,221,112,46,75,133,74,95,53,137,161,151,28,221,174,234,161,160,149,60,64,231,171,236,130,142,231,24,12,21,163,199,242,205,126,83,23,151,253,143,206,59,165,144,84,155, -144,159,75,5,101,3,203,15,31,222,68,73,78,17,51,40,140,212,60,240,90,50,145,203,120,184,225,34,107,29,235,0,65,1,5,16,244,33,229,139,243,237,161,28,113,235,186,119,110,11,181,144,26,160,144,88,121,101,161,227,181,74,63,172,45,89,59,126,245,62,4,36,86,28,6,144,226,164,172,230,110,84,109,202,52,21,250,216,214,120,50,99,219,9,62,2,190,60,115,181,233,29,224,199,146,20,19,252,58,203,134,83,12,95,49,52,82,212,100,145,186,174,110,13,150,125,65,213,168,154,166,83,67,32,194,12,145,82,139,118,100,48,244,188,20,156,249,118,182,254,25,178,180,155,186,129,128,178,184,170,45,49,210,26,15,150,229,196,238,229,32,141,100,91,16,173,225,42,51,37,88,156,245,82,31,205,75,96,152,116,165,127,227,213,25,139,148,97,69,126,156,23,162,1,10,99,104,241,55,250,15,221,199,89,116,164,106,124,81,42,61,83,3,93,10,208,42,167,187,214,89,176,235,187,9,229,33,50,211,104,166,43,24,103,88,84,24,122,69,176,32,145,139,223,120,1, -174,145,176,138,212,206,203,37,109,16,52,208,97,198,224,235,21,2,2,221,64,46,99,117,98,216,41,191,165,65,170,30,157,37,73,73,89,172,23,160,123,86,226,84,147,76,32,23,48,141,238,156,49,68,234,172,181,100,29,87,136,88,73,5,44,150,149,92,243,148,146,1,44,22,21,138,243,194,198,236,166,15,116,101,58,235,216,104,232,64,163,48,72,204,193,204,16,40,175,57,100,186,198,58,212,163,73,111,76,36,163,121,24,18,237,222,120,36,242,118,179,11,110,252,29,87,57,185,89,95,51,53,179,3,136,140,5,155,200,244,125,181,114,192,17,48,117,136,143,50,41,123,16,51,166,163,15,61,156,125,24,6,29,219,103,251,43,54,97,217,231,186,29,42,44,71,180,119,26,20,34,244,160,195,195,210,249,181,151,118,225,23,110,184,247,165,65,34,183,196,7,111,19,76,25,103,159,56,27,107,184,175,247,89,212,151,195,56,238,62,72,248,218,54,160,94,85,49,29,40,95,192,23,129,4,169,154,201,91,243,1,198,69,227,130,71,201,214,119,64,29,202,118,46,224,75, -97,27,230,12,31,241,48,67,237,225,32,64,213,174,190,148,146,112,249,211,72,100,234,43,25,19,125,125,179,138,57,226,243,213,136,119,85,217,132,149,111,7,80,189,42,175,74,243,59,237,213,226,108,117,41,52,196,154,106,179,159,100,163,223,213,209,18,36,202,52,31,161,253,77,52,200,73,51,136,186,76,201,122,210,93,235,59,222,44,243,124,137,8,54,24,165,25,225,86,166,122,106,116,229,42,58,222,7,47,251,174,47,44,58,118,143,144,37,186,31,57,41,137,199,155,45,160,68,158,111,242,178,53,26,30,150,241,236,253,99,135,147,70,76,197,136,63,230,242,216,60,55,64,167,82,43,95,77,211,205,89,156,234,233,87,229,246,136,96,131,76,94,230,58,33,101,198,44,222,70,105,242,164,63,246,242,82,197,2,46,229,68,38,148,204,155,202,12,61,79,136,87,25,235,74,89,148,66,130,187,189,108,157,68,139,158,49,60,152,229,244,113,36,242,35,121,116,5,176,122,83,186,187,83,108,159,83,225,97,182,187,163,3,67,252,20,21,64,250,155,9,177,20,87,25,194, -57,186,76,232,114,171,201,244,18,148,21,60,146,66,160,9,193,82,72,22,165,117,226,102,137,40,172,183,145,136,123,154,72,136,73,123,48,159,43,47,145,197,170,186,170,109,25,41,13,61,78,241,213,163,94,169,235,125,144,202,5,140,47,11,93,233,218,208,208,189,228,248,177,218,104,96,151,200,238,36,10,133,188,106,125,24,211,79,9,57,56,15,93,188,169,228,0,18,139,95,48,50,79,177,114,44,15,185,113,215,140,197,72,37,28,234,243,227,247,197,139,64,87,107,103,221,16,221,122,207,207,72,246,165,139,52,227,158,227,98,171,60,182,22,76,169,22,163,66,90,102,245,250,162,210,219,193,112,71,167,100,80,230,154,22,201,111,191,111,12,149,236,28,4,40,239,176,100,242,186,167,188,52,159,124,194,182,232,218,44,22,5,127,59,213,190,206,186,74,122,155,216,197,78,122,108,120,196,98,49,251,117,169,83,24,76,112,3,50,67,254,120,49,186,195,245,79,233,102,57,203,2,104,197,237,184,179,95,131,110,171,19,114,35,92,10,154,194,96,35,89,139,185,233,5,53, -14,227,252,168,99,201,20,20,243,108,188,84,41,228,226,199,179,32,23,236,115,189,151,1,144,113,29,16,170,199,5,11,111,168,8,135,58,179,147,220,207,162,128,86,180,213,34,104,146,45,61,63,127,203,98,134,141,11,19,116,142,198,23,174,12,128,84,21,245,95,0,37,243,178,115,0,69,230,180,149,9,227,82,35,179,105,42,81,190,158,84,71,122,21,117,158,164,138,204,133,13,198,0,137,100,31,179,100,119,51,77,161,156,85,192,240,228,0,14,104,75,99,59,247,186,228,122,112,249,253,61,255,248,48,113,122,152,209,52,52,185,191,107,103,113,179,124,91,152,67,176,41,40,124,224,239,31,240,99,203,61,63,193,160,97,94,192,232,26,122,40,101,31,34,157,104,66,8,123,15,184,197,224,34,39,92,178,155,75,18,70,169,157,242,253,39,1,194,158,126,41,104,240,73,234,239,179,181,83,91,241,181,237,165,69,47,30,193,80,181,159,121,252,90,86,15,198,160,141,27,29,190,150,232,210,5,234,225,53,128,109,156,24,63,199,92,61,240,187,202,51,0,105,29,64,180, -242,106,76,244,82,144,81,220,86,183,17,96,6,70,39,42,56,39,147,119,231,227,132,103,178,237,144,120,204,161,53,229,22,71,114,215,11,250,175,186,228,154,22,201,219,180,237,192,25,113,85,163,32,76,231,46,212,214,89,233,69,212,25,5,138,169,174,207,153,139,77,24,76,77,119,192,163,4,133,140,44,74,17,51,214,123,221,94,197,227,224,168,147,226,226,235,58,47,18,198,93,164,59,186,72,231,254,41,10,90,38,226,80,182,210,44,157,93,151,31,66,121,152,146,73,124,166,173,172,71,221,190,3,46,32,61,6,189,65,159,125,241,167,72,148,26,82,99,22,71,163,98,108,154,124,41,88,41,253,234,185,149,32,203,204,34,112,125,45,157,151,110,205,29,78,174,37,165,195,59,253,166,193,28,20,85,26,14,59,4,138,46,124,174,207,219,97,99,166,153,248,67,148,86,188,36,16,145,38,180,160,61,251,126,167,92,95,34,78,142,135,217,72,208,18,145,168,178,93,31,86,95,175,131,186,238,161,212,137,60,116,239,38,114,18,35,160,220,40,49,106,145,229,190,60,83, -41,32,236,248,76,17,60,232,12,174,139,103,34,218,129,235,76,151,34,191,121,191,204,53,84,128,188,127,2,144,142,23,175,169,154,105,105,55,77,177,238,154,232,179,132,114,52,166,231,194,209,57,40,114,170,50,100,177,43,142,145,140,91,64,179,57,33,61,37,243,97,61,119,171,18,78,182,151,183,18,102,56,91,215,13,250,217,3,168,183,105,140,164,224,106,251,8,78,136,169,21,38,37,67,81,24,192,107,170,150,223,71,243,179,213,9,131,143,159,1,191,215,4,195,167,7,20,77,21,51,215,186,241,67,119,93,127,26,161,123,135,248,240,1,140,82,74,2,43,147,135,195,148,148,18,77,9,169,70,134,233,179,240,198,15,26,132,238,142,10,184,15,98,89,40,145,198,46,208,33,82,221,252,209,134,18,41,111,199,147,241,9,213,171,209,132,133,216,152,138,59,36,38,225,222,83,151,105,67,158,86,106,201,209,66,122,191,91,204,35,64,137,133,141,98,149,243,66,250,57,19,103,146,107,202,140,230,241,53,3,109,34,224,125,121,177,194,117,111,222,183,69,35,42,64,231, -107,174,188,236,160,11,225,101,53,38,135,114,68,12,7,97,138,180,214,16,101,153,164,28,229,81,6,234,243,24,250,42,118,62,203,115,234,217,82,138,166,246,20,241,27,69,140,158,162,92,92,203,238,50,161,115,196,64,46,118,46,104,1,222,215,118,177,80,113,140,68,168,39,60,168,196,18,29,87,194,245,73,54,142,209,21,116,230,199,227,109,174,28,217,123,212,185,132,171,120,144,179,84,40,85,181,251,234,86,246,18,183,15,151,114,114,81,5,100,81,119,102,212,121,177,221,220,234,60,89,172,244,172,102,159,70,56,50,126,96,207,97,199,109,68,36,249,184,170,79,35,9,88,6,44,131,49,174,63,191,39,44,148,59,77,195,30,69,87,1,115,144,84,227,34,111,85,244,179,242,125,173,50,55,134,104,49,69,30,127,207,139,179,179,90,225,48,131,134,237,245,163,198,186,154,83,1,73,103,7,12,155,106,147,117,164,207,251,69,167,219,53,29,164,244,251,78,69,160,207,171,162,19,136,102,242,16,172,247,179,190,172,48,58,218,148,166,236,141,149,249,98,171,190,211,79, -243,38,157,38,19,180,104,205,162,126,98,242,27,39,130,222,51,43,234,194,35,110,38,71,47,54,4,220,142,238,199,36,240,40,254,133,48,104,7,244,54,67,79,172,121,18,111,97,73,164,32,221,37,21,222,73,120,18,200,222,200,211,104,181,133,242,180,52,61,177,97,241,242,233,188,79,40,116,19,45,194,66,20,20,198,100,40,245,115,183,223,82,89,99,34,7,94,245,106,156,132,162,185,89,178,123,161,193,233,5,204,254,22,192,51,52,132,102,186,166,223,44,89,243,147,54,164,89,18,234,97,84,77,221,68,84,25,107,5,59,166,119,66,96,139,78,77,141,178,139,231,16,247,84,119,158,169,155,221,188,84,118,160,24,151,43,224,178,129,214,152,199,206,236,101,56,126,243,170,140,91,34,19,7,21,221,142,155,241,24,84,46,91,76,169,164,226,231,97,138,201,205,14,181,169,130,74,147,52,218,142,105,22,129,67,166,166,97,238,117,167,201,215,65,239,165,236,25,98,183,168,74,57,163,41,223,136,27,158,149,253,44,206,7,164,122,171,6,4,38,131,206,241,38,10,78, -86,224,57,16,227,2,18,209,62,38,60,88,204,248,234,82,83,224,56,135,222,29,104,245,181,119,155,69,209,210,34,149,176,59,75,90,149,169,176,139,81,74,242,246,77,132,88,204,57,5,188,164,150,215,25,119,242,81,165,37,2,213,17,254,139,56,59,105,179,246,23,113,150,173,155,201,42,167,41,79,97,42,30,190,102,237,80,82,118,184,148,252,238,105,98,50,206,36,69,103,57,35,186,98,197,98,84,70,194,56,183,217,129,87,59,224,67,122,25,165,180,243,237,38,19,66,214,58,186,59,114,172,60,128,82,133,214,134,5,150,235,208,50,210,142,203,59,199,204,250,190,239,191,209,31,193,109,108,83,43,111,58,94,144,68,200,190,250,85,43,126,113,205,247,208,20,170,84,182,169,42,6,133,202,59,239,162,224,180,58,234,86,7,53,126,58,209,238,74,19,42,21,194,35,24,204,150,91,236,166,222,166,26,163,208,59,154,108,128,245,126,190,74,95,159,35,194,213,141,48,137,17,94,40,174,142,103,192,181,243,245,30,85,250,34,171,78,20,127,113,226,248,47,20,255,126, -226,120,38,51,187,235,210,186,16,209,155,125,72,230,114,155,77,8,92,114,212,143,155,38,86,127,172,64,215,222,29,240,20,2,191,128,253,132,117,147,39,95,125,88,165,148,81,230,6,49,225,147,166,189,234,148,196,74,202,16,158,41,244,238,167,37,149,7,72,124,59,224,117,214,136,184,143,186,204,185,227,209,114,132,154,64,95,242,36,218,117,116,179,163,12,44,236,111,187,137,243,244,243,69,225,18,48,238,222,44,79,24,93,217,70,186,18,250,249,2,65,47,29,178,204,159,39,136,104,90,30,198,233,39,121,217,220,145,30,13,10,147,196,218,72,76,46,215,101,71,80,233,188,218,32,82,241,173,178,63,28,102,177,242,207,183,38,93,252,134,129,94,185,222,231,232,66,180,36,14,51,79,222,226,100,45,114,181,207,137,87,21,47,138,65,226,108,223,76,53,198,206,28,144,37,75,90,176,240,138,11,179,165,134,71,46,227,22,118,169,31,207,144,95,119,0,12,249,162,199,140,223,91,68,169,202,59,159,125,226,109,104,85,238,237,56,43,155,176,135,135,52,177,36,141,43, -132,219,185,192,151,50,96,21,172,254,178,102,187,84,246,208,39,237,155,162,34,188,92,62,195,87,202,46,239,79,116,16,109,69,55,218,88,168,169,179,198,186,240,155,155,205,69,202,43,127,145,145,86,157,1,79,247,42,238,73,220,69,241,245,149,238,144,206,161,1,51,175,230,220,68,48,153,85,217,11,162,156,62,48,122,100,249,190,160,146,149,67,33,123,139,155,17,80,115,185,89,186,1,147,97,142,230,182,37,41,99,239,157,168,114,48,201,164,248,162,146,31,244,235,114,125,205,96,35,83,200,71,1,165,190,86,22,33,207,155,13,18,62,201,255,86,145,236,1,29,185,64,45,55,212,89,158,40,115,246,218,89,61,23,211,196,214,215,142,161,166,20,107,59,90,213,57,32,242,195,17,25,236,10,198,136,152,22,58,67,241,196,226,29,202,52,65,135,189,47,46,162,110,231,206,117,131,30,91,185,183,65,178,166,243,33,225,81,122,210,119,37,85,125,50,89,146,86,155,133,115,181,133,205,19,241,117,144,31,242,29,116,131,35,187,107,81,100,131,23,72,97,145,196,46,86, -195,124,105,174,86,182,100,42,49,50,23,40,224,201,103,204,9,75,130,45,112,109,59,243,74,52,95,240,230,247,30,224,47,6,224,247,60,124,33,57,232,218,90,243,240,110,112,161,71,11,207,5,154,187,207,136,74,126,106,207,190,180,143,69,188,25,127,127,184,90,172,46,199,66,31,171,201,137,100,74,39,239,190,137,129,177,203,135,33,71,127,132,174,93,95,100,139,109,28,143,88,90,247,76,127,23,49,151,239,53,115,182,39,191,71,106,132,91,197,193,131,18,95,234,140,46,172,212,3,88,142,181,182,81,232,152,88,180,156,41,206,168,49,218,130,71,115,149,140,168,31,34,91,141,4,244,27,4,109,13,34,110,200,158,104,126,118,240,57,43,149,4,228,113,31,79,113,68,118,64,233,170,77,169,41,68,101,35,110,207,196,167,248,117,89,124,21,29,68,118,36,205,20,127,27,200,209,243,189,153,71,239,102,103,39,173,170,48,226,173,67,96,218,177,177,182,206,247,194,169,137,132,123,27,73,173,143,169,164,120,69,154,168,168,72,11,215,31,190,88,104,39,100,119,253,239, -88,59,79,159,207,211,6,70,59,82,130,75,188,244,212,129,79,21,128,114,203,224,112,148,10,163,171,169,73,169,9,101,116,178,140,82,210,186,175,86,146,0,62,214,203,46,168,150,50,198,205,195,181,106,144,67,61,38,82,46,215,204,76,241,246,114,160,58,86,192,219,204,92,178,215,70,115,104,71,131,71,46,193,29,55,153,109,77,139,248,231,153,207,239,79,117,102,167,24,165,73,217,11,210,107,237,246,97,88,26,10,112,22,41,11,174,151,188,243,146,167,164,226,225,104,174,30,212,180,177,131,100,172,5,82,106,233,210,145,86,196,72,79,66,12,177,175,56,82,8,180,145,105,87,103,23,180,198,44,253,205,136,106,205,202,128,87,182,154,99,225,89,167,55,143,186,12,218,144,47,211,31,209,116,158,186,79,166,82,35,224,164,180,216,100,95,192,166,181,117,111,184,166,100,35,229,23,28,19,172,124,6,40,184,150,238,109,96,115,180,116,102,90,92,32,159,34,3,199,83,255,52,238,201,62,51,139,125,119,198,86,24,173,197,15,66,171,205,115,34,100,218,78,11,243,103, -153,155,88,184,13,149,204,134,209,53,163,119,59,87,10,173,149,238,117,38,61,173,69,111,74,207,165,130,252,146,92,166,176,225,11,211,100,233,40,71,102,174,188,225,44,219,39,175,75,254,178,136,164,232,96,174,10,229,71,9,34,29,245,184,217,70,183,207,81,12,32,88,193,82,38,163,87,42,103,98,150,203,232,174,242,246,89,76,56,112,172,101,226,150,70,243,180,31,97,101,50,24,207,32,62,79,140,207,244,89,241,61,159,241,103,128,46,188,86,92,88,181,52,106,74,102,44,237,57,175,83,122,129,163,67,252,88,178,180,30,197,71,210,90,210,40,151,199,247,223,47,66,82,74,23,66,7,141,170,93,79,117,61,154,147,218,38,132,109,174,165,189,118,85,180,83,215,117,195,29,72,232,127,4,189,143,109,15,34,60,94,100,194,63,26,96,233,143,114,251,233,241,139,220,174,235,218,89,109,78,124,88,186,13,111,114,243,118,62,150,89,233,128,213,122,183,243,149,228,198,71,240,238,171,78,143,116,117,36,87,125,14,133,191,32,63,49,25,107,222,135,159,51,103,243,181, -152,1,185,69,162,70,125,114,158,67,67,57,173,243,9,164,100,15,80,191,227,229,221,95,192,211,16,176,177,20,202,68,44,143,232,152,193,47,178,53,249,9,76,73,59,186,46,199,7,199,165,49,97,241,157,143,72,23,225,131,21,54,101,55,99,250,22,32,156,188,235,201,186,210,1,120,152,167,75,212,77,95,89,229,8,250,85,116,39,160,232,250,94,164,16,162,214,142,148,26,235,238,184,162,2,77,133,80,182,139,83,202,110,150,88,22,52,221,107,123,17,245,205,8,144,236,219,79,145,118,45,67,47,168,100,213,194,251,40,207,19,139,232,17,44,24,90,167,140,51,171,125,92,41,17,17,92,125,170,155,225,1,64,193,47,61,10,10,209,16,184,242,104,153,44,197,126,200,140,191,52,123,226,10,93,209,216,131,196,229,243,155,149,104,202,151,99,241,207,208,139,46,7,71,52,90,52,230,129,182,225,150,48,83,188,193,55,46,12,91,194,247,72,197,124,74,23,89,81,194,85,244,101,57,153,237,178,192,167,114,119,237,11,93,186,100,192,80,145,132,180,94,114,130,140,207, -52,60,146,138,228,35,162,38,146,55,75,188,15,116,124,43,118,178,101,225,9,41,172,16,42,136,215,20,180,180,161,107,172,159,84,4,42,98,73,26,52,22,200,144,7,115,178,121,231,171,62,73,119,10,2,149,84,154,145,83,76,146,120,173,146,50,76,192,219,65,122,121,29,1,179,77,77,91,217,34,97,199,133,172,73,14,90,193,44,201,95,21,93,223,83,17,26,175,231,179,158,242,163,126,71,76,90,106,198,75,14,101,168,13,15,112,230,140,207,83,228,72,5,208,153,229,250,148,32,87,245,119,123,195,191,79,203,70,240,29,29,208,93,95,113,22,38,38,253,245,164,39,116,64,39,228,63,165,210,142,3,39,199,116,240,188,12,248,117,48,220,222,8,209,138,38,208,24,247,26,55,64,92,121,243,78,34,73,13,43,244,101,147,253,186,46,122,111,209,175,16,101,161,55,167,244,54,93,254,235,234,210,82,192,39,150,13,217,123,30,31,88,201,6,41,0,171,175,117,235,35,22,42,122,23,8,35,88,154,162,199,211,108,115,72,226,166,16,21,93,192,145,41,7,90,150, -221,65,245,12,79,25,63,198,165,78,68,234,4,69,45,6,203,47,186,72,1,74,255,158,146,229,127,238,76,58,220,53,135,125,196,221,192,181,108,29,210,234,83,103,164,112,10,70,232,118,243,30,172,174,184,205,140,89,157,222,227,50,134,184,193,252,140,41,184,119,184,155,251,71,16,187,141,250,200,157,217,92,0,9,208,142,251,83,137,184,116,33,206,235,196,24,189,83,81,183,49,195,22,227,187,102,174,200,77,111,197,225,250,42,215,165,60,82,200,255,120,14,157,35,69,212,43,118,252,204,165,60,209,111,110,151,215,94,86,246,252,186,128,183,227,137,119,39,109,31,123,10,245,84,48,99,39,64,209,238,45,134,228,234,65,133,119,178,42,137,198,225,148,49,85,216,59,165,20,70,238,219,129,185,163,183,237,26,226,211,206,76,22,142,88,229,244,168,253,50,173,191,75,126,113,161,161,57,118,228,62,170,166,33,172,187,6,10,36,169,121,219,116,0,73,74,69,118,133,57,19,140,233,9,162,101,50,17,233,109,87,138,241,141,133,96,233,23,85,151,20,81,10,64,238,25, -226,208,85,60,178,57,25,170,62,34,173,235,48,227,73,33,236,60,234,20,182,78,249,176,47,159,201,105,248,26,131,1,148,40,37,216,56,228,216,201,196,173,50,68,27,73,51,152,104,214,253,30,239,148,79,242,159,31,171,142,12,180,36,124,242,66,211,194,194,161,210,158,184,175,237,238,214,3,56,51,28,211,231,69,41,40,115,157,15,28,116,84,0,63,26,218,253,182,38,132,82,96,68,135,56,167,198,81,6,165,124,13,188,150,158,144,233,84,229,134,122,230,253,190,188,164,171,76,179,215,59,161,252,92,217,90,67,34,36,238,144,102,15,186,146,250,206,165,77,116,161,44,156,63,74,205,82,158,114,201,106,110,93,254,213,249,250,232,141,79,228,136,184,67,216,229,99,170,136,170,166,186,142,251,42,37,56,178,63,63,9,230,154,84,140,8,45,103,231,72,118,227,17,29,117,48,149,151,17,111,219,165,249,35,216,12,88,145,172,46,121,122,34,38,246,41,189,51,182,38,72,100,4,58,47,224,96,167,98,61,81,218,139,221,6,240,15,36,50,75,101,163,120,209,119,235, -79,44,26,202,96,238,15,106,156,171,101,245,28,118,220,183,70,30,102,120,159,207,164,202,38,138,215,199,33,159,59,58,55,242,147,144,116,46,100,129,82,153,76,179,110,104,3,93,215,95,14,113,222,60,139,141,146,128,236,133,20,90,116,15,216,61,81,170,172,77,86,218,10,71,8,99,36,123,215,221,59,65,207,112,210,52,204,27,209,120,153,11,242,223,221,105,194,103,165,18,60,149,109,222,189,123,204,155,7,138,136,179,123,173,126,98,233,195,209,255,7,110,30,191,226,230,106,44,63,121,194,47,82,68,33,251,194,174,83,239,147,152,228,61,73,231,185,77,0,60,104,187,100,2,133,249,58,115,226,106,222,35,235,252,132,211,201,19,147,32,230,127,49,148,253,47,168,43,195,86,197,52,62,127,224,112,85,220,149,177,12,141,180,125,149,24,84,50,3,147,3,46,148,125,150,237,102,61,231,29,161,97,172,93,40,176,151,143,39,39,50,105,73,21,11,215,3,18,180,22,160,120,27,114,44,85,245,72,11,146,184,208,169,176,43,158,121,144,87,144,187,34,133,211,45,41, -18,80,241,51,208,44,207,144,245,107,124,68,31,94,151,88,168,73,129,182,83,40,157,186,83,60,65,98,88,184,136,15,244,121,109,64,0,122,246,112,117,180,117,97,168,69,36,164,236,12,204,237,147,1,123,26,185,141,173,251,7,198,128,91,190,102,148,220,98,13,207,173,117,227,58,101,193,213,85,207,121,140,154,226,246,251,167,208,32,3,240,226,104,167,176,91,32,13,154,10,121,20,105,135,63,99,36,214,90,135,47,19,185,174,72,234,37,193,57,85,83,150,36,102,11,90,49,195,96,48,158,140,32,86,115,201,149,218,57,104,244,156,10,11,132,125,120,101,207,60,166,215,85,12,179,69,253,28,235,221,1,214,81,234,144,157,122,171,159,5,47,142,241,49,86,50,206,178,190,97,67,215,169,43,48,235,250,34,59,109,17,72,67,66,102,55,1,6,169,210,48,236,8,226,5,6,102,131,9,15,20,254,203,184,44,202,94,71,15,109,93,139,32,246,191,149,33,178,149,234,161,39,186,90,202,225,221,152,87,243,180,82,121,150,123,151,185,48,35,210,24,30,137,191,46,47, -183,95,2,154,27,70,180,172,22,72,177,109,235,25,44,51,42,242,120,192,63,9,36,69,28,196,40,235,222,149,31,41,68,184,148,241,63,138,130,39,247,55,39,83,11,205,242,5,11,177,17,181,48,187,246,0,47,100,242,160,141,160,59,118,23,199,162,181,119,41,168,58,92,224,190,28,232,89,161,146,103,86,97,244,142,250,165,173,183,40,215,10,246,214,42,175,229,233,220,15,120,143,134,117,9,240,98,45,134,172,145,223,7,146,134,99,16,109,131,221,6,5,224,205,200,169,91,114,22,117,119,28,118,184,33,201,187,130,172,144,170,25,71,107,195,50,40,41,174,26,218,13,255,213,152,231,92,110,145,9,238,28,160,88,40,38,210,112,49,174,196,249,106,31,158,253,2,12,98,26,97,195,95,78,7,103,190,50,253,157,204,30,100,175,3,19,209,164,145,37,28,160,156,93,179,160,203,102,100,118,235,42,101,213,48,28,193,104,25,166,208,248,206,167,148,122,145,127,121,162,171,44,151,219,91,102,67,182,191,59,105,102,190,80,80,140,74,14,232,23,166,164,57,196,32,194, -166,17,253,85,72,167,240,27,113,44,69,185,72,93,255,8,244,115,239,143,64,255,106,18,79,30,113,254,197,36,158,60,162,238,139,73,60,9,147,228,197,174,171,211,146,214,42,217,252,120,113,51,124,252,143,126,146,54,224,88,30,226,115,63,51,77,180,245,75,213,204,75,147,21,177,183,168,70,158,170,57,142,239,43,169,123,136,153,168,244,209,137,82,207,146,92,244,42,183,131,12,125,124,139,9,239,153,215,74,124,108,227,61,107,200,201,169,73,209,219,214,173,37,20,41,162,118,227,26,194,234,51,77,156,230,161,45,180,47,76,123,119,162,218,84,211,23,75,169,150,27,174,62,31,121,31,240,25,216,2,124,53,91,199,29,57,44,38,19,5,246,94,81,172,209,76,232,45,137,203,137,199,117,61,188,160,230,79,53,122,95,238,111,35,32,223,220,167,162,175,23,11,63,204,133,134,6,137,130,191,124,167,79,120,212,231,91,29,47,235,148,211,176,231,37,105,125,201,238,218,39,66,101,124,252,126,42,195,20,110,243,42,115,151,209,196,196,99,49,204,144,137,16,178,172,0, -70,227,227,254,83,110,57,186,113,122,138,170,40,13,142,61,69,193,91,75,110,200,246,115,7,248,27,169,85,228,12,43,111,197,150,100,25,195,148,208,165,128,132,1,151,72,33,247,192,51,214,106,108,157,121,163,9,128,204,236,147,24,190,49,233,179,143,175,37,81,191,104,216,143,248,115,135,210,160,34,32,217,236,61,199,184,41,35,173,34,229,10,183,136,111,245,239,232,118,83,215,50,111,162,3,178,2,13,200,92,142,44,140,219,200,140,123,58,153,154,25,88,162,170,20,86,58,17,234,205,70,198,172,156,122,126,104,97,23,201,133,146,230,244,220,20,57,138,150,171,89,34,168,44,17,63,183,137,31,221,63,129,248,216,152,158,13,112,175,26,183,29,189,198,198,101,23,162,149,174,199,247,194,4,176,155,122,85,215,27,79,194,157,192,46,201,4,75,72,64,214,196,61,129,50,172,71,125,53,88,193,26,13,29,153,198,53,96,198,42,198,213,14,53,37,253,80,226,228,63,215,94,186,62,153,87,112,3,125,6,100,116,234,13,39,145,109,245,228,72,130,45,138,121,230,205, -222,235,176,201,6,99,239,211,187,240,40,174,30,34,87,218,44,133,7,240,106,45,87,119,32,23,93,165,14,164,165,234,205,246,50,177,206,141,71,57,93,59,30,115,232,227,53,153,13,92,152,176,15,57,133,70,171,186,151,12,111,156,67,189,77,166,83,200,175,37,17,125,221,222,144,80,11,121,142,96,168,205,84,103,99,12,106,65,147,198,68,75,32,69,160,230,178,68,94,225,66,53,214,82,110,52,169,101,195,173,46,101,97,213,54,251,208,72,41,149,6,221,130,13,92,67,94,201,231,175,238,210,91,79,253,104,39,47,174,78,168,215,51,231,76,43,148,185,201,86,171,97,239,151,101,234,147,190,214,106,111,128,247,206,182,54,162,116,71,8,157,171,45,78,197,95,94,28,9,38,69,213,82,198,21,92,233,46,112,212,16,136,171,188,78,147,117,40,159,53,60,140,38,89,122,111,92,149,184,132,140,203,131,83,101,121,63,169,238,46,68,172,120,207,12,204,110,251,233,70,183,197,219,104,185,137,101,76,47,65,202,179,154,108,160,176,22,218,64,139,93,163,60,249,25,52, -253,225,168,219,235,57,222,182,53,101,124,193,225,1,73,5,117,120,2,199,67,40,185,178,82,169,62,146,134,54,213,155,208,202,230,137,81,145,108,132,246,60,237,157,212,135,178,127,0,177,99,255,115,154,74,191,246,34,19,158,50,10,69,164,239,82,173,70,172,213,114,220,150,247,246,80,60,17,122,242,94,109,194,105,222,13,211,189,136,180,166,122,11,248,183,12,139,53,210,220,31,64,100,161,207,148,238,158,243,229,171,225,60,119,97,80,190,22,84,145,151,131,245,62,158,67,186,119,18,134,181,225,218,27,142,90,146,121,197,194,214,221,244,217,40,117,143,93,24,43,146,93,218,167,91,89,119,183,145,147,61,205,177,136,36,77,148,2,105,207,21,242,234,67,133,152,61,162,0,255,171,189,131,175,135,16,142,77,147,234,6,175,225,0,216,27,28,153,236,14,80,193,175,27,123,203,75,240,129,53,127,98,129,89,116,188,166,58,64,51,118,233,54,131,202,92,190,141,199,217,197,3,210,213,116,124,89,75,129,19,193,201,79,174,183,106,120,226,27,9,18,43,98,87,165,226, -221,73,167,68,33,98,163,79,160,90,217,231,28,64,127,234,118,174,110,203,63,23,202,108,88,25,172,61,151,184,131,103,230,27,215,82,245,177,183,0,48,214,171,86,219,185,49,204,120,239,141,45,150,222,97,27,148,43,206,187,208,203,18,186,255,242,2,74,100,232,94,51,16,44,170,187,180,28,69,97,116,188,169,113,76,6,19,169,0,235,89,121,75,65,77,136,156,122,50,251,165,67,230,197,0,242,166,252,50,99,83,149,117,57,211,240,198,129,88,236,140,128,136,88,163,42,36,102,250,85,190,81,58,239,233,50,231,227,29,57,118,242,77,160,3,190,209,81,232,239,59,32,11,39,175,148,225,5,76,191,205,52,111,206,75,115,109,67,87,50,121,93,17,107,238,53,65,67,1,238,229,9,116,113,236,56,219,57,228,71,19,147,78,121,174,103,190,124,33,78,214,202,14,223,191,29,35,146,21,250,4,55,61,243,113,206,252,79,233,216,163,15,110,214,242,199,54,178,224,53,177,13,126,66,59,87,245,71,147,229,77,226,56,126,38,136,221,97,191,27,156,193,158,103,86,183, -102,47,127,93,151,195,149,225,46,119,70,83,74,188,218,177,52,188,216,17,34,141,84,64,53,63,188,213,113,169,236,124,7,148,253,26,39,241,62,60,79,48,128,155,55,115,180,180,102,7,111,58,231,237,16,225,164,225,116,172,219,232,2,111,181,193,254,188,182,54,125,169,225,239,237,145,67,2,198,201,35,205,247,174,137,132,219,43,45,248,184,180,12,200,18,22,217,25,29,143,104,170,119,19,39,201,186,232,164,32,203,253,216,251,146,215,223,86,33,129,39,111,40,196,203,121,158,103,108,217,249,36,252,172,228,138,213,195,188,50,115,244,180,182,231,3,16,250,201,212,13,186,153,102,204,6,133,237,164,8,57,175,229,106,27,230,40,196,247,48,251,37,134,181,188,180,48,175,211,75,252,138,118,74,178,74,146,192,17,15,153,102,133,134,250,88,141,197,247,242,244,102,180,189,239,195,17,54,86,205,211,91,8,209,177,18,20,196,41,61,136,142,111,14,56,160,8,201,114,223,29,254,200,2,166,144,212,93,238,41,53,179,98,244,231,197,99,181,14,93,95,40,55,7,48,218, -136,26,44,253,213,193,200,188,151,201,99,77,179,137,20,1,146,43,104,149,91,28,239,4,171,78,91,103,56,15,89,233,136,101,116,147,58,145,127,41,96,114,46,138,43,7,147,122,186,158,74,230,122,76,31,31,200,88,182,191,58,9,123,67,26,213,244,192,144,240,176,216,101,6,134,41,194,194,172,89,110,246,53,165,99,189,156,61,167,74,111,47,160,144,110,137,237,134,23,182,21,5,14,41,216,169,217,105,220,24,104,100,162,222,2,210,2,110,250,84,74,217,94,195,175,171,187,72,165,80,54,14,89,113,237,99,15,210,148,37,59,117,87,71,133,85,150,87,83,118,194,125,99,70,77,130,231,78,48,170,189,13,220,154,94,123,184,17,67,17,61,22,191,86,238,200,215,215,28,23,48,238,164,81,191,84,238,199,31,203,177,48,244,227,242,238,153,231,199,229,221,235,103,47,237,75,229,118,94,163,3,113,95,53,133,97,123,216,153,238,244,41,134,190,140,138,250,241,3,86,126,114,85,157,166,110,39,94,81,222,56,233,48,226,191,186,209,219,174,179,168,37,80,220,150,30, -81,78,27,97,197,10,175,8,37,125,75,168,49,210,147,90,165,177,227,19,25,141,121,52,177,222,108,172,6,251,73,74,228,127,61,97,4,67,174,222,15,178,145,130,35,237,167,247,62,59,43,232,194,72,247,164,174,15,86,73,56,64,130,75,82,40,214,187,86,88,164,241,254,74,219,61,124,94,94,235,116,227,137,161,176,167,169,100,253,145,179,80,90,216,238,148,9,77,87,213,6,224,210,76,53,9,14,175,156,121,237,30,156,232,154,209,216,181,32,78,111,162,84,221,76,24,135,152,0,139,76,116,225,235,120,124,76,127,243,203,76,30,153,138,214,145,146,97,72,70,144,166,41,70,171,205,243,166,142,237,97,104,253,218,1,249,69,132,76,88,154,82,204,217,206,196,148,118,146,253,141,43,194,15,112,86,56,37,154,224,224,139,137,214,59,206,186,57,150,215,66,5,103,37,218,21,145,153,38,142,43,234,39,221,230,40,219,149,59,79,24,225,169,34,193,123,187,243,196,4,77,102,67,112,209,3,99,229,119,126,108,156,149,141,196,158,120,81,101,110,240,45,154,219,72,20, -100,90,99,111,17,146,36,233,5,186,238,164,49,191,45,111,238,123,183,110,112,52,92,13,59,76,50,239,33,95,122,223,207,218,42,4,49,146,87,28,229,241,250,12,96,119,178,158,129,135,232,33,249,204,164,33,43,134,207,236,54,147,146,63,159,127,102,241,125,238,22,128,109,204,135,90,89,34,31,68,27,244,171,234,251,227,10,50,180,168,247,163,135,112,201,58,190,42,74,14,119,231,234,156,4,198,141,176,16,54,45,180,68,26,116,48,59,205,94,145,28,59,219,197,192,59,127,161,103,250,172,87,84,82,20,42,137,165,220,110,36,43,170,26,178,11,20,240,106,79,233,153,251,126,37,97,109,19,223,62,143,159,191,2,102,46,93,33,226,207,54,100,247,117,245,104,140,254,188,163,126,121,93,240,247,120,186,250,17,79,27,124,16,204,67,84,196,43,21,203,131,211,97,121,196,109,225,189,30,155,20,127,70,252,74,84,247,83,22,252,245,151,22,52,245,151,106,171,71,51,132,181,130,10,140,251,115,207,79,229,11,53,14,140,107,86,231,128,84,245,170,22,52,212,156,19, -114,237,109,14,130,157,190,108,232,241,61,138,230,170,67,200,32,101,29,242,249,252,199,220,157,72,112,220,185,42,83,239,201,97,65,227,124,22,36,107,0,235,211,84,165,183,181,210,33,119,157,255,18,11,15,197,50,153,198,193,78,77,231,147,138,102,200,28,48,16,5,66,112,132,34,25,198,217,121,168,171,31,144,145,18,198,174,235,28,220,153,24,131,111,100,178,248,193,209,46,208,63,119,216,245,121,131,86,121,233,162,102,2,74,222,44,24,186,213,60,92,78,67,26,140,154,114,75,191,65,243,181,227,172,234,100,7,140,151,138,24,252,36,115,8,148,50,114,241,74,117,32,91,147,249,11,129,142,4,220,10,177,62,22,179,116,159,134,149,192,120,88,122,254,220,163,108,51,99,52,226,3,214,179,67,147,81,76,175,123,214,114,80,152,164,194,44,246,20,204,122,25,198,139,62,128,234,39,20,172,57,81,71,45,156,143,227,132,43,217,228,213,156,75,141,199,155,158,15,9,215,197,99,191,240,203,194,147,213,172,205,145,216,0,35,48,228,133,93,134,251,141,210,27,40,196, -48,254,193,173,165,191,92,63,81,182,59,44,58,21,122,142,105,46,42,113,119,236,217,28,197,107,130,44,35,38,76,9,15,207,238,134,155,145,82,252,156,123,173,58,50,216,146,145,117,155,212,226,128,180,147,204,13,126,81,74,248,180,61,103,192,44,241,249,197,123,54,76,11,156,3,41,152,125,107,129,226,197,35,189,144,147,196,8,227,88,118,145,209,231,140,254,197,230,50,220,150,21,238,60,87,22,44,59,151,178,202,178,147,156,70,170,186,25,119,160,34,114,142,125,208,219,145,226,25,98,177,138,153,186,65,35,57,202,14,227,107,182,81,27,201,44,239,195,136,199,52,83,17,95,189,229,136,234,28,241,47,242,238,134,209,34,176,191,220,242,10,209,142,252,13,169,245,239,24,103,204,185,84,146,188,162,3,50,163,12,123,128,72,169,26,221,127,83,90,154,6,193,13,175,50,138,242,0,25,239,8,100,185,56,69,107,207,162,20,57,5,255,88,13,52,210,86,74,2,211,107,104,184,36,67,4,28,24,243,243,242,90,39,212,212,56,22,65,40,133,149,212,31,196,87,194, -91,150,234,12,40,21,57,150,54,125,133,196,98,147,140,90,50,86,234,172,89,55,254,102,167,9,15,57,244,116,60,160,103,191,221,163,207,139,253,102,47,146,164,100,189,153,199,131,59,38,57,135,200,70,219,152,46,29,116,86,74,249,89,230,156,224,241,208,139,32,23,192,113,136,14,49,56,46,37,31,113,134,24,155,222,164,101,247,109,93,199,197,28,10,69,222,93,193,226,207,41,216,73,225,165,66,236,141,18,140,208,88,74,149,163,49,91,140,207,70,34,43,50,178,47,118,234,186,35,187,107,11,17,182,114,179,69,243,204,39,2,190,253,178,168,235,234,232,106,109,225,87,35,197,160,253,248,131,138,223,255,78,241,64,55,49,81,228,195,149,39,235,101,125,125,15,205,50,33,134,214,61,228,61,251,209,142,41,23,103,0,178,244,131,102,171,137,228,120,39,103,157,28,179,48,19,145,38,163,140,83,89,23,25,1,146,184,181,173,148,39,116,131,54,86,242,241,115,211,81,217,46,32,123,203,36,152,29,114,110,162,96,104,221,214,74,117,236,224,19,120,70,72,201,112,253, -189,96,162,28,104,252,98,29,90,42,255,191,171,187,210,167,196,178,44,255,175,16,245,161,35,171,35,167,98,34,58,230,75,71,119,199,212,244,244,76,84,68,47,17,93,211,51,31,38,170,70,51,37,187,136,178,52,67,200,238,202,249,48,145,238,184,225,46,162,8,110,128,128,128,178,8,136,15,220,81,22,17,68,64,86,65,1,1,5,89,4,241,33,204,125,15,23,204,205,204,172,172,89,50,35,128,247,238,189,231,222,243,59,231,220,115,238,185,239,93,253,221,140,29,39,67,55,117,48,168,57,140,113,40,201,165,115,199,18,45,155,98,129,53,78,157,244,96,129,162,102,204,112,122,6,120,108,198,238,202,110,45,171,135,34,66,18,4,3,59,92,110,164,94,221,41,25,11,237,242,142,121,59,57,22,239,48,158,49,43,189,61,66,73,159,150,228,231,13,105,143,55,76,217,209,190,229,136,178,105,196,95,216,155,138,12,186,183,53,218,93,56,212,55,122,18,172,239,75,108,107,187,86,86,215,196,209,182,102,238,100,174,64,89,234,23,234,121,102,14,197,109,102,106,212,30, -227,158,117,165,143,35,97,203,211,205,18,49,207,192,9,8,18,123,29,83,240,150,187,29,240,63,148,16,138,172,116,189,247,88,210,215,233,186,88,19,89,53,199,237,208,174,61,197,51,175,158,11,54,52,7,236,222,193,241,193,168,109,93,124,102,134,70,235,186,252,114,120,115,75,20,35,213,65,242,41,79,237,224,42,187,247,88,175,93,179,182,103,236,195,35,90,79,204,38,30,96,131,144,210,171,143,156,212,229,69,186,86,25,39,31,12,4,5,74,22,47,165,234,28,218,121,193,64,86,237,81,207,14,49,60,174,205,106,230,68,154,118,142,111,193,74,59,144,173,82,79,160,150,221,150,161,204,38,157,164,93,210,207,88,133,48,20,48,81,229,163,202,254,173,94,184,121,181,177,161,55,166,135,180,173,219,187,219,80,96,96,35,6,73,166,195,186,181,192,46,199,200,17,113,70,135,96,93,143,131,204,80,139,28,74,93,227,113,176,94,207,214,244,65,126,129,87,102,236,154,110,84,70,76,158,204,26,11,210,122,100,139,33,21,26,0,250,130,105,97,72,33,166,9,137,199, -140,35,115,190,197,134,40,141,136,156,104,82,15,78,50,64,141,98,94,180,17,76,28,136,250,172,218,224,97,75,195,49,143,177,205,69,87,237,13,178,60,172,82,156,42,85,151,145,180,171,175,158,185,195,96,136,219,109,142,224,152,113,21,157,214,103,211,67,232,83,175,35,212,36,250,212,107,96,135,197,152,30,28,134,173,107,173,205,78,75,22,68,154,196,157,142,66,195,236,234,216,130,110,137,56,75,78,135,142,216,246,130,220,167,139,18,213,22,222,4,67,123,192,23,4,98,103,122,251,122,127,199,76,150,9,40,166,103,211,235,163,174,133,51,171,210,63,145,22,56,164,146,214,49,114,159,193,109,94,73,102,182,250,116,178,145,58,231,150,56,213,62,109,58,30,62,83,239,76,183,81,36,3,188,64,207,206,60,123,28,30,156,142,245,38,199,168,234,120,218,148,18,208,44,148,89,197,102,200,100,59,26,110,49,16,25,91,158,45,173,221,208,48,29,108,219,86,12,132,167,36,70,22,169,181,55,109,155,79,244,111,52,156,90,73,94,147,71,195,12,172,144,194,193,152,101, -230,44,37,79,218,234,4,195,193,190,117,119,220,188,22,218,207,187,103,61,199,117,146,150,22,137,39,119,22,158,22,52,18,205,195,94,199,240,120,40,63,16,28,90,77,228,186,132,198,69,38,113,102,179,153,74,231,74,124,93,38,123,232,192,174,20,94,116,169,149,253,173,196,197,222,205,176,100,119,222,16,211,118,111,184,215,180,77,230,169,0,37,52,180,167,163,177,251,33,139,183,81,79,205,70,152,35,124,126,31,44,33,103,4,189,71,180,253,245,140,92,117,217,197,36,26,131,196,222,185,169,30,74,45,79,34,83,155,109,137,73,214,138,60,193,238,59,134,116,61,68,71,108,124,92,24,204,202,123,246,224,250,152,105,41,76,114,176,247,245,46,37,242,4,145,201,170,215,29,179,124,164,126,118,208,239,174,159,83,211,206,185,81,14,213,146,100,230,186,216,198,32,61,176,185,151,127,33,145,164,196,188,121,158,58,56,65,215,152,26,27,55,181,7,26,154,39,232,159,26,129,234,117,97,170,188,119,255,36,64,134,12,110,147,49,7,133,197,1,78,122,222,210,59,151,83, -163,132,210,201,36,85,44,9,111,45,207,55,164,7,38,125,203,135,44,131,64,151,117,147,86,235,211,249,220,166,74,218,236,16,12,238,165,37,115,222,88,195,172,193,163,53,157,154,103,200,105,13,228,139,103,120,236,246,237,22,42,105,185,46,235,209,21,186,213,58,185,206,126,112,60,255,130,107,79,200,133,210,233,9,10,93,35,111,106,145,81,11,217,240,8,50,148,56,52,188,42,93,116,12,248,119,120,105,77,90,165,78,235,52,221,67,50,70,71,200,17,177,24,230,227,188,72,72,119,236,169,101,37,45,219,186,248,82,122,125,100,121,144,185,177,237,232,88,110,50,141,55,76,192,186,77,249,57,128,31,184,184,32,108,49,183,110,248,183,246,146,137,73,183,7,46,164,38,12,123,174,192,37,196,110,104,54,207,244,249,162,179,155,126,186,233,132,101,31,182,212,27,216,221,222,4,107,153,186,98,14,16,87,152,0,108,243,214,224,249,172,36,212,202,10,154,213,33,95,242,68,181,151,157,204,186,24,42,235,250,228,201,233,244,153,117,95,192,1,203,163,176,165,15,72,70, -194,54,7,68,107,253,11,100,131,182,91,70,175,95,179,112,79,246,194,241,141,164,39,100,226,235,130,47,178,102,52,91,214,197,60,28,53,219,22,2,145,113,126,253,18,250,36,209,41,26,253,204,100,19,48,242,54,215,104,110,172,95,128,60,190,238,101,170,131,107,110,240,29,144,41,150,144,111,125,162,35,141,60,242,206,137,205,144,145,71,222,69,245,200,193,5,254,225,137,227,70,239,32,223,179,223,39,104,95,57,205,54,193,58,228,245,179,140,61,29,224,231,150,114,131,124,154,179,101,108,105,36,56,22,109,77,186,166,215,166,38,96,145,34,127,89,187,34,119,156,249,109,214,12,187,7,158,114,74,89,51,25,187,157,55,67,230,203,87,14,109,34,34,236,148,2,218,171,199,25,34,181,45,78,151,68,2,160,195,19,18,187,251,96,44,154,116,181,119,130,81,184,198,18,211,35,171,151,252,97,48,178,236,156,98,149,212,40,51,152,207,68,182,182,149,116,243,240,198,108,87,70,30,109,106,135,189,182,104,151,124,160,195,167,180,234,247,5,237,33,199,200,184,122,217,25, -4,97,23,24,177,98,69,127,104,67,123,234,134,102,208,158,44,113,58,218,19,227,132,132,246,4,185,218,209,158,82,137,105,180,167,67,247,32,218,211,138,204,112,150,236,129,173,212,181,102,119,116,195,93,103,91,234,223,37,6,179,68,10,32,230,7,136,81,0,56,8,98,210,38,47,138,24,7,125,75,160,201,235,146,229,154,183,220,17,213,121,130,213,190,50,35,229,175,206,192,138,75,74,111,221,212,232,134,96,134,92,55,218,49,149,171,133,186,26,150,58,252,109,199,141,163,68,206,186,39,43,148,134,201,218,122,175,96,95,208,176,212,101,217,137,30,235,251,59,211,51,203,93,102,131,92,148,105,141,33,173,166,88,121,134,40,243,194,33,156,217,182,14,37,187,154,39,22,83,64,138,97,174,115,111,128,107,220,21,135,29,117,194,60,34,215,133,93,45,229,210,125,166,161,218,94,180,45,109,67,187,66,184,173,45,192,179,129,223,137,174,240,0,108,140,53,210,70,167,182,150,37,115,68,67,221,104,2,168,0,148,16,130,210,46,169,198,218,13,117,143,131,174,136,163,27, -220,20,60,70,108,171,211,144,145,146,45,179,146,163,7,138,177,224,141,157,108,184,33,166,94,64,106,67,52,226,124,108,62,16,51,75,150,71,23,2,200,235,16,167,94,47,250,58,132,86,35,181,161,111,36,202,81,109,74,140,172,206,195,138,124,119,111,83,218,107,243,181,138,164,142,241,204,233,82,87,67,168,209,155,94,238,106,240,91,123,206,145,151,10,21,134,181,37,241,100,45,232,182,110,36,209,85,207,105,11,109,142,215,161,21,198,210,26,115,179,181,83,33,51,17,211,77,179,157,20,87,116,246,140,215,199,246,115,55,180,160,242,170,113,92,157,79,183,204,146,201,214,100,236,100,254,76,36,178,54,230,7,234,70,55,122,24,242,112,140,230,56,242,93,116,11,173,12,4,128,163,237,180,113,92,153,58,26,32,38,193,188,123,110,223,213,111,106,221,153,172,142,63,153,230,168,200,2,210,169,166,111,86,215,221,13,81,236,179,205,74,122,120,147,9,224,157,214,152,61,39,200,75,93,190,1,138,28,218,77,82,247,134,47,56,164,205,213,180,166,173,149,114,209,161,239, -135,56,137,227,77,147,202,42,14,115,27,132,114,195,212,114,87,223,210,208,148,145,238,148,111,200,117,94,46,131,2,249,108,177,110,235,81,235,190,160,103,74,178,133,72,172,7,240,99,73,37,147,35,135,194,182,182,5,95,204,228,94,208,31,10,90,104,180,16,12,217,1,199,174,93,75,223,84,27,125,207,50,58,84,111,213,8,58,218,160,133,32,151,207,75,202,117,75,140,201,70,238,96,79,242,197,232,84,255,148,113,13,121,233,71,216,40,168,29,218,19,194,12,146,118,109,165,77,222,41,235,91,170,115,215,69,78,186,26,40,202,85,244,117,30,126,19,159,4,165,135,200,226,224,114,215,6,98,248,107,190,190,78,249,244,222,137,213,231,220,27,166,248,99,129,254,122,160,142,141,252,198,115,154,136,193,117,57,155,2,42,41,183,9,30,235,34,114,244,141,186,131,166,89,84,12,211,97,16,255,53,121,109,14,107,111,63,34,253,177,161,171,249,160,103,14,206,12,1,81,205,228,218,201,209,65,104,199,34,94,111,118,146,138,246,128,152,153,87,47,203,161,51,72,135,127, -24,109,97,244,160,234,146,157,41,170,139,212,133,168,75,115,222,103,52,54,163,111,170,134,99,177,22,115,42,24,50,169,103,114,139,128,64,116,37,85,223,86,72,120,200,133,152,103,32,191,159,15,156,50,21,250,140,59,127,25,154,146,76,5,117,80,193,187,177,35,112,20,78,105,109,245,73,179,72,9,215,110,6,163,212,161,243,132,81,157,116,232,232,221,199,214,70,239,190,110,111,13,42,164,55,155,97,171,224,200,122,177,53,41,116,121,231,119,29,199,5,222,218,17,75,213,93,71,190,88,106,182,42,248,49,122,52,221,46,75,134,204,210,153,196,118,207,145,154,13,179,61,54,121,219,74,138,2,84,153,20,220,18,71,54,90,44,103,82,215,145,13,12,79,13,205,244,141,22,68,59,180,35,65,99,76,42,183,203,231,162,243,217,97,113,70,27,232,101,26,108,148,180,91,120,102,21,8,84,57,238,193,14,211,37,241,107,214,40,106,106,242,172,223,154,151,158,69,21,244,163,11,119,50,171,138,157,18,153,133,14,121,179,245,160,95,159,25,163,229,27,180,181,26,55,124, -65,87,156,196,149,231,73,31,127,241,50,194,243,64,147,244,177,196,241,136,180,16,11,76,116,42,47,218,2,158,220,150,43,227,202,196,185,30,40,151,113,181,5,85,41,70,65,30,158,90,227,42,11,89,71,110,150,26,59,29,157,171,231,18,85,10,96,204,145,70,242,70,186,41,124,81,187,51,203,145,174,102,117,83,206,45,159,226,36,217,9,165,84,78,131,50,123,24,43,20,50,48,139,118,193,145,130,127,2,65,44,155,80,15,133,242,100,229,104,75,252,34,164,58,53,239,41,41,194,124,11,155,76,78,39,105,91,114,120,102,133,159,140,198,173,25,81,131,181,217,1,25,84,133,230,197,147,230,85,119,42,185,17,152,164,173,144,244,244,188,194,32,132,251,169,209,78,65,118,56,231,238,207,240,47,47,10,39,139,139,139,219,219,219,46,206,46,55,100,130,163,234,238,88,106,187,176,40,135,137,34,173,93,234,110,218,114,166,121,186,250,193,174,125,182,149,30,59,58,11,239,237,70,134,198,61,254,72,198,42,240,204,140,117,119,147,186,103,172,80,83,180,211,166,170,11, -198,72,35,6,22,67,104,139,109,42,162,81,31,136,72,201,75,110,186,216,44,44,12,229,214,83,158,124,214,122,164,74,154,219,163,158,236,190,66,148,43,8,225,161,53,43,85,42,222,159,84,12,56,151,104,14,159,205,102,235,144,50,156,105,189,68,202,81,108,108,215,193,107,151,7,251,71,35,71,71,147,99,90,37,241,236,116,35,178,223,6,171,67,241,73,79,208,158,158,8,156,21,86,155,35,3,81,50,179,125,241,144,155,164,112,151,93,75,130,9,88,47,141,121,2,209,139,197,23,188,152,104,254,228,100,205,35,178,174,53,10,51,118,143,152,27,157,143,40,45,133,3,198,254,101,124,177,83,22,115,103,146,103,157,174,166,194,170,138,62,43,158,239,18,43,149,121,207,101,167,153,158,113,58,79,72,167,43,174,46,217,244,156,41,190,196,211,28,195,201,129,140,76,95,23,243,1,184,227,187,144,49,99,19,115,87,195,187,45,220,11,191,70,180,187,219,97,12,243,93,29,10,203,113,138,36,57,212,249,98,62,239,89,124,109,201,198,21,46,93,56,72,150,145,61,197, -137,67,20,237,102,54,47,236,102,151,185,1,65,47,100,15,119,132,172,67,34,123,167,209,183,45,89,219,97,58,115,92,79,14,210,13,123,33,109,44,206,128,220,77,238,182,1,139,43,21,109,140,185,141,29,10,159,118,128,199,181,116,76,43,19,27,134,35,149,190,238,114,130,41,52,41,249,126,122,86,25,63,21,250,211,166,211,104,104,67,188,26,227,236,234,29,86,173,238,40,206,81,158,237,25,169,210,29,190,48,202,175,63,23,208,195,251,251,192,235,197,39,108,17,217,252,0,11,178,215,18,217,205,12,163,176,211,34,19,102,34,76,209,176,75,223,41,99,207,210,55,167,153,129,41,255,130,46,34,87,136,227,110,217,137,99,110,164,150,221,202,112,92,234,102,173,158,203,189,140,175,85,234,81,93,42,224,222,1,234,234,34,156,53,173,176,160,203,180,52,211,217,209,9,170,158,72,243,48,217,126,49,96,167,117,181,208,183,150,221,188,192,164,4,102,154,200,245,78,105,220,35,86,59,93,23,148,29,210,48,137,211,104,128,90,224,109,215,14,127,221,20,22,22,168,230, -211,188,201,56,49,212,10,217,99,59,182,190,9,168,99,215,59,122,148,76,168,56,107,45,179,214,33,98,151,154,213,51,25,14,80,167,79,15,165,177,1,253,65,148,169,134,109,140,23,109,221,125,19,158,129,217,67,153,108,52,157,229,4,19,82,27,220,114,104,200,157,105,61,23,100,145,82,169,108,149,22,156,142,4,93,157,131,187,197,39,106,237,18,236,233,188,204,147,27,29,233,19,71,65,26,141,229,207,162,206,66,68,28,91,228,24,198,122,78,52,126,207,36,77,112,0,41,55,179,204,145,89,122,198,177,122,217,73,132,196,144,130,91,71,238,72,37,10,20,27,215,207,186,76,78,49,105,189,39,181,102,154,250,112,223,198,13,104,58,195,245,34,106,147,79,66,59,165,34,138,127,206,60,52,102,118,38,142,53,65,107,79,43,91,30,230,48,101,194,180,149,6,137,15,150,179,102,163,149,231,201,15,76,69,114,237,164,118,126,127,204,181,117,177,208,23,37,69,44,211,44,45,153,199,188,216,80,214,83,246,34,45,246,96,200,51,72,149,77,159,187,210,250,20,213,229, -75,219,204,178,163,116,171,51,35,57,157,152,143,31,28,173,95,152,165,115,135,238,157,216,174,112,79,179,169,149,185,79,182,142,142,251,105,253,86,147,182,47,222,45,27,130,213,235,205,174,17,122,151,55,194,212,58,146,186,243,221,16,87,42,19,195,41,170,80,152,153,30,169,133,216,185,203,51,41,53,221,102,15,90,120,118,104,110,116,110,78,169,228,47,159,100,214,219,13,151,241,54,143,87,82,104,56,43,136,121,23,134,225,13,103,112,43,61,164,215,54,168,93,27,11,240,28,219,146,210,244,113,77,246,83,147,49,172,116,28,110,115,210,118,77,29,148,27,135,215,58,6,116,238,29,99,119,45,224,124,154,162,236,23,37,53,241,184,135,146,201,204,75,253,253,237,60,138,65,39,64,158,139,49,170,61,151,43,29,195,82,87,198,179,194,181,20,166,149,133,60,35,229,81,102,237,92,243,50,239,48,9,47,196,188,148,89,242,165,107,68,207,6,162,162,58,87,70,102,173,36,3,17,134,248,92,86,94,237,98,157,69,51,153,176,96,77,178,73,57,232,61,88,168,243,11, -51,231,71,43,28,111,219,241,172,95,211,54,89,39,12,219,77,155,106,114,20,10,116,77,136,104,212,88,198,153,220,151,88,157,166,115,103,60,217,185,144,24,234,77,33,226,54,103,10,35,193,97,19,71,6,119,14,196,61,154,206,198,36,157,233,236,23,76,199,55,199,154,154,220,42,113,159,200,42,153,107,25,182,47,234,167,24,12,222,17,217,223,225,115,70,55,250,213,61,225,115,73,152,105,235,81,17,251,201,253,0,102,56,213,220,108,105,14,59,247,246,29,13,212,197,65,219,90,215,56,204,62,223,27,220,58,31,135,47,103,232,199,187,57,139,195,222,161,36,29,91,70,108,167,169,81,210,212,154,7,68,195,153,25,58,105,37,91,56,216,224,31,13,37,215,160,150,192,48,220,79,183,195,182,209,38,216,238,149,93,240,55,169,61,196,203,250,9,46,221,209,19,155,82,101,32,7,213,150,130,95,0,207,187,36,59,36,37,89,6,40,34,234,234,228,101,83,187,19,157,150,134,176,160,16,113,168,217,180,75,8,84,216,61,77,140,228,69,196,203,192,236,150,94,90,56, -176,56,130,170,80,66,116,154,31,140,167,207,217,231,130,133,124,112,216,28,142,53,185,146,5,81,204,147,20,57,212,241,69,224,44,119,250,11,157,60,221,82,158,197,134,183,66,49,105,68,149,219,115,213,134,58,201,117,25,117,46,233,48,123,52,237,123,41,24,13,20,89,6,166,121,124,100,189,103,90,122,180,53,156,159,28,20,31,54,141,47,34,145,99,199,213,58,68,28,86,174,43,154,226,110,37,184,39,212,173,159,183,236,109,215,175,131,208,97,172,73,43,50,210,86,155,138,231,96,72,109,243,128,24,85,33,57,160,44,28,12,198,64,160,193,228,155,194,131,130,117,56,7,138,21,17,229,217,66,100,55,173,244,181,215,54,55,121,160,173,97,125,42,180,48,15,226,115,170,37,223,183,16,203,49,54,220,231,151,91,206,100,66,68,155,203,135,54,13,249,205,102,155,149,53,63,52,199,95,98,137,243,166,5,222,230,206,158,85,46,19,92,110,218,183,182,125,238,245,173,249,133,233,236,136,119,97,174,207,48,10,241,189,28,94,159,252,226,100,131,225,204,83,169,84,63, -13,74,144,116,110,136,62,207,234,77,94,114,253,227,153,220,248,252,41,188,56,11,123,206,130,11,20,230,225,177,131,213,179,119,57,172,168,79,218,45,181,217,113,153,160,131,145,15,59,247,57,241,133,139,102,39,13,222,119,46,135,246,87,71,206,227,113,62,253,226,5,117,74,105,204,118,48,22,45,100,74,27,52,95,155,84,248,130,74,58,203,157,25,137,13,66,2,42,93,181,44,6,177,21,227,162,80,223,65,49,13,57,239,158,1,250,143,184,242,202,234,63,99,158,84,215,96,240,232,9,163,184,42,112,133,171,196,226,49,224,86,5,174,6,61,116,20,135,197,127,134,65,155,252,109,177,229,223,189,122,108,234,191,125,131,173,250,226,113,117,213,207,255,254,111,49,165,103,146,254,186,188,178,242,81,249,227,111,127,246,53,122,192,43,230,230,250,246,132,84,228,246,237,65,166,143,170,171,43,175,234,34,63,239,86,123,136,121,205,193,170,160,87,60,225,110,189,187,135,171,126,73,168,1,124,93,17,45,94,220,173,94,246,147,91,194,95,127,129,156,138,122,85,25,253,253, -114,221,95,221,80,199,92,115,125,125,180,234,191,124,131,195,99,30,95,177,8,126,84,97,30,97,49,207,240,216,10,12,161,26,83,94,73,192,214,96,112,200,112,81,196,81,156,63,195,252,19,174,6,79,192,160,135,226,98,145,10,21,88,60,238,207,85,229,4,32,131,107,1,60,127,8,196,3,218,85,96,0,121,194,55,88,180,105,21,168,255,25,230,215,149,56,108,21,1,96,80,129,69,251,43,118,130,142,27,208,196,35,93,151,35,109,112,53,21,183,125,124,246,118,89,126,137,173,1,122,129,251,79,108,217,131,43,248,176,229,223,149,253,164,236,211,215,29,139,251,151,106,92,197,107,79,197,189,161,114,83,250,224,101,169,0,178,95,99,138,223,55,149,202,126,114,75,228,103,152,219,3,119,63,189,198,248,134,46,64,250,89,77,13,194,61,30,75,64,52,23,40,237,147,235,195,120,63,3,178,40,39,96,112,85,143,43,159,85,148,84,45,129,244,234,86,229,243,43,221,7,80,33,184,98,8,207,159,98,1,224,160,135,18,122,152,191,162,199,233,62,196,252,246,143,127, -194,84,226,128,196,64,217,95,112,120,28,210,172,196,80,48,229,64,74,101,159,124,89,93,67,192,60,122,94,246,9,6,255,87,28,225,241,55,24,60,1,72,244,30,220,127,243,61,246,241,51,2,246,15,79,177,85,101,15,80,173,198,60,254,166,188,166,236,167,175,71,190,212,60,238,32,95,66,231,85,236,223,100,56,152,215,157,89,140,116,127,91,161,236,167,37,146,33,224,8,149,216,146,178,95,254,199,239,255,244,219,223,222,72,233,106,12,120,128,5,50,14,20,89,128,70,5,58,225,124,118,205,205,79,111,8,161,202,139,127,138,125,140,123,242,188,168,196,136,9,96,174,14,158,70,192,190,110,250,197,19,196,162,174,39,44,0,248,149,212,170,49,213,160,163,135,152,26,44,225,89,13,48,49,66,205,179,119,4,252,203,242,191,96,63,199,127,12,200,139,148,254,47,128,142,140,4,88,254,143,5,57,48,41,96,113,229,104,69,4,254,15,130,29,165,246,143,184,154,143,130,252,53,177,255,125,240,111,166,152,107,159,10,48,250,191,165,247,255,140,37,128,169,253,83,20, -141,159,151,48,255,94,78,179,84,8,128,224,221,194,7,159,222,58,201,34,232,87,40,253,241,122,148,223,32,254,137,240,13,194,97,209,163,213,160,26,80,141,191,154,44,80,134,65,73,13,22,113,122,85,213,85,37,58,134,253,238,41,225,249,213,160,238,245,101,132,43,245,186,101,234,3,92,25,225,67,212,170,20,199,151,32,124,23,55,7,100,92,162,46,248,175,16,81,131,112,2,65,171,4,167,159,99,112,79,48,56,36,2,168,34,148,227,170,80,189,120,86,89,137,130,251,176,168,34,248,171,195,227,49,127,174,6,234,9,168,32,36,74,28,225,117,52,129,0,253,244,25,226,52,175,234,160,173,209,18,108,5,14,33,0,132,117,135,226,123,129,255,175,104,147,178,95,148,8,226,87,255,163,162,40,14,224,107,76,241,251,13,135,232,191,65,94,191,122,55,129,149,99,254,92,83,253,236,233,53,80,248,43,153,21,229,117,15,90,192,140,107,202,17,132,110,241,121,139,145,22,237,236,186,205,123,6,188,111,52,207,47,17,97,131,128,17,24,244,131,79,223,117,188,191,252, -225,22,118,75,235,127,222,208,174,88,6,242,123,112,199,222,222,153,255,255,250,184,147,233,45,221,31,83,104,191,0,255,63,162,224,126,241,139,255,79,162,3,72,253,186,250,89,213,91,189,32,50,13,190,213,227,161,20,222,211,237,149,131,219,160,21,50,63,148,204,225,248,251,135,139,92,149,61,0,67,250,200,110,27,161,251,18,15,95,189,3,0,63,195,224,238,22,189,3,227,183,252,150,250,53,220,87,239,170,177,255,94,246,213,71,71,160,148,248,143,9,67,137,137,34,172,61,184,3,192,125,218,250,235,74,108,121,13,114,141,71,244,245,189,204,243,182,233,173,113,222,152,15,90,136,58,250,219,64,245,218,113,221,175,145,127,196,150,87,252,161,170,242,249,91,109,232,213,20,206,75,250,119,77,229,3,194,71,100,73,253,12,93,243,215,0,34,101,127,83,13,200,0,129,34,108,124,134,121,240,39,252,179,242,74,112,131,128,164,100,138,119,145,248,230,58,25,83,125,189,40,197,3,249,162,4,48,104,251,239,170,43,176,239,48,123,124,14,208,250,11,22,93,187,124,100, -131,188,161,252,1,136,148,163,109,75,22,32,239,25,175,221,116,255,47,207,159,98,127,208,220,120,75,230,195,217,184,73,198,128,222,42,176,223,191,47,51,168,214,63,199,19,176,223,21,211,88,104,17,122,253,69,213,147,234,247,118,116,183,228,222,144,207,186,75,255,107,204,221,235,55,56,181,39,128,228,27,66,201,155,0,188,216,43,26,73,214,84,255,21,15,86,70,87,127,62,172,184,48,170,249,174,188,18,83,89,253,24,124,150,84,127,55,143,114,131,207,219,117,248,37,214,138,162,124,61,127,215,73,210,215,184,153,187,232,189,135,62,148,162,128,218,47,174,234,189,52,161,168,205,119,114,12,15,223,144,113,248,186,164,233,215,175,252,97,175,187,108,149,106,247,199,207,54,32,203,174,155,162,251,243,222,239,75,30,251,61,225,85,189,251,188,162,226,54,175,128,24,94,5,14,255,180,178,252,121,49,137,92,226,179,208,193,221,201,102,32,244,74,215,160,120,44,225,198,96,191,43,199,127,139,7,119,144,252,51,146,46,125,244,28,131,127,90,254,24,73,126,255,230,251,242, -239,158,34,139,88,4,204,7,72,222,244,89,205,227,162,196,241,101,159,60,196,148,125,82,246,211,207,30,99,192,199,55,101,159,220,55,47,127,94,89,137,234,217,245,236,245,65,82,45,37,242,26,159,121,237,200,175,198,11,106,191,52,88,160,78,247,15,244,214,123,188,45,254,126,175,97,191,236,54,126,156,32,188,226,45,147,213,189,222,7,243,224,182,236,175,104,102,231,110,49,112,232,53,4,252,187,129,87,148,49,26,13,254,0,188,238,53,225,18,63,247,250,176,239,205,56,220,88,209,61,252,92,77,230,191,249,158,240,198,60,232,251,48,118,75,238,199,155,155,94,59,121,220,117,90,160,10,182,10,143,4,93,200,206,87,69,5,186,227,245,106,90,26,73,94,33,185,61,196,149,21,179,160,56,108,197,61,128,253,14,176,135,43,123,128,132,150,31,136,17,74,225,173,240,188,33,221,252,51,204,163,18,72,126,249,31,72,174,245,6,128,47,170,138,193,38,18,66,62,4,159,53,72,174,14,201,238,2,115,170,188,130,229,106,75,240,122,195,233,142,43,127,82,94,137,191, -79,89,174,195,229,63,160,1,237,15,2,225,46,169,143,142,198,239,202,191,69,55,34,254,120,29,90,3,153,95,133,225,200,182,217,163,74,236,123,51,255,187,111,193,252,246,17,56,47,161,243,163,177,141,124,223,78,133,128,247,71,207,8,132,55,240,254,14,25,251,223,87,223,97,254,3,25,191,67,229,45,206,173,164,214,3,84,48,247,205,201,255,80,142,199,190,109,35,231,125,6,121,69,235,199,155,189,42,74,136,191,49,221,142,84,42,73,184,63,2,131,186,21,231,245,102,76,197,195,171,37,228,75,102,93,92,74,130,64,8,87,129,45,206,9,119,219,99,30,128,201,16,7,58,196,63,123,84,178,119,252,41,186,121,124,119,51,26,73,227,131,120,10,204,37,53,216,202,114,212,177,128,81,225,8,247,57,73,252,183,104,254,248,7,88,73,145,196,199,159,37,159,92,57,200,151,55,39,208,32,241,17,246,73,53,202,43,18,253,35,15,163,148,238,19,97,191,199,225,111,158,80,65,22,1,175,219,230,44,177,171,98,63,247,90,214,53,86,31,108,84,47,35,245,138,61, -21,43,188,155,41,253,166,2,135,174,150,126,15,218,254,32,249,149,18,250,161,82,124,157,244,208,205,72,68,241,209,149,194,117,42,5,40,231,205,118,18,178,105,4,174,176,149,21,31,34,150,187,64,124,176,112,94,15,195,43,34,42,173,246,110,130,250,252,233,211,223,85,87,148,87,254,48,35,187,34,242,113,205,236,245,106,126,51,222,15,87,244,87,70,251,170,98,128,32,191,40,234,79,31,222,196,120,120,76,205,179,42,4,229,242,167,79,43,113,143,139,143,13,124,135,80,186,198,248,171,255,6,223,193,29,214, - +topic "FileSel";[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,2#27521748481378242620020725143825:desc] +[a83;*R6 $$3,0#31310162474203024125188417583966:caption] +[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] +[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] +[*+117 $$6,6#14700283458701402223321329925657:header] +[{_}%EN-US +[s1;K:`:`:FileSel`:`:class:%- [@(0.0.255) class]_[@0 FileSel]_:_[@(0.0.255) public]_[^`:`:WithFileSelectorLayout^ W +ithFileSelectorLayout]<[^`:`:TopWindow^ TopWindow]>_&] +[s2; &] +[s2; +@@image:1755&1627 +ŠƒÔ²€€‚Îþ€€€€ø—œí‰¸Åƒö»°¬ºŒþ¢Žâ‚Ž¨ê®¸¦ ¢€‘‚ì¡’–ˆÑ‚ˆû¢ÛÆÜ²¦ŽúÍõœÆÑõ‡ç†Ñ”¨ƒ +ò°Î¢±¢òɤŒ’‘ ²Ê¤‚¡‹¬¡¦ðó¾ó÷ÜÜ„„®‰ÁúªÏÛ§ÎíÝýú¹þÕÝïû¼Ï¹þõª««ûô¿åë÷êÖ÷×Ùƒ²…쑜Íß +ö¶éÔ•Ôщ¢ÏľåõÓ³Êû£³×ÇŸë›æŒ±×É—±ŽÆóÆ¢žÅçŽÄ‰ó§êüÎÆØËÃõÞùö°ìåŽÖÓÞŽÎçž…ˆß§µ’ƒ +ù„ýÛÈ™¾Ä¡º¡¿¶ÍÄÎï‡âü“Æ£ãÖí釭·îÃîž—¿»×ìõ¯î÷×äµìÿ“û··éÜȦÿƒ™üôòäͱ§Þ¦œû˜ï™ÍŠ +§À¾Ù’²¸ÛãîúÙ뭆߉¡¿šœ£û²Ý”¡Ô”¨ÜûÞ½‹â·šü¿ªø÷»ïû„‚÷·«ŸÙ‹ëÓÿ¤¥¹þâúÊìÊà·µÿÓË”ÅÌâ +ô¦ŒÃð覬ôã–ß²„²¾Ð¨Ã¢·Í”ßвìò³–Òﺵ÷ÅêèœíåÑÑ­ŽðôÁËÿæöÅç®õ™ôéÆêèòÞÍ̔û߻æý÷¹»©£ +îϽ¸ûõ„šË¥é«Ï䉖ë¹ç§ÿÈ»Íɬ¤ŒÃöϺ‡ú°ïæñáÐðãäãžôå£ÎÝ®ýþ÷«žÝýÒç¦Ýá°½ºÿëô±ÿÆëÇ·Ò·Í +œ‹Æ›¾÷¬êþ¥¹³Æ›ƒÜ•´‡ú¬ÑÞñ¿‹¦®í±Î÷ú²èãÏ·¨¼ç¨ºè„ñõ˜’˜¹æ°ÁµñÒºËÜ—¾‚ƒÃ°Ü‘ß¼ž–û“®œ +·Ýí¼‘êøº×¹ƒ±ç´öÍ¡ÊüæúØ”³û©§ÍØ›«²¶¾ÞƯ͟Ñð¾ÿÉ´‰ÿãðÎù ôÞÊÙû暦â…üò‚·ý‰Ý­­óÌË·Å +ŒåÄàþú„‘†á§Ó´Ê楘ÕкÁ׉©Æò³ØÒÒÒºŸ³ªšº´éÔŠÞŠÜê¿»ÿ­™øàÿÆ÷¬¶˜ØË­ñ¶‹Î¡…Øó‰„ýæßˆ°Œ +¯ÃÁ™÷àÅŽ÷í̾½Î轟즡±—ȼÊÝöå§÷¸ÝªÁÝÉÿ“ÿöÐÿŽÞ¼°îæï›þÃÇÞÀþ­û¹ï…äÄŽµîº›ê£þ®ï‡Ãþ˜Ÿ +ÒѰ¿æ¨ØúÏó˜Í죽¼ÜŠÞë×î·üÚ§Æ®¿à·è“³†¯œ±ÊðÙÉý—þ¨¿ÿâãûÏŸÆ¿½áÜ£¨û¾´úØì³ßÓ»³ã­ë¿ü†• +Ôçž¾ùõªŠÝߘ¼Œ½‡ÿÞ¼¦î˾íÿÿÃøíÔ¥»ÀýØæïÌׯĨÎà‹ÇÛ™ºóÚ»ç귆ŒÃö÷¯°ÇÖñÂߣѣÇÀËÍû°ã +¸·þöó÷ÿé±ËÿüãüÛ·Öì¼ñ³£ß¾ööô‹×Œüõ¬å£Ÿ¿èøó±çÿîÎðç¸æÝ÷ÑÁë çŽÜñòÿ…ÿÇôΚ²â„Þ·þ×ô÷ŒŒ +µîìöûßñÛÿ•½ñè„Øéõ³ÂÈËÌÆ£™ÙÐóëÁλÎÐõŽž¬²õ×¹ƒ«îºôäàÕÍÞŠîï¦ÇìùëžË·Üñ­ç–”þûüß¾²ö +ÙÓßíüÚõ£Ø·Ü³òÅ«†×ÿ凜¿£×¸ß¸¼ï¼áÏõÏžœûÆÀ•ó§ößüÜúÙ‰ïßõÊÛ—œùöçôݘ½Ô›”½ÿþÛ–û–©ÙÕüø +‹žüѵᅯ½âå¾øÞÊŸ¶ßÛõ±À°ŒçñéƒÎíౡöƒ—½ÃŸ¾‡Ò÷óóí·îºù¯Ü·þõ“£ßºêòä‹—Œÿ嫜¡ÏÍžšû +‹Ö൧ܱÖýàŠÓâшö‹ŽÙð¸Ÿ½üÕ©‡®æüßþ±û߷ت¶ãï›—‚ɽ°ŒÃí¶³„÷èî™ã·ýþîì럧àÝÓ±ô×ñÎõ³ +³‡®¹óàŠ™¯ý—œÐÿþ‡ì·üüȳ· ùÛ–ý¨ïïÖä§ÏüÏïÆ¾òŽŸù€¯ž½¯ýÅܓоêÕü„íÒïÓÍ·ØËé“úò«Æîøø +º‡»Ô·àáÆïú̦ÆàŽƒßæýîௌö÷æÓáͨš«°÷ðÊ™›½¿üíÆ¯þ…ÏíñòÛ˜šà޽±ÿüã©ø±û¾ú¸Ïï»ûãÏŸñ®ß +ŸÍб—¹ÐçöÒœã›÷§¯Õ¸­âö°ûë÷îÚöâÒüõÿØëÝÿöÿÒý¿´ð§ÎíÚò‡×Þø·”ÄÞ˜¿­¹Ò¨€ß˜†ƒ·Û™½ƒ—ž°ò +½Å«â¡†ÿûçé𼹜³ý´—ž×ÿÞÔ÷缯…Þ¼ý¥ï桽§¿±ã÷³Žýч¼ÞŸ³÷ˆÕ±þéß¶¢­ßË‘ÙûúãÓ±ûÉǾûÇöÚþ +µ”óþóï·üîë÷‹ÇŽ™·ß™¾ýî¿­ßóýÜñï÷¼š±Ñ±«ß˜¹†«ã‘½ÓÛ­ìþ«‹†¿¼ÿÑüúé¸Ýû–‡í†óõì÷Æ›ú +õ¦ŸÜ·ãÞù™ïûôÔ·Ý÷ù×µÙûÞýÕúöÎ싱½Éº½çŽ­íÙÅËӞ§­Üãâñê½úöÝÓ›öúÓߨûÙ¦ÖæŽÇ·™¯úÝ +ÓóñãÓçì¤ßëÞò‹íìÑâ­÷¾—¿È܈°ýûÇûèꯚ¦îÝù‡›ƒ®šã‹à˜™†ý´ïýΟäℎûÞÑ÷ßžßÌðŸÙ󆮛½¸ +÷Ì«¾¢½ªÉÑÿúÛúÏÖûã†ÓÿüןöÈãý§œòã÷¿¦íÅÞÖõ½ô¿²ãöÒˆÓÌ“ýú›ÞÑæœŒ—Œ³ú¨û¥Ù“ÍûÞþ¬ +ßËÙû ›˜‡‹ÙÒ«ÿò‘ÍÖü玧èÚ·ü¬úަ¯ø›¥§Ìú¾Íü’ûẶ‰„«óüæ“ÿü“¦î£‰ß¼Ô¿ûé´õݞ̶®þîúɌà +ïùô히ٶ»ûýÃל¾¾üÝÙßš½—ôɳ‡¯½£ŽþÂâò“Û㵿ç¿ãàÌ·â̼øàÆüƒ³ÞÐ÷‘ƒìž¿ù Ÿ¿÷øÕ±û§®Ž +þü²Ùõ¥ýÞßý¾ÖÆÞ‰ð²Æçïí±·±½ŽçïÜ“–ËÒ»ßðŒÍŒˆïþî©¿æò½Û¸óÚƒÍÛÌÉ¿ŠÎé²úÒéϳôÞÞï½µûÓÖà +ð°Œë½ë™–¢§ð›¦œµúåà“Ó‡þ⣬¡Ïþôø¯äæÍ½ãðêä™Ò¿÷è֛Ӈθèð£¯îŸœñú§¾óþñ“Þÿ“ÃüÞ‘³÷¨¾è +¨Þ˜½ïü¼›î÷Òö¾áÕÌŒäÊÞٓ줽¿ž’ííÈÖ“¤éÓöî–ùåóìÌÁæŸï…ϱôËÞÿ•¢ˆæÆŸÐïáÜÊÃðݪýζØë·ˆ +—¼…‚ëýéï¿ï¿øøÁ«¾ò©»´÷ÌÁðëÏï¡÷Ò©Þ¬ñÇíÏŒŸÞõÐðÌ×ÍÿØ¿ÿ”ýŸøŸÐ«îšüÿâöþð¸ºöýûŒß÷­Ùû +úçÿœ³—¾íÙ»ÊÀ›³÷·’ç篎ÇûÆÏ™õýŠÞêô“ïÚÉßþæ¿ÿú¥‡ÿ³ñã°§³ëâÒž´ï÷Ц˜ïíõûÛÓ𙎥皅ḕ… +ˆ‚Óðõοä·Ãœ©ƒ—Ÿ´òøõdž¯™Ùâ‚šºô×èá‹Ú÷¹ŒýÌüÍð©¯êü¿ñ¿ÕǼüó§ïü铽ÔÏ´÷ËÙË»Àȱû›ã›Œ¼ +Û´©Þòü«®×ýæçžß¶¼âà÷³Öîþ¹Õ‹Ë׿¸é½Û®Ê̽§­çÚóêÝœ¡—¼ÿ¿¾ÜöÝÿÖÝú’ƒ¾ºïí‡ñúú¯ýâÿÒïíÜ´í +ÖßþÙ‹Ñ…ÏžÓ·úºí阕†áïü®àΕàÙñ¿ûÏÿ·øÀ¾óÞ×ÿ£Ñ‡†®¿™ãÆöðŠÝþëÁ¡ËŽš¾èû½£óÞÙÂﲩûŽž¿Ï“ +¶ÇýéÏß¾ç³ÌÞ“·Ç˜å÷øòÀ‹½Ó‹‡â‡†ø÷ó¿ð¹¶Îð¦éÏíÛ¶òˆÕ³óÃ対úý­·ÓÀ²ß¾àÏ™ëžÞÄß¿’ý÷¨åéžÇ +ÙÜ•ÝúâßΞÿŠöãŃڻÞöäü½Žõú¹Åø«¯Û¯ž†áš»ºà֗쟙„÷µå¡øöŸ¨¸ž¼ºöÿõ§¿ë“ùÇÒüîÿ›à—ž· +¢øé‡‡¯™ºŠôё×̙޹÷ÐÑÙï¢íù»î¹ýä¤Ù—œû’§ÞÛ·ÇÏÞ²Û“ï½Ô”½ÇŒÆèÏØ´ÇœúâòßҼ眱—÷—öõ©÷¼ +–ðãÞïûŽ›î½Øû½‹öºäæûüëÁ×½­È‘º÷›¿žÓƒ÷ƒ¿›ôõÔŸ÷»²öžÇÀ¿È‘¯ºøß뻟¿‰å²òšÔ´Œ×Ù´¡»‚ûíŽäó +Ì›—¼ŽþåïÍôÃÖŸµùÃÅǿпçêÿùÓû眵°‘烃óÞ¿øßÞ”¡¿ãøéìÃÆÎúÃÈ÷Ì×ÐÎïðñ²ÿÚ¿õÇ×ÛíÇïž”³ +›÷ÔíÍ®¯åÿïäÿ‰Ùûڗ圽⧷†ÿïÜ´‹»çÞ§›¿ÂÆþ£¿™³·õãÓÏ×¶ÜõÓš†ÄḋՂÓâÍ­þÿËþÿÜÿë×úÖ§Î +®ø÷Ó³Žë½—ûðÞÙ“û¿´ºùýÇßÕ·çëÐþ³éŸ‡ù†Óß³ð¹ÒþƒÇíÓ¿Æí¯Þ£öÛù•îèÁ›£¦û°™þ©ûÙ˜Ãð»û™þÙõµ +޽¯ÞÅÆ˜âõðšØË±¬Åί웻þ²ÃìðØ–ð»°é©Åå§¿õé‘ýû­öºåÇüÄÖŸ×øæå§¼éÅщïÜùÂÁ«Ä¾üàãŸþÝ +øãŸúÕãÇîï÷ØÔ—½þÍ—¼öÞ¿ÙùåžÉ¿º´úáíÑïˆÙûú³ŽíìÝïë¢ûÆûù­ì岯ëö„·ÙЊޮŸœ±˜†áŒÖ‡ +쟮›¿ýüñ¸•÷ŸÿÖÿø¹û¾‹ß³ï⎩¯¼Å㽯ظ忼ŸÍÙïÎɯ»ÿéûö¹ëÝö¯ýÙ»÷þéý¡ûþô­»ÿÍì­“îüÓ´ +ëðè·Œ¾ºüƒ²¯¿ãàﯸç¯ûÝý‚çªâÇà盄‚æ¾ú—³›¿–Ìö™õ™áßÜý¡³˜Ž½Èí×ÝâËíÖûÌÙñÙ··Ó‘”š˜ÛÅÁ +³»ÇéÛÛÆûæ¥öÎè̤ßÏüù‰Öƒî­àŸÊ–ÿ…þŠ“®”Í÷ø»âê­ì¡»þ¹ù˜ÖÝõ³‚ŒÖüîóñèšÁ÷¶´ï°»û—¹èœ±éâ +óÖ³ñ–½²–„÷éÛ¢Ó·ãǯ쩟à•ʬ±·ÆïïüÕËÁÇ­ŸôüóŠÝ¾œ›ÿÞú±û©äø×¾çöƈ泊·«¿¯¡Îº†÷ðݧôÂÞ +Ë™’𺡴Ƿ­§£žºéáéëšïŽ°Ë¡¯Ç¾™ÏûˆÕÍéœØ¬Üº”´Úöžá·¼æïƒ¿œ•ÀÚ³‚±ùùôáÅØÃ³à˜Þù’쥋Œ +üºû¦˜Ýçð³šåû¾æÕæ×Žï½ëÝØ©ÈꘆḠ Ç§½“µ¦–ºèŽè¿ÿ€Øûᘆ˱ز‹Ã°Ü¾ÁÞŽ˜†áòºûϯýʰŒÃ +´Ú˸øâчÔ×®»ïéïïàñ´­Ì×ɾœîÕÙ›öŽçöˆ‚ê ‰½”Û„ÔóæÞðä÷é×íÿø…‰åžúÖç¯ù̑ÃÏîøîÊË–õÁÞˆ‚ +ǂ֒µÛî¹Ï»ÏÅ´¤ÑØ´Ë»¢”žÔ²¾¼òýÿ°ý€Ûýƒ£­ù¿”ò“ú…»‹²¬‹ö”´˜ÔÝÌË’Ã…½ËÿûíéµÒøºïñ¦ +Ó›¿Áû°´á‘¸î”éÖ…û°¡ˆŠÚ”¨ù¯ž÷±‰½ûøŸþ¡íµîÚ©µ«ê×®ƒî§½õ›ô•Òàà¯ßוŮšÏàëæÈÞñŸÏ¥ü Ù«þ® +†ùóæÉ˾ÿøàñññ¼¶à¥îÑÌäÑÒÕ¥ËéÎÒúèëëºõëè΢¢Å‹øŽÍ³â±—Ýö™ÍÙ÷¡ßý—¬Ø ÖþòüñÇÓ¥ôöÕʧ•²ªø +¼¢íåâçâ¢õù½¢¢ÐÙ¿ÖÿþïÿžýªüªÙ³æ±ƒ„Îàžº¦û“¬ó½“ªªÊ“Ôß¾±æâ‹ÄûÉã ËµÓלϿ¯úáîæ‹ì¥íç +å¶Ø’Ö©½òâõóåïÞ¼ÍÁŽë­û£‡™ÿÖ¢‰ùóç«ßø¥ÈÒª‹©òí蔀´¶”Ї†ÖšÃßñ¥œÊŒš¦ ÕЂ–ᙂ„ÿ¾Ò´¸è°Ã +ʎ㫲Åêåï’Ø¶èÞ‘üÑŽÞ‘Ñèàëóô•ÿ´ú½Ã·¾€ˆµ Žôè…û­¢Äý͘ã›ÝœÈÞ—ŸíØñœÄÞ©¢´¬Œ·ÝÈßÅõ‹âïÆþ +Ê–ÁÞ—Ó÷ñ³âÅê±ñ´×Û“í҂±±ÁÑÜÇÂý·Ó›©Ý¢¶²žÞµÕ·È˜ÐÈùȦ¨ÈÉŠ¨‹˜žÙŽŽëª™Ž‹ß¥Ê¿¾ö×Ù¢ +ѵòííìÓçÞõôòª‡‚“íÿÔøŽ’Ë‚žÖýË¿šÉû¯ÀݺÛ׃ÒÛ×ëÓãí¨¹“¬çÌÅï‰úУ£ÌÓççÌãéµÇ¡‹ß›È‰¸ª +ðûõ¢“ŽÓÛ‡ŸÝÆóÊ㯮˰½á¹âÛúµÇÒ˜§¥úþٻتžžÆžËùÏô­……¶Äµï£•Û¹ÚÐ´Ñ¥Ôæ¢ê·¨¥è£æ”ˆåýÉí–Ù +±óäðû¨ì–­ö¯±Ûç±ó‡µèªšãòŽÝÀÅêáŸÄø¼ âå¢Ä¯å€œÞÞõðÞλ¸Ÿ¼¤«ë–ýŸÁа’ê·î¿…øí–ã›ø‘ ¦ +êÊÔßÿÎâ–™½ÕóܑƜ¢ö¼ÙÂÒòƒšöÚ ¨½‘À²íë–ÿê´ýÞ—äÁŽÞµ˜´¨Õáèí™—öÆôè©õÄ™Ù«Š©÷Ùڽ˦ö +Ÿ‹ÕÃÇ›Åãô±½äí–‘ôÙ‹¢ÈéٚöÈÄ‘ÄùÅ»¸Í–©•‹âôƒŽôµ÷£—è˽â§÷þü£ùÚ˜éæîÐÝû€­µ¹žÆ‰¦’õ–¥ê +Ƀ«‡™¹ì¥ò´³£û¹Ò°ù—èÙÍÁËêËÛ²ù““û§Û®Ž¸­ˆöçŠÒ³ª’½¶™û½ªšØð’߯֝„»«„ûÙç­’º×¦•ùœÕÐ +ó÷‡ÕèúøÒ‡‘Ñîž—§óé¾Ç¯Çúè¾ÛÑÿøåÂõ±ƒè¿—ÛºöÿÌÁ²­ÄÕó¸·é°÷ö•ýÜœ¹ÌâÄ¢—ö¶Þ£ñµãö²ú¸û +ÍÇ·ÒÄ÷Ù´ëßÑÛö²ë¶í¬Ï¦žÿìÛ¸ŠöƒÙœÅ–±ÉЕٚ¿Ý…ÑæêÑ·èïúÚ­²Íëâì•õ»ÅËá¬Çœ¨à½ÿÖ³òÒ€€ +í—ú­ïޱߔ­ÈŽŒÚ¹‹¸óœãÜù½½ÜêáÇŠ•êÐÇöˆîÌ–ï¡öëí´ÒíÚ›–ÚËΙº‹’õñУ›ÄóðÊùÂÅŽ¹íù‘ +Õ½ã£ÃÔųà×ÍÇŽ¸í ú𤃯‰½Œ­®ö™ÎÿÖ’ÁùÍŽâËáþý´õ±†ÏÆÚÜŦÃÇàÕ±«¼¼ÓÝ¢¶ö¡¦Õ­ŠÿéÅóž¦ø›˜Û +è–ýå‘¯ÚæÈפÉ÷˜ÿ©ûÀÇ–Õʾ­äÉñèåÒŽ­„¡µêü®ñ¨ûϾ ú÷¬ø¯ïýŠçÕò½âðŽÌµì•¥®Åµ¶©­¨Ñïß¶Þ +ü²…¯š™Š½Ü“‡¿íµ³ö»²µÆ†û©‹œâ¯—ÊäÈáôæâŽö‘¶Œü‹û‰îôÖžð¹ÊÛç‘›§ª¤òºúˆÂýµÅ‰úË¥½ø®ö篢 +¹±÷è ºˆŸö–ï´ì­ß’èõÙ„ö®ۊǜ–¬ö±™Ë½æ”“ö›ÿØ›¼ÖÀ†§™©ó篩›Ù¬œõí•ûÂÞæˆ‚ŠÖüÙ»’•®¶°·ï +ÌàäíšÕ®ÿºšÓâßûÞ­Œ¢û麮ë±ýóõƒî÷‚½ø„åœÇŒòÊóêÙŸýèÉÿ£®øµ£¿ãþ­ïûöõŸ¤Áގׅûœ¡ˆª•Ô¹¤ +÷Ù¼Ž·ÝüÜÛïýæÂŸÌÇ·˜öÚ©¼¯Ï¼þ›ÔìŽÉ‡Ž×­°ûá˜ó†µ–ÙñÄ£¤Žö¿Éùɺû°®óŸÓÞþ«…çŽç¶°ó¹Ó»Þ·ªì +…á˜ö´¥¡Ÿíˆº÷œéáʎϬëêö©Â°Œ—ï°—å†á¸üËìÝÆûò“ௌÃÂðцûᘆéË÷ÚööýÂ䥌ÃðÀΑŸ½éﳃ ˆ +Ϫ£ÀÞšêá¢æ÷û— äø¡ÌÁˆ†©ƒ˜Ñ…‚öÖÒèÁÔÁˆáŠÂœ³½ßÝøßßþ…ûîˈƒÝÊÇË”ÃÞ骉Àîœ˜È£Ë£ÎÆ¼ü‘¶Ì +ª©¸ûÔ´Ô­ê±öÒ¨Ò¯é̜ۼÕÛŒïæÓ¥¬ØÑìõÕÎÙ×ÐLJÜÒÉÛ¨Û¦óŸøñ©„¬‹Ä‚ûƒã¯ííÓÒ´þòŘÇÝ¬ÚÆË– +‰ÀÞ—™¾Ñ®ÌŸôÐÊíÔ†”¼ÍÔ”ÉîÄ­ê—Ë„“÷ä³îöÍ⚇‘½Úãë¿ôÛ¹ÄÔÜÕºˆù±·†éæ­÷´­ŸµûݺÕÎŒ¹¤ðþïâ +‘Ñ·†šì­ÎÒê£îž¥‰Ø·Æ¼à¯ö€±º´çÇö¦ª»Ÿ¶äВ¤¤þŸªéÕÚã‡ëÈÕ¬±•÷½¸Žâì¥éß°¼²¢úúœù¬ÒΓҥ¹ +æ¤ÿú†ß…ÿǬ˜øËÛäâ釚£á—ÁÆãÇÇÍ¿®¦­½„¥¤ßºÒæ©ÖÁÊ£î÷·ñâŬ“ýð¾Ý޽ö¯Ë›µ™ëóÅ×µ›ß±†©°é« +í»ÉÄØ‰ŸÇݘӭ©áêñ±ØÝÝúìÒŒ‘›†ÚØÜè«íÌ…õ›¯üÝ¿’…ª½¯ÃÜüǺÅÌöïÙËÿÛ‘ýùà£ÛÄÀ» ª¡ŽßíÅÚ +ت቞Éþð¢Ñ›Ù‡éØë¬Þ¤í§¦Šêóն쯽ŸØƒ½Œ°ÈªÎ»ð¸Ûʾ¯æ ¾µ“ØÒéƒûÌÛ÷µ•‹®ªÄö®Ú¶åĬýȽÏ÷ +›–½Ò›Ò¶´æË¬³Ôâ©°Ìú²±—÷úí‹ÊÞÎÅœ®Óü½Ä‰Ž©í‹øÕ™öÒ–ÃÙÈë©ß¦Êà¯à¶ÇÛÃÇ«ëÝÓ•“ÈÞû—ÈŽÒóäÊéê +¿ÎØ»×äÕà€ïµäâ¯éŸ’óˆßõ‡¥ßö¦Ö£¾õéÓûÕãï”á¼Û—¤‰Š¶†°ËפööŽˆ°ðà–óÒ±÷ÀòØËÆ’–êµÄáè¸æÀ +ñËë«á‰ùóçç³á…ÚÆ”Üه鯵‰ø í’¸Êñ­­î÷öбóÜ–°©Çؤ§£ðÆœ²Œ÷Êß‚ÛÚ®ÇÞ±•ö–éÓ•“ÈÞ½Ÿ¯é§¦˜å +̉îžã­ûÝ¿¯µÑ’Òµ¶„Þ¾ñÚ›ÝÑ—½ÖƳ렻Ìû¥»ßã¦å¼ÈÜÒÆµµ÷§­ÁÒ¦½˜˜“ïÍɲÕùè½æ¦¯¶ì²±åïëÉÞ +Öö—Èާߺ¦¯áøÈ甥‘³Ž²´êÈ¢üðŽúùüÇùÄå¼ÛÑùø—­ñþÞûìŸùÊîô÷÷ºöÊÞÒþÍëÔҹLJ악þ犹êÉÞº +úŹЉϵýÖæå“ö§û® ­ƒû¡¿…Éêڂ”„Ä¡ùœ¨ÚéÏÖõ‹ÇšÏ—¦›ýÏ쭜ШՃ”„Šœýnj쭜Ш±ƒÐ«Ì¯Þ§ +óö„ÆÏŽÝÔ׶ׯ–„á„’Õàü½àïÕå„ö†¡äö›êÀ‹ö–¬¿›û½Ý¹¬†¥ŽŠ×Ú‚“ЇËÐð¶£›£‚÷ëˆÜùɪðþÞ¬÷ +Û÷Úò ®ˆó÷†¡±Ì⬴Ď·• à…¤ûË—´ÿïý‘ËǛӖ¯ÔÚ¶ÔøŽø ñÔņûŸù‡ª´ûœÜî°“Ë÷¼ÙºôéÎýæÃÉ¢ÿæ +ÿïµËýë»’ÏÀ‘ú½ªûőצø…öêÛ‹™ýÀå›Óû³ÙÊÄ̼¿·¿‘½åÜßÛˆîÓâñÍ“¿èݧ¹ÊŸùûíÎò¯¡’ñ—ٚ˔§ÑÄÌÎ +Î݉½¼ªí¦¡¤òâªÔ•׌ÍÝ–øÜÛ¢ÒûÇüý¦øÑ…¢Å‡ö˜»Ã›¤§ÿ눽˜çåÙä‚“öêÕæü•½ê‹îƒÆûèùíÚÍ«± +ÉÖ•¦¡¼¾¬•ÚïÕŸÀŽÈÞ³û‰’޵ª¶í¾˜¢’˜ð뢜ÞÒþï—”¸´‚ª†ûó÷Ý÷ßú–Ò­•Í’ÃàËÂ¥¼ôéÒÖÆ²Îó¯Ú±á¯ +ÎÖžÌßë鹤¦ ¤©©§Ý¶¸ì•Äö®é‚Ȅ𫧽ûÌÍ„–ÔÁÌÛÌ×ハ–óë«¡ê°×ìôóΟ¯ßäվ¨žÔ¤ýÚ„Ó–¨›¼™ +«¿·ãö’ÝÙË¡”Ô÷ÐΫ°¹ÞÉ寪–’ò­ãŽÄ¹¨áꪙÖェ ‰øçª†´ûÉãúÙ¼ùóóØÄäÒäÕ¼Ú°·£¼™Ñ¿·‹ûµµ´ +įÒ÷зÇùÞ—ÈÄÍÙËüŠè¯µ‰µÕ½…©šìåýøÞ¾¶»ï¾ûœ’…’–™ûÕµ´âÂÞ­º²òÿ¯˜¦©’´ñìõ«©§£ÀÇœÞèœÂ† +ÆÞ–Æ¡¬ìصê©ÉÈåñÁÞ—Õƒ½ãËã㌭Ñ㰞ך˜—ɲó³ï‚…‹Øˆ±½¥«ËÄ„½Ú´õåþÞ¢´Ó¶—öŠÒ봳е¶©Ó +÷Ë»¾­ä¦¼‰Ç̽¤¤ý̵Õüñ­ØÛÕ©ööíþÞé”õ²äÖÐõœ¿Š×ý¨žÿ¸í»¿—ËÓïí¨ äÕŠñ×ä¡Öû‰ÒïÉþžý¸‹ìµ¨žÏ +–”‡ÎÞËøï¸ÚÕ¸ÊåËÏ¡öÂþŠóé„Ö¡õ™âõއª®îžÄ„ö™î‚ûƒöتžýÕß„ö©î‚ûƒÂ”Ë„ÀÞÈÝèÔÀÁˆáŠÂþ² +Ç·œËêÐÚ•¥óƒ¸ÐƉááêñÖ—÷¸žæª½ûãþÞ…ªˆìÂ’ûëÍ·à·Œö–‡¯¢Ø»ííô»Àí³·üûÍ̺®³ÖóÿæÂÞĈæ +ß®û×·®äÆ÷ß’û—»üÈ䯶•Ùƒ’ïÌ«‚—óùÉÞÒîü½À¤ƒû뵪¢—ÌçÐúˆÍÍÞëåÒœ‹à¯ÂûÉŠ„Óå¯Êå¨ÁËÞµí +£ÈÕÜâÚÛ¸È×ö’ÔÏ€”÷¶ÿ¯ýåÞóï°‡…ù…—Ýö™û˓Ȭ‡óÿ²©ì³í±ØÝÝÒ°÷ÅãϦ´¢Þø¥òÚš´å›Ö㥕öü +°ùá—éÙ«­›™ÈÞ¢„ü€úêáñ­íÄÈ’ãÍÚŸ¢Ží”ǹÕô ªø†û»›¿—áÏ”ÏÊ˪äàêÝÐǯæþÚåʸæ í§Ž–ƪùª‡¬ +¢µ¨Ûñ«©ï‰ì©Çþ¯±¼„Å…ºŠåîõ¢Ä´ýõÖ᫽§èÕƒ½¯Íß«âÓ¥æÓ’¶üâ…Ϫëì•ÖÉËòÞ¢»«Ô£¼Í‡¤ìã½â +âíŽÁÑ×ɰœú«¡íú†š¤—ÉÕà¯éèÕþÞ°·­²ŽÇ÷úÀÞíÒ÷‡Ò¦ƒ’–½ÐÒß×ýË×ñ÷„½ÚÀ€½Ä³öö¶ÿ¯ËÒÙÔ¯ì¸æ +øàÁë…çþÍê¸ÞË’ÚŸ¶—Š‡Úª¤­ÚûÝÊêÓÉùÄÞ±¡¾å«½¨Ç‰˜ƒ¢­¹Ÿ¯û¥¯òÀ·ƒ¢ªšìíìåþÞ÷ëí˜û·—© ṳ̂œ +¨“õÓ±×”Úã§…¡•èæÙ×û½Ú˜‰Ë‰ªòØÓÅÔ͗ߪԭÀÐÔïùÊÞ¨Ûó÷Šæ‘ôúÙ²ƒÆ•ž­ˆÂ™Ç¼ûÕ­³ºªëÉÇö’¥ß +á¢Õ—ŽÖ’À¦Þ°×‡•÷Ì‚ñ×›àÕÚÒ”¬¿Ù‹ù©Ì•Ò’„¦ ÔÈ‚û±Ù儔Ƅ¦ ÔÙØÜºë¢ƒÁ‹Þª‰ºˆ¡øÌÁˆì…Ü… +ÔÆ„¦ äœ§ûý¿¬ÖϼÙþ§˜«ƒ«ÝæÐ¾ªçÏš¸†§Ù«½Õƒ ´ƒ‚Ùäâú¯¿Õ‰¥ß¹îÊ›¦žÆý›™Í·ûÑÀ÷àîÊÏö¦½ +õÇÌœÄ×ýŒóªü­á¹Ë…ݽ´ÇŽßœûð݅Ūôø«´áê…£’§Íô×£ÕñߨþñïêäøÀ­¶÷ò“½¤åü½ê⬳¶ë°×Ä¢Çö’³þ¥ +•¨åÜŸ°×«Ëí¿Œ¶¨ñè¦Øëÿ·ª³Õ‘¶—ηÝô•¯ì¥îÑÏ”Ëßµ¬Á—žáÝ÷ßý—ܬØÀŠñ§…óùŒŠü•ćϋƒž„¡Ç¹ +½°·±ç£­Á£úö¤ÊØ¥üÑ©ÂíÉíÆÕ‘§Ó…¬µ’Áõ³Á™ö£õÁ‚èŒØæÏãŒó¢Ç¡Ì¦ƒ¬Åæèã«¶Ì¢º‹«Ð²íÈËÖñÑæ„­Š° +Ÿ—èú½‹–­ŒâÓß°ùõ˜òÅ×µ”µÏ¬êˬ“ùʫԶ܉ì•åÈÞã•“ÒëÕóÅÈœíÚÅ“ùüòÚÛºƒ–†÷½†á…­´ì»Õ†É͑Ъ +͵Êíº“…äÍ´‹‡ƒÖÕÙÒ«¥£ÅêÒ—œÕê®ÒØ«­Ñ²·ÿÓ˜Œ›“Óöœå➯ïôÚÕû¹µ«ÚÖ²³×áͱŪèՊýÒç÷áïÞ +ÑÇ»ìùËÞí÷Þ‚½Ìœ½¤¢ýÌ¡þµ´‹Ýõ­Ø›»êÂüÞ¶ÃäüùóÙµãŽÚ‰üµÓ«ÔÜ™ÙË’Ñšð¢ûµ´Ö©öõ“ÛøÔ¾ÑÀ«®½Ýë +‹¯µ‰øí’¸äÊñ­­Õà´«»³×’—©¸§èÕƒ½ê¤Ûº¼ªžæ—ηԻђ¯µ¼ÌÙÙË¦Ž‡»úÕé®éžï°¦’ÚüÃüííŒÕ¶ë  +ÿ›¶½’Ýïø±ó‰œº®–Óº† ºñ¶ôýèð•ÀÞúÌùßÛùåÂÞŽŒÕÐÄ«÷žÙøž¿”©«ÒÕâ«ÙÇ¡ª ÂóØ»¶ºà¶º“ÍßÛù¹¼Ó +ŒÜÜŒÀÞÇÕÛã™â°·«ìƒ…ü”¦é‰Â€ˆÓ‚û¡÷‘¡Ñ‡¡„©ˆÿ½»Ð¨ƒÚ”„ÀÞÈ„ÝèÔÁˆáŠôÂþ²——Õüæ”æïÂÕ¸ +ÑÖÖùùÈÞõ›¬Àù≰ÿÜïÂü½ÁÈÞÏö¦½ÇÌœ³¿×ݸ÷Ҫ˗ùû³‹Ñ³ý«Ûó÷ª’êöñ©°¾Áõ“½¤Ãü½Ðñáʾÿ¯Ô‚º +Àµÿïâ½è¤Á¢üå¯ñÿ¦ÞØýšæÏ‚Óń؆½²üðµÁ‡¯Û·Žˆ¡ÄžŸŸçÓȵòÅíû¢îÛêÍ•ñþÞâüŽÀ±©³¤¶áÏí†øÛºÇª +»ˆùû¥£šªèêêÕ‰§€š³¯Í‘–…÷¼ôò…ØËڣɗÀ» ¡ŽßÖ߀ÏЫˇûÍ™Ãñ«ì‰ñºïµÕŽó˜‹©„´µß‹û†Íµ™ÚèÍÔ +Ðü½öïÃËÿÔÄÂÙƒ«ÛüùíÂ᮫¾úìÕ¦í™êþÓڥͩ¡úòŸÃÒ±‰©˜èõß·†ªç…þÞûÒ“ûÖ×Ôžª¦†¨àîÊËãËù® +ÌÈâ¯¶Ìæö𾙜ûÛ÷ÄÙ–Ó«½Á¨«œùûíË‹à÷¯þÓÖ…½´ß»ùʇÔ÷ÛÂÞƒ»ÃÞËÿ˜ÃüùóÙ˜Öƒûýµ¾–ƬœœÕ•±‡Ô +—ëò·õŽÔ¹çó÷ŠéíÔÒž¢ÚÄÞįÖè­éù¦©§ëƪ°ßÛ¢ûÅùùûÉÒµ¶ãÙ¿ÞºÖÆßÖ꯵Á’ò™ø»Ý‚£”£¶Ðå±ßª£®å +®«‚½¢Äöʦö¼Ç̇ã…Ô’¿ÌÍå’îÏ•öÂμ¯ü¾ÖæÇ¿·ÛçùûÕ³‚êŒÀ¥ÌßëÚ«àííõŽ÷ùó»÷úö´í£ÇžÈÃþ¯éÿ +™æµ©ÕÇ„ûØóщó÷ê×Úò¬ªã¦«£ûòŸ©ö퀇ùÈÞŸú½·Â¤­ÁˆáŠÄÂþöû¡¿…ÔÆ„¦ „¤þ¯ä®´ê é„°…¡‚Ÿ­ + €û«§´ê ñ„°…¡ÿÙ‹´‹¨þˆó÷†ì¡Ã˜â›ÊÔÚ´Ô­ùÌÞ̆¸ê›°ÿ"ûƒ·ìÍÊµã¨—Äæû´Û¨­ò™¿×ýûߌš©þ¿ +ƒ£†¯²¼‰¥¿½µÿß䲡ºíµ®›îв­²·Çÿ´Ýû¬¸Êú­¤ÞıŸä­û£á¦Á”Ä™ÇÅÕ¥¤Æ§Íéÿûü½Úˆä’ß©¢Û²Šý— +‹Òžà¦Í÷ËéÊüŽ­î‹šÆÖ•×çñ¿°¾™ÕíãÝ¡ÊÂàïÞÓºù¶ã‚ý¡î³ŽŠð륶ÀÒÑ£÷Ží«“ûãŠèêε”ñþÞæÄô‰¹°× +ה鲹ûÚöÚÓîº‹ÒØ½Û㱺ºÚØëˆî³ª­ÈÔ¯¦Ôª¤ã¨ÝÜѽ‹ÌçÕó“µÛ‡¾Šãßﺬ쒆ø—ÔÙš†é«ÿÜÞšÔò¤ý +®ËÖ…ºáÚöå¾™¶Ó¢ž‚Ô€ôÁà—åÙË”¥™óŽÐßš¸êÚꟊµ¥˜öàÚÂòÚ¿Ú«Š”¼çïⷙljµïª®•¥ë®¢–ÓíÈ– +£ÃÙ멟®Êîæ¯¹Ÿã옰‘ë“¶Õ¦½Ð™¬›µ¶î‘À¯Ô…±×Û•À…•¬è““ÊÞíÚóùÕÎÞâ¶ã¨±’ÕÊÛΊ—ÞÜ€½’Šã¯ +ð鷺㯴”ÍŸ§îûéºÁè¼çï”á¼—Ùè¾Ô·Øëø£¸¡¶·¿ÙË’”ü®öžñÔ‘ÌÉäïÚ´±ë–çšòª¡¶ÜæÔÓîßË‘ÚÅÚØ§† +Û’™ö„³íõºÛÊñ¼×±ÕèøÚÄÛ¢Ž©å‡ˆØÛÀ¤û¥ëçœÕáæè›©éïö©˜ªÑˈ«»ÏñÖÔ¯ˆ×¹ñÌ¡éºø¦£ã­­Áý뉦 +¦ö‹–Åí²Å•ñÙô×ÔÄÔ½æöø©„¶®”“Ò¦²Úý›Ðî•Ø›¯ûĉ¥àË‹ÊÓ®ŽëÖ׋èô„È¥’æï…Dz«üç«ëòŽä³û™´ß +Ó¹«Ëåà¯æÉåï¡ÄÀÞÂÀä¿û¡ÿ„ÔÉڂ”„¥ÀÞÈÝèÔÁÀˆáŠÂà¯äÕ®Ö£þõ¾±ð§´úò즶•½¶¶ üÃÚ§²ÀÞ „ö +©îÊæ¯Ž¼àòïÉ‚ûƒÏíì­ôê€Ôòø£–ï¾¢¢áàí‚Ö…ïÖ®»ÁÞ’Õþïè娄öîȽùµØÛ‰ºñöΦøÁÞÒ¥å¯æ +›Ãö̡ͥÙôžû¥óÉþ¶ö³Õùì•ú½ŒªûÅצø•½öêו¤¬âÃÛ«ºÇÄ«•»½©æÃÎ¥ïû¬®ëª­¶üÿ÷“½â©¡¦üÍ’Û¾˜£¦ +dz¨®çʬ‘뽤ýäÁÊäßÔ•Ø«¦ÝØôë×£¢•ʉÞÈøÒ²ñ¶¹ìÜÚûŠàî¯ñ‹½½©žÚÀŸØËÈÞ÷¿®—˜©ýê—ÍÎâç£Ü•© +áýÞõÅð¶³×ÛÌÍ€ïίÖöÊ­®…‡¸”ùœÚ‡î‹±ÃìØêã¡ôÊÜ´­ÈÔ¦Ù¤œ©è¦Ö¦·†Øž“œü䄯ÓÚ±‡“ûÏ¥àÚ»Þ–€ +”‹ûÒÊ×Ê¢âû×´¤Â¸•‹ãÌÞ¢´ÉíŽÉ©¡©’…¥á¯áøÁ«Œ“ûµÑ±­µï±×ÞÖ¦òåÍ´‹‡ƒÓåØŸ«¥¥Ô§’³¤ÍßÜÒ±íÞ +šéÓõÊÞÕâ­äªãމìØÕ³§Þ¶ÞÕŽÄÝ¢¨“û”çö±×Ûà Ñµß²†›’ê®É銴Ôÿٛ¥ŸïµÕÊÛˆàô¹áÄýÓ¦ë +ö •½¯ˆ›ó³—•Яµ¯½åÈÄÞâ¶ü›öÑì•ނ۽įööäù¡…©â½áìçᑽͪ‘ôŽŽ¥±÷…†â™ÐøÙš…Ðï’ó°´Ò°·¯ +×鯵‰øõŸžÛ±Õ¨ž½÷¦éÒ½‰°ßæà똃ˠÆÉû‰”©ç­úÖûÏ‘ØË¢„öÊî›ïõ۾Ǭñ‹’ìÀÍ¥»û¥»Þ¢ã–˜Ä¢„Ò +½ªÄý’Õž€åíåœø›™ÿŠ‘ößÕàï®°ÒŽÉÒöû•¹´ýÞÝ÷œâÔ´¬ÓýŠÔ±Í±´Å‡Ø¾üŠ‘¨ÀÞ‰úËÃåñòŸïŸ…º¨òŸ©† +¼û»Ïì…ü«“ú̱ú‡Ã—÷âÂܺ¼Áˆì…Ü¥ŽÈÄÀ‚ï‚ûكЉìÅœ’Á•‘šõ˜Ղ؋¹‹ ºˆ¡ÌÁÈç«ö–üŸƒ”¨ +µ±Ñ÷¸«‹»˜ÜÏáþÞ „ÝöÂî’Øë¾šé´å°·üá£þÞ ÔÕöʶ§•˹†Ó° Ñ’û—»Èò‰ë¾ÿ«îȉ¾ßÞŸ¤Òòä³þÞŽª©Õ÷ +‡Ÿì•ϵíí¢°·ˆ©ì‘µŒµèÙ«†’¢Ò½û¨–£ÈˆÍÊù¶ÿ¯èû¥à¯‡ìíØÉ»ÿ¯©·åÛþýÛ§”‹ß––½Ú’Úö²ê›¹úª +È”ë¥Ô‡ËÕ¾ôÍåÛü½êžÌÝë±”Ñö¨ÛóîØóº«®¿ÙËä¾æàÆŠ´ö̰עÒïÔׯþ¯“½‹ëê¹Ä·â‡¢þ͛ߛªÇ¥ž­ +öø¥´‹‡»«Öê°—¨ýÛõ•«³ñР¡§‚ªãøï¢ûͺ¥Õþ¯Ú¬ ¼®ÏæïÕö×ÿ¥´¥ªõ˜âú¼Ä÷‚øÿÂÍí§û£åŒü×̫ʫ߫ +ÍÃÜÚöÊý‚Ýõ­ß¥£û¡µ‚ûÕù¿¢ÿ¯ö“Ô£úäÚòÀÞâÆ¶ûկѰ·ˆ³™Ø«¦Ô·âÞ–ÆåÎÞéü«˜Á’äóüù½Ä餦µÜ +ù©Î°æàÁ˜”ƒ±´èéß›ˆõÝ‚öº¨ãë¿—Éý×ÔÒÛ³’ÂÛ‚ºå‘§ó÷ª»ó¦ÆÚÛ”¶ù”靿ÄÛÈ›ð¿óùªŒûý¡’”Ëý½¹ +¿Ë“¦äª·Øÿï‡²Âøæ Ÿç±«‚½—‘¢ìõÖÇžô¾ÓŒ€ªªÞûü½¨¾ìòÆÙû»æ¬Á˜°É˘Ղ؋¹‹Àºˆ¡ÌÁˆì +§…Ü…Æ„©¦ „öÂîÂÁ£ŽÂˆÓò·Ÿ½¸®æŒ’—Ðñ»ŠßÂÿ˜‚ÏìíÁ—Œ£ž‰ºˆè¡ÌÁÈÛö¶©îÍò¸›œ«œ÷²Ûïë®è +«£Þª—ÆíþŠÈÕŦüñç» Œá²ß„©‰†ÀýÌ¡í㥩ó¼¸ûǶØïÍäïºõ«àÊã祿…ÒɼÍÔ¸§Üû Ù’›æÚ©ÏïÙ€½âÛñû +øÐÍë•êÚ˜ƒíØ”ü©ª»¯Œá²ŸÏêØ„Íé°×®ÆŸÞ¿ýöÝëú¼‡“ÙûȪåé´ä‰ì•Á뾲㨸–éœÛ–Ú¾£­¾®¾ŠåÛŸˆ +ˆç»ÿ˳͹¨ÁÈéԽͅ»¡æØŽéâ©§ËûäÉ€‡¤¶ß垦¢¼ˆŽ¬õŒ»î¬’õŽ—ãï÷—ÉÞÇÍÑÊû¶´Ú¼Òüº”•Ö«‰½É˪ +ç´ì•à«–´µ¬ÅÌç ½¶ëÒþÕîÂÝ€ŸÎºìÿÌÚ²ñÕÃêá¯åੇøàóÕî㌎êŒÔüí½éÒÚêɺNjŸ±—á—öé©Ä†Í¦Ë™øË +þä¯ãŒ£ÄðÛï¶“¿•Ïæ®’þô²×¬®¥§Õœ Ô„´û¥Ì‹ûÍÐõ†úàóÕî´á²…¦ßÆÒ™·øñö¦²©×‹½ÄíÆÑ¢›û²¦æ ÛÀ +’öÚÔÄÀ¢ÇØ›»ò“ØâÛ„˜û·®ö™ß¸öó¦§Ç·Œ¯ÿæóÿٶ熟ݺ¼ÞýÛÆç¶ïÚ¿ñÜ–çÿ°õ·çóÛߨ¹ã÷×®¯¾¸‹ +¿­˜†½Ìã–¦á×ýÆÑ±ÿÇ…·ö¾±©½ÂÔ§“úÕƒ ÿêåœÈ¤ô©©¥¬–ÿ¶áµéÚ©ˆá®ùžÐ²×›†úû튂½’µ’³ŽêóìÜÍ +ž¬Ã‹™Î½éÌ­¡áÄÛÓÇñÃÛ•ô™éÕÆí¢íáÕŒþïÖ¹­ó•¦ñ™ãˆÒ¶­–ºÇËÛö’”ž»ÁÒ¬ó×ÎÁ•«µ†úš—á¦ý „°… +ž¡ŸÙˤþ…Η¤âê‡û¡â²…°…¡ÿÙÒ‹ù£ÌÒ’„Ò¦ „öÂî‚£ŽÂˆÓ‚û¡÷¡Ñ‡ò¡„©ˆ½¯»Ð¨ƒÂ”Ñ„üæ¯®Žø +«¦òÿ„‘êÀ€ˆÓ‚û¡÷”雵¸ÍòÄ—Ó·èÚÝÔÎâ˜Ê¹ã“²«âìÍýÜÒ¨ï—ÏÜè…ÏÚçµÑóçÜšéԕ욇Éý—ª‹Ìù +á§ÒíÙÂ䝸¤’¥û¬¾Šá¡ÝÅ”£Ó…µ”Ÿì•Ï µíÒâÃÌÒ«õùœ°×Êôéž–‰ØöˆñøÍºÖ‰‡Ô˽ý¢ÌáâϰµÏ†í¿¼ +ê„“×±×ÞýÛèúÊÞž´è“…óóÄöœï걤©žõô•í“Åš¯Õ»§”‰‚Ú¥àõ™æ¹í¡ªÍìô銴’œâˆÔ Ô­Ì£ì£ö–¦¢û +¦ØÞËÍìèÁÖõë‘»¿Ù«Ë”öÌÁËÞšµÖê™Äœé‹‘¥¶¢»Éªš£µÑÛ‡—¤•¥½¤–öڎȾé¿ì®­·åòáâ½Þ—ÕÁ£ö‘³°ÕÀ +ÐÚ¢èÙ±ýëžòºª±«ŒûÕÕ¨›²ùÛûãÙ’ˆŠóÍú°ô…äâ¯ã´ùËé©…½¦¼ºÕöŠù¦²ý•“ÔéµË«Ò‰¥í¡°´²–ñÛÒŸã +‰óÑ󪔻¿‘Ù›©ã¼âÚŒ«µÊÄœâ‹ë¨ÁÞ‹Ìì•ÕÆœˆášå°­·œ™ØËÜæ¿ÃΗ½‰ùàݯçìíÉåÆüÑ—ÞÚûƦâŠÁÞ¦‰¿¬ +ˆé÷ö­­•ûîÍ­ÞÔ¶£Šßþߪ•þÚ›×€ßÎæÃ¦ÂŸ‘¦•“‘›ÏÕãç§ûÏ™¢Ì¿òâçÐêâ™ÞÌôî Éëͬêûˆ®Õ’½ßã +¼æé§¢ˆÒþŽõ«ð·Îí¶ò²ÿ§•®ìì›•ìø™½„³‰¸Ö©­®«¨¤ê‘»ê°·¦¯©§¤Ê°à¹á¤“Ø×›Ÿê®ÔÝñ쇃ó”¥Ì¢õ½ +ÒŒ“ÖÕØ„«ì®’‘­ÒõᾬÚÕö«úÕ¸áÒªª±¯ó™½ï¤€­ÁˆáŠÂàү䮴ꠄˆ°…¡°—ò—¶ïÔ‘ÕÝÝɈìÂà¯ä +®®‘½ôåúßë’æëû•œ®Ùö†¡ŸíÙ«õ¦œŸˆ¯„Š“ÈÞŠÜÐîÑàï×Õ±¸ëíÕ•çìݤ¼¡–†þ»«µôûƒæïܱ—æäÁ +‘¯ú‹·”Öíµì•Úïªß¦é©¶Øä½ã™ß’ÁÄ–”°þÿ¯ý°›Âä¶Ò²ÎŠ‹½¤ÜƒþÁÞìêïÑ÷¶““ÃŽ­”î°³…ªâº”•ûÕÊ”Åî +矤ҪèþÞ‰ìÄÅÓ“•ÂûíªËïÊ¥ô¥®­£®®›¾µôäê£í¡¿×®ϻ´üêÓçʥ߫ðÆÄú–µ¶ÊâýþÞûó°ÔÚ Å×Ûˆêò +Ö„±ªÐØ«ÊÎþ¶¨ÍÖûæ ¤–¶á¼ý±ÿ®Ž´÷˜‰à¾•ñëÒ¨‰ó²Ü¤üÓï÷¶üšÊñþÞÖ˜Ž­Ë’ï®‚©§Ý¸ÜÕÿƒ½ÄÐ¹å‹ +àÈû›·­ÒæÇöÆÞçéÿ—™å½Ü‹øáýµÎǸ˜òÁ˜ÞÕ…Íß«þïñ™ÚšÔƒÔ†ðììÕó¸ûæ­åÃյ؛ʊ§°×ݱÁž²Œ¤¶û¹ +«ÒÍæíåÚ’‰ËÁÞ¬ªè›þÞÄÒšò¬ä§€ØÛ™öªÇßÅÚœéÅ—ðœµÝÙú½½ì°«÷úò²É–ôçìµµçþúǧ©‚æïÎõ﨤©©§ +¢±æ–û‰ƒæõµÿ¢É…Íâ­ºíéí¥Ÿ‰¿÷ÂÚÇ­ÈÒÁ´Ä¥ê—„éïÂÒĦ²â«Õ¼»Óöùºûµ¹–Ƣߓ©¤´•ˆ×áÚ‚ç¯Ô‚ì +ü̵ØÛÞºö‘¯’•ôü½ÕöшªÉóö•šÔâ‘‚Úò®á¯Ú³Â¼Ê¶ÖÐÏ”ƒ½¾õ°—ò͉ìÕåþ×ëí³¯ª‚°—΂û¡˜÷¹ö¨ðÿÊ +¤÷…ö†¡°—Àò—šõ˜Ղ؋¹‹ ºˆ¡ÌÁÈÿÃöâß×ÿäûóâ‰ážÏ®ò«èëíõ‘ÏÿìÅŒ£¾ÉľÞñö¿Å˜æß¹ÛÂü½ÁÈ +ŠÛöæœñ”ª¤Â®ì¥ÉóüŒÊáÒÆ«òþðàŠÒÕòü½ÛÄ­»¨ÉòÏ–½‘ð´ËÚø™Ç‘å‚äÈŒÞâÆ¯˜šËó‹¶·öÄ×®ßîÎß‹¨¹Ê +þÏöЧÊâô泎Šýªµ‹Í¥Û½¦Ïµ¦•‹û­Ý í»Ž¶óåÒﵨìÂÎ×°šÝױØÍÛ׿ìµüäžÕ¤ˆ˜ç‡Ð—Ö•Ó®çý +û•ÈÞ÷éæÔâÌ·ïɹŽÊ×®œ®á´Ëïž¿—èÚ–¶Ûõµ—Óõ‹÷”çìÝÜÑŒ›£ê—´©­“ÀÝÌÍý§Óùëú¨èöÊ™‰¬°µŒËìª +ÞŸÍ’çï•‹âé›Þ¢ûÕœôºÄÊóö’Ž¬æœµôûÕ£…€óÀÝàùþÞËá˱µè÷þ²—¨¦§Ìâ´³ŽÊ½Ñ÷ï÷Öóÿ Ÿ÷å䯱‚ +ȶ•ûµë‘Òö–¦ÚƳ»óÙ÷º—“Óõ‹ÜÔì•ìþ‰™ÄÝíÉÂÈ­«îþ–¤‰‰õÔöö’¡ØñâÛâè­ÚÿàÛÕ‚“¥š„ïȯõ‰æÉó +·÷’öÈ©™Òñµè÷ÌÞ²—ƒðƥ؊îÁÚÒ·ÐÉÐ÷ ÊÜØÛ²ê˜Í®Àçï­Û¤ü¬æ¯“ö«µÐ³Õíœð—˳ŸÅåÇË®šÆš³ÐçŠë–© +ËÿÙ‹ù£ÌÒÊ’„¦ „öŠÂˆÀÓ‚û¡÷¡Èч¡„©ˆ¿½»Ð¨ƒÅ”„ü毻…ÆÍÃÝÒ‡™¿™ÔæîÁÌ…†Ë¢èÍþ‰ +§ì…Üåâ¯ü£÷’ð›ÓÉûĈ‘°·Õƒõ½ÙúÚÀƒ»·Œ÷˜É÷ŒÚ°ã¡­²•Ñ®ª²åâ²²×…àâá÷éýíÒ¢ÄÐÏöŠ‡Ý¨éÕÊØ +ºÓĕ瀻܅Øë¯Á¬àé÷ÑöÆŽöÚ¥ïÌ穵¥Íè÷®æþ€õ¯¯ìí±Øý”«¦èë»ØÚ󷠪ϭæ«ä½öÚñ«íÇꈻ׮ýÞí¯ +âË⃫̟͕æÔÉŠû³½µ¦¢„Ãå¿Ã—Äâè÷þ²ÿ—©ãÿ’Ô–¤ëï­â£…¬´ò⯙¿–®Ä®é΢û혭ÚÌ»äÔ̪¹Ž¹ðœ¢‹ +銶öÒ¢íŠö„í®ÂìÕ¾›µÐØÜж¹©Êñ­ÍŠÙ°íæâëÕæ§»²—¨«ÊǨ¹»ûµ¹â—ោçÞÌÛôžÌìզ룿ÍÙ«´ážµ­ +šÊËÞ—¶ÌðÊŽ¤Ñ½æ¾Ñ²×úÛù¨çš¾Þëê÷êå—¸×Úôýñä«ûû²÷›ªÿ½™åÕ¿é¿¿ŽÃ´Žê˜Ì‹ÔüùíÚÄ××Ř +žÃ¾ã½‰áòꮦÏ×Ç…±°÷ÝôÀ÷ï±ã“¨ë¸ÉÚ¶ìˆÙ¤þ ‚¬Ö¤öŠë‰ï‰Ó¡µÊá•ÞÕîÕˆŽºü·„éÂòΕÔè˜ÐƒÑ¢ÈÚ£¥ +œæÊբݱÕóƒ½Ð¹Ò°—ýèÜ϶äð€ìÅ‚û¡÷ò¥÷û£€·ûü‚ûƒÏì…€ü“¦é‰ÂˆÀÓ‚û¡÷¡ˆÑ‡¡„©ˆù‹ÇÞ×ï“û +¥£§ÇîêÛëœã‹Â¿·¥‹ºˆ¡ÌÁ¨î˜öêÀ‹ö–”¬´ê „°…–¡ßØ«ÞÍÄÖÅÁÛ„¬ŠÞÍ­÷‚½¥«Ð¬Ÿá¬›¦ ¹ä›û‰îÎù +•Íýƒ”¼àïûéÒ¶êžžžÀÖ ¢Ÿÿü¼Üïì×ÕÞ­½¶Áî«°·ãÓȾàžÎÌÉ꣦¦­º™ÒîòíÜ­ê—é–û©ûŒºÈÊÔ– +‚Èæ°éûÚ‡¹¯åþ¾ÔÌ–ž²—˜žÇëüÆè‚º¹°×±®ª†¼“ÔÆªñÇÈš­¸†îÈ­‡¬’š•‘…ž®ìÕ«Û„˜²†©ÌöÁ¦ºŸª¦Ù +ˆ«þ¶ÑׄŸ¯Ž½š¡‰Ã˜—Ú¨Óöª½ìêÚÅ€ç’úÔì…ûýøñþâ–ÙÓøç¶Ûǡѓö˜™îÞÕ–²„轃èÏ©˜ò¯“Ø‚ìÍŒˆ +¦íдÖÒììùçÃûÉà£ìÄ¡û×´¤¶´®ÖŽ™½–Æêɼ±¨ùªÂÆØÌ‡ÄéšµèõøÁ’úü‰…ÒÈÅÌ­„Ü;ÌÅ´Ë‹­Ç˜²‡É’Éê + êù몣ÅÖÐݺԉڲ˜šÑ®Š½Ó»œÇŒ“ÖÕ‹Ó¹Ö±‡õ‹×óôÕɔƂ½Òö™šµïÍÙÿ•ØÖ¤ÌŒìÌÕóÔ°Ö²Äóù†É䦨  +¿ˆµ‰™ÖÒ¶¦ÕíÖ­¥«‘ìåïÙû‚‰¸°¹ûÙûµ¶£—¯éáÑëÕêÍø™²®ÊÔõ¨Éû¿³ñ«ÐÂÛÊ«‚ûÄó׾ᲵŸ¹ÎšØËå§ +ðûßè –—ò¥¤Ñˆ•½¦²¦‰þïŽÒߕđÚõ³éÇùÜë˽¦ÿ½ÕœŠ©ãý˜’Ù›ØÄ쬽áÓ¶’χçá­œŽ±ÊÞé²×òÛø¯¡ +­ß›µŸÈÒ‰¤à¸£ˆ¡š˜«½ÚÙ›µä•÷ûÌÌíÔ¬¤ìª¯¶Õ¾‹‘ü­ÉꛕÓÍÆ°™ð¨…‚ÙèâçÊÑ’ÕÂÔÀþ¾Ì¤‚ï²·ì•¥é +å÷ª§Ô‚Œ¿¿•ÙÞœ½Š›º£ÞìÚÑÀŠ±Ì™•â”Õýä¯å¼—ê¡¢ÂüصÄÖ©™Ñ¡†©£ÂËŒ²ï쥓§…‡ú‡Ã·Ž©Ô¦ÌÒ’„ +妠ä¡û™ªùú…´Ð¨ƒšÂ”„¼å¯ßä¡Ð¨ƒÂ–”„ÀÞÈÝèÁÔÁˆáŠÂþ•³—ƒþˆ¿Õ˜„¦ ä˜³û±ã¨ï£ŽÂˆÓª +ó½ûõÄÞ´¶³ŽºôÕ»›´¡ÔÊ¥ÑË–áÒÆ¢²½Ž£ãúÜÛ핱®ÌÚÞÖîëÛ¹ŸÂÛŽö™È»ùËÞÈøä®¥¯™ÇÁތҦŠèýŸ +íªé­Ä£¯…¥§å‘¥Óܥ̨ã˜Êä滋óÁøÛÁžùô§¿Ù«‚·ã¼™Ç¥°ª’–­©¥ÕÃÕ§’™³ÈéÔ½–Ó««ëƒÇµ¡éÕ­ì­Óü +§­äñ÷Ծᒲµ”ËŽå­šËìÈÒù ”Â뾆åÿÙ¨ë˜ÞÐÊËÕûé” í烔òÐËÃÄŴ«¤üÿ™Á•²Í­Ôª™ÞÔ¦ÊÇßÑÙ +×Ôªµ©¹ö‡µ´­Ïªæ¯òÙ¨ûÎÞŒ¶³Žšò²³×ŸÍáìµ”Ýúų×Ê쌽ÕÚô­ÔÄø¯ÈÊã©“˜¢˜îØÆ´õÔ½ ‚å¹ûÉγ +½¹¨ß˜Ä©“ìÍËÅ׌÷Ú›ËßïØ´–©€ØÛáÍëí‚þ³ÌЏªþçæç¯¾§­ô¿šÓ€¥åœÈ¤îßÓˆê¢Ëùʶ³ÊŒªâ¼×ž +ã¸Äœí½‰Õ‰š÷ÉŸŽËÁͰײû½æÒœ¹ ¾•Γû‡Ä…„“ïͽˊÐÕнæ–Èï½µ¬êÌÅæÕªÑª³ª šûÌ’Û—¥Ç³Û¾Ì…ìçƒ +ͩʔ½å¯á¸Ñ¬…¾ëÒß÷ŧ½Ë߸À鿈¡ÌÁÈâçö²é»´ž²ˆì¥èÔþ‰ØáŠÂþ³—ò†Ç˜¤¥ˆ¡Ì¼Áˆì…Ü…Æê„¦ ÄØ +û›Ö„쭥Ы¨ƒÂ”„¸þû¿»ð¾¿ýëöÝ”ƒ¦Ó¥¥´ŒØÛç¡Ñć¡„©ˆ±öšÒ¨Ò¯éœóÛ¼ÕÛŒæÓ§¥¬˜›û×ÅŠ‡ÜÖùëíõ +ˆÓÿ„±Ä¡¼ÌÁˆ±—öéè©Úÿ¹âÌîˆÇÖ­£¥Ë㮯æïõÍÚÆ•°ù¦„©ˆö±öƠݼõ×¾å£ö¯Û·µŠ¡—”ÏÞÔÃó÷Δ̸ +‚ÜδôŒ¬Òì›õÇÓ¬‹™µ–­æ’Óº©¢û˜¬ï“ó¡œÇñöÒô¯žÖ™±»ÉéÒØè›‰Ïˆ¥ÎßÎËÚÏ„¬ç‹Ð»–ê¨µÑ§ŽŠ“öغò• +È„ð׎áÒßʦæÃŽêçïÖ°õô¹óØ‚¯›ç”ÆÞñÔÅéàþÞ±ß삵‰‰µßüõ꬯…ˆÔ›áÛ›¢éþ–çšÄòü²ÑÀ¦ˆ°É‡œŸ«µ +âÒÚéãÚ¾²úǾ•ŠˆÀ“ÉêµÕºÏïË‘ÈÞňԨæ™éšÙÌž©•½Öá…Íœù릮®”ûµ—÷¯“èžàÆ÷¹¿ý¦ˆÑ爓¶¨’ +™­µ¸ÇÔØò¤§Ã¹ò©”ì½Ì’ˆÛ²çù¹’ÙûƒïÒÁêŽÛ©àÍݾû»›¿Ò×ÍÌì§âŽ•©çåÞƒ¶Çžø«îªœÖó¦ü©ÑçŸæ +ÉÙþ€µµô´­º­Ç磟ÊÒ……ÉËãÊžßç娽ƒÌꜹ“àíæ—½ÏÞÒÑü½ê´æªöºÖ“¶üÇø«îªœöó󜴵êκ„ö–¤âÂä +§Ï¯ÌùގăöþüÉ¿·‡Û¯˜Ùöµ¶áÏßËÒðÔ°—öʽâñ÷­©ŒÐ‰œŽÂ‚ùßÌÿ‘Ç̹ÌÚã캀«Úò¹²·¬£™ŸÊ¹†‰¸œ +ÿùêçå¨ñ½›Ä·ÀÛ–åÓ­öÊö¿ÇöÌÊ‘š¸¥éÛëÖϺñ­ëéÌìß§óÖÐÌñÁöÆÂ˜¦ÈÐÛ†Ң„£ûÌɹøÇ¾•²‡É +çûÖÔŠÈåÎÙóò¤Þßûÿô£ÏÙÝæý½©„‡Ô°”âî±ÉåŸÒí§Ú›ÖƒÏ©‘áò§ÂœÃÔæˆÃ¦¹ò©ÔΘø±µéЧçÔÇéâóí¿Ùù¤ +ùÝ¥¿×Ƥíð¬õ×௪ŒÊáê֔ùòµ©Ôæ³Å•¼—ÏË‘¸ŸƒÅÖ«íÙêñÈóßéÒ®Ìç€ùÔ£ÌÒ’„¦ä Ôؼæë¢®ƒÁÞª‰º +ðˆ¡ÌÁ¨°ùòûÁÞˆ‚ ü¡•¯ûᘆá¦ÇçÅÞ˜†á渻ÁÞ˜†áÍòö°Œ—ªï°—†á¸ü³ƒ½°ŒÃ団ì…ᘮßà”¯ŒÃðù†û +ÌᘆË÷Úöæ®üÁü˜®žÜ‰¡Áç¡îŠóݬŨ£û³»þýùÛõåØ×÷©’û¨Ü·§°÷ÚÚ­°—®¹Ã䨳ˆûÜ·ƒ½°Äì÷ˆœ‹ñŸ +µëæ°—†íŽ©‘ã¡îóÝŒö°ݡò¬Äý®›ÁÞ˜ù¶»ÄŽ…¸ÏÔõ³Ø‹Ãö‡›È±÷¹î†ŒûáØî¹–â¾×ÍௌéÛ¢ÇÂÜç +­º™ì…á»ÃÍäØˆûÜ·ƒ‘½°ì÷ˆœ‹ÖñŸëæ°—†¥íŽ‘ã¡îó½ÝŒö°ݡôò¬Äý®›ÁäÞ˜¶»ÄŽ…Ã¸Ïõó’ûלŇÞîÈÞ‚ +ØÁ•Õˆçùˆ™ûÜ·åÅÞ˜™†á¸»ÁÞ˜·†áòö°ªŒ—ï°—†áݸü‡ÎÞë¿øò§ŒÃ°·®Ä°û»ý™“‚¨ È¯°—‚ ¨ü½„Á +å‹ì… ˆªÆßù²·ê—˃á¯à¯„ÁÖÓîìÍ•ö°ÂÔϹ³÷Šï°—‚ ¨§þ¥³÷€Û²°Ðךó‡£ÀôÞˆ‚ê«ÜÙ–«ÑÕ´êÛ‚ +²þÁÞˆ‚¼ÕË™ýÞõʜ؀‹Áнղû‹‹æ­Ø‹ÁÐòê–ûÑï…ž ¨Îµ¶ˆÏ‚ ò•¯û½ò²Ø‹Á·Êב½‘¢°—‚ˆ È«ôû¡ˆ +‹‚Ê—Ø‹ÁÎÔ¾ªÍÞ˜†¼áïíÈÞ½¦Í¯Ž‹½°ŒÃø¡ºæïԵ ¼æà¯ŒÃðáá†ûᘆËʷ؋ðܾ¹ÁÞ˜†áòĺû»þ‘“† +öáØâг·Û¢÷ðÁ„é…áö„å×’øµÛî¹»ÏÅÁ´¤û¡ˆ‚òƒª‹éÉ¢‚ö„å¡öÊԇ׻¸Òˆö†±™Ýî±õ­”©å« +ÈË¡ˆ‚ÄÑ¢Çþö‰±——×óïíºõ³³×…þ–‚ È’¥¹êïžÛèâú‘²×¥­Ø‹ÁèÐöÑ¢¾ôè–ˆóô¹óøÚÕÍÉËÞ÷ùÌ®¤öª¿—¯Ž +ðÊ”±Ì‘‘½™Ú±‡¾Ÿêɦˆ‚ê¬ÊÔßíÿ▙¹½ÕóœÙ›úªŽÉÄöÊ‹Š™úÍ•½ªòìÉÒ¿×´ê«„²¹Ï¨Â”Áš¨ÑŸÜ¹È +¹Ìá«¥™½âØï‘×èŠà¯’¨µÎˆ‚ê«’ÊÔ‡Öôóó䲋‹¼âïÒÞ¼Í䯉žžéû½Ú„ÝÕÖ”¨‹ŸÙÖ šƒ×ʯ‹½¼ç«®­ó +¹ÌÁ¥¤…«˜’ó€ ¨•¨ÑÅïß¶Þ²…¯šÙ²û¥ŽËÅ˹¸”Á‚Þ‚ëí„™¾Ä‰úË¥½®†®Ž½öš—´çÂÈÞˆ‚ Å┹¬Ùí +×âÜÙ›™åïæ•ƒ½„…®…øž³¥«Ý܆濷«†û¡ˆªÍ…Ìㆱö„å¬ê•³—†áØÛד•½°ŒÃ¡š£ì…ᘮߒ¶û÷š‚ö° +üŒ—ÓִƇ܎ö°ªŒ—æ°—†á͸üƒ½°ŒÃå›ì…ᘮÑßௌÃðù°†ûá˜†Ë·ÝØ‹Ã°‡þâÑч׮»ïéêïï‰Ôôçé +ÒǰüÀ°—†îÃôƒ‹ÿòß—ÿïß–þàþæð¦»Í÷Þþý騵¨ç̽ÿáÈÓ¯Ûÿ𞋃óÔ³¾ûÉçøòÑÇóÛÌŸ‘ì×…áàÌÙŽ +ÿöɇûׯè×úΤ²ÝáºÕÛìÿ­Åè§¿‘‚—úÁ‡×»®ïŸîöŒ¸óéÔ·°òÐ’èÇ©û©ßع‹Ãô™ÁÞ˜ŽçδëȉÖõ·ÝèØôçéÇ +½°” ÿ³Óžè¯…ï·¹Ú¹¶îºù›´÷Ëæ“¦ÏØ™öÞ²õׯ¯¿ü«ãӦݵåÊřǜóõ•×þ·õèúÞóù¿ïðˆ¦ÿ¹‡×ã•Í÷ +¡žþ„ËÊÞûúŸ»íñ¾øóâ®Àýë­ß½¤Ÿ¡òì·ÿïæ£¾ú‹æßüÎÝ÷Ý÷ñ«ß½ü÷Ý‹ç¿ô¥ÿ¹ê¨Å«¾ÿùÛü±œï𠶃«ˆ +¿»°—‚ë…—Èö†êúÓ±ª·Äų̀ÜÎâ»íó½ô¿ÜϾùäïÿÿ÷û§žúª····¯¯ïùòÇšéþ—¾ ‰ñúé¿ðÔÙ¾™²þ‰©——öó +žÎ¹û°Ã®óîñ×÷³„ׇ۽Ͽÿ‡Àí‡ÄÞôóÈæ¤žÃŽÍŸþ»Ï²û•œî¯ù›üÞ•÷®ýúÿíÀÀÀÐÐÐݪիéÒûîÇ‘ïôÐÿÀ¹ +ûˆ³ËÚ·Þ†ÎÜö­Ìƒ˜à©×ŸïèõêÙÕ뚢ßåë÷ׯ߰¡‘‘Ž‘°×½†îØ¿‚çïŽÏ§¥²ØïÉ»îîâͩʗÁÞŸ´Ô²ÿšüÆ +ôßþù×è¿óÔŒîßù໳üÿ²ûšÅל·´à¤»–ÜÁžÛâØØØ·¥Üö͵·ª»ÈЂûÅýãàèè褡˾ˆõðÈëà‹ûÇéñ¤ßçÚö +£æõÿćë–î—¦ŒÀä«ó™«ÂÝÁ¯£ûÍ·ïßæîúÀ€­ï³ºííÅß³×Å…²÷Úß´«îºë¾Öÿã¥àýñÀ¸ïÞ÷óõ݆ÿÄ¿Ÿ±´º +´¾¾þßýÔŸ÷ÜÜíŽðÃݸ¬¶ÒñÁ­Êìûó–÷¸Í‚ïâ¾™²ñÕ½Ñ÷Ø´«ÄêÕ‰«úåʳÕÕÑê®Ý»Öìô޵äÌâïâáõñÅ +ÁØ«²ÁúÛŽÖÙ»í۳‡¼Õù«毓½Úêéך³ÚÑâеÅÓ¦Üü«ßü½Ì›á½Ëïñ¥½Þ†Þ‹–ÖÝôî…ïÞÑ»âË–­«Ö +¬¾òÈÏè¿Í‚ý£¦²Ò¾®åŸù¾ñð²åöÒðîéÈ´ÄïªÕÍÛ×ËÌèñª¾õÙÑœ·Ó®²î®ƒø¯Ÿêààݸüñ£Øë¸º–§½Úˆ©‡¥ +Ѳָ²÷릳›Ý͸©±ŸÉ¬¦æ¨å¼Ìë¹»´ñÞ¸íÛ¶©Š¥Ûý̱×ßýÙ÷⊷߿ý»û“–œÄÀûùÒç½ýö·÷íÛ¶í +·þû—Úú–Úž‰ŸÎÂޭ椵û¦Ò—ƒÜ·ñß´ÇÜÝú™ÓŽ›Žª…Ͻ‰ûÐÝÓ®ÆÒê²ÿœÔðþÒÑ£šŠ½ÚïÓØ”£½Õá èóò¿ªÅ +‰±×šˆÇ§’¤ê本ðä·ï–Íãî¦ÇûØ¥€‹‘”£ß–±ä¸¸ öùªçò·Øû‰äÏüõËßú—³¾¾¾Š·ÿÜÛòŸÇüû‘´íÇËÁûßý +þ—…ÛöíÛÿ·îïþõîÜÿë´ïÀªÏ¡’íÊåߤž¯ã½¾Éù¦±Ÿ÷ÛÄýˆ½´½»«‚—ôòÿ™Ø«å§ý󨦞“íÔžÇäàØ«æÊ +ꃳœ†âµžðœ¿‚çïø¦äÑ÷Ó£ìÊç×’Š©¹êª¦¸²öמ½´ãÂùÔÑ×­ßþ–¨ëüŒŽŒ®•ïÝÎú¼”îŽëÖ¬§Ë—­¦úȾƒ™Ùë +‰Úçéߘœ¸¬øÝöÍôœÝâöØÔ¸èöŠÜ÷µð£ºñãèÆúÔ·¶äÞÓïÕ²ÙÊÉ˸ÞíÎè앞•×ÒË”ñ‘¸šûÇÆ‡ÝŸáë¦ËÛóÌ +øÕé«·¸´ûôœ²²÷¬½©üýõ·œö‹ÚçÖ­Ú½¶ ¶¶¾¾®Âí÷ÆŒÏýñ‹ßáµÿ„õÿ´­úÏ›ÈÜçÎöšÍË„ÇÝȼû¶©ÖôÊ”« +ÒÚðÒÑê¾ÛäЪöÚÊ‚½ü¢ûÅ–ÌÞÓÑ‘÷Ó£¬™¾•³óÊññß™÷÷º·å•Œ­™Ï̯üá£þÑÇßýÛ·Ý÷ßëÖÿ¬¾ÿþ¥ôß +¾ùÚ«Ô­äóû¼ïá™±—ýÝÍ©ËÁûœÜñ׎ψû½®«§þÇݧõî÷÷ê¯ÅµÉ™ã“㼂å²÷øèêá‹ì±åÊ‹¤‚²êÚÒÉÇ— +î½æ£³žœï÷Üóàµ×ÜÒøÜñó¼òš“ôõîÜÿÔ÷ÿç›Òª¸û–ñßÊ…óŸ¦Ü•¯¬ñÉ¡††Þ¿´”³×µ¶‰›ÚÀͨ¥¥­è—å +âÜîÈ•Ç’êøµê¦Ø’¿ˆ•—•ñ‘¸ûô‡‡Ö‡êÜÙàÛ„œÀ˜ØÅ¢û©øÙ˜Îø¢ûý°ŸìÕüÖÛÚ¾ŽìÖØðô Ž¨Åß‹Ãö÷°Ÿ +ŽÃùÿãÈ®èšóމæ›û•ŸÚûØ †ûÚá¸ú®Éœ’ˆýƒ£«ŸÛ’憎÷½ÛœØôû€Ø‹ÃÁ¸äŽó§Ï½ë³­ùôÕ£Ö„ê¯ÿëÛÇ +©žý½Ø‹ÃÕðòþ³ˆýæ±ÎÍ·ÿãÖÛç¿éò³ðþ˜ñöø©ø¯¼þç›Ôêï†Ýóÿ³ïßó³ÛÇñÀÞ˜ŽÓ•ÿ­ÌÁþ§©ûÎéï·ë¿üÙ +Ýé—‚÷ÇüóÛÔßÊŒÙôû·Ø‹Ã°§Ï¦Ô¢Æ’¬·èΛþ¤˜´ä†¢ÀÞ˜†áòö°Œ—´ê¾Æ»†ñÞ¾˜†á²ÌÆø‰ÙЃÆûᘠ+¡†Ë³ÑžÄ†Øûᘆ˷غ‹Ã°œ»µã™¼ã˜ï…ᘦ®Ò꘯Æûüᘆ»ë¾õ¼ëÕö¾âŒ‡†ß½Î›Íô鼺ŒÃ°œÖþ”¼ïü¥ÈÞ +øýÎÜóò³ž¶þéÉÏþɇØ×§ºš¶®Á§´þÒ¼­ÉÓÙ×¹¸¯ýÉÚÎÐâÞÆÎº¼¬ùá¼¶”Ï ½®áª­”¹úíÈ¥Üþœœœåž½òŽÌÞ +½Ÿº§“óý«å¢÷ü¢ºðûÀ±ûßõç¼™¦äìÛ§’Ùý›»ƒóÚÖù¢¸¯¥þêÜàªñ¼ú‡ÜžûàÜÂéàÄøññ®Ÿú€œ¨¾Ñù¥ÀÖ +—™‹½ºó»â羟§Þ÷¯œŸ¿Â´°ŒÃ¥úÿƒ™ÒšÜ +&] +[s2; &] +[s2; Dialog for selecting files or directories. &] +[s0; &] +[s5;K:`:`:FileSel`:`:WhenIcon:%- [^`:`:Callback3^ Callback3]<[^bool^ bool], +[@(0.0.255) const]_[^`:`:String^ String]`&, [^Image^ Image]`&>_[@0 WhenIcon]&] +[s2; This callback can be used to alter icons for files. First parameter +designates directory, second is the filename. Client code can +alter Image passed as third parameter.&] +[s0; &] +[s5;K:`:`:FileSel`:`:Serialize`(`:`:Stream`&`):%- [@(0.0.255) void]_[@0 Serialize]([^`:`:Stream^ S +tream]`&_[@3 s])&] +[s2; Serializes current settings of FileSel. That includes current +directory, currently selected file type, size of FileSel window, +LRU list of visited directories and `"Sort by`" switch state.&] +[s0; &] +[s5;K:`:`:FileSel`:`:ExecuteOpen`(const char`*`):%- [@(0.0.255) bool]_[@0 ExecuteOpen]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[@3 title]_`=_NULL)&] +[s2; Executes `"Open file`" dialog. [%-*@3 title] can specify alternate +caption of dialog. If user selects a file to open, returns true.&] +[s0; &] +[s5;K:`:`:FileSel`:`:ExecuteSaveAs`(const char`*`):%- [@(0.0.255) bool]_[@0 ExecuteSaveAs +]([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 title]_`=_NULL)&] +[s2; Executes `"Save as`" dialog. [%-*@3 title] can specify alternate +caption of dialog. If user selects a destination file, returns +true.&] +[s0; &] +[s5;K:`:`:FileSel`:`:ExecuteSelectDir`(const char`*`):%- [@(0.0.255) bool]_[@0 ExecuteSel +ectDir]([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 title]_`=_NULL)&] +[s2; Executes directory selection dialog. [%-*@3 title] can specify +alternate caption of dialog. If user selects a file to open, +returns true.&] +[s0; &] +[s5;K:`:`:FileSel`:`:Get`(`)const:%- [^`:`:String^ String]_[@0 Get]()_[@(0.0.255) const]&] +[s2; Returns the path of the first chosen file. If there is none, +returns empty String.&] +[s0; &] +[s5;K:`:`:FileSel`:`:Set`(const`:`:String`&`):%- [@(0.0.255) void]_[@0 Set]([@(0.0.255) con +st]_[^`:`:String^ String]`&_[@3 s])&] +[s2; Sets [%-*@3 s] to be the chosen file: if it contains a full path, +file selector goes to the directory, filename is put into the +file name editor of file selector.&] +[s0; &] +[s5;K:`:`:FileSel`:`:Set`(const`:`:Vector`<`:`:String`>`&`):%- [@(0.0.255) void]_[@0 Set]( +[@(0.0.255) const]_[^`:`:Vector^ Vector]<[^`:`:String^ String]>`&_[@3 s])&] +[s2; Sets a group of files to be chosen.&] +[s0; &] +[s5;K:`:`:FileSel`:`:operator`:`:String`(`)const:%- operator_[^`:`:String^ String]()_[@(0.0.255) c +onst]&] +[s2; Same as Get().&] +[s0; &] +[s5;K:`:`:FileSel`:`:operator`=`(const`:`:String`&`):%- [@(0.0.255) void]_[@0 operator`=]( +[@(0.0.255) const]_[^`:`:String^ String]`&_[@3 s])&] +[s2; Same as Set([%-*@3 s]).&] +[s0; &] +[s5;K:`:`:FileSel`:`:operator`~`(`)const:%- [^`:`:String^ String]_[@0 operator`~]()_[@(0.0.255) c +onst]&] +[s2; Same as Get().&] +[s0; &] +[s5;K:`:`:FileSel`:`:operator`<`<`=`(const`:`:String`&`):%- [@(0.0.255) void]_[@0 operato +r<<`=]([@(0.0.255) const]_[^`:`:String^ String]`&_[@3 s])&] +[s2; Same as Set([%-*@3 s]).&] +[s0; &] +[s5;K:`:`:FileSel`:`:GetCount`(`)const:%- [@(0.0.255) int]_[@0 GetCount]()_[@(0.0.255) cons +t]&] +[s2; Returns a count of chosen files.&] +[s0; &] +[s5;K:`:`:FileSel`:`:GetFile`(int`)const:%- [^`:`:String^ String]_[@0 GetFile]([@(0.0.255) i +nt]_[@3 i])_[@(0.0.255) const]&] +[s2; Returns a chosen file [%-*@3 i].&] +[s0; &] +[s5;K:`:`:FileSel`:`:operator`[`]`(int`)const:%- [^`:`:String^ String]_[@0 operator`[`]]( +[@(0.0.255) int]_[@3 i])_[@(0.0.255) const]&] +[s2; Same as GetFile([%-*@3 i]).&] +[s0; &] +[s5;K:`:`:FileSel`:`:ClearFiles`(`):%- [@(0.0.255) void]_[@0 ClearFiles]()&] +[s2; Clear the selection of files.&] +[s0; &] +[s5;K:`:`:FileSel`:`:GetReadOnly`(`)const:%- [@(0.0.255) bool]_[@0 GetReadOnly]()_[@(0.0.255) c +onst]&] +[s2; Returns the status of read`-only option. (Usually this option +is used to open files in read only mode).&] +[s0; &] +[s5;K:`:`:FileSel`:`:GetActiveDir`(`)const:%- [^`:`:String^ String]_[@0 GetActiveDir]()_[@(0.0.255) c +onst]&] +[s2; Returns the active directory of file selector.&] +[s0; &] +[s5;K:`:`:FileSel`:`:GetActiveType`(`)const:%- [@(0.0.255) int]_[@0 GetActiveType]()_[@(0.0.255) c +onst]&] +[s2; Returns the active file type index of file selector.&] +[s0; &] +[s5;K:`:`:FileSel`:`:Filesystem`(`:`:FileSystemInfo`&`):%- [@(0.0.255) void]_[@0 Filesyst +em]([^`:`:FileSystemInfo^ FileSystemInfo]`&_[@3 fsys])&] +[s2; Sets the file system to browse. Default is normal local file +system.&] +[s0; &] +[s5;K:`:`:FileSel`:`:GetFilesystem`(`)const:%- [^`:`:FileSystemInfo^ FileSystemInfo]`&_ +[@0 GetFilesystem]()_[@(0.0.255) const]&] +[s2; Returns the file system used in file selector.&] +[s0; &] +[s5;K:`:`:FileSel`:`:Type`(const char`*`,const char`*`):%- [^`:`:FileSel^ FileSel]`&_[@0 T +ype]([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 name], [@(0.0.255) const]_[@(0.0.255) char]_ +`*[@3 ext])&] +[s2; Adds a file type displayed as [%-*@3 name]. [%-*@3 ext] contains +a set of file masks separated by spaces. Example: Type(`"Source +files`", `"`*.c `*.h`").&] +[s0; &] +[s5;K:`:`:FileSel`:`:AllFilesType`(`):%- [^`:`:FileSel^ FileSel]`&_[@0 AllFilesType]()&] +[s2; Same as Type(`"All files`", `"`*.`*`").&] +[s0; &] +[s5;K:`:`:FileSel`:`:ActiveDir`(const`:`:String`&`):%- [^`:`:FileSel^ FileSel]`&_[@0 Acti +veDir]([@(0.0.255) const]_[^`:`:String^ String]`&_[@3 d])&] +[s2; Sets the active directory of file selector (directory where +file selector starts).&] +[s0; &] +[s5;K:`:`:FileSel`:`:ActiveType`(int`):%- [^`:`:FileSel^ FileSel]`&_[@0 ActiveType]([@(0.0.255) i +nt]_[@3 i])&] +[s2; Sets the active file type.&] +[s0; &] +[s5;K:`:`:FileSel`:`:DefaultExt`(const char`*`):%- [^`:`:FileSel^ FileSel]`&_[@0 DefaultE +xt]([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 ext])&] +[s2; Sets the file extension to add for `"Save as`" dialog if none +is specified.&] +[s0; &] +[s5;K:`:`:FileSel`:`:Multi`(bool`):%- [^`:`:FileSel^ FileSel]`&_[@0 Multi]([@(0.0.255) bool +]_[@3 b]_`=_true)&] +[s2; In this mode, more than single file can be selected. Default +is false.&] +[s0; &] +[s5;K:`:`:FileSel`:`:ReadOnlyOption`(bool`):%- [^`:`:FileSel^ FileSel]`&_[@0 ReadOnlyOpti +on]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s2; Makes `"Read only`" option visible. Default is false.&] +[s0; &] +[s5;K:`:`:FileSel`:`:MkDirOption`(bool`):%- [^`:`:FileSel^ FileSel]`&_[@0 MkDirOption]([@(0.0.255) b +ool]_[@3 b]_`=_true)&] +[s2; Makes `"Make directory`" button visible. Default is true.&] +[s0; &] +[s5;K:`:`:FileSel`:`:NoMkDirOption`(`):%- [^`:`:FileSel^ FileSel]`&_[@0 NoMkDirOption]()&] +[s2; Same as MkDirOption(false).&] +[s0; &] +[s5;K:`:`:FileSel`:`:BaseDir`(const char`*`):%- [^`:`:FileSel^ FileSel]`&_[@0 BaseDir]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[@3 dir])&] +[s2; Sets [%-*@3 dir] to be the base directory. If used, files can +be selected only inside this base directory (or its subdirectories) +and selected file paths are relative to it.&] +[s0; &] +[s5;K:`:`:FileSel`:`:Asking`(bool`):%- [^`:`:FileSel^ FileSel]`&_[@0 Asking]([@(0.0.255) bo +ol]_[@3 b]_`=_true)&] +[s2; If active, file selector asks before returning the path of existing +file in `"Save as`" dialog. Default is active.&] +[s0; &] +[s5;K:`:`:FileSel`:`:NoAsking`(`):%- [^`:`:FileSel^ FileSel]`&_[@0 NoAsking]()&] +[s2; Same as Asking(false).&] +[s0; &] +[s5;K:`:`:FileSel`:`:EditFileName`(bool`):%- [^`:`:FileSel^ FileSel]`&_[@0 EditFileName]( +[@(0.0.255) bool]_[@3 b])&] +[s2; If active, user can type files into filename edit field. Default +is active.&] +[s0; &] +[s5;K:`:`:FileSel`:`:NoEditFileName`(`):%- [^`:`:FileSel^ FileSel]`&_[@0 NoEditFileName]( +)&] +[s2; Same as EditFileName(false).&] +[s0; &] +[s5;K:`:`:FileSel`:`:AppModal`(bool`):%- [^`:`:FileSel^ FileSel]`&_[@0 AppModal]([@(0.0.255) b +ool]_[@3 b]_`=_true)&] +[s5;K:`:`:FileSel`:`:NoAppModal`(`):%- [^`:`:FileSel^ FileSel]`&_[@0 NoAppModal]()&] +[s2; If active (default), dialog is run as application modal.&] +[s0; ] \ No newline at end of file diff --git a/uppsrc/Draw/Authors b/uppsrc/Draw/Authors deleted file mode 100644 index db6e29547..000000000 --- a/uppsrc/Draw/Authors +++ /dev/null @@ -1,3 +0,0 @@ -Mirek Fidler -Tomas Rylek -Michael Albert \ No newline at end of file diff --git a/uppsrc/Draw/Copying b/uppsrc/Draw/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/Draw/Copying +++ b/uppsrc/Draw/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/Draw/Copying-plain b/uppsrc/Draw/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/Draw/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/Draw/Draw.upp b/uppsrc/Draw/Draw.upp index cf5e53dd6..e3e0a1d1e 100644 --- a/uppsrc/Draw/Draw.upp +++ b/uppsrc/Draw/Draw.upp @@ -81,9 +81,7 @@ file Info readonly separator, src.tpp, srcdoc.tpp, - Copying, - Copying-plain, - Authors; + Copying; mainconfig "Debug" = "MSC GUI DEBUG WIN32"; diff --git a/uppsrc/Esc/Authors b/uppsrc/Esc/Authors deleted file mode 100644 index f52ff393f..000000000 --- a/uppsrc/Esc/Authors +++ /dev/null @@ -1,2 +0,0 @@ -Mirek Fidler -Tomas Rylek \ No newline at end of file diff --git a/uppsrc/Esc/Copying b/uppsrc/Esc/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/Esc/Copying +++ b/uppsrc/Esc/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/Esc/Copying-plain b/uppsrc/Esc/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/Esc/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/Esc/Esc.upp b/uppsrc/Esc/Esc.upp index 6e37e6c5e..e9b43fa1f 100644 --- a/uppsrc/Esc/Esc.upp +++ b/uppsrc/Esc/Esc.upp @@ -16,9 +16,7 @@ file Value.cpp, Info readonly separator, srcdoc.tpp, - Copying, - Copying-plain, - Authors; + Copying; mainconfig "" = ""; diff --git a/uppsrc/GridCtrl/Copying b/uppsrc/GridCtrl/Copying new file mode 100644 index 000000000..f135f3633 --- /dev/null +++ b/uppsrc/GridCtrl/Copying @@ -0,0 +1,21 @@ +Copyright 1998-2008 The U++ Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/GridCtrl/GridCtrl.upp b/uppsrc/GridCtrl/GridCtrl.upp index 883d5888b..eb4706830 100644 --- a/uppsrc/GridCtrl/GridCtrl.upp +++ b/uppsrc/GridCtrl/GridCtrl.upp @@ -30,7 +30,9 @@ file changelog.txt, GridCtrl.t charset "UTF-8", GridCtrl.usc, - src.tpp; + src.tpp, + Info readonly separator, + Copying; mainconfig "" = "GUI"; diff --git a/uppsrc/HexView/Authors b/uppsrc/HexView/Authors deleted file mode 100644 index f52ff393f..000000000 --- a/uppsrc/HexView/Authors +++ /dev/null @@ -1,2 +0,0 @@ -Mirek Fidler -Tomas Rylek \ No newline at end of file diff --git a/uppsrc/HexView/Copying b/uppsrc/HexView/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/HexView/Copying +++ b/uppsrc/HexView/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/HexView/Copying-plain b/uppsrc/HexView/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/HexView/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/HexView/HexView.upp b/uppsrc/HexView/HexView.upp index dcc95e28f..e8a317541 100644 --- a/uppsrc/HexView/HexView.upp +++ b/uppsrc/HexView/HexView.upp @@ -8,9 +8,7 @@ file HexView.cpp, HexView.lay, Info readonly separator, - Copying, - Copying-plain, - Authors; + Copying; mainconfig "" = ""; diff --git a/uppsrc/IconDes/Copying b/uppsrc/IconDes/Copying new file mode 100644 index 000000000..f135f3633 --- /dev/null +++ b/uppsrc/IconDes/Copying @@ -0,0 +1,21 @@ +Copyright 1998-2008 The U++ Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/IconDes/IconDes.upp b/uppsrc/IconDes/IconDes.upp index fb0032519..a35e69b53 100644 --- a/uppsrc/IconDes/IconDes.upp +++ b/uppsrc/IconDes/IconDes.upp @@ -20,5 +20,7 @@ file EditPos.cpp, ImlFile.cpp, IconDes.lay, - IconDes.iml; + IconDes.iml, + Info readonly separator, + Copying; diff --git a/uppsrc/MySql/Authors b/uppsrc/MySql/Authors deleted file mode 100644 index f52ff393f..000000000 --- a/uppsrc/MySql/Authors +++ /dev/null @@ -1,2 +0,0 @@ -Mirek Fidler -Tomas Rylek \ No newline at end of file diff --git a/uppsrc/MySql/Copying b/uppsrc/MySql/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/MySql/Copying +++ b/uppsrc/MySql/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/MySql/Copying-plain b/uppsrc/MySql/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/MySql/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/MySql/MySql.upp b/uppsrc/MySql/MySql.upp index f83210063..e6463650a 100644 --- a/uppsrc/MySql/MySql.upp +++ b/uppsrc/MySql/MySql.upp @@ -37,7 +37,5 @@ file MySqlSchema.h, MySql.cpp, Info readonly separator, - Copying, - Copying-plain, - Authors; + Copying; diff --git a/uppsrc/Ole/Authors b/uppsrc/Ole/Authors deleted file mode 100644 index f52ff393f..000000000 --- a/uppsrc/Ole/Authors +++ /dev/null @@ -1,2 +0,0 @@ -Mirek Fidler -Tomas Rylek \ No newline at end of file diff --git a/uppsrc/Ole/Copying b/uppsrc/Ole/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/Ole/Copying +++ b/uppsrc/Ole/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/Ole/Copying-plain b/uppsrc/Ole/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/Ole/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/Ole/Ole.upp b/uppsrc/Ole/Ole.upp index 290b8507f..5a565b34c 100644 --- a/uppsrc/Ole/Ole.upp +++ b/uppsrc/Ole/Ole.upp @@ -8,7 +8,5 @@ file util.h, util.cpp, Info readonly separator, - Copying, - Copying-plain, - Authors; + Copying; diff --git a/uppsrc/Oracle/Authors b/uppsrc/Oracle/Authors deleted file mode 100644 index f52ff393f..000000000 --- a/uppsrc/Oracle/Authors +++ /dev/null @@ -1,2 +0,0 @@ -Mirek Fidler -Tomas Rylek \ No newline at end of file diff --git a/uppsrc/Oracle/Copying b/uppsrc/Oracle/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/Oracle/Copying +++ b/uppsrc/Oracle/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/Oracle/Copying-plain b/uppsrc/Oracle/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/Oracle/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/Oracle/Oracle.upp b/uppsrc/Oracle/Oracle.upp index 04d1388d4..2e6d291be 100644 --- a/uppsrc/Oracle/Oracle.upp +++ b/uppsrc/Oracle/Oracle.upp @@ -20,9 +20,7 @@ file Oci8.dli, contest.cpp, Info readonly separator, - Copying, - Copying-plain, - Authors; + Copying; mainconfig "Console Test" = "", diff --git a/uppsrc/Oracle/init b/uppsrc/Oracle/init index faab27743..913b01875 100644 --- a/uppsrc/Oracle/init +++ b/uppsrc/Oracle/init @@ -1,7 +1,7 @@ #ifndef _Oracle_icpp_init_stub #define _Oracle_icpp_init_stub #include "Sql/init" -#define BLITZ_INDEX__ F0AF119D54AACDC900A9BFCA32F3503D1 +#define BLITZ_INDEX__ FF4E3A36BEE286E542CEF03EFBCD171B1 #include "Oracle_init.icpp" #undef BLITZ_INDEX__ #endif diff --git a/uppsrc/PdfDraw/Authors b/uppsrc/PdfDraw/Authors deleted file mode 100644 index f52ff393f..000000000 --- a/uppsrc/PdfDraw/Authors +++ /dev/null @@ -1,2 +0,0 @@ -Mirek Fidler -Tomas Rylek \ No newline at end of file diff --git a/uppsrc/PdfDraw/Copying b/uppsrc/PdfDraw/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/PdfDraw/Copying +++ b/uppsrc/PdfDraw/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/PdfDraw/Copying-plain b/uppsrc/PdfDraw/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/PdfDraw/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/PdfDraw/PdfDraw.upp b/uppsrc/PdfDraw/PdfDraw.upp index e3e452a82..18ccc4840 100644 --- a/uppsrc/PdfDraw/PdfDraw.upp +++ b/uppsrc/PdfDraw/PdfDraw.upp @@ -12,9 +12,7 @@ file PdfDraw.cpp, PdfReport.icpp, Info readonly separator, - Copying, - Copying-plain, - Authors; + Copying; mainconfig "" = "GUI"; diff --git a/uppsrc/PdfDraw/init b/uppsrc/PdfDraw/init index 167e178ba..bf588a4c9 100644 --- a/uppsrc/PdfDraw/init +++ b/uppsrc/PdfDraw/init @@ -1,7 +1,7 @@ #ifndef _PdfDraw_icpp_init_stub #define _PdfDraw_icpp_init_stub #include "Draw/init" -#define BLITZ_INDEX__ F93111B8F4F7FD033DC60EAA2197447EF +#define BLITZ_INDEX__ F84CAEEC660789CDC9ACF6436B0FE0BF3 #include "PdfReport.icpp" #undef BLITZ_INDEX__ #endif diff --git a/uppsrc/PostgreSQL/Copying b/uppsrc/PostgreSQL/Copying new file mode 100644 index 000000000..f135f3633 --- /dev/null +++ b/uppsrc/PostgreSQL/Copying @@ -0,0 +1,21 @@ +Copyright 1998-2008 The U++ Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/PostgreSQL/PostgreSQL.upp b/uppsrc/PostgreSQL/PostgreSQL.upp index 77cf9723f..fed086b12 100644 --- a/uppsrc/PostgreSQL/PostgreSQL.upp +++ b/uppsrc/PostgreSQL/PostgreSQL.upp @@ -10,5 +10,7 @@ library(LINUX !NOPOSTGRESQL) pq; file PostgreSQL.h, PostgreSQLSchema.h, - PostgreSQL.cpp; + PostgreSQL.cpp, + Info readonly separator, + Copying; diff --git a/uppsrc/RichEdit/Authors b/uppsrc/RichEdit/Authors deleted file mode 100644 index f52ff393f..000000000 --- a/uppsrc/RichEdit/Authors +++ /dev/null @@ -1,2 +0,0 @@ -Mirek Fidler -Tomas Rylek \ No newline at end of file diff --git a/uppsrc/RichEdit/Copying b/uppsrc/RichEdit/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/RichEdit/Copying +++ b/uppsrc/RichEdit/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/RichEdit/Copying-plain b/uppsrc/RichEdit/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/RichEdit/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/RichEdit/RichEdit.upp b/uppsrc/RichEdit/RichEdit.upp index 62ca4989f..80efb340f 100644 --- a/uppsrc/RichEdit/RichEdit.upp +++ b/uppsrc/RichEdit/RichEdit.upp @@ -26,7 +26,5 @@ file RichEdit.lay, RichEdit.iml, Info readonly separator, - Copying, - Copying-plain, - Authors; + Copying; diff --git a/uppsrc/RichEdit/init b/uppsrc/RichEdit/init index 12537af8c..f80c2375b 100644 --- a/uppsrc/RichEdit/init +++ b/uppsrc/RichEdit/init @@ -1,7 +1,7 @@ #ifndef _RichEdit_icpp_init_stub #define _RichEdit_icpp_init_stub #include "CtrlLib/init" -#define BLITZ_INDEX__ F3380C166453FB2CAF755A2930C77612D +#define BLITZ_INDEX__ F507760F71D06E16B7AC2B30FB35B4251 #include "RichEdit.icpp" #undef BLITZ_INDEX__ #endif diff --git a/uppsrc/RichText/Authors b/uppsrc/RichText/Authors deleted file mode 100644 index f52ff393f..000000000 --- a/uppsrc/RichText/Authors +++ /dev/null @@ -1,2 +0,0 @@ -Mirek Fidler -Tomas Rylek \ No newline at end of file diff --git a/uppsrc/RichText/Copying b/uppsrc/RichText/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/RichText/Copying +++ b/uppsrc/RichText/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/RichText/Copying-plain b/uppsrc/RichText/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/RichText/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/RichText/RichText.upp b/uppsrc/RichText/RichText.upp index 280e6ce70..e786e526e 100644 --- a/uppsrc/RichText/RichText.upp +++ b/uppsrc/RichText/RichText.upp @@ -36,7 +36,5 @@ file RichText.iml, Info readonly separator, srcdoc.tpp, - Copying, - Copying-plain, - Authors; + Copying; diff --git a/uppsrc/RichText/init b/uppsrc/RichText/init index 7f172e399..cfc7f3338 100644 --- a/uppsrc/RichText/init +++ b/uppsrc/RichText/init @@ -2,7 +2,7 @@ #define _RichText_icpp_init_stub #include "CtrlCore/init" #include "plugin\png/init" -#define BLITZ_INDEX__ FF27C7BD24C3995D2D6C91CA5E6D51BCA +#define BLITZ_INDEX__ FA628C8257B6D8216D316B02BA86806FB #include "RichImage.icpp" #undef BLITZ_INDEX__ #endif diff --git a/uppsrc/Sql/Authors b/uppsrc/Sql/Authors deleted file mode 100644 index f52ff393f..000000000 --- a/uppsrc/Sql/Authors +++ /dev/null @@ -1,2 +0,0 @@ -Mirek Fidler -Tomas Rylek \ No newline at end of file diff --git a/uppsrc/Sql/Copying b/uppsrc/Sql/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/Sql/Copying +++ b/uppsrc/Sql/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/Sql/Copying-plain b/uppsrc/Sql/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/Sql/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/Sql/Sql.upp b/uppsrc/Sql/Sql.upp index ce5ca552d..222ee1f7e 100644 --- a/uppsrc/Sql/Sql.upp +++ b/uppsrc/Sql/Sql.upp @@ -28,10 +28,8 @@ file util_td.cpp, ExportSch.cpp, Info readonly separator, - Copying, - Copying-plain, - Authors, src.tpp, srcimp.tpp, - srcdoc.tpp; + srcdoc.tpp, + Copying; diff --git a/uppsrc/Web/Authors b/uppsrc/Web/Authors deleted file mode 100644 index f52ff393f..000000000 --- a/uppsrc/Web/Authors +++ /dev/null @@ -1,2 +0,0 @@ -Mirek Fidler -Tomas Rylek \ No newline at end of file diff --git a/uppsrc/Web/Copying b/uppsrc/Web/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/Web/Copying +++ b/uppsrc/Web/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/Web/Copying-plain b/uppsrc/Web/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/Web/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/Web/Web.upp b/uppsrc/Web/Web.upp index f5709182c..4899eab8b 100644 --- a/uppsrc/Web/Web.upp +++ b/uppsrc/Web/Web.upp @@ -34,7 +34,5 @@ file srcdoc.tpp, srcimp.tpp, Info readonly separator, - Copying, - Copying-plain, - Authors; + Copying; diff --git a/uppsrc/Web/init b/uppsrc/Web/init index 26f6f29fd..e3f0f69c1 100644 --- a/uppsrc/Web/init +++ b/uppsrc/Web/init @@ -1,7 +1,7 @@ #ifndef _Web_icpp_init_stub #define _Web_icpp_init_stub #include "Core/init" -#define BLITZ_INDEX__ F4B6AB968A919BB7FC4B824F1C6F685F8 +#define BLITZ_INDEX__ F3B8802768995E4DB828D13B0F9A48C61 #include "Web_init.icpp" #undef BLITZ_INDEX__ #endif diff --git a/uppsrc/art/BlueBar/BlueBar.upp b/uppsrc/art/BlueBar/BlueBar.upp index c67816d31..edcf91255 100644 --- a/uppsrc/art/BlueBar/BlueBar.upp +++ b/uppsrc/art/BlueBar/BlueBar.upp @@ -3,5 +3,7 @@ description "Visual style for ToolBar and MenuBar"; file BlueBar.h, BlueSkin.iml, - BlueSkin.cpp; + BlueSkin.cpp, + Info readonly separator, + Copying; diff --git a/uppsrc/art/BlueBar/Copying b/uppsrc/art/BlueBar/Copying new file mode 100644 index 000000000..f135f3633 --- /dev/null +++ b/uppsrc/art/BlueBar/Copying @@ -0,0 +1,21 @@ +Copyright 1998-2008 The U++ Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/coff/Authors b/uppsrc/coff/Authors deleted file mode 100644 index 408e0afa1..000000000 --- a/uppsrc/coff/Authors +++ /dev/null @@ -1 +0,0 @@ -Tomas Rylek \ No newline at end of file diff --git a/uppsrc/coff/Copying b/uppsrc/coff/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/coff/Copying +++ b/uppsrc/coff/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/coff/Copying-plain b/uppsrc/coff/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/coff/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/coff/binobj/Authors b/uppsrc/coff/binobj/Authors deleted file mode 100644 index 408e0afa1..000000000 --- a/uppsrc/coff/binobj/Authors +++ /dev/null @@ -1 +0,0 @@ -Tomas Rylek \ No newline at end of file diff --git a/uppsrc/coff/binobj/Copying b/uppsrc/coff/binobj/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/coff/binobj/Copying +++ b/uppsrc/coff/binobj/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/coff/binobj/Copying-plain b/uppsrc/coff/binobj/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/coff/binobj/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/coff/binobj/binobj.upp b/uppsrc/coff/binobj/binobj.upp index 10f4fae2c..f9e55e918 100644 --- a/uppsrc/coff/binobj/binobj.upp +++ b/uppsrc/coff/binobj/binobj.upp @@ -10,9 +10,7 @@ file binobj.h, binobj.cpp, Info readonly separator, - Copying, - Copying-plain, - Authors; + Copying; mainconfig "" = ""; diff --git a/uppsrc/coff/coff.upp b/uppsrc/coff/coff.upp index bd44b553c..af6c91ad0 100644 --- a/uppsrc/coff/coff.upp +++ b/uppsrc/coff/coff.upp @@ -15,9 +15,7 @@ file lib.h, lib.cpp, Info readonly separator, - Copying, - Copying-plain, - Authors; + Copying; mainconfig "" = ""; diff --git a/uppsrc/ide/Authors b/uppsrc/ide/Authors deleted file mode 100644 index 312000128..000000000 --- a/uppsrc/ide/Authors +++ /dev/null @@ -1,3 +0,0 @@ -Mirek Fidler -Tomas Rylek -Daniel Kos diff --git a/uppsrc/ide/Browser/Accels.cpp b/uppsrc/ide/Browser/Accels.cpp new file mode 100644 index 000000000..b7a394862 --- /dev/null +++ b/uppsrc/ide/Browser/Accels.cpp @@ -0,0 +1,50 @@ +#include "Browser.h" + +class AccelDlg : public WithAccelLayout { + typedef AccelDlg CLASSNAME; + + Array style; + Array font; + Array height; + Array ink; + Array paper; + +public: + const RichStyles *textstyles; + + AccelDlg(); +}; + +AccelDlg::AccelDlg() +{ + CtrlLayoutOKCancel(*this, "Styling keys"); + + list.AddColumn("Key"); + list.AddColumn("Paragraph style"); + list.AddColumn("Font"); + list.AddColumn("Height"); + list.AddColumn("Ink"); + list.AddColumn("Paper"); + list.SetLineCy(EditField::GetStdHeight() + 2); + list.NoGrid().EvenRowColor(); + + for(int i = 0; i < 20; i++) { + list.Add((i >= 10 ? "Shift+Alt+" : "Alt+") + AsString(i % 10)); + DropList& st = style.At(i); + st.Add(Null, "-"); + for(int j = 0; j < textstyles->GetCount(); j++) + st.Add(textstyles->GetKey(j), (*textstyles)[j].name); + list.SetCtrl(i, 1, st); + list.SetCtrl(i, 2, font.At(i).Add(Null)); + list.SetCtrl(i, 3, height.At(i).Add(Null)); + list.SetCtrl(i, 4, ink.At(i).NullText("")); + list.SetCtrl(i, 5, paper.At(i).NullText("")); + } +} + +void TopicEditor::Accels() +{ + AccelDlg dlg; + dlg.textstyles = &editor.Get().GetStyles(); + dlg.Run(); +} diff --git a/uppsrc/ide/Browser/Browser.h b/uppsrc/ide/Browser/Browser.h index 88a3750fa..64b959dcc 100644 --- a/uppsrc/ide/Browser/Browser.h +++ b/uppsrc/ide/Browser/Browser.h @@ -352,6 +352,8 @@ protected: void InsertItem(); void FindBrokenRef(); + + void Accels(); public: Callback1 WhenTemplatesMenu; diff --git a/uppsrc/ide/Browser/Browser.upp b/uppsrc/ide/Browser/Browser.upp index 6979a2ec7..751b338ec 100644 --- a/uppsrc/ide/Browser/Browser.upp +++ b/uppsrc/ide/Browser/Browser.upp @@ -23,11 +23,15 @@ file Topic.cpp, Template.cpp, Link.cpp, + Accels.cpp, TopicWin.cpp, IdeTopic.cpp, TopicI.icpp, Topic.lay, - Topic.iml; + Topic.iml, + Info readonly separator, + Copying; mainconfig "" = "GUI"; + diff --git a/uppsrc/ide/Browser/COPYING b/uppsrc/ide/Browser/COPYING index e69de29bb..f135f3633 100644 --- a/uppsrc/ide/Browser/COPYING +++ b/uppsrc/ide/Browser/COPYING @@ -0,0 +1,21 @@ +Copyright 1998-2008 The U++ Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/ide/Browser/Copying b/uppsrc/ide/Browser/Copying new file mode 100644 index 000000000..f135f3633 --- /dev/null +++ b/uppsrc/ide/Browser/Copying @@ -0,0 +1,21 @@ +Copyright 1998-2008 The U++ Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/ide/Browser/IdeTopic.cpp b/uppsrc/ide/Browser/IdeTopic.cpp index 9ef173ee9..f374143c6 100644 --- a/uppsrc/ide/Browser/IdeTopic.cpp +++ b/uppsrc/ide/Browser/IdeTopic.cpp @@ -290,8 +290,6 @@ void TopicEditor::InsertItem() return; editor.BeginOp(); int a = editor.GetCursor(); - DUMP(p1); - DUMP(p2); editor.PasteText(ParseQTF(styles + p1)); c = editor.GetCursor(); editor.PasteText(ParseQTF(styles + p2)); diff --git a/uppsrc/ide/Browser/Topic.lay b/uppsrc/ide/Browser/Topic.lay index 513c0e390..e61ec970d 100644 --- a/uppsrc/ide/Browser/Topic.lay +++ b/uppsrc/ide/Browser/Topic.lay @@ -63,3 +63,9 @@ LAYOUT(SaveTemplateLayout, 248, 96) ITEM(Button, cancel, SetLabel(t_("Cancel")).LeftPosZ(176, 64).TopPosZ(60, 24)) END_LAYOUT +LAYOUT(AccelLayout, 736, 556) + ITEM(ArrayCtrl, list, LeftPosZ(8, 720).TopPosZ(8, 508)) + ITEM(Button, ok, SetLabel(t_("OK")).LeftPosZ(596, 64).TopPosZ(524, 24)) + ITEM(Button, cancel, SetLabel(t_("Cancel")).LeftPosZ(664, 64).TopPosZ(524, 24)) +END_LAYOUT + diff --git a/uppsrc/ide/Browser/TopicWin.cpp b/uppsrc/ide/Browser/TopicWin.cpp index bcad8b14f..2561cb833 100644 --- a/uppsrc/ide/Browser/TopicWin.cpp +++ b/uppsrc/ide/Browser/TopicWin.cpp @@ -142,6 +142,7 @@ void TopicEditor::TopicMenu(Bar& bar) "Save as template..", THISBACK(SaveAsTemplate)); bar.Add(topic.IsCursor(), "Apply template stylesheet..", THISBACK(ApplyStylesheet)); bar.Add("Apply template stylesheet to group..", THISBACK(ApplyStylesheetGroup)); + bar.Add("Styling keys..", THISBACK(Accels)); } void TopicEditor::FileBar(Bar& bar) diff --git a/uppsrc/ide/Browser/init b/uppsrc/ide/Browser/init index 6ff1ccb09..e19e3cfe3 100644 --- a/uppsrc/ide/Browser/init +++ b/uppsrc/ide/Browser/init @@ -4,7 +4,7 @@ #include "ide\Common/init" #include "PdfDraw/init" #include "RichEdit/init" -#define BLITZ_INDEX__ FA0C99D724DCCED27C1A08D9E8CFABBB3 +#define BLITZ_INDEX__ F45D6A71FAAD2CD734A82504AF77A6BD3 #include "TopicI.icpp" #undef BLITZ_INDEX__ #endif diff --git a/uppsrc/ide/Builders/Builders.upp b/uppsrc/ide/Builders/Builders.upp index 36de371bb..6c6588d8b 100644 --- a/uppsrc/ide/Builders/Builders.upp +++ b/uppsrc/ide/Builders/Builders.upp @@ -10,5 +10,7 @@ file GccBuilder.cpp, MscBuilder.cpp, JavaBuilder.cpp, - ScriptBuilder.cpp; + ScriptBuilder.cpp, + Info readonly separator, + Copying; diff --git a/uppsrc/ide/Builders/Copying b/uppsrc/ide/Builders/Copying new file mode 100644 index 000000000..f135f3633 --- /dev/null +++ b/uppsrc/ide/Builders/Copying @@ -0,0 +1,21 @@ +Copyright 1998-2008 The U++ Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/ide/Common/Common.upp b/uppsrc/ide/Common/Common.upp index 22361990f..86c9d49b4 100644 --- a/uppsrc/ide/Common/Common.upp +++ b/uppsrc/ide/Common/Common.upp @@ -12,5 +12,7 @@ file Workspace.cpp, usc.cpp, ComDlg.cpp, - common.iml; + common.iml, + Info readonly separator, + Copying; diff --git a/uppsrc/ide/Common/Copying b/uppsrc/ide/Common/Copying new file mode 100644 index 000000000..f135f3633 --- /dev/null +++ b/uppsrc/ide/Common/Copying @@ -0,0 +1,21 @@ +Copyright 1998-2008 The U++ Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/ide/Copying b/uppsrc/ide/Copying index 306c7974b..f135f3633 100644 --- a/uppsrc/ide/Copying +++ b/uppsrc/ide/Copying @@ -1,30 +1,21 @@ -Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS) +Copyright 1998-2008 The U++ Project. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies of the Software and its Copyright notices. In addition publicly -documented acknowledgment must be given that this software has been used if no -source code of this software is made available publicly. This includes -acknowledgments in either Copyright notices, Manuals, Publicity and Marketing -documents or any documentation provided with any product containing this -software. This License does not apply to any software that links to the -libraries provided by this software (statically or dynamically), but only to -the software provided. + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. ------------ - -Please see the COPYING.PLAIN for a plain-english explanation of this notice -and it's intent. +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/ide/Copying-plain b/uppsrc/ide/Copying-plain deleted file mode 100644 index 5b4491072..000000000 --- a/uppsrc/ide/Copying-plain +++ /dev/null @@ -1,33 +0,0 @@ -Plain English Copyright Notice - -This file is not intended to be the actual License. The reason this file -exists is that we here are programmers and engineers. We aren't lawyers. We -provide licenses that we THINK say the right things, but we have our own -intentions at heart. This is a plain-english explanation of what those -intentions are, and if you follow them you will be within the "spirit" of -the license. - -The intent is for us to enjoy writing software that is useful to us (the -AUTHORS) and allow others to use it freely and also benefit from the work we -put into making it. We don't want to restrict others using it. They should -not *HAVE* to make the source code of the applications they write that -simply link to these libraries (be that statically or dynamically), or for -them to be limited as to what license they choose to use (be it open, closed -or anything else). But we would like to know you are using these libraries. -We simply would like to know that it has been useful to someone. This is why -we ask for acknowledgement of some sort. - -You can do what you want with the source of this software - it doesn't -matter. We still have it here for ourselves and it is open and free to use -and download and play with. It can't be taken away. We don't really mind what -you do with the source to your software. We would simply like to know that -you are using it - especially if it makes it to a commerical product. If you -simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and -then make sure you include a paragraph or page in the manual or in the "About.." -box for the product with the copyright notice and state that you used this -software, we will be very happy. If you want to contribute back modifications -and fixes you may have made we will welcome those too with open arms (generally). -If you want help with changes needed, ports needed or features to be added, -arrangements can be easily made with some dialogue. - -Mirek Fidler diff --git a/uppsrc/ide/Debuggers/Copying b/uppsrc/ide/Debuggers/Copying new file mode 100644 index 000000000..f135f3633 --- /dev/null +++ b/uppsrc/ide/Debuggers/Copying @@ -0,0 +1,21 @@ +Copyright 1998-2008 The U++ Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/ide/Debuggers/Debuggers.upp b/uppsrc/ide/Debuggers/Debuggers.upp index d557b23b3..82e7a2653 100644 --- a/uppsrc/ide/Debuggers/Debuggers.upp +++ b/uppsrc/ide/Debuggers/Debuggers.upp @@ -23,5 +23,7 @@ file Data.cpp, Code.cpp, Pdb.cpp, - Pdb.key; + Pdb.key, + Info readonly separator, + Copying; diff --git a/uppsrc/ide/IconDes/Copying b/uppsrc/ide/IconDes/Copying new file mode 100644 index 000000000..f135f3633 --- /dev/null +++ b/uppsrc/ide/IconDes/Copying @@ -0,0 +1,21 @@ +Copyright 1998-2008 The U++ Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/ide/IconDes/IconDes.upp b/uppsrc/ide/IconDes/IconDes.upp index ea9f95e38..f371e8fc1 100644 --- a/uppsrc/ide/IconDes/IconDes.upp +++ b/uppsrc/ide/IconDes/IconDes.upp @@ -6,5 +6,7 @@ uses file IconDes.h, - IdeDes.cpp; + IdeDes.cpp, + Info readonly separator, + Copying; diff --git a/uppsrc/ide/LayDes/Copying b/uppsrc/ide/LayDes/Copying new file mode 100644 index 000000000..f135f3633 --- /dev/null +++ b/uppsrc/ide/LayDes/Copying @@ -0,0 +1,21 @@ +Copyright 1998-2008 The U++ Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/ide/LayDes/LayDes.upp b/uppsrc/ide/LayDes/LayDes.upp index 4a7bdb739..a7b8ead76 100644 --- a/uppsrc/ide/LayDes/LayDes.upp +++ b/uppsrc/ide/LayDes/LayDes.upp @@ -24,5 +24,7 @@ file layfile.cpp, laywin.cpp, LayDes.lay, - LayDes.iml; + LayDes.iml, + Info readonly separator, + Copying; diff --git a/uppsrc/ide/QuickTabs/Copying b/uppsrc/ide/QuickTabs/Copying new file mode 100644 index 000000000..f135f3633 --- /dev/null +++ b/uppsrc/ide/QuickTabs/Copying @@ -0,0 +1,21 @@ +Copyright 1998-2008 The U++ Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/ide/QuickTabs/QuickTabs.upp b/uppsrc/ide/QuickTabs/QuickTabs.upp index 9aefa9412..05125cabd 100644 --- a/uppsrc/ide/QuickTabs/QuickTabs.upp +++ b/uppsrc/ide/QuickTabs/QuickTabs.upp @@ -4,7 +4,9 @@ uses file QuickTabs.h, QuickTabs.cpp, - QuickTabs.iml; + QuickTabs.iml, + Info readonly separator, + Copying; mainconfig "" = "GUI"; diff --git a/uppsrc/ide/ide.upp b/uppsrc/ide/ide.upp index 2ffd5e070..c1c72912f 100644 --- a/uppsrc/ide/ide.upp +++ b/uppsrc/ide/ide.upp @@ -70,9 +70,7 @@ file depends() ide.ico, Makefile, Info readonly separator, - Copying, - Copying-plain, - Authors; + Copying; mainconfig "" = "GUI", diff --git a/uppsrc/plugin/bmp/Copying b/uppsrc/plugin/bmp/Copying new file mode 100644 index 000000000..f135f3633 --- /dev/null +++ b/uppsrc/plugin/bmp/Copying @@ -0,0 +1,21 @@ +Copyright 1998-2008 The U++ Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/plugin/bmp/bmp.upp b/uppsrc/plugin/bmp/bmp.upp index ae2cef95a..f3203bb61 100644 --- a/uppsrc/plugin/bmp/bmp.upp +++ b/uppsrc/plugin/bmp/bmp.upp @@ -9,5 +9,7 @@ file Bmp.cpp, BmpWrite.cpp, Icon.cpp, - BmpReg.icpp; + BmpReg.icpp, + Info readonly separator, + Copying; diff --git a/uppsrc/plugin/bmp/init b/uppsrc/plugin/bmp/init index c6bda695e..6fd9c8070 100644 --- a/uppsrc/plugin/bmp/init +++ b/uppsrc/plugin/bmp/init @@ -1,7 +1,7 @@ #ifndef _plugin_bmp_icpp_init_stub #define _plugin_bmp_icpp_init_stub #include "Draw/init" -#define BLITZ_INDEX__ F5B782B394FF534E3BA5944B56C5A7693 +#define BLITZ_INDEX__ F33B1C6142814C0A7F99BE74C8CB2E5DB #include "BmpReg.icpp" #undef BLITZ_INDEX__ #endif diff --git a/uppsrc/plugin/gif/Copying b/uppsrc/plugin/gif/Copying new file mode 100644 index 000000000..f135f3633 --- /dev/null +++ b/uppsrc/plugin/gif/Copying @@ -0,0 +1,21 @@ +Copyright 1998-2008 The U++ Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/plugin/gif/gif.upp b/uppsrc/plugin/gif/gif.upp index 9b4ba3e42..dd948c484 100644 --- a/uppsrc/plugin/gif/gif.upp +++ b/uppsrc/plugin/gif/gif.upp @@ -6,5 +6,7 @@ uses file gif.h, gifupp.cpp, - gif.icpp; + gif.icpp, + Info readonly separator, + Copying; diff --git a/uppsrc/plugin/gif/init b/uppsrc/plugin/gif/init index 34c79a546..28ad688c5 100644 --- a/uppsrc/plugin/gif/init +++ b/uppsrc/plugin/gif/init @@ -1,7 +1,7 @@ #ifndef _plugin_gif_icpp_init_stub #define _plugin_gif_icpp_init_stub #include "Draw/init" -#define BLITZ_INDEX__ FC651A1994C830142E19F8F9B17C1A114 +#define BLITZ_INDEX__ F0207BAB1E1E22D2A25B953A53828494C #include "gif.icpp" #undef BLITZ_INDEX__ #endif diff --git a/uppsrc/plugin/png/Copying b/uppsrc/plugin/png/Copying new file mode 100644 index 000000000..f135f3633 --- /dev/null +++ b/uppsrc/plugin/png/Copying @@ -0,0 +1,21 @@ +Copyright 1998-2008 The U++ Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/plugin/png/init b/uppsrc/plugin/png/init index d1abfaa6d..f0ee672a0 100644 --- a/uppsrc/plugin/png/init +++ b/uppsrc/plugin/png/init @@ -1,7 +1,7 @@ #ifndef _plugin_png_icpp_init_stub #define _plugin_png_icpp_init_stub #include "Core/init" -#define BLITZ_INDEX__ F4CEA6A654EC57B326933ADB68C21BD2F +#define BLITZ_INDEX__ F7773D560C69E9B20AE8F95535818B75B #include "pngreg.icpp" #undef BLITZ_INDEX__ #endif diff --git a/uppsrc/plugin/png/png.upp b/uppsrc/plugin/png/png.upp index 977d7c278..185a78e01 100644 --- a/uppsrc/plugin/png/png.upp +++ b/uppsrc/plugin/png/png.upp @@ -59,5 +59,7 @@ file png.h, pnglib.c, pngupp.cpp, - pngreg.icpp; + pngreg.icpp, + Info readonly separator, + Copying; diff --git a/uppsrc/plugin/z/z.upp b/uppsrc/plugin/z/z.upp index 7de9775a5..b73008d93 100644 --- a/uppsrc/plugin/z/z.upp +++ b/uppsrc/plugin/z/z.upp @@ -33,5 +33,6 @@ file lib/zconf.h, lib/zlib.h, lib/zutil.c, - lib/zutil.h; + lib/zutil.h, + lib\README; diff --git a/uppsrc/usvn/Copying b/uppsrc/usvn/Copying new file mode 100644 index 000000000..f135f3633 --- /dev/null +++ b/uppsrc/usvn/Copying @@ -0,0 +1,21 @@ +Copyright 1998-2008 The U++ Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/usvn/usvn.upp b/uppsrc/usvn/usvn.upp index 73e71c324..bdaddc295 100644 --- a/uppsrc/usvn/usvn.upp +++ b/uppsrc/usvn/usvn.upp @@ -12,7 +12,9 @@ file SvnWorks.cpp, SvnSync.cpp, notes.txt, - usvn.lay; + usvn.lay, + Info readonly separator, + Copying; mainconfig "" = "GUI";