Shape data Tenzir comes with numerous transformation operators that
do change the the shape of their input and produce a new output. Here is a
visual overview of transformations that you can perform over a data frame:
eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nOx9V5NcIsmS9fv9XHUwMDE1Y7Ovl9rQYt/QWms+W8PQOtFybf/7XHUwMDE32TO3i1x1MDAwMlx1MDAxMkhUXHUwMDA23K0xm+4uqFwiI/OEXHUwMDFmd1x1MDAwZvfj//OPP/74c7GdtP78rz/+bG1cdTAwMWG1Ya85q63//Kf5/VVrNu+NXHL1XHUwMDEy+vXv+Xg5a/x6Z3exmMz/6z//szaZfH3/1FdjPPrrJ1vD1qhlLObqvf9P/fuPP/7n1//3PmvWaixqRmfY+vVcdTAwMDO/Xtr7OCBcdTAwMGW/m1x1MDAxOFx1MDAxYr8+XHUwMDFhclx1MDAwMDmVlJHf7+jNferzXHUwMDE2raZ6uV1cdTAwMWLOW9+vmN/608/Lw3UwNcmkJ8tIKMZWobyXfH9suzdcdTAwMWNmXHUwMDE32+FfXHUwMDBiqzW6y9neRc1cdTAwMTez8aBV7DVcdTAwMTdd89NcdTAwMGa+//vn5mN1XHUwMDBivn9qNl52ukZrPv/xM+NJrdFbbM3vXHUwMDAx8Pu7f92F//rj+ztcdTAwMWL1L8y+/23+hGv/R/76cO94OJ6ZXHUwMDFm/lx1MDAxZuDX1/fH12uNQUddg9H8fo9AXHJcdPdcdTAwMTa2/ntJ4vvXdlu9Tnehvkf2Pqr1675CXGZcdTAwMDVhXHUwMDFjiu/VmFx1MDAxZjBcdDd/PeP/3l+50fx75cZyOPy+JvNcdTAwMDX/XHUwMDFlLr5/Zjlp1v56fJBcdMAloZQh8v1Jw54xOPx1w3Fj8P3Ef333f/95XHUwMDFharXZbLw+XHUwMDA1M0iRJcwgkUJIKfnVMOuRTSud3pXGU/+8XHUwMDEyllPQ5NOg7jBziVx1MDAwM5xxclx1MDAxZsxcdTAwMWGtJmnWjmFcdTAwMDbRXHScXHUwMDFkw1xmQMFcdTAwMDUmmD9cdTAwMWZmgjEoXHUwMDE4kTZgtndnarOFp2c0e0bn8EdaRtPilWFtvvCOR6PeQl1GatwzXHUwMDE2h+/49XvdJl67rVrzxG/ef+3Pxax3YEIn5i/9trrm1/ff/vi+37/+8fvv//3Pk+/ee2RcdTAwMDfv/8f+n1bb7qyFl5ZcdTAwMDaeQ0AoXHUwMDEw6Pu5XFzaeD5cdTAwMWGHRnhNMrVcdTAwMDJdXHUwMDEwiLYtmE1ov/EgXCI/d1x1MDAxZWPP2XnXXHUwMDE5eFx1MDAwNNTjpoiwx1x1MDAxOfjfePmfPVx1MDAxNP2Gx6K1Wfy5j6+/n+Zi4+n4xvX5cleI0Vx1MDAxZfC5u3lcdTAwMTL48/f7/vdf2Hvgtj5cdTAwMGLjXHUwMDFm17mHYEGsXHUwMDEwrFx1MDAxZT6lXHUwMDEycnI9d5xetP5cdTAwMTBcdTAwMDbsSy1VsSSlgkosXHUwMDBlXHUwMDAwzb/oPZBezGrGfFKbKUCdIFx1MDAxNPxcdTAwMDWh+mhcbqFySzg9XHUwMDA2OaKHIIdcdTAwMTJg5TtSqTm9tMfGXCLb27V+7ctcdTAwMWbfXHLURr3h9scj+1x1MDAwNVB1t9x//viWe9jrmDj9s6EutTX7XHUwMDAx4UVPuey/3zDqNZv7VrqhPqfWM1qz8DXmdTzrdXpGbZg7vlxmteJW6F9PXHUwMDAzfu09j3pt3jJfNb8vbmdcdTAwMTFcYqxcdTAwMWQ4TFx1MDAxOEaYSXz1Joy42stCrjWqLqOhtDvF1utqzqX/JoRMJ1x1MDAxZYFcdTAwMDQhgiiQTvNIqVx1MDAxMUlcZlx1MDAwYulgMzjoNvxdWY9t+vy9eER5XGLKXHUwMDBmXHUwMDAy6HpcdTAwMWU5vWj9IYz4XHUwMDE3YsqYM0YwYHux/Vx1MDAwYniEfFGsPlx1MDAxYSPBoPpcdTAwMWZExzA/wSSYUUhcdTAwMTlcdTAwMDTyYTDXh0k8T2KSXHUwMDBiXHUwMDA29pBJPHowiXLlqPJcdTAwMWHI9Vx1MDAwMclkNIhClppcdTAwMGaH22xgs8I0XHUwMDE4XGK9gTdcdTAwMDeETkRCMJGmY+cwjcTmYOGqXHUwMDFia2+qOIo1wG4q3XH0XjRcdTAwMDKERFx1MDAxMGBcdTAwMGWvXHUwMDA28OlF61x1MDAwZmDCvohpy4my4kDFXHUwMDA1r6RcdTAwMTH0JbiUQjLF2lxik71Y6Fx1MDAxY41cdTAwMTBMXHUwMDAxp1x1MDAwML0grfpyXHUwMDFh8T6JRi6Y10NcdTAwMWHx6kEjXHUwMDA0Q+XYUHq9M1etRItcdTAwMTDmRHO8dIf9OFJcclRJ/1xydiHQiUYgJIRxyvnjXHUwMDFjtduIxNfBiWVEXHUwMDA0NpF1XHUwMDFlxkm/14GFzntcdTAwMTGJcpJcdFx1MDAxN4BeTySnXHUwMDE3rTuEpWJcbmXLpaQqmMVcZuNcdTAwMDM8P5VH6JeZUJNAXHUwMDEwwlx1MDAxMaPsunBcdTAwMDSZ4YjA+GXhXGJcdTAwMDU2gHhcdTAwMWaP+J7EI1x1MDAxN+zrIY/4Xskje3fnMFx1MDAxY1x1MDAxMVx1MDAwNEFGxfXhSC3hrbY6OWPYiaxCXHUwMDE1YUSyPfFcdTAwMDbhyOH5XGK/71x1MDAwMPzsrruOS1REwiSD7NtcdTAwMWXotMnuQVx1MDAxYrZCXHUwMDFigupLUI6vt/l+3m9OV+FqlW1Cu8Gs7y71Q9qXW1x1MDAxY6dRnYdcdTAwMWJcdTAwMDIqmCGU8ZedVrxcZm+WPlx1MDAwNlx1MDAwMor6KGLXw62fNYLrdVx1MDAwZUaXO7pcdTAwMWKOeaBX675B1v4w2aJcdTAwMDPcqFl4gVx1MDAxZugpa1x1MDAwZjdcbiRcdTAwMDBIXHUwMDA1XGJXwy1cdTAwMDG3+fU6XHUwMDFiilx1MDAwNcQsXFykxSFPpGdvXHUwMDAwN6BcdTAwMWLcmFB7XHUwMDFkQ/ppYMOWXHUwMDE5XHUwMDAwJrmKXHUwMDFkuFxyz61cdTAwMWN1p4uxTbe9XHUwMDEzw1xiTTc9lYa7pz/Yjjy3O2vK7ixd5Fx1MDAwMlxujJR5+zioUSuoIbVgToS4/vB7YkzpwrtYzmLucTVcdTAwMTftQZ9RTOtcdTAwMGa1I6/NWahJSlx1MDAxNNoo+DiPXHIzK6hJrMJcIkD49Vx1MDAxNLqN7PCmR1tcdTAwMWVj7lxyk/mYr2PeN4hHjzw2R6EmOTFrlNHnXHUwMDE5NWmFNFx1MDAwNCCTXHUwMDEwSVx1MDAxYrGoN1x1MDAxYSlcdTAwMDNfNttoJlx1MDAxM+llgFx1MDAxN935uP412cfemsNWTVIhXHUwMDAw+zijtnfqdlx1MDAwMDVBXHRilF9Pn2DccbdcdTAwMTfBUajdh+1Iqzlp5FZccv2BduSpibuA9ogolGBJ+X6+6VPAZlx1MDAxOYRcdTAwMTLKKYD7SbhLaJv210Nfv5ZcdTAwMWVcdTAwMTRcbmVvNt3c9o3ESn+0XHUwMDFkOWuOo1xyXHUwMDEyXGa4hPulXHUwMDAyn1x1MDAwMjfL2Fx1MDAwMFx1MDAxMoYwtVXQtJ5k4+6gu+VcdTAwMGV40qM+XHUwMDBm5zrNylx1MDAxYsShR1x1MDAxZZvjeCOSXHUwMDExQD8xxWZcdTAwMTlcdTAwMWZAKtVVXHUwMDEwXHUwMDAyr4dcdTAwMWLstzZcdTAwMWVcdTAwMTKIxH2JQVx1MDAxYZFcdTAwMTmJXGZg7lxy4HbotTlcdTAwMGU3zFQsSvE7XHUwMDA2XHTWTZvA+rDK3FrCbL+5nkl5d9ur+uu9zXxby8BcdTAwMDTIdDxr7aGmvPEvYFZcdTAwMWZTXGKkYD/rXHUwMDEzXFxIyi9cdTAwMTWQK1x1MDAwZpZJXHUwMDBlyF6+8aFccp3sXHUwMDA0XHUwMDA0j1x0llxuTDjAmlx1MDAxMuzenfl3aOhkVu//x/6ftzV0Wlx1MDAxNixAhjhnXGbYSEZG4onJPOKjPphvhHyN9DI1g27tdyVE6CdcdTAwMDG48H1cZnBn6Vx1MDAxYja7qVx1MDAwNSOPK1f4XHJcdTAwMThblW+Tcj7OeGvTxSuIplOjtKjyoO3Kt8dRi1XlXHUwMDFit3aZOSOCS8Js9Fx1MDAwMJxcXLT2XHUwMDEwVjf6TEenXHUwMDBic6RZS6cwL1x1MDAxNuHXdXS+sPDtWVx1MDAxZJ1cdTAwMTfMq5NcdTAwMWSd0rr6VJjuXHUwMDFklPj6PZhf5dfb8ia+XHUwMDBiXHUwMDE0gv3yXCIynoFcdTAwMTl+gz1ItKJcdTAwMTGoPDjA5X47uzM8XHUwMDEyXHUwMDFheJqReMhoTOOJXGafxmm0VYu/XHUwMDE5j5iErJyh608wTi9af1xmg3NcdTAwMWSdz+aRm1o6OUBmUkzomZu5j0me1dF5wcI62dF5hkmQQIwohF1cdTAwMWaQ1DJZI9/KpYtlXHUwMDFjr8HltJ2fJd+AScChiJjDTFwiXHUwMDAxkIRcYuB0RFKNbzr5oTcsllx1MDAxM7L2V4q9at9P3opJXHUwMDEwJFx1MDAxNMn9zN7FbrKTa9ZcdTAwMWbC6FxcT+ezieSmpk7GOZdcdTAwMDC9rqfzhUTyrJ7OXHUwMDBiXHUwMDA21smeTmtcIsFcXCho2DnZ8LSqQW+sN+O7zirQSsb6q0aQar9cdKXQikaYXHUwMDE06lx1MDAwMlx1MDAxOHRaYSabXHUwMDE4xoeGV/Jcclx1MDAxZlxiXHUwMDBmK29cdTAwMWGG0X8rXHUwMDE2gVx1MDAxY1x1MDAwYiTpvqrnJVx1MDAwNJ9etPZcYibnOjqfzVwiN7V0Yowg40jT5p/7WORZXHUwMDFknVx1MDAxN8yro1x1MDAxZJ3Q8oBE3XxTnsOGXFxgh1xuklkkXG6dZZTUXFy4Piq6d1HtN+GJ85H76lx1MDAxYVx1MDAxZnBCLjHm0Gw603KX3Vx1MDAwMzfLU3JITPVsyW1UN65ht1H1XHJgKTJcdTAwMDNtl9c3QfWA/m7LiUSq43iD6r5cdTAwMTNcdTAwMTXU0I/rIYbWPZ2UXHUwMDEzbEt/aNfdVOK+8qhfmFx1MDAwZueKsWOw5H1cdTAwMDP7dpxucVx1MDAxY29cYnKIXHUwMDE5op9n387pXZmFMVxiXm/fekm0TSZcdTAwMTeJlS9r8Ep5XHUwMDFlXHUwMDFienwp7fF2XHUwMDFjljlcdTAwMGU3U+JcYv6sLf1cdTAwMTC87YlwXHUwMDFlXHUwMDFm6nCJpbRh37xtd4r2a1NcdTAwMGZlXHUwMDA1OI51MsPQwKc93o79N3SftNNDXHUwMDAwJ1x1MDAwNeH8kXKzmlx1MDAwMFx1MDAwZVtcdTAwMTdUqWhcdTAwMTKpQFx1MDAxMtmI2uuNPGlcclx1MDAwN/HltrRRWPZ5wHSiP+COXHUwMDFjOOdcdTAwMDFHKZOE6VrPeFx1MDAwZt4sm6E4UVx1MDAxNyGluD4+zedIXHUwMDAyXHUwMDE247NcdF34XHUwMDBidbLuZ2TiXHUwMDFk/Tfn4cZcdTAwMDVcdTAwMTdUvmH99lx1MDAwNbBZem9cXDJcdPD1UKtv+DpU2kRGzXhcdTAwMTZsszFfXHUwMDE5XHUwMDBmltpD7ch1c1x1MDAxZWlcYmBAMf08z+1MYMqxeaiIrz9ERYNMflhcdTAwMWX2U6VmaJyrlHdk0pXao+1E4s3RYWJEIFwizc67j4Oa9dg6ylx1MDAxOObQzjhcblx1MDAxMYyW863qaFx1MDAxYSOFdVbmybDgeYfKr6Okm7OD61x1MDAwMEJcdTAwMTRcdTAwMDP2uoliXHUwMDFhgI0jhTVcdTAwMDJsXHUwMDFjTFejXHUwMDE5T6tLU51pZOhPJTJjr6820lx1MDAxZmzHXHUwMDE5N0fBpthcdTAwMDRBJD/PX7OWI1X7nVx1MDAxMmXWbKhazYWcQn+Gk6GM9KbzTd+dr+60x9pxts1ZuyY4XHUwMDAyylGmXHUwMDFmZ9eAdaZcclx1MDAwMYkoXHUwMDExNuyacE+280FmXHUwMDE48Vxm8m0k83TV8lx1MDAwMO2xxsEh1p40lfPKQ1JTb5ghx1x1MDAwYm5alFx1MDAwNuXCn5pERazt3VTHu2BIx4JcdTAwMWJpmUox+6uwOVxi4PrU3elF645gxs73kWHd+shcdTAwMTDgRL1cdTAwMTVcYj25+/t569RIdsG6OjpcdTAwMWFcdTAwMTBabkKm9lx1MDAxZlx1MDAwNZRdXHUwMDFminmTXHUwMDFkX6HdzVRcdTAwMGJ5r3+VS1Mvx0X99+CDy23urv6nSJjSzk7TyCabXGKWXHUwMDBisVx1MDAwMYSBRcbfiZdcdTAwMTmviLeiXHUwMDExJpRcdTAwMTPEyPV5q9NL1lx1MDAxZMBUnG9cInsuidzURIZcdTAwMDBT0bfkepb33MdcIs9qXCK7YF1cdTAwMWRcdTAwMWRcdTAwMGJozVwiykeHXHUwMDE0Ulx1MDAxYqptXGIvxjLrMerrRVx1MDAxOVx1MDAxNUpxOXJv9Fe1oFx1MDAwZi6iu5NFOGZYhYDUaVx1MDAxMsGgmcnM3K0pMFx1MDAxYVwiWPJEskuj91YkokyVsm9cdTAwMDLamEh2etHaI1x1MDAxOJxvIXsujdw2XHUwMDE3kFxuXGYpoVx1MDAxZskjz+ohu2BfXHUwMDFknVx1MDAwYmjNI0JcbsYhsnFcYlmCvmFJjLqZwMZdcC3xXCJcdTAwMWGYlbXfheTBxbH3RiNcdTAwMDBcIknVl8M8kluO+qJM08utv1ByoZGnXHUwMDEz5YO34lx1MDAxMSokkT9cdTAwMTInl1x1MDAwMHx6zdpcdTAwMDNcdTAwMTid7yF7Lo3cNlx1MDAxNlAy9WhcdTAwMTDV9JDgPlx1MDAxYXlWXHUwMDEz2Vx1MDAwNfPq7FhAa5lVrPahvWKWoqezRfFcIon146SQyFxmd+vmUv9zuOOzXHUwMDExZ8/hXHUwMDE0eUOyL26o01x1MDAwZbtcdTAwMDdqlnNcdTAwMTggNM/gsFx1MDAxZPGJbqueXHUwMDE3wXVcdTAwMWJXQrA92qS64z57g0NcZr3KplSohlx1MDAxNVx1MDAwMD5wjpF1dVx1MDAwMWdAKuKzIfrWSI8mobLwrbrbemdGmyFfZVx1MDAxONZcdTAwMWVqx1lcdTAwMTZnrVx1MDAxYaFcdTAwMTJcdTAwMTDBP69E73xbhVxuUjC+PqPnay8gSWwmuO5cdTAwMWT3XetkMJ4p61/nflx1MDAxY4k5a9Z+9YxxTXXXzkLNWqTceopcdTAwMTGBTFx1MDAwMjtiyONkbzvsZnvtRNyQqXaGlP21mu4gg1xcfkmCVWgoJICYXHUwMDAz9Fx1MDAwM3JcdTAwMTSALzMw4Vx1MDAxOFx1MDAwM1OA5PDCXilRzlx1MDAwMOSEv7KQXG7awN/ejfk/hfK7XHUwMDE0yiGyLJhFSJozXCLh9ZnwNIpcdTAwMDW7vFx1MDAxOIqFcLDadcWDMFx1MDAwM+q6b0rX4Vx1MDAwMFx1MDAxZYLuM/z3puBcdTAwMTCkXHUwMDE0PVB74zdcXOyVlcX65UKShLK5em/KWDdcdTAwMTFcXJZr9lNwdnb1WVx1MDAxNFul4CCwrvhcdTAwMTaASczt9OidXrX2XGJGP+vK9oq7/lx1MDAwMjTXrK6MKrdSoFeKXHUwMDAx3sQuWpWVXTCujpaVWY93poBzpPyZ60PV/txcdTAwMTfqXHJ9XHUwMDFkIzpajUJ14JtcdTAwMTRj+mdFhE5cdTAwMWNCXHUwMDE4XCJcdTAwMDRg4bQ2eVx1MDAxMNc9jZA3QTz9VLhcdTAwMTePhfOJduDNOFx1MDAwNCFBKOc26lwiT69ad1x1MDAwMJODqjLAXHUwMDBlXHUwMDAw/VRcdTAwMGW5qaxcZlJoTvOm7HW5v9fRyLPqyi6YV0fryqxphCjPXHUwMDAyUGpjOmMun3ORqWtYSndAMN6JSDb0at8oqlx1MDAxM4lILlx1MDAwNHvogOPbSMTtjYRcdTAwMDZtI+FNt+M1XHUwMDFj6uXdOXxDYbKjJIJcdTAwMTmThJC9i7hcdTAwMDTf06vWXHUwMDFjvlx1MDAxOH9RpmBJ1W6VQiBxXHUwMDAw56dSyE0lZUhdLMJcbuifXHUwMDE4iTyrpOyCaXW0pFxmW9dcdTAwMDJIXGZcdTAwMTC1I/DZ6cZy5WptXYpu4LrnmpXYrKb9tDKtXHUwMDAyXHUwMDExiCmh5n13mkRcIuVCk9Vj2Yw3OFx1MDAwYvSGgXXAXHUwMDFkWL9cdTAwMTmJqFx1MDAxOMQ0bPR6XHUwMDFm6PSqNVx1MDAwNzBUllx1MDAxY5nA/CvsYlx1MDAxY1x1MDAxZFx1MDAwMPqpLHJTRZnkXFxIXHUwMDA04OvKXV5HXCLPKii7YFxcXHUwMDFkLSgjliSCOJXKmsnrM8prw5eeyVx1MDAwZahccsaTaKpXX26T7pjue/D4TMR5JS6IXHQ3J47qucnuQZt1TVx1MDAxOaVcXEDEbVx1MDAxNPpEXG5NmClcdTAwMDbLRq3r9WRSu9xggmfaw+3QaXFcdTAwMWNtXFxcIs4g09Si31x1MDAwMba9Mo+jllx1MDAwYoiBsm7Xx6jdYDCey8NlvVx1MDAxZFx1MDAxM6VJ09fzt1lId6zphjSIXHUwMDA1YZKTXHUwMDA3NoDrXHUwMDAyNWvBXHUwMDBmitWKMbRh1/rtWmxdluNMxlx1MDAwM3O+aiG32ta0nzX4WLN2Z0VcdTAwMTlcdTAwMDZcdTAwMDBcboTF5+HMUlx1MDAxYYliM79jR4VLRFd5VHaF3KVKp1xccU89hcLEozvMjrw1el/p4iOsXHUwMDFhMDs1XHUwMDAxfKHo24vQxqxcdFx1MDAxNCHGJLPRa1Iv42wvh3PNbHuwTVxy3P1AvtTRXHUwMDFlbUI7sKnYW0jwSvnxV4HNmkIlo1x1MDAwMlJpozpcdTAwMGa7N83tML8tXHUwMDE1JoFuXHUwMDBlxrKDeiGvO9q0w1x1MDAxYZZcdTAwMTSYlUtcdTAwMWZHo3un6EezY5Ql51x1MDAxNOPrQ4NAYNyfeFx1MDAxOe3iXHUwMDA0LS3H/v56XHUwMDE00V5cdTAwMWLqsYbtXjlojrBkgnxcdTAwMWOBXHUwMDEyS3dcckFMOUTEhlx1MDAwZWCkXHUwMDEw2i5cdTAwMTIknN9mXHUwMDA27m3Vm45kgP7aXHUwMDFiR/6a8yOKgGDclLr/OLN2JuHBXHUwMDE5lFx1MDAxMpDrXHUwMDBmXHUwMDA0K2VcdTAwMTSMV+eR9lx1MDAwMLX8tVG2tMyIhvZoOzRrjoNNXG6GJUIvbNl0POOBlWmjXHUwMDFj2Vx1MDAxMLqfpbvJuGe8XHUwMDE1o1x1MDAwZdxcclx1MDAxNmvhg2qtmmNNN6RBXGZcdTAwMTSFvnKQ6auQZjnIXHUwMDE0UYnV7pLX5zxkoNxcdTAwMGKOUDRcdTAwMTZZNmP1SHeTXsqp7kh7rFG7e5yCVKG/evqfd1xcYJ1bk4hcdTAwMDOB2PU4K6+Lu2QgQLbLVJBcZppk2GrmXHUwMDE2uuNcZmvVXHUwMDFjxtT9fihx/v2CXa3YnNfTK/vlbFSobUC4KyclNNOxmlx1MDAwNlvPe1x1MDAxNlx1MDAwNDNJkFxy7+/0qnXHrzyopjlAs37FNERZU8b3JUR1sqXfj1unYppcdTAwMGKm1dFiXHUwMDFhblnRpmxcdTAwMTlcdTAwMTGUgeu34Mhg/alcdTAwMTePYs1WpTiouLw7XHUwMDE00n5E7Fx1MDAxMYXceVxm2K7VXHUwMDAxoLdSiJBE2YFH9lx1MDAxN2viqkjL5lx1MDAxMVx1MDAwMTkkP6KAi5VccqSVXHUwMDBlJyfLhWdXa89FJJxcdTAwMDHAeDec3Zu/vFx1MDAwZmdcdTAwMThyXHUwMDAyXHUwMDExeaAksSY421v+Ic4o5phcdTAwMTBcdTAwMWI4W4RcdTAwMTflatlcdTAwMWZcdTAwMGWM06H1mifDXVhgb4ezO2Ov+3BcdTAwMDYhwlx1MDAwNHDO39CgWfqtyDKRXHUwMDA0iVx1MDAwMIIzvtcqd7FcdTAwMTMuXHUwMDE3XHUwMDFh5zeVkYv4XHUwMDEzxa2INndjqr0xc4lcdTAwMDPtLyaehDL0XHUwMDA1MEQnZFx1MDAwYjD+YodoY1x1MDAxNFH17qf7powq40klZMxcdTAwMDbWTvqm4sd3f/um3yv4l2+6qM1cdTAwMTetW/3TxXhi5Zz+uOBDT/TgQ1x1MDAwZr3RU84o4jftKWk9QE3daSyx/L7VXHUwMDE3XHUwMDFig1x1MDAxYVVpNEf9/tpcdTAwMDBg2vS1XHUwMDA2Lo/+cyFcdTAwMDWWXz9cdTAwMTU6/lacJn8p+P7r666A8EH7jFx1MDAwM7PZXHUwMDA1Pl/+zIGNtu62Zi/faFx1MDAwN1x1MDAxZvrEjaZcXG1r8lx1MDAwMlx1MDAxOGBB0fc7Lsrxyk1cdTAwMDHQyiBAfJnBtJiuwHGT6L7VXHUwMDEwPlx1MDAxME+gdO9cdTAwMTY/cldcdTAwMTH5hU6L7pzaVVx1MDAxMEuCIN2vu/2cbaWiNYtNNWy1XHUwMDE3T9hSPz7wXHUwMDAxXHUwMDFi6kJ5jnVjoIpsXHUwMDExo5JeX3jIolx1MDAxM1x1MDAxY9skcD1cdTAwMWLsjOFcdTAwMDB6XHUwMDEzRf9E911FXHUwMDBlPMJ7U/H3xVx1MDAxZFxiXHUwMDBiibjzOm2Vhkh3dj5RjVbSrXqChEO7eVLHXFw8sawvI1x1MDAxMitcdTAwMGKJbXRmn1607vjl+Fx1MDAwYpnyXGJcYmKGMCAvzcXjL2J6eZQjrrxdcOWoXHUwMDA0hXDCwP4pn07B9UnCuDpcdTAwMTnvf1Iy/oJxPaRcdTAwMTG/NYk8Plx1MDAxOS/OiCVcdTAwMTJcZjmA8HpcdTAwMTZcdTAwMTlcdTAwMTFvRJSmou7OYZCv+sftXHUwMDA00z57dcRcIo5m45nZ0U9cdTAwMDTQ87DrdqAhYJmNh0TBTFx1MDAxMGpjUEK0OJ/mRWRRa4y98z72hlDBo33l+iHQnE3Hq+s1Jzlj8nH5eGmZj0dcdTAwMTJcdTAwMTDGqI2ydepdLTKlXiFJPKS6zWfGRCTTb1x1MDAwNzSn8/GEILE/cudDgFx1MDAwNq0ziEJCXHUwMDAxoFxykdN5vtBcdTAwMDMwXFzFPMGnfk9SesBE+/6Io7p1Z7WFTFx1MDAxNf1cdTAwMWZRg0NC2UHUWYf94zrOz1x1MDAxM4VcdTAwMTBcdTAwMTKRXqSjYVx1MDAwMCYtRU1cdTAwMDRElFx1MDAwMzulUKfXrD18z8tka6eSXHJcdTAwMDVk5ruJnt7h9+PWSSb7gmV1VCb7zLGuxExQxMX1voo/RdzF3KJb6I1wMVx1MDAxYlxurCZjnNN+XHUwMDBmXG6dXHUwMDE4hFx1MDAwM1x1MDAwNsxBdU7n8HKzemZcclrZcbJcdTAwMWHtuKeT4qjeLr9cdTAwMTWFSI6IRNjG3PfTa9ZcdTAwMWS+XHUwMDE3VLI1XHUwMDE0yUaAclwi5T7lfFx1MDAwZYk8SyT7gm11ViTbmkSwOVx0XHUwMDEx2pFw2sj6Rkh3voqK04h/M9xcdTAwMTnGOKP7LtSIQrjibIjJXHUwMDAzXHUwMDA3mdzGINzor9zpxIJcdTAwMTVD+Xp+u01JuGJcdTAwMWEyXGJcdTAwMDTW+rxAcGFcdTAwMGU+uj4veHrVmqP3vEi2hlx1MDAxYdlmkG22j3ziXHUwMDE50LMksi/YVUclspHlQSwkwpwty22MWeiAVGdcdTAwMWSdXHJdflx1MDAxY4+MWutcdTAwMTQtdVK6b0Gdglx1MDAxMMZcdTAwMTjngGOn01hDPO1cdTAwMTf643lcdTAwMDZcdTAwMDVZsexax2bLnI7z3qxjXHUwMDEwKFx1MDAwNeKYMHm9+3N60Zqj94JAtoYtfVx1MDAxMFPE1CU/cJaIPlx1MDAxNPI0gezzltXRnr4zfbVMIIrEvm7RpU1cYvuJRXxVKDfKM+zxNlvlXX+ofYnn0VmI40KyZkVcdTAwMTFcdTAwMDJY02FY94DNumaFMeWWYmRjbnTRNVvmXHUwMDFiuU6xXHUwMDEyb8+KI+RcdTAwMTmTYkV7sIlHYu3eyeRcbmOISk37s+/BmfX5LuLKQYNcZl3vXHUwMDE3XHUwMDBms+Vem037s1x1MDAxYVx1MDAxNDLVp6lqLKh9p7JmXHUwMDE2XHJcbiS5ij6BnpHnk0xcdTAwMWFHpmNno2gl2p2tkpkmXG52XbFYLeRJjFPi3cZcdTAwMTQ5atHMkEGQz+uIt27EQZJcdTAwMDBKmFxy8Z5teuhvNqrAXHUwMDFmoLBcdTAwMTlyXHUwMDE5sNNcdL9fwVxuvK9cdTAwMDbvIYpklKqrQFjPUOhcdTAwMWW0nVx1MDAxOWNcIjGRnLHrtYrnXHUwMDFkUsLFUSW+8iZay1x1MDAxNix53O6V9nBcdTAwMTNcdTAwMGZF272iZFx1MDAwMktcYpR//HFcdTAwMDFcdTAwMDGxZk9IzYiA2dBZhL2wiCTrw1h8gFwi9XG8XHUwMDFiIX3tu+N1s2qMSFxmfsxW/Fx1MDAxMKhR6zJ2s7+RYU6uN2qxZLKc9XmWI092VcpcbiGTLZ/2XHUwMDAyeHrZNEjhZ8aelq5cdTAwMWHHXGJcdTAwMGKyr/l3XHRmjVx1MDAwMcr13ZPBJJLY1Fx1MDAxMqlcdTAwMWT0XGbqS91hduyqOS9cdTAwMWXLgbr3kNOPc9WwtatcdTAwMDZcYoKEQX59ZLCbpcLDgSe2za/gcpyerCiBY+3hdmjWXHUwMDFj1Y9FQjAuiKbHI/dcdTAwMDDNWvtcdTAwMGZjTpGdlolcdTAwMTZcYsleg3BPw5PwL+touKu4tZ+Irp1Nk4hgjvBcdTAwMDOPmzWB2t5aXHUwMDBma1NcdCbih0DYxalcdTAwMTLNSbiY2FVcdTAwMDPtQcW3mYxW+dTo7Vx1MDAxYzVnXHUwMDE1sSWHTFwi8HGNreeOPlx0RIIyaUPHYNRCw9mctIfLeb3SXG5PSCQ81X448KH+n6PlM4RCQoTa3lx1MDAwZsPZ3y/YLJ8xhsVklblrxrbkXHQlU4NErNj1aFg+XHUwMDAz91x1MDAwNldcdTAwMWQmhTFGXHUwMDE02JGvPL1o3eEr8Vx1MDAxNyGmXGZcdTAwMDchykgypHtcdTAwMTeY4mto6inp2bn9/bR16lx1MDAwMrtgWFx1MDAxZO1cdTAwMDKzPmdGXHUwMDEwUUpcdTAwMTUsr2eQRiNRXHTgwjSYXHUwMDFltbNNdyxRzYX9um/Bw451R1x1MDAxOURSgaWEXHUwMDBmXHUwMDFjXHUwMDFleVx1MDAxYoMgj5EmzWWJR8U4MvfjXHUwMDBlWNbm78UgUEV1mNrxtE8vWnf4cvTFsYKlWiyTXHUwMDE4a99cdTAwMDNcdTAwMDa5NFx1MDAwN/JcdTAwMTL5iVx1MDAxNPKsXHUwMDFlsFx1MDAwYpbV2Vx1MDAxZTBLXG6RTEi1XHJttIB1cigoY+1IXHUwMDE2zmetipixQiuuvVx1MDAxNiBFXHUwMDFhMVxiJMJ0KJ1cdTAwMGZCkjPuqoRKqVq9taG7bDpcctKz6HtRXGKFXGJLW1x1MDAxNHJ60brjl/7sXHUwMDAywz/RrF9cdTAwMTNcdTAwMTg15/9cdTAwMTJdi6TuY5BnNYFdsKyONoFcdTAwMTFrJ1x1MDAwZVx0TjhcdTAwMDE2aihcdTAwMTIsnK7Risguc6VQNZx1z+P+te5bkFx1MDAwMY0ohJuTKun+fFBnXHUwMDE4ZLeBtFxc3URTVeDzxoVMl+Je73sxiPJ+XHUwMDEwM3WhrneBTq9ad/zic5PdNOxcdTAwMDKj5ixWgegnUsizmsAuWFZHm8CsXHUwMDA3uauXsPJcdTAwMTa4vL42qllZ5ZPjKk1cdTAwMTi1vCvf2Xkm1Ojqvlx1MDAwNVx1MDAwZk9CnO+YkFhQieBcdTAwMDdcdTAwMTbiWdt75bBcdTAwMDD1Or/e3nuWPD6Kl/PVyVx1MDAxMFSTQ1x1MDAxY3dcdTAwMTfy2odcZodJU0d1iyFcdTAwMTRIILjfeffxQDM1rlx1MDAxMLGTWqm7OMi64+FWl+frpVGw0pZzrjvOXHUwMDBlUyuOXHUwMDFiNVx1MDAwMYVcdTAwMTmoPjBBf1x0auhFULMuJZBUUErF9fxZTnXYsrotreqR3Sy0I8LHttqXsVx1MDAxZoZgjpo0cypcdTAwMDPF5njUj8OZZVx1MDAxNZ45TFx1MDAxY6nXrzdpLJxnkVx1MDAxZPXRwKJcdTAwMTUuz0k13sTaN1x1MDAxYlx1MDAxZfppzjdMIFxiXHUwMDE5N1x1MDAwM6jXNee8XGJszLJjXHUwMDAyXHUwMDAzXG4x3CfyS2BzU9HrZ0ebwtzHXHUwMDEzRl6i3SasfVxcfuin3dsxcZ9Vo0JCzujnXHUwMDE5NWucQco4YJzg69nTm+lvRZB7Nkuj7Vx1MDAwYq1YXG61mm7dgXboqDlv1aBcdTAwMTmHXHUwMDEx+co+sFehzfrAlVxihFx04tf357TWkZRsj1x1MDAwYlx1MDAxM08+PN2Vhq1cdTAwMTJcdTAwMTloX/Nw6Ko5a9VcdTAwMTTQzNpcdTAwMDdcdTAwMDJfl0t8XHUwMDEx0Kx7Wzk1XTVArz+W4YV5y+dpeCNhX25QQDK5To71l8fUrlx1MDAwZsysYlf/XHT0cWCz7m5lZmUs329cdTAwMTS7XHUwMDA0toyntcAuw51usFx1MDAxOSqLXHUwMDAwXHUwMDFl59tvNzrn3qaJeyNQQlx1MDAwNFNU8nFBgTXQXHUwMDEwYJTaa5pIxY1cdTAwMDHwNiVcdTAwMDJcdTAwMTNcdTAwMDLz415xSUtvV7DkvFmDQlx1MDAxMCDRXHUwMDA3WjVLfVupXFw1XG7sXGKElnyGJy37S7JYLl2hZttfKWHtrdqRr+bsQDAgmIrFXihcdTAwMWb9MJzVZrPx+rSbZlx1MDAxOVx1MDAwZlx1MDAxMKbWirlccntWSNNiXCJNk7H1vDnplju99CBcYnTHXHUwMDE4XHUwMDE04ItcdTAwMGKOXHUwMDA0JZxAJMFPXHUwMDExWvVcdTAwMGK+JEWUY1xmkNnuct/4c6viXHUwMDFhSM3554hDc5yk4ECeqGU7vFx1MDAxMHxcdTAwMDRQ9U3GJFx1MDAwMHrS7t6Nq81cdTAwMTaentHsXHUwMDE5ncNcdTAwMWZpXHUwMDE5TYtXhrX5wjtcdTAwMWWNelx1MDAwYnVcdTAwMTmpcc9YXHUwMDFjvuPX73WbUO+2as1cdTAwMTO/ef81xTy9XHUwMDAz0zsxf+nPmqPvv/3xjZtf//j99//+58l3Wz9R88t19DC/f98/9v+0XU9knSNcdTAwMTfmY1Ox1/dcdTAwMWIuVqRms9XyMpzzuL2pLVx1MDAwZkNPK9/UvqtcdTAwMTOBb1x0kl9TJOmX2an2/fVcdTAwMTRcboGQfFx0gk91wmH89d1Y8ZtLuKRcdTAwMDC/YJiN2XCHqITs+1x1MDAxYW6sIVx1MDAxMj+++7uG6NtcZv2rhmjWmlxma409KPyoJFx1MDAxYbbaP5H7s45oMd5zgX9cdTAwMTZcdTAwMTH9uODDiqGjXHUwMDBmPaxcdTAwMWLae6y/y4ZcdTAwMTC/3T1cdTAwMTNnXHUwMDE0lVxiRlxcXCJ+fd7WhzzrOHUlhsV8reNcdTAwMWXscmngeYM5hIdcctTOdi+o3cdcdTAwMTmmjk8gKLUjMVp1g0VhUK0uXHUwMDAywdBcIlx1MDAxMrmh9vRh3p9cdTAwMTVXMOtje2UxocScXe/8nV609lxivjBJU7smaia5Oe3vhVxycDe5eFr1UF8wrk72UFx1MDAwYutZtlxmXHUwMDEwoPbg9TtcdTAwMTB0/NkwpmTpZu5utFx0ulx1MDAxMUH0V7Y9XHUwMDFjYeMohZgzXHUwMDA2XHUwMDE16iF43Pa6jUK8nkFqvnTRXrTQ3VxyMp7oyrW8oYfaSVxuUVx1MDAxZVx1MDAxMKXUxiDN02vWXHUwMDFkv5dcdTAwMDZpathFjYBEXHUwMDAyIP5C9cnXkcizuqgvWFcnu6itSVx1MDAwNHP1XGJ+XHUwMDE0Z13ahNNEYVx1MDAwNmR+kUutcUuSyabbyr7ZuFx1MDAwN4ejXHUwMDEwqVibskeOr7mNQuazfGbbXHUwMDBiXHUwMDA3ViHq9faqXCJcdTAwMDLyk+FbUYjEknBzXHUwMDE27NXoPb1mzdF7YY6mhj3UXHUwMDEwXHUwMDEyzinTtGjlPv54Vlx1MDAwZvVcdTAwMDXD6mRcdTAwMGb1mSBcdTAwMDRcYoKwsMFcdTAwMWZwWFx1MDAxOFx1MDAxOFx1MDAxOG5cdTAwMWLZcdpo5zbezZJof86oVVxmXHUwMDAyJccqXG6hXHUwMDBmVGu+jUD6XZiIbCfjbim66q88kVx0TW7Hb0UgkFx1MDAwMizNI4/rXHUwMDEzsadcdTAwMTetOX4vXHLS1LCH2kwwXG5uZjg+kEOe1UR9wbg62kRccqyPQ1x1MDAwMJJcdTAwMDAr9+L6XHUwMDFhPNh1r1xcw5Vn3cP1YsdfhmHa0L4y6vg4xPGOQ8LM9Fx1MDAwMFwielx1MDAxNlx1MDAwNNyDNuvR31xiXHUwMDEwgX84p1x1MDAxN7tb4SDEZDVCve7YMtZeRlxu+XVPe7RcdTAwMWQ6LVx1MDAxYYDN7ItiL1x1MDAxNP9/XHUwMDE12Cz9Y6IuXHUwMDA2SGZD5nReXHUwMDBlTZL11XTV7Vx1MDAwNPzFRHBWS1HtsaZcdTAwMWLSXHUwMDA0VU6yfOU4TceRXHUwMDA2JYRcdTAwMTRTXHUwMDAxr0+GdOJD/7Cah0WxXHUwMDFiVdxpsUyvvGXdoaadVTObirGKxvDHgVxyWsZNXHUwMDAyUoQkZNeH/eFmbb6tZmLb8qpcdTAwMTlZ5bLSX481dMfakcOGnW885MI8SZKfZ9qgtWkj2Fx1MDAxY39up9ikTVwixWquXHUwMDEzd9UmxD9cdTAwMWNWQiO50b55/9Bjc1x1MDAxZW1cYkhcdTAwMDChqVx1MDAwNfNxaDsjTc9cdEbSxrymcb3aqeVCde9gWKhcdTAwMDSi/V2+7WnqXHUwMDBlNt2gJrnyXjh84KmYJkjby1xuXHUwMDFkXHUwMDFlX5nRXHUwMDEwojbMWiy7KYMs9KcmwWjF3/dPepWu9sdX2lk1TFx1MDAxMESSfZxNXHUwMDAzZ1x1MDAwNjZhKInk5PrgIDdqzOBiXp6Wa2LRKkenuNbUn0GPXHUwMDFjNsebXHUwMDBmucmgXG5cdTAwMDZcdTAwMWZcdTAwMDc2S3eNXG7Jmdpe11x1MDAwN1x1MDAwN51eksZWXHUwMDAxVzu39FxuXHUwMDExySZ9tYr+2dxDu+Y41MwmV/lKocJXQc1afpUjpqJvaEN+XHUwMDE1UJlcdTAwMWP7XHUwMDE3/ShYZ1wileWmOa9vsO5Y01xyaVx1MDAxMJHH9lHogjTL3jiCXHUwMDEwwFx1MDAxNLHrgbZcdTAwMWSS3mJcdTAwMTfHg9l4U0qNu+VByaV9x452NlxyY8hcdTAwMDV45XRN5501gM1Bj8TGcWhrvJ1cdTAwMDGj4V5Mx+lcXKw5wJVacas71o6mazpaVYM5XHUwMDEwlD1ST/rvXHUwMDE3bFx1MDAxNtVUKSbdRCCRXHUwMDFhyUagXHUwMDE3XHUwMDFjXHUwMDBlY0ZnpWFRjbDEr1wiXHUwMDA2JiSG1/t/p9esO3wvTNfUrjNcZnJTsVx1MDAwMWqqufP9tHXqXGa7YFhcdTAwMWSdrmntXHUwMDE2K0BKhT9cdTAwMWLHMzFPruLblHo1mDRcdTAwMDZe9yiTqld3uu/Ao+GazpZlXHUwMDAyzFSwz1x1MDAxZSiucVx1MDAxYoO4XG4hWJ978yRtoHDFXHUwMDEwo8DU1XwrXHUwMDA2gUBcblx1MDAwZW1ccrY5vWjdXHUwMDAxfH68poadYVAyXHUwMDA1c6Br8vQ+XHUwMDEyeVZn2Fx1MDAwNePq6HzNc7lcdTAwMTVKMFx1MDAxNnamo/VcdTAwMDNVXHUwMDFlqiXorpurp3tslsmz9FT3TXg0YNNZXHUwMDE2XHUwMDExjFBT+sXpXHUwMDA242g15d30cyuW2nSD/s50V89lPe/FXCIqXHUwMDA2wdJWoefpRetcdTAwMGXg81x1MDAxMzZ1bFx1MDAwZpNISlNcdTAwMDP0XHUwMDEzWeRZ/WFcdTAwMTeMq6MzNs+wXGKT5jxuiGx0iK3GLX+1XGLba+TxJDpZdyCSrOq+XHSPZmw6rHQkOUZEQKezWTxTrsLyMpxcdTAwMWFcYlxcS4PmuNSMXHUwMDE23otFXHUwMDE4lcRU/bChRn5y0bpcdTAwMDP4/JBNXHI7xFx1MDAxMJAqXHUwMDBlUSyvZynkfSzytFx1MDAwZbHzxtXRXHUwMDBlMWQ5kFx1MDAwZVNcbs1Bt1dvwUFcdTAwMGXlXHUwMDFhRq85rGZcdTAwMTLLZKrkmUQzbzdcdTAwMTDA+dp2QZDyLOHnXHUwMDE1XHUwMDFiI2JcdTAwMDU1c6JcdTAwMGVcdTAwMTSSX1x1MDAxZjSUeKmT2aHVduHbjlx1MDAwM/H52lx1MDAxM1prX71ylDt1XHUwMDFja4ghiMDnNYchy05EU2NcdJlVr1dDzdNcdTAwMGVcdTAwMDeTftSoJeeVVV5EMzTkXHUwMDFl6Fx1MDAwZbWjXHUwMDA0i+NQI1C5xpx83kg6a6xBqcyaRIxcXM+hmd3MXHUwMDEzqmHXol+BmMbq/Vx1MDAxNFx1MDAxMPq7sYdxmONgo5Aj5dd+XllcdTAwMWW2bOinXHUwMDEyI0Cwjaq82Ib6XFxcdTAwMTFXNFx1MDAwMZvpxpJcdTAwMTfqxVx1MDAxY1rrjrVDf835ynZcYoiZb6Hy41hcdTAwMTRbsyhShny/quFiK1wiqFx1MDAwNZOyl5yK9LzZ9Ixd/nJa+8K8Q3/NeaxcdTAwMTEpMDI7+j9cdTAwMGVqlpXtXHUwMDEyQMaJnbpcbiDKo5VB3KGQe+zpXHUwMDE4XCI22ugvuXvosDmPNTOZabaAflx1MDAxZYdKK6xBJpWXypG8Plx1MDAxMN21Oqv1lo9cdTAwMGIr0IFwvIxcdTAwMDLPSvtA9NBh01x1MDAwMGxcYkNGXHUwMDE4/DjDhs5cZqzmXGZJspeAu4S10DaORilfZ7WtL1x1MDAxMOtcdTAwMTRH0cRWe1x1MDAxMj1y2Fx1MDAxYy9vp1x1MDAxOCEsMfk8rFlHooJzgYWwcSzfK2W99Tyq4rxcdTAwMTeMJtkgb/Tjed3BduSxOVx1MDAwZTaI1Y1Xgaj4uOhcdTAwMDBZumxcYiCAMabw+lh0XHUwMDE2jjJeraSiolx1MDAwZXYpY7PIdsVId7RcdTAwMWT5bI6jzZwoXHUwMDA1zOFSXHUwMDFmXHUwMDA3NutiXHUwMDA3KSHnXGbaqFuNb8vMzaf1oVx1MDAxMVxiRV2u5WIkXHUwMDE3Ud3BduSzOVx1MDAwZjZgaoWKdzw9sFx1MDAxZb1pnWDDXHUwMDE0qeDARmVmZ2O4qzG/f1FxXHUwMDE3u9TjXUtXTXvhXGJz8qagXHUwMDA0M1x1MDAwZThUXHUwMDBlKvspfI5cdTAwMGYnb96DQevBm+xcdTAwMDRcdTAwMDCPqZUoojFro7XE396N+XdcdTAwMTisyaze/4/9P21cdTAwMGbOZJbbkUgkkPKsvlx1MDAwZpUv7ceAr9X2hPhcdTAwMDSicSnWmVdcdTAwMWG9otQ+fFI251x1MDAwYqjNKCCVnGHMXHUwMDBl+lx1MDAxNSjdXHUwMDFionjLXHUwMDFltJqdKcWXjcmZpthcdFNU/HQu+D058/uTnj05U/2hdpNFbdCTXHUwMDA2Z1x1MDAxZX7ms+dmQmxdjIdcYlNcdTAwMWLNTlx1MDAwNnZb9rhTgUJk14rOo8Uyr2fcq5DuO409eODAnXPNISaIg/1OXHUwMDEwZ6pJV9lymnpXLFHseYPNqrGVu6WO1aRndCRMs4El3ldcdTAwMGK9hODTq9ZcdTAwMWPBXHUwMDFj4i9kNiUgU+NcZoNcdTAwMTc3R1x1MDAxM242R3PE1Y1cdTAwMDZXXHUwMDBlXHUwMDFjMPv/JZd6XHUwMDE2hZykjaurSf1Pqia9YFxcXHUwMDBmmcRvTVwij68mpdYsglx1MDAwNcdUSnF9mG5cdTAwMDSbbtRMlaOxqlx1MDAxY1Q83kp7Wte+P/qIRe6rhbmTRaRcIm9cdTAwMTWqIT3311x1MDAxZEBjZ6REXHUwMDExNie92Uh1d5PxXHKUg7yvXHUwMDBihjOx5SxfLiXeXHJod57h3e2uQIAooJpa8ntMmuWhXG5cdTAwMDeIXGJbilx1MDAwZilcdTAwMTDL1Fx1MDAxYrwz9fsrMOkz+HQ7Q29cdTAwMDe0+1x1MDAxMo93XHUwMDAyXHJcdTAwMDNCKeRcdTAwMGacw6VB0pFaWjPOXHUwMDA1V1x1MDAxNlxcXo+xmlx1MDAxMVx1MDAxYVx1MDAxNDxjlEh46rlwXYS8XHUwMDFlmNVcdTAwMWRjkMsvSbCQREhcdTAwMDAx35tbtP210zTKOjImXHUwMDEwgkzq2Z+xd2d+pFx1MDAxZL9jvj9bf330X96kP4qbJXdtOdjUxDK6LFx1MDAwZnvz2TdIf3m5jeWvXHUwMDA3+8VcdTAwMTHGjFx1MDAxMyooXHUwMDEwytHHe2/q1CbmW9BcdTAwMTfcf0pcdTAwMTD9/Y7//X1V/5fwvKq1XHUwMDE3XHUwMDFjfvfbjWaQI0no9cdcdTAwMTBb37yeKW5rqylbXHUwMDE1ZtFEaVx1MDAxMS5qPzzvSFSYOStUJ7hcbm75XHUwMDAz/ejfeLGVjFx0l1bjTdLlb2Zwl2a9y7KMZHtcdTAwMWEmY8SZSlx1MDAxNIYk4txGr9fpRWtcdTAwMGZgxL6o2WHLqbKYcj+V/lx1MDAxN551k6pDinhcdTAwMDGRXHUwMDE06OlafT9vnbTqLlx1MDAxOFdnteos+y0ho4yapzvXXHUwMDE36JRJXHL5/NPuXHUwMDAwZdsysMssa4Ol9uVgh3LhzpJcYkFcdTAwMTQyXHUwMDAyXHUwMDFlOPfxNlx1MDAxMsl7KotpNFxuSpueNzyeXG43zlx1MDAwZVx1MDAxYe9FXCJERVx1MDAwNOxH6ckl/J5etO74JfxcdTAwMGKpSMOcPoWB+lx1MDAxZmBcdTAwMDd41lCtTkWrinHkR9LIs9TqLlhXZ9XqLGlcdTAwMDRcdTAwMDGgXHUwMDFjXHUwMDFiYEetrlWEOeB2XHUwMDE3XdNJ2bWExZqUW+0n0etEXCKQm9I4wHmVoUVnPpBh7k74upFUPz0rkmk881Ysgs2iUVx1MDAxNUlff1widXrNmqNcdTAwMTf/VKpD4lx1MDAwMM1cdTAwMWFK1VFcdTAwMTPgTNfK0vso5FlSdVx1MDAxNyyrs1J11pFcYpJcdTAwMTIgXHUwMDE1dl5PIYtVU2SLXHUwMDAzsojutq4hiYa8m4zUfVx1MDAxM2pcdTAwMTWIUFx1MDAwZSCCjD9ue91GIVwi3cp2R5Wol22KNeRKxpYpf+WtKES55ZBLRq+nkNNr1lx1MDAxY71cdTAwMTBcdTAwMWXo1KFcdTAwMDM06ydUh1x0oFxiYvKJXHUwMDE08iydulx1MDAwYpbVWZ06yyNcdTAwMTFOscBcdTAwMDSJ649IV11jlJiMSvFZqZN2TerZeiU4031cdTAwMGZcdTAwMWWfiDiuskPUJUiJXHUwMDFlmNDSpObDWqlcdTAwMGViXHUwMDBlXHUwMDA1llx1MDAxNF3vr6R3wVG50ctui1x1MDAwM9HplFx1MDAwNPK2/H7t0XbosNxZxiZQQ8LWrUBDXHUwMDAwc0mF1NSaP1x1MDAwNWmISkFUIHS9WcsuPG5XaLCAs8Y4lIjU+5Wq/mZNN5uGMFx1MDAxN9JcdTAwMTRcdTAwMWb+90Gailx1MDAwNDDH5qjFq6FcdTAwMTYs+9PYhbKB7qRcdTAwMWNcdTAwMGa4XHUwMDAzrIBmXd2h9liT9lx1MDAxOOUwrlxca6FpKdFcdTAwMWRg28upXHUwMDFkgE1IRJmdMYtcdTAwMDFfkOZLZLKMe1x1MDAwMPX3d2La22ivTH/krHHHXHUwMDE1dpA5XHUwMDEyXHUwMDFiXGL8wCEnuoDNUoiCmTM9zfl7V6NtXHUwMDEz7m3ikbKnslx1MDAxOfQmzJ+tlFbLpPZoXHUwMDEzXHUwMDBmXHUwMDA1239AWqvV27efUCDMmLZ92fdcdTAwMDDN+kCaYkIx4za6W2bJWG3cLq18PGu0x8Hy2FVLv9lMbOeNXHUwMDFhNFx1MDAxNVx1MDAxOchHXHUwMDFhNeup2Fx1MDAxY5rim8LG+HU8KG0rg3mpT1F7t5yn5+ml9o3vj7VpjyBQXGJcdTAwMDVCXFzyj8Oa9VxmXGIkOVx1MDAwM9DGXGaIqndYT8e6fVBcdTAwMWFFt1s+cVx1MDAwN8ZcdTAwMDVDd6hcdTAwMWR7a45r61xiolxihUr4eVx0jzOqYZggTICNxr2RrLhiZbDE1UQ11F1SV6qEfNqj7dCy3dlPdZ+3hqFcdTAwMDCCXHUwMDAz/nn5XHUwMDBlS2dNIEBcdTAwMTHD5Hqc+XLxorsz7Vx1MDAxOJVYZZxr8Gi7utVeUVg3k2aqXHUwMDAyUsn551x0XG5b2zRIXHUwMDA1I1x1MDAxY1F4fWpN0Eoh2Fx1MDAwZSfy8YxrTOu1aHnXo7pj7bEm7Vx1MDAxMYGBYIjzXHUwMDFmc0g/XHUwMDA0bNBavVx1MDAxYVx1MDAxMy5MldfrweZcdTAwMTn2WXfbzqFSsTreXHUwMDE2XHUwMDEy/uI2XHUwMDFj1lx1MDAxZGyHisLOXHUwMDE203BKXHUwMDAwf6ia8N8v2Cym2UYn21652lx1MDAxYclVs4szgfV0XGbTXHUwMDFhXHUwMDE208gz+JVAXCKJbbSGnV607viV5ybQ61jTj1WAhKl4oTo7tlx1MDAwMcPvx61TSf9cdTAwMDXT6mhJP7ZWT1x1MDAwMYhgSPH1XHUwMDExf73udXlJrGjQWW286VdKjZ7v7aY+OlveIFx1MDAxMYJcdTAwMDLuT1x1MDAwMtBpe92BM2KZxERcdTAwMDAgrkJ9XHUwMDFi4il0XHUwMDFlLq5di7l6NK76sN3o52tu7TtcdTAwMTBcdTAwMGaB5uzRXGbjXHUwMDEycSZfKFx1MDAwZv4woFnK/kFr2T9cdTAwMDKYQtm+hPEljJ1Xw9BcdTAwMTRj6j5//aLyg1x1MDAwZfOnScNCwr/MOtxrxWHNcnOkMPHsevNrXHUwMDA0cH6A6i9Fnmt9ZFx1MDAwN6Rn58vRqDYzf+pGJ+VW/dlcdTAwMTNcdTAwMWb8bFx0Wlx1MDAwNC2PISiQXHUwMDE0XHUwMDExaaNTK7ybTSPblm8+aOZB0J/OU89K+06tw+kl91x1MDAwNrb3KW1RKVx0XHUwMDAyj1x1MDAxY8l0etdeXG5sI7k5aaYn40pxvuX5eTVcdTAwMTCfgaX9wJbtXHUwMDAz+SlMJCy1ypXB5MiW3MLpReuOX/5Tf3avXFz3JZInt1xi0FJBIVwij+SmR1x1MDAwMvEke1xcXHUwMDFk2j5LgfaCcXVUgVZau4NcdTAwMTBxrjBoo3CiwlxcM+9kNCjXhmRMiDGqZMBcXPtdeMhcIo4q0ELOsIpcdTAwMDPRXHUwMDBiXHUwMDBiqlx1MDAxZmbpb0ZcdTAwMWHjhMhcdTAwMWZcdTAwMGX5JaS5JqwzJHlWcdVgstZwXHUwMDA1O6DK31xyafdcdTAwMDa3d1wijWGptjd+4fniw5BmLVxySixTdebhXHUwMDE2I1x1MDAwMlxcn6pcdTAwMGLv6qWYL1x1MDAxOdtcdTAwMDZkaYRiU5dcdTAwMTgltHcqXFxCkC9zXHUwMDBlrXJGpSBC/oxyXzWQSF1cdTAwMDOQXGYzKVx1MDAwNEP7T/6MUiilpnbPK9PmN/lcdTAwMTZXKoX2yy5cdTAwMTDZNfPlQKZZyopgMddtXHUwMDA19lx1MDAxY/bfSqGuX09cdTAwMDRziDFcdTAwMTEqbiPf+aY/fkuF0i/1qnpsXHUwMDEyQFxuTU3fv9/xkVKhVuA5+PF/7P95XHUwMDEzKZ3hJGVcdTAwMTiBXHUwMDE5hlxcz0nxZbjLQouiN+XKY2M07EG51d9cXEB0MJXx3jkudyqHgl+ib45rLcRcdTAwMWGbcny4gOs6S3qMXHUwMDA0Ke1CNaFhXHUwMDE0bVx1MDAxZERTXGaZ5NhGKc3pNWtcdTAwMGZgM5+7r1x1MDAxYypcdTAwMGXgrJtwqMnKUFwirKeH//24ddJccr1gW53VXHK13ILqSZt0bWOub8xcdTAwMDeirnAnlexlXFyT5GzGXHUwMDEzU3/7XHK2INGJQ8xbjlx1MDAxOKBcdTAwMGZcdTAwMWN6cFx1MDAxYolMOoH1xrt25Uh8XHUwMDEyXHUwMDFmVLz9zbbdfStcdTAwMTKBmFx1MDAwMqycMHJ91HR60fpDXHUwMDE4XHUwMDFjaIe+kkVuqzJcdTAwMTJCPZdcdTAwMTdcdTAwMGVKf1x1MDAxZI08q8jognl1VjfUelx1MDAxMypnQT1cdTAwMDdcYq4v9Cu4evF5MVZyt/PTXbdI83RcdTAwMTjSPj/mgoBpxSPkl+VcdTAwMTNcdTAwMGYsNLqNR1wi3m2DjVx1MDAxMqParlx1MDAwNILdXHUwMDA2TVx1MDAwNmPp+XvxiDJVjGJuYzDP6UXrXHUwMDBmYcS+iGnMlZNvalxi8Fx1MDAwM0BrKFx1MDAxZkpMkVx0wuknXHUwMDA2JM+SXHUwMDBmvWBgnZVcdTAwMGa1XHUwMDBlSJgw3VxmXHUwMDFiXHKqw6r0T8K1zVxuTKZcdTAwMTM6mjezlf1P1XRcdTAwMTfKXHUwMDA3zya+j0eEKSVcdTAwMDLFXHUwMDAzj/Ruo5ExXHUwMDFjM9+sX8tNy1x1MDAxMk+LqNhOochb0Ygyn1gqJ/16XHUwMDE2Ob1m7fFL+JdZnCEpQVxis73y8lx1MDAxN5DITfqh6lIlpa9s9n9cdTAwMWSHPEs/9IJtdVQ/XHUwMDE0Wp6jXG5cdFx0XHUwMDAy3EZSq7vbxeLNaMa3ZP54Pj3jsYF3q/1cdTAwMWU8Plx1MDAxOHG06YFcdTAwMTNEXHUwMDA0Znr6aHdcdTAwMDDNWqiWYUk5xTaqWPu9+FwiT3OpQabTZLJIVsNcdNXfWTnOnjosXHUwMDFlSlx1MDAwMDR7z/U05fdAzbJgmkOqXHUwMDAyJ2BjSmR2g6e1Sbc5b2BPPbs2XHUwMDAy7sRGf5Xa41x1MDAwNIujUGPKx6CciM8zapZIg1x1MDAwMFx1MDAwYixsTSjurzxjNMnF00nfeIfmhuAhoH1t/nFcYuYo0tSzJ8Js9tczW35cdTAwMGbUzpSwIOWUSzslLIFSLZhcdTAwMDBl6TfyTb5Ii2XGXHUwMDFmc2lcdTAwMGa1I09ccjsr6Gi2bnFzPOinYVxyW+d3udnuhaBcci2CXHUwMDE0qZUnq/iKkP40U9uFXHUwMDFipUjhXHJcdTAwMTj00FlzXHUwMDE2a1ximq2CjMmPc9bOYI1xplbMbWQxO65OiDWHrsBcbpfqu0QhXHRS7ab+WDv01py2a5BwrGDwOo2gV2HNWpCKIaGuhV5v1s6X/epcbrVDb81hpJl9lELsN7A+s1x1MDAwM/p8nf9cdTAwMGZcdTAwMWPZ64B+NY6te/s5I2ZZXHS7PpeSXHUwMDBibsrDZtbfj8WDW7FcdTAwMWRmV+5VUHtcdTAwMWNcdTAwMWa7go6qRSrLXCJcdTAwMTHC+y74h5hMZH3GKCVkQEW4V0NtkkiFhqX5yuWtVjBOXHUwMDBmO23vXG7qXHUwMDBmtSNP0FGomTIlkkj+ceRsjTRIXHUwMDExXHUwMDE3UODrT1wi2v7Vmi831c6yM0yk/YUmzoT1n2p+7Fx1MDAwNzpr1CiQgr9Sa/lVSMNWSCPmvFx1MDAxZuVcdTAwMDVen0nZtDvNcLFTmUVr1e4k7IHQ6Opv047cQGeBJlx1MDAxMeVcYlx1MDAwYvKGiVx1MDAxNEvVizOpYcQk+HXefzXKRr3GIFx1MDAxZYhmubtcdTAwMTLMelxuU9TcxL3ao0xcdTAwMTD5XHUwMDA12IH8XHUwMDEyMuWXwN7XXVx1MDAxNVx1MDAwZZa90VJ8XHUwMDExfKpP55RcdTAwMTJcdTAwMTMzsfejL/0tw1x1MDAxMFx1MDAwN4SYlkZvuny5XG7T4ac+W4Jpv1wi++ich1x1MDAwMLWdpY32u3hvXHUwMDE5823DY7+Qglx1MDAwNLvz+tjY6j+5a1/EwPlSOyiUX1wiXHR5YO799Ja9KC9cdTAwMWPPR0JoM6Vr2uLDnVx1MDAxMfdVp3VccmvtpLV3jShmXGZLXHUwMDFiuv+nXHUwMDE3rTuCXHUwMDE5e6/+UYhcdTAwMTmQhIFcdTAwMTdqtX9AXHUwMDAz6Xnj6mhcdTAwMDMptIw7XHUwMDE0ZVx1MDAwM85sXHKvWlx1MDAxYutcdTAwMDZcXMNZKT6PRjepZnftXHUwMDBm6Fx1MDAxZngwrURcYijFXHUwMDAwqP3oeN/PcLxsRZfxXHUwMDE49Y0yxOiqYKhcdTAwMTR7K1x1MDAxMuFUsTFcdTAwMDQ2UjSn16w7fql4t+5RKbhcdTAwMTDq2eh5cHxcdTAwMWaJPKt99IJtdbR91JpEzIJOzMy2ias3oZ9vxTzhLrq2gTIo1ZOdas+v/VBcdTAwMWRcdTAwMTfVTIVcdTAwMDCr/1xidXzSXHTLN5ub+nbMq71yqLKgvr7hjr5cdTAwMTWLKJtcbiXa10S8XHUwMDA04NNr1lx1MDAxZcDg7XpHkVx1MDAwNIKbnVx0XHUwMDFmSCPP6lx1MDAxZL1gXVx1MDAxZO1cdTAwMWQ9XHUwMDEzi2AqXHUwMDA1XHUwMDEyxMa8yVohWmihemAwiedmXHUwMDAyu4ahYUL7mc0uopVcYlx1MDAwMUZcdTAwMDBIRp+eg77EXCJgaWSLjUW8N0bB1jTb6ydnxfdKaCGJXGJcdTAwMTJ2Zo6fXrP2+EXv1jyq6IbCXHUwMDFmufLPIZFnNY9esK2ONo9aXHUwMDBm+FTswZjE5Pp8wFwiuVuXktFVXHUwMDFhL1wisUFqsetcdTAwMGZ9SPs9eHQq4myflVx1MDAwNEDd9Vx1MDAwN+qh6VKxYXn+xlxi5ZJcdTAwMTNcdTAwMWJcdTAwMWR9PlxmYlx1MDAxZH/H6Fx1MDAxNOOZrui1+6XFUn9n5Shx6myTMpSA8VdOkX1VhbhllzKBXGZBaaefL59OejPJoJezangx2URLy25cXPshssfJXHUwMDE1R4FmSmVj8sjKXGbtgVx1MDAwNpm6XHUwMDFjIYGNLEhqOspcdTAwMDdccq/E/kJ3XFxk3XZcdTAwMTRcYv1cdTAwMDV9j+IvR5Em1H1XT1x1MDAwNX1cdTAwMWN3Wlx1MDAwZjXlXHUwMDAwm23ZNjQ/4731eNeub9KpIJ3Fe7GUP1fYaVx1MDAwZrRDJ83hplx1MDAxN0ihXHUwMDEwnHze5Je9XGb4oUa5QFxcqEVfXHUwMDFmXHUwMDBl+LeGXHUwMDExX3ijTE6isWRhXHUwMDE127b297amSDv00pxGXHUwMDFhwFx1MDAxMO13aHw80KCEKvxh1EY5XHUwMDFl9Fx1MDAwNlZcdTAwMTFcdTAwMTZPLGXKX45TIFx1MDAwM9l5SXukXHUwMDFkumlON/JJouhbaDou7lx1MDAxZahcdTAwMTErqFHMXHUwMDA1IPtYvIS0nlx1MDAwNFwiZ5TwXHUwMDE2llx1MDAwM5POMlitZSv6t9pcdTAwMWS6ac5cIo1xRFx1MDAwMftA0VwicGb2vHJcdTAwMTlcdTAwMDBcdTAwMTM2XHUwMDBlZHKzXHUwMDAynPd9QbhOXHUwMDE1XHUwMDAz89xcIlx1MDAxYm1M9S9cdTAwMGU7auokXHUwMDBl11x1MDAxOEOpolx1MDAwMvrAVru/X7B5JDOPlqeDjXfpRoGhh1Vr7nQnw+xcdTAwMWbJ2OlcbjhcdTAwMGJkyyNcdTAwMTnrmPZX8atENlx1MDAxY8DTi9ZcdTAwMWXC54fUXHUwMDEw/YqMKeGEYfJCsYe7u1NcdTAwMWMvMr5gXp0tMj5cdTAwMTOEKVx1MDAxZlxyMnb9XHUwMDFl5I3EmCyK1UQsN09SXHUwMDE38GAjoH9cdTAwMTB21LDtMI0wQbHA/IGnnrfRyHiYLYdYfOGbTcYqrE7Fp6NF4a1oXHUwMDA0QSxcdTAwMTlDXGJd73OfXrT+XHUwMDEwPjul5sk0clOdMVx1MDAwMliZXHUwMDE3SVx1MDAxZlhMr1x1MDAwZpE8q9D4goF1ttDYkkhcYpBcdTAwMDBKO4K981hccqJV1J1vT3PVyLjfyNHkUP9deKjH4CyRYCFVNFxugNMtj+VKddlZovlcdTAwMDJMd4PYJtNl8Uj7rXhcdTAwMDRKSqRcbqlttKucXrT+XGI+O6XmyTxy45RcdTAwMWGEIYZcZn1iQPKsSuNcdTAwMGL21dlKY+uAhFxiRFx0ZdefP8q2umndpauSmLpbmd6YXHUwMDBl80D/mYOHaitcdTAwMGXHI1x1MDAxOFx1MDAxMcLpXHUwMDAzXHUwMDE1km+jkVon1MhcdTAwMGW62Vx1MDAxMEky2elcdTAwMGWAsVx1MDAxMNn3olx1MDAxMUwpUJaK2aiUP7lo7Vx1MDAwMXx2TM2TWeSmSmNsQsNM334giTyr0viCcXW20tjyXHUwMDE4XHUwMDBlXHUwMDAxXHUwMDAxXHUwMDA0xdxcdTAwMDaLeFx1MDAwMsP8fFx1MDAxMY70Y9FVnG6i3lxcXHUwMDFm6980dnw64qzSPuZmXHUwMDE5y36aWactdlx1MDAwZtYsT+JcdTAwMTiWXHUwMDE4UWHD3mNXrLZKz5P9YsOf6XrDqVnIRfSH2lFcdTAwMDbVUahcdTAwMTHCMFx1MDAwM5zoXHUwMDE5XHUwMDEx3IM065lcdTAwMGWUSnVX7airNoxMfjGMXHUwMDE3hrnCtsmo4S9Gc2X9oXaUY3FcdTAwMTRqlDPEyb5cdTAwMDDkx0NcclFq5kNslFx1MDAxYidQIFHI5tZNOulcdTAwMTigvpj5+HKkPdKOojBHgaZ8aSRcdTAwMTBcdTAwMDd6Oqh3XHUwMDAwzVpjn3JcYoVcdTAwMTTo+qRb1qimloF4zTNN5iqF2mRcbtpL/Vx1MDAwYqaOXHUwMDFjNXpnxVS9RerN+s2OmjSrvMF+muVDoLa31lx1MDAwM6hhXHUwMDA2qUCEXFxv04JcdTAwMDHgw8tcclxyJlP+0rxby+Y98lxyZldcdTAwMWU6as5CXHIjiaD6379cdTAwMTHSICamXjSyIbrj9eSyweIuNGyzOiHLNvX1qEd/qFx1MDAxZDpqzkLNTGBC9MCzMF2QZq3LQVx1MDAxOGNqxex6o1bJXHKXLcF9aZzJyFx1MDAxOFx1MDAxZviadKS/XGb+oaPmLNDkL0VcIsg/XHUwMDBlaXtZuiNFWEGZXHUwMDE00kb3fiU5XHUwMDA01dhyXHUwMDBihzBZblx1MDAxYklPcVx1MDAxZNK/qfrYU3NUXHUwMDA3XHUwMDFmq5uOVdz/uiaKV0HNWj5bXHUwMDEwLFVcdTAwMTgkrjdqNFx1MDAxZd2WQqlop9CfhttD0HehyVx1MDAxYtDnkafmLNQgV2ZVfqBVs4ZcdTAwMWEhkjKIbYyuXHUwMDFjoGaGRFxy5HVcdTAwMWLcx5IzXGa2bKM/1I48NWenezCiojHz69OwZt3Dr7ZcdTAwMTdDKlx1MDAxOLreqlx1MDAxNfBytvSNvNtAuLfMXGbHnlxceTjRXHUwMDFlakeumrNGTVx1MDAxMEHR/rCGXHUwMDBmXHUwMDAxmvW8P7VYoOxcdTAwMWFcdTAwMDPXn3765+Oxf5zxeNfDZV1cdTAwMTZ4pYJ2a+2RdtjD73RNP1x1MDAwNFx1MDAxOEtBna7F3MWLtWy0mt3OXHUwMDFig6gnO8h3Jt6FhkU0+0/4KNowQYxseICnXHUwMDE3rTuCz4+f0K8zXGZcdTAwMTFpTlDSNFx1MDAxYfl+2jo1hl2wrY42hp2ZryiUh0YgsHEy04OuUDmRLPlm3VZ3XHUwMDEz5ctcXNLI6L9cdTAwMDU16y9cdTAwMDaEMslcdTAwMWbor9xGXCK+ir+9XHUwMDEwsFx1MDAxYmh1QD9qeIfL5sD7XiRcIlx0oVx1MDAxY9uZe3x60boj+Pz8XHRcdTAwMWT7wihcdTAwMDJcdTAwMTK/UPH1/ZvCLthWR5vCzpBcYlJ45Hb0XHUwMDExV8VcdTAwMDHZNvPdbMPwxlFrXHUwMDAxWW/4XHUwMDA2XHUwMDEzYLRqLkZcdTAwMDAjyulcdTAwMDNL426jXHUwMDEwXHUwMDE3TDXdqeDGvVx1MDAwNXlPrc5peVx1MDAwYlx1MDAwM+9FIYwwQjGzIVFxetHaXHUwMDAz+OzwXHQtW8KUWVx1MDAxMeShXHUwMDFk9PqwyLNawi5YV0dbwqxZXHUwMDA0XHUwMDAxJFx1MDAwMOZ2QpGaO13Irbf1RFx1MDAwZkU7uVhgU6H5jva78FBVy2lcdTAwMWGh6oK444PwvJ3yolx1MDAxYa9cdTAwMWLd4KQ735W32DvKhOzTiNjH8qvTWULxMaLCRj3QyUVrXHUwMDBm4LPTJ3TsXHTjkFx1MDAwYo7hXHUwMDAzXHUwMDFiXHUwMDFmXHUwMDFmicP7WORp0yfOXHUwMDFiV0d7wrBlT1x1MDAxOIfCXGZTbVxi5s3G3rY3XY5cdTAwMDdcIjWW5MtcdTAwMWRMhCM+7ffg0aHInSXt91VKMVx1MDAwNlxio4+MRV5m529V0IZcdTAwMDCbXHUwMDA1LMCGIFx1MDAxMa6AUD3ZrY5z4arB4/FqslHRv6bgKHPqKNKgxJwziF44f+JVULNu01x1MDAwMZyYYn3o+pNeOlx1MDAwN+vgXHUwMDA255NwXHUwMDE5y7QygUqW9OPaQ+0oweIs1EyldlxmXHUwMDAwe5xrrD3U4K80L7Mj11x1MDAxZa2769ltXHUwMDA0xIPpOlxuXHUwMDA2WvOse6R/n+tRXHUwMDEw5ijUuFwiXHUwMDEzweBcdTAwMDPlZjVBXHUwMDFhseRPXHUwMDA0VKCg7JqNSuOMt8BcbvlcdTAwMTGNr+qB+Cwte5tIfKw90lx1MDAwZT21e2va7yzJk1x1MDAxNEhcbulcdTAwMDO7XHUwMDBm/37hIN7/65GV1q2JLyuyu9h012C8nEi3spGf4f+/gFSbzcZrXHUwMDA3XHUwMDAz/vNAppZRPyfEPEW34Vx1MDAwN86TnpqYXHUwMDE4jX4y6VxylyZr91x1MDAwMI70x/GhXHUwMDFm6CyOOZdEyFfO7HFcdTAwMWNokHImXHUwMDE4gDbO2XLzMNrUilx1MDAxOISLuUZL8HyPj/WPbVx1MDAwZt1AZ5HGKFx1MDAxNog+slRDXHUwMDE3pFn3m5nKOlx1MDAxNEN8fcCRy6J2KzfYiFp3Ns24WCZbLeovQXHoXHUwMDA1OszNXHUwMDA0QFxiXHUwMDA0xJ9cdTAwMTdwWDecQXVcdTAwMWSAXCJ6PX326mBr4OqWJZHRXHUwMDAwu46cXHUwMDA1YUR7qFx1MDAxZLmBd9bL36mrXHUwMDAzqMKZ+Dibhi17gFx1MDAxMDRcdTAwMGKXOCTXZ4bb7lQryGFm5a36UMG9nLt7Xv3FTo78NEeBhqWEKsgjr+s2c1x1MDAxY2lcXDlqSDHo9eS5dU/aXHUwMDFiXHUwMDBl/CRnzGuzrjsyqeffL1vnLNCgMCEgXHUwMDA0eV2lyKtyKJZcdTAwMTFcdTAwMDFcdTAwMDJcdTAwMTRcIoT3XHUwMDBieS5BbdjdRLi3VYBcdTAwMDXcrsBcYvT6XHUwMDAztK891I78NEehRrFk+Efm6m2Q9leS5WQ0YJlcdTAwMTOmXGZRhTJ+vYd2PuujK8hcdTAwMDRcdTAwMTdfWHBGJcFcZkj4s0uHXHUwMDAy+IUkVK9cdTAwMTD1P0r36q9cdTAwMWZZtFx1MDAwM1x1MDAxOflSXHUwMDFmzkxBXHUwMDAwwdD+XGa634g8ToZcYsx/zCfXXHSPe7epNlt4ekazZ3RcdTAwMGV/pGU0v1/5ziP+2frrosJX5H9NYI1cdTAwMWJL8/rBl8SUYCjVXYFcdTAwMWPB7+Im897UJr/4+4tzXHUwMDAxkCmITVx1MDAxOEVQ/v2O//1eRm2+8I5Ho95C3YDUuGcsXHUwMDBlr/rXitzmluq2as1cdTAwMTNr2n/tz8Wsd2DkJ+Yv/ZlD/f7bXHUwMDFm38/51z9+//2//3ny3dbIOfjxf+z/abv8aS84PWzEYEy513xcdTAwMGaxXHUwMDE356+OYdbfSdbBeDJcdJdz0fHKVdRfz0Eg9oW5gIxjzFx1MDAxOdiraHzEQVK7Vlx1MDAwN4BcdTAwMWVcdTAwMWJcdTAwMDZGv1x1MDAxODrRvYfx1/dccv+umsWAQ1x0n85QjFx1MDAxMoiohOzuqlnx47u/652+neh/1TvNx7M9ZNoreVqM91x1MDAxYet/1jv9uN7D4qafn3lY37T3PH+XNyF+h8dcdTAwMDcs91x1MDAxODRtXHUwMDE2wHamKXaKhWYhulx1MDAxNlx1MDAxNFx1MDAwZSujXFwgRJq9Ldd+k8FcdTAwMDOPz4XFffvqvipZKSTHnD5wQ/22x7aqZDlcdTAwMGbXXHUwMDFhheo0wyONYi5aKVx1MDAxNlx1MDAxYb2phlWywlx1MDAxMsHKczbbwmxcdTAwMWP7nl6z9lx1MDAwMEY/e773Oq//wjNHmnV9U6q8h5fOV35dkeyzur4vXHUwMDE4V0e7voF10t2s8lx1MDAxMYzL6zehQTOtVn1cdTAwMDBhP7yt5VijXHUwMDFmSWD99Vx1MDAwNIVWJFx1MDAwMn9N31x1MDAwMfKBaffbWKSZQEHpXHUwMDFlTkJccj/2Rd35VJZcdTAwMGbei0WgXG7AXHUwMDExQMTGRNvTi9ZcdTAwMWTB5KDpXHUwMDFisFx1MDAwM0Q/l0Zu6vuWWH0oYprWZtxHJM/q/L5gX1x1MDAxZO38tiZcdTAwMTLCoVxuRaiN/HM9jcNGtu9fxn354LZcdTAwMTnjYzbV/kxNL1x1MDAxNoFUMFxm9kVcXFx1MDAxZGKRbCRK5LSWynlcdTAwMTa5enSYrsT89K1YhFx1MDAxM/RXf/H1JHJyzZrDXHUwMDE34y9zeKzy7Fx1MDAwNZdCIHFcdTAwMDDn51LIbX3fXHUwMDE4XG5cdTAwMTXAXHUwMDAw+InByLP6vi/YVkf7vq05hFJKqFx1MDAwMPL6TeiCq4Zni1xucDEqXHUwMDBlyonhdj5l2quH6Fx1MDAxNopwblx1MDAxNjVip1x1MDAxM1puX9ZcdTAwMWKkraY/5+7GqnUvJNuk761IXHUwMDA0QkFcdTAwMTCD0kZ31ulFa1x1MDAwZWCoLDkycUko51xmM45cdTAwMGVcdTAwMDD9XFxcdTAwMWG5qe9cdTAwMWJBIX6q2X9cdTAwMGWLPKvv+4J1dbTvXHUwMDFiWkt8q9BcdTAwMThQW+243nA/zYZ1r3/AVql6J8mW9aVb91144mDkvlqYs7vuOjJcdTAwMTFcdTAwMTRShFxi13OX3Vx1MDAwMTdrsVx1MDAxYVxmzPJcdTAwMDJooyYmi7Kh3lx1MDAxMOREbk4zoWZ8WZPsXHJcdTAwMTOojoNNXTQx5bo0ten3oM26XHUwMDFmXHUwMDAzXHUwMDAwc1SjXHUwMDFk41x1MDAwNlxu3tFcZtJ1XHUwMDE4XHUwMDBlcoOCO9tcdTAwMWH5UE13uGlcdTAwMDc2hsyIlb1wqpnjWKOSYXM45fVQM/qZcG7Zhbtcbo+sXHUwMDEzoVZz6Fx1MDAxZGivya2fYcOMXCL5ga0/ltXLXHUwMDA0XHUwMDAzjFx1MDAwMbQhlyVQXHKNs5VAp+FcdTAwMTKMXHUwMDAzMSqzhPZIO+Gx3ddl9lx1MDAwMKwhZdM4hkzPitF70GZp11ToqiAjObOR7Fx1MDAxNf1COlx1MDAxMVxmrXKFSsQ7aCDPKKe/OtuRZXNcdTAwMWNtkGDMsdg/rP1cdTAwMTS4WeqQQVwiJFVcdTAwMTbOxmyLxrSWdbnH8d5gO96N89VcXHlcdTAwMWN26Vx1MDAwZTf9wFx1MDAwNlx1MDAxNJX/XHUwMDFhPPVxYLPWXCJcdTAwMTOYILXFbFx1MDAxNNW5sFHpd5JcdTAwMTX3OurvpHqB/Dqe116LTEPTXHUwMDA2JWZcdTAwMDTBXHUwMDE36lx1MDAxM78qQrD029RFcEbVsq83bSVfdVx1MDAxY63xXCL0bT2z3C5fKLlcdTAwMTZL3dF27Lih+2r7XHUwMDFmgTdcZlx1MDAxMTLHXXxcdTAwMWXerD03SMwzQk6vx9tmXG78gdBcdTAwMDDSbL5cdTAwMGLW+Wx3vI2/n+emXHUwMDAx3Lik5lb/QM/NOtmGuTRcdTAwMWJbwPVx6bBRXHUwMDA3XXc5RXdLmaOF6M6zjlx1MDAwMt3hplx1MDAxZthcdTAwMTDDkEr4QClyTcB2Zt42XHUwMDEwhFxuXHUwMDAybUSl2Vxc3Uj7J3JdL8VcbulYIUU8tK472PQzbebAXHUwMDBmILCmkuB3gFxyWlo2hTSzWlNcXJ/aXHJcdTAwMWK4XHUwMDFm8PM1MXzlcDmMXHUwMDEx21xmtFx1MDAxZnOC9WpcdTAwMWRTXqQpPYOY01X/XHUwMDEzgzRYLCVHnSDZZXzNSlx1MDAxZszmXHUwMDFhltpIy6Rcblx1MDAxMlx1MDAwMlBCbEy8Pb1m3Vx1MDAwMSzxl1olXHUwMDAwiFx1MDAxMEjAftuvpq1jXHUwMDE4SqT8RE31a79cdTAwMWa3Tq1jXHUwMDE3bKujrWNnpk5cdTAwMGJGJP0hin1xvnm54Vx1MDAwMyE6q48zlV1ccqHheNtK6r5cdTAwMDdcdHkwiVj19V/Zf1xmXHUwMDE5oZA9MKl5XHUwMDFihzQy05zBRoi3x12jXHUwMDFhiUTGbOd+K1x1MDAwZSFCXG6z7vV6/J5es+745eRcdTAwMGKZRf9cYmKGMCD8XHUwMDAwzs/lXHUwMDEw+EXMXHRBlCNOsVx1MDAwNFdWa5pyLFxmyY+kkcCTaOSCdT2kkcBLacTyxMKs1MSmktLVu9BcdTAwMWJcXCyqLJNxXHUwMDE1Ol6S6eez/UqyqvsupEivUMScM4AgQk6HXCLb4Fxu+WNj0plcdTAwMWGRPIlcdTAwMDViRmaS1ZFGLGNpTFx1MDAxOFx1MDAwN1xcgutP3E6vWXdcdTAwMDDTn71j+Fx1MDAwMM5cdTAwMWG2jpli3aZcdTAwMTianick95HIszrHLlx1MDAxOFdHO8esY1x1MDAxMSo5XHUwMDA2UtpQKV9cdTAwMTmr9jJR3fXza1+ulKXl9SypvVx1MDAxNlx1MDAxMlx1MDAwM1qFXCJmTVx1MDAwYuLMcVx1MDAwZanKdb6Tz5dbW1x1MDAxMl2Oqv3WwDfCOnKIZSjCMMKQc1x1MDAxYvNcdTAwMWNOr1l3/GL8I1x1MDAxNHl1NuuGSFx1MDAwNKotJlx1MDAwMP3IQMT/JFx1MDAwZblgW1x1MDAwZjnE/0pcdTAwMGVBln1jXHUwMDA0cSgxsdFZoTy4alxuIEo6nSHecTmLTNvan79cdTAwMWSfiThe725mtFx1MDAwNJOfWIRs2TYmITX1WW1Y/Nmgtuzj8rLVXHUwMDFjNWNcIm9MY7KgvcdynDx1XHUwMDFlbVRcIlx0qK5hwT1oO1PJQpHZmk6vXHUwMDBmUn1cdTAwMGImS/3pNrh1rzqdlts3r621z3VcdTAwMWVnWVx1MDAxY4dcdTAwMWKF6rnwT7Rt1mhjgDMg7Fx1MDAxOLdqYJpBm9U4WWq2XCJ0Uk6vK3PtxaCOwzHH0Vx1MDAwNjliXHUwMDFj/Vx1MDAxOKL0IXAjZ1x1MDAxNFx1MDAwMDlSwdP+XHUwMDE2u1x1MDAwNLdaJLZNdJPSXHUwMDE4x1xmMar4XHUwMDE26URFe1x1MDAwNcBjz83xonfCIWdcdTAwMTDKZ2vH/O1cdTAwMDFlcvVy3O9N95rZmCeeTVSKw+9cdTAwMTKOXHUwMDFmWNJ7hCixNJ1cZivnhFx1MDAwMlx1MDAxYjpkcdnrVEE/X1x1MDAxZVdlo7k14utFKKM7lI/dQuehzFx1MDAwNPzpkH+K4bTMOnEgpVx1MDAxMDbkttL1/KrnTsX6Wd86XHUwMDE1joXJulrRvrr52Cd0XHUwMDFja9BcdTAwMWPwTT5x6p71lG9olpFcdTAwMTFKbJi2clx1MDAxY64nXHR3uyl7rZ1cdTAwMWNTzziVTuhcdTAwMGW3Y6fQcbghXGKBZMor/zjxXG5rSVx1MDAwMUjpX1NcdTAwMWWvj3hFX0wqbFx1MDAwMnyZUb6X6c3nYTyM6lx1MDAwZbcjp9D5enqIhOJ3XHUwMDAxP1x1MDAwZm3WXHUwMDExL8HKd0DURtvtLFx1MDAxN0oskjOSitJSqTSNMdzuQN3RduS3aYA2U1x1MDAxZFx1MDAxNn2gXGKUtaKAZKakXHUwMDAwtyGXXHUwMDEyraJcdTAwMThcdFx1MDAxNLLuXHUwMDAw3vbDma5wzcfaXHUwMDE3v1x1MDAxZjluXHUwMDFhgI1LXHUwMDA0XHUwMDEwpJ/XmHZmLregXHUwMDEycWTrqMJcdTAwMTVYpNN05c31wsNayFPNbWvaV+hcdTAwMWQ5bs7DzZzvhSXVVfv6LNws54tcImYtlWKqQCFC0PWW7XxOSFOoQVx1MDAwMb4wXCKmhK1U1oTig5JsJMVcdTAwMTdcdTAwMDeCqWev/qdCJnZcdTAwMGZcdTAwMTBcdTAwMWY7YVx1MDAxNFxuiYXgL5go6PCM0fM54j/szVx1MDAxOKVfgFFcdTAwMTX9UuWrqKfP6N/v+L9cdTAwMTmjZyumIDsj81x1MDAwYimXkohva3JxyOiSdVxukbSx8Yf7wS3s+mbDpfb1XHUwMDFhyj58SSQgNTWNXHUwMDE5UVx1MDAwNuOnrbjzzMmyXHUwMDA0UJkggk/1/J1cdTAwMWMzqlx1MDAxZVx1MDAwMyfsXHUwMDA1g7BcdTAwMWRcdTAwMTgzqlx1MDAxOLw22kPCa1x1MDAwNo1cdTAwMWV+6lx1MDAwM0aNWo/8RpaHa1x1MDAwNEJzuJaNqiixXHUwMDBi9r2DjiyUs6I+abNptjjXPknsXHUwMDEyipJcdTAwMDFlXHUwMDEwUFxipGBcdTAwMDfV7VJ+XHUwMDAxXHUwMDA1cMSY5IBcYiFcdTAwMGUu7FF8fMIrPFwiYCGQZJRyPX1C+/z785e9XHUwMDFiXHUwMDBiWr3/Ktq7UO5umdw0VcYoMWUsr96V1fBw0Fx0N3mgms5nPNlVXHUwMDEw14bajytyQXSYXHUwMDAzgI62TVGEzaFb4nGHhL9cdTAwMTFjq+I9N1x1MDAxOOeLjVK6Y2TWuWZi2lx1MDAxOIXDbybgXHUwMDAwlCNMXGKx0T1+etHaQ1jd6Fx1MDAxZuN/XHUwMDBmZm5B7SRcdTAwMWOUN0AghUzTXHUwMDFhopPOnONcdTAwMWFcdTAwMGVcdTAwMTfsq7NcdTAwMWFcdTAwMGXWXHRcdTAwMTdcdTAwMTXGM0Tw9am9fE/646nwcJcrhivZyizm67neQHhcdTAwMWJcdTAwMWVcdTAwMWVcXDjLI1x1MDAxMGNcdTAwMDFcdTAwMTX66ePOyG4jkllpx+qwPvXUXFzxYrTZKM2Xm+BbXHUwMDExiVx1MDAwNMqyclx1MDAwMGxkp0+uWX9cYoODXHUwMDAxwC/lkZvG/0LFdkRCpKlo5H1M8qz5v1x1MDAxNyyso/N/rZlEMEk4sqNe2FxuXGaKiXhnm5xBr1x1MDAxY1BcdTAwMTattes9/bchOCy4cJZJXHUwMDE4YJJS4DiRTNAo2O7K/rq+nXsrQVEtXHUwMDE5ufxbXHUwMDExXHRcdTAwMDKQXHUwMDBiYvaRX1xy4dOL1lx1MDAxZsKIfVx1MDAxMdOaXHUwMDEzZcfBvjbLK5jkJilcdTAwMDdcdTAwMDS4pGZ57lx1MDAwN1x1MDAxMsmzpFx1MDAxYy5cdTAwMThYZ6VcdTAwMWOs/TnFIcCOsKNcdTAwMTF2eWrlQjq2XFyKKXFcdTAwMTV6i8Qkpf0mlIc6uM7SXGKXxCxhe+DgxttoJLhp9Iv9cWmUS6RH7nQv3ZTR1FvRXGIkXGJhXG6lXHJt3dOL1lx1MDAxZcGEf5l6XG6Smitm+ODI5MksctNcdTAwMTBgXCJcdTAwMTFVhKfpaLX7WORZQ4AvmFdHh1x1MDAwMCNLQSBcYk1lXHUwMDFhwmx0XHUwMDFibCa9njuwXCKTkN/bwtm5O0GSXe134YlcdTAwMTNcdTAwMTJccppQJUVcZuy3bOq0z+5cdTAwMDBcdTAwMWO2PCeHjGLEhUTX56E2XHUwMDFiVp33emxcdTAwMTPd5mFg4UpGXHUwMDFiVa/+gDtOpTpcdTAwMGY4KomCwSeOlbNcdTAwMTRcdTAwMTBhWKor2Y+ILqovz+iIiOnGN5141rlWo7qtLmP64+044aJcdTAwMDHeOGTIXHUwMDFj0vrvgzcqVNBcdTAwMGWJjSmGzPC0O2Q7Kk9iYdifXHUwMDE1JnhcdTAwMTXuaI+348DMebiZ4+WZhFx1MDAxZqhYY13eiSBlgGFcdTAwMWKyqsVcdTAwMThPL/JwKVx1MDAwMmPDXHUwMDE3qVxyXHUwMDE2XHKyamqPt1x1MDAxM1x1MDAwZZzjXHKjXHUwMDEwqqBcdTAwMGV8nnUj1mwqhFCBpI1Bhlm+zpFcdTAwMTZcZng2a6O5izbYcufXXo7rlPfmPNooXHUwMDA0XHUwMDA0UIr1TO7egzfrhlGhrFx1MDAxYlFcdTAwMTHS9VmiUadcdTAwMWMoXHUwMDE12oZ7iFx1MDAxN8PJslx1MDAxZomEfW9g3o7dN+dcdTAwMDHHTVxyOExcdTAwMWU4h0lcdTAwMTfAMSvAIbXHVMiwv+ZLgJtcdTAwMTZb7sR6beRcIsPCwj3NsvJyW9FcdTAwMWVwx/6b43hcdTAwMTOSXHUwMDEzJvjn2Tdr+Vx1MDAwNVx1MDAwNFxiXHUwMDEy9upcdTAwMDFcIjw2oUa5Uk0ss4vNOjOpVTfaN8SfcN/u61x1MDAxYf1cdTAwMGaBXHUwMDFhXHUwMDEytm6FXHUwMDFhRZ+qpGpNpdBcdTAwMWNcdTAwMDXHmY1KYndiiYqzPEa1fsQwlulBpNx7g3P7I9/NUahJjjkh+Fx1MDAwM4NSy7M9KoFyZ4SNw2l/zt9JXHUwMDBlu91g1Fj4p3E/yIdd71jk5CjSXHUwMDE0i5hyyeSBg1x1MDAwNnSBmqXqXHUwMDAyJ1x1MDAxMktcdTAwMDFtaHwsXG7ddJHC7Lw96Vx1MDAxNVx1MDAwYsvBrJXHb5huc1x1MDAxNmlcdTAwMDIjQjn+PDVcdTAwMTl0RphNUFx1MDAxNYnaybR1snNUiKzovNRcdTAwMGan+qMswFx1MDAwNax/7oNcdTAwMWZcbnzcmdm9t1x1MDAwN0CY3U+SPtBX+/tcdTAwMDWbNTeeNYksgiiTL05qXHUwMDFjXHUwMDA0tjwxWiQ0rLk501x1MDAxMIkx51x1MDAwMNHrefn0mnVHMGPnW8mwbq1kZlx1MDAxN1x1MDAxOaJA6llcYvD9uHXqJLtgXFxcdTAwMWTtJDtT/yAwl5jj64OwrJzMilx1MDAxOTJPNWPlqJ/lk6Ncbo3rv1x1MDAwNVx1MDAxZlxcbnMniVxiZVxuXHUwMDE0dz9Qj+w2XHUwMDBlmYVcbmFXnke9I1x1MDAxZfAkXHUwMDE22UmsWuX2OUTuY/nFXHUwMDFjoixcdTAwMTXCXHUwMDEy2Vx1MDAxOER6etG6I5iK831kzyWRm/rIqICUXHUwMDAz8sLqfztAvI9GntVGdsG8OtpGZk0jXGJcIsE5tCOA71x1MDAxObVcdTAwMDNcdJ5ulLwkXHUwMDE2mrg8nW2OzPTfhVx1MDAwZq6iuzdcdTAwMThcdTAwMDFcdTAwMDJjXGJU6OswkVx1MDAxNN2txC6R61x1MDAwZlYpf6RgbFx1MDAwMlFPsvJeRFwiICFUXG5cdTAwMWLRyOlFa1x1MDAwZmFwvo3suURyU1x1MDAxYlx1MDAxOUSUXHUwMDBiXHUwMDAyiHhdacvrmORZfWRcdTAwMTdcZqyjfWTWTFwigCBcYiB0fVarPIlHZlxyXHUwMDFhblx1MDAxYstlbrVLRZkx9Gu/XHUwMDBiyYPLY+8lXHUwMDEyXHUwMDAyXHUwMDEx50Q+cLTFbURcdTAwMTKOXHUwMDE0XCIj0Vx1MDAwZixccveu4VxyXHUwMDBm183cdPVeRKIsKCdAclx1MDAxYlx1MDAxZMmnV609htH5VrLnMslNrWQqXHUwMDFl4ebEoNdltl5HJM9qJbtgYFx1MDAxZG0ls56SJJFy5zi3UcmSzddZMZ2BTSNdXHUwMDFjl1xyv8cz9uvf2HN8PHJf4dS9R3FEQVx1MDAxZsN9OVx1MDAwNp122D1QO3NcdTAwMTSHuaTUTu9w1cf8XHUwMDAz37BcdTAwMTjgu3l77mXhXX2kf1XocVx1MDAxNtVZrDGBOFx1MDAwM6+sZXlcdTAwMTXWLDtkqYJcdTAwMWFcdTAwMTNcdTAwMTjZKNBb5muTST9cdTAwMTb0LLyz6nK6rjaj+ifsj1x1MDAxMy2OQlxyQVx1MDAwNTNJ0Fx1MDAwM1x1MDAwNXu0h5owU80/Jlx1MDAwNlxcglpFRlx1MDAwN22Pryt7g1Q2kTX6/kHSpz3UjkMxR6GmaFx1MDAwNHNCNXVRz1wizTJYOlPGwqVAXHUwMDAyXHUwMDEwiq5GWSqF3WGRXHUwMDFjelx1MDAwN7k897p63rU/q7+fJjD8olCFKfRcdTAwMDBshPxcdTAwMTVE/evrrpDJci5cdTAwMDCjX/tcdTAwMWZ9dixcdTAwMDBcdTAwMTVcdTAwMDJKwp7fZ+HAVFx1MDAwMFx1MDAxNdhcZm+Nk26dXHTw8zOfOlx1MDAxMcC6XGJcdTAwMTZcdTAwMDGz2Fx1MDAwNkpcdTAwMWLjtklj2Fx1MDAxZmVWy1C6nswkR/262Fx1MDAxNfUvTTw7XHUwMDEyQP38l6SIcoxcdTAwMDEya2LQwYW9ciRcdTAwMDCU6JfeXHUwMDA20dOp2Lsz/zdcdTAwMTPgvplcdTAwMDDIumBcdTAwMThcboAw5NeHjulZzjUzholetOXqXHUwMDA3aqg0y8/b2u/Ko4ZcdTAwMWJ0n491X7pcdTAwMWJcdTAwMTEgXHUwMDExXHUwMDA2jlx1MDAwZlx1MDAwNJj0tpJJvp0yVEnjeL4pgp26jtluYC3ZRMyRlsqQ2dDfPLlq7Vx1MDAxMXx+XCJcdTAwMDDimlx1MDAxNXFKTpAwR47oTS5aXHUwMDE1cV6wrY5cdTAwMTZxXCJL0VxywVx1MDAwNeVQ4ut3oCu43ik8ezdcdFbOzcaZdsTwt95gXHUwMDA3XHUwMDEyjThcdTAwMDRcbsQpU46m07U3guWyy0y626svXFyJoKfVo65a7c1IXHUwMDA0YKF89f/f3nUsJ7Jk0X1/xuxRpDdLPMJcbi/YXHUwMDEweIrCe5h4/z5ZejOvUUFcdTAwMDGFq0TTLLojJEBVcPLac8/lLpKT43etP4RPrlx1MDAwM3isXHUwMDEzuXpcdTAwMTmAREJqWo+6zY88isV5xr56yuJ09iNUcmCtyr68t5BcYndHZjrt9/tyqXg1212NXCLGXHUwMDBi+Fx1MDAxMfucrLe5iFx1MDAxNUxyesfFvNe5XHUwMDEx1smmYpHO1Fx1MDAxZq23XCK+vlx1MDAxY/dcdTAwMTb+6Yu5XHUwMDExyiSw9tpenk1cdTAwMWa/a/1cdTAwMTF8clx1MDAxN8Bj3ch1XHUwMDE0ToVyLsDPdCOPonCeMa+eUjid3YhKUFx1MDAxOSBI8svzkUj8fVhq50L9zLAyS8PQspBcdTAwMGLrv3zWPlx1MDAwNO9tOsKZJVZ0R/Hm69xIXHUwMDEzh1wiXHJcdTAwMDA+RLttlH1cdTAwMDMwIenIXHUwMDE1Oy49dSNcYiOmslx1MDAxMXl55/v4XWtcdTAwMGbgk7tcdTAwMDBcdTAwMWXrRa6ib0JcdTAwMDQ54Mrjad4x0Yq/eca4esvfdFx1MDAxNi4mnFCJXFyI9nBcdTAwMWPObJrBzWLYXHUwMDBmNptoMDMnOKv9XHUwMDE5PGiMeCtEhrFcdTAwMTDwnlx1MDAwYmV0oTk5duAgU5cjrSH4i5GWqVdSKFx0WcY/5OmFKbPrXHUwMDAy1n/zy0H51FvNXHUwMDFlKC3+xzPF/59cdTAwMDU1RzVPy3GpXGbITbdcdTAwMTfEKqtmvPBcdTAwMWVcdTAwMWbFyrtAKPpR8U1G+kPNXmHx1qhJLoggT1x1MDAxNMb2XHUwMDFlaVx1MDAxMjBKrUmXi5FcdTAwMTaMzFwiwVx1MDAwNJrSWrEyXHUwMDE140A6XHUwMDFh2enP9rHnYJ5cdTAwMDLN6lxuXHUwMDEzzPmPm32gjmGalFxiXG6KxOU4g4FoYLmemIWF3OL6apuj2CTa4+wgTPNen5hcbkkgvGfGr1x1MDAwYtpcdTAwMWNjNaoyVXW8XFwk5oF0P9eK8kA4XHUwMDE5MNKpVlxi5/z5XHUwMDE3WFx1MDAwZmZcdTAwMGbVvEebXG6TocrUOfhx8Vx1MDAxYXVWXyeSM8JdSCwu8zFcdTAwMTCf5VPZ4XSZNZI92o709Vx1MDAxZkY/XGLXNIBcdTAwMWJcIkyZNv5cdTAwMDOtm2PhnEAhOeQudtGF1+Z7v7klRj84KHVcdTAwMWI4XHUwMDFiz1D9xdftMZv3aCOAc1x1MDAwMZ8pePisXGbBeeEtxoAhgqiLLs3caG6LwjeqXHUwMDBlZ590R1x1MDAwYmK5WWuPtsPIzfvNYOr7R+yZm5q8n5EmXHUwMDE2xcFcdTAwMTKEu1x1MDAxOG67bHvTXY78qZjRXCLJxfvCaINcdTAwMTdcdTAwMTBhP1xi3byHXHUwMDFioVBCKODPM2+OPTykjFx1MDAxYrBKu5cnprXkIL7xx2YxXHUwMDAzLbqTTZSbkdxEf7xcdTAwMWTEbp7jXHKpa4KcYfDz8HaC9MCURcfAXHUwMDA19Wg7q1Rq/dFsuFnFUkhk8r5eW2iPt4PgzXO4KbRRbEmy6znpcFx1MDAwYtxcdTAwMWPLblx1MDAxMEBEMd1cdTAwMWZcdTAwMDU5XHUwMDA3t14nXHUwMDA3JkOYmY1WofCku56VZ6Oh9nCzy9vcWN+9kaopXHUwMDE5gHDfXG54w7Ex+4FJeFx1MDAxMEahSSmfXHUwMDBl+j7DoW2+piPHXHUwMDA2OadcdTAwMWZcdTAwMTRcdTAwMGLB+f4u5nNcdTAwMDA+fte6XHUwMDAz+LT4P9NtalxmUkJcdMNcYutpTH9/2zqNjZ0xrZ6OjZ3oXHUwMDExMsGIXG5aXFz0bkg6X5zsJC3MZkWci5m+bWqnv5aQXbbKU1x1MDAxZqJcdTAwMDJjIShcIux+wfF1TuRzNixWo1xmrVx1MDAxMsU+6saMXWz3UXktJ1wiIFBcdTAwMTfCXdRcdTAwMTSO37TuXHUwMDAwPq39/1hcdTAwMWZy1dBcdTAwMThGXHUwMDFjXHUwMDAzQKieXHTgbU7kUTNjZ2yrpzNjzk6EqdiC4v3Na+eOYFx1MDAwYlx1MDAxN1FcdTAwMTjjSLeEQ1TIfryS+9A/jLPr0XnqQ1x1MDAwNFx1MDAxMiqg81xcvaIqRsaoXCKMcVx1MDAwNPdYrEs260S081pcdTAwMWVcdTAwMDQpI8UoXHUwMDA22IXI3dG71lx1MDAxZb8nVf9cdTAwMWbrQq5cdTAwMWJcdTAwMThjkiAg9vtTP8eHPGpg7Ixt9XRg7Fx1MDAxNC2WMEtu7vLSaWdcdTAwMTVft9PTcWky/oCsNjHN+VL/vrddaNJTXHUwMDFmwlSiLzi4o6DpdU5klavmitSgy1o0LEbBWb5cdTAwMWVjvtdyXCJf1Vx1MDAxNYTd7CA7ftfaXHUwMDAz+KTg/2OdyHXzYsx6NsL4JzqRR82LnTGuns6LUUeCXHUwMDAxp4hcdTAwMTBIXYgglVugI3xysjCmnVW5xDIwkNR/6NjeXHUwMDEw8VhcdTAwMTdcdTAwMWIwac1601x1MDAxZsdcbt1zzlx1MDAwN5KNhKqbJpe33oq7eJQsVv5OzsxMh3BpVEXhXHUwMDA11lx1MDAxNt+X8X7rvFx1MDAxOKfga8eCnjWlW5DmvJ1cdTAwMTdCXGaUXHUwMDBmg5dcdTAwMWI1UZ7kWWbabWZDvVVcdTAwMTVUUT9cdTAwMWXRX8/EXl3x2qhcdKawhn7eXHUwMDE0rDPUVPrFKN2vKZ1DWrq/KmxXkzI3K1x1MDAwM1x1MDAxNDDq7fGKXHUwMDE2tUeaPVx1MDAwN/NcdTAwMTZpKutcdTAwMDUqbSAvXGI0xzzpXHUwMDE05djSekdMkItBlqXGYFlcZvn9Zi7fWPhcdTAwMTfNXaeqvzlz0Pqn9Fxygb1cdTAwMDe5KV26i9Q/QVx1MDAxNCGB8MNcdTAwMDHogdT/l3D4t58+Xur/+9+8g9T/17OOXHUwMDFjM+6sZ4CFIFRcdTAwMTBcdTAwMTfViPRmmTRmsrHlzSzho1wiLdBxSftTdqiccVtB7WT9XHUwMDAxoyNcdTAwMDZ9P0n4Ry5cdTAwMTNcdTAwMDBcZrjUdExu7/PRQNP/2+/uqub/7dk+dPb5e1/vda+A5PwrgPMrfu3/79ZcdTAwMTZIZ4/71e2x7MHFtiBcdTAwMWHozTLlVbG02q5cdTAwMTZcdTAwMDWOojVefYFcdEYo5Vx1MDAxYpBS3SmkQPmz3+/zZVx1MDAxOYhyyFx1MDAxMlx1MDAxM0tcdTAwMDVCcIyY7co8sFx1MDAxM1h9N0ToOk77x068sJ04nVx1MDAwM1x1MDAwMufIQT2o+LZm/azm1rDYMnylzoA20nnRXqwjg5r+KtzcXHUwMDFlOFD5XHUwMDA2JVU/XHUwMDE2hFtsgJvi8lx1MDAxYvmBmFx1MDAxMWlcdFLdzS78g1x1MDAxZVd9ubSZfJ81Mua4iNu5cW3mx9FcdTAwMTjRsC8nneu0XHUwMDE0qL/vQlL++C3rXHUwMDBlZnZyLYlFP2f3gvbd2ebW2Fx1MDAwZZeU/SGbX96eO2NyPSWbXHUwMDAzx/k4XHUwMDBlrG002EV7runr0L6/n8mMS8Noi2dFXHUwMDFizav6n0Y7T1An11x1MDAwMr+00VVcdTAwMDTssW9Bw1x1MDAxNKp/XHUwMDA0jehcdTAwMWF0JjM2Z5lJKftSvlx1MDAwNXLCXHUwMDE4XHUwMDE2XHUwMDAwXY7n4zetPZ5P7it5one5bnlcdKMq0Vx1MDAwMuKOw1x1MDAxNvo4mEdcdTAwMTHRz1x1MDAxOF5PiejOXHUwMDBlXHUwMDA2cspcdTAwMTDn2IXqfMBcXK87k/J0XvowjfjOXHUwMDE33L6b+rNcYqmdRaiTh0HWaJO4o6brdVx1MDAwZaa4XHUwMDFkXHUwMDBm1vWOio7K8LM/iFx1MDAxNzaA6MhMP+FggCXFLJmLKv7xm9ZcdTAwMWXOJzeZPNHBXFzFUkdAQqAyXHUwMDE4rKeUz21cdTAwMGXmUSz1M3bXU5a6s4OhKnKG3IV7MWF2Xcqyilxcgkg0QM1FJ1/XXyWc2Fx1MDAwNXU1ci9cdTAwMTgxhFx1MDAwMfG8NlarLnE5Zk7nqV7An8jETSE+6Uu5XHUwMDE3TCEgXHUwMDE0gMuLY8fvWXs0n9xw8kTvclx1MDAxNX1cdTAwMWRBddHqLjVcdTAwMTWKu827PIq+fsbsekpfR847h5i170Qh9PJcdTAwMTM58r+nglx1MDAwNitEU1x1MDAxNaNcdTAwMWRrrDqhNM5pf1wiXHUwMDBmei/ynv7lNjpcdTAwMWVW3oVDzPQ8brfgzrkuyzgh1I2idor7QWBcItq7QKmfjTYoXHUwMDFjNGot7WF3UJfVXGJ2KolcdTAwMTDKQyGiZ1x1MDAxYuRcdTAwMDbcYef8XHUwMDE2ScQlhuJy4JXFymQ5XHUwMDE5QeYk895pNaP9blf/XGLkoFxco1x1MDAxMfAgx5Ysq6ZcdTAwMWOUh+COWcK7yM3wzue6XHUwMDE3Nmnxc1x1MDAxNOmPioN6XHUwMDAxfu6Q/rp5XHUwMDA3aZxGsLO0tlx0I69o7lx1MDAxYyl4joNcdTAwMTWEWMvtuYul2tN1US5a5pyHs1x1MDAxMfZcdTAwMTky29tGXmpcdTAwMGa4XHUwMDAzocZ71lxy3FPuXHUwMDA0eFx1MDAxM4AoXHUwMDE3XHUwMDAzLa0tyZFcdTAwMWSEiEJJsKamb++z+kO/23vKzfQ7ZofF2deDS1//a/9/t/ZcdTAwMDNCR1x1MDAwM1x1MDAwMjEnVoVcdTAwMTlcXF55TH9GWllfmoXNTlx1MDAxMlx1MDAxOZVcXLqQXFxstLcgjJ+m8II3LiRkXHUwMDEyXHUwMDEzhtiTzYm6NFx1MDAwNIHAltQw35uW+Z+YhjrkRFx1MDAxMHS/wuRcdTAwMWZrYj20sybQXHUwMDAxotaDfsdcYlx1MDAwMPTc2yEn0vq5t7vI1tStXHUwMDBm/aixcV7nXHUwMDA2XHUwMDExIIyrXHUwMDAw+fJwhY23kV67kE/4uN9I+Fx1MDAwNpzDnvZtXHUwMDBlqFx1MDAwZbRy/0JcdTAwMTIhgbKw4PcnYr2Bz/piXGIniClcdTAwMWJcdTAwMGaIXHUwMDEwwnZl9+l67M9cdTAwMDX8Y2pcdTAwMGXCZYopU/FcdTAwMTP8XHUwMDEzqpw3Lsq0XHUwMDFitrTwriZm71x1MDAxYrM9/6IjeUYhXHUwMDBi23/6m1xywCng0k1cZlx1MDAxMJK+drNcdTAwMTBqXHUwMDA3y0lferothkW+XHUwMDE01P1Y+qCtWuKDeymlXHUwMDA3fFx1MDAxNkEplt+q8lx1MDAxZXVcdTAwMWNjXHUwMDE1mkxcdTAwMTdT0XJu3O+CZTJcdTAwMTdcdTAwMDE9XHI7jlx1MDAxMJ1wLVx1MDAxMChjKlxciFlcdTAwMWO/a+0xjL5cdTAwMTPyObVBmiPNRN8lXHUwMDAwXGZqW3/+/X3rRMM/Y1+91Xx3VMlCzJLRUXHPxWewkI1um/1adc7rteGwuVx1MDAxZOeXXHUwMDFi/ds9Qis3goBQ8TuR2GvNd7pcbrZpI5yKz3uzdLyXXsjOYPRabkR9lkBcdTAwMTLAXFxkKMfvWndcYlx1MDAxM1x1MDAxYvFcdTAwMWUwXHUwMDFipFx1MDAxZutGruPbIyBcdTAwMTlEkuvZQb/NkzyKb3/GwnrKt6eOhFx1MDAxNeVEVMKyr1x1MDAxZnvuXHUwMDE4zoOiWd2sJFx1MDAxNZ/tcTbR3fbe/Uz3Y6iVXHUwMDFmUSeLSEjQXHUwMDFkNfCu8yONeFxmlJpiMHtPzrqwWDTDoGPo6EewY1mdXHUwMDEzXGJcdTAwMDHd3zV/XHUwMDBlv8dvWnP8YvxGmYIlVbmAXHUwMDE0XHUwMDAyXHRcdTAwMWKeXHUwMDFm60Su49RDQlx1MDAwNLLCpVx1MDAxZuhEXHUwMDFlxak/Y1xcPeXUU+e6XHUwMDE2XHUwMDA0xIowXFxszdxcdTAwMDSWXHUwMDFmn+3EMFHvXHUwMDA215v+cppcdTAwMWNHXHUwMDAzup9CzdJcdTAwMTGFXHUwMDEyhvdrXHUwMDAz3nhcdTAwMTGyXs1Gco7r2fVwXHSHJVwi2HtURy/inI0wYMXoLkhsx+9Zc/hCZcjR34qFnDPMuK1b8mAvclx1MDAxNXdecCEokOgn1rRcdTAwMWVFnT9jW71Vfnee/FXoYFx1MDAwMlx1MDAwM1x1MDAxN9q1i1x1MDAwZeFGsfxuLIpB38yYbeJsh3U/hUeaI97vXlauXHUwMDFiKG8m9IzVbsBcdTAwMWJzXHUwMDBlWlx1MDAxMEaMkX2JpnN4m1x1MDAxNFx1MDAxMsHlPDObJZrJSVxcjFx1MDAwM/lY9lx1MDAwNYuot8Ht1uFcZoCQSlwiNG2D34I0Z8vGMLc2XHK4WJLsQzkjl16VP0tLan7gTaKQXHUwMDE5aS/Ipp9ZU4dcdTAwMWKCbyupflxu2E5s5EaSW470cje6zlx1MDAwNqrBNOGZz/pyto1k+Io1/bqDTS+rZlx1MDAxNTuoXHUwMDE12z4tTt1cdTAwMGJcIlx1MDAxZYo07jz7QyhQ1lx1MDAxY7rY2+vPTlPDbcrfL6bSyUAr2khXUm3dkXYkYLtt28BcdTAwMWQsXHUwMDFiJtTa9PC8jVx1MDAwM0+D26n1bFRZNiwvN2xxXG6qzUVcdTAwMDCT91JkXCLJZlx1MDAxYqf5pfZwO7Bs3i7sUVx1MDAxNlx1MDAwMPBnblF5XHUwMDFh1Jw3WapYjVxu6WadbD5TNbuRYJg0QHXSYyxY3/W3ukNNO7NcdTAwMDaFwJxidkflKV3AdkIyQFx1MDAxZC6VXHUwMDE0uWBCfCZcdTAwMTPzj+F2lFx1MDAwZbW30WQnXHUwMDFir1x1MDAxOEz76qNmZk1cIsAwg+RpqcGzkHZq451FXHUwMDA0weDyLk2rmVxmpIh/sVxcwOk0XHUwMDFmz24/o0n9h2ZcdTAwMGbitVx1MDAwNy5cdTAwMTS5lDlcdTAwMDZcdTAwMDGVhICn1deehjbneFxycVx1MDAxNTpIN1Iohoz1tuVcdTAwMDXH0bxs5mNGYlwi+q9XX7txXHUwMDFm9I2JKCMqQlx1MDAwNj/PqjlcdTAwMDZrglNcdTAwMGWxXHUwMDFiXHKsbbdcdTAwMWNcci9n6Wltk2qBSpIminKtO8x0M2nWmkFmXHUwMDEx4/9/kEY4wZhDXHUwMDE3XHUwMDFhXHUwMDAwo2xyvpWdfm5cdTAwMTZcXHJcdTAwMTFcIjK3q2mPNK3sXHUwMDE5VFx1MDAxZURcdTAwMTLwRCrq0zJcdTAwMDJnbjRVXHUwMDE3IbGLulqz+1x1MDAwZXaruN9sNjfz0Ue0IKtR7afEsF5DYlx1MDAxNiNdXGJEpdd8msTKSE9ahn+Sb76DWKm5nFx1MDAwNmIr13ya+8HYeUWoc8dcdTAwMGJYu7WBi1xyRMdvWndcdTAwMDRL9MZV6Fx1MDAwMTCmTGL8XHUwMDAy1H5cdTAwMDSwNYWKNc17f3/hOlH7z5hXL6n9XGI4k9pcYlx1MDAxM+Tbds1zh7CTXHIlXHUwMDE2bPlZbYEubTLD15JcXPtdLYdu5ImdQCzf5LeH/bxcdCgxlFxmPjxMtppBhFx1MDAxMC7gPvhcdTAwMWVcdTAwMTe+7LnJXHUwMDAzhW2O4b5zOEvjWvT94Vx1MDAwNaEg38uX85130Gx1+i9cdTAwMDc7T8NkXHSwXHUwMDA0UKJcdTAwMTeMklx1MDAxZMNcdTAwMGLnzjNmQlxuda7YxVx1MDAxMFx1MDAxYlx1MDAwZVx1MDAxYXXW7vTq66lvscKlbVx1MDAwMs19ukNcZkH4pr5W+/5xZeDI221KJk47x6V4I/jYsPmxpeNQIGVwXHUwMDA0fzyVy4Ot48o5K/N3bTxx7d5x+1+9w+bx01ZcXJzgXHUwMDExWes8XHUwMDEw5JfH8IVcdTAwMWWZirJcZpTM/MZXXHUwMDEw47koXHUwMDA2ta92XHUwMDEwolVcdTAwMTaq/jpcdTAwMDeSXHUwMDEzz6c6QCbOasvInDdC73jIS6FGLlx1MDAwM3XMQp37XZAhXHUwMDA2Lebl5Vx1MDAxMD5+17pDmNvmOmyA1nCsXHUwMDAzquuU6lx1MDAxZqhnwHLUd3g+13HGvno514GAI8/eXHUwMDEyXHUwMDA3l640r9g6XHUwMDEx3opcXLo67cfn3TVhsbDZ0P5cdTAwMTBcdTAwMWX4XHUwMDExT1x0qSousySLuJ5lnlx1MDAxYoBcdTAwMDadRXGANVx1MDAwYs7cKFOFXHUwMDA2/lx1MDAwMmtWgSF2sUH1g8Phcqc9a+tcdTAwMTBp3jJpuIBcdTAwMTgh+LxcdTAwMTG9Z0FccjiWONRFXHUwMDEwybGbXHUwMDE2TY2upjLSY0NcXOXjeW1cdTAwMTGJpZqvZ9S8LXJQXG6QlFRnoP36b0j8r/pkkl+ot1S//lx1MDAxYnb/Wlx1MDAxOe114Fgy/vWwQusvmFpQaFtX9++/fv31XHUwMDFm0Vx1MDAxNE21In0=A B C D A B C D A B C D A B C D D taste where put E A B C D A B C D replace A B C D A B C D extend E A B C D B summarize E A B C D unique A B C D A B C D A B C D sort A B C D A F C E rename A B C D A B C D tail A B C D A B C D head A B C D A B C D B select D
We'll walk through examples for each depicted operator, using the
M57 dataset. All examples assume that you have imported
the M57 sample data into a node, as explained in the
quickstart . We therefore start every pipeline with
export
.
Filter rows with where
Use where
to filter rows in the
input with an expression .
Filter by metadata using the #schema
selector:
export | where #schema == "suricata.alert"
Output {
"timestamp" : "2021-11-17T13:52:05.695469" ,
"flow_id" : 1868285155318879 ,
"pcap_cnt" : 143 ,
"vlan" : null ,
"in_iface" : null ,
"src_ip" : "14.1.112.177" ,
"src_port" : 38376 ,
"dest_ip" : "198.71.247.91" ,
"dest_port" : 123 ,
"proto" : "UDP" ,
"event_type" : "alert" ,
"community_id" : null ,
"alert" : {
"app_proto" : null ,
"action" : "allowed" ,
"gid" : 1 ,
"signature_id" : 2017919 ,
"rev" : 2 ,
"signature" : "ET DOS Possible NTP DDoS Inbound Frequent Un-Authed MON_LIST Requests IMPL 0x03" ,
"category" : "Attempted Denial of Service" ,
"severity" : 2 ,
"source" : {
"ip" : null ,
"port" : null
},
"target" : {
"ip" : null ,
"port" : null
},
"metadata" : {
"created_at" : [
"2014_01_03"
],
"updated_at" : [
"2014_01_03"
]
}
},
"flow" : {
"pkts_toserver" : 2 ,
"pkts_toclient" : 0 ,
"bytes_toserver" : 468 ,
"bytes_toclient" : 0 ,
"start" : "2021-11-17T13:52:05.695391" ,
"end" : null ,
"age" : null ,
"state" : null ,
"reason" : null ,
"alerted" : null
},
"payload" : null ,
"payload_printable" : null ,
"stream" : null ,
"packet" : null ,
"packet_info" : {
"linktype" : null
},
"app_proto" : "failed"
}
(Only 1 out of 19 shown.)
Or by using type and field extractors:
export | where 10.10.5.0/25 && (orig_bytes > 1 Mi || duration > 30 min)
Output {
"ts" : "2021-11-19T06:30:30.918301" ,
"uid" : "C9T8pykxdsT7iSrc9" ,
"id" : {
"orig_h" : "10.10.5.101" ,
"orig_p" : 50046 ,
"resp_h" : "87.120.8.190" ,
"resp_p" : 9090
},
"proto" : "tcp" ,
"service" : null ,
"duration" : "5.09m" ,
"orig_bytes" : 1394538 ,
"resp_bytes" : 95179 ,
"conn_state" : "S1" ,
"local_orig" : null ,
"local_resp" : null ,
"missed_bytes" : 0 ,
"history" : "ShADad" ,
"orig_pkts" : 5046 ,
"orig_ip_bytes" : 1596390 ,
"resp_pkts" : 5095 ,
"resp_ip_bytes" : 298983 ,
"tunnel_parents" : null ,
"community_id" : "1:UPodR2krvvXUGhc/NEL9kejd7FA=" ,
"_write_ts" : null
}
{
"ts" : "2021-11-19T07:05:44.694927" ,
"uid" : "ChnTjeQncxZrb0ZWg" ,
"id" : {
"orig_h" : "10.10.5.101" ,
"orig_p" : 50127 ,
"resp_h" : "87.120.8.190" ,
"resp_p" : 9090
},
"proto" : "tcp" ,
"service" : null ,
"duration" : "54.81s" ,
"orig_bytes" : 1550710 ,
"resp_bytes" : 97122 ,
"conn_state" : "S1" ,
"local_orig" : null ,
"local_resp" : null ,
"missed_bytes" : 0 ,
"history" : "ShADadww" ,
"orig_pkts" : 5409 ,
"orig_ip_bytes" : 1767082 ,
"resp_pkts" : 5477 ,
"resp_ip_bytes" : 316206 ,
"tunnel_parents" : null ,
"community_id" : "1:aw0CtkT7YikUZWyqdHwgLhqJXxU=" ,
"_write_ts" : null
}
{
"ts" : "2021-11-19T06:30:15.910850" ,
"uid" : "CxuTEOgWv2Z74FCG6" ,
"id" : {
"orig_h" : "10.10.5.101" ,
"orig_p" : 50041 ,
"resp_h" : "87.120.8.190" ,
"resp_p" : 9090
},
"proto" : "tcp" ,
"service" : null ,
"duration" : "36.48m" ,
"orig_bytes" : 565 ,
"resp_bytes" : 507 ,
"conn_state" : "S1" ,
"local_orig" : null ,
"local_resp" : null ,
"missed_bytes" : 0 ,
"history" : "ShADad" ,
"orig_pkts" : 78 ,
"orig_ip_bytes" : 3697 ,
"resp_pkts" : 77 ,
"resp_ip_bytes" : 3591 ,
"tunnel_parents" : null ,
"community_id" : "1:r337wYxbKPDv5Vkjoz3gGuld1bs=" ,
"_write_ts" : null
}
The above example extracts connections from the subnet 10.10.5.0/25 that either
have sent more than 1 MiB or lasted longer than 30 minutes.
Tenzir's expression language uses
extractors to locate fields of
interest.
If you don't know a field name but have concrete value, say an IP address,
you can apply a query over all schemas having fields of the ip
type by writing
:ip == 172.17.2.163
. The left-hand side of this predicate is a type
extractor , denoted by :T
for a type T
. The right-hand side is the IP
address literal 172.17.2.163
. You can go one step further and just write
172.17.2.163
as query. Tenzir infers the literal type and makes a predicate
out of it, i.e.,. x
, expands to :T == x
where T
is the type of x
. Under
the hood, the predicate all possible fields with type address and yields a
logical OR.
In the above example, the value 10.10.5.0/25
actually expands to the
expression :ip in 10.10.5.0/25 || :subnet == 10.10.5.0/25
, meaning, Tenzir
looks for any IP address field and performs a top-k prefix search, or any subnet
field where the value matches exactly.
Limit the output with head
and tail
Use the head
and
tail
operators to get the first or
last N records of the input.
The first 3 Zeek logs with IPs in 10.10.5.0/25:
export | where #schema == /zeek.*/ && 10.10.5.0/25 | head 3
Output {
"ts" : "2021-11-19T04:28:06.186626" ,
"cause" : "violation" ,
"analyzer_kind" : "protocol" ,
"analyzer_name" : "GSSAPI" ,
"uid" : "CaHAWI2k6vB6BEOh65" ,
"fuid" : null ,
"id.orig_h" : "10.10.5.101" ,
"id.orig_p" : 49847 ,
"id.resp_h" : "10.10.5.5" ,
"id.resp_p" : 49667 ,
"id.vlan" : null ,
"id.vlan_inner" : null ,
"failure_reason" : "Binpac exception: binpac exception: out_of_bound: ASN1EncodingMeta:more_len: 129 > 74" ,
"failure_data" : null
}
{
"ts" : "2021-11-19T04:28:06.186853" ,
"cause" : "violation" ,
"analyzer_kind" : "protocol" ,
"analyzer_name" : "GSSAPI" ,
"uid" : "CaHAWI2k6vB6BEOh65" ,
"fuid" : null ,
"id.orig_h" : "10.10.5.101" ,
"id.orig_p" : 49847 ,
"id.resp_h" : "10.10.5.5" ,
"id.resp_p" : 49667 ,
"id.vlan" : null ,
"id.vlan_inner" : null ,
"failure_reason" : "Binpac exception: binpac exception: out_of_bound: ASN1EncodingMeta:more_len: 129 > 74" ,
"failure_data" : null
}
{
"ts" : "2021-11-19T04:28:06.187119" ,
"cause" : "violation" ,
"analyzer_kind" : "protocol" ,
"analyzer_name" : "GSSAPI" ,
"uid" : "CaHAWI2k6vB6BEOh65" ,
"fuid" : null ,
"id.orig_h" : "10.10.5.101" ,
"id.orig_p" : 49847 ,
"id.resp_h" : "10.10.5.5" ,
"id.resp_p" : 49667 ,
"id.vlan" : null ,
"id.vlan_inner" : null ,
"failure_reason" : "Binpac exception: binpac exception: out_of_bound: ASN1EncodingMeta:more_len: 129 > 74" ,
"failure_data" : null
}
The tail
operator must wait for its entire input, whereas head N
terminates
immediately after the first N
records have arrived. Use head
for
the majority of use cases and tail
only when you have to.
Pick fields with select
and drop
Use the select
operator to
restrict the output to a list of fields.
export | where #schema == "suricata.alert" | select src_ip, dest_ip, severity, signature | head 3
Output {
"src_ip" : "8.218.64.104" ,
"dest_ip" : "198.71.247.91" ,
"alert" : {
"signature" : "SURICATA UDPv4 invalid checksum" ,
"severity" : 3
}
}
{
"src_ip" : "14.1.112.177" ,
"dest_ip" : "198.71.247.91" ,
"alert" : {
"signature" : "ET DOS Possible NTP DDoS Inbound Frequent Un-Authed MON_LIST Requests IMPL 0x03" ,
"severity" : 2
}
}
{
"src_ip" : "167.94.138.20" ,
"dest_ip" : "198.71.247.91" ,
"alert" : {
"signature" : "SURICATA UDPv4 invalid checksum" ,
"severity" : 3
}
}
Note that select
does not reorder the input fields. Use
put
for adjusting the field order.
Sample schemas with taste
The taste
operator provides a
sample of the first N events of every unique schemas in the dataflow. For
example, to get 5 unique samples:
Output {
"ts" : "2021-11-17T13:54:01.721755" ,
"cause" : "violation" ,
"analyzer_kind" : "protocol" ,
"analyzer_name" : "HTTP" ,
"uid" : "Cqp7rtziLijlnrxYf" ,
"fuid" : null ,
"id.orig_h" : "87.251.64.137" ,
"id.orig_p" : 64078 ,
"id.resp_h" : "198.71.247.91" ,
"id.resp_p" : 80 ,
"id.vlan" : null ,
"id.vlan_inner" : null ,
"failure_reason" : "not a http request line" ,
"failure_data" : null
}
{
"ts" : "2021-11-17T13:33:53.748229" ,
"ts_delta" : "1.18m" ,
"peer" : "zeek" ,
"gaps" : 0 ,
"acks" : 2 ,
"percent_lost" : 0.0 ,
"_write_ts" : null
}
{
"ts" : "2021-11-17T13:32:46.565337" ,
"uid" : "C5luJD1ATrGDOcouW2" ,
"id" : {
"orig_h" : "89.248.165.145" ,
"orig_p" : 43831 ,
"resp_h" : "198.71.247.91" ,
"resp_p" : 52806
},
"proto" : "tcp" ,
"service" : null ,
"duration" : null ,
"orig_bytes" : null ,
"resp_bytes" : null ,
"conn_state" : "S0" ,
"local_orig" : null ,
"local_resp" : null ,
"missed_bytes" : 0 ,
"history" : "S" ,
"orig_pkts" : 1 ,
"orig_ip_bytes" : 40 ,
"resp_pkts" : 0 ,
"resp_ip_bytes" : 0 ,
"tunnel_parents" : null ,
"community_id" : "1:c/CLmyk4xRElyzleEMhJ4Baf4Gk=" ,
"_write_ts" : null
}
{
"ts" : "2021-11-18T08:05:09.134638" ,
"uid" : "Cwk5in34AvxJ8MurDh" ,
"id" : {
"orig_h" : "10.2.9.133" ,
"orig_p" : 49768 ,
"resp_h" : "10.2.9.9" ,
"resp_p" : 135
},
"rtt" : "254.0us" ,
"named_pipe" : "135" ,
"endpoint" : "epmapper" ,
"operation" : "ept_map" ,
"_write_ts" : null
}
{
"ts" : "2021-11-18T08:00:21.486539" ,
"uids" : [
"C4fKs01p1bdzLWvtQa"
],
"client_addr" : "192.168.1.102" ,
"server_addr" : "192.168.1.1" ,
"mac" : "00:0b:db:63:58:a6" ,
"host_name" : "m57-jo" ,
"client_fqdn" : "m57-jo." ,
"domain" : "m57.biz" ,
"requested_addr" : null ,
"assigned_addr" : "192.168.1.102" ,
"lease_time" : "59.4m" ,
"client_message" : null ,
"server_message" : null ,
"msg_types" : [
"REQUEST" ,
"ACK"
],
"duration" : "163.82ms" ,
"trans_id" : null ,
"_write_ts" : null
}
Add fields with put
and extend
The extend
operator appends new
fields to the input. The put
operator does the same but drops all non-referenced fields.
Here is an example that generates host pairs plus service for Zeek connection
records. Think of the output is a the edges in graph, with the last column being
the edge type.
export | where #schema == "zeek.conn" && 10.10.5.0/25 | put id.orig_h, id.resp_h, service | head
Output {
"id.orig_h" : "10.10.5.101" ,
"id.resp_h" : "77.75.230.91" ,
"service" : "http"
}
{
"id.orig_h" : "10.10.5.101" ,
"id.resp_h" : "10.10.5.5" ,
"service" : "dns"
}
{
"id.orig_h" : "10.10.5.101" ,
"id.resp_h" : "10.10.5.5" ,
"service" : "dns"
}
{
"id.orig_h" : "10.10.5.101" ,
"id.resp_h" : "20.189.173.1" ,
"service" : null
}
{
"id.orig_h" : "10.10.5.101" ,
"id.resp_h" : "20.189.173.1" ,
"service" : "ssl"
}
{
"id.orig_h" : "10.10.5.101" ,
"id.resp_h" : "52.109.8.21" ,
"service" : "ssl"
}
{
"id.orig_h" : "10.10.5.101" ,
"id.resp_h" : "10.10.5.5" ,
"service" : "dns"
}
{
"id.orig_h" : "10.10.5.101" ,
"id.resp_h" : "10.10.5.5" ,
"service" : "dns"
}
{
"id.orig_h" : "10.10.5.101" ,
"id.resp_h" : "20.54.88.152" ,
"service" : "ssl"
}
{
"id.orig_h" : "10.10.5.101" ,
"id.resp_h" : "13.107.42.16" ,
"service" : "ssl"
}
Give schemas and fields new names with rename
The rename
operator changes field
or schema names.
For example, rename the schema name and only print that afterwards:
export | where #schema == "zeek.conn" | rename flow=:zeek.conn | put schema=#schema | head 1
Output Rename a field:
export | where #schema == "zeek.conn" | rename src=id.orig_h, dst=id.resp_h | put src, dst | head
Output { "src" : "89.248.165.145" , "dst" : "198.71.247.91" }
{ "src" : "128.14.134.170" , "dst" : "198.71.247.91" }
{ "src" : "60.205.181.213" , "dst" : "198.71.247.91" }
{ "src" : "31.44.185.120" , "dst" : "198.71.247.91" }
{ "src" : "91.223.67.180" , "dst" : "198.71.247.91" }
{ "src" : "185.73.126.70" , "dst" : "198.71.247.91" }
{ "src" : "183.136.225.42" , "dst" : "198.71.247.91" }
{ "src" : "71.6.135.131" , "dst" : "198.71.247.91" }
{ "src" : "172.104.138.223" , "dst" : "198.71.247.91" }
{ "src" : "185.94.111.1" , "dst" : "198.71.247.91" }
Aggreate records with summarize
Use summarize
to group and
aggregate data.
export | #schema == "suricata.alert" | summarize count=count(src_ip) by severity
Output {
"alert.severity" : 1 ,
"count" : 134644
}
{
"alert.severity" : 2 ,
"count" : 26780
}
{
"alert.severity" : 3 ,
"count" : 179713
}
Suricata alerts with lower severity are more critical, with severity 1 being the
highest. Let's group by alert signature containing the substring SHELLCODE
:
export | where severity == 1 | summarize count=count(src_ip) by signature | where /.*SHELLCODE.*/
Output {
"alert.signature" : "ET SHELLCODE Possible Call with No Offset TCP Shellcode" ,
"count" : 2
}
{
"alert.signature" : "ET SHELLCODE Possible %41%41%41%41 Heap Spray Attempt" ,
"count" : 32
}
Reorder records with sort
Use sort
to arrange the output
records according to the order of a specific field.
export | #schema == "suricata.alert" | summarize count=count(src_ip) by severity | sort count desc
Output {
"alert.severity" : 3 ,
"count" : 179713
}
{
"alert.severity" : 1 ,
"count" : 134644
}
{
"alert.severity" : 2 ,
"count" : 26780
}
Deduplicate with unique
Use unique
to remove adjacent
duplicates. This operator comes in handy after a
sort
that arranges the input so
that duplicates lay next to each other:
export | where #schema == "zeek.kerberos" | put client | sort client | unique | head
Output {
"client" : "/NM"
}
{
"client" : "Administrator/EAGLEFREAKS"
}
{
"client" : "DEKSTOP-D9UMVWL$/SIMONSAYSGO.NET"
}
{
"client" : "DEKSTOP-VVCWQF5$/POLICYBARONS.COM"
}
{
"client" : "DESKTOP-1-PC$/MAXSUGER.COM"
}
{
"client" : "DESKTOP-1O7QAEA$/VICTORYPUNK.COM"
}
{
"client" : "DESKTOP-2P2S7WR$/VICTORYPUNK.COM"
}
{
"client" : "DESKTOP-30CQ14B$/FIRGREENTECH.COM"
}
{
"client" : "DESKTOP-3KI6Y6G$/JIGGEDYJACK.COM"
}
{
"client" : "DESKTOP-41SH6EJ$/DUCKKISSMIXER.COM"
}
To compute a unique list of values per group, use the distinct
aggregation
function in summarize
:
export | where #schema == "zeek.conn" | summarize sources=distinct(id.orig_h) by id.resp_h | rename destination=id.resp_h | head 3
Output {
"destination" : "192.168.201.13" ,
"sources" : [
"10.12.14.101" ,
"10.12.17.101"
]
}
{
"destination" : "192.168.62.104" ,
"sources" : [
"10.12.14.101" ,
"10.12.17.101"
]
}
{
"destination" : "10.0.177.137" ,
"sources" : [
"10.7.5.133"
]
}
Profile the pipeline with measure
Use measure
to profile the input
and replace it with runtime statistics.
For example, one way to compute a histogram over the entire persisted dataset is
to perform a full scan, replace the input with statistics, and then aggregate
them by schema:
export | measure | summarize events=sum(events) by schema | sort events desc
Output { "schema": "suricata.flow", "events": 1129992 } { "schema": "zeek.conn", "events": 583838 } { "schema": "suricata.alert", "events": 341137 } { "schema": "suricata.dns", "events": 289117 } { "schema": "suricata.http", "events": 150736 } { "schema": "zeek.dns", "events": 90013 } { "schema": "suricata.tls", "events": 84608 } { "schema": "zeek.http", "events": 75290 } { "schema": "zeek.telemetry", "events": 72853 } { "schema": "suricata.smb", "events": 67943 } { "schema": "zeek.ssl", "events": 42389 } { "schema": "suricata.fileinfo", "events": 35968 } { "schema": "suricata.dcerpc", "events": 33055 } { "schema": "zeek.files", "events": 21922 } { "schema": "zeek.dce_rpc", "events": 19585 } { "schema": "zeek.analyzer", "events": 14755 } { "schema": "suricata.anomaly", "events": 8535 } { "schema": "zeek.notice", "events": 5871 } { "schema": "suricata.smtp", "events": 5208 } { "schema": "zeek.weird", "events": 4617 } { "schema": "zeek.reporter", "events": 3528 } { "schema": "suricata.krb5", "events": 3378 } { "schema": "zeek.ocsp", "events": 2874 } { "schema": "zeek.kerberos", "events": 2708 } { "schema": "zeek.x509", "events": 2379 } { "schema": "zeek.smtp", "events": 1967 } { "schema": "zeek.smb_mapping", "events": 1584 } { "schema": "zeek.stats", "events": 1409 } { "schema": "zeek.ntp", "events": 1224 } { "schema": "zeek.smb_files", "events": 1140 } { "schema": "suricata.ftp", "events": 954 } { "schema": "suricata.sip", "events": 936 } { "schema": "zeek.dpd", "events": 926 } { "schema": "suricata.dhcp", "events": 648 } { "schema": "zeek.tunnel", "events": 606 } { "schema": "zeek.sip", "events": 565 } { "schema": "zeek.loaded_scripts", "events": 512 } { "schema": "zeek.capture_loss", "events": 476 } { "schema": "zeek.ntlm", "events": 429 } { "schema": "zeek.pe", "events": 315 } { "schema": "suricata.snmp", "events": 288 } { "schema": "zeek.dhcp", "events": 267 } { "schema": "zeek.snmp", "events": 132 } { "schema": "suricata.tftp", "events": 62 } { "schema": "suricata.stats", "events": 12 } { "schema": "zeek.traceroute", "events": 9 } { "schema": "zeek.ftp", "events": 4 } { "schema": "suricata.ikev2", "events": 2 } { "schema": "suricata.ftp_data", "events": 1 } { "schema": "zeek.packet_filter", "events": 1 } { "schema": "zeek.radius", "events": 1 }
The above pipeline performs a full scan over the data at the node. Tenzir's
pipeline optimizer pushes down predicates to avoid scans when possible. Consider
this pipeline:
export | where *.id.orig_h in 10.0.0.0/8
The optimizer coalesces the export
and where
operators such that
expression *.id.orig_h in 10.0.0.0/8
gets
pushed down to the index and storage layer.