<?xml version="1.0" encoding="UTF-8"?>
<Worksheet><Version major="6" minor="1"/><View-Properties><Hide name="Section Range"/><Hide name="Group Range"/><Zoom percentage="100"/></View-Properties><Styles><Layout alignment="left" bullet="none" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Heading 4" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0"/><Layout alignment="left" bullet="none" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Heading 3" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0"/><Layout alignment="left" bullet="none" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Heading 2" rightmargin="0.0" spaceabove="7.9992003" spacebelow="2.0016"/><Layout alignment="left" bullet="none" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Heading 1" rightmargin="0.0" spaceabove="7.9992003" spacebelow="4.0032"/><Layout alignment="left" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Normal" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0"/><Layout alignment="centred" bullet="none" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Title" rightmargin="0.0" spaceabove="12.0024" spacebelow="12.0024"/><Font background="[0,0,0]" bold="true" executable="true" family="Monospaced" foreground="[255,0,0]" name="Maple Input" opaque="false" size="12"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="Text" opaque="false" size="12" subscript="false" superscript="false" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" foreground="[0,0,0]" italic="true" name="Heading 4" opaque="false" size="12" subscript="false" superscript="false" underline="false"/><Font background="[0,0,0]" bold="true" family="Arial" foreground="[0,0,0]" italic="true" name="Heading 3" opaque="false" size="14" subscript="false" superscript="false" underline="false"/><Font background="[0,0,0]" executable="false" family="Times New Roman" foreground="[0,0,0]" name="2D Math" opaque="false" size="12"/><Font background="[0,0,0]" bold="true" family="Arial" foreground="[0,0,0]" italic="false" name="Heading 2" opaque="false" size="16" subscript="false" superscript="false" underline="false"/><Font background="[0,0,0]" bold="true" family="Arial" foreground="[0,0,0]" italic="false" name="Heading 1" opaque="false" size="18" subscript="false" superscript="false" underline="false"/><Font background="[0,0,0]" bold="true" family="Arial" foreground="[0,0,0]" italic="false" name="Title" opaque="false" size="36" subscript="false" superscript="false" underline="false"/></Styles><Group><Input><Text-field layout="Title" style="Title"><Image height="78" width="800">TUZOV3RLVWI8b2I8Uj1NRExDZE5WWlpKOnROPkg6eFhWRXJwczo7Qk5TRE9FVGxNWGxnd2dpVzttRFtVVVVXVXNLaXRVZl1XZnZfaXZtaXhvWUtFVmNzSXl1eXZheXZVSXZfaW9peG9PV2tneHdpeXdPdmVDSHdnSXhpSXhteXFBWXNdSXdnWXRVaXVJWHBDSUZpU0lhQkFBc2E7R2JZeXZjaXhxeXhlWXdleXVZeXVXZE1XVHVVWXV5eXl5QTs6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjpaamlmRHFFdGtdYE5cXEBOZFxcUWdxeEhgandoU1dEUVZ5UHhQTEFJWFVgd3l5eVNVdW5gcltETlpdV21ValB1SlpdWV9sU0xxcVdpb1N4d3d0TEVRbEBVTkdpT0NAWHlRalhMWWJJdk48eHdhTG5BdD11T1pkUW5BdEU8U0lkUW5RSkxZUklkcTpgeEpZcnlxSkJoeU5Gdkw/Xl5Zb09BW3lZZWxvZmlHYnQ/d1t3W1BoZEs/Z1NPXkRHcExZZUpwXXQ/ZmpIb1xcSV86eW87SF1cXGBcXDpHb0RGXWBocUVodD13W0ZfYWxTPXdVVG9UdE9IUHdDYm9yWVt3Oj1FcFlkUllyWU1DaEtkRT9CRG1pZEtHPVFzQ19ZUm1IblFCTFlyP1FlRV9YX2tyaWdlOltpQlljZl9ERGFHZVNzXFxlVFBPYl93WXJ3c1hpcmRJdmlHYk53R107VFllVEttZ3l3dkpHQnN5Q3ldVmxtRmV5RVF3Y1g9amp5eDpgc1FNUF5cXFlQaG9fVGs+eE1zbXRzSVBNaEttWUx3TVh3SVdYcU14cVBJVWtFUVQ/bW9EaHRIRW9fbFlAbVFIUXBaRHlMVXJZSHBuPHlSdXRuSFV2PGxweEtZUFd3SVhSX3BgSWBwWGZXT3l5PmVNeV9KV3U9cWFSPnBwVnhPXmZ1bnI/R2BIdl5RaWFddnV1b2NKcHdVUWRUZ2RgX21leF1UdmZcXHhmcmhkYlh2cEllX0hzW0lpSD5uVW9udkBiS3BpWkh0WGBpYmhmS09gSkZkUFBrSXF2eV5xPD9tQHZ1dkFba2BmRGhia1lkTnF4al9jPl9mT2Z2X3dkeF5fRT91WVh5UUBvbEZxWUlmO19lXUl5UFZxbm9zZlB5SkFePWFzdXFbamBaUj9rRV55akh0SFFnT0h4U25cXHdZb0loYFRZXFxGZ2BSeGBJcVtWd3E6QF1UeXliUXh2QF1rPmtpdmRhWVxcdWlcXGRXaXJuW1BxclRncFBZYnhedHZGZmtXWmJpaGxZYT5eYktAd1R3c1Fodk95YkA/XWdxaHdvbW5nXz5vZz0+d3BHYXJBY11oaWJBeVhAZUxvZ1FuaGx5a0Q/czxfY1xcPmJAUXV2QV5reG1ecHBBWHZqVlpzRl5BRm9eX25WVmZsaXhyaWZoYXFpP2JISVxcSmZfXU9dc15gbHlzc0FzcF9iPUlaXWFrZFBtSm5pQXZeUG5hTkF3OkdpPlZxbWZ2Ukl1eUZfW05tcFFqYz9wSXFeUFdqaUZkVVlyYz5nbFBxaFBbQj9qTE5xS0F3eXhuVmhxXFxhallRXlpGVlF4az9lO19mQFViSVNzPz9UPGFCdz1mS11VeVl5W29SQU15Uj1Id2l3RVVIZm1SUFN0eV1Uc1N0YkFIeFN1WU1zXnlHS1V1PUlCPVF4ZW1VQT1ycndJO2FJWD1CSj9iXnNzW19UWEVZVENlRWt1R2dDTmdlRUtZOnl4RUtCTFdibXVCSGt2ak9ndmFjSV9XPV9kR2t0UmVnWXdyXVdGUT95VEtCQlV3SVtIVFlyQnlHanlGXFxXYndndnddU3hhd2FhV3M7eUF3VENBU155eGQ/WGQ9c0JneVJhRFc9RGpzVDo9aFxcS2dtTUdbYXZcXEtkXXNUSkVjdltkVjtmdmNoO3dTOl9Ea1l1XVF3T0NkTztzZz15b2V5dFNHYGtJbXNGeW9nXj94RU9CTENGVmlESWdJQEd5XW90XmlyUDtISz9oWk9zamdTXFxvSD9FVVN1REdNVUF1RkpJSGlfRktTV1V3UlRbaG89U3VjY147SXNfVlRVRT1JQ29TSXN3Q1dxUlpRRzxfaVVhY3JDZWhPY2FJUld1c3BxUmZZVEBjY2ZNdWhzeUNXclltSVBLSWJRaGRDZWhxeFxcc3Q/XURHXUVxTUlGWWZXXXJnVUNicXZJR1Nnb2ZMV2dgYUhKS2RsdUVxRWV1PWl4a3dRU3RyU1d0V2djZ3dKU0lHa3Veb3hnS1Z5UVdaRXReZ0JlS0daS3hjZWQ9SWRUT2hKRWZSW3hyTUJrS2debUdKXUhjW3RyT1Q6X1I/ZUZkX0ZWQ1haQ0Q/UUNxU1hdWWV0R0Y8RXVRZVVmY0NMTWhqR3ZWS3NfU1RrVXdeXUNFVUVsW2Y8P2hORXdkb0g/TVdmXUZiZXNQS1Vda2dIXWJTRVM7UVZWP2hIcWRUPWNlP2JwX2g9R0d1cUdEW3lAU1U9SUZLRXhFZVVXQWhOTVhed2RSWUZJTWV2S2VIWVdTc0NsW0hHYXVbQUVaaVJfaVRKVURTXVlja1hzb1Y+XUdCcWJAO1ZNPURsdVZIZ1Z1UWVEcXhMVUVdXVdTQVJfb0I/b3hMZ3I9PXZxa1I/TWNQQUVHXVdCS1ZQW0hWT0k+SXJFdUJrVWNxU2NrQ3dwc0ZvX1JjP2VCW2hoQ1hZU3JGQ2hWQVN0W1VVV1dzXWNlWUJoeUQ+YVVUTVdaO3ZEb1I8TWlnUUR1X1R0Q1V1UWVUcVhMT0k+UVZfQ2lJXXdfQ3J1RUhvc1J3b0ZmP0VjUWlKP2JoPHJUdVhbWG0+UU4/WXROZHBQUU1TeFVNPExxPXFASU5CQUtFVEpCaHhTdExzRXE6XFxWbVlNY0VKdkxNYFxcam9BV0tsdkxgb1RFeGJxUmBgdVJxSzs9UFg8TEF1c0NoTz9AbU5FamVhUF1JU1docEB5V2xcXFdjPXk8UWxQWEpRdVN3bFc9eHRZeXZKSE9UdEs7VFc+bE9JRE9EVEpaeU5vVVBSTHhIbHdQZWxLeFQ7dG9SRXZcXEFsY11rYnBwZmB5b2x5dlB2T01reERLPl11XFxFVkNdTkFhbkFZYz1GXktfdWRnZFtRXlZpXkRyPlt0Uj1IXFxhR18/R1RbcnRTcnVbWEJ1R0RzVUthZz9RVUVHRUtDaWdjR01lWW9HQjxVUkJJYltlYnZZRkFLYkd5R0s9Q01RQ1FdQ15bVWtVVEZjWFZFaD1dZzxbVkRvQkFJZ095WENnc1FzZGBDRmM9dWpRSEtdWWM7eE9PaUBZeGxPRlhFYnhPR2VDczxraGFJUlZJZ09tcz1lVE9JeVB5cmZ5QnRxdFZ1eVJFeTpvclBjZVxcSWdxa2JWTVVaQVg+c0hzVXVPa1lxQWdDPXN5b1lBc3ZgS0NoQVheV1JdX3h2Y0Zfa1JnQWNeSWNQW1NJX0RbVWY9TWVyb2ZjUUdvWUJmY2NhW1RpRVR2YWU7PUhHY3RhcXZ1V0hkO0liQWlKRVlkeXRHP2hCb3JkVVRYV0M7ZWJjaXNMW1V4WURDW2drUXJITWdIcWVibXJpa3ZqP0hyU2lQeXJja3hrQ3dRQURDb0llRXZiVWJHQWJvUWhYRWhbO2RcXEtISG1iX09GdFd1X3liX1VjUk90bndiUVVIakV1TD1VcF9SYj1VWUFnVU1FPmdDQWdDaXlTRW9zRVFVR3FkV01XcT1jP0VyS01XSUdGd09DZUd3Xz9jQFlCTT1zYFFlcz9VYEd2RElHdV1EaF9VXFxhRUNRQ2tpZ2BLWV5JZDxVckZTR2RpZENRZD93dmpzZ2pvY2Bhdj9BQlVjQ3FrRGJnVVFtWWRXVHlVSElFSV4/dk89eHJJWUBfSVhLeHlleTpXeV1ZUnJ1eERpR2lTdj91aUhHYlZRbDpES1tIbXJwUEhQcV5QbEVcXGtBTWt2bUxMeWxGQW9rbGpjZXY9bHFpPFlXdFJMZXdxSVFQXW51VGpTcXZvXXhndHI6YFREZW9zYHFzWG9VdHNePFFWQUtkPWxIRXdSUU9WWXFFeVRvYFk6YVlOUEtoXFxWPkFzTlF4O1R4cmRXXllKXnRqYVxcdkhkbmxVa1Jla29ZSnZYT1Zlc09xbFVNTkBtUG5VUG9YbVRAanRtVWRwS29IeGhtdUQ9UUhld2tcXG5CbE9odXFXWG93eXM8XFxWUGRrWkFKZ0VSb2BSQGV2W2V2cFRxYGFTeDxOVUF2eVVyYV1udnRSaUh1QlRRSVRzXFxxVlxceUxsXXJhWHRcXEBQQ0hTQHRyO1xcWG1EUztYbUZwVlJ5WHVIaklNS0JgbVppdlc9TkhUU0FcXHNycHRnTW1JQU5xZXVZQHFKTU9GaHJ4RUxpXXZvbXJQQGtnXVRFTVNORVhyZWxteXJveGtVXFxZeU1sbT1LYEF2dmFYV21LUXFtQTxRVElVXklRaG13XklZSFFxXlxcc1dsbEVdc2tscz1RWXdBUnRwVVBIVldpbj5US3llcWBETGtZUEQ9Vll4T1VpdTxRVG89dT1QVWNZWEx5a0VNbUJIWXd1T1Nkc211dV9kUm1dV2xwTElcXHhLbHF5QEteQU86SUpcXGFvO1lzZEh4UkhwT0B5REBMP0lwTHhyZFVwX0h2Y3B2Z111RVFWS1h3dmRucGBWTnFWVkB0W2xMX2lvO3FPSVVOd0xTZmlKOm10PnlWVHFOZ01Wb2FvUF1STmlWRFFPYEBWRGlzZEh5d3RZO0BWZnRMcVlsc3RyRTx2aG1yQmltVU1yPkVrSkF1R3h2WWlZSm1XeHhZcWRqR3hLbF1UQFFQVllPWWBMSmBtYGFqTlxcTUJNVlFteXNMTkRZc3E8b3BZeVNEbWBBdlBAcUJIbFBpT1xcQXg8cW9cXEBZZVhyU0hQUkBWZVlWR0FTcnhRWllQR3R0c1BrXWVMRWhXbzxQR0FQP1F4WkxYWDx1Y01TXFxsSnlkU1NNd0dAa1FMdmpBTVdUeVV0b3hVTGtVUFhUdTxQUVxcaHNhUGtkUEtOaHVIZGtBdHVDUVBaUU1LRFN2UVZQWXlwTFJUeHlNVFBWTVVVaHFzbW1EcG5jWWxYPU5xbHFreFJwZFBPZWtSeE1wQGtTbFVdSFc7eHQ/PVNfTG09QXRuYExxVVFFRVZCQVdCVW5uPXRCTFh4cHRGYE5TQVRkVU5HSFRFPFdOSU5QeFdOSVJHZXdKVE53SHU9TVlWQHVFQEs8TU1fZVNHRWtfRFBAYVZAbWxAPUxcXEV1Q1B2Y3l3U3BrYUB1W3RRaERwPGVTQEF2bUBVXFxNdj1BUVpEVztNTXdVa1E9bT1hVE1BWV1Mb3V1UzpNTlxceVBzXFxRWG1QVkl3dnFKb1BNVElwckFzXlFSdmxzU110TmRLQ0VsP3hUd21uW3Byal1XTXhLT0ROSUlMXkBzbjxZZkVrWEhRTmRRTXRXTGFQTVFMcVVUP015WnRXVGFSQ1Vsa0BYO0BtV2RLP21uVkRsRkB4dnRMVlFRc0ltXlRXczxvWD1LYUV1RWhZRUx0YF1RckB5VEhYUnR4Qlh1dkRyWmR0Xk1uVkhYSWFSeHFMS0xTR0FTTUh3XUBqZHlyTlRNPT1zZV1yYF1vRzxLXFw9VlBgWUtEalh1VHVJakVAd0NRU3hkTV5Ad1BQUz1Nc2I9az5MT1tcXG87dHNtXVVDSUxkRVZqPFM7UFRFaU5VTVZNbW9QdUpHTFRIVE5HcFhLUEtnRHBKbFVUSEtzdW88UGNKbl9jeHBARndhZ1pOWV9XcGVNYHFBV2ddaFxcZklzQWBiWl5hdGl0dXdgPkFpYXloW1ByRVFpZ3BiTU93eXZhSnZ4OkhnYllnO1htPE9yTW9nZFB3XFw+Xj8/a05GYVZYcUdQXmR5WndGcldHeEtuW2tmZ0w+YEdZblBZa2R3YktxYllYcHBoaE9Hcz55W1tGc3VWXUF2Okd1VktHWD9ydG1iVT1VQXlCWFFWSU93RHFFS0lFc29lOmFkXWtYSmF2UkdkZFtCd01jdUVZXFxlRURleF1bZHhPZV1BdVJJZEJLdlNbRD5DWGdBVkhdQndVVUdzQllpeEJ5ZlZ3dnJrU2FdQm1HV2djZnFfaWw7aGdpZzxBUnVhckh1aE5RZHFrSGtLV3FBZHBFY0dvR0NNSV5pd2FXY1d5RlNtU2xxc0lfV21nR2NxZVZpc21xYm9XaFlXR2RXU0ZHQ253dmtPSD9rRlBDc2pvaGFhRG95Z0I7Y2VzUlI9SFBBY0FbaXZhck5nckdReWY7Y2VbY1NhYj5vRjxlWEpdYkE/cmdJVUpLZXRtc2NxQ3FFVUxtVTxNZmVRd3J5dEtzWHRzdmd3ZlI9c3NlZV1lVnI9aVhnVHVzUkVLSXJhd1ZhZXNvRFtdeXFBZ1Q9VkU7WHdnVFg7Q3NpY21zaFpJeWhddGY7RD5hZ1lrU1o7Y0VlZU9VYnBnQktdQ15jY2g9WFtXY3c/VEtdRF9rd1pjcl5hSU1haXZdZ0M/dVJbaUFlR249Z1dJUkRZeGFBZ0x5aVVbY29zZlRNc2BXSEVDZVdpaFpTaVtTU0g/dkRdQ0NTeUpTZUxhd3A9ZEJfeE9PeEtxZ0BjeV4/YmJfd0pTQ2BVWVRbYk5FR2RdSFppSU9BYlZPckplRWNLSWo/Rm5hV2dBZWxTQ0FfV0tddFxcQVVBcVNNTURoU1ZSZ2VwP0JGTXVda1JEa3ZPS3dgXWl5XVNzQXhuVXQ+U2ZpO0lXdXV1R2V2PXJoV2RAcWdnWUZIdWNyPWZmb3ZMUUJfW2U+PWllQXdqQWRcXGloRFV0T1NIRmVXXndpQWVXbk1DY3NYc21oXW94Qz9nXz9mWWdybnNTdmd1dU1iW0lmP0NmYG1SUEV2WXVzbDtYUT1TcW1EUkFzdWN0UEd2c2d4SGdCS3VpXFw7RnZdR0xBRF5bQ29NRT4/U09XVWlnVEtVWVRZRFRjSVZDR3Q7YEZPXVVma1dWXkd3a2FXYHVma0tQWnQ/XFxEd15vT19cXF5pd0Bibl9tdk5eXT92S3FjYHZgdFZzPEB5Zk5fZWBcXER2c0ZnYGlZY0xIdHdfYkt3WmteaEtWbmhWZm1nXFxzSXdRUGZBR2BQbmh1aWtqd3c9YXRYUGJkd2VOQGpOV3VHYGFnaWJeVmlZZmVhUGlyP2c7X1s9T3I6eFxcdnFpPWlxWmlaVHZrQGFmWHZwZHFsU1dcXGlweWRhcllHXFxKRm09WV94Z2U/X1pCcWNESF9Od3JOWHhrUG49V1tsWW49YV89SFpbaW4/UG5BYXlUP3l4dmlpeGJoWHI7aWdkSGlvb1FdZURXZmJpRkBTeD1jdHZ3dVtRV0lpSV5zRV1XclBbRWJNdWdXUm5zQmRbeVJbZD9ZVT1NeWJjaGFkcVI9bG9NdndEU1dZUFd4UlxcPUxPZFdqPExJbXVMXXc8WE5BRVJPaHdLSEx4bUtmdFN4WVVmPEtFTXh4dExObFlLeHI+dVF0cFRWWVV0XFxtdWRUYVxcdF1lblpEUXBgWWtxU0lAb11xT3BgbG9dUEN4eHhBa3J4eF9Ec1RJbVFIU2F5VGhhUkVcXEpMdHB0cVJBdVF5WE9OZFV5VU47YXhbTVdzeHhOPXQ/PUpfeVU/UEs/UXg6SG5fWU5rPFNMSXlcXFVVRFlPaGh2Ok11Zm1Na0lPclVKcVhzbERyVUB3WXFRRWhMS0FrW1hua3F2X114Y1VLbD1UYUVuVUVOUG12SGlwVnBTSFl0Y1BRS3hUSVV3YFhYZUFxW2lYeWhxWGRXXXF1U2xrdVVOVFF3W2h5V2FsUkVTUWhLdWRNUHVSTkhRVlRwWjxWQUhuc0hsWXh2Xm1tVkhKdERZb1R3XWF0XFxYWF5ZeTxMakpga1ZAb110Uz1YSnFNUV1FcHFgc1ZJSl5wV3RQS2NMbWtkTklodVo9V1l5dmhUTnJwVFBpTXdUUWFxcVpFUm5YamU9bklgVXg9cFB1dHRdWF5Ad0dVS0x4als9cUpRblldVk1MVUZNcnFgd0lEc1hoUGNAUVxcQXlydFR1SE49SWtmZFVlcU9bbExxUXBIdHY9cUo+cU5ObVJVVUxeXXdSVExEQHFdYHNXaHhrVEs8aE5eZHJ4UW1rQVJGUXJWQXBKWFlybExXaFZLcXNgcHhSTFR3dVFqZHFmPHdSPWxPbXVfXU5cXGFYQ2lzZ21KdERYc2RVdFVMPFBrYFhwXjxVUlB1RVxcVHlAVUdES1hNS2xRTTpwdDxgbkh5dmc8a0V5bl5sVkZJUT5xUG51d0JleXJ1VG1IWW1YSl91ckRwS3FJUnBQTEx4UlZdSnRMU2t1anhtb2tFbHhNdXhBWE5ZV2NoUD1oUlh4VWpwdnFxbkdFbnY9WWpRclpUUF5lcFRxamFcXFBGRFludWNTUGRpZmxWZ1tqd1tId1xcal5fb3d1VlBkZmdfQ1ZnZFhuSGhoa1F3TVZzaGdaVHhvbFliaGBvakhxd19gZVhaXFw+d1hPbmVgbT9nb0xfd09uYEJ3YGFfdmZ5eVhHdUpHdWdmc29gbWdpdnRIbVheY1NwbVFhZlxcXl1ueWg9b1p4X3dQWG5PaXRyaWI6WHdZT2hwV3ldcWRsV3Z1YGNYPl1KZ3NtPnRkcXNzbl9GP2FuZnlOaFpLZ2dcXE5nRHlwO0FoOl9saEFzW3Z0REZcXE13aFxcZ3dCQWxbeWJNWF4/V2VdWWRFblp3aHk6UXc+YXV0QF9sT2w6PmhmZ2FveHVGUWJLbmJZSHBIUW9id15DX25XQHFEbnBjUXFFR2F3VlxcYEBybnBjbGhjaz5eWEdkTkBxZEF1W0ZmVUledV9cXDpgcWZ2cT9fc29HXFxVZ3VBQVxcQW5da1BsRk5kQkBzS1ZwZE50SF5nQWZvaXBkYUdkRUdsUHdiSlB0W09zUW5eVU5gbUZaWnZsbm9iPnlnTF53V1ltXFxWaGVWZU1HalBockpIZW5JYnBAeFxcd2VdWG9jYGBocGVgeHA6dnVYd2VNWWdbUHFUcG5pSGBvb1tKZ110P3NpQGBwdm9mSXRzblxcXklkYG92VmFnQXFsYUl4VkBdalZdZHZhUUZhbF9oYm93QU94RGBfYVlqSmhsb3FrV1lsSl5mQWZiaT5sTVBgUU5mW2dyWD5yQF9uSF9qX2FeVE52b3hpSlZyc15ldVBjb0BcXFFPW09fcEU+Z1lQbUBfbW9QXlVRX0JwZkVOY0hgak1uWmlZdG14YFZPZ3h2XFxmT3Fob2RAeW9XQW9ITmteV2JDWWRzT2hyeWdKbmRLdnFWWGJSQF1pPmpBSHlXXl1oP11meGdDSWNObl1Jb15sTndIRmY+QGdZQWtRVmNEQGlCP1xcVUdyVFZeaGZqRGlmZ155dEF5SXZcXFFgbXlWeGB2X0RRWlxcSHh0YF5RcV9zUW1AaGRDbnRUQGM9eGZnQGBVWW9cXFl4eGZwZ1lqSElgZGdnWW9fcWB0aEleV2BhPUdyQmhlVVZvUHdraHh5ZEdaU15ucD95Rl5tR2hodmhdVElePHFod3FeSEZcXHNRcFZHdG9vW0dhYklWXFxmQGZCeXdDP2pPd29HRlxcY0Z5cW5tbU5oZXduOndrZnhvYU9pcGhvOndfXnddR1hpQF54aVFlcUZpT25fZ0Feb1ZwVVluPE54RWdsP0lpZ2lgWlFobEd1V292QV94bmFcXFhOczp5Yl9QcHJYXkdpdjtGaHF4ZzxJdGVeZERGYWpIZlN2b1FZaT9XeFpQZGNJX05HbT1pWl5JdmA+ZFk/cD1xaG1QcD0+XU9gYklRd05nZWxRZD9WYllAaV9PYFxcSWJESWVaZnJtcGJsdmxaZlp5XnN2bnNuSWhtTmhbYXBqVmJtVmZVZlpbQXQ9YGZCZ3ZLZmdXeGtiP2Nmb2pkR3ZyaGlMZnZgWV9DX2RpcGdYd29DWHRzSGxcXG5dTlBabU9geVdcXGVeaFRfeERGbGhgW1BJXlpucFdwbURnWj1fY0dmY2NWdlpubkpZa1ZvZmdeaGxXdz5wYVxcYGxNcGZIUGpDUGo+R2ZuT2BUPmljdl1bZmpAdmt0UHJvbnltUFRnZGJQcD55TmRUbnBkb3JRbVRheTpEb0N4cmBpUD5RTGNoTkBEWERUcnlYeUldakc8dUVoTEBUdUE9bGV5T2ZcXFhyUHRacE9pbVlpcVFnUXJxWHZybFdxdXF0TFB2UXlwXXI/UVlOdXJgdU5XZVJgeHFeSGpGaXBnVVlYRHNBWXhOVHJtQE9KcVBJWW46ZW9GTVhZRXRjTFBScUxHSHdLbG5hVU1wSG9jTXdOPXlaVmZFXl5fSXFcXEZuQ19jVEhobldzVz9vTkBuYlBdXWhydkdicz9vcW5tQl9hW3h2bj5mY0BfRU9pPlhoTmZwdVZhQHhoTkljXm9ybUlxZmZvRl9tZkhjZ3lkZ05dX192OkhbcEBfUl5eS2BdZWFvTWlqUldcXFpPeWBoaEFwZVVwbUJoYEBAbVFgbltmaE1xYlRfb09maEVwaHRBbGA/bG5pZGJAdmh3YnFeeFZHY21vYG5odUphdmtOWkleYDxnZ2hIb0Q/YGhfbUlReUlIcUZWZ1txX1Rfbl1YYl5IXFxTZl5dbnRgd2ZXb19WbnZMSGZTbmJzWXl1aWBBUWdjcV1EPnNLQGZxZltDaGlTX1p2ZmZbSHRCUmxnRmA/c09TU3JxdmRBSUg/eHRtVV11V11HR0RhUmlTRj9NVHBLdm9raGJZRj5RaGhLVU4/RHk9VmZ3dj1FVkdXaXZvZUtfdUxhZ0RdclZDdE0/ZD89cz1HUlFvWWZJWTs9VXFvZXJNRHNnSUxvUz5FWDxtQ2tfR0ZBWVxcaUV2SURnZ0VBcWVocWdkV2hTYVNPVWRBVUJxZXlNTWNvO2dmXXdPX3Nsc0dFYUlsVXRvZWdnP0VhSVRrU3VgUXJ3b3Z4S3lea2VMXXJdR3ZqW1dKc2hPX2lnQURCd2ddYHZTbUxMSXNSSG9DZExsSE1GUHhmcGtMUHJgXWptUE9GUXh2SWtkTG4+eFZReXNEdHNFTXB0eHZLYU5gYHRobFJsYHFJYFhpaW1TZUo6XFxTaUxVPG1SXUhyYl14QW11ZFRrV2VQUWl1UTxsb3Vydl10TXRXVWFqaXlvOnBuVz1QRT1vTERRXnlMPmBvR2BqWHRMcGx4c2BtamB0W0hPRFBua0RPdGV0dEhxVkhLVT1UZ2xOYWRSXnhVS1lSO1huOzxZR2BQdFFZWFRPbFB0U0RRTkVsaU13XmRzdklwZnRQVWlrSGFsPkxWcXhrWHhSU2hVQ2BUaXB2YUFOO3Bzc1BPRVFwdGxMXm1ySz1NS3lUQ2B1Yz1tRWRwUmB1PUFxZXhqckBSa1VQcVhVR0FMbl1sPkh2Y1hLREB5Y0l2O1FXS3RTVW1VX1VSQmBrUmBNQkRsWFRuYkxucT1ZWFVuVlB0dXR5T2BReGBKZm1VYm1RR3hLbFFtVFFsTFVNaT1SWlhtRmVOYGxYVTx1UWF0eERZWHFRTGFWVVhyZHlVS015QWhrTVFxVERqdXFTVHhwSlRLQnF2XlF5bmxLXWRYbEBzWHBvZ3hSXnFPWGR2R3htWVlXSU1uZlxcT1l1dWVMTT9pUm5lUnd5d2NRUnJQbkZMUEc9VlJQT15pS108UnFwTVlscXVBeFdwWXdxS211ZnlmaXE/XmNAX0RObm5Zd0BvXWs+W15pdUJmaFFJeXJOdUBpbmxwW19XZnVeX1lwXUVBYWxfeV52ZV9gYlBeYWdnYT1BZVJ3YUhBalFvZURPeVZeZV1vcVVHYHk/Y2h3XT1OeHhPXFx3VndabmRrP2JWPnBQVmpQWWpEbmdAeGM9cXBRX2NPSFxcUT5cXF9mYEdmbV5vZG5RYD5YWmRXZVxcR21GRnZzUHVhcHA9YGxGVnRoaVtCeWE9TnFxRnhZWWNtcVxccGZzYUd4O0FcXERRbGRQd0JQcU1mXFxVb25zVnVoSGhYXmZjTm9Rb2NlT2toSXN0aV47cXRaR3RPbnhYP152cWRZUHBqb11oUGw8cWNAVmtUaGVHT3dFb2tuQFtOYWl5Xm1CUWpcXElyY09tT25rPG9rXXF0PXFyPVZvSVZfZF9qWHZ1cWlvd1h3W25jeEhfTFlddGdwdW5kUE5lR3Bpaz52W2l2UkZ0X0d1S25xRkl3XFxuW0RwaHRgdmdJa1phdl9RXU5xdmJBa21IcUFxZ1VPcV9IXlpYakU+Y0BPYklYanRub2ZHbz9xcV5nZWs+dXRAaXVgdHA/bFxcSXBPaHdDYXNcXGFvbmZpSXZtP1BkcVFnTU5oVlFqRmdlREFkU0ZmXFxWZURBZ2hxbFJHXFxVRnFNWWVwcF54dmxQUHZeR15lQGRGP15MQG1LSXVyUV5eeXhLRmlLbm1YR2o6SXZSeW12PmxnT2xyP3E8aHRKSV1sd1tecXVMQF9cXEdmdWdwPD94R3dbbF93P2llZ19pam5cXEReXFxlSW5Cd1s8Z1puSFxcb1FfRkFiVm5hRmFhUmBfPkdgckhuYV5za1BbQEZqaGloPmBiQnBiZ3Z2ckFhQnhwPUFxb3FiQHdfal5xO3FhXFxWdUZxW0B4W1ZAWz9BZ0peW2t4ZXJQZW5ocWZXYWZXeUBxZm1xdmN3WmtuZ1thd3FAb25hXkVHXUtncmJZXV9gXU54XmZHWnJPeGVBYFJGaDpAd0ZOamZoWl1OY2dpcT1ZZGRXXFxiXm1AQGVyRmNncVtMUW1SQXBlQVtxQXhBPnJUR3JCSG1KcHhveGF5cXFpYWdWT2BjSW5bPlteWHJASWhLPmI6WXdtXmtvTnhxZ1tYYGc8UXlDX2dNYFt4X2Z5PnRcXEBmYnhiO0FgaF5oZFFpS1h1ZkZuRkhdTGhxY2hqXmZ5T2VDW2Zjb3dZc3ZScUk7a1dbO3RlR1ZeP1RJVXdXW2V0R0RPbWhsVWZbdWJmY3lpXUlNb2dpd0heVWg6b3dBd2ZXYVJwbXRDQ3U9SUZkQWVeT2hzS3J1ZWVaRVNaVUJeY2luTUlmd0VfbWZza3hKc0VuP2ZPYWNAP0dKPXVYa0RJaUI6cVlPV0JVS1I/PXU/cWdOYXRoP3ZkR0ZQP3VgVXl3XWZDY2NVT3R2VUdZY2k/Q3U9Z1hwXXhJY0l5T3JBbXl4WXhJY1VOS0ZwUURZWVI7Q3dCPXNQcWlGP2VGP0M+VVRZZWY+PVJKTVRcXEVCQ0dVRGloaEtVUl12Z0FlblV2WmlDZWliV2tDY1VCb3Fkb29jd3lDQ19yQGlmO1NzcWtzd19EVm9CdXlZO3lyZHFmdVNjaEFZQVVncVN5U2tnWnVXbWtEPVFjdll3WVtia3NySnNFYUtXaVd1TT11X2djOkVnX1lmTVl0bnFIb2dSaXNFaT14cHNYcV1ncklocldGaUVDeVNVOm1SZV94Z0VCc1tDXFx5Um8/YzpzaWZDZ25bWEhlRFVnV0tvaWljRVBZSXFxSHhrV3dBZ1ljaHFnRGpnSTthRnBLRFdRdl9PQlpZdD5Xd2RBVVl1Ukw7Y295cU51VmhdVXFwdGRpaztwWGR5a3hUUUdsVFF0dlhgWVY9cTpAVm1AcmZUcklUbFR5all0eG9Aam5VU1NIU3NdcV91eXFdc0NlV05NdUhtSz5cXGpXPWx3ZE5aZG9CYFdzcG9QRExvSW1CVUphYVhYbVhQYUxTZW9uPVV1YW1RcW1wRVVXSHNMVHl2RVhUZU9paVl5aXF5PXFxXVhIQVJIYE1fSVFjPFlBZW5IeVFUSW55TWxSWUtLeGtmRVh5QW1ZeVFUPXB0aHlbZHV4QW1DQW1BeVl3VW9zZHlBYFBrUWtVdE95eHJgSVJedG1NTHZlUEw7RFlaZW5yeXZ1PFlHdU5yYHhrUHFQeE1ybW1DPVNAXFx2YXlKa014bnV0Y2F2PkBqVkR2YGxxZG1MO2l3ZlRrQmVMcWxVV1FQZlVYUVh5WnVMZ21zT3lRPUhWQHVOeGVRdXVtckBRT015a0RNY0xtcz1PSEBzUUlVPUhRbV1yeHVqbHV5R3FweFl1TnFVRF1ZeGFyO2F2Q2BtSFxcVTt0UDtsV2t1UXNJSm14TUdNTHZNTmFZUFNgbXJZT2hxWUpAU3JlUXhdVGJIT3JIbGNJbT9FeXBJam5obGtFd2dZbkZ0WG9oSlNVc2xMcnc8a3FgWGNYdUhtUzpJUFBNV15cXG5lTE5yRVlURUxraHlXRFc6cHZAUFJOQVNBcW9xYFlMeFV5dFhaTXZyYFRqbG1rVXE9aFFQUVJ2ZHRTRVhUWVV1VUxxQFl4QVQ/eVNMbVVWZE5vUU5WXFxvS1F3b1VYPW15SkB2XnlyZklzSmRPUj1YPj1XWEBVUkhqeUlWSXVYSUxMU2Bua1xcTHNkTEp4VlhwbWpQcnB5SjpZcWdNU1V1ckZYcWVhV0R4cFdgWTo9UnBQTExhbz9UUU1ETmxgUGRZcDxtWD55WFhFTEVgd1FtVD5dUWV0eVpFVUV4a3I9Uj95cmFJWFRJWWp1dWZpbnJpS1xcQHlTcUtFeFheXXhdYHJYPVI6TFZocFBCbFBlWVlcXGRMYlVOVEBQWGVTXmF3Wml3QXVralhXPDxtZWRqd1BgcXdlWE5ya29oX1lvPWhia1ddd2B3RUBlTldibHdraFhcXGheck5vYk1Rcnl3aUtZa1l5YHlXdF1pZmh5bHReaHlBeFxceFxceUhrVFlrQnhza195akFoPWh2W19eeWZ1YV9kXFw/a3R4YXI+am93Yll5WmxRYVBWbWpeaXdQcT9gW0FIXl5RYHBBeWB3ZFpgY01weXZpXjtGcm14cXl3dFBwd1dOYHFxYVtRZGxYeEpfaHdnWkxfckh4a2lHYVpXcVxceHFNSHdgeHZOQWhJX3Bqd3NMQHBNV3J4Xm9ocWlaP29oeXdeeHg8T3RRV1tjcWxyRmNab2FcXE5dU1diS3dxP2h5a3dqPXldYF9mZU5zZl9aW0BpXnh2eFhgaXZed15mWFdkUXZgdD9icVl2ZlZecXBoa2dubV9oT0lsZm5cXGZ5bm1weFA/eWZ2cHVpZXBuaHlmcnV5aT8+cVlvXnJ4dXhBdTtoeGVpYV93eVlmW0l2XWBIaXE/bkhXeER5XklQWnlobT9RYVZvaldhcFBnbW5JX3hgbl95aW1AYGp5cj9PeXlXXFxgeHFBQHVYTmFIV1xcP3BkQXlrdXZlSUBjO0FxbUl5Q3dcXGVBZj9Pb1dhcFBHeElIcHh5alJmanlha05gZ1VGeGFPY1N2eVlBbD9xZWZudTtmdklgeHRvd0hIcnBXaF5pY1lPaXRxeTxwZHlPbVM+eWluYFxceWE9aG50dm9bZ3RtcHlZVmpreWlPP2J0RmZ1YXhlX2V0eWhsWFp5eVo/eHBBeHlcXD5rWUZ2O1BbdG9gYkl2bEBuX2lmTUlhXVBgSXl5YFBjd154anlxRW5rc19iOm9qZElpPGZ4cFZ5cVF0S1lyeXlhYkhzS3ZcXEU/bFlndmpvdXU+ZHdeZXRIeWpYYHM/eVRxWlVZdVJeXlhgWj95a3hvaXQ/cW4/c0xgXztobGo/XV54ZHNoZ3N5cW1Bb053W3deeXlOW0J2XzxBZ09mdGloYFNJYT1oX2ZwYnhAdUlBZEl2bEhWXmY/YmRZZkBod1NfXzp2aF5Jd19Jb3lQb1ZZYkl2XFw9Vl9KPnA7Rm1oWWVKPnhhbl1iWW94b2l0Q1ZbYkJLZXFxcm9lR0JDST1NSGxReWNJd1tRdjs/Y0FheEo9UnhheV9FZlhLWXJ5eTpveHZjZHI9VFZZQ0N1Q3c/WDpJWDtDSXJJaUFvRWhTRXRpV2txRXQ9dz90S3dcXHg8dmpYbml1XnlBdl1BWWNOaWVkUGdqRDo7al5QTmFMTlFFTmpENUI=</Image></Text-field></Input></Group><Group><Input><Text-field layout="Title" style="Title">Applications of the Global Optimization Toolbox</Text-field><Text-field alignment="centred" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" rightmargin="0.0" spaceabove="8.0" spacebelow="8.0"><Font background="[0,0,0]" bold="false" encoding="ISO8859-1" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" size="12" underline="false">\251 Maplesoft, a division of Waterloo Maple Inc., 2004</Font></Text-field><Text-field alignment="left" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" rightmargin="0.0" spaceabove="8.0" spacebelow="8.0"><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" size="12" underline="false">The intent of this application example is to illustrate Maple techniques in a real world application context. Maple is a general-purpose environment capable of solving problems in any field that depends on mathematics and data. This application illustrates one possibility for this particular field. Note that there are many options within the Maple system to optimize the computations for specific problems.</Font></Text-field></Input></Group><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">Introduction</Text-field></Title><Group><Input><Text-field style="Text">The algorithms in the Optimization package that comes with base Maple 9.5 are local search methods.  Local search methods use first and second derivatives to find a local extremum, iteratively producing points that improve the objective function while maintaining or approaching feasibility. The algorithms in the Global Optimization Toolbox are global search methods.  Instead of using derivatives to find a local extremum, they systematically search the entire feasible region for a global extremum. Global search methods find a global extremum in optimization models that have many local extrema, and they do not rely on an initial point.</Text-field></Input></Group><Group><Input><Text-field/><Text-field><Font background="[0,0,0]" family="Times New Roman">This application illustrates the following features and benefits of Maple:</Font></Text-field><Text-field/><Text-field><Font background="[0,0,0]" encoding="UTF-8" family="Times New Roman">        \342\200\242 The power of the Global Optimization Toolbox</Font></Text-field><Text-field><Font background="[0,0,0]" family="Times New Roman">        <Font background="[0,0,0]" encoding="UTF-8" family="Times New Roman">\342\200\242</Font><Font background="[0,0,0]" family="Times New Roman"> The ease and flexibility of linear algebra computations</Font></Font></Text-field><Text-field><Font background="[0,0,0]" family="Times New Roman">        <Font background="[0,0,0]" encoding="UTF-8" family="Times New Roman">\342\200\242</Font><Font background="[0,0,0]" family="Times New Roman"> Use of color contours to highlight the local extrema of 3-D plots<Font background="[0,0,0]" family="Times New Roman">
        <Font background="[0,0,0]" encoding="UTF-8" family="Times New Roman">\342\200\242</Font><Font background="[0,0,0]" family="Times New Roman"> Gaining insight into engineering problems symbolically, numerically and visually </Font></Font></Font></Font></Text-field><Text-field><Font background="[0,0,0]" family="Times New Roman">        <Font background="[0,0,0]" encoding="UTF-8" family="Times New Roman">\342\200\242</Font><Font background="[0,0,0]" family="Times New Roman"> T<Font background="[0,0,0]" family="Times New Roman">he symbolic differential equation solvers</Font></Font></Font></Text-field></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">Initializations</Text-field></Title><Group><Input><Text-field prompt="&gt; "><Font style="Maple Input">restart: interface( warnlevel=0 ): interface(displayprecision=4): with( plots ): with( Optimization ): with( GlobalOptimization ): with( LinearAlgebra ): </Font></Text-field></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Quartic Polynomial</Text-field></Title><Group><Input><Text-field/><Text-field><Font background="[0,0,0]" family="Times New Roman">Find the global minimum of this quartic polynomial over the interval [0, 5].  Note that the function is nonconvex and has two local mimima.</Font></Text-field><Text-field prompt="&gt; "><Hyperlink hyperlink="true" style="Maple Input" underline="false">poly := (x-1)*(x-2)*(x-3.5)*(x-4</Hyperlink><Hyperlink hyperlink="true" style="Maple Input" underline="false">.8);</Hyperlink></Text-field></Input></Group><Group><Input><Text-field/><Text-field prompt="&gt; "><Font style="Maple Input">plot( poly, x=0..4.8, view=[0..5,-4..8] );</Font></Text-field></Input></Group><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">Depending on the starting point provided, the built-in local NLP solver returns the global minimum at x=4.298 or the sub-optimal local minimum at x=1.407.  </Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">NLPSolve( poly, initialpoint=[x=5] );
NLPSolve( poly, initialpoint=[x=3] );
NLPSolve( poly, initialpoint=[x=2] );
NLPSolve( poly, initialpoint=[x=0] );</Font></Text-field></Input></Group><Group><Input><Text-field/><Text-field><Font background="[0,0,0]" family="Times New Roman">The GlobalOptimization solver always find the global minimum.  Note that the calling sequence requires no starting point but does require a finite range for x, which is set to 0..5.</Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">GlobalSolve( poly, x=0..5 );</Font></Text-field></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Nonconvex Quadratic Function</Text-field></Title><Group><Input><Text-field/><Text-field><Font background="[0,0,0]" family="Times New Roman">Find the global minimum of a 2-D nonconvex quadratic function over a rectangle.   </Font></Text-field></Input></Group><Group><Input><Text-field/><Text-field><Font background="[0,0,0]" family="Times New Roman">Construct the function from a non-positive-definite matrix. </Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">Q := Matrix( &lt;&lt;1.9,-3.5&gt;|&lt;5,-1/3&gt;&gt; );</Font></Text-field></Input></Group><Group><Input><Text-field/><Text-field><Font background="[0,0,0]" family="Times New Roman">Check that the matrix is not positive definite.</Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">IsDefinite( Q );</Font></Text-field></Input></Group><Group><Input><Text-field/><Text-field><Font background="[0,0,0]" family="Times New Roman">Construct the function </Font><Equation input-equation="x^t*Q*x" style="2D Math">NiMqKCklInhHJSJ0RyIiIiUiUUdGJ0YlRic=</Equation></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">NonconvexQuadratic := expand( Transpose(&lt;x,y&gt;) . Q . &lt;x,y&gt; );</Font></Text-field></Input></Group><Group><Input><Text-field/><Text-field><Font background="[0,0,0]" family="Times New Roman">Plot the function and its contours.  There are global minima at [3.947, -10.000] and [-3.947, 10.000], and a saddle point at [0, 0].</Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">p1 := plot3d( NonconvexQuadratic, x=-10..10, y=-10..10, axes=boxed, transparency=.7, style=patch):
p2 := plot3d( -100, x=-10..10, y=-10..10, style=patchnogrid, color=NonconvexQuadratic ):
plots[display]( p1, p2, orientation=[125,60] ); </Font></Text-field></Input></Group><Group><Input><Text-field/><Text-field><Font background="[0,0,0]" family="Times New Roman">From most starting points, the Maple local solver finds the global minimum at [3.947, -10.000].</Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">NLPSolve( NonconvexQuadratic, x=-10..10, y=-10..10, initialpoint=[x=.1, y=0]);</Font></Text-field></Input></Group><Group><Input><Text-field/><Text-field><Font background="[0,0,0]" family="Times New Roman">If the starting point is chosen poorly, the local solver stops at the saddle point [0, 0].  This is because the local solver terminates if it detects a zero gradient at its current point.  Saddle points have zero gradients but are not extrema.</Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">NLPSolve( NonconvexQuadratic, x=-10..10, y=-10..10, initialpoint=[x=0, y=0]);</Font></Text-field></Input></Group><Group><Input><Text-field/><Text-field><Font background="[0,0,0]" family="Times New Roman">The global solver always finds one of the two global minima.  Again, finite ranges for x and y are provided. </Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">GlobalSolve( NonconvexQuadratic, x=-10..10, y=-10..10);</Font></Text-field></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Nonconvex Feasible Region</Text-field></Title><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">Find the global minimum of a 2-D convex function over a plane minus the unit disk, which is a nonconvex region.</Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">obj := x^2 + y^2 - x + y;</Font></Text-field></Input></Group><Group><Input><Text-field prompt="&gt; "><Font style="Maple Input">constraint := x^2 + y^2 &gt;= 1;</Font></Text-field></Input></Group><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">The global minimum is at <Font background="[0,0,0]" family="Times New Roman">[.707, -.707]<Font background="[0,0,0]" family="Times New Roman">, shown in the following plot in <Font background="[0,0,0]" family="Times New Roman">red<Font background="[0,0,0]" family="Times New Roman"> at the boundary of the feasible region.  Several contours of the objective function are shown.<Font background="[0,0,0]" family="Times New Roman">
</Font></Font></Font></Font></Font></Font></Text-field><Text-field><Font background="[0,0,0]" family="Times New Roman">Starting from the point <Font background="[0,0,0]" family="Times New Roman">[-2, 2]<Font background="[0,0,0]" family="Times New Roman">, the Maple local solver finds the <Font background="[0,0,0]" family="Times New Roman">non-optimal<Font background="[0,0,0]" family="Times New Roman"> local minimum at <Font background="[0,0,0]" family="Times New Roman">[-.707, .707], <Font background="[0,0,0]" family="Times New Roman">shown in <Font background="[0,0,0]" family="Times New Roman">blue<Font background="[0,0,0]" family="Times New Roman">.  The gradient of the objective function at <Font background="[0,0,0]" family="Times New Roman">[-.707, .707]<Font background="[0,0,0]" family="Times New Roman"> is perpendicular to the direction the search would need to move next to get around the infeasible region, terminating the local search.</Font></Font></Font></Font></Font></Font></Font></Font></Font></Font></Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">p1 := plottools[disk]([0,0],1,color=green): 
p2 := plots[contourplot](obj, x=-2..2, y=-2..2, coloring=[blue,red], contours=20):
p3 := plots[pointplot]([[.707,-.707]],color=red, symbolsize=20, symbol=circle):
p4 := plots[pointplot]([[-.707,.707],[-2,2] ],color=blue, symbolsize=20, symbol=circle):
plots[display]( p1, p2, p3, p4 );
 </Font></Text-field></Input></Group><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">Local search from [-2, 2] finds a suboptimal local minimum</Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">NLPSolve( obj, {constraint}, x=-2..2, y=-2..2, initialpoint=[x=-2,y=2]);</Font></Text-field></Input></Group><Group><Input><Text-field/><Text-field><Font background="[0,0,0]" family="Times New Roman">Global search finds the global minimum at [.707, -.707].</Font></Text-field><Text-field layout="Heading 4" prompt="&gt; " style="Heading 4"><Font italic="false" style="Maple Input" subscript="false" superscript="false" underline="false">GlobalSolve( obj, {constraint}, x=-2..2, y=-2..2);</Font></Text-field></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Flat Functions in Higher Dimensions</Text-field></Title><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">Consider a 4-D function from optimization benchmark tests.  This function has an extremely flat, but non-constant, region.  Local search methods find the flat region, but terminate before finding the global minimum because the gradient of the function in that region is nearly zero.</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">objWood := 100*(y-x^2)^2+(1-x)^2+90*(z-w^2)^2+(1-w)^2+10.1*((y-1)^2+(z-1)^2)+19.8*(y-1)*(z-1);</Text-field></Input></Group><Group><Input><Text-field/><Text-field><Font background="[0,0,0]" family="Times New Roman">The global minimum is at x = y = z = w = 1.  To see why this is a difficult function to minimize, consider its 2-D projection fixing z=1 and w=1.</Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">objWoodXY := eval( objWood, { z=1, w=1 } );</Font></Text-field></Input></Group><Group><Input><Text-field/><Text-field><Font background="[0,0,0]" family="Times New Roman">The contours indicate that the function is extremely flat around the origin.  Local search methods generally find a local minimum in this region and terminate.</Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">p1 := plot3d( objWoodXY+800, x=-2..2, y=-2..2, axes=boxed, transparency=.5, style=patch):
p2 := plot3d(0, x=-2..2, y=-2..2, style=patchnogrid, color=objWoodXY):
plots[display](p1,p2, orientation=[39,72] ); </Font></Text-field></Input></Group><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">The Maple local search terminates before finding the global minimum, but the global search finds the minimum easily.</Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">NLPSolve( objWood, initialpoint=[x=-2,y=2,z=-2,w=3] );
GlobalSolve( objWood, x=-10..10, y=-10..10, z=-10..10, w=-10..10 );</Font></Text-field></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">An Industrial Application of Global Optimization</Text-field></Title><Text-field><Font background="[0,0,0]" family="Times New Roman">The examples in the previous section are simple exercises that demonstrate how global search methods can greatly outperform local search methods.  Following are some real-world applications of global optimization.</Font></Text-field><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Tuning an Automobile Suspension System</Text-field></Title><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">Consider the problem of designing a suspension system that exhibits some specified behavior in response to a bump in the road. The problem variables are the spring constant <Font background="[0,0,0]" family="Times New Roman">k<Font background="[0,0,0]" family="Times New Roman"> and the damper constant <Font background="[0,0,0]" family="Times New Roman">b<Font background="[0,0,0]" family="Times New Roman">.  Given the mass of the car on each wheel, <Font background="[0,0,0]" family="Times New Roman">m<Font background="[0,0,0]" family="Times New Roman">, and the expected amplitude of a typical bump, find values for <Font background="[0,0,0]" family="Times New Roman">k<Font background="[0,0,0]" family="Times New Roman"> and <Font background="[0,0,0]" family="Times New Roman">b<Font background="[0,0,0]" family="Times New Roman"> to create a system response that matches the desired response. </Font></Font></Font></Font></Font></Font></Font></Font></Font></Font></Font></Text-field></Input></Group><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">The objective function to be minimized is the squared error between the desired and actual response as a function of <Font background="[0,0,0]" family="Times New Roman">k<Font background="[0,0,0]" family="Times New Roman"> and <Font background="[0,0,0]" family="Times New Roman">b <Font background="[0,0,0]" family="Times New Roman">over a discrete set of times.  After deriving the actual response by solving the system's differential equation, use optimization to find the values of <Font background="[0,0,0]" family="Times New Roman">k<Font background="[0,0,0]" family="Times New Roman"> and <Font background="[0,0,0]" family="Times New Roman">b<Font background="[0,0,0]" family="Times New Roman"> that minimize the error.<Font background="[0,0,0]" family="Times New Roman">  </Font></Font></Font></Font></Font></Font></Font></Font></Font></Font></Text-field></Input></Group><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">An Example Target Response</Text-field></Title><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">Suppose the target response is a decaying exponential function.  When the automobile hits a bump of amplitude <Font background="[0,0,0]" family="Times New Roman">0.1 meter<Font background="[0,0,0]" family="Times New Roman">, the amplitude of its oscillations decays exponentially.</Font></Font></Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">restart:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">Target := t-&gt;(0.14*exp(-4.9*t)*cos(5*t -.7754)):</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">plot( Target(t), t = 0..1, title="Target Response", labels=["seconds","metres"], thickness=2 );</Text-field></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Deriving the Actual Response</Text-field></Title><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">To derive the actual response of the system to a bump, solve the differential equation of the system's behaviour with the initial condition <Font background="[0,0,0]" family="Times New Roman">x(0) = 0.1<Font background="[0,0,0]" family="Times New Roman">.</Font></Font></Font></Text-field><Text-field/></Input></Group><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">The differential equation of an unforced mass-spring-damper system:</Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">System_Equation := m*diff(x(t),t,t) + b*diff(x(t),t) + k*x(t) = 0;</Font></Text-field></Input></Group><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">Now solve the system and define the response as a function of <Font background="[0,0,0]" family="Times New Roman">k<Font background="[0,0,0]" family="Times New Roman">, <Font background="[0,0,0]" family="Times New Roman">b <Font background="[0,0,0]" family="Times New Roman">and <Font background="[0,0,0]" family="Times New Roman">t,<Font background="[0,0,0]" family="Times New Roman"> fixing <Font background="[0,0,0]" family="Times New Roman">m=450 kg.</Font></Font></Font></Font></Font></Font></Font></Font></Text-field><Text-field/></Input></Group><Group><Input><Text-field prompt="&gt; "><Font style="Maple Input">m:=450:</Font></Text-field></Input></Group><Group><Input><Text-field prompt="&gt; "><Font style="Maple Input" underline="false">sol := dsolve( {System_Equation, x(0)=.1, D(x)(0)=0} );</Font></Text-field></Input></Group><Group><Input><Text-field/><Text-field><Font background="[0,0,0]" family="Times New Roman">The actual response of the system as a function of k, b and t:</Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">Actual := unapply( rhs( sol ), k, b, t):</Font></Text-field></Input></Group><Group><Input><Text-field/><Text-field><Font background="[0,0,0]" family="Times New Roman">Overlay plots of the actual response with <Font background="[0,0,0]" family="Times New Roman">k=10<Font background="[0,0,0]" family="Times New Roman">^<Font background="[0,0,0]" family="Times New Roman">4<Font background="[0,0,0]" family="Times New Roman"> <Font background="[0,0,0]" family="Times New Roman">N/m<Font background="[0,0,0]" family="Times New Roman"> and <Font background="[0,0,0]" family="Times New Roman">b=10<Font background="[0,0,0]" family="Times New Roman">^<Font background="[0,0,0]" family="Times New Roman">3 Ns/m<Font background="[0,0,0]" family="Times New Roman">, and the target response.  </Font></Font></Font></Font></Font></Font></Font></Font></Font></Font></Font></Text-field></Input></Group><Group><Input><Text-field prompt="&gt; "><Font style="Maple Input">plot([ Target(t), Actual(10^4, 10^3, t) ], t=0..1, thickness=3, labels=["seconds","metres"], 
     title="Target and Actual responses for k = 10^4 and b = 10^3" );</Font></Text-field><Text-field><Font background="[0,0,0]" family="Times New Roman">
These choices of <Font background="[0,0,0]" family="Times New Roman">k <Font background="[0,0,0]" family="Times New Roman">and <Font background="[0,0,0]" family="Times New Roman">b<Font background="[0,0,0]" family="Times New Roman"> do not provide a good match to the target.  One method for improving the match is to substitute different combinations of <Font background="[0,0,0]" family="Times New Roman">k <Font background="[0,0,0]" family="Times New Roman">and <Font background="[0,0,0]" family="Times New Roman">b <Font background="[0,0,0]" family="Times New Roman">until an acceptable solution is found.   A more systematic approach using optimization is described in the next section.</Font></Font></Font></Font></Font></Font></Font></Font></Font></Text-field><Text-field/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Measuring the Error Between the Target and Actual Responses</Text-field></Title><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">Ideally, error is measured as the integral of the squared difference between the desired and actual response.  However, evaluating the integral in this application is extremely difficult, due to the complexity of the response function.  As an approximation, sample the functions at key times and add the squared differences between the functions at these points.</Font></Text-field><Text-field/></Input></Group><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">Sample the output at times </Font><Equation input-equation="t=1/2, 1, 3/2, 2" style="2D Math">NiYvJSJ0RyomIiIiRiYiIiMhIiJGJiomIiIkRiZGJ0YoRic=</Equation></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">time_sample:= 1/2, 1, 3/2, 2;</Font></Text-field></Input></Group><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">The objective function is the sum of squared differences between the Actual and Target responses at these four times.  Although the error function has only two variables, it is extremely complicated.</Font></Text-field><Text-field/><Text-field prompt="&gt; "><Font style="Maple Input">Error := add( (Actual(k, b, time_sample[i]) - Target(time_sample[i]))^2, i = 1..4);</Font></Text-field></Input></Group><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">Plot the error function over the <Font background="[0,0,0]" family="Times New Roman">k-b<Font background="[0,0,0]" family="Times New Roman"> plane.  The function is not only non-convex, but also flat in the region that the global minimum is likely to be found.   It is not known before computation whether the plot region shown contains the desired solution. <Font background="[0,0,0]" family="Times New Roman">
(Note:  according to the theory of differential equations, the imaginary terms of the response function, and therefore the error function, always cancel.  However, the Maple <Font background="[0,0,0]" family="Times New Roman">plot<Font background="[0,0,0]" family="Times New Roman"> function does not verify this before calculation. To plot the function correctly, plot the real part of the error function, which is identical to the function itself.)  </Font></Font></Font></Font></Font></Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">plot3d( Re(Error), b=100..5000, k=1000..25000, 
        axes=boxed, shading=zhue, transparency=.35, style=patchnogrid, orientation=[75,75] );</Font></Text-field></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Minimizing the Error with the Global Optimization Toolbox</Text-field></Title><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">Minimize the error function</Font></Text-field><Text-field/><Text-field prompt="&gt; "><Font style="Maple Input">with( GlobalOptimization );</Font></Text-field><Text-field/></Input></Group><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">The toolbox finds the global minimum.  Notice that the error is very  close to zero, as desired.</Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">sol := GlobalSolve( Re(Error), b=100..10000, k=100..40000 );</Font></Text-field></Input></Group><Group><Input><Text-field/><Text-field><Font background="[0,0,0]" family="Times New Roman">Now plot the error function in a neighborhood of the global minimum.  Even in this small region, it is not clear from the plot alone where the global minimum lies.</Font></Text-field><Text-field prompt="&gt; "><Font style="Maple Input">plot3d( Re(Error), b=4300..4600, k=21000..23000, 
        axes=boxed, shading=zhue, transparency=.35, style=patchnogrid, orientation=[75,75] );</Font></Text-field></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 3" style="Heading 3">Testing the Result</Text-field></Title><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">Maple found the global minimum at <Font background="[0,0,0]" family="Times New Roman">k = 22.691 kN/m, b = 4.531 kNs/m<Font background="[0,0,0]" family="Times New Roman">.  Now overlay the desired and actual plots.  They match perfectly.  Plotting the difference between target and actual, the greatest difference is </Font></Font></Font><Equation input-equation="2*10^(-5);" style="_pstyle123">NiMqJiIiIyIiIikiIzUsJCIiJiEiIkYl</Equation><Font background="[0,0,0]" family="Times New Roman"> m<Font background="[0,0,0]" family="Times New Roman">, only <Font background="[0,0,0]" family="Times New Roman">20 micrometres.</Font></Font></Font></Text-field><Text-field/></Input></Group><Group><Input><Text-field prompt="&gt; " style="Maple Input">assign(sol[2]);</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">plot([Target(t), Actual(k, b, t)+.05, .05  ], t=0..1, 
        labels=["seconds","metres"], title = "Target and System Responses 
        Overlaid (with vertical offset)", thickness=2, color=[red,green,black]);</Text-field></Input></Group><Group><Input><Text-field><Font background="[0,0,0]" family="Times New Roman">The absolute value of the difference between the target and actual responses:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">plot(abs(Target(t) - Actual(k, b, t)), t=0..1, 
        title="Absolute Value of Target minus System Response", 
        labels=["seconds","meters"], thickness=2);</Text-field></Input></Group></Section></Section></Section><Group><Input><Text-field layout="Normal" style="Text"><Font italic="true">
Legal Notice: The copyright for this application is owned by the author(s). Neither Maplesoft nor the author are responsible for any errors contained within and are not liable for any damages resulting from the use of this material.. This application is intended for non-commercial, non-profit use only. Contact the author for permission if you wish to use this application in for-profit activities.</Font>
</Text-field></Input></Group><Group><Input><Text-field alignment="centred"><Image height="33" width="800">TUZOV3RLVWI8b2I8Uj1NRExDZE5WWlpKOkBMPkg6VEtHeE1rSjo8T2BMb1xcbFF4bFFXZE1XcHNIcVNobVdoWW9lWE9QbVRQbVZgbXZxeXhxPVhqPXhYcXVYYXhuYVhjRVdjPVVSPVV3ZVl3RUxLRExxdFBxPFI6PXJeYXZedVJBdXJaQG5adFZhdVZiPVdiTVl0TXl2YXl2WXl1WVl4bVl4cXl4cVl5dVl5RVlzRVlwbVhweXl5eXlwcXhwPUo6Pjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjpkeTxUeXBDPnFVTENUSmNEWG9YdXNUPGF1cGtjZldNWEBKQ2VVYGROdVRtV3h5eXlwcHVQQ0RTU3VMQ2x1Pjx4VHBRbWxzYl1NaWhVT2BxVGVYU1FPO0BKeFZdd09sOkBzeUZ2PHdcXHRAdHNOblFuXFxWP3c8d1xcP0ZxSmlqWHluWlZ2bnlIRXJtaUJfX3RXaXRbTXl4WVJJSVh2V2d0U1M9O2dRTXdBSUNdSVlyR1hSb2djW0VwcVl0c3huPUJWU1VHdUVBW1d4S3JXYVNIc3NvWUJQa3luS2N0cWdteVVLQVlRWVV3X3JzPXdib1lUV1hJP0lRS3lvW1hAd3lkcXl0WVJHQXlgaXhzW1NseVhhU3lxdXk6bWVsPWRYcXlkSWZ2Z1JJZVNVa1VtVUJHd3VaaXRTO2VRP1M+QWRNYXNua3lTR2JEU3VpbWJTYWJqeXROQXlNdVhsYVRXYUNwO3k/YXQ7X3R4YVR3YXRoP2NqPUdiZ1lWR0NBW2VBa2heaWh5YUlHb1ZkR3h5V2VRYXRhbVZIWXg6U0VJZXd5YWNtY1NCQXZnT3l5c3NFeUJWV0N3UUZ0WVd4WWRNZ2NZX3leVXk/Z2NlW1dYUUNEY3dHdXdITXc/cXd4W2dhY3NjR3J3T3R1S0ZYS3NjW0ZaSUJPcUlySUlda3VJQ2ZSb3NNX3lUU0VXV2NLUXNfcUdIZUlpYVdCc3ZhQVhXb0ZzWVR5dUlZU2RXQ2V0W2ZacE9ZdHZbXFxYU012Tj1YaGx1eGVsXXlsdlVuO1BZc3F2a21tQ3hTRVFQc01PZVVwUUVLTmB5VkFxY3FSUXBZeEhyW3hVXFxBdGdQVmV4bUhIUVlEWHB0TDtleV9cXFhIeHlUcExRPXFKaEprbHFBPXdQeHFPdHBQbXdRPWtXZFNTWWp4aFF0PWxpPFg9UHJcXEhveE1LeHBwZFVQR3hsYDxSYWRXc0VNVWhuTWluYXF2eVxcdF1wSndcXFB0dHQ6bHdfaHk7UHh1RWxXcGZ5cGlReWc8SWJnSHFRP3dSd3ZGZ2NRbm10SV1sWFpvYXV2d1xcXVZpXFw/eXVJakdxeUFfXWpeY2lhXFxedmFZZm1YWXZWX2ZveWRfd1phP3lJUGZOWHBPaW1iSW53aWllUXlaQFtqZltwX2BzP1xcTkBxYXdbPGFfPXFwZEl1XT5nbkhwVWlcXF5hW0FHY1NfeV1wbkhnX29JaT1Ya01gYkteeVVXakZoaENwaWY/bGxoZWxoa0txaz1xZ0NxcUlva0phZFpAXUlPc3BIamdRZ1V2Xk1wXltha1hOb2t4Y0ZheE1YPkVmeD1HSnlZXT11S1dYdWVmY1lDVl9ETztYXW9lRHdJXVVyaElYaEtkdFlndj1zWU14eU1oRUFiZEtkRkVEO01CaW1VWWd2TnNmQnVEZ3F3XnNSWm9pZXlpWUVmRUFzWU9jVTt1Zl9DXjtnPkVJVW1XeV14WltIP1VUaXdoYXliPEVXVUFobWdoVWVlXU9ETHlma1lkT1FETk1zbGVnXW1IR2t5blVyclVoamdidnN0cklDc09pVT91cFVodE1FX2NWVWV5d1dyU2VTdkl3SHFzRVV2d2FTYG12X2tDRWdERUVWT295ZlNGWUdYaFt4ZTt3ZnN5YT9IYmN1X1NpSFVmclN0cXNnSUNVS21SO0lFR0dpRVV4U1Nld2tCUmNpYz9mW0dIc11XQkNlRlNYTWVjQHF3UVlpT0NGaTtiZF9lcGdoQ2NyU0liclVGZktYcE9FPkNkR1VWSF9zcz1HYUVGXFxNaF91REpjWGVXR1NrSUE9VGBbdWhPaUtPeTtJZG9fc0JRZ1BHYmlNeFpJeFs9Uk5RSENVd2xJaFZBcz5NeHY9dDtJZWtlY1tpVG9lQl1ZU1ZzSV1VR2tNZ0M9eE1fY3ZdckNrR2xPeUU9d1ZzeW1vUlBFUkdVV29Lcz4/ZE5HY3FPdkw9RGNnVVVpZD1TZEJZdGFjQmN5VDtzQz8/c1hzQkZFSVBLZHdVaWJVVXVvd3RDeExFUnhHVVBPYz1lZVdXREpfdEJJRmpbUk1XWG9hSW5pRkRZeXZJZkZZSDtFaWZhV0FBZGtRZ1N1SW9ZSFM/c1xcYVlua1ljQ1JYQXk7PXVyU3NVRUdYb3Zta2RVP2JJa3V2SWhmO2hIS1Jtc0lxa0drQ0lFR1NRaVV5P3JbY2h5XURXP1VKd2VvX0hJO0lbaVJQdVlDY2VdeUlRR1NSPVNGY1lASUhOYWJFeWhUO0hcXGdDW2lpRXViWElZWz9GaGtmQWFSeWNjUTtEPE1CTGtzVUd2TV1GT1NXWmFGbm1VVk9CXU1oYGd1XWV3OkNTWFtWVVtkXmlXQ0lUTWtpbmdWbWNZO0V1SWtGWmdldGFTbGtlRF9TbFVkP1NVW1doYF9JSGt1TmFJQkVZQEtoUVtJYlNmbF9DcGdWXUlCZ2NmOkNyT1dXbGlWUFNETXVFa3dCWVFiZ0t4R2lXZmNkZ19jQ29YRHlGb0FGPENZZF9mWlNVS09YbVVFcm12cFdnYVFJZVdHeU1pdU9maGVGWVtVV2dkR3dlWztYQFloPG93c2tUd1VnallkdkVoblRQYExKYXRVbXlvXXhsa1VwZ1BTSG1TT2lTWHRNP0hzSGhXZ2xudT15cE1vc21QV1F0WG1sTERSXmVyYXBwQVBxQFR3dVxcbWY8eXRNb190TlFEbXd1VUJhbFtUS01dVVpcXFZzVVBnXFxPaFhVXWl3PmxUPlR0b2xZVWVNXFxgcTppTkZRa01ldUI8WV55cVtUcXdMeHlZa15tUERoVVRFTFtteGRZVHJVd0hZcHBgUl10c3lobTxcXHJkaE5cXF1WR2VqRXlUQkxsWGhVaWRTa2xWY0lta3VKQVxcT0ZBSnhYVEpcXG9ScFVyXFxxbkVVZjxQT2FvY2lvWHhZVVRSeGhtS0hub1V1QmF2dnh0XUBvcmR5cUlsYHR5Y0V5Zz1TdDxWO0xZYERvREVsQ2hXWWRrcElrU01vcGhuaHFrZU1XPFFYXmRvZ0VtTTxreEFZTT1tcFBLbVRUTW1YZVFMbnVLP0hNZUlVYGBUcU1TZGVOcW14SGVMSz1PVXB4XkBraVlwYHhYVmRvVUBMPVBwckFQSXVSW1FwQFlsdlBXd1FUb01wR2BqT1h5Rmh4QUVUaWVSQURLZ2lvVlBPeVhVbFhUOkl3YzxOZ2VNTnVwXFxYV3JkUUZQUXZsUD1Ub3Nlbz5xWGJpV09cXHlFPVBVaVBBQVNnTHR4WExHPVNUQVNBeGo9QFdpeHdYYFhPQXRIbG9JZW9IaUx2eXVvdU10THRUeUpzQXhCWHJAVHFXWE9zRUtvcHVBRVU8dXlPXFxMVHlQQVhtPXRPVVFuZWFORF1LT1l5THlYYnR4dWhtY1lyWE1raFxceWxMb19lcWB0U2VBT0hdbHFVd2lQbmtQd2xIUGdIcmVoWV5wS2hQd0dQSjs8TzxgcVU9dE14VVVFUFdAUmRJVGZZamphb3dUcU1RalhISlNcXE08RXZhcHBUQG1XTUpAaU9WaHlMUUtxXVQ9RXljPVVocU5hXVBKXFxYXFxMdVtEc1FAT1tYUnc8UmJgUGB0U3VlamNlWVhAVU49ckZleHVIbURta11YUkxhWUVsUm1JUF1QZWNoYHJ4bWE/YXJhYUN4dldRW1xcYVpgeWlGQWo/Z3ZWVmReQG1HeVtoaGp4UXZqSXdNVndQR3lYV19FcGpETm5zeV5FaHZFX2Q6UG5rT2FEQV5DbnhFQW9DaF9ld2M7cGJbSVtad2NVP2twR3d4dmNWVlxcT1dhWUdaV3FiR0dealZrQVFdbVhja2Z3VFZmb3ZaVm5aTHdmb0llUz5lQEh0Y3ZzZ1BuPFlxRE94Y3FiZE5tUHh0cXdoc2ZhZz5teU9lZGhxQ0ZrTldxc3B5XUBfVlFySUl1XW5jTEliPl94ZFFeW3l3XmBeWXFiU3hleWdhPk9rVkBmcFZmZU5obXhlU3duXj9fR09rbGZgUXFnS195Sz95akBweHZ3Ykh0SWB5WWFpP0h2Sl53dlF2WW5nQVZvPVhod2NSZUJJTWZsS1RVX2JgcXJGUUM8VUdSV1k9a1ZXQWl2XVg8Q1N5TXljeXdlb0U+P3R0a3NWZ0JUbXRHSVh2S0RUO0RgYXRwYUdRRVZBPWVmb0hAXVRnc3dzQ2ZXR0ViQ0NMSVl0U3dHO3RSYUM/XWhpW1Rmd1NQVWNTUVlaQ3Vsb0VbS1RuT1NUdURQcWZwUVVfWXhbP1VaPWJgeUN1RVRVZWN0Y3JzYVdJR2hQVVZkQ1hvW0RuO0dUb2Y9QVZCY1lSR2dhYVlic3Z0PVVCdVZJT2VaS2dHbWhIUXJdXXVtc2lmeVRQV3RuZXlaS3lkbUhqb1dSQXNTUUhld0RTPUhqXUM+cWRIW1hISWdrd1RHdXZJX3NnWURnYWJTc2lMWXJiXUljW3VaVXVDZUdOXUlueXlqaVZuTXVKaWJxXUU+PXNIW3RoUURYZ1RcXHFoTndUVm1HZG9TaUtzRF1ERF1VT2tzTz1mWDtYdklkYlV3Umlpc0NFdj90RUFTP2VIW0VIaU95W21jRT9oWTtld0tDclt4O0VDcFVFYUl0Uk1VZU1JQHdGPUd1cUlkcmlYbUFpSG91Ql1VRWt2Ym9EYF1iRGV1XlVIT3N4d0tTb2dWRV9HTlFiQkFkdU1ZUTtZX11YYnFCZVtGRllHRj10WGd4cnlZcEFGRG9pZElSSGdVZj91WEdnXVdndUdpZ11VUlFycDt1PU1IWUlYeGNJYW1zcUVsPHVSPFBNd3R3Tk1xTllNQj9cXGFJaXF2Ym94aGtud0RPdl1ecjphXFxbV2hFeHNuX2NkUW9ATmddb3JMUG5DcHRFP3dKcWk6YWRgP2dqWFxcQm9sOkBkSmlzW3ZlbF5wSz5dVHBjSUhob1Nab1hKT2h3W1dnc2VzdUJmRWddPXV1VVk9cVhaV1ZZTVNaRUNIV0hxZVg8U3VeRXV2WVg7QUZRUUNdXUZsXVNOcUlPPUlMUXdoSXdab2VxRW9PcVZZQFRUcHJXQU5xWXN1eE5BQFdqbHB1YVh5dG1YTVJrZHBJXUtcXExUQD1QZFxcU3hISlNYTmh1bEZZUW10d0poV0k8UXN1UlVwd21cXHJRREx5dU1nTXY+QHBTQHBmdFJpVW5pVFY6dVJSaWw8bFJZPHdsdFNWaUxoSEtEQHZWaVNgRE9mYVR2QXN5TXVLbVFVaHZxbFF1TFdAcWxyYFJkZFJLSW1eUVlBYVh4ZFBcXFR1VmxrdE1ZbXlQQWB4Uml2UlVvTHhLbUFOYWxMYHFWYGVURElPO01ZXFxIb1FpWW5Na0hMTnFoeWxVSlxcdFNedUtKSU1LQVlbcXVmTXJ4QVhmeEp5WHhlYFJQcXhPaW9ybEpXXVhFSFh3XFxsSnFyPVh3TjxUPmBuRlBrbEh2XkxUZF1rdml1Oll3bGhXa1R5RHBMU1VWVXFRQ0F1VFRsaVBvcHVvVEhOU1F5UnRzPklxS1lLaFROUU1zZUFqb2FsclF2YklzbE1wPVxcb2pMVU1EdURReW1hb2lRdWxtUE1FTHdocHVwbG5JdnlwUGBYbENETT5MWUBgcmRxdG95bkBNTEZUVVVQb1xcVVdSXFxXTWV0T0FvRWV3TElVY3RSd0B0XUVSR0BYdHFLdUhRV3FqV0xxWmBMVFVPVHVzbUhQY1lrP0ROPXVUXFxhWFNlTE51S3J0dGZAa0l1blVUWENNdFl5UlVRcGxYd2BYdj1pWHBwdUxtUlVxd1RNbVtdcXhoTEVsdD5sTmlAcVE9UV9sUkw8TmdlcmhoWHdBcnlBTD1pd11JeFlUVXloajtwb3FYUG1VZ0hHXFxnYW5mV2ZGPmhyQXd0d3lbWXM8VnVHWGhTR3hlUGpNXmV4blxcdmFiSE5qVGZmRll3RE5yZUBxb2hlSFdtb1dgXVBcXGdmcV1Ja3h4XFw/dmtubmNcXGdpdXBvdkloTWFaT0lraklkVnF0dj9lZm5oZWBpPU9peFZ1ZVZvcHhqSk91TllgW1dcXGpYXFxTTmtlcXJRX3BVZ2hqTmlOUXRwR1xcQ0llX0lhYllzQHd3QndcXExgeE8/cmBxWmk/Y0BXc1dgXkBmam9nZXBwamtJcG5Ya0tQbmRHYWRHaWRvY0U+bT9GamZfYllmXFxcXD9wXUhpZU5xV2dnZUl1Q0FuaGlad2FlcFlua2dlRnlqdk9odV9bR1FrcGlvU05hP25kaXByVUZqY1ZcXHBRbmd3XVI/XVdGZVd4YD5pX0hAdEF3ZGJueTx4X19PYEZ5Z2dxdWpBdEpoYWlBblNBcz14d3RwXmFZbmxvbG4/ZVlRdEFebUp2d0Q/a1xcUWxdeHFNUGNgX3NqVl1ndnJlT3NJT2twUF5WeV5bVndgT1tnd21McWldTm1aQGhCQXJpUF1PPltASGRtWVp5aXJbTm48WXBlTmZvbnNvXl1kbmZJWXVYd2tFQWNVeW5eQWBdVmV5WXVsUG9nQW47P1xcSz9tdF5ncF5qWEd4Zj55c2Zac2d1PWBzZWJfYUlFU1NKY1dld3RtQ3JFQ2ZnRVJhcUVOQ2hCO2ZeSXZ4WUw9UFNdPXlLWG1HZU1ZTG1yVFNCcExfYFVBbG1YbVhsVVRYRW5eRXNTbW1meVJFWHNERXdlbHZRcWxRYVhAQHRqPHBrVFlrRFNOcXhQUWpsdXNpVEpFTFhRXFxSd2BzUGFTVVlKd1BqZGVzX1FzS2BqQElqX0R1Rm1KbVBMbWxsaDxTU1BLVjxXW2VPYWFUTkB3TGx0dj1xZEBPT0hyYzxLPmh1aFBQPUFwU1VSUF1tYklWU3VybERMcXBLdWFWbGlWPklvT3hKeEx5R1hPaHF0PVFQQlFWSXRSamRWP11QRlBQQ3l2c11ZQl1SWEFzUEx5c1FUXk11TFVPRE11ZURQPVVQcEhzRlV4OlhKYGhObEVZS3lrcVFMUUhTRXVyXmFYX1hKSF1VeXh0Z01SQ1h0anVvP0VRV01MW2FSU2lraWRvZUxzVWR1V0VNdGhZWnlRW3F3eEhUW3RPdTxWR3hxYmBxcDxPUUFXT2VZSUl3XlR2YEhyTnlQO0VLaERMaVRxY1hMcTxOWGVqc0VLc2VUO01ZQTxvc211ZkBVQHR4VU1KWWFNRnV2VmFqVWVsdl14WGBuY3VUaFR4Qlxcd3h0dkNpdUBIc1FVUTptc0p5VVZYTE9lVUFMbWRhWV1UTW91cUVFeFdgeEs9UVFMeUdBeWlIUFxceE9mXXRHPmNKd2BneHdeZl1tSWRKd2dYaXliWF1fXlxcXXhdd1hvb3ZmSmB2Z1FrbFdyaHFgc3hxVGhkX0F1WEhvdGF1eHF2VlBzPmZYUUVHX1lHeXVqR1dxYUNPeUU+V1hbd3VFd3lzTUhzQUNhd1lmc0lpcXZXaVdwV0dvR1ltcXdBZWg7X1hxR1N5W1lRVVc8a0ZhVUdtdWhxZVlFO3hkd2JEVURkV1Y8T1lqbXdjXXJMP1RwdXdGX3NuV3VtaWlhQUlueUJbYVVieXhcXHl5YGNTTG1IeHNJbndZTHdmPW9iX2t0eGdVSldUQl1UdEl2S2tERE1JQ01WWkNIPFdXRjt2WGV1T0dlXlFlTHdpa11Ia0NmclVYdV9EZ29DW09JeXVoX0l5YltlRWhxcnlRP013VGV4SXVOYnVtdjxzT2l3eV11Tz5pZT9vTlhwbkZiXWl5a3l2QHBuTT9eYlFiY09wXUBwTV93T0laXFxpXXRWcEdJdT1QZGJIZk14Y3hYYXQ/YVdQWnN3dz54YUR2djx3cVF2eWtecGlBcl9AZmRZeWZveHNhY3RXX3V2Z0JQbXF2bUtfWk1BclpXWnlBdkNQbXVZZFxcQWJacF1aTmdYd3J5WGF4dmE+d2ZZcGNaZ2VtPnV4aXVbR2lZbnV3UXU8YWlKbnM/XFxVTnBxSGdqZndocVtiYWhiQHhDR2JIVmtrX25UUGVpb2JmeWNVZmBYbmF4aWRsd2lUSGptaGVGP3N3PnFXWHhUV3lnUWJ1cFp0WXBncXBrd3dmV3ZjSFpjQXdbaXVNaXliXm1FZnloX3l5WHNJSW9zWGRKZnh2cV0+eWFSX1pWeHlcXGJTP0ViQXdzXXddd3ZjT0ZvTWh3U1VSYWd5Q1lkaVR3QUJ1QUVHV0Z1U0lHb0VrS1lJR0ZZVVlddXdgdXdYb0d1QUZWV2tHd3F5ZmJAcXJyaWZqP3NZcHU9QF9db249Z1tRQGx0UWJRTlpEZlxcRldlXFx5cXV3WzxwdV4+bHZReFxcWXc8d1xcPFZ4UlBuPXl4aU5bQ05nQl5pck9wd0duRWZ5eVdudHF3Omd3RWZaU3BpX0dcXDw/YFFueFY/d3lnbTxOWl5xeWFHcHh4aU1wa19PaHFZcld4XFx0QHQ/QHZBQVxcZXFfclFxdj51eUB0eWFgV3l5Onh2bXlzWHd5WWZbTVd4b1dtSWd2b0U6O0I6TVRLV0RLV2dKO2VaMTo=</Image></Text-field></Input></Group><Text-field/><Text-field/></Worksheet>