/* to do 1. add capture parameter _ASMJOB_MAX_INTERVAL, default 5 mintues, positive only, finite, dynamic done. tested. 2. merge script: start original propagation before start original capture. check split script done. 3. when add a subscriber, submit a new job if not already exist. done. 4. confirm by test: disable split job after split and become not splittable. tested. 5. add error handler for release_lock, ignore return code 4? lock_handle is not null, when capture aborted, release_lock get return code 4? done. 6. show job next run time in dba_streams_split_merge done: also added script status tested. 7. next run clear last error in view, split job row. yes. confirmed. 8. if merge error will set error in split job row? no. confirmed. 9. merge_streams_job_internal: succeed case and error case update view conditions are different. done. 10. dblink for sys done: use dbms_sys_sql.parse_as_user for auto split. tested. 11. add dba_streams_split_merge_hist done. 12. add action_type_monitor done. 13. change the merge_threshold/max_interval of an original capture should also change all its cloned captures. done. 14. changing max interval should change existing split/merge job next run time. done. 15. write error to trace no matter tracing on or not. write summary of error to alter log, give trace file name done. 16. write to alter log: start/end of split/merge, with all names, if write_alter_log. done. 17. both split/merge progress show in monitor row, and wrapper error done. 18. cloned capture and job should always on, but make sure no auto merge job for manual merge. only for cca. for non-cca, use should start cloned capture. done. 19. don't drop split/merge script. need to change script_exists() done. 20. auto merge job disable itself if cloned capture is down. make sure not during merge done. 21. add wrapper in dbms_streams_auto_int, print error stack in script for auto split. done. don't need wrapper for autosplit. 22. block number in comment of split/merge script done. 23. add split job status: nonsplittable, no error for this case. done. 24. confirm: clone_propagation does not call enable_auto_split? done. move enabling code from prvtbstr to prvtbprp. 25. new error for can not get lock. action: will automatically retry. how about capture not on/nonsplittable done. 26. check all release_object_lock, add comment, handle not null done. 27. asmjob_max_interval => sm_job_max_interval done. 28. show split row in both views if merge is not done. done. 29. add script comment, make sure all names are available, for both manual/auto done 30. downstreams capture, real_time_mining done 31. remove dbms_streams_sm.recover_operation? removed. delete generating code in error handler. 32. make sure all hidden parameter copied when clone capture yes. copied if set by user 33. ready_to_split_ccac should check capture server not active, but not inactive? done. change to not active 34. test for downstreams capture 35. preserve propagation status when split 36. extra path in performance advisor when merge local apply 37. missing prop name in v$propagation_sender after merge 38. check first scn of clone_capture 39. cca: always keep inactive_time in capture_server, even acknowledged. 40. Test: cca with hard error (instance shutdown, prop trans error) direct_apply=Auto instance shutdown capture server inactive immediately (after dml?), prop remains enabled, no failure, even after dml. time out to acknowledge split next time nothing to split manual split works, then start cloned capture: cloned propagation get failures!!! 41. break crash test into 2 tests 42. rollback error script immediate? 43. when drop capture, drop split/merge jobs, (clean view? how about unfinished split/merge?) 44. when start capture, if cloned, should check split view, if no merge row, insert 45. if not ready to split/merge, clear script_id if any? 46. if script exists, set status spliting/merging, or like 42, script only use once? 47. think about crash test case, consider script, job, view status in each step. */ /* questions 1. fine tune of next run time. how to change when set thresholds? don't know how long already waiting, use status_update_time? 3. what to do if split/merge script errors? should be handled in current run. should roll back, what if can not roll back? what if keeping error and rollback? 4. change original capture's max interval also change all cloned capture? 5. monitor row show script id? 6. detail of clean up function: (script, view, inconsistent situation). */ CREATE OR REPLACE PACKAGE BODY dbms_streams_auto_int wrapped a000000 1 abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd b 171cd 41d2 5mZzS1q66dBUvJiGGMqjHXVhETQwg80Q3scF1GGPzxDklM3yh/df82BKt0diKZcqjr36WlNY pu00lhajrHncFAmcGn4XxSQ/Ix1Q2SlgC2tdFCtsYVkzI0X4itnYJM47qu6MAymlskUjEgNt v/h5wtuqlrszEzANGYw/tOYRBp2rRLYsryTWKRRfkrfn7YpyW3L4TizarkXnpE9RnwoQJRVV MarWfNTXUUT59t+eUTCLrkCvXRVXheuM0aRGYWA0KhxpLL27FSyjp+/QRrqu6GRg+aUVLBge 2g9ZOcx8kA6ZJBhJ+R4Wy8Y1e4po0G9OvexW1Bf5dnjL51QvI/S1F0/3MpA6H69GPxyS76ov a6UutJmMvposB5oGswZwtO8dnYrQaXz06FP4Os976NdAbfl9GmxZgfHkmSCjh0re7db5dP6b CHSke4UOJFjcwq5Jc38kNHDmtfI16w0g0Eiawp0pMWSaoCU3CD+sqLUfVW/5M7ozu+pyc77Q fcXcN2MI3E3Qv/3tWDqajyuddrM7yQzvunLu9yAfquw1ojcMg4WqpEbMVFvRF+sphbuuwN10 6G2hXXKyKOE2k7jLLhxGUwgRRlHB+Rps10IZLAIimPORsa+tB1tbAEw1wZjRHc9FHJ7+7pMk kEYo+o+WLnSQar3gXnRy1Dh67IdHc5M046zMuz164+RX7P5bPwcoMTmz6bvAQpidBRtSm0IN Bbt7VQuOEFphvaMGtQV9ciQDjfk6F3svBhB7mNGDNIQeQy6Dw1sf+aDwK/ZfCqd/uzz2Es8U eTH1rwg6Taqv85W0Tw/OTMtawMrPf7B9vbjhs8/3HKYinoFfma5tcxsP5noNwLoutQHEzlwk 4/+wTlfPf+BLxp1w0nhK4D8XMc0uIOIHUKpzHw9Mjl9zKWbT6qQa0G7hRyS7lmDzP/aAdECR 4nVZYPsLubhdY6YEWcYD+XrnCDXwsISatIaA3zVXmwjuNjZ9Nr2rEyTN/K5kLPIFnK7vaoEk +eRO6w9FSTaeMafkOFlnawBp5o5KUPRD6f0cwjA23Zk80QY0LEY/X7PPXdALqiJP/+sX2/3H ZvP+BwtoC3eZGwR6ry/WYSyGKjBNLouFSHt8RK8YAzr1L5alWXU2YHXgXdcFmLVxhsYjA8bQ oFVES54QdJvMIntcJBWOTSSrOk5XIxlPL35Vl1pIOOq1RBu4f2BcdrOcfRh4MdAlkyntGw4i dtiNOgDD0/xNEL6+vkxI6pjXe7wxcWzK2wMSWa22RCZeehk4EWloESR0c0J3E1mwA0q4vZh0 f58FSQ3zzrBDJ7VIA/AIAqi0/a6sn/hDIr6hPPgLRUGJiEd8MEUvZFY5P4F6BDqO11HzGffP UdaaI4669ZFurzU+JH505ghP0Fx6tzMID/jW6UYmuTCKKB3PJpteL/p9oSO+pQp9EXigzpNd H2BnVrUrS/YfiKroTs+mnDouIAxu+dK46wy763xzgv4pjVu5nxNVINI9yZDSabVVIjHC/mwZ borcgv+RnHFIPOraKO2ailwzRLUSE4q54v6YQamc2bioZv37fKSevA7EzHEeA1+8mRqw3hHN 6nj6i0i1WjZ1fON0mAc3dd0j9Ecf+JCPjbbbQn83jSWILV/unhUweyh8DcYgGMcgnzE1icrA +1FRfXCR2o7TqBhMz1rMM2ZlZ/J9NgQYBnVFobyMZvs7rmuOtq0ucWUb4PVAYbSffOzcpYFa B+Dm2qgIze7PexNjm79irA2DlRPN/HMn7TTc6eF4LYYbMbyuUJ9O9OcccehagJpVh2Qzf/YI 3g21qSU+CThDBGP9KpnFzqexyKFBODygWhtSiTWp/c3R432180DGLAY1L63pvPAPsBdjFH5A pqWXRtl/0AkQLyBHLCjmVeRzL//K1InJV+GBzL7L/MaqUl83SajnJwTVwi+1oUmvWaI5rytA ETltQleQ7zTtLzIaTEOupG2mKWxDZI54sPB6kgXSPdty3icI+KCdUF42AC4FhhQgx3u9USlu UlGtCSYIueJhE7r53Pm7i2JCwCC25KLl8obS0M84OYcSIzPVOZZDy7JxEFe5vYzrp6W21z7I uIx6KcIw4ZaS7NnhrkoJyfmB3U9/vaSdCSGVIDIco2NnObrpFFJGSJjVwvtQA/d1pkDzZVF1 jJ7klPfQdF1lxuYlE/NA4q1CPt7XymSzhmZt7/aGJX/Gl9O6ayxCsdtskVmnMPtewJeHJDWh Nr31qTjpKWxM0o+tYPdUFn3Mdlg4gDO3UVvkIU8pfGuCNh2bubC3NST8j4vtdNAw8fXMuUmk 4+KjRpQZXak4dDTK5gubHisTjHfzRDpd377mzk/DGn6v1Rqid+87BtewMsIBBrA2dMPW0Ec6 aqfPBm0xyBhAWAaHxnI2s4COBbx3TVAmQMhUmHWFLu8kmz22XWF033noJntsyfubKOSBMIvy BFluutwc8lZXdRoMpwfMtHvM95AVb792W7OhClyLnq0PDtAKXbZFmO2jubfV0PL10H5Ff9pD N0vT6AYQX5yiwO9p9EjlFpYa+wRMxVaZN+shUUsn9HyVZfqpHp1oS4c3d8FLRGmFeo49BpFJ jCGOrJFIWAd63lyPZ4gmltk3ZUHTVSxekxV+w5y1NvNGFzgMpHUJSKLhGbw37yp/GlhNtHyC 8pUNYHWz0m7jEGddrgyb4Vvukb1z1tDEOYTVUr/Khr+dNBNSt0zWSFmRaLzCcJVyjHaZ1LSW Gk4PPbRkp+CEMpG+/H9M/PeN7kUYztGGMpRJeeP7ggNwTakdoArnDmyln4rKRsdeU5gdaK73 ahJ34kLXxU6/nmJaqhDkFP00yB31Q/v97uEepTer8jJDRJCuDWJB9OVAhVQnkxb2iUlaPOoA jHsExDFjES2gi98LkYIrdzf31760uFJAmrYs3wBOJ6s9+WbsmzdRwcckzyKksgLUX5VZjWTx /1wtkRpWVvYMVG+XN8q6BWg31tNLnvkJQ1RSmxbHJuv3bBckngvcNW5ONuih9Elret4Ztz4U aBLT4V0TiALPjCS/lSbkD6/0XSZdy49Bj8vxa9Q0FA3WJClP8DYsWVvI65gfKC58hRGlvRe2 1HOxf+1oNjzxW/ezkSsdQoq5GRlwPqf6winERpMJNm0nI0hZ092/5V7ulTGuMIaRsFHJk9+Y pkV57nkXdgNNp41pczXd9TqovuQADaeo/MtULBFGJ8WHkMjnPE3VK5IgenhPt5diARCsX4MR KRYl8Ml9K7SeygZXvY2BshRcLhTciswuPLMwHZQmyaXPGUKbiXvysw/QfWT1wGX2L+0pOL1+ aNC0Y8oWyOFgRO+0znTEY5ni+k0JOv3f5U3JlJVLBv/YjUAUC2hGMuNuE34M7mAUhZhQJ2mS BTH3okZjvLxfhfHaL/NFk6v0jbNBE9BcP2ZYLN+jIDPj35qWmoe215IAJ3dikfKe2A50GF0d 7y3R5StewAe/gUByTGWRYX2ODa2d62+uoUMCfJgdI/amzVm8+f4pzl7Xu4C4YlfzDUHsKo27 4DxqNEdmqoX1/cr2SfgMWvchw7ieanVTikqEIU5dZOukpckRDlRyye31pmFYXtKM4JrsgfKr PJscmrhLkbfP78RugZFIdh3Iojn3kLZ8GpggCtw5vtM/rC2e7hP4CK0iP68xiWjpHRPP2Men cQm3yQDzF/PjDeNObHg3aJMp+hDKVol+xBM7X8QUteaD9PSb24H2EsSHZDy7s5jXK7ho8c8E qIu++/Xqp9l2hoznye8kFx5eD/VFmPGKycbUH1DUwzvGv7JlsIfZ8rUJGsnLUSbgWUnO6cOj yMH7vfLXk2oM9uaIwvaF2D8l08pjEshSC9Z+DYwnHYiq8hj7rtP4ABTEIBU62KvDRHv3Az9Z W+bkNdbIXne8BCGVoRrRfF3UpDxgNAhsR3tlXeWTMqK4vzUeORkWX6dPiKID+ekkddt3C0Gr G46hZ2mQdtk5mdK0eaKxkPkOKMELULKENAdT0Jyl1BbQVB/esM4u0Z533gxMrWFs82FOlRqM UvmsKy+aPilSN3m+I9wRCv2yhFwIArrBpvZQmxfv6BhGaOjyq+bRZCvaFTpeHg6R+LcqyEff WgYqDS0U1+9jR/rsy5PZTp1nOTRbhSFbL9ACXAhSBBwaqWYl6oLd8TbH93ATLfaZNM7Oc+xL uwLQeNx0Td6G3LpRVs6GIIZxqg6800CIZWFj8EJ1viRCMTOD1pV2tW/z4snRBEqjAgSUw9jy 53cYWH6KYF4RoUXUBxW3bKcdMKlDSXoOs0zC+EZf00z6Vn0qaQI84fm24Y5sw/y9gxqIGVo/ XrgDMzpoqlJ7yxtthSzt3pn/GpE5/6/In8SxFD8zzYGLm/5haONS2qDzjZ/3+zERVGDpL/Gs ucC+GdjrEad1YNu3iIN5C0v03hrfYCF+oHdi0HCWIuxjjPnDvcBmjDE8Yq5s2NrGjawX9ELX VbbFyZ5LyYuQMCMc/sEfbX/UdKiIkhYgNU+9LV9Q74yrlK5wHWX4iYtMx3w4jS+ZM3NBj8CT MTPV+fEJngTfaAiIyt/d1cViZMl7FNMuR5HnCqk8+kY3H5mq7rCsvZlvjbzMtGbWLFHugC8U wKjm3jsY9EFoKWNX2uuxNesp/yTmeDXSJZDEBAb3ASq9Fsp2ymLWOrABoGimUU1JcaoCSEIz NxTMdyWnHfZl8EFbt21XkFuuVgnVecTJfOylvtFjl95Z8idIKM6gsfpJ063jKx5MwmNk2v3w ZVLWw43iNLgAWPRfW6M5s4ZL5zeCpudjGWSsv+rpLj837tA6oo0znydDJznWJFzMaUIAlj5i AUDP8gZ7dzFG/o7XmttFDMWPWvH0yN3zHRzVCce3AkIipPDjviVI+JzDp42KAmL6w1qncMDA rHpj23B+MT0trAyOXtQlYjHPnAmxbJd79RNZc8OWRTqbIwPc4tu0yXtlCMwKi1UZUzX6jrZp PG6J6BH2G8VxBxPj4AXBE5iBlIlRcE7eF5lbsEEm4YKx6AjuK3adaKhCf4ljZD+pQ2XqoTvQ nmXwQ/HeYoO9rJ2FMLdEXbtp+1lEIqtAO0OmLA15vRAYVxd0WfOQIRzKNc1nrPMWqqM5EmlE bWkd32slh/OTZuGI6mdTD8dtAUryG8RUUPMZ/KTZ1F50Lk0at1ZahKLQ6vbCL4X+m3zRwjJR PfJXlSsz9ER7yRy/3w41pDpMUPgeUNwFTd5ZoOS4leXFCrHKEF7OYHKSHxDmpbxF+flccaqT Xalm/j1dNBTBD5Syc7ob//KRCvMFlPj+bxJy4Yw/9Nyg5Qys8wTUzR4Gounnw2kUqR+ej/TA gHr3++GFaE+qYbMngLJgDP82Y0wKAmqYaO/dsNkOXbbMDqt/WDLzUg0HpjbLQnsRIyHe5W8O OPGwLfN0lc1HUZQq2SK+pYyqKY9WOP5na9U+MyRCwwTzKbk4n6aqedkLUNhknNkq7V27K1Rw BapayOy7bS3kd/oMH0R06FSPETRg4JnZlYVYrzhKp9Ue8qpTDV28qVtRxFwl4kKe0YnRqbIT JVrB9ea8L6Hrno+93uZNKKng/JGFwLL4FvOb+3pGKzt64apbIKqZTwG/kiSg1kW8S507TyM1 X5hYYdPstKC32i5Umz2Vcwpt+B1aNqmnjp9SW30cJ6Ssu95Q7gC2Uizd7qTdm0jmyS34+K+5 gJ/5Vk2fseK7WyVf0LxRchHUEzRlshEh7kxzbj5bmMsY/KkzOLL+LGH6uWqLkhjv4Wkposye cgMl9o/FcxCMHxpdPJSWF1VQW5zj4aV12TYvtBxOJCqHjy+zG03uuLeqyZGEfwnksGDfidZH 7u/9WlEr5cYFILVn+LIHBdaVV3ZfZmR4rdArbRr8zAS5rx/1TYRED4m//TwhM287t7nDiopI R4A9Iz6adcnrOzbJQ5AnMi+4cIJIRwZX/kOFigZTc3JXvub/GbcGy46fKXBKsSl3WzI00d8j EKElcS1rCrxWgPtSmsJ2CH9ycQY2rsfUMoVFHAOZvvp3zI6p8WRqjC4o/eMGHMo7eoqoh/uy 9tHzBsF7XbFLnaqitE+wbbGUFbWi6Ozp4eXYYUYon3gApESP0Zsow3n3KUIvL2Z1mXEJ25DS 0goc+9D59tpWvaXUPac2ymNqZFZEMkUaehkv3wgZLEt3jTXdRcSNY20xtVITFiPrF6BEjfzA OeX/ozRhn9m6L27CIbzY03QwcoHyulvaYc+tOmqCREUcwCpGCnA+0CGUv6tD5dJJG+6dCXBi hUk9stjXOlidMASkjDF3fTz4Yna87ICkCO+8aHBdE43wRIh8mAaSKCpepyJepco61QdbUYS+ ovTJ7p+bOmW+VWTf9ig4MzZMSOLT4NwOfViESky/J8zUUdtIxM9PJkOHcBsgIjPlW8pzQ4Qs a4+iYneiJrc+2+jO8113UN4mbgocpubgYF1LjjVPjCihBU6pNqjdNiknQS+eWTB//GO3Akli VLKOZsRBiUn/No35zxmqhNxBG3/p607kCv+WTNLF40HrrlC1cDk5buy6GxbZHMX/tfX1b/tQ X7qqwsZxeGyDeNlyXYyR+FJCkD2e/KE1EGX47Bjt7JgOV9MgPGUsGlSoviuQR2bVCja0IRDS 4NL96KHvg7f8SE4St/4oN/sV8T+6WJDq5dLVRZMy48C0TckhK1ditwHiBfFz1zHPyUTDQzpU bApIHT9Li5mS0W1ceSauvIBzrrQ9Ztw1QwOByY074azeQdIjg4/moQojepBCB2W2gLfGZDy7 qt0AZx7DvNvcUCq6sMK6YqDyIruGzVV7vJd5w74SMSEbfeKMJPt6qQeDqo9PuyBIvJ1F5iwi 5M7rCNf8MMT2v5QyMbnQkHwwexuLiU3JFVcY6tXFDYJ9B/Os6kqSqFE86tIABtl9P/5kDz97 e9N1DRfKl8D4+5uCpw2EwWEBKX7t4YwNMBWH94jseaQAQJ+SHQKAtzPextncKu1P/tv3KPf2 1r3bQXWAKUMpU9i+KyVCPRO+WIPap9e3ZnqU4ywX63DiCtwqTptEI4oIhUg3hWcCHADhWObj F2PKbioeJ54Pn30nI+7LTNZ8OR1rPeFn8qvwbg8qlBvhBhOZUaCV6ESF8n6eUPlQN8EutRG8 2HRNBXA0EWK5pU/DFuk0p1uhZ8uk8VFSo83jxtmnZcVxSKVQEv++VmQDj2z1mGjgHESMFRtu n0PAfHFmBJKiubtQpjZH3ja3TqYDaj+XjuYCApfOa+4X+oeOE2vVZTHDGhaFQSZAmEulOSwk mmliDVQVwkeMyyVr21llOsWDo6GrVYpejpIRZ+CnhR1jKfR6lI5qsfWonFERIg7TDx5tQqLY v4uFbp4GM3G/KNIOFWoAFgOCuRAiFgGUsiIWjXcF5kJd6A8sw75bY6I5WiiXfWrDgTUNd+Pm tjMhcKHrVXxo+8iUFIyEm6zbaVp26ZXALkIu50fxTSdiSwebtyhpRSEOVgckdwHZxWBr1yuZ aBv3PdsInGhgVmjAJH71A5NkM879ehGY83hmL585hqIDPl2Za5EwiTZ8JuxtMcADwTHiD9zi 3Fj6VpkuzCb6VAoqJum/3Z2rHhnmTqnDmvQ8qytN+EoXqqTYUKlOYu54rK2mi+cTBJs2AhgH dxQZzcOlyKQ2v3lkKzefcx//ymIbr21EYLhndRpLxVXOpqGGLwsL9NLCEox7CFeXxTCPNBFh V2k+y7ASpdxazL2pDMNzHrBMKDIRV6JjasXcjRkNES5L2HFL1YnWuNZpycjfengSXRrfGH85 /az7DRagppj2vtaXRWPW/gdZQ0Etu0Qb3uB7eFauKRa9NkfuoY29d9HD5fft8VOtNqze6uWC 5RGMY7opK/iOU3jwVavu/+fOdU/E4IF5KbE2Wn4LTRVtow0g41pSTGhv3diNWG0CJmBLNe1f +PQsBOozsZWIQ/+1T/QW3TbKubTmRTWFqRtw1Nz5nOydAumZq+vh7KBDO8DbLcjsxb4sjbD7 sKxGwLYpzD3ojkVgywV2l/V8OQX7PlyEoUrnveMHESH9ny09gEfOET40+jAAQU5/H1OqWib6 KGUJKVz/4T7dFZVEDTfh4d8Nq+pNNTI2ygcAbaScvtXGrBbeeJrgwInsHfsTFh5m21ZmY22E m3AiTV7K4iL2M3ZZmWMc1nNQJ8dv8Bry/eGT+iNii7VjCNOT6JuOpuhx2+Y4urwRXgzsinGX ykNBYpjucd1WYJBz2mIOPalYKzHBUsw6UiYqqNFdkZNhL0PRGg/fJzGyGwSuOYTmPEKLNMsQ Nl3Q4iqQvADwIJiMgH9jQ5f5x5xoLa5FeRP7tKZ2kCtqKSndNjJxc7gIm7qox796/ls/pdOa rWyxg3xfzr3Ifb5SJF565+M1yzXXEhbzSzoHwFsVWfV7A4dXLE1e1yP85EyDRGcAJaZodBSf F3FK7U6lX7+KuDCHX+gXc/P9SjVitQ4FeRYE2850ASoh7YJnGuXja1gfyva9MHQnKBiUpVPt LqcFkKNiommpu+p4vWL9m/mGxMQF182bc/FTi8YFXWWTEFlhDdM1af4iIh6MXvV3Dcn/iWp7 2Q8SC1Vi818Cv3E0mpKB+RJxbSjZpGlnGz2vPQDA7ttPiVe4UF95UDeXrQ09IC7Ea9IQuJjz G/bALfO+YZLGMPf5x8SDLB5slkOJdz5O3G08U0zfQiFzBt6PCPz2N126x1RtvvsOAkDAf1// QfUZinUIc7au/gqlL8iJXIIb+2ggCkYKAlWz4Q4eSCIM/Le4WXeHmi4pafTUTEgHPqTVkQVs dJr14hBjb3dX5yb7fKLat4vp8OIE3xR0jJLgdUrQdrpEtkHtddaz+YNlJ8qRO21GE3C6ToKR pXfh1dUm89SiqQ46l/NQTTcO/Ya+h3k8oek6St2IwyFu50p/cA1q+X7fI+8j7OclZvjcx9Vy AobiRsECFQJzlwKZ6b/gYiTLTCi/0TyxtHE6jkfPD7XzwYPRFh4+3mbT3DioiUmYgxRZ3mBO VT04R6nsQulYUPeExfXLLqxnlWl7OCywgzwU1yfweGmmcEezSLnjEB15GVJaA+MGXvQ6gSex Zc/UCCrlyycXWgcDcCEYjLG38VC8qlS7SOqxsdv/0qmPSL2aA6P7dtcm59U9vMkEsoxt7hPY kfV6BNJblbNluWtl4GMiXghXCazmiLNp5PCgjoDbO2B/ORqL5ZwNA4n0Ywqoku+wBqopAR3y zSk71r1yuGCMCmLzlm9fmktRjrVO/NBX71GcnNkMr+L7jXDzrhkKtkTNzjMNg71rJKopDLTf ZBOvjwVnpKMdcU0X0HSUzAJLNGhkIhtYcL4MYSy3YlyWCL281/XoitqgnMcmK8aetSuZl5tJ qWMHjLfT4zHOgKNsHZ100I8o0FSGZtJMOBnCp+gDhYecsHrKlrrEMB2R+irtADiuw5slHoU8 QJ3z5+FMPpFyKQ5WS9ISJYAjbkxFrWMTzXsG83pRMNzu3Z2Uns9aUcm0th4qIpcgSJnjOMY7 DET7kXPJlPg+3S/XBqsUa/tTXyh2zDeaSQ3cEds+/3wm9aBMmPSYLueHmAxL4XMuYpF42wef M0BMBmssy9u7mGafWK4POBoM/KJ2dDtXUbobRp4nJ6EpietWa6NhxlP3CwL6b8aYh7zBVvKS zid3xP+l/4JiemcmSWPRq0umNzSvCCbC8LdviRwrXhOplIcpeeFOeoPJ/29MFyc7U9j8MPs9 Nv6Zf77ln8L2Eye9MN0BK4aZPP3xZDiIgtBU5lu3Hl3xRQ87PG6jyxWj6ZaQfW4175+0zShB ctquQSU2b9Kx75L2NQbRUqYHR7qUbODAuqZvD7YdR01TQEDvc1dcUl1fViAOwI51IE9iUXVO /KQuBVHRjBNDpHzitRrgBvu3qaJSgSRZWvKZDoUl8S3oKrQZd6tyeqqM9Dhg+4p+e9B3ArTb Kim8g8Yrdp9uowpDvGM84FJ+RfF00W7Hb7Z7pVRTjHr24VWMGWNT0GT+xYpqSqhPGnAcPG64 DMhQnv6hctzs21CA86FR3ka7fEtgTfiugLV7IxEI7HvXaIzjYrSoOvn12mTKnPTXLsk4wZec 50pds8stURtLY4igLm/8p8nZ0SEQt+hRqRvDXX5xOS+7Rk3MjtbjoqQdlrrW4nic2fbUVbHc 2vGxFbdWID3PaTbUK99LQOuVdpboidoYd7B9RoHWhN063iMogqbyJ8xlWLQn+3L6KD+JkHFb rwpgcOZ/vo+j54ypHtgy9xnEVwNY5IVJ5TkfphNQH+I7/SOY5/UMPiILw/kA7+tEQhRodFMt WB1vzi7W8TVpgo6vTdUklMzByr7TU3vzVFOZCNEsl17d44bLo/do8wMZViTH/S4rK19J/o4V qXTd2YDu7JRVOoAwqypLZdJbw6B15XpEVmXUu+268yRnVkUXC8qQaZVtS3j8ByZd8pyhb/pX 8YjYlQLz41QBrR63pwlBQo6vXRwNGhxg4xcHLdfYSfdvuZwTs5mAw2bQUYvAv6LgRAyvpYYs Mhy/1WId0KWsrDxXpkh/1GeKC2gh0oDbupKyYihPCXKIYC81BDq3TXl2ygJCnwwlu73xkHX4 JpyEy2ll9kE3+exM14MsHH91j/Y898akBx8cJ7XOTuuMtfCac7bkLDU6gGNbMJLZs+sG+7ix ayxgr0aHuM0hOOhwUCgQQP9yrOfQ5uS8F3O+rsEleszMNVRRK9PU2CdP9G2N4ktbEBdd3ufH +KoWq40SsnJgr114U5zTIReTnDKJ+lBaxL3owFF3MucNoXq1FT4yl3oFYaVZyU2Zn/b4gz6t sQtaSaZL5P5qkeenq7kjC3BXdg6MMT+i1IQJLN3DNBwo4bgcwXNwjiNlDeg0Rhrnm4lW3RiH co03yrdii3VuTpOdZcsBBAejWWodfHSF/3yRnDX4Qjn3d2SR+dVYlmZOBjsJkPvL727B5ZuW bpfH4U9k6qgpxc3xPQgwx64/1AZNetu/Te+qpQSaGZasWSC2CUOj6lumurZc+zlFdCU0B1Ce S2YddnJlfz47YlBEfy4qRKxcEGmhQqX2rqOgzihkzBwOAd11Lwtwm+Bla668Hw1dbZCMlfGA sCTjb6DywCtiTn9RRGZvx0X54jYvhjBCCWGgWRbwwbDvOvPuTVlMlovrlV/KhUrCMB0/u1EP ncAuKNsqMXdWnTMawrrd5dcBKJOqPRpiuup86FLqpbiuZGRxs5z/lFj32WuJyg/wlOl0GIw5 a0D5Dj7NNwMNBpjyYVk9Q8bWNKFuMF9Y+rd6imIbiEVj5AfiyyFUvPQrr5dSBA2Zg6Pc97mA eRou5c0TMKeCyASlA7yAbTzkpnKHMrU6ko+NW53PmDG5ebtMAg74DFsZafQHyx6pAYgpWETv iORWj/emKBEObXtbior3MnPE1yX2kxxoat5ltyPE5wQ/le0+v2phPr7er6Wf/vlo2SylZQAN RR97mLXVCQ2vlCTHtdUpyE8HNqYTVw174Hu7Z0mgKKC9+BCgIBW1ZmE4wGYyKBvMzO6vM4+Y OcQWswY9H2Zbvmf6AD0vOLxQp3mQRtpaB8yMD9u72DUHZ3bm/KGuPlktDLxruU91iB0xkJuV dUQxjUH+pvZy8RxFTu36LppSyw3vVwf6rw9uhPXSxCtDt4O/XCiqAIyMbSh6mnSKnrs82a3S 7MHzLohUAd/Gh5d+M4cJvk4J7cpal+0UxE7T+hsq+/LydISCi9ybNDRhDOxs9POdM5H+9aXi izEB0mTtp/M39LZtD9ZexXjykAnOgyVMZABkEM0xJX1NqQkDKbTIQHtsibUwi3KhTepHxeoH xcjnSqewnltOcG84ZXpPQXPF39e2GeBQA2CPCyvsg6VESCcM33kStzEZa2Q7HU3dHbxAkgoo XClPHzh40pQ4RNJcghazeFvegDFYQ1K/JYaO1Y+LXfZnFTsGUi9Ar13mZPJc6H47RusXIUle 5HaZ+e+CxSObhp1FWhuGNVoyHWp1yO9zSWRmE8BsbmgDQh9OuHtJg6zIiZhvb25b5zk46JDu o1hxbM0ImjE4/PtbZyaIGl2fxybqri2fXjcknLH6wO2jndAgK5ikOtougZAbqco9vaO+m/5f XWz/TvRe9FXDk1Ej4uMjjQHZNsanMSTxmyDCw66YgPIblnf1yyp8wX/UDs65s+ol868OsytA WxFAgh6oPiD/t4cJ6EiI5DwSLrI1HJJDWld8KTEAfbNLoFixE9ma68d7XfuQgvU1uIivq48u lJ4YBNwYfVsRvTmoghxpRUHuEXquru+9Z80jvirG/fCkbc1ZiV3e6gXXzXnA6fKlf1mo4vTV +wi/emMmd+YxCzrTHQlCLPmx4GAyklgl/VbklJLz4FjpqeCfekOFcHtB8ORaDdBO56vfsuvD T/F00V145FUwixgI1z5pETQoupDJMCFW33Ua2dePNyQEW7MATBjQCl22RZjto7m3CoA9mmZf 88F10/6EDxUYnuYe6DqHHiXysROa6FcRA59k29tptN+vA4rxCuW+qCgrLowR/s6IDKGCiKSc BK2EMeyjwUJytNgtXjtefwJvb6BSGUqT73b1CUSBDIqDUSF/3tFoFvBOkhR3gh191ed41Lyg WTaXQ1te4p7K1pChVTZsmAMmR8oNGFy1RPB5aY+U5VHSKo08TPutpmp1xXqySv1x8Xst6H2m n/K9nbV7BtxMjPkTZqn2RHCe0lQjpAQMWzkpPtR1ho+qw64cJkguelpzT0e6jl8VqK8mCwv4 fmIkpKSkMgGIM/vbD/MEZ1RFes3MHz7rexf5bCaKGx3PLeabSG3ilCp1L2LLrVk7m2F6frlC 53ORNOo56JVGLSTbp5ujN6dEWUplxCbKlCpN1WO1uVxTYXrYWSDV4HkFagnaXWAOVvbsJZXD elq3ozE3T67aPCONjyJ6uPwl3AWUrlApijZrSYEwhQem+4AHb5UU9wVp+2mEzQkGR56eIqgS lUmS2Ai3i7mnFKYKcfewSjvsNnlZLhh2ihy4nuaj1DNnVsSvGBqwsGon3p5DTo8dlPY9ZPO4 Ltjp6OfqcdwpPWjMNrZ77ybhnNdgBu5+jShtTMyyIOs+VyXSvE6J3i8EqHi8HGmJHRrFwsJv 1mRJe5XzgFcrStZg7qEPFz17U51oZ/e7Jox2pKkIN7B9gJPIlpxzw7kIsh+SA6G8zPyq0o4L yGtp5ZgPcQzSVHxpEQyoL1Irt/5ubOP+DCvjIiYaL2JM1WTQctDibV/QgKoRaJOs59bvlBQZ F2hNbuFZXV7ZyfjF5UYWCN3gPJDUd4MvmTXVvuekWLsh+iLyRb2OKXnAvjQFvViY/tlzVUrD fpTtG1zJvOZMnB3IiKh491oRHOS5FRTLyfG97zz2E86gSIJcFNLSaGPiA3V24oTRpt48yWJa f3anBT5+6/Fg0h7MpRPQg2SS+2KnhPCr+biSmhrpDFx566/b6M4bLuaLNlC5b8nF9uwpK7RI CtPLndMVEc0R0RLQKyv8JkKpt3IS9TqovuSQS1KuUNcnEMRkF3qXEFk4Jzp0c1F3i29GMQsx 9akct9QkjtR6rFhRO2qDvmYervRDhY02gUjkPlJzacZ+VZdVqpGeC2FB+wDDQSHDlOd3sUlE 7J9RXD08i/v8t/cHsVwFWehKlEjllxm7twDXtDuOIk4vCnOQ6uYFNMdHJyOp9RQ40O7yLVYO 5P8l5TYADjMOM5H/PxWWH3h3rPVJloCQNPKoLNgeWK3Hk7YZzW+JZXeNwUrLlkFrhairFpNX ElwujK3jAdfaG3ELVmNg60K6800UvdhOUwqi/KOiLYdhNzT9T/JA/4Sxo3d5pN9/LkgjfVew VVUF/ZugKZgB0FzrkHfnv+UYro56FXdC/KF8TEGsONvkkuWZ4D1oxGnwNF/X6sdHLNSTnkZ1 R2cBknLXHENchRwN7SWUtrzyyrKhyigKwRtxvz/zI00rnhGpQRhh2ir5K8S5+iGXFBGNUHbD GElcChcM5XSYUWrYihZkpbjGWypTaWt1KotyUIufnUWTcyRvuz5NPNBM9R4hArJeQpHNbAAH zd5vDv1Gq4zJS5ssZnBbFCa5bYWeC17Kz/PofwinFlZF+ejtqxzU8UO1d6KHlSuTaJzDG8Uy p916jSaPnhRMBMUfmFTp20uUrWZsx8Z9ya+F1KTvsGKctLnWID21Bas+6h7Q2R49jV/mZLfQ +g2sdGPvp47ZrF32FcRMWskXb7KfiwfqizhKN4vKZyb8+AQN9gpLMjJxzR+zH14lqRmH/8xk 3ue4/6+m0cXGsPwQ06e99X19u0lJv1uGppGaNrMqLuhdxs5uhpiBQ4s52T/4XcX5NL4FCun8 zMzwYnAFVXt+qc+7KLiu4wTqj6qRtTetoTTcKTlFmnpsQ4n8HChcA5TtXQPsYdbIxzh24oJ0 l3DAsyUJxonYgaHNtCfiiHwq6oc57z3THcR8FzKJNMP+NAjgc/FSTkQF8Y2KByOP4MakyYpD oxVokUIT2GTjYKeGRqWVfZ3B6+p3IRp0N2ETrpghZw7qRFX2+7IHMKRR+GbJP+Okim7Dos9/ CRi1vMoxL8bMR26nrk8mQZZ50ZIQB/K1FlAXLH9rUMPtvooRirzo1ml4TaB6ekRxJNtkZvw6 tx9tPrzyziHkQqoawU9qB3hmxHTg5wXOB3MxSL+YX84eBVGWqZQNF9lNYS+p06MXcUfJ+TRq otdIDYiU2FAs5IsomIuIAnpafrB2lQ0B3FgSEOdv5bCAgMC3uF2GeLcxH1K3SYBM74P4W5oR 9aUMzT+DLkwnxv1MgYg3nEUI/eUJfOJzb2TlrJzpVZNeUxlx6v99vPtJmw1S0y8Xj6O1ceIo nlJEaZaf87R/n1W0nGbfihoB+jM6Z2eiSnanOBeN++zXmdZc4Y0jcj0SbpJQFlhH1VPTo6B2 cX8dQrYrwzIhGqVTruoLjJgtRXZabAHDUREX5QDL6hk06J5BCu7py1Ub6IZkGdGWqkmSHyv4 aB3e/D0beE5rQ5IYkaLdrN1VnxPY/qzr4JutvjTvGuI7kPJE0Q9cZ56oWSUD8T0iJ+Z/yu0E pfc1uwH4DBhBilR0EOf/swshNqtRHUwJgY42lqPHPpTbq0UaXsXnAiGRw8Va50ASJtHV10bC 1ruhYQkx3I2IfDC/SUxU/RBUP1lQBRTuN+8UbcU/I1Gsb1cS3/NTHI8W/M5iPP57yOlStywU ikvQ+sB89PRxFfE+TdO+1wqz3qLq5u65wU2Zk1vA7Va+TXSvDVmDXAOZyZRJRydIdblKdQd/ D7AgULftmwjKwr+lcmjaMOqhTGxVyPhVQPwoGCZXRRnYmrAn2rkskLalIZwSZEwuDblw4MSj wcXa0sPgh/1wcXl3NMILKF2iTBGBftRmgLR6MRTBf0xizLmHlprv9wMKwX1c3wwobp+PIQN0 1jFCGOuLuDF5ZfBBtzb9JhCYV7EopC7bpfKcR6fPGzlHT/JYsmPoNC9tJdI3t+cpame5YVB8 NExHAFIuMeN2+dPxVrWlXeORkrlN/1iawcvhZZqmGmtXIpQHHe8Wj4eLobJSKDDu3Vq1PN0q GxRxhrd2M+4hUPSJ4qsEfVg3zMdUprTMN0C6+UGXV21wbEjcFRpfgDlp4bztuizqYFQ7nXaa FIITkkKNs7eOxxMHjhWl90HThxsMeO+kU4Cb5A0F+Iki+kerbNjdAY0pdmRMzDdrt0FTRtkc IQGT98B92UcJG8loqOczlePkxWw8OCy3D67LKBpdTgHADI5UBLfkW9YRx42Ifs6DzrKRlbcg 8VVIOiL68BmRWEPuw1PVkmw6IeMZ0lrRiz/85UAP+I/EEpAIdK5aBcNTKPJQjn+PSwMkYrct BhyMWW16VLpRSiExzDNYyW1jPnGf4xuQtk7Kp29jaDTWDM451fr4acwnF2nBYvQUy8bnbSDo IUmTzIWgd8m8zEh4Ep/QPKzg1vs/LB0P3AoQU02uABLdXMy5pkEhZ18/G/7113sLehvGpSEv Hc1Wd42nJUYK0lyi9nGiHRQhXAi4j7bouCJo+mWiQzBhXx06uk/iFgsF91eJStQ+yGOz5++X lbnqeL2DaDhm+N4yENfVkbdSSKf4PUObkpLQ1HecbPGtIVj/7pnE1eQu2J7Ii1s04Uop8PbZ qgFMRCetniFYKlGjdkGfkMssa8TWV49WWtyzuqEZ4WiVZwqc5rlw7AKTO5zmLGNLv2EGzLhB H9+QXa0B61bGrtCbdsZCdn5BF+9ynjtKrqJWMGzH5OgPkseXNwOX2jI8CdoNkt++aM9ZYUYF X7+cBT3N+QTHO85vM1CB/Ezm83qnmE4OFX6QRJKrK8OFqs0oRUk7ajsqO1Q3tFvaeDrcD3Er umZ0QDb5kCHcdSqVLMmo3ZK91HItftiMQtSw52zwW85BZUjKyjySF7CtISYfE2nEUTd0Hi9T kSnWEKtk4mU98nyKAdqfjiL1VJvLe24joF05nYGbcex9pyIwa0HbOJZQuqwCHlVPKzMLUy5U GEp8hIhr3iNrWuAM4U31R4Lm8LwqVWz/FbfzLsrcvr80Yeld2kQQb3QqunBG3zYe6wPPFylz HATiDfmMh/UHCmUQhQxmnAM+MirAq2sg8aN4oxoCR31OyrS3tYG1+5veTys= / show error