diff --git a/src/Mod/Arch/Arch.py b/src/Mod/Arch/Arch.py index 1c3212ec9..406ff0d44 100644 --- a/src/Mod/Arch/Arch.py +++ b/src/Mod/Arch/Arch.py @@ -38,3 +38,4 @@ from Structure import * from Commands import * from SectionPlane import * from Window import * +from Axis import * diff --git a/src/Mod/Arch/Arch_rc.py b/src/Mod/Arch/Arch_rc.py index 347ba2d8e..9713df0ea 100644 --- a/src/Mod/Arch/Arch_rc.py +++ b/src/Mod/Arch/Arch_rc.py @@ -2,7 +2,7 @@ # Resource object code # -# Created: Tue Dec 6 14:32:17 2011 +# Created: Thu Dec 8 17:16:29 2011 # by: The Resource Compiler for PyQt (Qt v4.7.3) # # WARNING! All changes made in this file will be lost! @@ -8311,6 +8311,106 @@ qt_resource_data = "\ \x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\ \x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\ \x20\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ +\x00\x00\x06\x14\ +\x00\ +\x00\x17\x85\x78\x9c\xdd\x57\x6d\x6f\xdb\x36\x10\xfe\x9e\x5f\xa1\ +\x29\x5f\x5a\xcc\xa4\x48\xea\x95\x8a\x9d\x62\x58\xd1\xa1\xc0\x80\ +\x01\x6b\x8b\x7d\x1c\x68\x89\xb6\xb5\xc8\xa2\x41\xc9\xb1\xdd\x5f\ +\xbf\xa3\xde\x65\xa7\x69\xd2\x61\x5d\x57\x07\x81\xa9\x7b\xe1\xdd\ +\x3d\x7e\x78\x3c\xcd\x5f\x1d\xb7\xb9\x75\x2f\x75\x99\xa9\x62\x61\ +\x53\x4c\x6c\x4b\x16\x89\x4a\xb3\x62\xbd\xb0\x3f\xbc\x7f\x83\x22\ +\xdb\x2a\x2b\x51\xa4\x22\x57\x85\x5c\xd8\x85\xb2\x5f\xdd\x5e\xcd\ +\x7f\x40\xc8\xfa\x59\x4b\x51\xc9\xd4\x3a\x64\xd5\xc6\x7a\x5b\xdc\ +\x95\x89\xd8\x49\xeb\xc5\xa6\xaa\x76\xb1\xe3\x1c\x0e\x07\x9c\xb5\ +\x42\xac\xf4\xda\x79\x69\x21\x74\x7b\x75\x35\x2f\xef\xd7\x57\x96\ +\x65\x41\xdc\xa2\x8c\xd3\x64\x61\xb7\x0e\xbb\xbd\xce\x6b\xc3\x34\ +\x71\x64\x2e\xb7\xb2\xa8\x4a\x87\x62\xea\xd8\x83\x79\x32\x98\x27\ +\x26\x7a\x76\x2f\x13\xb5\xdd\xaa\xa2\xac\x3d\x8b\xf2\x7a\x64\xac\ +\xd3\x55\x6f\x6d\xb2\x39\xb8\xb5\x11\xe5\x9c\x3b\x84\x39\x8c\x21\ +\xb0\x40\xe5\xa9\xa8\xc4\x11\x4d\x5d\x21\xc7\x87\x5c\x19\x21\xc4\ +\x01\xdd\x60\xf9\x34\xab\xf8\x98\x03\x14\x9f\x4c\xa6\xd6\x8e\xa3\ +\x03\xfc\x3b\xf8\xef\x1d\x3a\x01\x2e\xd5\x5e\x27\x72\x05\x9e\x12\ +\x17\xb2\x72\x5e\xbf\x7f\xdd\x2b\x11\xc1\x69\x95\x8e\xb6\xe9\xd0\ +\x9f\xc4\x9d\xfc\x24\x85\xd8\xca\x72\x27\x12\x59\x3a\x9d\xbc\xf6\ +\x3f\x64\x69\xb5\x59\xd8\x81\xb7\x3b\xd6\xcf\x1b\x99\xad\x37\xd5\ +\x48\x90\xa5\x0b\x1b\x2a\x64\x3c\xf2\xeb\xe7\x11\x81\x68\x63\xd0\ +\x6e\x17\xf7\x1a\x82\xbd\x08\x53\x4b\xf3\x30\x20\xb5\x49\x97\x77\ +\x9c\xaa\xc4\x24\xb2\xb0\x7f\xd2\xc9\xe6\xcf\x9f\x8e\x59\x89\x0d\ +\x7a\xb7\x60\x34\x4f\xe5\xaa\x34\xc6\x4d\x48\xf3\x04\x31\xc3\x5a\ +\x07\x5a\xc0\x4d\x0a\xfd\x8b\x16\x69\x06\x6c\x69\xec\x1a\xcb\xa9\ +\xc6\x8d\x22\xb7\xf5\x01\xaf\xb2\x52\xbb\xce\x16\xd2\xa8\x4e\x39\ +\xc4\x36\x42\x94\xa8\x5c\xe9\xf8\x7a\xb5\x5a\x7a\x84\xdc\xd4\x22\ +\x05\xf0\x64\xd5\x29\xa6\x37\xf6\xe0\xa3\x56\xab\x52\x02\x1e\x64\ +\x24\xab\x21\x01\x0f\x88\xe5\xdb\x96\xf3\x9c\x68\x92\x3f\x29\x1a\ +\x7d\x38\x5a\xd8\x47\x9b\x3b\xd3\xb2\x9f\x8b\x52\xc8\x9f\x83\x12\ +\xb0\x7c\x15\x89\x2f\x45\x29\xe4\xcf\x43\x89\x90\x20\x58\xad\xbe\ +\x14\xa5\x90\x7f\x29\x4a\x1d\x8f\x21\x8d\x5c\x26\xb0\xbf\xc8\x0f\ +\xe2\x54\xf6\x41\xea\xb3\x1b\x6f\xb4\x84\x5e\x73\x7d\x89\x27\x62\ +\xf6\xa3\x80\x73\xe8\xaf\xfd\x56\x14\xb2\x67\x98\xb8\x61\x44\x82\ +\x5e\x7a\x02\xa9\xef\x61\x42\xa8\x47\xf9\x60\xcb\x40\xca\x70\x14\ +\xb1\xc0\x1b\x76\x38\x81\x94\x63\x16\x7a\x74\x24\x5c\xb7\xd1\x3e\ +\x14\x59\x05\xfd\x6a\x5f\x4a\xfd\xce\x9c\xf9\xdf\x8a\x0f\xa5\x1c\ +\x50\x79\x0e\x4b\xa0\xaa\xaf\xc8\x13\x14\x7c\x5d\xa6\x20\xf2\x1f\ +\x70\xc5\x74\xa8\x47\x1b\x18\x9f\xf0\xc4\x9d\xf0\xc3\xa5\x38\x08\ +\x69\x14\xfa\x53\x7e\x00\x15\xfc\x09\x37\x2e\xed\x1e\x27\xc7\xb9\ +\xd5\x7b\x2d\x8a\x12\x6e\x9f\xed\xc2\xae\xcc\x32\x87\xfb\xff\x05\ +\xa2\xc0\x38\xf3\xe7\xce\xe0\x0a\xa2\x51\xf3\xf7\xf2\xb3\xcc\xfa\ +\x87\x68\xa1\xe0\x33\x78\x21\xef\x7b\x43\xec\xc1\x7b\x0d\x70\xf8\ +\x8a\x37\x1b\x80\xfa\x55\xef\x36\xe4\x3f\x7a\x16\xe7\x8e\x19\x09\ +\xea\x55\x3f\x4e\x98\x59\x22\xbd\xcf\xe4\x61\x98\x1b\x96\xa2\xff\ +\x69\x76\x62\x2d\xeb\xe4\x80\x54\xab\xfa\xd3\x2a\x96\x4a\xa7\x52\ +\x77\xaa\xa0\xfe\x4c\x54\x6d\xfe\xcd\x90\x7c\x35\xe5\xb0\xd9\xb5\ +\xd7\x93\x87\xf5\xe5\x46\xa4\xea\xb0\xb0\xd9\xb9\xf2\xa3\x52\x40\ +\x0f\x1f\xfb\xe7\x8a\xe4\x08\xc1\x38\xe6\x81\x77\xe1\x93\x40\x1c\ +\x97\x60\x46\x28\xbf\xd4\xed\xb5\x06\x7c\x50\x2e\x4e\x12\x6a\xa9\ +\xbf\x3a\x7c\xcb\x8d\x3a\xac\xb5\xc1\xa4\xd2\x7b\x79\xee\x09\x93\ +\xd8\xde\xcc\xdd\x68\xdf\x90\xbb\x9d\xf6\x46\x16\xc6\x17\x2d\x97\ +\xea\xf8\xf0\x06\x87\xac\x80\x1a\x51\x3b\x3f\x52\x16\x5d\x20\xd1\ +\x5a\x74\x13\x65\xe8\x47\x9f\xb0\x38\x0e\x24\x3c\x57\x99\xdf\x80\ +\x7f\x42\xb7\x15\xc7\x6c\x9b\x7d\x94\xa9\xe1\x54\x43\x9d\xf9\x56\ +\x56\x22\x15\x95\x18\x08\xd1\x49\x18\xe7\xa4\x1b\x26\xe1\x65\x20\ +\xfe\xfd\xf5\x9b\x9e\xdc\x49\x12\xff\xa1\xf4\xdd\xc0\x4b\x63\x20\ +\x96\x6a\x0f\x69\xf7\x47\xce\x8c\xa8\x49\x6c\x0e\xb8\xa8\x6e\xb3\ +\x2d\xfc\xcc\x66\xf2\xff\x11\x06\x70\xa0\x66\xaf\x98\x18\x57\xa7\ +\x9d\x1c\x36\x6d\xb6\xd5\xb2\x99\xec\x1f\x7c\x19\x4a\x93\x6d\x66\ +\x9c\x9c\x77\x55\x96\xe7\x6f\x4d\x90\xd1\x21\x6c\x37\xcd\xaa\x5c\ +\xde\xd6\x31\x9b\x65\x57\x85\xd3\x96\xd1\x9d\xa1\x51\x95\x73\xa7\ +\x83\xa1\x7e\x5a\x0f\xf0\x4c\x28\xd3\x23\x9c\x8b\xa5\xcc\x17\xf6\ +\xaf\x46\x69\x5d\x68\xd7\x5a\xed\x77\x5b\x95\xca\xd6\xbd\x83\x75\ +\x27\xaa\x4d\x97\x6a\xdb\x21\x86\xc1\x00\x3e\x37\x2b\x28\x6a\xf2\ +\x30\xea\x14\xf5\xa3\xde\xe7\x32\x96\xf7\xb2\x50\x69\x0a\xad\x44\ +\xab\x3b\x19\x17\xf0\x32\xda\xae\x1b\xb6\xc5\xec\x66\x2b\xf4\x9d\ +\xd4\x8d\xea\x3e\x2b\xb3\x65\x96\x9b\x5d\xea\x65\x2e\x6f\xd2\xac\ +\xdc\x41\x66\xf0\x5a\x64\xfa\xc8\x8d\x82\x37\x93\x55\xae\x0e\xbd\ +\x5e\x16\x02\xbe\xd0\x52\x24\x77\xa6\x96\x22\x8d\x45\x02\xc7\x61\ +\x6f\x5a\xf6\x4d\x97\x12\xc1\xfe\xf8\x32\x30\x54\xb2\xdc\x10\x53\ +\xca\x5d\x1a\xcd\x7c\x1c\x30\xce\x02\xea\x59\x89\x85\x7c\xec\x05\ +\xa1\xeb\xcd\x88\x85\xe0\x0c\x93\x80\xf9\x33\x0f\x7b\x6e\xc4\x09\ +\x0f\x06\x51\xf3\xed\x81\x88\x80\xda\x0f\x23\xd7\xb5\x5c\x4c\x19\ +\xf3\x3d\x3a\x8b\xb0\xcb\xb9\x17\x78\x56\x88\x5d\xcf\x0d\x8d\xb5\ +\xef\x52\xe6\x5b\x39\x58\x33\xcc\x22\xb3\x46\x11\x66\xe6\x86\x82\ +\x40\x10\x95\x62\x97\x10\xee\x46\x33\xe4\x62\xee\x71\x42\x5d\x93\ +\x09\x61\x34\x20\x74\x86\x02\xdc\xb8\x70\xec\xd5\xd1\x7b\xc1\x24\ +\xd9\x28\xf4\xe0\xb5\x34\x6a\xd3\xa5\x63\x51\x9b\x36\x84\x6f\x3d\ +\x2c\x30\x22\x61\xe0\x8f\x74\x97\xd6\x6d\x61\xb0\x7b\x04\x5b\x92\ +\x90\x7a\x26\xbd\xa6\x48\x30\xf7\xeb\x54\xda\x1a\xa1\xb6\x08\xd7\ +\xc9\x11\x88\x42\x83\x56\xfa\x5d\x57\x09\x4b\x6e\x84\xc0\x1f\xbf\ +\x93\xa1\x4e\xc8\x68\xb3\x68\xa4\xad\x89\x85\xa6\xe2\x1e\xa7\x27\ +\x59\x33\x5c\xdb\x26\x56\x87\xde\xac\x47\xd4\x6a\xb0\x9a\x21\x0f\ +\x43\x6f\x74\x7d\xda\x0b\x38\x36\x3e\xf5\xa6\x0d\x26\xa8\x45\x6e\ +\x86\x06\x12\xf7\xbc\x1e\xc9\x3e\x4e\x06\x35\xd3\x0f\x5c\xe2\xbb\ +\x68\x38\x45\xa3\x51\xb0\x28\x60\x14\x54\x1a\xc1\x1d\x76\x2f\xaa\ +\xbd\x96\xe6\x16\xe8\x27\x80\xa7\xf5\x12\x68\x9d\x2f\x2e\x07\x46\ +\xfe\xf2\xc9\xcd\xe5\xda\xf7\xdc\x66\x6c\x99\xf4\x97\xf6\xd1\xec\ +\x0c\xd9\xc6\xcb\x7d\x55\x8d\x65\x7f\xa9\xac\x88\xeb\xc6\xd1\x49\ +\xa1\x6d\x4b\x9d\xc3\x75\x54\xc5\x5e\x27\x1b\xc2\xb7\x82\x54\xc0\ +\x60\xa0\x35\x34\xa6\x71\x4f\x33\xd2\x66\x36\x8a\xc9\xbf\xd9\xd8\ +\xce\x3a\x19\xc3\x61\xc4\x43\x98\x4b\x61\xe1\xfb\x01\x4c\xa5\x9f\ +\xe9\x64\xd1\x79\x27\xf3\x09\xfb\x26\x3a\x19\xf1\xbb\x53\xee\x03\ +\x31\xdc\xe9\x29\x6f\x44\x4f\x3d\xe5\x53\xeb\x6f\xac\x97\x7d\x83\ +\x75\xfe\x2f\xbb\x19\xb9\xec\x67\x86\xca\xe7\xfd\xcc\xc8\x1e\xee\ +\x67\xcf\xec\x66\x73\x67\x7d\x7b\x35\x37\xc3\xe2\xed\xd5\xdf\x72\ +\x1b\x43\x3c\ \x00\x00\x0f\x6a\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ @@ -9007,6 +9107,296 @@ qt_resource_data = "\ \x6b\x46\x3d\x1a\xe0\x40\x09\xce\x99\xcb\xb6\x21\xd9\x56\x17\xc6\ \x7a\x39\x03\x7b\x73\xfe\x35\xf1\x97\xb3\xbb\x89\xbb\x8e\x9c\xdd\ \xfd\x0f\x63\x62\xcf\x20\ +\x00\x00\x11\xff\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\ +\x2d\x38\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\ +\x6e\x6f\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x43\x72\x65\x61\x74\ +\x65\x64\x20\x77\x69\x74\x68\x20\x49\x6e\x6b\x73\x63\x61\x70\x65\ +\x20\x28\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x29\x20\x2d\x2d\x3e\x0a\ +\x0a\x3c\x73\x76\x67\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x64\ +\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\ +\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\x73\x2f\x31\ +\x2e\x31\x2f\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x63\x72\x65\x61\x74\x69\x76\ +\x65\x63\x6f\x6d\x6d\x6f\x6e\x73\x2e\x6f\x72\x67\x2f\x6e\x73\x23\ +\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\ +\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ +\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\ +\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x0a\x20\x20\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x73\x76\x67\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\ +\x30\x2f\x73\x76\x67\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3d\ +\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\ +\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x0a\x20\x20\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\ +\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x0a\x20\x20\x20\x78\x6d\ +\x6c\x6e\x73\x3a\x73\x6f\x64\x69\x70\x6f\x64\x69\x3d\x22\x68\x74\ +\x74\x70\x3a\x2f\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2e\x73\x6f\ +\x75\x72\x63\x65\x66\x6f\x72\x67\x65\x2e\x6e\x65\x74\x2f\x44\x54\ +\x44\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2d\x30\x2e\x64\x74\x64\ +\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x6e\x61\x6d\ +\x65\x73\x70\x61\x63\x65\x73\x2f\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x22\x0a\x20\x20\x20\x77\x69\x64\x74\x68\x3d\x22\x36\x34\x70\x78\ +\x22\x0a\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x34\x70\ +\x78\x22\x0a\x20\x20\x20\x69\x64\x3d\x22\x73\x76\x67\x32\x39\x38\ +\x35\x22\x0a\x20\x20\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\ +\x2e\x31\x22\x0a\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\x2e\x34\x38\x2e\x31\x20\ +\x72\x39\x37\x36\x30\x22\x0a\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\ +\x64\x69\x3a\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x41\x72\x63\x68\ +\x5f\x41\x78\x69\x73\x2e\x73\x76\x67\x22\x3e\x0a\x20\x20\x3c\x64\ +\x65\x66\x73\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\ +\x73\x32\x39\x38\x37\x22\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x33\x38\x38\x33\x22\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\ +\x6f\x72\x3a\x23\x66\x66\x62\x34\x30\x30\x3b\x73\x74\x6f\x70\x2d\ +\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\ +\x70\x33\x38\x38\x35\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\ +\x3a\x23\x66\x66\x65\x39\x30\x30\x3b\x73\x74\x6f\x70\x2d\x6f\x70\ +\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\ +\x38\x38\x37\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\ +\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x37\x39\x33\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\ +\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x30\x66\x38\x61\ +\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\ +\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x73\x74\x6f\x70\x33\x37\x39\x35\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\ +\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x36\x36\x66\x66\x3b\x73\ +\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\ +\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x73\x74\x6f\x70\x33\x37\x39\x37\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\ +\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x37\x39\x33\x2d\ +\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x37\x39\x39\ +\x2d\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x31\ +\x32\x2e\x30\x33\x37\x38\x30\x36\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x79\x31\x3d\x22\x35\x34\x2e\x30\x30\x31\x34\x31\x39\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x35\x32\x2e\x38\x38\ +\x32\x36\x34\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\ +\x22\x39\x2e\x32\x37\x34\x31\x34\x38\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\ +\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x33\x37\x39\x33\x2d\x32\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\ +\x3a\x23\x30\x30\x30\x66\x38\x61\x3b\x73\x74\x6f\x70\x2d\x6f\x70\ +\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\ +\x37\x39\x35\x2d\x36\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\ +\x3a\x23\x30\x30\x36\x36\x66\x66\x3b\x73\x74\x6f\x70\x2d\x6f\x70\ +\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\ +\x37\x39\x37\x2d\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\ +\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\ +\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\ +\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\ +\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x33\x38\x38\x33\x2d\x36\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x38\x38\x39\x2d\x34\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x33\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x33\x31\x2e\x36\x37\x31\x38\ +\x37\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x35\ +\x39\x2e\x32\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\ +\x22\x33\x31\x2e\x36\x37\x31\x38\x37\x35\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\ +\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\ +\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\x72\x61\x6e\ +\x73\x6c\x61\x74\x65\x28\x2d\x31\x2e\x32\x37\x32\x37\x32\x37\x33\ +\x2c\x2d\x30\x2e\x31\x38\x31\x38\x31\x38\x31\x38\x29\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\ +\x38\x38\x33\x2d\x36\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\ +\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\ +\x66\x66\x62\x34\x30\x30\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x38\x38\ +\x35\x2d\x34\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\ +\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\ +\x66\x66\x65\x39\x30\x30\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x38\x38\ +\x37\x2d\x35\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\ +\x3c\x2f\x64\x65\x66\x73\x3e\x0a\x20\x20\x3c\x73\x6f\x64\x69\x70\ +\x6f\x64\x69\x3a\x6e\x61\x6d\x65\x64\x76\x69\x65\x77\x0a\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x62\x61\x73\x65\x22\x0a\x20\x20\x20\ +\x20\x20\x70\x61\x67\x65\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x66\x66\ +\x66\x66\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x62\x6f\x72\x64\x65\ +\x72\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x36\x36\x36\x36\x36\x36\x22\ +\x0a\x20\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x6f\x70\x61\x63\ +\x69\x74\x79\x3d\x22\x31\x2e\x30\x22\x0a\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x6f\x70\x61\x63\ +\x69\x74\x79\x3d\x22\x30\x2e\x30\x22\x0a\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x73\x68\x61\x64\ +\x6f\x77\x3d\x22\x32\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x7a\x6f\x6f\x6d\x3d\x22\x31\x2e\x33\x37\x35\ +\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x63\x78\x3d\x22\x33\x39\x2e\x39\x31\x33\x34\x31\x39\x22\x0a\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x79\x3d\ +\x22\x32\x37\x2e\x35\x35\x36\x37\x38\x32\x22\x0a\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x75\x72\x72\x65\x6e\ +\x74\x2d\x6c\x61\x79\x65\x72\x3d\x22\x6c\x61\x79\x65\x72\x31\x22\ +\x0a\x20\x20\x20\x20\x20\x73\x68\x6f\x77\x67\x72\x69\x64\x3d\x22\ +\x74\x72\x75\x65\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2d\x75\x6e\x69\ +\x74\x73\x3d\x22\x70\x78\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x67\x72\x69\x64\x2d\x62\x62\x6f\x78\x3d\ +\x22\x74\x72\x75\x65\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x77\x69\x64\x74\ +\x68\x3d\x22\x31\x32\x38\x30\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x68\x65\ +\x69\x67\x68\x74\x3d\x22\x37\x35\x38\x22\x0a\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\ +\x78\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x79\x3d\x22\x31\x39\ +\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x77\x69\x6e\x64\x6f\x77\x2d\x6d\x61\x78\x69\x6d\x69\x7a\x65\x64\ +\x3d\x22\x31\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x6d\x65\x74\x61\x64\ +\x61\x74\x61\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6d\x65\x74\ +\x61\x64\x61\x74\x61\x32\x39\x39\x30\x22\x3e\x0a\x20\x20\x20\x20\ +\x3c\x72\x64\x66\x3a\x52\x44\x46\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x63\x63\x3a\x57\x6f\x72\x6b\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x72\x64\x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\x66\x6f\x72\x6d\ +\x61\x74\x3e\x69\x6d\x61\x67\x65\x2f\x73\x76\x67\x2b\x78\x6d\x6c\ +\x3c\x2f\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\x74\x79\x70\x65\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x64\x66\x3a\x72\x65\x73\ +\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\ +\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x64\x63\x6d\x69\x74\x79\ +\x70\x65\x2f\x53\x74\x69\x6c\x6c\x49\x6d\x61\x67\x65\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\x74\x69\ +\x74\x6c\x65\x3e\x3c\x2f\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x3c\x2f\x63\x63\x3a\x57\x6f\x72\x6b\x3e\ +\x0a\x20\x20\x20\x20\x3c\x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\x0a\ +\x20\x20\x3c\x2f\x6d\x65\x74\x61\x64\x61\x74\x61\x3e\x0a\x20\x20\ +\x3c\x67\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x61\x79\x65\ +\x72\x31\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x6c\x61\x62\x65\x6c\x3d\x22\x4c\x61\x79\x65\x72\x20\x31\ +\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x67\x72\x6f\x75\x70\x6d\x6f\x64\x65\x3d\x22\x6c\x61\x79\x65\x72\ +\x22\x3e\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\ +\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x3a\x23\x66\ +\x66\x66\x66\x66\x66\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\ +\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\ +\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\ +\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\ +\x74\x68\x3a\x33\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\ +\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x72\x6f\x75\x6e\x64\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\ +\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\ +\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\ +\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x64\x61\x73\x68\x6f\x66\x66\x73\x65\x74\x3a\x30\x3b\x6d\x61\ +\x72\x6b\x65\x72\x3a\x6e\x6f\x6e\x65\x3b\x76\x69\x73\x69\x62\x69\ +\x6c\x69\x74\x79\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x64\x69\x73\ +\x70\x6c\x61\x79\x3a\x69\x6e\x6c\x69\x6e\x65\x3b\x6f\x76\x65\x72\ +\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x65\x6e\x61\ +\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x61\ +\x63\x63\x75\x6d\x75\x6c\x61\x74\x65\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x64\x3d\x22\x6d\x20\x33\x32\x2e\x37\x38\x39\x37\x37\x33\ +\x2c\x32\x2e\x37\x35\x35\x36\x38\x31\x38\x20\x63\x20\x2d\x35\x2e\ +\x34\x36\x37\x33\x34\x2c\x30\x20\x2d\x39\x2e\x39\x30\x36\x32\x35\ +\x2c\x34\x2e\x34\x33\x38\x39\x30\x39\x38\x20\x2d\x39\x2e\x39\x30\ +\x36\x32\x35\x2c\x39\x2e\x39\x30\x36\x32\x35\x30\x32\x20\x30\x2c\ +\x34\x2e\x35\x37\x38\x33\x33\x20\x33\x2e\x31\x32\x32\x35\x34\x31\ +\x2c\x38\x2e\x33\x39\x39\x34\x36\x34\x20\x37\x2e\x33\x34\x33\x37\ +\x35\x2c\x39\x2e\x35\x33\x31\x32\x35\x20\x6c\x20\x30\x2c\x32\x2e\ +\x32\x38\x31\x32\x35\x20\x2d\x38\x2e\x32\x31\x38\x37\x35\x2c\x30\ +\x20\x63\x20\x2d\x31\x2e\x33\x30\x30\x39\x33\x38\x2c\x2d\x33\x2e\ +\x39\x34\x39\x30\x31\x33\x20\x2d\x35\x2e\x30\x32\x31\x36\x30\x31\ +\x2c\x2d\x36\x2e\x38\x31\x32\x35\x20\x2d\x39\x2e\x34\x30\x36\x32\ +\x35\x2c\x2d\x36\x2e\x38\x31\x32\x35\x20\x2d\x35\x2e\x34\x36\x37\ +\x33\x34\x30\x35\x2c\x30\x20\x2d\x39\x2e\x38\x37\x35\x30\x30\x30\ +\x33\x2c\x34\x2e\x34\x33\x38\x39\x31\x20\x2d\x39\x2e\x38\x37\x35\ +\x30\x30\x30\x33\x2c\x39\x2e\x39\x30\x36\x32\x35\x20\x30\x2c\x35\ +\x2e\x34\x36\x37\x33\x34\x20\x34\x2e\x34\x30\x37\x36\x35\x39\x38\ +\x2c\x39\x2e\x39\x30\x36\x32\x35\x20\x39\x2e\x38\x37\x35\x30\x30\ +\x30\x33\x2c\x39\x2e\x39\x30\x36\x32\x35\x20\x34\x2e\x35\x37\x38\ +\x33\x33\x2c\x30\x20\x38\x2e\x34\x33\x30\x37\x31\x34\x2c\x2d\x33\ +\x2e\x31\x32\x32\x35\x34\x31\x20\x39\x2e\x35\x36\x32\x35\x2c\x2d\ +\x37\x2e\x33\x34\x33\x37\x35\x20\x6c\x20\x38\x2e\x30\x36\x32\x35\ +\x2c\x30\x20\x30\x2c\x31\x36\x2e\x33\x34\x33\x37\x35\x20\x2d\x38\ +\x2e\x32\x31\x38\x37\x35\x2c\x30\x20\x63\x20\x2d\x31\x2e\x33\x30\ +\x30\x39\x33\x38\x2c\x2d\x33\x2e\x39\x34\x39\x30\x31\x33\x20\x2d\ +\x35\x2e\x30\x32\x31\x36\x30\x31\x2c\x2d\x36\x2e\x38\x31\x32\x35\ +\x20\x2d\x39\x2e\x34\x30\x36\x32\x35\x2c\x2d\x36\x2e\x38\x31\x32\ +\x35\x20\x2d\x35\x2e\x34\x36\x37\x33\x34\x30\x35\x2c\x30\x20\x2d\ +\x39\x2e\x38\x37\x35\x30\x30\x30\x33\x2c\x34\x2e\x34\x33\x38\x39\ +\x31\x20\x2d\x39\x2e\x38\x37\x35\x30\x30\x30\x33\x2c\x39\x2e\x39\ +\x30\x36\x32\x35\x20\x30\x2c\x35\x2e\x34\x36\x37\x33\x34\x20\x34\ +\x2e\x34\x30\x37\x36\x35\x39\x38\x2c\x39\x2e\x39\x30\x36\x32\x35\ +\x20\x39\x2e\x38\x37\x35\x30\x30\x30\x33\x2c\x39\x2e\x39\x30\x36\ +\x32\x35\x20\x34\x2e\x35\x37\x38\x33\x33\x2c\x30\x20\x38\x2e\x34\ +\x33\x30\x37\x31\x34\x2c\x2d\x33\x2e\x31\x32\x32\x35\x34\x31\x20\ +\x39\x2e\x35\x36\x32\x35\x2c\x2d\x37\x2e\x33\x34\x33\x37\x35\x20\ +\x6c\x20\x38\x2e\x30\x36\x32\x35\x2c\x30\x20\x30\x2c\x38\x2e\x30\ +\x39\x33\x37\x35\x20\x35\x2e\x36\x35\x36\x32\x35\x2c\x30\x20\x30\ +\x2c\x2d\x38\x2e\x30\x39\x33\x37\x35\x20\x32\x31\x2e\x30\x39\x33\ +\x37\x35\x2c\x30\x20\x30\x2c\x2d\x35\x2e\x36\x35\x36\x32\x35\x20\ +\x2d\x32\x31\x2e\x30\x39\x33\x37\x35\x2c\x30\x20\x30\x2c\x2d\x31\ +\x36\x2e\x33\x34\x33\x37\x35\x20\x32\x31\x2e\x30\x39\x33\x37\x35\ +\x2c\x30\x20\x30\x2c\x2d\x35\x2e\x36\x35\x36\x32\x35\x20\x2d\x32\ +\x31\x2e\x30\x39\x33\x37\x35\x2c\x30\x20\x30\x2c\x2d\x32\x2e\x34\ +\x33\x37\x35\x20\x63\x20\x33\x2e\x39\x34\x39\x30\x31\x33\x2c\x2d\ +\x31\x2e\x33\x30\x30\x39\x33\x38\x20\x36\x2e\x38\x31\x32\x35\x2c\ +\x2d\x34\x2e\x39\x39\x30\x33\x35\x31\x20\x36\x2e\x38\x31\x32\x35\ +\x2c\x2d\x39\x2e\x33\x37\x35\x20\x30\x2c\x2d\x35\x2e\x34\x36\x37\ +\x33\x34\x30\x34\x20\x2d\x34\x2e\x34\x33\x38\x39\x31\x2c\x2d\x39\ +\x2e\x39\x30\x36\x32\x35\x30\x32\x20\x2d\x39\x2e\x39\x30\x36\x32\ +\x35\x2c\x2d\x39\x2e\x39\x30\x36\x32\x35\x30\x32\x20\x7a\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\ +\x30\x35\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\ +\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\ +\x20\x20\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ \x00\x00\x0a\x36\ \x00\ \x00\x4b\x73\x78\x9c\xed\x5b\x59\x6f\xe3\xc8\x11\x7e\xf7\xaf\x60\ @@ -9571,6 +9961,10 @@ qt_resource_name = "\ \x01\xb7\x92\xa7\ \x00\x41\ \x00\x72\x00\x63\x00\x68\x00\x5f\x00\x53\x00\x69\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0d\ +\x0e\x19\x9c\xe7\ +\x00\x41\ +\x00\x72\x00\x63\x00\x68\x00\x5f\x00\x41\x00\x78\x00\x69\x00\x73\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x15\ \x06\xdc\x1e\x67\ \x00\x41\ @@ -9596,6 +9990,11 @@ qt_resource_name = "\ \x00\x41\ \x00\x72\x00\x63\x00\x68\x00\x5f\x00\x57\x00\x61\x00\x6c\x00\x6c\x00\x5f\x00\x54\x00\x72\x00\x65\x00\x65\x00\x2e\x00\x73\x00\x76\ \x00\x67\ +\x00\x12\ +\x0b\x77\x0b\x67\ +\x00\x41\ +\x00\x72\x00\x63\x00\x68\x00\x5f\x00\x41\x00\x78\x00\x69\x00\x73\x00\x5f\x00\x54\x00\x72\x00\x65\x00\x65\x00\x2e\x00\x73\x00\x76\ +\x00\x67\ \x00\x0d\ \x0d\x3c\x9c\xc7\ \x00\x41\ @@ -9614,8 +10013,8 @@ qt_resource_name = "\ qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x01\ -\x00\x00\x00\x10\x00\x02\x00\x00\x00\x01\x00\x00\x00\x2a\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x16\x00\x00\x00\x14\ +\x00\x00\x00\x10\x00\x02\x00\x00\x00\x01\x00\x00\x00\x2c\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x18\x00\x00\x00\x14\ \x00\x00\x00\x1a\x00\x02\x00\x00\x00\x10\x00\x00\x00\x04\ \x00\x00\x01\xbe\x00\x00\x00\x00\x00\x01\x00\x01\x4b\x12\ \x00\x00\x00\xa0\x00\x00\x00\x00\x00\x01\x00\x00\x55\x20\ @@ -9633,25 +10032,27 @@ qt_resource_struct = "\ \x00\x00\x00\x86\x00\x00\x00\x00\x00\x01\x00\x00\x3e\x30\ \x00\x00\x01\x70\x00\x00\x00\x00\x00\x01\x00\x01\x08\x08\ \x00\x00\x00\x38\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x04\xf2\x00\x01\x00\x00\x00\x01\x00\x02\x26\x8c\ +\x00\x00\x05\x12\x00\x01\x00\x00\x00\x01\x00\x02\x2c\xa4\ \x00\x00\x04\x1e\x00\x00\x00\x00\x00\x01\x00\x01\xee\xd5\ \x00\x00\x02\xfc\x00\x00\x00\x00\x00\x01\x00\x01\xa0\x63\ -\x00\x00\x05\x68\x00\x01\x00\x00\x00\x01\x00\x02\x40\x1b\ -\x00\x00\x04\xc4\x00\x01\x00\x00\x00\x01\x00\x02\x1f\xba\ +\x00\x00\x05\xb2\x00\x01\x00\x00\x00\x01\x00\x02\x58\x36\ +\x00\x00\x04\xe4\x00\x01\x00\x00\x00\x01\x00\x02\x25\xd2\ \x00\x00\x03\x36\x00\x01\x00\x00\x00\x01\x00\x01\xae\xd2\ \x00\x00\x03\x88\x00\x01\x00\x00\x00\x01\x00\x01\xc2\x59\ \x00\x00\x02\xa0\x00\x01\x00\x00\x00\x01\x00\x01\x85\xc3\ -\x00\x00\x04\x3e\x00\x00\x00\x00\x00\x01\x00\x02\x02\x97\ +\x00\x00\x04\x5e\x00\x00\x00\x00\x00\x01\x00\x02\x08\xaf\ \x00\x00\x02\x7e\x00\x01\x00\x00\x00\x01\x00\x01\x7c\xca\ \x00\x00\x03\x64\x00\x01\x00\x00\x00\x01\x00\x01\xb8\x2a\ \x00\x00\x02\x34\x00\x01\x00\x00\x00\x01\x00\x01\x6c\x22\ \x00\x00\x02\x5e\x00\x01\x00\x00\x00\x01\x00\x01\x75\xca\ -\x00\x00\x04\x6e\x00\x01\x00\x00\x00\x01\x00\x02\x12\x05\ +\x00\x00\x04\x8e\x00\x01\x00\x00\x00\x01\x00\x02\x18\x1d\ \x00\x00\x03\xf4\x00\x00\x00\x00\x00\x01\x00\x01\xde\x54\ -\x00\x00\x04\x9c\x00\x01\x00\x00\x00\x01\x00\x02\x17\x55\ +\x00\x00\x04\xbc\x00\x01\x00\x00\x00\x01\x00\x02\x1d\x6d\ +\x00\x00\x05\x3c\x00\x00\x00\x00\x00\x01\x00\x02\x33\x7f\ \x00\x00\x03\xac\x00\x01\x00\x00\x00\x01\x00\x01\xc7\x70\ -\x00\x00\x05\x3c\x00\x01\x00\x00\x00\x01\x00\x02\x37\xa1\ -\x00\x00\x05\x1c\x00\x01\x00\x00\x00\x01\x00\x02\x2d\x67\ +\x00\x00\x05\x86\x00\x01\x00\x00\x00\x01\x00\x02\x4f\xbc\ +\x00\x00\x05\x66\x00\x01\x00\x00\x00\x01\x00\x02\x45\x82\ +\x00\x00\x04\x3e\x00\x01\x00\x00\x00\x01\x00\x02\x02\x97\ \x00\x00\x02\xd2\x00\x00\x00\x00\x00\x01\x00\x01\x8e\x05\ \x00\x00\x03\xd6\x00\x00\x00\x00\x00\x01\x00\x01\xcf\x58\ \x00\x00\x02\x00\x00\x01\x00\x00\x00\x01\x00\x01\x64\xd2\ diff --git a/src/Mod/Arch/Axis.py b/src/Mod/Arch/Axis.py new file mode 100644 index 000000000..398dcae47 --- /dev/null +++ b/src/Mod/Arch/Axis.py @@ -0,0 +1,173 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011 * +#* Yorik van Havre * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU General Public License (GPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +import FreeCAD,FreeCADGui,Part,Draft,Component,math +from draftlibs import fcgeo,fcvec +from FreeCAD import Vector +from PyQt4 import QtCore +from pivy import coin + +__title__="FreeCAD Axis System" +__author__ = "Yorik van Havre" +__url__ = "http://free-cad.sourceforge.net" + +def makeAxis(num=0,size=0,name="Axes"): + '''makeAxis(num,size): makes an Axis System + based on the given number of axes and interval distances''' + obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython",name) + _Axis(obj) + _ViewProviderAxis(obj.ViewObject) + if num: + dist = [] + angles = [] + for i in range(num): + dist.append(float(size)) + angles.append(float(0)) + obj.Distances = dist + obj.Angles = angles + FreeCAD.ActiveDocument.recompute() + return obj + +class _CommandAxis: + "the Arch Axis command definition" + def GetResources(self): + return {'Pixmap' : 'Arch_Axis', + 'MenuText': QtCore.QT_TRANSLATE_NOOP("Arch_Axis","Axis"), + 'Accel': "A, X", + 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Arch_Axis","Creates an axis system.")} + + def Activated(self): + FreeCAD.ActiveDocument.openTransaction("Axis") + makeAxis(5,1) + FreeCAD.ActiveDocument.commitTransaction() + +class _Axis(Component.Component): + "The Axis object" + def __init__(self,obj): + obj.addProperty("App::PropertyFloatList","Distances","Base", "The intervals between axes") + obj.addProperty("App::PropertyFloatList","Angles","Base", "The angles of each axis") + obj.addProperty("App::PropertyFloatList","Limits","Base", "The inferior and superior drawing limits") + self.Type = "Axis" + + obj.Limits=[0.0,1.0] + obj.Proxy = self + self.Object = obj + + def execute(self,obj): + self.createGeometry(obj) + + def onChanged(self,obj,prop): + if not prop in ["Shape","Placement"]: + self.createGeometry(obj) + + def createGeometry(self,obj): + pl = obj.Placement + geoms = [] + dist = 0 + if obj.Distances: + if len(obj.Distances) == len(obj.Angles): + for i in range(len(obj.Distances)): + dist += obj.Distances[i] + ang = math.radians(obj.Angles[i]) + p1 = Vector(dist,obj.Limits[0],0) + p2 = Vector(dist+(obj.Limits[1]/math.cos(ang))*math.sin(ang),obj.Limits[1],0) + geoms.append(Part.Line(p1,p2).toShape()) + if geoms: + obj.Shape = Part.Compound(geoms) + obj.Placement = pl + +class _ViewProviderAxis(Component.ViewProviderComponent): + "A View Provider for the Axis object" + + def __init__(self,vobj): + vobj.addProperty("App::PropertyLength","BubbleSize","Base", "The size of the axis bubbles") + vobj.addProperty("App::PropertyEnumeration","NumerationStyle","Base", "The numeration style") + vobj.NumerationStyle = ["1,2,3","01,02,03","A,B,C","a,b,c","I,II,III"] + vobj.Proxy = self + self.Object = vobj.Object + self.ViewObject = vobj + vobj.BubbleSize = .1 + vobj.LineWidth = 1 + + def getIcon(self): + return ":/icons/Arch_Axis_Tree.svg" + + def claimChildren(self): + return [] + + def attach(self, vobj): + self.Object = vobj.Object + self.ViewObject = vobj + self.bubbles = None + + def makeBubbles(self): + rn = self.ViewObject.RootNode.getChild(2).getChild(0).getChild(0) + if self.bubbles: + rn.removeChild(self.bubbles) + self.bubbles = None + self.bubbles = coin.SoSeparator() + for i in range(len(self.Object.Distances)): + invpl = self.Object.Placement.inverse() + verts = self.Object.Shape.Edges[i].Vertexes + p1 = invpl.multVec(verts[0].Point) + p2 = invpl.multVec(verts[1].Point) + dv = p2.sub(p1) + dv.normalize() + rad = self.ViewObject.BubbleSize + center = p2.add(dv.scale(rad,rad,rad)) + ts = Part.makeCircle(rad,center).writeInventor() + cin = coin.SoInput() + cin.setBuffer(ts) + cob = coin.SoDB.readAll(cin) + co = cob.getChild(1).getChild(0).getChild(2) + li = cob.getChild(1).getChild(0).getChild(3) + self.bubbles.addChild(co) + self.bubbles.addChild(li) + st = coin.SoSeparator() + tr = coin.SoTransform() + tr.translation.setValue((center.x,center.y,center.z)) + fo = coin.SoFont() + fo.name = "Arial,Sans" + fo.size = rad*100 + tx = coin.SoText2() + tx.justification = coin.SoText2.CENTER + tx.string = str(i) + st.addChild(tr) + st.addChild(fo) + st.addChild(tx) + self.bubbles.addChild(st) + + rn.addChild(self.bubbles) + + def updateData(self, obj, prop): + if prop == "Shape": + self.makeBubbles() + return + + def onChanged(self, vobj, prop): + if prop in ["NumerationStyle","BubbleSize"]: + self.makeBubbles() + return + + +FreeCADGui.addCommand('Arch_Axis',_CommandAxis()) diff --git a/src/Mod/Arch/CMakeLists.txt b/src/Mod/Arch/CMakeLists.txt index 6d03814c9..c59709a8e 100644 --- a/src/Mod/Arch/CMakeLists.txt +++ b/src/Mod/Arch/CMakeLists.txt @@ -19,6 +19,7 @@ SET(Arch_SRCS importDAE.py importOBJ.py Window.py + Axis.py ) SOURCE_GROUP("" FILES ${Arch_SRCS}) diff --git a/src/Mod/Arch/InitGui.py b/src/Mod/Arch/InitGui.py index 5b0bad1aa..dc14da7c4 100755 --- a/src/Mod/Arch/InitGui.py +++ b/src/Mod/Arch/InitGui.py @@ -37,7 +37,7 @@ class ArchWorkbench(Workbench): import draftTools,draftGui,Arch_rc,Arch archtools = ["Arch_Wall","Arch_Structure","Arch_Cell", "Arch_Floor","Arch_Building","Arch_Site", - "Arch_Window", + "Arch_Window","Arch_Axis", "Arch_SectionPlane","Arch_Add","Arch_Remove"] drafttools = ["Draft_Line","Draft_Wire","Draft_Rectangle", "Draft_Polygon","Draft_Arc", diff --git a/src/Mod/Arch/Makefile.am b/src/Mod/Arch/Makefile.am index d2b5da4fa..0066fd6f5 100644 --- a/src/Mod/Arch/Makefile.am +++ b/src/Mod/Arch/Makefile.am @@ -26,7 +26,8 @@ data_DATA = \ Wall.py \ SectionPlane.py \ Window.py \ - Commands.py + Commands.py \ + Axis.py CLEANFILES = $(BUILT_SOURCES) diff --git a/src/Mod/Arch/Resources/Arch.qrc b/src/Mod/Arch/Resources/Arch.qrc index 573513fdd..ba886872b 100644 --- a/src/Mod/Arch/Resources/Arch.qrc +++ b/src/Mod/Arch/Resources/Arch.qrc @@ -22,6 +22,8 @@ icons/Arch_Site_Tree.svg icons/Arch_Structure_Tree.svg icons/Arch_Window_Tree.svg + icons/Arch_Axis.svg + icons/Arch_Axis_Tree.svg ui/archprefs-base.ui translations/Arch_af.qm translations/Arch_de.qm diff --git a/src/Mod/Arch/Resources/icons/Arch_Axis.svg b/src/Mod/Arch/Resources/icons/Arch_Axis.svg new file mode 100644 index 000000000..9e95231eb --- /dev/null +++ b/src/Mod/Arch/Resources/icons/Arch_Axis.svg @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/src/Mod/Arch/Resources/icons/Arch_Axis_Tree.svg b/src/Mod/Arch/Resources/icons/Arch_Axis_Tree.svg new file mode 100644 index 000000000..d55c9cef5 --- /dev/null +++ b/src/Mod/Arch/Resources/icons/Arch_Axis_Tree.svg @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + +